Healthcare Natural Language API

Die Healthcare Natural Language API ist Teil der Cloud Healthcare API, die Natural Language-Modelle verwendet, um medizinische Informationen aus medizinischem Text zu extrahieren.

In diesem konzeptionellen Leitfaden werden die Grundlagen der Verwendung der Healthcare Natural Language API erläutert. Dazu gehören:

  • Die Anfragentypen, die Sie an die Healthcare Natural Language API senden können
  • Wie Sie Anfragen an die Healthcare Natural Language API erstellen
  • Wie Sie Antworten der Healthcare Natural Language API verwenden

Übersicht

Die Healthcare Natural Language API extrahiert medizinische Informationen aus medizinischen Texten. Dazu gehören:

  • Medizinische Konzepte wie Medikamente, Verfahren und Erkrankungen
  • Funktionale Merkmale wie Zeitbeziehungen, Subjekte und Sicherheitsprüfungen
  • Zusammenhänge wie Nebenwirkungen und Dosierung von Medikamenten

Zwischen der Healthcare Natural Language API und AutoML Entity Extraction for Healthcare wählen

Die Healthcare Natural Language API bietet vortrainierte Natural Language-Modelle, um medizinische Konzepte und Zusammenhänge aus medizinischen Texten zu extrahieren. Die Healthcare Natural Language API ordnet Text verschiedenen vordefinierten medizinischen Wissenskategorien zu.

Mit AutoML Entity Extraction for Healthcare können Sie ein benutzerdefiniertes Modell zur Entitätsextraktion erstellen, das mit Ihren eigenen annotierten medizinischen Texten und Ihren eigenen Kategorien trainiert wurde. Weitere Informationen finden Sie in der AutoML Entity Extraction for Healthcare-Dokumentation.

Verfügbare Standorte

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

Standortname Standortbeschreibung
us-central1 Iowa, USA
europe-west4 Netherlands

Merkmale der Healthcare Natural Language API

Die Healthcare Natural Language API untersucht medizinische Texte auf medizinische Konzepte und Beziehungen. Sie führen eine Entitätsanalyse mit der Methode analyzeEntities durch.

Anfragefelder für die Entitätsanalyse

Die Healthcare Natural Language API ist eine REST API und besteht aus JSON-Anfragen und -Antworten. Das folgende Beispiel zeigt eine einfache Healthcare Natural Language API-Anfrage mit curl:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data "{
    'nlpService': 'projects/PROJECT_ID/locations/LOCATION/services/nlp',
    'documentContent': 'Insulin regimen human 5 units IV administered.'
}" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/nlp:analyzeEntities"

In der Beispielanfrage werden die folgenden Felder veranschaulicht:

  • nlpService enthält den Ressourcennamen des NLP-Dienstes.
  • documentContent enthält die Daten für die Anfrage, die aus medizinischen Texten bestehen. Die maximale Größe des medizinischen Textes beträgt 10.000 Unicode-Zeichen.

Antwortfelder der Entitätsanalyse

Die Entitätsanalyse gibt eine Reihe von erkannten Erwähnungen von medizinischem Wissen, medizinischen Konzepten und Zusammenhängen zwischen Erwähnungen von medizinischem Wissen zurück.

Das folgende Beispiel zeigt die Antwort auf die Beispielanfrage in Anfragefeldern der Entitätsanalyse:

