Healthcare Natural Language API

Healthcare Natural Language API は、Cloud Healthcare API の一部であり、自然言語モデルを使用して医療テキストから医療情報を抽出できます。

このコンセプト ガイドでは、Healthcare Natural Language API の基本的な使用方法について説明します。次の内容を含みます。

  • Healthcare Natural Language API に対して作成できるリクエストの種類
  • Healthcare Natural Language API に対するリクエストを作成する方法
  • Healthcare Natural Language API からのレスポンスを処理する方法

概要

Healthcare Natural Language API は、医療テキストから医療情報を抽出します。この医療情報には次のものが含まれます。

  • 医薬品、医療処置、症状などの医療コンセプト
  • 時間的関係、サブジェクト、確実性評価などの機能
  • 副作用や投薬量などのリレーション

Healthcare Natural Language API か AutoML Entity Extraction for Healthcare かを選択

Healthcare Natural Language API には、医療テキストから医療のコンセプトや関連を抽出する、事前トレーニング済みの自然言語モデルが用意されています。Healthcare Natural Language API は、事前定義された一連の 医療ナレッジ カテゴリにテキストをマッピングします。

AutoML Entity Extraction for Healthcare を使用すると、独自のアノテーション付き医療テキストと独自のカテゴリを使用してトレーニングされたカスタム エンティティ抽出モデルを作成できます。詳しくは、AutoML Entity Extraction for Healthcare ドキュメントをご覧ください。

利用できるロケーション

Healthcare Natural Language API は次のロケーションで利用できます。

場所の名称 ロケーションの説明
asia-south1 ムンバイ(インド)
australia-southeast1 シドニー(オーストラリア)
europe-west2 ロンドン(イギリス)
europe-west4 オランダ
northamerica-northeast1 モントリオール(カナダ)
us-central1 アイオワ(米国)

Healthcare Natural Language API の機能

Healthcare Natural Language API では、医療テキストで医療のコンセプトや関係を検査します。analyzeEntities メソッドを使用してエンティティ分析を行います。

エンティティ分析リクエスト

Healthcare Natural Language API は REST API であり、JSON リクエストとレスポンスで構成されます。以下のセクションでは、特定の医療テキストからさまざまな医療分析情報を抽出する方法について説明します。

エンティティ分析リクエストには次のフィールドが含まれます。

  • documentContent には、医療テキストから構成されるリクエストのデータが含まれています。医療テキストの最大サイズは 20,000 Unicode 文字です。
  • licensedVocabularies[]:(省略可)。SNOMED CT の用語。米国のユーザーのみが対象です。
  • alternativeOutputFormat:(省略可)。FHIR バンドル形式。

エンティティ分析のレスポンス フィールド

エンティティ分析は、検出された医療ナレッジへの言及、医療コンセプト、医療ナレッジへの言及間の次のような関係を返します。

  • entityMentions は、ソースの医療テキストでの医療ナレッジ エンティティの存在です。エンティティへの言及にはそれぞれ次のフィールドがあります。

    • mentionId: レスポンスに記述されるエンティティへの言及の一意の識別子。
    • type: エンティティへの言及の医療ナレッジ カテゴリ
    • text: textContent フィールドから構成され、エンティティへの言及を含む医療テキストの抜粋と、ソース医療テキストでのエンティティへの言及があった場所(offset)を記述します。
    • temporalAssessment: リンクされたエンティティが CURRENTCLINICAL_HISTORYFAMILY_HISTORYUPCOMINGOTHER のいずれかのエンティティの言及に関係する方法を指定します。
    • certaintyAssessment: LIKELYSOMEWHAT_LIKELYUNCERTAINSOMEWHAT_UNLIKELYUNLIKELYCONDITIONAL のいずれかの医療コンセプトの否定または認定。
    • subject: 医療コンセプトが PATIENTFAMILY_MEMBEROTHER のいずれかに関係するサブジェクトを指定します。
    • linkedEntities: このエンティティの言及に関係する可能性のある医療コンセプトのリスト。リンクされたエンティティでは、entities のエンティティに医療コンセプトをリンクする entityId を指定します。
  • entities では、リンクされたエンティティ フィールドの医療コンセプトを記述します。各エンティティは、次のフィールドを使用して記述されます。

    • entityId: linkedEntities フィールドの一意の識別子。
    • preferredTerm: 医療コンセプトの優先語。
    • vocabularyCodes: サポートされている医療語彙での医療コンセプトの表現。
  • relationships は、エンティティへの言及間の有向関係を定義します。 この例では、関係のタイトルは「Insulin regimen human」で、関係のオブジェクトは「5 units」です。

  • confidence: 関係におけるモデルの信頼度の指標。0 ~ 1 の範囲の数値で表します。

