Files
xuetang/app/research/diagnosis_release_visual_audit.md
T
2026-09-08 11:40:15 +08:00

17 KiB
Raw Blame History

Diagnosis 发布视觉终验

审计日期:2026-08-11
审计性质:独立只读终验;除新增本报告外,未修改业务源码、测试、renderer 或 PNG。
基准:D:/web/zyt/admin/src/views/tcm/diagnosis/ 及其当前主链直接依赖组件。
当前实现:PySide6 + scoped QSS + QPainter,主要位于 src/doctor_workstation/ui/
TrellisD:/web/zyt/app/.trellis 当前不存在(Test-PathFalse),因此无可补读的 Trellis workflow/spec。

最终结论

PARTIAL,不是 PASS。

  • 检查了 artifacts/diagnosis_visual/ 当前全部 49 张 PNG,均以原始尺寸逐张目检;尺寸分布为:1024x640 22 张、1280x800 11 张、1440x900 12 张、640x540 / 650x620 / 820x560 / 920x780 各 1 张。
  • PNG 判定:40 PASS / 9 PARTIAL / 0 不可读 / 0 硬裁切
  • P00 OPEN。 诊单列表、右固定 460 px 区、付款二维码、edit/viewOnly 的 60% Drawer、独立 readonly、预约 Drawer、固定 footer、loading/error/empty/focus/permission 状态及 Shell 183/50/40 均未发现发布阻断。
  • 上一轮明确 OPEN 中,Daily 动作行裁切与按钮语义、完整更多菜单的图标/danger/“二维码”文案已经闭合;视频的多回放、逐条追加与应用内播放器能力也已经存在。
  • 仍不能给 PASS 的原因是 4 组 P1 同型差异:Notes 不渲染真实缩略图;处方编辑器仍是另一种 tabbed modal;订单详情仍是精简 640x540 表单而非共享 80% Drawer;视频仍从表格跳到独立播放器且聊天图片仍降级为文字链接。另有 2 组 P2 文案/局部工具栏差异。

严重度口径:P0 = 核心流程不可见/不可操作或窗口级裁切;P1 = 本次明确要求的主链组件结构、信息层级或媒体形态未与基准同型;P2 = 功能成立但文案、局部按钮或说明层级未精确对齐。

此前 OPEN 复核

项目 当前状态 精确证据
Daily 裁切 CLOSED diagnosis_state_daily_1024x640.png 中“刷新”已换到下一行且完整可见;当前用 FlowLayoutsrc/doctor_workstation/ui/diagnosis_drawer.py:1607-1609,基准允许换行:D:/web/zyt/admin/src/views/tcm/diagnosis/components/DailyMatrix.vue:1094-1109
Daily 按钮语义 CLOSED(主问题) +血糖 为 primary+饮食/+运动/+备注 为 secondary,范围 checked 态可见,新增待办 为 primary;实现:diagnosis_drawer.py:1613-1659,1691-1702;基准:DailyMatrix.vue:25-35DiagnosisTodoList.vue:3-19。仍有下述 P2 文案/局部刷新差异。
完整更多菜单 CLOSED diagnosis_full_menu_1280x800.png 显示 8 项、每项图标、删除分隔线与 danger 红、精确“二维码”。QPainter 图标与 danger 绘制:src/doctor_workstation/ui/diagnosis_index_widgets.py:74-175;动作与文案::1478-1556;基准:D:/web/zyt/admin/src/views/tcm/diagnosis/index.vue:379-400
Notes 动作与附件 PARTIAL 新增/追加、舌象/报告上传、打开与单附件删除均已出现;但舌象始终是 64x64 的“舌象/查看”文字按钮(diagnosis_drawer.py:2153-2183),没有像基准那样用真实 URL 渲染 el-image 缩略图(D:/web/zyt/admin/src/views/patient/reception/components/NoteTimeline.vue:52-69,370-379)。
处方入口 CLOSED diagnosis_state_empty_1024x640.png 中按钮已经是 primary “开方”;实现:src/doctor_workstation/ui/dialogs/diagnosis.py:1012-1031;基准:CaseRecordList.vue:1-38。编辑器结构仍有 P1,见下节。
订单列表/偏移/详情 PARTIAL 列表、金额色、状态 tag、分页、详情入口均存在(diagnosis.py:1056-1099,2980-3010),并补了详情 PNG;但详情结构仍非基准共享 Drawer,偏移文案也未精确。
视频多回放 CLOSED(能力)/ PARTIAL(同型) diagnosis_state_video_replay_1024x640.png 同一记录显示主回放 + 2 个备用回放;实现去重并逐条建链接:diagnosis.py:2899-2952
视频逐条上传 CLOSED diagnosis_state_video_upload_action_1024x640.png 显示行级“追加回放”;绑定精确 call_record_iddiagnosis.py:2953-2967,上传调用::2587-2613
视频播放器 CLOSED(能力)/ PARTIAL(同型) diagnosis_state_video_player_820x560.png 显示应用内播放面、播放/进度/时间/安全外开;实现:src/doctor_workstation/ui/diagnosis_media.py:38-172。但基准播放器内嵌在表格单元格且最大高 180 px:RecordingPlaybackBlock.vue:1-30RecordingVideoPlayer.vue:1-38,320-329
Chat info/归档 CLOSED(主体)/ PARTIAL(图片) diagnosis_state_chat_archive_1024x640.png 已有完整 info、only_archived、同步/重载与左右气泡;实现:diagnosis_drawer.py:2235-2360。图片消息仍只创建“查看图片”链接(:2329-2348),基准直接渲染图片缩略图(ImChatRecordPanel.vue:39-50,272-276)。
Shell CLOSED 两张 Shell PNG 均为 183/50/40;当前源码:src/doctor_workstation/ui/shell.py:540,602,686;基准:D:/web/zyt/admin/src/config/setting.ts:5D:/web/zyt/admin/src/styles/var.css:8D:/web/zyt/admin/src/layout/default/components/header/multiple-tabs.vue:65

