見出し画像

いつになったらChatGPTは病歴要約を自動で作ってくれるのか? 考察以外編

※ 最新バージョン (2023/8) の ChatGPT-4 とpluginsで「ほぼ全自動」の病歴要約作ってみました。興味がある方はこちらどうぞ


0. はじめに

学術論文をAI (ChatGPT) に代行させることに対しては賛否があります。しかし病歴要約, 特に考察を含まない箇所, 例えばJOSLER 検査項目, 現病歴, 退院時処方などの入力は機械的な作業です。手間を省くという意味でGPT利用は個人的に賛成です。ちょうど1カ月前に【現病歴】を抽出して自動作成する方法を紹介しました。ここ数か月でChatGPTの一般開発が進んだのでまとめてきなものを作成しました。病歴要約のうち, 今回は考察を含まない【検査所見】【現病歴】【退院時処方】などの抽出のみとなります。前編パートです。

1. 注意事項

1.1 個人情報の取り扱い

患者情報の取り扱いに関してはいうまでもなく, 細心の注意を払う必要があります。ChatGPTの設定でChat履歴をoffにした方が無難です。

1.2 AIが作成した文章の取り扱いについて

Science, Natureまた主要な大学が声明を発表していますが現時点 (2023/5) ではバラバラです。基本的にAIが全て作成したreportは認められないでしょう。しかし, 校正や引用文献の検索など全くAIに頼らない論文, reportも現実的ではなくなると思います。人工的かどうかについての判別法も精度が低く一部弊害も報告されています。

考察を除いた病歴要約, 例えば検査所見などは形式が厳密に決まっており, むしろ機械的である方が好まれます。

考察以外は原理的に人間が書いたかAIが書いたか判別することは非常に困難であると考えます。

2. 目的

タイトルにもあるとおり本記事は病歴要約を自動作成することを目標としています。病歴要約のような決まった形式のレポートをChatGPTを用いて作成できるのかというデモ的な意味合いが強いです。文章の質には期待しないでください。カルテ原文の雑多な文章から, 必要な語句, 文章を自動で抜き出し, 【病歴要】約の形にすることを目標としています。現モデルの精度から一度のプロンプトで完成形を作成することは困難ですので, 飽くまである程度の品質の下書きが楽に書ければラッキーくらいな気持ちで読んでください。そういうわけでカルテ原文筆者とChatGPTの共同で作成した医学的にみても極めていい加減な文章です。

カルテ原文:病院奇譚

3. 作成のコツ

3.1 一括プロンプトは難しい

ChatGPTが1回のやりとりで扱えるデータ量は4096トークン, 日本でいうとだいたい2800-3000文字です。それを超えるとエラーが出ますので, 3000文字以内で1回のやりとりを行う必要があります。しかしJOSLER形式の2000文字程度の病歴要約をプロンプトと原文を合わせて 3000文字以内に収めることは現実的的ではありません。プロンプトを分割して実験してみましたところ。
初めのプロンプトで「これから条件を貼り付けていくので解除というまで要約は開始しないでください。」と指示します。

条件①

次々と条件を貼り付けていきます。

条件②

最後の条件を貼り付けてカルテ原文コピペし 「解除 病歴要約作ってください

カルテ原文

結果:大失敗 
出来上がった病歴要約は条件を全く無視したものがでした….

論文執筆に生成AIを使用する際の注意点
段落ごとに試行を繰り返さないと、AIが余計な文章を加えてしまう可能性が高いようです。したがって、長大な文章を一気に出力させるのは、論文執筆には向きません

歴史研究者による論文執筆のための生成AI(ChatGPT)活用法

長文でプロンプトした場合, 初めのプロンプト(条件①)から順番に指示の強さが薄れていくようです。

プロンプト分割して大量に実行すると混乱を招くみたいです。

では次に1度のやりとりで大量の文章 (全プロンプト+カルテ原文 約2500文字) を詰め込んだ場合

結果:やはり低クオリティの文章が出力されました…

