Files
zyt/app/research/diagnosis_final_visual_gate.md
2026-08-11 09:12:51 +08:00

15 KiB
Raw Permalink Blame History

Diagnosis 最终视觉发布门禁

审计日期:2026-08-11
审计性质:第四次独立、只读、最终视觉发布门禁;除更新本报告外,未修改业务源码、测试或 PNG。
基准:D:/web/zyt/admin/src/views/tcm/diagnosis/ 及其主链直接依赖组件。
当前截图:D:/web/zyt/app/artifacts/diagnosis_visual/
TrellisD:/web/zyt/app/.trellis 不存在(Test-PathFalse),因此无可补读的 Trellis workflow/spec。
审计口径:只有与基准达到同型才记 PASS;Qt 与浏览器字体栅格化造成的轻微像素差不算结构问题。

最终结论

PASS。

  • 共逐张按原始像素尺寸检查 57 张 PNG
  • 逐图判定:57 PASS / 0 PARTIAL / 0 不可读 / 0 硬裁切到窗口外
  • 严重度:P0 = 0P1 = 0P2 = 0
  • 旧审计中的 Notes 真实缩略图、Chat 图片缩略图、Daily 局部工具栏、1200 px 连续处方 Drawer、订单 80% 详情 Drawer、订单 offset、Shell 与预约均已闭合或保持通过。
  • 上轮唯一 P1——视频表内播放器被压成 16 px 黑条——已关闭。diagnosis_video_inline_player_1200x560.pngdiagnosis_state_video_replay_1024x640.png 均显示完整加载遮罩、播放按钮、进度条、时间、外部打开、独立窗口和备用地址;播放器本体运行时高度为 158 px,未超过基准 180 px 上限。

尺寸分布(按 PNG 实际像素而非文件名):1024x640 24 张、1024x768 1 张、1200x560 1 张、1200x900 4 张、1280x800 11 张、1440x900 13 张、650x620 1 张、820x560 1 张、920x780 1 张。

第四次增量完整性:目录仍为 57 张;相对上一门禁仅 3 张视频 PNG 更新(diagnosis_video_inline_player_1200x560.pngdiagnosis_state_video_replay_1024x640.pngdiagnosis_state_video_upload_action_1024x640.png)。本轮已对这 3 张全部按原始尺寸复核,并原尺寸抽查 Notes、Chat、Daily、处方四段连续态、订单 80% Drawer/offset、Shell、预约及 1024/1440 主列表;其余非视频 PNG 时间戳未变化,沿用上一轮全量逐图结论。

此前 OPEN 逐项复核

