任务书 01 遗留修复(C14): - library 新增 check_key_image(path):关键图能逐像素保真重编码时返回 None,否则返回原因; _write_clean_png 的判断移过去,自身保留断言性质报错(走到这里说明 build 漏了检查)。 - build 写库前对每例调用,返回原因的整例跳过,记 C14「关键图能原样重编码」,涉及值写原因。 - 原来三条「关键图格式不对整次构建停下」的测试改为整例跳过,另加非 PNG、library 漏检报错两条。 - 结构.md 第八部分、guides/装配两个库.md 相应几行改掉。 第一阶段(src/cadx/ceus/): - 照搬旧 geometry、video_decoder、research_config、split_screen、green_prompt、prompt_frames、 mapping,去掉产品层,注释改中文。 - 配置类去掉全部默认值,strict、extra=forbid、frozen;新建 config/ceus.yaml(paths、ceus 两段), 数值照抄旧 yaml,逐项注明出处。删去 source_view/target_view、effective_region、mapping 锚点; 旧代码写死的分屏抽帧数 25 和搜索区间 (0.35, 0.65) 改成配置,值不变。 - 视频解码改为按路径用 cv2 逐帧读。 - 坐标换算改为两个视图矩形左上角之差,不再用按某种宽度写死的锚点。 - 造影画面在哪一半:两半各自选提示帧,恰好一半有才定,否则抛 ContrastSideError(CeusCaseError 子类,带步号和原因,供第三阶段记 failed.csv)。 - 旧测试照搬(改 import 与配置读取方式),因上述改动不再成立的删去;新增两处修改的手算测试。 - import-linter 加「ceus 不引用其他 cadx 模块」。依赖加 numpy、opencv-python-headless。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
5.5 KiB
工作记录
只记当前状态。一个阶段完成后压缩成几行,细节看提交说明和 research-wiki/。
当前目标
第 3 步 CEUS 定量,按任务书 02 分四个阶段做;第一阶段(底层和分割之前的算法)与 C14 修复已提交,下一个是第二阶段(MedSAM2 与后半段算法)。
已完成
-
2026-10-15 盘点旧项目(远程
CADx-4-CAD)与两个参考项目(ClinDB-ReviewBench、dissect3),结论写进research-wiki/design/0001-从产品重构为研究原型.md。 -
2026-10-15 旧项目复制到
reference/CADx-4-CAD/:工作区(含没进 git 的debugs/t1_local_debug.py、debugs/medsam2_local_track.py和tic_lognormal_replay.py的未提交改动)加git fetch恢复的 366 个提交、5 个远程分支。 -
2026-10-15
data/同步完成:交付包_20260908_40例(124 个文件)、1.2-TEST(1460 个文件),文件数与文件总字节数(4,034,244,118)和远程一致。 -
2026-10-15 骨架(三份新文档过了一轮「硕士生阅读」并按意见修订):
AGENTS.md、CLAUDE.md、research-wiki/目录与README.md、explanation/结构.md、design/0001、guides/开发环境.md;uv 工具链、make sync/fmt/test/check、pre-commit。make check通过(1 项测试、1 条导入契约)。提交 5eb38df(工具链)、1f7a6a3(文档)。 -
2026-10-15/16 深读旧项目三条线(CEUS 算法、资料与答案隔离、会诊与评价),两位中立评审独立评了存储与迁移方案;结论落成 design 0002 与重写的
结构.md。待定的研究问题记在research-wiki/待定问题/。 -
2026-10-16 任务书 01 装配两个库:delivery、library、answers、runs(快照)、build 五个模块,
scripts/build.py、scripts/scan_library.py、config/build.yaml,91 条测试,make check通过(6 条导入契约)。两轮独立审阅的会悄悄漏答案的意见已修(C11–C13 加严、泄露扫描 NFKC、关键图只收能保真重编码的 PNG、YAML 拒绝重复键)。真实 40 例:40 例中 34 例进库,跳过 6 例全为 C10(跨表不一致,与待定问题/04一致),复核清单 2 条,泄露扫描命中 0;构建号与提交号见提交说明和本次汇报。使用说明guides/装配两个库.md。 -
2026-10-16 任务书 02 第一阶段:
src/cadx/ceus/迁入配置(去掉全部默认值)、视频解码(按路径逐帧读)、分屏、绿框、提示帧、两半坐标换算;新写判断造影画面在哪一半(两半各选提示帧,恰好一半有才行,否则ContrastSideError);坐标换算改为两个视图左上角之差,不再用锚点。config/ceus.yaml只有paths、ceus两段。同一提交修了任务书 01 的关键图问题:不能保真重编码的关键图整例跳过,记 C14。make check通过(348 条测试、7 条导入契约)。
未完成
-
2026-10-16 任务书 01 由执行者完成(提交 bceb01e),监督者验收通过:真实 40 例进库 34、跳过 6(C10 跨表不一致),独立脚本核对资料库内容与跳过名单一致,泄露扫描 0 命中。
-
结构.md按负责人要求对照 ClinDB 的结构.md重写后,重写版还没再过一轮「硕士生阅读」(design 0002 与上一版结构文档过过)。
关键决定
-
负责人 2026-10-15「其其实不需要(至少目前不需要)是一个工程产品」:按研究原型重写,产品层不迁移(design 0001)。
-
负责人 2026-10-15 选定:检查强度「ClinDB 级」(不要提交审查闸);注释和 docstring 用中文;本机为主(「目前以本地为主,以后会根据具体情况调整」)。
-
负责人 2026-10-15 同意:MedSAM2 与 torch 装在同一个 uv 环境,靠导入边界隔离,不单独开环境(design 0001 第 7 条)。
-
负责人 2026-10-16:调模型用 PolyGateway;两个库和中间文件都用文件夹(SQLite 只用于调模型账本);CEUS「直接一个个迁移」,不在本机重跑旧代码作基线;数据格式和口径以 40 例交付包为准,「推注开始时间s」是视频第 0 秒时已推注的秒数(design 0002)。
-
负责人 2026-10-16:先做第 2 步装配两个库;配置每段一份(
config/<段>.yaml),编码解码是可选开关、映射表单独一份配置;交付资料检查一例有一项不过就整例跳过并记录,「都是遇到整个病例跳过,让医生核对去吧」;化名对照存进答案库。已写进结构.md(框架图、第五部分「配置」)和AGENTS.md「错误怎么处理」。 -
负责人 2026-10-16 定 C04:报告表名随视频名配对(
U<号>_roi2.mp4配U<号>_roi2_report.xlsx,U<号>.mp4配U<号>_report.xlsx),绿框版那一例因此进库。任务书 01 原文只认前一种,未改任务书。
下一步
- 任务书 02 第二阶段:MedSAM2 拷代码和权重、segment 模块、其余 11 个 ceus 模块迁移。
- 待负责人定:化名种子在 git 里,拿到种子可反推进库病例的病例号先后(专家拿不到种子);含「造影提示:」的那份超声描述所在病例被 C10 跳过,故不在复核清单里。
- 向临床方要编码映射表(性别、诊断、症状、既往史、化验档位)。
- 把
待定问题/04(6 例跨表不一致)、待定问题/06(1 份超声描述中段的「造影提示:」)转给医生;06 定之前的构建不做正式会诊。 - 等临床方交付 40 例的医生标注工作簿(含造影剂到达时间和注射时间)。