特に「現病歴は入院までの記述です。入院後の話は書かないで下さい」と言っても中々理解されず。入院後の文章を提示してしまうと現病歴に含めてしまうということが多々ありました。

というわけで出来るだけ細かく, 分割して作成した方が精度が上がるという, 自動化相反する事実に直面して今いました。

3.1 分割して作成するしかない

ある程度の自動化, 効率化を保ちつつ精度の高い文章を作成する工夫を考えました。高度な言語処理能力が必要な項目として【現病歴】>>【入院時現症】>>その他 【検査項目】等 と考えています。
その他の項目は文字列のただの抽出+並び替えですのでGPT3.5でも結果は大差ありません。また一度に処理が可能です。
というわけで①現病歴 ②入院時現症 ③その他 の 3回操作で行うのが今のところ最も効率的だと思われます。

4. 作成

4.0 準備 

※個人情報保護のため private modeに切り替え推奨します。
・カルテ情報を準備 電子カルテからテキストファイルの形式で取り出す。
・退院時サマリーなどの紙文書をドキュメントスキャナーで読み取り→OCR処理

4.1 現病歴

以下のプロンプトをカルテ原文(現病歴が含まれている箇所)と一緒にChatGPTに読み込ませました。
↓現病歴プロンプト

【現病歴】
・以下の条件のもと【現病歴】を200文字程度で記述して下さい。
・医学用語に変換してください。例として、喉の痛みは「咽頭痛」、息苦しさは「呼吸苦」、
ふしぶしの痛みは「関節痛」と表現します。熱さましは「解熱鎮痛薬」
・入院に至る経緯について記載し、最後の行は精査加療のため何月何日に〇〇へ入院となった、
などの表現で終わる。入院後の経過については記述不要。
・常体で記述(ですます調ではない)
・過去形で記述 (~した, ~であった, ~された)
・患者の視点から記述, 基本的には受動態で ~された ~を受けた ~と指摘された
・認める, にて という語句を使用しない
・基礎疾患がある場合は、文章を「2年前から近医で降圧薬加療を受けている30歳の男性。」で始めてください。
基礎疾患がない場合は、「生来健康な20歳の女性。」で始めてください。
年齢, 基礎疾患はカルテ原文を参考に変更すること。
・〇年〇月〇日で統一  
・〇〇病院, △△医療センター, □□クリニックなど病院名が実名で記述されていたら近医, または前医に変更 
・風邪薬など薬品名が具体的でなければ 風邪薬 (詳細不明) と記述
・薬品は一般名 例:フロモックス→セフカペンピボキシル塩酸塩
・「その結果」という表現は使わない
・「検査で~が見られ」 という表現は使わない 「検査で〇〇の所見が指摘された。」や「△が疑われた。」
「または検査で〇〇が疑われ などとする
」
・精査と治療→精査加療
・検査歴, 既往歴, 社会歴, 生活歴などから得られた患者背景を用いてもよいが, 
入院後の事実に関しては述べてはいけない。
・高血圧→高血圧症, 胆石→胆石症
・「急に」→「突然」, 「現れた」→「出現した」

カルテ原文:ここから下にカルテ原文をコピペ

※プロンプトは適当に作っているので改良の余地が大ありです

【現病歴】出力された文

70点くらいでしょうか。いろいろな文章で実験しましたが, まあまの型にはなっているかなと思います。

4.2 入院時現症

同様に下のプロンプトとカルテ原文の入院時現症が含まれている箇所をコピペして作成しました。

↓入院時現症プロンプト