旧 OPEN 终态 视觉与结构证据
Notes 舌象真实缩略图 CLOSED diagnosis_state_notes_actions_1024x640.png 已显示实际 64x64 舌象位图,并有右上删除入口;当前 _RemoteImageButton 以 cover 方式加载到 QSize(64, 64)src/doctor_workstation/ui/diagnosis_drawer.py:2364-2404。基准为真实 el-image 64x64 coverD:/web/zyt/admin/src/views/patient/reception/components/NoteTimeline.vue:52-69
Chat 图片消息缩略图 CLOSED diagnosis_state_chat_archive_1024x640.png 的患者图片消息直接显示实际图像缩略图,不再是“查看图片”文字链接;当前最大 240x200diagnosis_drawer.py:2553-2573。基准:ImChatRecordPanel.vue:39-50
Daily 待办局部工具栏 CLOSED diagnosis_state_daily_lower_1024x640.png 同时显示 + 新增待办、全部/待执行/已发送/失败/已取消及局部“刷新”,无遮挡;当前:diagnosis_drawer.py:1725-1761,基准:DiagnosisTodoList.vue:3-20。顶部动作行也继续在 diagnosis_state_daily_1024x640.png 完整换行。
处方 1200 px 连续 Drawer CLOSED diagnosis_state_prescription_editor_1200x900.png..._herbs_1200x900.png..._usage_1200x900.png..._signature_1200x900.png 连续证明患者、诊断、RP 药材、用法、签名处于同一纵向滚动流,固定 footer 稳定;1024/920 窄宽度采用可用宽度而非截断。当前 DRAWER_WIDTH = 1200 且五段连续加入同一 QScrollAreasrc/doctor_workstation/ui/dialogs/prescription.py:1467,1491-1556,1902-1914。基准:D:/web/zyt/admin/src/components/tcm-prescription/index.vue:2-216,217-531。旧 4-tab modal 结构已消失。
订单 80% 详情 Drawer CLOSED diagnosis_order_detail_drawer_1440x900.png 的 panel 从 x=288 开始、宽 115280%);diagnosis_state_order_detail_640x540.pngdiagnosis_state_order_detail_drawer_1024x640.png 的实际像素均为 1024x640panel 从 x=205 开始、宽 819(约 80%)。金额概览、处方详情、关联收款在首屏可见;当前连续构建收款、履约与收货、物流轨迹、操作日志:src/doctor_workstation/ui/dialogs/diagnosis.py:669-710,3623-4065。基准共享 readonly DrawerPrescriptionOrderDetailDrawer.vue:13-20,154-220,433-545,550-824。旧 640x540 仅是遗留文件名,不是当前截图尺寸。
订单 offset 文案与解释层级 CLOSED diagnosis_state_order_offset_1024x640.png 已为“复诊统计起始偏移”+ 问号帮助 +“第 1 笔实单计为三诊”+“保存”,与基准同型;当前:diagnosis.py:1384-1416,3001-3058,基准:PatientOrderList.vue:7-41
视频多地址与逐条上传 CLOSED(能力/动作) diagnosis_state_video_upload_action_1024x640.png 的行级“追加回放”可见;当前每行绑定精确 call_record_iddiagnosis.py:3304-3342。备用地址结构存在于 diagnosis_media.py:358-442
视频表内播放器 CLOSED 两张终态图均显示完整可操作的表内播放器与备用地址;第四次运行时复核在 1200x560、1024x640 宿主中均测得 row 243 px、cell 242 px、player 158 pxcontrols 全部可见。详见下节。
Shell CLOSED / 无回归 diagnosis_shell_1024x640.pngdiagnosis_shell_1440x900.png 均保持 183 px sidebar、50 px topbar、40 px tabs,操作区及固定列无错位。
预约 Drawer CLOSED / 无回归 8 张预约 PNG 的 60% Drawer、固定 footer、时段网格、empty/error/loading/refreshing/focus 状态均完整。

P0 / P1 / P2

P0

0 项。 未发现窗口级硬裁切、核心信息完全不可见、Drawer 比例失效、footer 滚走、二维码不可辨识、Shell 壳层错位或预约主流程不可操作的发布阻断。

P1

0 项。 上轮唯一 P1“视频表内播放器被裁成 16 px 黑条”已关闭。

视频表内播放器关闭证据

精确截图:

  • D:/web/zyt/app/artifacts/diagnosis_visual/diagnosis_video_inline_player_1200x560.png
  • D:/web/zyt/app/artifacts/diagnosis_visual/diagnosis_state_video_replay_1024x640.png

两张图在原始尺寸中均呈现完整播放器:黑色视频 surface 内有“预览待加载 / 点击播放开始加载”,下方可见“播放”、进度条、00:00 / 00:00、“外部打开”和“独立窗口”;播放器下方继续显示“备用地址”及 COS HLS 1链接 2,第二条无回放记录也保持独立普通行。1200 与 1024 宿主均无裁切、重叠或 controls 遗失。

第四次运行时几何复核(使用与最终截图相同的 RenderRepository 与两行 fixture,未写 PNG)在 1200x560 和 1024x640 两种宿主下得到一致结果:

  • table row 0243 px;可视 cell rect242 pxRecordingPlaybackCell242 px。
  • InlineRecordingPlayer158 px,满足实现的 158–180 px 约束,也满足基准 max-height: 180px
  • 播放按钮、slider、时间标签及整个 player 均 visible=True
  • 备用地址使外层 cell 高于 180 px 是正确行为;180 px 上限只约束播放器本体,不约束播放器 + 备用地址的整行总高。

