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