P0 / P1 / P2

P0

0 项。 49 张图未发现核心信息被窗口边界硬裁、60% Drawer 尺寸失效、footer 随正文滚走、中文/图标缺字、二维码不可辨识或 1024/1440 壳层错位。

P1-1 Notes 舌象不是实际缩略图

  • 实图:diagnosis_state_notes_actions_1024x640.png 中舌象为蓝色文字卡“舌象 / 查看”,不是图像;报告文件 chip 和两个删除入口可见。
  • 当前源码明确只创建 QPushButton("舌象\n查看"),没有加载 URL 到 pixmapsrc/doctor_workstation/ui/diagnosis_drawer.py:2153-2183
  • 基准用 el-image :src="getImageUrl(url)"、64x64 cover 缩略图与叠加 CircleCloseD:/web/zyt/admin/src/views/patient/reception/components/NoteTimeline.vue:52-69,366-379
  • 建议边界:保留当前安全打开与单附件删除合同,只把可安全下载/解码的图片异步渲染为 64x64 缩略图;失败时再回退为当前文字卡。

P1-2 处方编辑器不是基准的 1200 px 连续 Drawer

  • 实图:diagnosis_state_prescription_editor_920x780.png 是 920x780 modal,按“患者与诊断 / 药材配方 / 剂型与用法 / 医师签名”拆为 4 个 tabs。
  • 当前结构:src/doctor_workstation/ui/dialogs/prescription.py:1017-1037;诊单入口调用该 dialogsrc/doctor_workstation/ui/dialogs/diagnosis.py:2533-2585
  • 基准入口直接打开 tcm-prescription,其根是 size="1200px" Drawer,并在同一滚动流中依次呈现患者信息、诊断信息、RP 药材工具栏/网格、用法和签名:D:/web/zyt/admin/src/views/tcm/diagnosis/index.vue:416,744D:/web/zyt/admin/src/components/tcm-prescription/index.vue:2-216,217-531
  • 当前 DTO/真实提交能力存在,本项是视觉结构 P1,不是功能缺失。

P1-3 订单详情仍是精简 modal

  • 实图:diagnosis_state_order_detail_640x540.png 只有 hero、状态 tag 和 10 行键值信息。
  • 当前源码固定 640x540,用单个 QFormLayout 罗列患者、金额、医护、地址、物流、备注:src/doctor_workstation/ui/dialogs/diagnosis.py:3060-3135
  • 基准 PatientOrderList 打开共享 readonly PrescriptionOrderDetailDrawerD:/web/zyt/admin/src/views/tcm/diagnosis/components/PatientOrderList.vue:96-124;共享组件宽 80%,readonly 仍保留金额概览、处方详情、未关联/关联收款、履约收货、物流轨迹与操作日志:D:/web/zyt/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue:13-16,154-197,200-545,551-824
  • 因结构和信息密度均明显不同,新增截图只能证明“有详情”,不能证明“同型”。