当前源码的闭环点:

  • src/doctor_workstation/ui/diagnosis_media.py:179-278 构建 158180 px 内嵌 player、视频 surface 与完整控制栏。
  • diagnosis_media.py:359-457 将 player、备用地址组成定高 cell,并由 required_table_row_height() 返回真实所需高度。
  • src/doctor_workstation/ui/dialogs/diagnosis.py:3304-3367 在 Qt 的 resizeRowsToContents() 后,以 cell 实际 hint 恢复 row 高度并写入 item size hint,避免另一列固定高按钮再次压扁整行。

基准 D:/web/zyt/admin/src/views/tcm/diagnosis/components/RecordingPlaybackBlock.vue:1-30 在“录制回放”单元格内直接放置 RecordingVideoPlayerRecordingVideoPlayer.vue:2-13,320-329 显示 controls、16:9、最大高 180 px 的完整播放器。当前终态在结构、信息层级和可操作性上已同型,因此关闭 P1。

P2

0 项。 上一轮两项 P2 已闭合:Daily 待办已具精确 + 新增待办 与局部刷新;订单 offset 已具精确标题、帮助入口、动态解释与“保存”文案。

57 张 PNG 逐张判定

预约 Drawer8/8 PASS

PNG 判定 原始尺寸下目检结论
appointment_drawer_1024x640.png PASS 60% Drawer、body 滚动、时段状态与固定 footer 完整。
appointment_drawer_1440x900.png PASS 医生、日期、时段网格、备注与 footer 对齐。
appointment_drawer_empty_doctors_1440x900.png PASS warning、空医生状态与禁用确认完整。
appointment_drawer_empty_roster_1440x900.png PASS 无排班 warning、医生选择与空态完整。
appointment_drawer_error_1440x900.png PASS 号源错误 banner、刷新入口、空态与禁用确认完整。
appointment_drawer_keyboard_focus_1440x900.png PASS 日期按钮 focus ring 清晰,不挤压布局。
appointment_drawer_loading_1440x900.png PASS 初始 loading overlay、spinner、文案与 footer 完整。
appointment_drawer_refreshing_1440x900.png PASS 刷新 overlay、spinner、文案与 footer 完整。

诊单列表、壳层与主 Drawer23/23 PASS

PNG 判定 原始尺寸下目检结论
diagnosis_1024x640.png PASS 窄屏筛选换行、横向滚动、右 460 px 固定区与行语义完整。
diagnosis_1440x900.png PASS 宽屏列密度、复合挂号格、业务色与固定操作区成立。
diagnosis_advanced_filters_1280x800.png PASS 高级筛选全量展开,无控件裁切。
diagnosis_double_appointment_cancel_1280x800.png PASS 同诊单双挂号各有取消入口。
diagnosis_edit_1024x640.png PASS 60% Drawer、tab、独立滚动与固定 footer 成立。
diagnosis_edit_1440x900.png PASS 864 px Drawer 与宽屏字段比例稳定。
diagnosis_empty_1280x800.png PASS 表头、空态、横向滚动与 0 条分页保留。
diagnosis_error_1280x800.png PASS 错误态清晰,无旧数据穿透。
diagnosis_focus_1280x800.png PASS 搜索 focus ring 清晰且不挤压布局。
diagnosis_full_menu_1280x800.png PASS 8 项菜单、图标、danger 删除与“二维码”均完整。
diagnosis_horizontal_scroll_1024x640.png PASS 主表横移时右 460 px 固定区不动。
diagnosis_hover_warning_1280x800.png PASS warning 行 hover 与左侧强调条连续。
diagnosis_loading_1280x800.png PASS 表内 spinner 与淡化内容完整。
diagnosis_order_detail_drawer_1440x900.png PASS 80% Drawer、金额概览、处方详情、收款记录与固定 footer 成立。
diagnosis_order_qrcode_1280x800.png PASS QR 可辨、订单号、状态、只读 URL 与动作完整。
diagnosis_pending_assign_1280x800.png PASS 待分配医助、月份与搜索处于同一流式区域。
diagnosis_permissions_cropped_1280x800.png PASS 权限收口后只保留查看,无敏感动作残留。
diagnosis_readonly_1024x640.png PASS 独立只读页 hero、病例卡与窄屏字段无拆字。
diagnosis_readonly_1440x900.png PASS 4 列病例密度、异常指标与长页滚动成立。
diagnosis_shell_1024x640.png PASS 183/50/40 壳层、tabs、固定列及分页成立。
diagnosis_shell_1440x900.png PASS 宽屏壳层比例及顶栏图标/中文稳定。
diagnosis_viewonly_1024x640.png PASS 60% 只读 Drawer、警告、disabled 表单与仅关闭 footer 成立。
diagnosis_viewonly_1440x900.png PASS 宽屏只读栅格、全 tabs 与固定 footer 成立。

