d07cab2314
fix: 修复前端重命名残留问题
...
- 删除冗余的 openhis.js 工具文件
- 修正所有 utils import 路径 (healthlink-his → his)
- 更新 package.json 名称为 healthlink-his
- 更新 settings.js 版权声明
- 修正 .env 文件注释
- 修正 Java 包名示例 (com.healthlink-his → com.healthlink.his)
2026-06-05 13:18:15 +08:00
473a2c974f
refactor: rename openhis → healthlink-his (complete rebranding)
...
- Maven modules: openhis-* → healthlink-his-*
- Java packages: com.openhis → com.healthlink.his (3,278 files)
- Configuration: context-path, DB schema, logger, package scan
- Frontend: API paths /openhis/ → /healthlink-his/ (30 files)
- Database: healthlink_his schema with 188 tables (copied from hisdev)
- Verified: 18/18 API tests passed, 10-concurrent smoke test passed
2026-06-05 13:02:15 +08:00
1d21661a78
feat: Spring Boot 3.5.14 全量升级 + 组件升级
...
核心升级:
- Spring Boot 2.7.18 → 3.5.14
- MyBatis Plus 3.5.5 → 3.5.16 (spring-boot3-starter)
- Springdoc 1.8.0 → 2.8.6 (OpenAPI 3)
- Flowable 6.8.0 → 7.1.0
- Druid 1.2.x → 1.2.28 (boot3-starter)
- kotlin-reflect 1.9.10 → 1.9.25
迁移适配:
- javax → jakarta 命名空间 (620+ 文件)
- Swagger 注解迁移到 OpenAPI 3 (@Tag/@Schema/@Operation/@Parameter)
- Spring Security 6.2 适配 (antMatchers→requestMatchers, EnableMethodSecurity)
- Druid 包名迁移 (boot→boot3)
- Redis 配置路径迁移 (spring.redis→spring.data.redis)
- Flyway 适配 (flyway-database-postgresql)
- Flowable 7.x 适配 (MULE_TASK_IMAGE 移除)
修复:
- spring-boot-maven-plugin 2.5.15→3.5.14 (SPI服务发现失效)
- mybatis-plus-boot-starter 3.5.5→3.5.16 (kotlin-reflect+fastjson2冲突)
- Flowable database-schema-update 启用自动建表
验证: 23/23 测试通过, 1374 API端点正常
2026-06-04 22:39:49 +08:00
dc67c00d20
refactor(ui): 更新组件属性以符合新版本规范
...
- 将所有组件中的 append-to-body 属性替换为 teleported
- 为 el-radio 和 el-checkbox 组件添加正确的 value 属性
- 移除已弃用的 highlight-current-row 属性
- 为 vxe-table 添加 row-config 配置替代旧的高亮设置
- 更新 el-checkbox 的 true-value 属性值
- 修改 el-button 类型从 text 到 link 以匹配设计系统
2026-06-04 16:04:17 +08:00
bc4cf3a87c
style(diagnosis): 调整诊断表格列宽和样式
...
- 将诊断类型列宽度从120调整为170
- 修改验证状态下拉框样式,移除左侧内边距并设置固定宽度
- 统一依赖包引用方式,将lodash替换为lodash-es
2026-06-03 15:30:58 +08:00
55ff2e630e
fix(crontab): 将radio组件的label属性替换为value属性
...
- 更新day.vue中所有radio组件的label为value属性
- 更新hour.vue中所有radio组件的label为value属性
- 更新min.vue中所有radio组件的label为value属性
- 更新month.vue中所有radio组件的label为value属性
- 更新second.vue中所有radio组件的label为value属性
- 更新week.vue中所有radio组件的label为value属性
- 更新year.vue中所有radio组件的label为value属性
- 修复TableLayout/FormItem.vue中的radio组件属性
- 修改surgicalPatientHandover.vue中的radio组件属性
- 修复template3.vue中的type数据类型定义
- 更新clinicRoom/index.vue中的radio组件属性
- 修复editTemplate.vue中的radio组件属性
- 更新caseTemplatesStatistics/index.vue中的radio组件属性
- 修复organization/index.vue中的radio组件属性
- 更新ward/index.vue中的radio组件属性
- 移除chargeDialog.vue中radio的无效label属性
- 修复多个组件中的Array类型定义问题
- 调整outpatientregistration/index.vue中的列宽度配置
- 添加getConfigKey的导入声明
- 修复多个表单组件中的radio组件属性配置
2026-06-03 13:41:51 +08:00
5a2050a736
更新vxetable框架并升级前端组件框架
2026-06-03 11:19:52 +08:00
9b785e5e63
merge: 合并远程 develop 分支,解决 package-lock.json 冲突
2026-06-02 16:00:39 +08:00
67a0f7fc08
feat: 价格调整管理模块 el-table → VxeTable 迁移
...
- 安装 vxe-table@4.19 .6 + xe-utils@3.9.1
- main.js 全局注册 VxeTable
- priceAdjustmentManagement/index.vue 替换 4 个表格:
- el-table → vxe-table (+ edit-config 可编辑单元格)
- el-table-column → vxe-column
- selection → checkbox
- 可编辑列添加 edit-render
- 备份: backup/vxetable-migration-20260602/
2026-06-02 15:58:59 +08:00
2e865dd446
style(ui): 更新项目整体配色方案为Tailwind CSS标准色彩
...
- 将主要蓝色从 #409eff 替换为 #3B82F6
- 将成功绿色从 #67c23a 替换为 #10B981
- 将警告橙色从 #e6a23c 替换为 #F59E0B
- 将危险红色从 #f56c6c 替换为 #EF4444
- 将信息灰色从 #909399 替换为 #64748B
- 更新所有组件中的相关颜色配置
- 调整菜单主题为更深邃的午夜蓝风格
- 移除SCSS变量导出的注释标记
2026-06-02 12:52:59 +08:00
wangjian963
c6ac8d1cb1
565 [库房管理-调拨] 调拨单明细中“源仓库库存数量”未正确读取库存值,始终显示为0
...
600 【住院护士站-医嘱执行】数据一致性:医嘱执行成功后,在“已执行”列表中无法查询到该医嘱记录
2026-05-29 13:52:27 +08:00
b96d327646
fix( #579 ): 请修复 Bug #579:[一般] [报表管理-院内整体收入明细查询-门诊收费报表]列表的格式错乱
...
根因:
- `processListWithSubtotals` 中的小计行使用 `...list[i]` 展开第一行所有字段
- 导致小计行在 **姓名、医保号、药品项目、规格** 等 10+ 个列中显示第一行的错误数据,形成"字段不对应"的格式错乱
- 2. 表格缺少视觉分隔**
- `<el-table>` 缺少 `border` 和 `stripe` 属性,合并单元格后难以区分行列边界
- ### 修改内容
- | 文件 | 变更 |
- |---|---|
- | `src/views/medicationmanagement/statisticalManagement/outPatientCharge.vue` | 2 处改动 |
- 改动明细:**
- 1. **`el-table` 添加 `border` + `stripe`** — 使单元格有清晰边框,交替行色提升可读性
- 2. **小计行移除 `...list[i]` 字段展开** — 小计行仅保留 `departmentName: '小计'` 和 `totalPrice`,其他列自动为空,确保字段一一对应
- ### 验证
- ✅ ESLint 无错误
- ✅ Vite build 编译成功
- ✅ 修改范围最小化(仅 2 处改动,+3/-1 行)
修复:
- Bug #579 门诊收费报表格式错乱
- ### 分析过程
- 通过全链路代码审查,发现两个核心问题:
2026-05-29 02:29:55 +08:00
3e7d27ee61
fix( #591 ): 请修复 Bug #591:【住院医生站-临床医嘱】长期医嘱点击停嘱未弹出时间录入弹窗
...
根因:
- Bug #请修复 Bug #591 存在的问题
修复:
- ### 变更摘要
- 全链路数据流分析**:录取(弹窗输入)→ 保存(API传入)→ 查询(Mapper返回)→ 修改(Service记录)→ 删除/停止(状态变更)→ 关联(列表展示)
- ### 后端变更(4个文件)
- 1. `AdviceBatchOpParam.java`** — 停嘱参数添加 `stopTime` 字段
- 新增 `@JsonFormat Date stopTime`,支持前端传入停嘱时间
- 2. `RequestBaseDto.java`** — 查询DTO添加 `stopUserName`、`stopTime` 字段
- 新增 `String stopUserName`(停嘱医生姓名)
- 新增 `Date stopTime`(停嘱时间)
- 3. `AdviceManageAppServiceImpl.java`** — 停嘱Service增强
- 优先使用前端传入的 `stopTime`,兜底用当前时间
- 通过 `SecurityUtils.getNickName()` 获取当前操作用户昵称,记录到 `updateBy`
- 药品和诊疗两个更新入口均已同步修改
- 4. `AdviceManageAppMapper.xml`** — 三个UNION ALL子查询添加字段
- 药品子查询:`T1.effective_dose_end AS stop_time` + `T1.update_by AS stop_user_name`
- 耗材子查询:`NULL AS stop_time` + `'' AS stop_user_name`
- 诊疗子查询:`T1.occurrence_end_time AS stop_time` + `T1.update_by AS stop_user_name`
- ### 前端变更(1个文件)
- `order/index.vue`**:
- 1. **停嘱时间弹窗** — 点击「停嘱」后弹出 `el-dialog`,内含 `el-date-picker`(datetime类型,默认当前时间),确定后才调用API
- 2. **表格列** — 在「皮试」列后面、「诊断」列前面新增两列:
- 「停嘱医生」`prop="stopUserName"`,宽度120px
- 「停嘱时间」`prop="stopTime"`,宽度170px
- 3. **`handleStopAdvice`** — 保留原有校验(未保存/未签发/已停止检查),校验通过后弹出时间选择弹窗而非直接调API
- 4. **`confirmStopAdvice`** — 新增确认函数,将 `stopTime` 拼入请求参数后调用 `stopAdvice` API
- ### 验证结果
- ✅ 前端 Lint 检查通过(仅1个预存的 `vue/no-dupe-keys` 警告)
- ✅ 后端 Maven 编译通过(BUILD SUCCESS)
2026-05-29 00:39:28 +08:00
9db5ced4e3
Revert "Fix Bug #550 : AI修复"
...
This reverts commit 16c42ca108 .
2026-05-27 08:59:07 +08:00
16c42ca108
Fix Bug #550 : AI修复
2026-05-27 03:00:08 +08:00
232577caaa
fix : #579 (codex)
2026-05-24 15:07:56 +08:00
f11fa023c4
fix : #579 (codex)
2026-05-24 14:57:10 +08:00
1ac2252c34
fix : #568 (codex)
2026-05-24 14:55:18 +08:00
24ad69dfed
fix : #568 门诊日结排版 #571 撤回流程 #579 报表格式
2026-05-24 14:37:31 +08:00
Ranyunqiao
0e974129eb
bug 514 537 538 540 543
2026-05-18 17:44:15 +08:00
ce1161caea
Fix Bug #517 : [库房管理-领用管理] 业务逻辑校验缺失:允许保存并提交领用数量大于库存数量(零库存领用)的单据
...
根因分析:
- 前端 handleSubmitApproval(提交审批)未做库存校验,直接调用后端 API
- 后端 submitApproval 也未做库存校验,仅在保存时(addOrEditIssueReceipt)有 validateRequisitionStock
- 用户可绕过前端保存校验(如编辑已有草稿后直接提交审批),将超库存单据提交审批流
修复方案:
1. 后端:在 submitApproval 方法中增加 validateRequisitionStockByBusNo,通过单据详情查询已保存明细,逐行校验领用数量是否超过源仓库库存
2. 前端:在 handleSubmitApproval 提交前逐行调用 validateRequisitionQtyVsStock 校验库存,超库存时拦截并提示
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-17 21:31:42 +08:00
046a3e4703
Fix Bug #514 : [库房管理-调拨管理-调拨] 调拨单保存与提交校验缺失 - 前端增加数量>0和库存校验,后端批量保存接口补充@Validated注解
...
根因:批量调拨页面handleSave仅校验单价未校验数量,submitApproval未校验数据完整性即提交审批;后端批量保存接口缺少@Validated导致DTO层@Min(1)未生效
修复:
1. batchTransfer/index.vue handleSave() 增加调拨数量>0和不超过源库存的前端校验
2. batchTransfer/index.vue handleSubmitApproval() 增加数量>0校验后再提交审批
3. ProductTransferController.java 批量保存接口添加@Validated注解启用DTO校验
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-17 21:19:12 +08:00
07a8e55895
Fix Bug #439 : 领用出库选择领用药品后"总库存数量"列数据未显示
...
根因:handleLocationClick 中 pickBestOrgQuantityRow 返回的 d 有数据但 orgQuantity <= 0 时,
applyFromDto 不被调用,导致 totalQuantity 保持空字符串 '',界面显示为空白。
修复:将条件从 "d && Number(d.orgQuantity ?? 0) > 0" 改为 "d",
确保只要后端返回库存记录就调用 applyFromDto 填充 totalQuantity(无论数量是否为 0)。
同时在批号回退分支(lotTrimmed 路径)中做同样处理。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-17 18:11:01 +08:00
wangjian963
0aa7dd9b82
Revert "Merge remote-tracking branch 'origin/develop' into develop"
...
This reverts commit 5946c1ea4b , reversing
changes made to 8d905c9844 .
2026-05-15 09:33:35 +08:00
关羽
7d0c93b9a1
Fix Bug #452 : 领用出库模块选择药品时提示"仓库数量为0,无法调用",与实际库存数据不符
...
严格批号查询返回记录但 orgQuantity=0 时,原代码直接调用 applyFromDto 并弹出警告,
未回退到非严格查询(不含 lotNumber)获取同仓库其他有库存的批号。
修复:在 applyFromDto 之前检查 orgQuantity > 0,数量为0时回退到非严格查询。
2026-05-14 19:24:03 +08:00
b5c308d9cb
修复bug
2026-05-14 15:54:00 +08:00
0d6f891b47
fix bug434:门诊手术安排:编辑弹窗中“切口类型”字段未正确回显数据
...
bug426:门诊医生站-检查开立:已选择列表应支持树形展开,显示套餐明细
bug439:领用出库:选择领用药品后“总库存数量”列数据未显示
bug457:门诊收费:已签发的手术类医嘱在门诊收费列表中不显示项目名称
2026-05-14 11:48:22 +08:00
关羽
0f1b29fcea
Fix Bug #452 : 领用出库模块选择药品时提示"仓库数量为0,无法调用",与实际库存数据不符
...
根因:药品目录列表中返回的lotNumber是任意仓库中的批号,但getCount查询时用该lotNumber过滤用户选择的仓库库存。若该批号在目标仓库不存在(但其他批号存在),则返回0条记录导致误报"仓库数量为0"。
修复:在领用出库的handleLocationClick中移除getCount的lotNumber参数,改为查询该药品在所选仓库的所有批号库存。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-14 09:25:13 +08:00
Ranyunqiao
460890e3c2
413 460 513 514
2026-05-12 17:27:25 +08:00
关羽
f2d36b49b2
Fix Bug #439 : 领用出库:选择领用药品后"总库存数量"列数据未显示
...
根因分析:handleLocationClick 中使用 row.itemId 作为 getCount 查询参数,
但 row 来自药品选择弹窗的 rowValue 对象,该对象携带 definitionId 而非 itemId。
selectRow 中已将 definitionId 正确设置到 form.purchaseinventoryList[index].itemId,
但 handleLocationClick 未使用该值,导致 getItemId 为 undefined,后端查询无数据返回。
修复:1. 将 itemId 改为从 form.purchaseinventoryList[index].itemId 获取
2. 为 getCount 添加 .catch() 降级处理,API 失败时 totalQuantity 置 0 避免空白
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-09 18:48:18 +08:00
关羽
e651a1abac
Fix Bug #452 : 领用出库模块选择药品时提示仓库数量为0
...
选择药品时sourceLocationId未从表头仓库选择中取值,导致getCount查询库存时orgLocationId为空,
返回0条记录。修复为从receiptHeaderForm.headerLocationId获取仓库ID。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-08 11:14:05 +08:00
9c3e603b94
Fix Bug #443 : 手术计费:点击签发耗材时异常报错
...
当手术计费弹窗中点击"签发"耗材时,因耗材的locationId(发放库房)为空导致后端异常。
在DoctorStationAdviceAppServiceImpl.handDevice方法中,当locationId为null时,使用登录用户的科室ID作为默认值,
与NurseBillingAppService中的处理方式保持一致。
2026-05-08 09:14:18 +08:00
Ranyunqiao
d3c4b612e4
fix: 修复多模块Bug及功能优化
...
修复药品汇总、医嘱套餐、转科管理、用药汇总、处方列表、用户管理等多个模块的问题
2026-05-06 10:42:57 +08:00
b53cdfa617
fix: 修复Bug#439领用出库总库存数量未显示
...
1. 保留selectRow中sourceLocationId不被清空(handleAddRow已设置)
2. 取消注释handleLocationClick调用,自动获取库存数量
2026-04-24 15:08:29 +08:00
8deefd2cb1
bug338:门诊划价新增时未校验当前就诊记录及诊断记录,未接诊患者也可新增划价项目。
...
bug339:【库存商品明细查询报表】“药房”筛选条件失效,查询结果中包含非选中药房的数据
2026-04-09 18:15:26 +08:00
71e3601d51
feat(prescription): 更新处方列表数据结构并优化药品管理界面功能
...
- 在处方列表中新增总价、剂量和剂量数量字段
- 修复药品审批页面跳转时仓库信息丢失问题
- 扩展药品列表列宽度并启用溢出提示功能
- 为采购单界面添加多种视图状态下的字段禁用逻辑
- 优化采购单仓库位置字段的初始化流程,防止数据丢失
2026-03-26 16:54:20 +08:00
Ranyunqiao
22d73e5b44
110 库房管理-》领用管理-》领用退库的升级(可参考开源代码移植)
2026-03-24 15:58:53 +08:00
Ranyunqiao
059078c264
108 库房管理-》领用管理-》领用出库的升级
2026-03-24 10:39:56 +08:00
b5cf685b13
fix(medical-order): 解决医嘱编辑界面显示和验证问题 BUG#250,145
...
- 修复医嘱集合对话框中的条件判断逻辑,统一新增行的显示规则
- 更新医嘱集合对话框中剂量、给药途径、频次、天数等字段的显示逻辑
- 为西药类医嘱添加必填字段验证功能,包括剂量、给药途径、频次等
- 优化处方列表组件中编辑状态下的输入控件显示
- 修复处方详情数据合并逻辑,确保正确的字段优先级处理
- 解决多个库存管理模块中API请求数据格式错误的问题
- 修复医嘱库信息保存和数据回填的相关问题
2026-03-23 15:46:30 +08:00
Ranyunqiao
0b4b4f7283
107 库房管理-》采购管理-》采购入库的升级(可参考开源代码移植)
2026-03-19 15:47:43 +08:00
6d87b7c445
feat(role): 添加角色用户关系管理功能并优化处方列表组件 bug#182
...
- 在SysUserRoleMapper中新增selectUserIdsByRoleId方法查询角色下的用户ID列表
- 在SysRoleServiceImpl中注入ISysMenuService并实现菜单缓存清理逻辑
- 修改updateRole方法在角色权限变更后清除相关用户的菜单缓存
- 更新处方列表组件确保showPopover初始值为false避免自动弹出问题
- 将采购入库页面的按钮文本从"添加记录"改为"采购入库"
- 添加删除验证检查已审批记录不允许删除的功能
2026-03-18 14:26:12 +08:00
e8850e85fc
feat(transfer): add warehouse type support and lab specimen tables
2026-03-12 16:31:31 +08:00
liuliu
066c457d90
169 库房管理-》采购管理-》采购管理:选中采购管理中的数据,点击删除报错,已解决,并新增批量删除功能
2026-03-10 18:07:07 +08:00
b65841c0cc
fix(common): 统一异常处理并迁移打印功能到hiprint
...
- 替换所有System.out.println和printStackTrace为slf4j日志记录
- 在BeanUtils、AuditFieldUtil、DateUtils、ServletUtils等工具类中添加Logger实例
- 在Flowable相关控制器和服务中统一错误日志记录格式
- 在代码生成器中添加日志记录功能
- 将前端打印组件从Lodop迁移到hiprint打印方案
- 更新体温单打印功能使用hiprint预览打印
- 移除调试用的console.log语句
- 修复打印模板中线条元素类型定义
2026-03-06 22:16:44 +08:00
8af06f6916
perf(database): 优化数据库查询性能和前端请求处理
...
- 优化ActivityDefinitionManageMapper.xml中的分页查询,减少JOIN操作并使用索引友好的写法
- 修复purchaseinventory组件中API调用的数据传递格式问题
- 将前端请求超时时间从60秒增加到120秒以配合后端超时设置
- 在手术申请页面添加远程搜索防抖功能,避免频繁API调用
- 重构SurgeryAppServiceImpl中的名称字段填充逻辑,使用批量查询减少数据库访问次数
- 优化SurgeryMapper.xml中的分页查询,使用子查询预加载关联数据并减少不必要的JOIN
2026-03-04 18:32:06 +08:00
30ca81090a
fix(doctorstation): 修复诊断和手术模块的数据类型及权限过滤问题
...
- 修复诊断模块中medTypeCode字段使用数字类型字典值而非字符串
- 在报损管理中添加权限过滤后的数据回退机制,当权限过滤无数据时获取全部数据
- 为报损管理新增getPharmacyListAll和getDispensaryListAll接口函数
- 在手术申请模块中添加患者选中校验,防止未选择患者时的操作异常
- 修复手术模块的编辑、查看、删除操作缺少患者校验的问题
2026-03-04 13:16:37 +08:00
6a8f82bb2e
refactor(print): 更新打印功能实现并优化药品管理查询
...
- 替换旧的hiprint直接调用为统一的printUtils工具类
- 新增门诊手术计费打印模板支持(含流程图)
- 修改门诊收费结算单打印逻辑,使用新的打印工具类
- 修复门诊挂号打印模板注释说明
- 优化药品库房查询,过滤已删除的记录
- 更新药品管理接口URL路径配置
- 添加打印客户端连接状态检查,支持浏览器打印预览备选方案
- 改进打印错误处理和用户提示机制
2026-03-04 11:05:12 +08:00
9116ea4a84
fix(ui): 修复多个功能模块的验证和数据处理问题
...
- 在医生工作站退费功能中添加患者选择验证
- 统一药品管理中的仓库类型选择逻辑,移除重复代码
- 修复统计管理页面清空按钮的数据重置问题
- 修正西药管理页面处方打印按钮的功能绑定
- 完善库存报表查询的SQL过滤条件实现
- 更新多个控制器接口参数类型以支持业务流程
- 优化退费列表对话框的数据加载和错误处理
2026-03-02 23:27:11 +08:00
208b8fc41d
fix(ui): 修复多个功能模块的验证和数据处理问题
...
- 在医生工作站退费功能中添加患者选择验证
- 统一药品管理中的仓库类型选择逻辑,移除重复代码
- 修复统计管理页面清空按钮的数据重置问题
- 修正西药管理页面处方打印按钮的功能绑定
- 完善库存报表查询的SQL过滤条件实现
- 更新多个控制器接口参数类型以支持业务流程
- 优化退费列表对话框的数据加载和错误处理
2026-03-02 18:36:22 +08:00
HuangXinQuan
753bd8bb4b
耗材入口采购不显示耗材库
2026-02-25 14:52:43 +08:00