Files
zyt/.trellis/tasks/archive/2026-05/05-07-dosage-bag-count/prd.md
T

70 lines
3.3 KiB
Markdown

# 开方用量增加袋数选项
## Goal
在开方流程中为“用量”补充“袋数”信息,并在处方业务订单详情里同步展示,解决当前只能记录每袋克数/毫升数、不能表达一次服用几袋的问题。
## What I already know
* 诊间开方共用组件是 `admin/src/components/tcm-prescription/index.vue`
* 患者列表-开方页面是 `admin/src/views/consumer/prescription/index.vue`
* 处方业务订单详情展示位于 `admin/src/views/consumer/prescription/order_list.vue`
* H5 对应详情页是 `admin/src/views/consumer/prescription/order_list_h5.vue`
* 当前 `bags_per_dose` 字段已存在,但语义是“饮片每贴出包数”,不适合复用为浓缩水丸/开方用量袋数
* 当前多个浓缩水丸展示逻辑错误地把 `bags_per_dose` 当作“一次几包”使用,本次应与新字段区分
## Assumptions (temporary)
* 新增字段命名为 `dosage_bag_count`
* 新字段主要用于“浓缩水丸”开方场景;饮片继续使用原有 `bags_per_dose`
* “用量袋数”控件放在“用量”右侧,不单独增加标题,仅提供 `1~5袋` 选项
* 业务订单详情中的“用量”展示为“每袋数值 + 单位 + 袋数”;无袋数时回退为原展示
* 处方查看/H5 详情/处方笺相关依赖同一处方数据的地方,同步使用新字段,避免展示串义
## Open Questions
* 无。按上述假设先实现,如用户补充再调整。
## Requirements
* 在诊间开方共用组件中新增 `dosage_bag_count` 表单字段、默认值、回填、保存参数
* 在患者列表-开方页面中新增 `dosage_bag_count` 表单字段、默认值、回填、保存参数
* 后端处方模型/校验/逻辑支持 `dosage_bag_count` 的新增与编辑保存
* 补充数据库变更脚本,为处方表新增 `dosage_bag_count`
* 处方业务订单详情“用量”展示袋数
* 同步修正当前误把 `bags_per_dose` 当成浓缩水丸袋数的相关前端展示/文案逻辑
## Acceptance Criteria
* [ ] 诊间“问诊列表-开方”中,用量旁可选择 `1袋``5袋`
* [ ] “患者列表-开方”中,用量旁可选择 `1袋``5袋`
* [ ] 保存后重新打开处方,袋数可正确回填
* [ ] 处方业务订单详情“用量”可显示袋数
* [ ] 饮片“每贴出包数”行为不受影响
* [ ] 不再使用饮片字段 `bags_per_dose` 充当浓缩水丸袋数
## Definition of Done
* 代码修改完成
* 相关 lint / type-check 可通过
* 关键展示链路已自检
## Out of Scope
* 非处方详情页之外的历史报表/统计口径调整
* 对既有数据做批量迁移或回填
## Technical Notes
* 诊间开方共用组件:`admin/src/components/tcm-prescription/index.vue`
* 患者列表开方:`admin/src/views/consumer/prescription/index.vue`
* 业务订单详情:`admin/src/views/consumer/prescription/order_list.vue`
* H5 业务订单详情:`admin/src/views/consumer/prescription/order_list_h5.vue`
* 后端处方逻辑:`server/app/adminapi/logic/tcm/PrescriptionLogic.php`
* 后端校验:`server/app/adminapi/validate/tcm/PrescriptionValidate.php`
* 处方模型:`server/app/common/model/tcm/Prescription.php`
## Research References
* [`research/current-code.md`](research/current-code.md) — 当前字段语义与受影响文件梳理