【入院時現症】
カルテ原文から, 身長, 体重, バイタルサイン, 身体所見を抽出し, 以下の指示に従って
【入院時現症】を作成してください。条件に示された項目がカルテ原文に記載されていない場合は、
正常所見を記述するよう指示されています。数値に該当する項目がない場合は, ●で置き換えてください。
具体的な身体所見の記載がない場合は, 「記載がないため不明」という表現は使わずに省略してください。
所見がある場合は「~を認める」、ない場合は「~はない」と記述し「不明」という言葉は使わず省略してください
身体所見の具体例 以下の例がカルテ原文に明記されていたら追記してください。なければ省略してください。
:JCS, GCS, 瞳孔径, CVA叩打痛の有無 刺青の有無 手術創の有無, 腸蠕動音, PS, 関節の圧痛, 腫脹, 
リンパ節の蝕知, 神経学的所見, 構音障害, 共同偏視, 空間無視の有無, MMT (例えば三角筋4) , 長谷川式知能評価スケール
形式の例:【入院時現症】身長 ● cm,体重 ● kg.体温 ●℃.脈拍 ● /分,整.血圧 ●/●mmHg.呼吸数 ● /分.眼瞼結膜に貧血はなく,
眼球結膜に黄疸はない.胸部:肺音.心音に異常はない.腹部:平坦,軟で圧痛はない.肝・脾を触知しない.
四肢:下腿浮腫を認めない.皮疹を認めない.
カルテ原文から情報を抽出し、上記の形式に従って【入院時現症】を作成してください。
カルテ原文:
【入院時現症】出力された文

いろいろな文章で試しましたが結構まともに返してくれました。

4.3 その他【検査所見】など

高度な処理を必要としない作業なので1度にプロンプトと大量の文章を提示しても混乱しません。GPT3.5で十分です。

