Files
zyt/PRESCRIPTION_IMPORT_FEATURE.md
T
2026-03-23 18:02:16 +08:00

235 lines
7.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.
# 处方导入功能说明
## 功能概述
在中医处方单组件中新增了"从处方库导入"功能,允许医生快速从处方库中选择已保存的处方模板,一键导入药材配方。
## 使用位置
**组件路径:** `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
**状态:** ✅ 已完成