Files
zyt/docs/plans/revisit-assignment-cohort-2026-10-16.md
T
2026-10-17 16:08:24 +08:00

51 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 复诊接诊率:保留原算法,新增统计使用独立入口
2026-10-17 更正:用户要求原来的算法保持不变。原页面、原接口及原计算逻辑已恢复至修改前版本。10 月 16 日曾将原 Controller 接入指派周期计算器,虽然旧计算器仍保留,但原页面的数据口径已改变;本次恢复覆盖了完整调用链。
## 三个独立入口
| 页面 | 路径 | 接口 | 口径 |
| --- | --- | --- | --- |
| 原复诊接诊率 | `/stats/revisit_rate` | `stats.revisitRate/*` | 原按月算法、默认配置及 exclude/slot 切换保持原样 |
| 按指派周期复诊率 | `/stats/revisit_assign_rate` | `stats.revisitAssignRate/*` | 按新指派日期范围及医助选患者,复诊累计至查询当天 |
| 继承复诊接诊率 | `/stats/revisit_inherit_rate` | `stats.revisitInheritRate/*` | 按继承日期及医助选患者,继承首笔有效订单算二诊、次笔三诊 |
原四个 action(overview、deptOptions、assignLines、visitOrderLines)继续直接调用原 RevisitRateLogic。原月份筛选、参数 month / inherit_mode / kind、分母、分子、全局诊次、订单持有人及部门汇总规则全部恢复。原 API 函数原字节保留,新接口函数以 revisitCohort 前缀追加,避免旧页面误用。
RevisitCohortLogic 使用独立 RevisitCohortDataSource 读取数据,不再继承或要求修改原 RevisitRateLogic 的方法可见性。自动指派、个人业绩、全局诊次服务和项目统计配置均与修改前逐字节一致。
## 独立新增报表
日期范围包含起止日,订单累计到查询时刻。继承前全局诊次及偏移不影响继承重新起算。转派/释放终止旧持有段;释放后重新分回原医助正常统计。新报表的去重及继承规则只作用于新接口。
两个新报表分别接受 start_date / end_date、dept_ids、assistant_id;明细可附 scope_assistant_id / dept_id,与顶层筛选取交集。继承类型由服务端固定,不能通过参数切换。
## 发布
原页面恢复需要发布恢复后的 PHP 与管理端构建,原菜单无需修改;本次未执行正式 release,未连接业务库,不能据本地证据声称线上已恢复。
启用独立新增页面时,依次执行:
1. `server/sql/1.9.20261016/01_add_revisit_inherit_rate_menu.sql`
2. `server/sql/1.9.20261017/01_add_revisit_assign_rate_menu.sql`
3. 按部署流程刷新 AdminAuthCache 并重新登录。
脚本幂等,按原各项权限逐项授权,原角色没有订单明细权限时不会额外获得。两个脚本均不改写原菜单、原权限记录或业务数据。
## 本轮验证
- 10 个原链路文件(原页面、Controller、Logic、Calculator、诊次服务、配置、自动指派、个人业绩及 MCP 目录)与 HEAD=c67b3eff69d9a3ac2046861751f159692a0abcd7 字节一致;原 API 文件完整原字节作为前缀保留。证据:artifacts/revisit-legacy-source-proof.json。
- 原统计、继承诊次及诊次服务测试 122 项通过;新增队列纯计算 34 项通过。
- 本机隔离 MySQL 5.7 集成测试 37 项通过:实际 Controller 调用验证原 exclude/slot 的汇总及两类明细与原 Logic 完全一致;新增查询不改变原响应;独立新接口固定类型;两个菜单脚本幂等、逐权限授权且不改写原菜单。
- 四份 Vue SFC 编译及 12 个真实 API wrapper 路径调用通过;浏览器 20 项检查通过,包含原月筛选、原口径切换、原明细参数及新增两页入口隔离。浏览器使用虚构接口响应,数据库测试使用独立本机临时库。
- MCP 目录单元测试及 PHP 语法检查通过。
- 最终 Vite 生产构建通过,输出到 `.codex-tasks/revisit-legacy-restored-build`,未执行 release。
集成测试须在本机独立临时 MySQL 上显式启用:
```powershell
$env:REVISIT_COHORT_TEST_DISPOSABLE = '1'
$env:REVISIT_COHORT_TEST_MYSQL_PORT = '33817'
php server/tests/RevisitCohortDatabaseTest.php
```