カルテ原文から以下の条件で語句, 文章を抜き出し以下の形式で出力してください。
出力形式:
【確定診断名】(#1(主病名)、#2(副病名1)、#3(副病名2))
【主訴】
【既往歴】
【社会生活歴】
【家族歴】
【検査所見】
【プロブレムリスト】(#1.、#2.、#3.)
【退院時処方】

条件:医学用語に変換してください。例として、喉の痛みは「咽頭痛」、息苦しさは「呼吸苦」、
ふしぶしの痛みは「関節痛」と表現します。以下の書式に従って記述してください:
【確定診断名】の(主病名)は入院の原因となった疾患名 副病名12は主病名とは別に今回の入院経過で
医学的関連性の重要な疾患, 既往症などる
【主訴】患者が医療従事者に対して訴える症状の中で最も重要なもの 主観的に
【既往歴】現在治療していない過去の病歴, 疾患
【社会生活歴】アレルギー歴:, 喫煙歴:●本×●年などで, 飲酒歴, 職業
【検査所見】主要な検査所見を抜き出して以下の形式で文字列を作成してください。検査所見以外の記載は
不要です。該当する項目がなければ● で置き換えてください。
尿所見:タンパク(-), 潜血(-). 
血液所見:赤血球 ●万/μL, Hb ● g/dL, Ht ●%, 白血球 ●/μL(NE ●%, LY ●%, MONO ●%, EOS ●%)
, 血小板 ●万/μL, PT ●%, APTT ●秒, 血漿フィブリノゲン ● mg/dL, 血清FDP ●μg/mL.
 血液生化学所見:TP ● g/dL, Alb ● g/dL, フェリチン ● ng/mL, AST ● U/L, ALT ● U/L, LD ● U/L,
 BUN ● mg/dL, Cr ● mg/dL. 免疫血清学所見:CRP ● mg/dL, リウマトイド因子陰性, 
MPO-ANCA < ● E・U, PR3-ANCA <● E・U, 抗核抗体陰性.」
【プロブレムリスト】#1.は主病名 #2, #3は主病名, 入院後の経過と関連する重要な疾患や検査異常,
 症状など
【退院処方】
I. ランソプラゾール 15 mg 1T 分1 夕食後, ワルファリンカリウム 1 mg 3.5T1 夕食後
II. ランソプラゾール 15 mg/日, ワルファリンカリウム 3.5mg/日
退院時処方を抽出し上記のような薬品名 用量用法 カンマ半角スペースで改行をせずに文字列を作成
してください。薬品名はタケプロンではなくランソプラゾールのように一般名 
キャットフードも処方に含めます 表記はIかIIで統一

カルテ原文:

血液所見は分野が違えば以下のものを流用してください
血液内科:

血液所見; 赤血球 ●万/μL, Hb ● g/dL, MCV ● fl, 網赤血球 ●‰, 白血球 ●/μL(Seg ●%, Stab ●%, Ly ●%, Mono ●%, Eo ●%), 血小板 ●万/μL, PT-INR ●, APTT ●秒, 血漿フィブリノゲン ● mg/dL, Dダイマー ●μg/dL. 血液生化学所見; TP ● g/dL, Alb ● g/dL, フェリチン ● ng/mL, AST ● U/L, ALT ● U/L, LD ● U/L, ALP ● U/L, BUN ● mg/dL, 尿酸 ● mg/dL, Na ● mEq/L, K ● mEq/L, Cl ● mEq/L. 可溶性IL-2受容体 ● U/mL. 免疫血清学所見; CRP ● mg/dL, HBs抗原陰性, HBs抗体陰性, HBc 抗体陰性, HCV抗体陰性.

腎臓内科:

尿所見:タンパク ●+,潜血(-).沈渣;硝子円柱多数,赤血球円柱はない.タンパク ● g/日,蓄尿量 ● mL/日.尿中IgG ● mg/dL,尿中トランスフェリン● mg/日.血液所見:赤血球 ●万/μL,Hb ● g/dL,Ht ●%,白血球 ●/μL(NE ●% LY ●% MONO ●% EOS ●%),血小板 ●万/μL,PT ●%(基準70〜140),PT-INR ●(基準0.80〜1.15),APTT ●秒(基準25〜40),血漿アンチトロンビンⅢ ●%(基準79〜121),血漿フィブリノゲン ● mg/dL(基準150〜400),血清FDP ●μg/mL(基準4以下).血液生化学所見:TP ● g/dL,Alb ● g/dL,IgG ● mg/dL,IgA ● mg/dL,IgM ● mg/dL,IgE ● IU/mL,トランスフェリン ● m g/dL,選択指数 ●と高選択,AST ● U/L,ALT ● U/L,BUN ● mg/dL,Cr ● mg/dL,総コレステロール ● mg/dL,トリグリセリド ● mg/dL,Na ● mEq/L,K ●mEq/L,Cl ● mEq/L.免疫血清学所見:CRP ● mg/dL,抗核抗体陰性,CH50 ● U/mL,C3 ● mg/dL,C4 ● mg/dL

循環器内科:


血液所見:赤血球 ●万/μL,Hb ● g/dL,Ht ●%,白血球 ●/μL,血小板 ●万/μL.血液生化学所見:TP ● g/dL,総ビリルビン ● mg/dL,AST ● U/L, ALT ● U/L,LD ● U/L,γ-GTP ● U/L,BUN ● mg/dL,Cr ● mg/dL,尿酸 ● mg/dL,血糖 ● mg/dL,HbA1c ●%,総コレステロール ● mg/dL,トリグリセリド ● mg/dL,Na ● mEq/L,K ● mEq/L,Cl ● mEq/L,BNP ● pg/mL.動脈血ガス分析 (自発呼吸,room air):pH ●,PaCO2 ● Torr,PaO2 ● Torr,HCO3- ● mEq/L, SaO2 ●%.
【現病歴】【入院時現症】以外の出力された文


再現性が高く, ほとんど訂正不要でした。

5. まとめ

・一度に大量の文章を読み込ませるとGPTが混乱する。
・高度な処理が必要な【現病歴】【入院時現症】とそれ以外は分ける。

いつになったら自動で作成してくれるのか

→→まだまだですね。

しかし, 下書き作成という点では現時点でも実用性十分にありです。

特に検査所見退院時処方等の入力は精度が高く, ただの機械作業ですので
AIに是非手伝ってもらうべきだと考えます。

続きが気になる方は ↓ 後編 (入院後経過と考察編)


 病歴要約の形式にしたword file (text file) はダイレクト症例報告用のパワーポイントへ流用できます。そちらの手法は以下の記事で紹介しています。興味のあるかたはどうぞ。