235 lines
7.0 KiB
Markdown
235 lines
7.0 KiB
Markdown
# 处方导入功能说明
|
||
|
||
## 功能概述
|
||
|
||
在中医处方单组件中新增了"从处方库导入"功能,允许医生快速从处方库中选择已保存的处方模板,一键导入药材配方。
|
||
|
||
## 使用位置
|
||
|
||
**组件路径:** `admin/src/components/tcm-prescription/index.vue`
|
||
|
||
**功能位置:** 中药处方 (RP) 区域,"添加中药"按钮旁边
|
||
|
||
## 使用方法
|
||
|
||
### 1. 打开处方库
|
||
|
||
在编辑处方时,点击"从处方库导入"按钮,会弹出处方库选择对话框。
|
||
|
||
### 2. 搜索处方
|
||
|
||
- 在搜索框中输入处方名称
|
||
- 按回车键或点击搜索按钮进行搜索
|
||
- 支持模糊搜索
|
||
|
||
### 3. 选择处方
|
||
|
||
有两种方式导入处方:
|
||
|
||
**方式一:点击"导入"按钮**
|
||
- 在列表中找到需要的处方
|
||
- 点击右侧的"导入"按钮
|
||
|
||
**方式二:点击行**
|
||
- 直接点击处方所在的行
|
||
- 自动导入该处方
|
||
|
||
### 4. 导入结果
|
||
|
||
- 导入成功后,药材列表会自动填充
|
||
- 显示成功提示:已导入处方「处方名称」,共X味药材
|
||
- 对话框自动关闭
|
||
|
||
## 功能特点
|
||
|
||
### 1. 实时搜索
|
||
- 支持按处方名称搜索
|
||
- 清空搜索框自动刷新列表
|
||
|
||
### 2. 分页显示
|
||
- 默认每页显示15条
|
||
- 支持切换每页10/15/20/50条
|
||
- 显示总记录数
|
||
|
||
### 3. 详细信息
|
||
列表显示以下信息:
|
||
- 处方名称
|
||
- 药材数量(X味)
|
||
- 药材明细(药材名称 + 剂量)
|
||
- 创建人
|
||
|
||
### 4. 权限控制
|
||
- 显示自己创建的所有处方
|
||
- 显示其他人创建的公开处方
|
||
- 不显示其他人的私有处方
|
||
|
||
### 5. 数据安全
|
||
- 深拷贝药材数据,避免引用问题
|
||
- 导入前验证药材数据是否存在
|
||
|
||
## 界面示例
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────┐
|
||
│ 从处方库导入 [×] │
|
||
├─────────────────────────────────────────────────────┤
|
||
│ [请输入处方名称搜索________________] [搜索] │
|
||
│ │
|
||
│ ┌─────────────────────────────────────────────────┐ │
|
||
│ │ 处方名称 │ 药材数量 │ 药材明细 │ 创建人 │ 操作 │ │
|
||
│ ├─────────────────────────────────────────────────┤ │
|
||
│ │ 六味地黄丸│ 6味 │ 熟地黄24g、山茱萸12g...│ │
|
||
│ │ │ │ │张医生│导入│ │
|
||
│ ├─────────────────────────────────────────────────┤ │
|
||
│ │ 补中益气汤│ 8味 │ 黄芪15g、党参10g... │ │
|
||
│ │ │ │ │李医生│导入│ │
|
||
│ └─────────────────────────────────────────────────┘ │
|
||
│ │
|
||
│ 共2条 [10] [15] [20] [50] [<] [1] [>] │
|
||
└─────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## 技术实现
|
||
|
||
### 1. API接口
|
||
|
||
使用处方库列表接口:
|
||
```typescript
|
||
prescriptionLibraryLists({
|
||
page_no: 1,
|
||
page_size: 15,
|
||
prescription_name: '搜索关键词',
|
||
is_public: ''
|
||
})
|
||
```
|
||
|
||
### 2. 数据结构
|
||
|
||
处方库返回的数据格式:
|
||
```typescript
|
||
{
|
||
lists: [
|
||
{
|
||
id: 1,
|
||
prescription_name: '六味地黄丸',
|
||
herbs: [
|
||
{ name: '熟地黄', dosage: 24 },
|
||
{ name: '山茱萸', dosage: 12 },
|
||
// ...
|
||
],
|
||
creator_name: '张医生',
|
||
is_public: 1
|
||
}
|
||
],
|
||
count: 10
|
||
}
|
||
```
|
||
|
||
### 3. 导入逻辑
|
||
|
||
```typescript
|
||
const handleImportLibrary = (row: any) => {
|
||
// 1. 验证数据
|
||
if (!row.herbs || row.herbs.length === 0) {
|
||
feedback.msgWarning('该处方没有药材信息')
|
||
return
|
||
}
|
||
|
||
// 2. 深拷贝数据
|
||
const importedHerbs = JSON.parse(JSON.stringify(row.herbs))
|
||
|
||
// 3. 替换当前药材列表
|
||
formData.herbs = importedHerbs
|
||
|
||
// 4. 提示成功
|
||
feedback.msgSuccess(`已导入处方「${row.prescription_name}」`)
|
||
|
||
// 5. 关闭对话框
|
||
showLibraryDialog.value = false
|
||
}
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
### 1. 数据覆盖
|
||
- 导入处方会**替换**当前的药材列表
|
||
- 如果已经添加了药材,导入后会被覆盖
|
||
- 建议在开始编辑时就导入处方
|
||
|
||
### 2. 数据验证
|
||
- 导入前会验证处方是否有药材数据
|
||
- 如果处方为空,会提示错误
|
||
|
||
### 3. 权限限制
|
||
- 只能看到自己的处方和公开的处方
|
||
- 私有处方不会显示在列表中
|
||
|
||
### 4. 搜索范围
|
||
- 搜索只针对处方名称
|
||
- 不支持按药材名称搜索
|
||
|
||
## 使用场景
|
||
|
||
### 场景1:快速开方
|
||
医生经常开"六味地黄丸"处方,可以:
|
||
1. 点击"从处方库导入"
|
||
2. 搜索"六味地黄丸"
|
||
3. 点击导入
|
||
4. 药材自动填充,无需手动输入
|
||
|
||
### 场景2:参考经典处方
|
||
医生想参考其他医生的处方:
|
||
1. 打开处方库
|
||
2. 浏览公开的处方
|
||
3. 选择合适的处方导入
|
||
4. 根据患者情况调整剂量
|
||
|
||
### 场景3:标准化处方
|
||
医院推广标准处方:
|
||
1. 管理员创建标准处方并设为公开
|
||
2. 所有医生都能看到和使用
|
||
3. 确保处方的一致性
|
||
|
||
## 优势
|
||
|
||
1. **提高效率** - 无需手动输入药材,节省时间
|
||
2. **减少错误** - 避免手动输入导致的错误
|
||
3. **标准化** - 使用标准处方模板,确保质量
|
||
4. **知识共享** - 医生之间可以分享处方经验
|
||
5. **快速学习** - 新医生可以参考资深医生的处方
|
||
|
||
## 后续优化建议
|
||
|
||
1. **批量导入** - 支持一次导入多个处方
|
||
2. **处方预览** - 导入前预览处方详情
|
||
3. **智能推荐** - 根据诊断自动推荐处方
|
||
4. **使用统计** - 显示处方使用次数
|
||
5. **收藏功能** - 收藏常用处方,快速访问
|
||
|
||
## 常见问题
|
||
|
||
### Q1: 导入后可以修改吗?
|
||
A: 可以。导入后可以自由添加、删除、修改药材。
|
||
|
||
### Q2: 导入会覆盖已有的药材吗?
|
||
A: 是的。导入会替换当前所有药材,建议在开始时就导入。
|
||
|
||
### Q3: 为什么看不到某个处方?
|
||
A: 可能是该处方设置为私有,只有创建者可见。
|
||
|
||
### Q4: 可以导入后再保存到处方库吗?
|
||
A: 可以。导入、修改后,可以通过"是否共享"选项保存为新的处方模板。
|
||
|
||
### Q5: 搜索不到处方怎么办?
|
||
A: 检查处方名称是否正确,或清空搜索框查看所有处方。
|
||
|
||
## 技术支持
|
||
|
||
如有问题或建议,请联系技术支持团队。
|
||
|
||
---
|
||
|
||
**版本:** v1.0.0
|
||
**更新日期:** 2026-03-22
|
||
**状态:** ✅ 已完成
|