目的・背景
医師は多数の患者を同時に担当することが多く、限られた時間の中で診断結果を精査し、治療の優先度を判断する必要があると考えました。
そこで、診断結果の進行度に基づいて患者情報を整理・絞り込める機能を実装することで、短時間でより的確な判断と対応を支援することを目的としたアプリを制作しました。
本アプリは、Kaggleにて公開されている Obuli Sai Naren 氏による「Multi Cancer Dataset」を使用しています。このデータセットは CC BY-NC-SA 4.0(表示・非営利・継承) ライセンスのもとで提供されています。

工夫した点
ユーザー権限の設計
管理者・医師・検査技師それぞれの立場に応じて操作可能な機能を明確に分離し、誤操作や情報漏洩を防ぐよう設計しました。これにより、システムの安全性と使いやすさの両立を図りました。
医師の業務効率化を意識したフィルタ機能
医師アカウントでは、AIが予測した診断結果(白血病の進行度)に応じて担当患者を絞り込み表示できるようにし、限られた時間の中でも重症度の高い患者に迅速に対応できるよう工夫しました。
問題点と改善点
問題点
今回はKaggleの公開データセット(約20,000枚)を用いてモデルの学習を行い、高い精度(約100%)を達成しましたが、これは同一データセット内での評価結果であり、実際の運用環境での汎用性が担保されていない可能性があります。
また、現場で使用される医療機材や撮影条件が異なる場合、モデルの性能が低下するリスクも想定されます。
改善点・今後の課題
過学習の検出と防止のため、検証データの導入による早期終了(EarlyStopping)やDropoutの実装を通じて、モデルの一般化性能の向上に取り組む必要があると考えました。また、現場データを用いた評価・再学習を行うことで、現場の画像特性に適応したモデル構築を行う必要があります。実用化のためには、現場の医療機材で取得されたデータセットの収集・ラベリング体制も検討し、より実用性の高いシステムにする必要があると感じました。
技術スタック・構成
- Django を用いた Web アプリケーション(医療画像分類サービス)
- ユーザー権限別のログイン認証とダッシュボード機能(医師 / 検査技師)
- PyTorch による画像分類モデルと連携し、患者画像の AI 推論を実現
- Pillow や torchvision による画像前処理パイプラインを実装
- ユーザーが画像をアップロードすると、その場でAIが分類を行い、結果をリアルタイムで表示します(Django同期処理 + PyTorchモデル)。
git hubリポジトリ
機能の紹介
このアプリでは、課題に対応するため、以下の機能を実装しています。各機能の説明と合わせて、デモを掲載しています。
管理ユーザー機能
管理ユーザーがログインすると、「患者」、「医師」、「検査技師」のデータを一覧で確認、作成することができます。
検査技師の診断画像アップロード機能
検査技師のアカウントでログインをすると、患者をカルテ番号から絞り込み急性リンパ性白血病の診断画像をアップロードすることができ、AIによって進行度を予測し、最新の診断結果をデーターベースに保持します。
進行度で絞り込み機能
医師のアカウントでログインをすると、担当患者が一覧表示され、診断画像で予測した進行度で患者を絞り込むことができます。