{
  "entityMentions": [
    {
      "mentionId": "1",
      "type": "MEDICINE",
      "text": {
        "content": "Insulin regimen human"
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C3537244"
        },
        {
          "entityId": "UMLS/C3714501"
        },
        {
          "entityId": "UMLS/C0021641"
        },
        {
          "entityId": "UMLS/C0795635"
        },
        {
          "entityId": "UMLS/C1533581"
        },
        {
          "entityId": "UMLS/C4721402"
        }
      ],
      "temporalAssessment": {
        "value": "CURRENT",
        "confidence": 0.87631082534790039
      },
      "certaintyAssessment": {
        "value": "LIKELY",
        "confidence": 0.9999774694442749
      },
      "subject": {
        "value": "PATIENT",
        "confidence": 0.99999970197677612
      },
      "confidence": 0.41636556386947632
    },
    {
      "mentionId": "2",
      "type": "MED_DOSE",
      "text": {
        "content": "5 units",
        "beginOffset": 22
      },
      "confidence": 0.56910794973373413
    },
    {
      "mentionId": "3",
      "type": "MED_ROUTE",
      "text": {
        "content": "IV",
        "beginOffset": 30
      },
      "linkedEntities": [
        {
          "entityId": "UMLS/C0348016"
        }
      ],
      "confidence": 0.9180646538734436
    }
  ],
  "entities": [
    {
      "entityId": "UMLS/C1533581",
      "preferredTerm": "Therapeutic Insulin",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C581"
      ]
    },
    {
      "entityId": "UMLS/C0021641",
      "preferredTerm": "Insulin",
      "vocabularyCodes": [
        "FMA/83365",
        "LNC/LA15805-7",
        "LNC/LP14676-8",
        "LNC/LP16325-0",
        "LNC/LP32542-0",
        "LNC/LP70329-5",
        "LNC/MTHU002108",
        "LNC/MTHU019392",
        "MSH/D007328",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/C0348016",
      "preferredTerm": "Intravenous",
      "vocabularyCodes": [
        "LNC/LA9437-0",
        "LNC/LP32453-0",
        "MTH/NOCODE",
        "NCI/C13346"
      ]
    },
    {
      "entityId": "UMLS/C3537244",
      "preferredTerm": "Insulins",
      "vocabularyCodes": [
        "MSH/D061385",
        "MTH/NOCODE"
      ]
    },
    {
      "entityId": "UMLS/C3714501",
      "preferredTerm": "Insulin Drug Class",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "VANDF/4021631"
      ]
    },
    {
      "entityId": "UMLS/C4721402",
      "preferredTerm": "INS protein, human",
      "vocabularyCodes": [
        "MTH/NOCODE",
        "NCI/C2271"
      ]
    },
    {
      "entityId": "UMLS/C0795635",
      "preferredTerm": "insulin, regular, human",
      "vocabularyCodes": [
        "LNC/LP17001-6",
        "MSH/D061386",
        "MTH/NOCODE",
        "NCI/C29125",
        "RXNORM/253182",
        "VANDF/4017559",
        "VANDF/4017569",
        "VANDF/4019786"
      ]
    }
  ],
  "relationships": [
    {
      "subjectId": "1",
      "objectId": "2",
      "confidence": 0.53775161504745483
    },
    {
      "subjectId": "1",
      "objectId": "3",
      "confidence": 0.95007365942001343
    }
  ]
}

Im Beispiel werden die folgenden Antwortfelder veranschaulicht:

  • entityMentions sind Vorkommen von medizinischen Wissensentitäten im medizinischen Quelltext. Jede Entitätserwähnung hat die folgenden Felder:

    • mentionId ist eine eindeutige ID für eine Entität, die in der Antwort erwähnt wird.
    • type ist die medizinische Wissenskategorie der Entitätserwähnung.
    • text besteht aus textContent, dem Auszug des medizinischen Textes, der die Entitätserwähnung enthält, und offset, dem Standort der Entität, der im medizinischen Quelltext erwähnt wird.
    • temporalAssessment gibt an, wie sich die verknüpfte Entität auf die Entitätserwähnung bezieht, entweder CURRENT, CLINICAL_HISTORY, FAMILY_HISTORY, UPCOMING oder ALLERGY.
    • certaintyAssessment ist die Negation oder Qualifikation des medizinischen Konzepts, entweder LIKELY .SOMEWHAT_LIKELY .UNCERTAIN ,SOMEWHAT_UNLIKELY .UNLIKELY oderCONDITIONAL.
    • subject gibt das Thema an, auf das sich das medizinische Konzept bezieht, entweder PATIENT, FAMILY_MEMBER oder OTHER.
    • linkedEntities listet medizinische Konzepte auf, die mit dieser Entitätserwähnung in Beziehung stehen könnten. Verknüpfte Entitäten geben die entityId an, die ein medizinisches Konzept mit einer Entität in entities verknüpft.
  • entities beschreibt die medizinischen Konzepte der verknüpften Entitätsfelder. Jede Entität wird mithilfe der folgenden Felder beschrieben:

    • entityId ist die eindeutige ID von linkedEntities.
    • preferredTerm ist der bevorzugte Begriff für das medizinische Konzept.
    • vocabularyCodes ist die Darstellung des medizinischen Konzepts im unterstützten medizinischen Vokabular.
  • relationships definiert gerichtete Beziehungen zwischen Entitätserwähnungen. Im Beispiel ist das Subjekt der Beziehung „Insulin regimen human“ und das Objekt der Beziehung ist „5 units“. confidence gibt die Zuverlässigkeit des Modells in der Beziehung als Zahl zwischen 0 und 1 an.

