- Run App:
streamlit run app.py
- Install Dependencies:
pip install -r requirements.txt
- Lint:
pylint app.py
循環器内科医がIVUS(血管内超音波)画像を確認し、No reflow / Slow flow の合併症リスクを予測・アノテーションするためのローカルWebアプリケーション。
- Language: Python 3.10+
- Framework: Streamlit
- Libraries: Pandas, Pillow (PIL), Watchdog (for Streamlit auto-reload)
- Data Storage: CSV (Local file system)
app.py: アプリケーションのメインロジック。UI描画、データ処理を全て担当。
data/: 画像データ格納ディレクトリ。
- 構造:
data/{case_id}/*.jpg (各症例フォルダ内に連番JPEG画像)
annotations.csv: アノテーション結果の保存先。
- Encoding:
utf-8-sig (Excelでの日本語文字化け防止のため必須)
- Naming: 変数名・関数名は英語(スネークケース)、UIの表示ラベルは日本語とする。
- Type Hinting: 可能な限りPythonの型ヒントを使用する。
- Error Handling: 画像読み込みエラーやファイルアクセス権限エラーを適切にハンドリングする。
アプリ内で実装すべきアノテーション項目と選択肢は以下の通り固定する。
- 合併症予測 (Prediction)
- UI: Radio Button
- Options: "なし", "あり"
- 確信度 (Confidence)
- UI: Slider
- Range: 0 - 100 (%)
- 判断根拠 (Reasons)
- UI: Checkboxes (Multiple selection)
- Options:
- "石灰化プラークが多い"
- "石灰化プラークが少ない"
- "減衰プラークが多い"
- "減衰プラークが少ない"
- "その他(記述)"
- 自由記述 (Comments)
- UI: Text Area
- Input: 自由入力
- CSV保存時は「追記モード」を使用し、既存データを消さないこと。
- 保存カラム順序:
timestamp, case_id, prediction, confidence, reasons, comment, annotator