"""出医生核对包:把一次构建(资料库 + 答案库)和它装入的 CEUS 运行整理成医生能直接看的文件夹。 用法:uv run python scripts/review_pack.py --config config/review_pack.yaml 产物写进 `/<运行号>/`:`医生核对包_<构建号>/` 是要交给医生的,`snapshot/` 不给。 终端只打印计数,不打印病例号。 """ import argparse import time from datetime import datetime from pathlib import Path from cadx.review import run_review_pack REPO_ROOT = Path(__file__).resolve().parents[1] def main() -> None: parser = argparse.ArgumentParser(description="出医生核对包") parser.add_argument("--config", type=Path, required=True, help="review_pack.yaml 的路径") config: Path = parser.parse_args().config clock = time.monotonic() summary = run_review_pack(config, REPO_ROOT, datetime.now().astimezone()) print(f"运行目录:{summary.run_dir}") print(f"核对包:{summary.pack_dir}") print(f"病例数:{summary.cases}(进库 {summary.passed},跳过 {summary.skipped})") by_stage = ",".join(f"{stage} {n}" for stage, n in summary.problems_by_stage.items()) print(f"问题清单行数:{sum(summary.problems_by_stage.values())}({by_stage or '无'})") print(f"PDF 份数:{summary.pdfs}") print(f"拷贝的视频总大小:{summary.video_bytes / 2**20:.1f} MiB") print(f"耗时:{time.monotonic() - clock:.1f} 秒") if __name__ == "__main__": main()