電子カルテ

電子カルテとText Blazeを用いたCHADS₂およびCHA₂DS₂-VAScスコアの自動計算

心房細動患者の脳梗塞リスクを評価する際、CHADS₂スコアは広く用いられてきましたが、実際にはリスクを過小評価することがあります。特に、CHADS₂スコアが0点や1点の低リスク群とされた患者の中にも、脳梗塞リスクが無視できない場合があることが報告されています。これを補うために、CHA₂DS₂-VAScスコアが開発されました。

CHA₂DS₂-VAScスコアは、CHADS₂スコアの項目に加えて、性別(女性)、血管疾患の既往、65〜74歳という追加項目を含みます。これにより、リスクの評価精度が向上し、より正確な抗凝固療法の適応判断が可能となっています。

当院では、もともとCHADS₂スコアを計算するツールを開発していましたが、臨床上の精度向上を図るためにCHA₂DS₂-VAScスコアへの発展を行いました。今回はその具体的な方法とコード変更点について解説します。

Text Blazeとは?

Text Blazeは、頻繁に使うテキスト入力を自動化する便利なツールで以前からブログでも何回か紹介しています。これを用いて電子カルテ情報を基にスコア計算を行うことが可能です。

改良点と自動化の工夫

もともとのCHADS2スコア計算コードは下記になります。

心不全 {formmenu: Yes; default=No; name=CHF; cols=6}
高血圧{formmenu: Yes; default=No; name=hypertension; cols=6}
年齢 >= 75 {formmenu: Yes; default=No; name=age; cols=6}
糖尿病{formmenu: Yes; default=No; name=diabetes; cols=6}
脳梗塞/TIA既往 {formmenu: Yes; default=No; name=stroketia; trim=right; cols=6}
{if: CHF=="Yes"; trim=yes}{chfscore=1}{else}{chfscore=0}{endif}{if: hypertension=="Yes"}{hypertensionscore=1}{else}{hypertensionscore=0}{endif}{if: age=="Yes"}{agescore=1}{else}{agescore=0}{endif}{if: diabetes=="Yes"}{diabetesscore=1}{else}{diabetesscore=0}{endif}{if: stroketia=="Yes"}{stroketiascore=2}{else}{stroketiascore=0}{endif}
{chads2=chfscore+hypertensionscore+agescore+diabetesscore+stroketiascore}
CHADS₂ Score: {=chads2}
{if: chads2==0}血栓塞栓症イベントのリスクは低い。抗凝固薬を服用しない場合の年間イベント発生リスクは約1%です。ガイドラインでは抗凝固療法は必須ではありません。
{elseif: chads2==1}血栓塞栓症イベントのリスクは低~中程度。抗凝固薬を服用しない場合の年間イベント発生リスクは約1.5%です。抗凝固療法が推奨です。
{elseif: chads2==2}血栓塞栓症イベントのリスクは中程度。抗凝固薬を服用しない場合の年間イベント発生リスクは約2.5%です。抗凝固療法が推奨されます。
{elseif: chads2==3}血栓塞栓症イベントのリスクは中程度。抗凝固薬を服用しない場合の年間イベント発生リスクは約5%です。抗凝固療法が推奨されます。
{elseif: chads2>=4}血栓塞栓症イベントのリスクは高いです。抗凝固薬を服用しない場合の年間イベント発生リスクは〉7%です。抗凝固療法が推奨されます。{endif}

以下のポイントで工夫を施しました。

  1. 電子カルテ情報から自動抽出
    • 電子カルテに記載される病名や患者の基本情報(年齢、性別など)を正規表現(Regex)を用いて自動抽出します。
  2. CHADS₂とCHA₂DS₂-VAScスコアの同時計算
    • 一つのコード内で両スコアを計算することで、両スコアの結果を一目で比較できます。
  3. 抗凝固療法推奨の自動判定
    • 各スコアに基づいた抗凝固療法の適応有無を自動表示し、臨床判断をサポートします。

コード変更点の解説

  • 性別項目の追加:女性の場合、CHA₂DS₂-VAScスコアに1点追加されるため、この情報を自動抽出する機能を追加しました。
  • 年齢区分の細分化:年齢を「65~74歳」と「75歳以上」で細かく分け、それぞれの得点を適切に加算するよう調整しました。
  • 血管疾患既往項目の追加:これにより動脈硬化疾患の既往がある患者をより正確に評価できます。

新しく作成したCHADS₂とCHA₂DS₂-VAScスコアの同時計算コード