Unterstützte Sprachen

Die Healthcare Natural Language API unterstützt nur das Extrahieren von Gesundheitsinformationen aus englischem Text.

Unterstütztes medizinisches Vokabular

Die Healthcare Natural Language API unterstützt das folgende medizinische Vokabular:

  • Foundational Model of Anatomy
  • Gene Ontology
  • HUGO Gene Nomenclature Committee
  • Human Phenotype Ontology
  • ICD-9-CM
  • MedlinePlus-Gesundheitsthemen
  • MeSH
  • Metathesaurus Names
  • NCBI Taxonomy
  • NCI Thesaurus
  • National Drug File
  • Online Mendelian Inheritance in Man
  • RXNORM
  • LOINC
  • ICD-10 Procedure Coding System
  • ICD-10-CM (nur für Nutzer in den USA verfügbar)
  • SNOMED CT (nur für Nutzer in den USA verfügbar)

Unterstützte medizinische Wissenskategorien

Die Healthcare Natural Language API unterstützt die folgenden medizinischen Wissenskategorien:

Medizinische Wissenskategorie Beschreibung
PROBLEM Medizinische Erkrankung, darunter Befunde und Krankheiten
SEVERITY Schweregrad der Erkrankung
PROCEDURE Diagnose oder Behandlungsverfahren
PROC_METHOD Methode, mit der ein Behandlungsverfahren ausgeführt wird
PROCEDURE_RESULT Ergebnisse eines Verfahrens
MEDICINE Medikamente oder andere Arten der Vorbereitung auf die Behandlung oder Prävention von Krankheiten
MED_DOSE Dosierung eines Medikaments
MED_DURATION Dauer der Verabreichung
MED_FORM Darreichungsform des jeweiligen Medikaments
MED_FREQUENCY Häufigkeit der Einnahme
MED_ROUTE Verabreichung des Medikaments
MED_STATUS Bei einem bereits bestehenden Medikament kann der Status einen Modifikator wie „Fortfahren“, „Start“, „Neustart“, „Beenden“, „Wechseln“, „Erhöhen“ oder „Reduzieren“ sein.
MED_STRENGTH Menge des Wirkstoffs in einer Dosis des Medikaments
MED_TOTALDOSE Verabreichungsmenge
MED_UNIT Aufnahmeeinheit des Wirkstoffs in einem Medikament
ANATOMICAL_STRUCTURE Komplexer Teil des menschlichen Körpers
LABORATORY_DATA Ergebnisse eines Tests einer Körperprobe
LAB_RESULT Qualitative Beschreibung von Labordaten, z. B. erhöht, niedrig, positiv oder negativ
LAB_VALUE Wert einer Instanz von Labordaten
LAB_UNIT Maßeinheit für einen Laborwert
BODY_MEASUREMENT Eine normale Messung des menschlichen Körpers, z. B. ein Lebenszeichen
BM_RESULT Ergebnis der Körpermessung
BM_VALUE Wert einer Körpermessung
BM_UNIT Einheit für Körpermessung
MEDICAL_DEVICE Physisches oder virtuelles Instrument
SUBSTANCE_ABUSE Missbrauch einer psychoaktiven Substanz
BODY_FUNCTION Vom menschlichen Körper ausgeführte Funktion
BF_RESULT Ergebnis der Körperfunktion

