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