GUI 设计¶
HemiSpec GUI 是基于 customtkinter 的紧凑启动器,调用与 Python API 和 hemispec workflow CLI 相同的双向工作流;它不是另一套独立分析实现。
设计目标¶
- 仅暴露常规 ANS/RNS 生成所需的用户决策;
- 高级模型、阈值、后缀和验证参数保留在 CLI/API;
- 显示等价 CLI 命令,便于复现;
- 长时间运行前报告运行环境与模型就绪状态;
- 日志、取消和打开输出目录等操作保持可见。
用户可见工作流¶
当前 GUI 包含六个功能卡片:
- 输入 GM 图 — 目录或 glob,解析为预处理后的
*_GM_masked.nii.gz文件。 - 输出工作区 — 体素图、表格、验证结果和可选中间文件的目标目录。
- 设置状态 — 浅层检查 PyTorch、两个 DGN 方向、可选 atlas 文件和可选分类器包。
- 可选 ROI 表 — atlas NIfTI 与标签表路径。
- 可选验证 — 半球分类、TRT 可靠性和保留中间输出。
- 运行控制 — 等价 CLI 命令、运行/停止、日志、复制命令和打开输出目录。
半球分类器验证保持为选择性启用。启用分类器时也会启用 ROI 导出,因为分类器使用 ROI 特征。
封装的默认参数¶
GUI 有意隐藏:
- DGN 检查点路径和方向特定模型包名;
- 设备选择;
- GM 与推理阈值;
- 重建截断和文件后缀规则;
- 分类器模式和模型路径;
- TRT session 正则表达式与掩膜参数。
这些值由 GUI 状态到配置的适配层定义;高级用户或研究特定设置仍可通过 CLI/API 控制。
共享执行路径¶
GUI 状态
-> make_workflow_config(...)
-> BilateralWorkflowConfig
-> run_bilateral_workflow(...)
-> voxel_maps/ + tables/ + 可选 validation/
GUI 预览的 CLI 命令由同一工作流配置生成。tests/test_gui_contract.py 中的契约测试保护这种一致性。
运行时行为¶
GUI 在执行前只做浅层设置检查;刷新状态时不会加载大型检查点。后台工作线程执行流程,使界面能够持续显示日志并接收取消请求。取消为协作式,在主要工作流阶段之间检查。
维护规则¶
- 可见字段必须与
WORKFLOW_VISIBLE_FIELDS同步; - 隐藏默认值必须与 CLI 默认值和契约测试同步;
- 不要增加 GUI 专用计算路径;
- 新增高级参数默认作为 CLI/API 选项,除非常规用户必须作出该决策;
- 可见卡片或标签变化时,同步更新 GUI 用户指南和截图。
ANS/RNS 与跨半球 DGN 框架源自 Wang 等人(2024),详见引用。