P1-4 视频与聊天媒体形态仍非基准同型

  • 视频:多地址、逐条追加和 QtMultimedia 播放能力均真实存在,但表格只显示文字链接,点击后打开 820x560 独立播放器(diagnosis.py:2934-2978diagnosis_media.py:38-116)。基准在“录制回放”单元格内直接嵌入最大高 180 px 的播放器,并把其他地址放在其下:CallRecordPanel.vue:17-34RecordingPlaybackBlock.vue:1-30RecordingVideoPlayer.vue:320-329
  • 聊天:文字/文件气泡和 info alert 已同型;图片仍为“查看图片”文字链接(diagnosis_drawer.py:2329-2348),基准为最大 240x200 的可预览图片(ImChatRecordPanel.vue:39-50,272-276)。
  • 两者均可安全使用,但尚未达到这轮明确要求的媒体视觉同型。

P2-1 Daily 待办局部工具栏文案仍未精确

  • diagnosis_state_daily_lower_1024x640.png 的 primary 按钮为“新增待办”,基准为“+ 新增待办”;当前待办卡内也没有基准同一工具栏上的局部“刷新”(全 Daily 顶部已有刷新)。
  • 当前:diagnosis_drawer.py:1691-1702;基准:DiagnosisTodoList.vue:3-19
  • 这不再造成裁切或语义压平,故降为 P2。

P2-2 订单偏移栏文案与解释层级未精确

  • diagnosis_state_order_offset_1024x640.png 显示“全局就诊序号偏移 / 0 / 个序号 / 保存偏移”。
  • 基准是“复诊统计起始偏移”+ tooltip +“第 1 笔实单计为…”+“保存”:PatientOrderList.vue:7-41
  • 当前:src/doctor_workstation/ui/dialogs/diagnosis.py:1056-1083。数值范围与保存入口成立,本项为文案/说明层级 P2。

尺寸与壳层精确证据

核对项 1024x640 1440x900 源码/基准
edit/viewOnly Drawer 60% panel 从 x=410 开始,宽 614x=409 仍为 overlay panel 从 x=576 开始,宽 864 diagnosis.py:1336-1340;基准 edit.vue:3-9
appointment Drawer 60% panel 从 x=410 开始,宽 614 panel 从 x=576 开始,宽 864 appointment_drawer.py:1716-1719;基准 appointment.vue:2-6
Shell sidebar x=0..182 为侧栏,x=183 进入内容;抽样 x182=#25292D、x183=#F6F6F6 同一 183 px 边界 shell.py:540-543;基准 setting.ts:5
Shell topbar/tabs x=200 处 y49 为 topbar 底边,y50 进入 tabsy89 为 tabs 底边,y90 进入内容,即 50 + 40 同一分段 shell.py:602,686;基准 var.css:8multiple-tabs.vue:65

49 张 PNG 逐张判定

下列 PASS 只证明该张图实际入镜内容;不会拿截图外的滚动内容代替证据。

