Newer
Older
ivus-complication-annotation-tool / CLAUDE.md

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: アプリケーションのメインロジック。
  • User Selected Directory: ユーザーが起動時に指定するルートディレクトリ。
    • 構造: {root_dir}/{case_id}/images/*.png (指定フォルダ内のサブフォルダを症例として認識)
  • annotations_{annotater}.csv: アノテーション結果の保存先。
    • Location: ユーザーが選択したルートディレクトリの直下に保存する。
    • Encoding: utf-8-sig (Excelでの日本語文字化け防止のため必須)

Code Style & Conventions

  • Naming: 変数名・関数名は英語(スネークケース)、UIの表示ラベルは日本語とする。
  • Type Hinting: 可能な限りPythonの型ヒントを使用する。
  • Error Handling: ディレクトリが存在しない場合や、画像が含まれていない場合の警告を表示する。

Application Flow & UI Specifications

アプリの動作フローは以下の順序とする。

Phase 1: Session Setup (Sidebar or Top)

アプリ起動時、以下の情報をユーザーに入力させる。情報が確定するまで画像表示画面には進まない。

  1. Annotator Name: 作業者の名前(必須入力)。
  2. Data Directory Path: 画像データが格納されているローカルフォルダのパス(テキスト入力またはダイアログ)。

Phase 2: Annotation (Main Area)

Phase 1の設定完了後、フォルダ内の症例をロードして表示する。

  1. 合併症予測 (Prediction)
    • UI: Radio Button ("なし", "あり")
  2. 確信度 (Confidence)
    • UI: Slider (0 - 100 %)
  3. 判断根拠 (Reasons)
    • UI: Checkboxes
    • Options:
      • "石灰化プラークが多い"
      • "石灰化プラークが少ない"
      • "減衰プラークが多い"
      • "減衰プラークが少ない"
      • "その他(記述)"
  4. 自由記述 (Comments)
    • UI: Text Area

Data Management Rules

  • CSVファイル名は annotations_{annotater}.csv とし、選択されたデータディレクトリ直下に保存または読み込みを行う。
  • 保存時は「追記モード」を使用。
  • 保存カラム順序: timestamp, case_id, prediction, confidence, reasons, comment, annotator