Healthcare Natural Language API verwenden

Auf dieser Seite wird erläutert, wie Sie die Healthcare Natural Language API aktivieren, Berechtigungen konfigurieren und die Methode analyzeEntities aufrufen, um medizinische Informationen aus medizinischem Text zu extrahieren.

Überblick

Die Healthcare Natural Language API bietet Lösungen für maschinelles Lernen, mit denen sich Informationen aus medizinischen Texten ableiten lassen. Die Healthcare Natural Language API ist Teil der Cloud Healthcare API. Eine Übersicht über die Healthcare Natural Language API finden Sie in der Dokumentation zu Konzepten der Healthcare Natural Language API.

Die Healthcare Natural Language API parst unstrukturierten medizinischen Text, z. B. Krankenakten oder Versicherungsansprüche. Anschließend wird eine strukturierte Datendarstellung der in diesen Datenquellen gespeicherten medizinischen Wissensentitäten für eine nachgelagerte Analyse und Automatisierung erstellt. Beispiele:

  • Informationen zu medizinischen Konzepten wie Krankheiten, Medikamenten, medizinischen Geräten, Verfahren und ihren klinisch relevanten Attributen extrahieren
  • Medizinische Konzepte zu medizinischem Standardvokabular wie RxNorm, ICD-10, MeSH und SNOMED CT zuordnen (nur US-Nutzer)
  • Medizinische Informationen aus Texten gewinnen und in Datenanalyseprodukte in Google Cloud einbinden

Verfügbare Standorte

Die Healthcare Natural Language API ist in den folgenden Ländern verfügbar:

Standortname Standortbeschreibung
asia-south1 Mumbai, Indien
australia-southeast1 Sydney, Australien
europe-west2 London, Großbritannien
europe-west4 Niederlande
northamerica-northeast1 Montreal, Kanada
us-central1 Iowa, USA

Healthcare Natural Language API aktivieren

Bevor Sie die Healthcare Natural Language API verwenden, müssen Sie die API für Ihr Google Cloud-Projekt aktivieren. Sie können die Healthcare Natural Language API verwenden, ohne Funktionen der Cloud Healthcare API zu aktivieren oder zu verwenden.

Führen Sie folgende Schritte aus, um die API zu aktivieren:

  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. Erstellen Sie ein Dienstkonto:

    1. Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“
    2. Wählen Sie Ihr Projekt aus.
    3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.

      Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

    4. Klicken Sie auf Erstellen und fortfahren.
    5. Weisen Sie dem Dienstkonto die Rolle Project > Owner zu.

      Wenn Sie die Rolle zuweisen möchten, suchen Sie die Liste Rolle auswählen und wählen Sie Project > Owner aus.

    6. Klicken Sie auf Weiter.
    7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.

      Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

  5. Erstellen Sie einen Dienstkontoschlüssel:

    1. Klicken Sie in der Google Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
    2. Klicken Sie auf Schlüssel.
    3. Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
    4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
    5. Klicken Sie auf Schließen.
  6. Legen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS auf den Pfad der JSON-Datei fest, die Ihre Anmeldedaten enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable neu festlegen.

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

    Zur Projektauswahl

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

  9. Erstellen Sie ein Dienstkonto:

    1. Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.

      Zur Seite „Dienstkonto erstellen“
    2. Wählen Sie Ihr Projekt aus.
    3. Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.

      Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel: Service account for quickstart.

    4. Klicken Sie auf Erstellen und fortfahren.
    5. Weisen Sie dem Dienstkonto die Rolle Project > Owner zu.

      Wenn Sie die Rolle zuweisen möchten, suchen Sie die Liste Rolle auswählen und wählen Sie Project > Owner aus.

    6. Klicken Sie auf Weiter.
    7. Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.

      Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.

  10. Erstellen Sie einen Dienstkontoschlüssel:

    1. Klicken Sie in der Google Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
    2. Klicken Sie auf Schlüssel.
    3. Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
    4. Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
    5. Klicken Sie auf Schließen.
  11. Legen Sie die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS auf den Pfad der JSON-Datei fest, die Ihre Anmeldedaten enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable neu festlegen.

  12. Cloud Healthcare API aktivieren.

    Aktivieren Sie die API

  13. Installieren Sie die Google Cloud CLI.
  14. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init

Berechtigungen einrichten

Für die Verwendung dieser Features benötigen Sie die Berechtigung healthcare.nlpservice.analyzeEntities, die in der Rolle healthcare.nlpServiceViewer enthalten ist.

Führen Sie zum Zuweisen dieser Rolle den Befehl gcloud projects add-iam-policy-binding aus:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member serviceAccount:SERVICE_ACCOUNT_ID \
    --role roles/healthcare.nlpServiceViewer

Entitäten, Beziehungen und Kontextattribute extrahieren

Die Healthcare Natural Language API verwendet kontextsensitive Modelle, um medizinische Entitäten, Beziehungen und Kontextattribute zu extrahieren. Jede Textentität wird in einen medizinischen Wörterbucheintrag extrahiert. Verwenden Sie die Methode projects.locations.services.nlp.analyzeEntities, um dieses Maß an medizinischen Informationen aus medizinischen Texten zu extrahieren.

