2.9 KiB
2.9 KiB
挂号类型展示与图文问诊通话限制
按用户确认,仅使用现有视频问诊、图文问诊,不新增线下面诊选项。新预约默认视频,历史电话记录继续准确展示。
交付
- 挂号编辑和预约抽屉明确标注“挂号类型”。我的患者、诊单 PC/H5 显示当前挂号类型,多次挂号分别展示;未挂号显示
—。 - 医生面诊 PC/H5 的列表及详情显示“面诊类型”;聊天窗口传递并核对本次挂号 ID,避免同一诊单多条挂号类型串用。
- 图文问诊保留文本、图片、文件沟通,隐藏语音、视频及群视频入口。直接调用群视频方法或 SDK
call/calls/groupCall也会校验;发起前重新读取服务端类型,拒绝已改为图文的挂号。 - 服务端签名响应携带本次挂号类型及通话权限;发起通话接口在创建通话记录前再次校验。签名仍供图文聊天使用,未禁用聊天登录。
- 视频二维码及旁观入口仅供视频问诊使用,普通诊单二维码仍支持图文问诊。
- 多条有效挂号未指定 ID 时允许获取聊天签名,但不猜测可视频的挂号;明确挂号 ID 必须属于当前诊单。历史空类型仅在挂号确实存在时沿用原视频默认值。
验证
node --test admin/tests/appointment-call-mode.test.cjs:7 项行为回归通过,包含实际 SFC 脚本执行及真实聊天模板渲染,校验图文无通话按钮、视频仍有按钮、直调拦截、服务端类型变化及跨窗口状态切换。node admin/scripts/verify-appointment-type.cjs:9 个 Vue 组件脚本、模板、样式编译通过,3 个聊天入口传递挂号 ID 的约束通过。php server/tests/AppointmentCallPolicyTest.php:34 个断言通过,内存模型替身,验证挂号选择、图文限制、跨诊单 ID 拒绝及旧数据兼容。php server/tests/AppointmentTypeTest.php、php server/tests/CallSignatureIdentityContractTest.php通过;修改 PHP 语法检查通过。- 全量
vue-tsc已执行,仍有原有模块报错;本次新增工具和聊天组件无报错。编辑过的两个列表仅在原有@command回调出现已有cmd隐式 any,未在本次扩大修复范围。输出见typecheck.log。 git diff --check通过。- 全量生产构建通过(1 分 53 秒),输出到任务临时目录,未覆盖站点发布目录;完整输出见
build.log,仍有既有的大分包警告。
分项记录:页面、患者列表后端、服务端通话策略。测试使用虚构数据,不连接业务数据库,不生成真实二维码,不登录腾讯云或拨打实际通话。未进行完整浏览器/真实租户联调。
上线
本次未部署,无新增表字段或 SQL 迁移。需将前后端一起上线:新页面以签名接口返回的通话权限为准,旧后端不返回确认字段时不会开放通话按钮。