リストされているフィールドとは別に、レスポンスには additionalInfo フィールドが含まれている場合があります。このフィールドには、エンティティへの言及の種類に関するその他の説明が含まれます。その他の情報をご覧ください。

サポートされている言語

Healthcare Natural Language API では、英語のテキストからの医療情報の抽出のみがサポートされます。

サポートされている医療用語

Healthcare Natural Language API では、次の医療用語がサポートされます。

  • Foundational Model of Anatomy
  • Gene Ontology
  • HUGO Gene Nomenclature Committee
  • Human Phenotype Ontology
  • ICD-10 Procedure Coding System
  • ICD-10-CM
  • ICD-9-CM
  • LOINC
  • MeSH
  • MedlinePlus Health Topics
  • Metathesaurus Names
  • NCBI Taxonomy
  • NCI Thesaurus
  • National Drug File
  • Online Mendelian Inheritance in Man
  • RxNorm
  • SNOMED CT(米国のユーザーのみ利用可能)

サポートされている医療ナレッジ カテゴリ

Healthcare Natural Language API は、医療ナレッジ カテゴリを entityMentions.type フィールドに割り当てます。サポートされている医療ナレッジ カテゴリのリストは次のとおりです。

医療ナレッジ カテゴリ 説明
ANATOMICAL_STRUCTURE 細胞、組織、システムなど、人体の複雑な部分。
BODY_FUNCTION 人の身体の機能
BF_RESULT 身体機能の結果。
BODY_MEASUREMENT 人間の体の標準的な測定値(バイタルサインなど)、温度計や聴診器などの基本的な計器を使用した複雑なテストや手順なしで取得されたもの。
BM_RESULT 身体測定の結果。
BM_UNIT 身体測定の単位。
BM_VALUE 身体測定の値。
DATE 診断日、治療日、放射線治療日などの日付アノテーション。
LABORATORY_DATA 身体サンプルをテストした結果
LAB_SPECIMEN 検査またはサンプリングのために体から収集された生物学的資料。
LAB_RESULT 検査データの定性的説明(「増加」、「減少」、「正」、「負」など)。
LAB_VALUE 検査データのインスタンスの値。
LAB_UNIT 検査値の測定単位。
MEDICAL_DEVICE 物理または仮想の計器。
MEDICINE 病気の治療や予防のための薬物やその他の製剤。
MED_DOSE 1 回分の投薬量。
MED_DURATION 医薬品の投与期間。
MED_FORM 特定の医薬品の物質的特性。
MED_FREQUENCY 医薬品の投与頻度。
MED_ROUTE 医薬品を投与する身体内の場所。
MED_STATUS 「継続」、「開始」、「再開」、「停止」、「切り替え」、「増量」、「減量」など、既存の医薬品のステータス。
MED_STRENGTH 1 回分の投薬量に含まれる有効成分の量。
MED_UNIT 医薬品の有効成分の測定単位
MED_TOTALDOSE 一度に投与する医薬品の量
PROBLEM 所見や病気などの症状
PROCEDURE 診断または治療処置。
PROCEDURE_RESULT 医療処置の結果。
PROC_METHOD 医療処置を行うために使用される方法。
SEVERITY 症状の重症度。
SUBSTANCE_ABUSE 向精神薬の乱用に関する説明。
CLINICAL_STATUS 「活性」、「反復」、「再帰」、「解決済み」などのがんのケースのステータス。
DIMENSIONS 腫瘍、腫瘍、または異常な成長の測定値。
GENE_STUDIED BRCA1、p53、ALK など、腫瘍形成に直接的または間接的につながる遺伝子が研究されました。
HISTOLOGICAL_GRADE がん細胞の出現を採点する分類システム。
RADIATION_DOSAGE 患者に与える放射線の量。
ONSET 患者ががん関連の問題を初めて観測した日付を表す日付アノテーション。
VARIATION_CODE Clinvar や HGVS などの主要なコーディング システムで検出される特定のゲノム バリアントに与えられるコード。

サポートされている機能的特徴のカテゴリ

Healthcare Natural Language API は、コンテキストからのエンティティへの言及の機能(属性)を推測できます。たとえば、「Kusuma の母親は糖尿病である」というステートメントには、「糖尿病」の条件に subject FAMILY_MEMBER の機能があります。