Wie Sie das SNOMED CT-lizenzierte Vokabular in Ihre Entitätserwähnungen aufnehmen, erfahren Sie unter Lizenziertes Vokabular einschließen.

Wenn Sie mit der Healthcare Natural Language API medizinische Informationen aus medizinischem Text extrahieren möchten, senden Sie eine POST-Anfrage und geben den Zieltext im Feld documentContent an. Der medizinische Text darf maximal 20.000 Unicode-Zeichen enthalten.

Die folgenden Beispiele zeigen, wie Sie mit der Methode analyzeEntities medizinische Erkenntnisse aus dem medizinischen Text „Bei Diabetes wird Insulin 5 Einheiten IV verabreicht“ extrahieren.

REST

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

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • LOCATION ist der Standort des Datasets

JSON-Text anfordern:

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}

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'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
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" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

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:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes."
}
'@  | 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" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content

Ist die Anfrage erfolgreich, enthält die Antwort folgende Informationen:

  • Erkannte medizinische Wissensentitäten
  • Funktionale Funktionen
  • Beziehungen zwischen den erkannten Entitäten
  • Kontextbezogene Attribute
  • Zuordnungen der medizinischen Wissensentitäten in Standardterminologien

Eine Liste der unterstützten Entitäts-, Attribut- und Beziehungstypen finden Sie unter Healthcare Natural Language API-Features.

In der folgenden Antwort wird Therapeutisches Insulin, die Entität mit dem Code C581 im NCI-Terminologiesystem, als Medikament identifiziert. Die Antwort enthält auch den Konfidenzwert, der der Antwort zugewiesen ist. Weitere Informationen zu den Antwortfeldern finden Sie in der Dokumentation zu analyzeEntities.

Lizenziertes Vokabular einschließen

Die Antworten der Healthcare Natural Language API enthalten standardmäßig das unterstützte medizinische Vokabular.

Sie können das Vokabular SNOMED Clinical Terms, US Version (SNOMEDCT_US) in die Antwort aufnehmen, wenn Ihre Anfrage die folgenden Anforderungen erfüllt:

  • Die API-Anfrage stammt aus den USA.
  • Das Feld licensedVocabularies im Anfragetext hat den Wert SNOMEDCT_US.

Wenn Sie das Vokabular SNOMED CT nicht benötigen, gelten keine dieser Einschränkungen.

Das folgende Beispiel zeigt, wie das von SNOMED CT lizenzierten Vokabular in das Objekt LicensedVocabularies aufgenommen wird, um medizinische Erkenntnisse aus dem medizinischen Text „Bei Diabetes wird Insulin 5 Einheiten IV verabreicht“ zu extrahieren.

REST

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

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • LOCATION ist der Standort des Datasets

JSON-Text anfordern:

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}

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'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
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" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

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:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "licensedVocabularies": [
    "SNOMEDCT_US",
    "ICD10CM"
  ]
}
'@  | 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" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
Wenn die Anfrage erfolgreich ist, enthält die Antwort Vokabelcodes aus den lizenzierten Vokabularen SNOMEDCT_US und ICD10CM. Die Ausgabe sieht so aus und die angeforderten lizenzierten Vokabularcodes sind fett formatiert:

Ausgabe als FHIR R4-Bundle extrahieren

Sie können Entitäten aus Text extrahieren und FHIR R4-Ressourcen und -Elementen zuordnen. Das resultierende FHIR R4-Bundle enthält alle Entitäten, Entitätserwähnungen und Beziehungen im JSON-Format. Die Healthcare Natural Language API ordnet beispielsweise die Basisentität PROBLEM der FHIR-R4-Ressource Condition und die Entität PROBLEM.ANATOMICAL_STRUCTURE dem FHIR-Element Condition.bodySite zu. Eine Liste anderer Zuordnungen finden Sie unter Healthcare Natural Language API-Ausgabe als FHIR-Bundle.

Die folgenden Beispiele zeigen, wie aus dem medizinischen Text „Insulinregime 5 Einheiten IV bei Diabetes medizinische Erkenntnisse extrahiert werden“ in einem FHIR-R4-Bündel. Weitere Informationen finden Sie unter AlternativeOutputFormat-Objekt.

REST

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

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • LOCATION ist der Standort des Datasets

JSON-Text anfordern:

{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}

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'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
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" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

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:

@'
{
  "documentContent": "Insulin regimen 5 units IV will be administered for diabetes.",
  "alternativeOutputFormat": "FHIR_BUNDLE"
}
'@  | 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" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities" | Select-Object -Expand Content
Wenn die Anfrage erfolgreich ist, enthält die Antwort ein JSON-Objekt mit den folgenden Einträgen:
  • Die erkannte Entität erwähnt die Entitäten und ihre Beziehungen in einem Format, das dem Ausgabeformat unter Entitäten, Beziehungen und Kontextattribute extrahieren entspricht.
  • Ein fhirBundle-Schlüssel, der eine als String formatierte FHIR-Bundle-Ressource enthält. Das FHIR-Bundle enthält alle Entitäten, die Entitätserwähnungen und die Beziehungen im JSON-Format.