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
: リンクされたエンティティがCURRENT
、CLINICAL_HISTORY
、FAMILY_HISTORY
、UPCOMING
、OTHER
のいずれかのエンティティの言及に関係する方法を指定します。certaintyAssessment
:LIKELY
、SOMEWHAT_LIKELY
、UNCERTAIN
、SOMEWHAT_UNLIKELY
、UNLIKELY
、CONDITIONAL
のいずれかの医療コンセプトの否定または認定。subject
: 医療コンセプトがPATIENT
、FAMILY_MEMBER
、OTHER
のいずれかに関係するサブジェクトを指定します。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 バンドルとして出力を抽出するをご覧ください。