時間的関係

temporalAssessment フィールドで返される時間的関係によって、このエンティティへの言及がサブジェクトと時間的にどのように関係しているのかが説明されます。

Healthcare Natural Language API は、次の時間的関係をサポートしています。

  • CURRENT
  • CLINICAL_HISTORY
  • FAMILY_HISTORY
  • UPCOMING
  • OTHER

件名

subject フィールドに返されるサブジェクトは、エンティティへの言及が関係している個人について記述します。

Healthcare Natural Language API は、次のサブジェクトをサポートしています。

  • PATIENT
  • FAMILY_MEMBER
  • OTHER

確実性評価

certaintyAssessment フィールドに返される確実定評価は、元のメモの記載者の信頼度を記述します。たとえば、元のメモに「患者はのどの痛みの症状がある」と記されている場合、確実性評価では、患者にのどの痛みの症状があった可能性についての元のメモの記載者の信頼度を示す LIKELY 値が返されます。元のメモに「患者にはのどの痛みの症状はない」と記されている場合、確実性評価では、患者にのどの痛みの症状があった可能性についての元のメモの記載者の信頼度を示す UNLIKELY 値が返されます。

確実性評価は、次のいずれかの値になります。

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

その他の情報

additionalInfo フィールドには、エンティティへの言及に関する詳細が含まれます。たとえば、DATE エンティティへの言及の additionalInfo フィールドは、日付の種類に関する詳細で、次のいずれかに分類されることがあります。

  • ADMISSION_DATE
  • CONSULTATION_DATE
  • DISCHARGE_DATE
  • SERVICE_DATE
  • VISIT_DATE
  • DIAGNOSIS_DATE
  • MED_STARTED_DATE
  • MED_ENDED_DATE
  • NOTE_DATE
  • PROCEDURE_DATE
  • RADIATION_STARTED_DATE
  • RADIATION_ENDED_DATE
  • STAGE_DATE

エンティティへの言及でサポートされている関係

Healthcare Natural Language API は、周辺の医療テキストに基づいて、エンティティへの言及の間の関係を推定できます。レスポンスでは、関係のサブジェクトが subjectId で識別され、関係のオブジェクトが objectId で識別されます。

Healthcare Natural Language API は、エンティティへの言及の間の次の関係をサポートしています。

件名 オブジェクト
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

FHIR バンドルとしての Healthcare Natural Language API 出力

alternativeOutputFormat フィールドを FHIR_BUNDLE に設定して analyzeEntities メソッドをリクエストすると、次の JSON オブジェクトがレスポンスに含まれます。

  • エンティティへの言及、エンティティ、関係
  • すべてのエンティティ、エンティティへの言及、JSON 形式の関係を含む、文字列として表される FHIR R4 バンドル

FHIR R4 バンドルを作成するには、Healthcare Natural Language API を使用して、エンティティへの言及、エンティティ、関係を FHIR リソースとその要素にマッピングします。次の表に、これらのマッピングの一部を示します。

Healthcare Natural Language API エンティティへの言及 医療ナレッジ カテゴリ FHIR R4 のリソースと要素
PROBLEM Condition
PROBLEM Condition.category
PROBLEM Condition.status
PROBLEM ANATOMICAL_STRUCTURE Condition.bodySite
PROBLEM ANATOMICAL_STRUCTURE Condition.evidence
PROBLEM SEVERITY Condition.severity
PROCEDURE Procedure
PROCEDURE Procedure.status
PROCEDURE Procedure.code
PROCEDURE ANATOMICAL_STRUCTURE Procedure.bodySite
PROCEDURE MEDICAL_DEVICE Procedure.usedCode
PROCEDURE PROBLEM Procedure.reasonReference
MEDICINE MedicationStatement
MEDICINE MedicationStatement.status
MEDICINE MedicationStatement.medication
MEDICINE PROBLEM MedicationStatement.reasonReference
MEDICINE MED_DOSE MedicationStatement.dosage.doseAndRate.doseQuantity
MEDICINE MED_FREQUENCY MedicationStatement.dosage.text
MEDICINE MED_ROUTE MedicationStatement.dosage.route
MEDICINE MED_STRENGTH MedicationStatement.dosage.doseAndRate.doseQuantity
MEDICINE MED_UNIT MedicationStatement.dosage.doseAndRate.doseQuantity

テキストからエンティティを FHIR R4 バンドルとして抽出するには、FHIR R4 バンドルとして出力を抽出するをご覧ください。