诊单列表与二维码(14

PNG 判定 目检结论
diagnosis_1024x640.png PASS 窄屏筛选换行、内部横向溢出、右固定区与行语义完整,无硬裁切。
diagnosis_1440x900.png PASS 宽屏列密度、挂号复合单元格、斑马/业务色与固定操作区成立。
diagnosis_advanced_filters_1280x800.png PASS 高级筛选完整展开,日期范围、控件顺序与重置可见。
diagnosis_double_appointment_cancel_1280x800.png PASS 同诊单两条挂号各有取消入口,虚线层级正常。
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 项、8 个图标、删除分隔/danger 与精确“二维码”全部可见。
diagnosis_horizontal_scroll_1024x640.png PASS 主表横移时右 460 px 固定区不动,阴影连续。
diagnosis_hover_warning_1280x800.png PASS warning 行 hover 渐变、3 px 左条和固定区同步。
diagnosis_loading_1280x800.png PASS 表内真实圆弧 spinner,内容淡化,无字符 spinner。
diagnosis_pending_assign_1280x800.png PASS 待分配 chip、月份和宽搜索在同一流式区。
diagnosis_permissions_cropped_1280x800.png PASS 权限裁掉批量工具栏和敏感动作,仅留查看。
diagnosis_order_qrcode_1280x800.png PASS 订单号、可辨识 QR、成功态、只读 URL、打开/重试/关闭均完整。

edit / viewOnly / readonly6

PNG 判定 目检结论
diagnosis_edit_1024x640.png PASS 60% Drawer、2/3 列语义表单、横向 tabs、独立滚动体与固定 footer 成立。
diagnosis_edit_1440x900.png PASS 864 px Drawer、宽屏字段比例和 footer 稳定。
diagnosis_viewonly_1024x640.png PASS 60% 只读 Drawer、待配药警告、disabled 表单与仅关闭 footer 成立。
diagnosis_viewonly_1440x900.png PASS 宽屏只读栅格、全 tabs 与固定 footer 成立。
diagnosis_readonly_1024x640.png PASS 独立只读页、hero、病例卡和“客服:赵医助”不拆字。
diagnosis_readonly_1440x900.png PASS 4 列病例密度、异常指标层级及长页面滚动成立。

详情状态与子流程(19

PNG 判定 目检结论
diagnosis_state_loading_1024x640.png PASS 圆弧 spinner 与“正在加载诊单...”完整,无旧 seed 穿透。
diagnosis_state_error_1024x640.png PASS danger banner、重试、空表单和禁用保存完整。
diagnosis_state_empty_1024x640.png PASS 处方空态与 primary “开方”已对齐;编辑器另见 PARTIAL。
diagnosis_state_permission_1024x640.png PASS 仅保留获权 tabs,手机号/身份证掩码,footer 仅关闭。
diagnosis_state_daily_1024x640.png PASS Daily 动作全部可见;刷新换行而未裁切,range/primary/secondary 层级清楚。
diagnosis_state_daily_lower_1024x640.png PARTIALP2 趋势、待办 filters、状态 pill 与 primary 新增成立;缺“+”及待办局部刷新。
diagnosis_state_daily_blood_edit_650x620.png PASS 血糖/血压编辑字段、单位、必填说明、备注和固定动作完整。
diagnosis_state_focus_1024x640.png PASS 姓名 focus ring、紧凑 close 和固定 footer 清楚。
diagnosis_state_save_loading_1024x640.png PASS 按钮内圆弧 spinner 与“正在保存”完整。
diagnosis_state_save_success_1024x640.png PASS 绿色勾与“保存成功”完整。
diagnosis_state_save_failure_1024x640.png PASS 红色叉与“保存失败”完整。
diagnosis_state_notes_actions_1024x640.png PARTIALP1 动作、chip 和单附件删除存在;舌象仍为文字按钮而非真实缩略图。
diagnosis_state_prescription_editor_920x780.png PARTIALP1 完整可用的 4-tab 编辑器已入镜;但不是基准 1200 px 连续 Drawer。
diagnosis_state_order_offset_1024x640.png PARTIALP2 数值、保存、订单表与分页成立;偏移文案/tooltip/解释层级未精确。
diagnosis_state_order_detail_640x540.png PARTIALP1 详情 modal 可用;缺基准 80% Drawer 的金额/支付/履约/物流/日志结构。
diagnosis_state_video_replay_1024x640.png PARTIALP1 主回放 + 2 个备用回放成立;仍是链接列表,不是表内播放器。
diagnosis_state_video_upload_action_1024x640.png PARTIALP1 指定行“追加回放”成立;媒体单元格结构仍未同型。
diagnosis_state_video_player_820x560.png PARTIALP1 应用内播放器和安全外开成立;形态是独立 dialog,不是 180 px 表内播放器。
diagnosis_state_chat_archive_1024x640.png PARTIALP1 完整 info、归档、同步/重载及左右气泡成立;图片消息退化为文字链接。

预约 Drawer8

PNG 判定 目检结论
appointment_drawer_1024x640.png PASS 60% Drawer、body 滚动、时段状态和固定 footer 无硬裁切。
appointment_drawer_1440x900.png PASS 医生 radio、四个日期按钮、时段网格、备注和 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 边界清楚。
appointment_drawer_loading_1440x900.png PASS 初始加载 overlay、圆弧 spinner、文案与禁用确认完整。
appointment_drawer_refreshing_1440x900.png PASS 刷新 overlay、圆弧 spinner、文案与禁用确认完整。

Shell2

PNG 判定 目检结论
diagnosis_shell_1024x640.png PASS 183/50/40、深色侧栏、tabs、固定列与分页均成立;无 glyph 方框。
diagnosis_shell_1440x900.png PASS 同一壳层比例在宽屏保持,箭头/刷新/全屏/关闭图形和中文完整。

发布判定

  • 可以确认无 P0,且此前 Daily、更多菜单、Shell 的明确 OPEN 已关闭。
  • 不能给视觉同型 PASS。 需至少关闭 P1-1 至 P1-4,并补录对应终态 PNG;P2 可在同一轮顺手精确。
  • 本轮最终:PARTIAL40 PASS / 9 PARTIAL,共检查 49 张 PNG