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
フィールドに医療ナレッジ カテゴリが割り当てられます。サポートされている医療ナレッジ カテゴリのリストは次のとおりです。腫瘍学、健康の社会的決定要因(SDOH)、保護医療情報(PHI)のグループに属するエンティティ言及タイプは、プレビュー版でのみ使用できます。
グループ | 医療ナレッジ カテゴリ | 説明 |
---|---|---|
General | ANATOMICAL_STRUCTURE
|
細胞、組織、システムなど、人体の複雑な部分。 |
BODY_FUNCTION
|
人の身体の機能 | |
BF_RESULT
|
身体機能の結果。 | |
BODY_MEASUREMENT
|
人体の標準的な測定値。体温計や聴診器などの基本的な機器を使用して、複雑な検査や手順を行わずに得られるバイタルサインなど。 | |
BM_RESULT
|
身体測定の結果。 | |
BM_UNIT
|
身体測定の単位。 | |
BM_VALUE
|
身体測定の値。 | |
LABORATORY_DATA
|
身体サンプルをテストした結果 | |
LAB_RESULT
|
臨床検査データの定性的説明(「増加」、「減少」、「陽性」、「陰性」など)。 | |
LAB_VALUE
|
臨床検査データのインスタンスの値。 | |
LAB_UNIT
|
臨床検査値の測定単位。 | |
MEDICAL_DEVICE
|
物理または仮想の計器。 | |
MEDICINE
|
疾患の治療や予防のための薬剤などの製剤。 | |
MED_DOSE
|
医薬品の投与量。 | |
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
|
がんケースのステータス。「発生中」、「再発」、「解決済み」など。 |
DATE
|
診断日、治療日、放射線治療の日付などの日付のアノテーション。日付のすべての要素を抽出しますが、年が含まれていない場合もあります。 | |
DIMENSIONS
|
腫瘍、腫瘤、異常な増殖の測定値。 | |
GENE_STUDIED
|
BRCA1、p53、ALK など、直接または間接的に腫瘍形成につながる遺伝子で調査されたもの。 | |
HISTOLOGICAL_GRADE
|
がん細胞の外観を分類する分類システム。 | |
LAB_SPECIMEN
|
テストやサンプリングのために体から収集した生物学的物質。 | |
RADIATION_DOSAGE
|
患者に照射される放射線の量。 | |
ONSET
|
患者ががん関連の問題を最初に確認した日付を表す日付アノテーション。 | |
VARIATION_CODE
|
ClinVar や HGVS などの主要なコーディング システムで検出された特定のゲノム バリアントに与えられたコード。 | |
健康の社会的決定要因(SDoH)(プレビュー) | AGE
|
年齢 ID。動画には、「記載された年齢よりも若いように見える」、「中年」、「78 歳」、「ティーン」など、年齢に関連するフレーズが含まれます。 注: HIPAA では、90 歳以上の場合に限り、年齢が PHI として分類されます。詳細については、HIPAA プライバシー ルールの概要をご覧ください。 |
FAMILY
|
患者の家族構造または親族を表すフレーズ(「既婚で 2 人の子供がいる」、「兄弟」、「妻」、「親の支援を受けている」、「離婚」など)。 | |
LIVING_SITUATION
|
患者の生活状況を表すフレーズ(「ルームメートと一緒」、「24 時間、年中常に在宅の看護師と一緒」、「最近引っ越した」など)。 | |
SOCIAL_IDENTITY
|
患者または家族の社会的アイデンティティを説明するフレーズ(人種、民族、性的指向、宗教、国籍、話す言語、話さない言語、出身国など)。 | |
PHYSICAL_APPEARANCE
|
患者や家族の最も顕著な、あるいは明らかな身体的特性を表すフレーズ。「右の頬の怪我」、「ダウン症」、「肥満」、「左足を切断」など。 | |
OCCUPATION
|
患者や家族の職業、就業状況を説明するフレーズ。「退職した母親」、「溶接工として 20 年間働いた」、「昨年失業した」など。 | |
保護医療情報(PHI)(プレビュー) | PERSON_NAME
|
個人を識別する一般的な名前の ID。「医師」、「Mrs.」、「MD」などを含む。 |
ORGANIZATION_NAME
|
クリニック、老人ホーム、病院など、PHI を収集する医療機関の ID。 | |
GENERIC_ID
|
患者の SSN、医療機関の番号など、医療記録、患者、医師、病院を識別する汎用 ID。 | |
LOCATION
|
建物、通り、都市、州、郵便番号などの名前と番号が含まれる地理的場所。 | |
PHONE_NUMBER
|
電話番号、FAX 番号、またはページャー番号を示す番号。 | |
EMAIL_ADDRESS
|
メールアドレスの ID。 | |
URL
|
ウェブサイトのアドレス。 | |
ZIPCODE
|
郵便番号の ID。 |
サポートされている機能的特徴のカテゴリ
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 バンドルとして抽出するをご覧ください。