Unterstützte funktionale Funktionskategorien

Die Healthcare Natural Language API kann funktionale Funktionen oder Attribute einer Entität aus Kontext ableiten. In der Anweisung "Kusumas Mutter hat Diabetes" hat die Bedingung "Diabetes" beispielsweise die funktionale Funktion subject FAMILY_MEMBER.

Temporäre Beziehungen

Temporäre Beziehungen, die im Feld temporalAssessment zurückgegeben werden, beschreiben, wie diese erwähnte Entität zum Subjekt temporär in Beziehung steht.

Die Healthcare Natural Language API unterstützt die folgenden temporären Beziehungen:

  • CURRENT
  • CLINICAL_HISTORY
  • FAMILY_HISTORY
  • UPCOMING
  • ALLERGY

Betreffzeilen

Betreffzeilen, die im Feld subject zurückgegeben werden, beschreiben die Person, auf die sich die Entität bezieht.

Die Healthcare Natural Language API unterstützt die folgenden Subjekte:

  • PATIENT
  • FAMILY_MEMBER
  • OTHER

Wahrscheinlichkeitsbewertungen

Wahrscheinlichkeitsbewertungen, die im Feld certaintyAssessment zurückgegeben werden, beschreiben die Vertrauenswürdigkeit des Erstellers der Originalnotiz. Wenn die Originalnotiz beispielsweise "Der Patienten hat Halsschmerzen" enthält, gibt die Bewertung einen LIKELY-Wert zurück, der angibt, dass der Notizenersteller es für wahrscheinlich hält, dass der Patient Halsschmerzen hatte. Wenn der ursprüngliche Hinweis enthält, dass der Patient keine Halsschmerzen hat, gibt die Konfidenzbewertung einen UNLIKELY-Wert zurück, um anzugeben, wie sicher der Ersteller des Hinweises ist, dass es unwahrscheinlich ist, dass der Patient einen Halsschmerzen.

Wahrscheinlichkeitsbewertungen können folgende Werte sein:

  • LIKELY
  • SOMEWHAT_LIKELY
  • UNCERTAIN
  • SOMEWHAT_UNLIKELY
  • UNLIKELY
  • CONDITIONAL

Unterstützte Beziehungen zwischen Entitätserwähnungen

Die Healthcare Natural Language API kann Beziehungen zwischen Entitätserwähnungen basierend auf dem umgebenden medizinischen Text ableiten. In der Antwort wird das Subjekt der Beziehung durch subjectId und das Objekt der Beziehung durch objectId angegeben.

Die Healthcare Natural Language API unterstützt die folgenden Beziehungen zwischen Entitätserwähnungen:

Betreff Object
ANATOMICAL_STRUCTURE MEDICAL_DEVICE
BODY_FUNCTION BF_RESULT
BODY_MEASUREMENT BM_RESULT
BODY_MEASUREMENT BM_UNIT
BODY_MEASUREMENT BM_VALUE
LABORATORY_DATA LAB_RESULT
LABORATORY_DATA LAB_UNIT
LABORATORY_DATA LAB_VALUE
MEDICINE MED_DOSE
MEDICINE MED_DURATION
MEDICINE MED_FORM
MEDICINE MED_FREQUENCY
MEDICINE MED_ROUTE
MEDICINE MED_STATUS
MEDICINE MED_STRENGTH
MEDICINE MED_TOTALDOSE
MEDICINE MED_UNIT
PROBLEM ANATOMICAL_STRUCTURE
PROBLEM MEDICINE
PROBLEM PROCEDURE
PROBLEM SEVERITY
PROCEDURE ANATOMICAL_STRUCTURE
PROCEDURE PROC_METHOD
PROCEDURE PROCEDURE_RESULT
SUBSTANCE_ABUSE SEVERITY