{note: preview=no}{run: hypertension= testregex(chart,"(#|#|♯)\s*高血圧|HT|若年性高血圧")
CHF=testregex(chart,"(#|#|♯)\\s*(心不全|心機能障害|CHF)")
diabetes=testregex(chart,"(#|#|♯)\\s*(糖尿病|1型糖尿病|2型糖尿病|境界型糖尿病|DM|Diabetes)")
vasculardisease=testregex(chart,"(#|#|♯)\\s*(冠動脈疾患|狭心症|心筋梗塞|冠攣縮性狭心症|冠動脈狭窄|(不安定)?\\s*狭心症|(陳旧性)?\\s*心筋梗塞|冠動脈硬化|大動脈瘤|閉塞性動脈硬化症)")
stroketia=testregex(chart, "(#|#|♯)\\s*(脳血管疾患|脳梗塞|一過性脳虚血発作|脳卒中|陳旧性脳梗塞|脳梗塞後遺症)")}
{sei=extractregex({site: text; selector=.names-age},"(.)性")}{sex={=sei}&"性"}
{age=extractregex({site: text; selector=.names-age},"(..)歳")}{if: age>=75}{age65_74=yes} {age75=yes}{elseif: age >=65}{age65_74=yes} {age75=no}{else}{age65_74=no} {age75=no}{endif}{chart={site: text; selector=.css-8u2jis; page=https://karte.medley.life/*; select=ifneeded}}{endnote}
心不全 {formmenu: Yes; default=No; name=CHF; cols=6}
高血圧{formmenu: Yes; default=No; name=hypertension; cols=6}
性別{formmenu: 男性; default=女性; name=sex; cols=7}
年齢 65-74 {formmenu: Yes; No; name=age65_74; cols=6}
年齢 >= 75 {formmenu: Yes; No; name=age75; cols=6}
糖尿病{formmenu: Yes; default=No; name=diabetes; cols=6}
脳梗塞/TIA既往 {formmenu: Yes; default=No; name=stroketia; cols=6}
心血管疾患既往{formmenu: Yes; default=No; name=vasculardisease; cols=6}

{if: CHF=="Yes"; trim=yes}{chfscore=1}{else}{chfscore=0}{endif}{if: hypertension=="Yes"}{hypertensionscore=1}{else}{hypertensionscore=0}{endif}{if: sex=="女性"}{sexscore=1}{else}{sexscore=0}{endif}{if: age65_74=="Yes"}{age65_74score=1}{else}{age65_74score=0}{endif}{if: age75=="Yes"}{age75score=1}{else}{age75score=0}{endif}{if: diabetes=="Yes"}{diabetesscore=1}{else}{diabetesscore=0}{endif}{if: stroketia=="Yes"}{stroketiascore=2}{else}{stroketiascore=0}{endif}{if: vasculardisease=="Yes"}{vasculardiseasescore=1}{else}{vasculardiseasescore=0}{endif}
{chads2=chfscore+hypertensionscore+age75score+diabetesscore+stroketiascore}
{chads2_vasc=chfscore+hypertensionscore+sexscore+age65_74score+age75score+diabetesscore+stroketiascore + vasculardiseasescore}
CHADS₂ Score: {=chads2}
{if: chads2==0}血栓塞栓症イベントのリスクは低い。抗凝固薬を服用しない場合の年間イベント発生リスクは約1%です。ガイドラインでは抗凝固療法は必須ではありません。
{elseif: chads2==1}血栓塞栓症イベントのリスクは低~中程度。抗凝固薬を服用しない場合の年間イベント発生リスクは約1.5%です。抗凝固療法が推奨です。
{elseif: chads2==2}血栓塞栓症イベントのリスクは中程度。抗凝固薬を服用しない場合の年間イベント発生リスクは約2.5%です。抗凝固療法が推奨されます。
{elseif: chads2==3}血栓塞栓症イベントのリスクは中程度。抗凝固薬を服用しない場合の年間イベント発生リスクは約5%です。抗凝固療法が推奨されます。
{elseif: chads2>=4}血栓塞栓症イベントのリスクは高いです。抗凝固薬を服用しない場合の年間イベント発生リスクは〉7%です。抗凝固療法が推奨されます。{endif}
CHADS₂-Vasc Score:{=chads2_vasc}
{if: chads2_vasc>=2 and chads2==0}CHADS2スコアは0点ですが、CHADS2-VAScスコアは2点以上ありCHADS2-VAScスコアでは抗凝固療法の適応です{else}抗凝固療法が推奨されます{endif}

臨床現場での利便性

  • 入力ミスや計算ミスを防ぐことができる。
  • 短時間でリスク評価が完了し、患者説明や診療により集中できる。

今後の展望

本手法をさらに応用し、他のリスクスコア(HAS-BLEDなど)にも対応させることで、診療業務のさらなる効率化を図りたいと考えています。

電子カルテとText Blazeを組み合わせたこの工夫により、診療の質向上と業務効率化を同時に実現しています。興味のある先生方はぜひ導入をご検討ください。

関連記事

コメント

この記事へのコメントはありません。