详情状态与子流程(26/26 PASS)

PNG 判定 原始尺寸下目检结论
diagnosis_state_chat_archive_1024x640.png PASS info、归档同步、左右气泡与真实图片缩略图成立。
diagnosis_state_daily_1024x640.png PASS Daily 动作完整换行,无裁切。
diagnosis_state_daily_blood_edit_650x620.png PASS 血糖/血压字段、单位、必填说明与固定动作完整。
diagnosis_state_daily_lower_1024x640.png PASS + 新增待办、filters、局部刷新、状态与横向滚动完整。
diagnosis_state_empty_1024x640.png PASS 处方空态与 primary“开方”成立。
diagnosis_state_error_1024x640.png PASS danger banner、重试、空表单与禁用保存完整。
diagnosis_state_focus_1024x640.png PASS 姓名 focus ring、close 与固定 footer 完整。
diagnosis_state_loading_1024x640.png PASS loading overlay、spinner 与文案完整。
diagnosis_state_notes_actions_1024x640.png PASS 新增/上传动作、实际舌象缩略图、报告 chip 与单附件删除完整。
diagnosis_state_order_detail_640x540.png PASS 实际为 1024x640 的 80% Drawer;金额与处方首屏、滚动与 footer 成立。
diagnosis_state_order_detail_drawer_1024x640.png PASS 80% Drawer 窄屏终态与上一张一致且无结构裁切。
diagnosis_state_order_offset_1024x640.png PASS 精确标题、帮助、动态解释、“保存”、列表与分页成立。
diagnosis_state_permission_1024x640.png PASS 获权 tabs、敏感字段掩码与仅关闭 footer 成立。
diagnosis_state_prescription_editor_1024x768.png PASS 窄屏连续 Drawer 首段、RP 工具栏、滚动与固定 footer 成立。
diagnosis_state_prescription_editor_1200x900.png PASS 1200 px 连续 Drawer 患者/诊断/RP 起始结构成立。
diagnosis_state_prescription_editor_920x780.png PASS 窄宿主按可用宽度适配,旧 tabbed modal 已消失。
diagnosis_state_prescription_editor_herbs_1200x900.png PASS 主方/辅方网格、剂量与删除入口处于同一滚动流。
diagnosis_state_prescription_editor_signature_1200x900.png PASS 辅方用法、医生签名板及固定 footer 成立。
diagnosis_state_prescription_editor_usage_1200x900.png PASS 主/辅方用法层级、说明字段与连续滚动成立。
diagnosis_state_save_failure_1024x640.png PASS 红色失败态与文案完整。
diagnosis_state_save_loading_1024x640.png PASS 按钮内 spinner 与“正在保存”完整。
diagnosis_state_save_success_1024x640.png PASS 绿色成功态与文案完整。
diagnosis_state_video_player_820x560.png PASS 独立播放器作为兼容兜底本身完整;不替代表内播放器要求。
diagnosis_state_video_replay_1024x640.png PASS 158 px 表内 player、加载态、完整 controls 与备用地址均可见,第二条普通行未受高行影响。
diagnosis_state_video_upload_action_1024x640.png PASS 横移后 243 px 高视频行仍保持状态、录制与“追加回放”垂直居中,第二条普通行未被错误拉高。
diagnosis_video_inline_player_1200x560.png PASS 宽屏完整显示 158 px 表内 player、controls、备用地址及相邻列,无裁切。

发布判定

  • 旧审计的 Notes、Chat、Daily、处方、订单、视频、Shell、预约问题已经全部闭合或保持通过。
  • 两张重新录制的视频原始尺寸 PNG 与运行时实际控件几何相互印证,旧唯一 P1 已关闭。
  • 当前最终门禁:PASS57 PASS / 0 PARTIAL,共检查 57 张 PNGP0=0P1=0P2=0)。