6.1 KiB
6.1 KiB
处方"每天几次"功能添加说明
功能描述
在中医处方单中添加"每天几次"字段,用于记录患者每天需要服用药物的次数。
修改内容
1. 表单界面(admin/src/components/tcm-prescription/index.vue)
添加表单字段(第 139-145 行)
在"服用天数"字段后面添加"每天几次"输入框:
<el-col :span="8">
<el-form-item label="服用天数" prop="usage_days">
<el-input-number v-model="formData.usage_days" :min="1" :max="365" class="!w-full" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="每天几次" prop="times_per_day">
<el-input-number v-model="formData.times_per_day" :min="1" :max="10" class="!w-full" placeholder="每天服用次数" />
</el-form-item>
</el-col>
字段说明:
- 字段名:
times_per_day - 类型:数字输入框
- 最小值:1
- 最大值:10
- 默认值:2
2. TypeScript 类型定义(第 580-615 行)
在 PrescriptionForm 接口中添加字段:
interface PrescriptionForm {
// ... 其他字段
usage_days: number
times_per_day: number // 新增
usage_instruction: string
// ... 其他字段
}
3. 数据模型初始化(第 650-680 行)
在 formData 中添加默认值:
const formData = reactive<PrescriptionForm>({
// ... 其他字段
usage_days: 7,
times_per_day: 2, // 新增,默认每天2次
usage_instruction: '水煎服,一日二次',
// ... 其他字段
})
4. 处方预览显示(第 280-285 行)
在处方打印预览中显示"每天几次"信息:
<div class="footer-dosage">
服用{{ savedPrescription.usage_days || savedPrescription.dose_count }}天{{ savedPrescription.times_per_day ? ',每天' + savedPrescription.times_per_day + '次' : '' }}, {{ savedPrescription.prescription_type }}
{{ savedPrescription.usage_instruction }}
</div>
显示效果:
- 如果设置了
times_per_day:显示"服用7天,每天2次, 浓缩水丸 水煎服,一日二次" - 如果未设置:显示"服用7天, 浓缩水丸 水煎服,一日二次"
后端数据库支持
需要添加的数据库字段
如果后端数据库表中还没有 times_per_day 字段,需要执行以下 SQL:
-- 在处方表中添加 times_per_day 字段
ALTER TABLE `zyt_prescription`
ADD COLUMN `times_per_day` INT(11) DEFAULT 2 COMMENT '每天服用次数' AFTER `usage_days`;
-- 如果需要更新现有数据的默认值
UPDATE `zyt_prescription` SET `times_per_day` = 2 WHERE `times_per_day` IS NULL;
后端 API 修改
确保后端接口支持 times_per_day 字段:
- 创建/更新处方接口:接收
times_per_day参数 - 查询处方接口:返回
times_per_day字段 - 验证规则:
times_per_day应该在 1-10 之间
使用说明
医生操作流程
- 打开处方单编辑界面
- 填写患者信息和诊断信息
- 添加中药处方
- 在"服用天数"字段输入天数(如:7)
- 在"每天几次"字段输入次数(如:2)
- 系统会在处方预览中显示:"服用7天,每天2次"
常见用法
- 每天2次:早晚各一次(最常见)
- 每天3次:早中晚各一次
- 每天1次:每日一次
- 每天4次:每6小时一次
测试要点
前端测试
- ✅ 输入框显示正常
- ✅ 最小值限制(不能小于1)
- ✅ 最大值限制(不能大于10)
- ✅ 默认值为2
- ✅ 预览显示正确
- ✅ 保存后数据正确
后端测试
- ✅ 创建处方时保存
times_per_day - ✅ 更新处方时更新
times_per_day - ✅ 查询处方时返回
times_per_day - ✅ 数据验证(1-10范围)
集成测试
- ✅ 创建处方 → 保存 → 查看预览 → 确认显示正确
- ✅ 编辑处方 → 修改次数 → 保存 → 确认更新成功
- ✅ 打印处方 → 确认打印内容包含"每天X次"
界面效果
编辑界面
┌─────────────────────────────────────────────────┐
│ 处方类型: [浓缩水丸 ▼] │
├─────────────────────────────────────────────────┤
│ 服用天数: [ 7 ] 每天几次: [ 2 ] │
├─────────────────────────────────────────────────┤
│ 用法: 水煎服,一日二次 │
└─────────────────────────────────────────────────┘
预览界面
服用7天,每天2次, 浓缩水丸 水煎服,一日二次
服用时间: 饭前 服用方式: 温水送服
注意事项
- 默认值:新建处方时默认为每天2次(最常见的用法)
- 范围限制:限制在1-10次之间,超出范围的输入会被自动调整
- 可选字段:如果不填写,预览中不会显示"每天X次"
- 与用法说明的关系:
times_per_day是结构化数据,usage_instruction是文字描述,两者可以互补
兼容性
- ✅ 兼容现有处方数据(旧数据没有此字段时不显示)
- ✅ 不影响现有功能
- ✅ 向后兼容
后续优化建议
- 智能提示:根据处方类型自动推荐合适的服用次数
- 关联验证:与"用法"字段进行一致性检查
- 统计分析:统计不同处方类型的常用服用次数
- 模板支持:在处方模板中包含
times_per_day字段
完成状态
- ✅ 前端界面添加完成
- ✅ 数据模型更新完成
- ✅ 类型定义更新完成
- ✅ 预览显示更新完成
- ⏳ 等待后端数据库字段添加
- ⏳ 等待后端 API 支持
相关文件
admin/src/components/tcm-prescription/index.vue- 处方组件主文件- 后端需要修改的文件(待确认):
- 处方模型文件
- 处方控制器文件
- 数据库迁移文件