- 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: アプリケーションのメインロジック。
- User Selected Directory: ユーザーが起動時に指定するルートディレクトリ。
- 構造:
{root_dir}/{case_id}/images/*.png (指定フォルダ内のサブフォルダを症例として認識)
annotations_{annotater}.csv: アノテーション結果の保存先。
- Location: ユーザーが選択したルートディレクトリの直下に保存する。
- Encoding:
utf-8-sig (Excelでの日本語文字化け防止のため必須)
- Naming: 変数名・関数名は英語(スネークケース)、UIの表示ラベルは日本語とする。
- Type Hinting: 可能な限りPythonの型ヒントを使用する。
- Error Handling: ディレクトリが存在しない場合や、画像が含まれていない場合の警告を表示する。
アプリの動作フローは以下の順序とする。
アプリ起動時、以下の情報をユーザーに入力させる。情報が確定するまで画像表示画面には進まない。
- Annotator Name: 作業者の名前(必須入力)。
- Data Directory Path: 画像データが格納されているローカルフォルダのパス(テキスト入力またはダイアログ)。
Phase 1の設定完了後、フォルダ内の症例をロードして表示する。
- 合併症予測 (Prediction)
- UI: Radio Button ("なし", "あり")
- 確信度 (Confidence)
- 判断根拠 (Reasons)
- UI: Checkboxes
- Options:
- "石灰化プラークが多い"
- "石灰化プラークが少ない"
- "減衰プラークが多い"
- "減衰プラークが少ない"
- "その他(記述)"
- 自由記述 (Comments)
- CSVファイル名は
annotations_{annotater}.csv とし、選択されたデータディレクトリ直下に保存または読み込みを行う。
- 保存時は「追記モード」を使用。
- 保存カラム順序:
timestamp, case_id, prediction, confidence, reasons, comment, annotator