ハッカソンで医療カルテの類似検索推薦システムを開発した話
はじめに
2025年8月2日〜3日開催の「Qiita × Fast DOCTOR Health Tech Hackathon」に、チーム「unpretrained」として参加し優秀賞を受賞しました。
このハッカソンは、オンライン診療における課題を発見し、その解決策となるシステムを2日間で開発するイベントです。本記事では制作物について紹介します。
自己紹介
三度のご飯と機械学習が好きな大学2年生、病理AIに興味のあるKagglerです。
SNS: https://x.com/16MBytes
制作物「KalteBoost」
医師がカルテを「ゼロから記述する」のではなく、既存データから類似例を推薦し、それを参考に編集・追記することで効率的に作成できるシステムを開発しました。
LLMで単なる文章をゼロから生成することは容易ですが、品質をそこから向上させるには、蓄積されている既存の医療データを最大限引き出すことがカギだと考え取り組みました。
処理フロー
- オンライン診療の会話を自動文字起こし
- Geminiが問診情報と会話内容からカルテの骨組みを生成
- TF-IDFアルゴリズムで過去の完成カルテから最適な参考例を推薦
- 医師が推薦例を参考に患者特有の情報を追加
発見した医療課題
カルテ作成業務の負担
カルテの作成・管理は医師の日常業務で大きな負担となっています。診療行為に加えて詳細な記録作成に時間を要し、本来患者に向けるべき時間が削られているのが現状です。
特に以下2つの課題があると考えました。
1. カルテの目的混在
カルテには2つの目的が混在しています:
- 診療報酬算定のための「算定基準を満たす記載」
- 継続的な医療提供や患者引き継ぎのための「臨床的に有用な記載」
これらの要件にはズレがあり、医師が記載の重心をどこに置くべきか曖昧になっています。結果として、どちらの要件も満たせない記載や、記載方針の混乱が生じやすい構造となっています。また、医師間でのカルテ品質や記述内容にバラつきが生まれています。
2. 診療報酬請求の手戻り作業
医療事務が作成する診療報酬請求において、カルテの記載内容が算定基準を満たしていない場合、審査支払機関から差し戻されることがあります。この際、医療機関は再確認・修正という手戻り作業を強いられ、医師・医療事務は既に完了したと思っていたカルテを再度見直し、修正する必要があります。
これらの要因でカルテ作成・管理の負担が増加し、結果として診察可能な患者数の減少を招いていると考えました。
着目したデータ
FastDoctor社のプラットフォームに蓄積されている**「完成されたカルテデータ」**という資産に着目しました。これらは診療報酬の請求基準を満たしており、質の高い継続診療にも対応できる内容で、膨大な量が蓄積されているはずです。
この資産を活用することで、「ゼロから書く」のではなく「完成形を参考にする」アプローチが実現可能だと考えました。
※実際の医療データではなく、LLMによるダミーデータをチームで構築し利用しました。
リアルなダミーデータ生成
FastDoctorで働く看護師の方に確認していただきながら、実務上の記述により近いダミーデータを生成しました。
- メタデータ(患者年齢、性別、診療日)
- 事前問診情報
- SOAP形式のカルテ
- 処方箋
の特徴量を踏まえてTF-IDFでベクトル化し、検索可能にしました。
利用技術
技術構成
バックエンド
- Hono.js 4.8.2 + Cloudflare Workers
- Drizzle ORM + SQLite/LibSQL
- JWT + bcryptjs
- TypeScript 5.8.3
- Google Gemini API
- TF-IDF + Janome (Python)
- Web Speech Recognition API
フロントエンド
- React 19 + React Router 7
- Tailwind CSS + Vite
おわりに
なぜこの課題発見に辿り着いたのか
ハッカソンのメンターとして、FastDoctorさんの医師・看護師・技術責任者の方と直接会話できたことが大きな要因でした。
医療課題について仮説を立てながら相談し、「業務改善のインパクトが大きい箇所」を掘り下げるサイクルが効果的でした。
特に診療後の工程で診療報酬算定の話題が挙がり、「医療機関では、カルテの記載不備による差し戻しで手戻り作業が発生する」ことや「このような内容・品質のカルテが取り扱いやすい」という生の声を聞けたことが転機となりました。
ハッカソンの2日間で、医療現場の課題を深く理解し、技術的な解決策を形にできたことは非常に貴重な経験でした。
最後に、チーム「unpretrained」のメンバーと、貴重な機会を提供してくださったQiitaさん、Fast DOCTORさんに心から感謝申し上げます。