| カテゴリ | ファイル数 | サイズ | 品質スコア | 状態 |
|---|---|---|---|---|
| ITEM 2026 ドキュメント | 11 | 329 KB | 93/100 | 完成 |
| Docker/OpenRecon コード | 5 | 25 KB | 88/100 | 完成 |
| テスト・品質管理 | 2 | 15 KB | 87/100 | 完成 |
| 知識基盤 | 5 | 47 KB | 93/100 | 完成 |
| Pipeline ドキュメント | 5 | 131+ KB | — | 追加中 |
まず cd C:/Users/manabe/Projects/cardiac_ecv_pipeline でプロジェクトルートへ移動
docs/openrecon/openrecon_guide.html をブラウザで開き、4タブ(L1/L2/L3/用語集)+ ペルソナ選択を確認python docker/main.py --test-config を実行し、"All checks passed" を確認(失敗時: import errorならパッケージ未インストール)python -m pytest tests/test_ecv_mapping.py tests/test_docker_main.py -v で40テスト全パス確認(失敗時: モジュールimport error確認)ファイル: docs/openrecon/openrecon_guide.html (110 KB, 自己完結型)
3層構造のインタラクティブガイド。タブUI + ペルソナ選択 + SVGモーダル + 用語集。オフライン動作。
ブラウザで openrecon_guide.html を開く → 上部のペルソナボタンを試す → L1~L3タブを切替 → SVG図をクリック拡大 → 用語集で検索
ファイル: docs/openrecon/openrecon_cheatsheet.html (40 KB)
A4両面印刷対応。Side A: エコシステム概要 + スキャナー対応表 + Top 10用語。Side B: MRDプロトコル + ユースケース6件。
openrecon_cheatsheet.html を開く → Ctrl+P → A4サイズ・両面印刷を選択 → プレビューで表裏確認
ファイル: docs/openrecon/openrecon_integration_report.html (31 KB)
python docs/openrecon/build_guide.pycd docs/openrecon && python build_guide.py → openrecon_guide.html が再生成される
ファイル: docker/ecv_mapping.py (352行, 12.5 KB)
python-ismrmrd-serverから呼び出されるメイン処理モジュール。pre/post T1マップ受信 → ECV計算 → 結果送信。
ismrmrd=None ガード: パッケージ未インストール時の安全な終了try/finally: connection.send_close() が例外時も必ず呼ばれるvalidate_pipeline_inputs(): ECV計算前の入力検証np.clip(ecv_map, clip_min, clip_max): 表示範囲クリッピング適用_extract_field_strength(metadata): B0からZ-score基準値選択直接実行はできませんが、以下で間接確認:
python docker/main.py --test-config → "All checks passed" が表示されればモジュール読込・Config解析が正常
--test-config で設定検証、-p 9002 でサーバー起動プロジェクトルートで実行: cd C:/Users/manabe/Projects/cardiac_ecv_pipeline
python docker/main.py --test-configdocker build -t cardiac-ecv-openrecon -f docker/Dockerfile . (Docker Desktop起動確認)docker run -p 9002:9002 cardiac-ecv-openreconOpenReconテストのみ(40テスト、12秒):
python -m pytest tests/test_ecv_mapping.py tests/test_docker_main.py -v
全テスト(666テスト、4分):
python -m pytest tests/ -q
| テストファイル | テスト数 | カバー範囲 |
|---|---|---|
| test_ecv_mapping.py | 28 | XML Config解析(13), Defaults(3), FieldStrength(7), ismrmrdガード(1), Happy-path(4) |
| test_docker_main.py | 12 | --test-config(3), OpenReconLabel.json(9) |
| カテゴリ | スコア | バー | 主要根拠 |
|---|---|---|---|
| Code Quality | 88 | 型ヒント、docstring、DRY、ログ一貫性 | |
| Docker Readiness | 90 | 非root、healthcheck、.dockerignore、pip no-cache | |
| MRD Compliance | 86 | 3戦略XMLパース、send_close保証、メタデータ伝搬 | |
| Test Coverage | 87 | Happy-path E2E、エッジケース、モック設計 | |
| Documentation | 91 | バイリンガルLabel、docstring、プロトコル制約 | |
| Production Readiness | 88 | ismrmrdガード、try/finally、validation、clip適用 |
ファイル: C:\Users\manabe\.claude-anthropic\projects\C--Users-manabe\memory\feedback_mri_dev_tips.md (17 KB)
MRI/DICOM開発で遭遇した全30の失敗→解決パターン。3フェーズに分類:
| フェーズ | パターン | 主要テーマ |
|---|---|---|
| 初期開発 (1-10) | #1-10 | MCP接続, ruff, scikit-image API, highdicom, JPEG2000, PyVista, pyMapVBVD |
| レビュー改善 (11-23) | #11-23 | XSS, DICOM mutation, Hct単位, Z-score両側, AHA名統一, mask型 |
| OpenRecon統合 (24-30) | #24-30 | ismrmrdガード, Config未消費, try/finally, 条件付きassert, monkeypatch, COPY漏れ |
ファイル: C:\Users\manabe\.claude-anthropic\projects\C--Users-manabe\memory\feedback_agent_orchestration.md (6 KB)
| # | パターン | 効果 |
|---|---|---|
| 1-6 | 批判的レビュー→改善パイプライン、ファイル分担、自己検証 | 59件のバグ発見・修正 |
| 7-10 | スコアリング駆動開発、Mock設計、メモリ統合タイミング | Production Readiness 82→88 |
合格基準: 来場者(放射線科医/研究者/企業)に5-10分で説明できるか
確認: ペルソナ選択→該当タブのみ表示。SVG図で視覚的に理解可能か
判断: 「これを使って説明練習できる」と感じればOK
合格基準: 印刷して来場者に渡せるクオリティか
確認: 実際にCtrl+Pでプレビュー。文字が読めるか、紙面に収まるか
判断: 「この紙をそのまま渡せる」と感じればOK
合格基準: --test-config で "All checks passed" が出ること
確認: 実行して4つの[PASS]を確認。OpenReconLabel.jsonの内容が臨床的に妥当か
失敗時: ImportError → pip install -r requirements.txt、FileNotFound → cdでプロジェクトルートへ
判断: 「OpenRecon申請時にこのまま提出できる」と感じればOK
合格基準: 666テスト全パス、全カテゴリ≥85
確認: pytest 実行。スコア表の各カテゴリ確認
判断: 「コードを変更しても壊れたらテストが教えてくれる」と感じればOK
合格基準: 次回セッションで同じ失敗を繰り返さないこと
確認: 30パターンのうち「これは経験した」と思えるものがあるか
判断: 「次回Claude Codeに任せても安心」と感じればOK
合格基準: 成果物の全体像が5分で把握できること
確認: 各タブを見て「何がどこにあるか」分かるか
判断: 「同僚に見せて説明できる」と感じればOK
改善が必要な点があれば、以下の形式で伝えていただけると即座に対応できます: