|
|
f54a7ff825
|
fix(#697): 请修复 Bug #697
由 AI Agent (guanyu) 自动修复,请查看 diff 确认变更内容。
|
2026-06-11 00:40:16 +08:00 |
|
|
|
d64e1c753a
|
fix(#707): 手术申请详情 处方号→手术单号 标签修正
|
2026-06-10 23:44:47 +08:00 |
|
|
|
55785252f6
|
fix(#666): 请修复 Bug #666:门诊发药模块无法检索到患者信息
由 AI Agent (guanyu) 自动修复,请查看 diff 确认变更内容。
|
2026-06-10 11:35:55 +08:00 |
|
|
|
5fd00011db
|
fix(#668): 请修复 Bug #668:中医处方签发按钮系统崩溃null key
由 AI Agent (guanyu) 自动修复,请查看 diff 确认变更内容。
|
2026-06-10 10:49:37 +08:00 |
|
|
|
e2510fe0dd
|
fix(#715): 临时耗材医嘱同步至护士站 + RequestFormDetailQueryDto 修正
由 AI Agent (guanyu) 自动修复
|
2026-06-10 08:37:14 +08:00 |
|
|
|
d405e9cb5e
|
fix(Bug#708): 修复启动脚本openhis旧名引用 + 医嘱校对增加耗材请求支持
- start.sh/start.bat: openhis-application/domain/common → healthlink-his-application/domain/common
- start.sh/start.bat: com.openhis.OpenHisApplication → com.healthlink.his.HealthLinkHisApplication
- AGENTS.md: 修正模块引用名
- AdviceProcessAppServiceImpl: 医嘱校对/驳回增加WOR_DEVICE_REQUEST类型处理
- AdviceProcessAppMapper.xml: 查询增加WOR_DEVICE_REQUEST表关联
- RequestFormDetailQueryDto: 字段修正
- surgeryApplication/surgery vue: 前端适配
|
2026-06-10 00:26:43 +08:00 |
|
|
|
babf62083a
|
fix: 切换账户后路由权限校验 — 防止通过旧标签/URL访问无权限页面
根因: router.beforeEach 在角色加载后 return true,不检查目标路由
是否在当前用户已注册的路由列表中。导致切换账户后,通过旧标签
或直接输入 URL 可访问前一个用户的页面。
修复: 在 return true 前增加 router.resolve() 检查,若目标路由
未注册(matched.length === 0)则拦截并提示无权访问。
数据库验证: 护士角色(role_id=201)确实没有住院医生工作站
(menu_id=288)的 sys_role_menu 权限,后端 getRouters 返回
正确。问题纯粹在前端路由守卫。
|
2026-06-09 16:55:17 +08:00 |
|
|
|
68cfa48820
|
refactor(config): 重构应用配置中的Jackson序列化设置
- 将Jackson2ObjectMapperBuilderCustomizer替换为直接配置ObjectMapper实例
- 移除未使用的Logger导入和日志变量声明
- 统一日期时间序列化配置方式,禁用时间戳格式
- 更新反序列化上下文参数命名以保持一致性
- 简化泛型类型声明,使用钻石操作符
fix(patient): 修复患者管理中的数据库查询语法错误
- 移除PatientManageMapper.xml中多余的逗号导致的SQL语法问题
- 确保字段列表格式正确以避免数据库解析错误
fix(rationaldrug): 修正合理用药模块API端点路径
- 移除API路径中的healthlink-his前缀,统一使用/api/v1基础路径
- 保持所有处方审核相关接口的一致性
feat(patient): 在患者添加对话框中增加联系人信息字段
- 添加联系人姓名、关系和电话号码输入表单
- 为新字段提供相应的验证规则和占位符提示
- 保持与现有监护人信息字段的界面布局一致
|
2026-06-09 16:37:59 +08:00 |
|
Ranyunqiao
|
d47c83eec5
|
bug 699
|
2026-06-09 15:46:52 +08:00 |
|
Ranyunqiao
|
2915915881
|
bug 573 588
|
2026-06-09 13:16:36 +08:00 |
|
|
|
68b92dfe31
|
fix: Bug#705 死亡时间日期格式兼容 — DTO改String+Service层解析
问题:前端el-date-picker发送yyyy/MM/dd格式,后端Jackson无法解析
根因:Jackson全局simpleDateFormat覆盖字段级@JsonDeserialize,SimpleModule注册Date反序列化器在Spring Boot 4.x中不生效
修复:
- PatientBaseInfoDto.deceasedDate: Date → String(绕过Jackson日期解析)
- PatientInformationServiceImpl.handlePatientInfo: 手动解析String→Date,兼容yyyy-MM-dd和yyyy/MM/dd格式
- ApplicationConfig: 恢复干净状态,移除无效的自定义Date反序列化器
- systemd service: 修正jar路径 openhis → healthlink-his
|
2026-06-08 22:12:14 +08:00 |
|
|
|
c9e8729d07
|
fix: Bug#704 文化程度字典key修正 + 死亡时间日期格式兼容
问题:
1. 修改患者弹窗文化程度下拉无数据
根因:前端查询字典key为education_level,数据库实际为educational_level
2. 填写死亡时间保存时JSON解析报错
根因:el-date-picker用YYYY/MM/DD格式,后端期望yyyy-MM-dd HH:mm:ss
修复:
- 前端:字典key修正为educational_level,降级数据与数据库对齐
- 前端:el-date-picker value-format改为YYYY-MM-DD HH:mm:ss
- 前端:submitForm增加deceasedDate格式标准化兜底
- 后端:PatientBaseInfoDto deceasedDate改用FlexibleDateDeserializer兼容多格式
- 新增FlexibleDateDeserializer支持yyyy-MM-dd和yyyy/MM/dd等格式
|
2026-06-08 16:36:57 +08:00 |
|
|
|
207640f4ef
|
fix: Bug#705 患者编辑字段不持久化修复
根因分析:
1. Patient实体/PatientBaseInfoDto缺少postalCode,hukouAddress,guardian*,patientDerived,companyAddress字段
2. PatientManageMapper.xml外层SELECT缺少这些字段导致查询不返回
3. handlePatientInfo使用updateById默认NOT_NULL策略导致null字段不更新
4. patientAddDialog.vue的reset()未初始化这些字段
修复内容:
- Patient.java: 补全缺失字段定义
- PatientBaseInfoDto.java: 补全缺失DTO字段
- PatientManageMapper.xml: SQL补全SELECT字段
- PatientInformationServiceImpl.java: updateById改为LambdaUpdateWrapper显式set所有字段
- patientAddDialog.vue: reset()/show()补全字段初始化
- V2026_0608_1: Flyway迁移脚本确保数据库字段存在
|
2026-06-08 15:24:26 +08:00 |
|
|
|
566ce61293
|
fix: EMR模块Schema修复 + 时效统计参数可选化
- V40 Flyway迁移: 修复emr_archive_record/emr_search_index/emr_revision表缺失列和NOT NULL约束
- StructuredEmrController: timeliness/statistics的startDate/endDate参数改为可选
- EMR模块全API连通性验证通过(200)
- 测试数据已填充: 归档21条/修订15条/索引20条/待写病历72条
|
2026-06-08 15:24:26 +08:00 |
|
wangjian963
|
a04fa368b1
|
fix(clinic): 修复门诊手术安排计费弹窗vxe-table布局与项目选择问题
问题:
1. vxe-table expand列40px切换格中渲染复杂编辑表单,内容溢出导致表头表体列错位
2. adviceBaseList clickRow未解构vxe-table 4.x cell-click事件对象{row},导致selectAdviceBase数据错误
3. prescriptionList数组元素替换(arr[i]={})不被vxe-table变更检测,选中项目后数据未填入input
4. 保存按钮调用formRef{index}但表单已迁出expand列,运行时抛undefined.validate异常
|
2026-06-08 14:42:54 +08:00 |
|
|
|
f940078208
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 13:06:50 +08:00 |
|
|
|
06363ec191
|
fix(user): 解决切换账户时标签页状态残留问题
- 导入 tagsView 模块以管理标签页状态
- 在用户登出时清除标签页内存状态
- 添加异常处理避免标签页清理失败影响登出流程
- 修复切换账户时页面标签残留的安全风险
- 在检查清单文档开头添加空行以符合格式规范
|
2026-06-08 13:06:38 +08:00 |
|
wangjian963
|
3c8d5e94a3
|
598 【住院医生工作站-临床医嘱】临床医嘱列表缺少“开嘱医生”列,无法追溯责任医生
|
2026-06-08 13:05:58 +08:00 |
|
wangjian963
|
6f7f6dc9f5
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 12:52:19 +08:00 |
|
wangjian963
|
376ddd46ff
|
595 【住院护士站-医嘱校对】医嘱校对模块列表字段缺失严重,与医生站医嘱要素不一致,存在核对安全隐患
|
2026-06-08 12:51:54 +08:00 |
|
|
|
e1ab9fba23
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 12:11:54 +08:00 |
|
|
|
f458835183
|
fix(viewer): 修复3D渲染器初始化和纹理配置问题
- 将体积纹理从DataTexture改为Data3DTexture以支持三维数据
- 分别设置纹理格式和类型属性避免构造函数参数错误
- 使用ResizeObserver替代nextTick和setTimeout实现容器尺寸检测
- 添加最小高度约束确保渲染器正确初始化
- 优化样式定义增强组件布局稳定性
|
2026-06-08 12:11:46 +08:00 |
|
wangjian963
|
57f591e1c0
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 11:41:23 +08:00 |
|
wangjian963
|
a98a03e00a
|
fix: 替换 eslint-plugin-import 为 eslint-plugin-import-x,解决与 ESLint 10 的依赖冲突
- eslint-plugin-import@2.32.0 peerDependency 仅支持 ESLint ^2-^9,与项目 eslint@10.4.1 不兼容
- eslint-import-resolver-alias 依赖链会间接拉回旧版 eslint-plugin-import,形成连锁冲突
- 移除 eslint-plugin-import 和 eslint-import-resolver-alias,改用 eslint-plugin-import-x@^4.16.1
- eslint.config.js 使用内置 createNodeResolver() 替代外部 resolver,@ 别名改用绝对路径解析
|
2026-06-08 11:40:55 +08:00 |
|
|
|
fddf1c2d03
|
fix: 医生下拉关联真实用户 + 清理脏数据 + 3D查看器
修复:
- 医生下拉改为调用/system/user/list获取所有活跃用户
- 新建任务表单filterable选择真实医生
- 清理测试产生的脏数据(7个CANCELLED任务+5个测试报告)
- 修复卡住的PROCESSING任务(改为CANCELLED)
医生列表:
- 显示所有活跃用户的nickName+userName
- 支持搜索过滤
|
2026-06-08 11:35:56 +08:00 |
|
wangjian963
|
c7f85ff20d
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 11:20:28 +08:00 |
|
wangjian963
|
72ab38f5d0
|
594 【住院医生工作站-临床医嘱】开立需皮试药物时系统未弹出皮试确认框,且医嘱输入行“皮试”字段置灰只读无法手动编辑
|
2026-06-08 11:19:34 +08:00 |
|
|
|
7f2f612e58
|
feat: Three.js WebGL 3D体积渲染查看器 - 可拖拽旋转
3D查看器(viewer.vue):
- Three.js + WebGL GLSL着色器实时体积渲染
- 128步光线投射(Ray Marching)算法
- 64³胸部CT体数据(肺/心脏/脊柱/肋骨/软组织)
- 5种Transfer Function预设(骨骼/软组织/肺部/血管/皮肤)
- OrbitControls: 左键旋转/右键平移/滚轮缩放
- VR/MIP模式着色器动态切换
- DICOM信息叠加层
预渲染图片(public/3d-views/):
- 胸部/头部/腹部/膝关节 4个体位
- VR/MIP/MPR/窗宽窗位 10种视图
- DICOM风格文字叠加
|
2026-06-08 11:04:56 +08:00 |
|
wangjian963
|
bfae31448c
|
fix(#593): 取消停嘱护士站校验改用RequestStatus替代DispenseStatus"
This reverts commit 430d3b3963.
|
2026-06-08 10:46:21 +08:00 |
|
wangjian963
|
320973f973
|
Revert "● fix(#593): 取消停嘱护士站校验改用RequestStatus替代DispenseStatus"
This reverts commit 430d3b3963.
|
2026-06-08 10:41:49 +08:00 |
|
wangjian963
|
57eabbe134
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 10:41:22 +08:00 |
|
wangjian963
|
430d3b3963
|
● fix(#593): 取消停嘱护士站校验改用RequestStatus替代DispenseStatus
将 cancelStopRegAdvice 的护士站校验从判断 Dispense 发放状态
改为直接检查 MedicationRequest/ServiceRequest 是否仍为 STOPPED,
避免正常执行记录(EXECUTED)被误判为护士已核对停嘱。
|
2026-06-08 10:41:16 +08:00 |
|
|
|
52f4e5e9bf
|
fix: 3D查看器黑屏修复 + 数据关联真实医生
3D查看器(viewer.vue):
- 修复canvas尺寸为0导致黑屏: tab切换后延迟100ms初始化
- 添加ResizeObserver监听容器尺寸变化
- watch mode变化时重新调整canvas尺寸
- 体积渲染step自适应缩放比例提升性能
- MPR四格同步渲染
数据关联:
- 6个已完成任务的request_doctor更新为真实医生(张三/李四/王五/赵六/郑十二/吴十一)
- 所有任务关联真实encounter_id
|
2026-06-08 09:56:08 +08:00 |
|
|
|
4a90747cdf
|
fix: 3D查看器真实渲染 + 申请医生关联真实账号
3D查看器修复(viewer.vue):
- 光线投射体积渲染算法真正工作(Canvas 2D)
- 64x64x64合成胸部CT体数据(肺/心脏/脊柱/肋骨/软组织)
- 5种Transfer Function预设(骨骼/软组织/肺部/血管/皮肤)
- MPR四格视图(轴位/矢状/冠状/3D预览)联动
- MIP最大密度投影模式
- 鼠标旋转/缩放/滚轮交互
- DICOM信息叠加层(患者/模态/窗宽窗位)
申请医生关联真实账号:
- api.js新增getDoctorList()调用/system/user/list
- 表单下拉框filterable选择真实医生账号
- 过滤有医生角色的用户
- 表单校验规则(必填)
|
2026-06-08 09:44:31 +08:00 |
|
|
|
972a2cc302
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 09:35:01 +08:00 |
|
|
|
229259aa87
|
feat: 真实3D影像重建查看器 - 基于Canvas体绘制渲染
3D查看器(viewer.vue):
- VR容积渲染: 光线投射算法,5种医学预设(骨骼/软组织/肺部/血管/皮肤)
- MPR多平面重建: 轴位/矢状位/冠状位三平面联动,鼠标滚轮切换层面
- MIP最大密度投影: 最大密度投射算法
- 2D切片浏览: DICOM窗宽窗位调节
- 交互工具: 旋转/缩放/平移/测量/窗宽窗位
- 信息叠加: 患者信息/检查参数/窗宽窗位/层厚像素
体数据:
- 64x64x64合成胸部CT体数据(含肺/心脏/脊柱/肋骨/软组织)
- HU值模拟真实CT(-1000~+1000)
- 5种Transfer Function(骨骼/软组织/肺部/血管/皮肤)
依赖: cornerstone-core/dicom-parser/@kitware/vtk.js
|
2026-06-08 09:32:43 +08:00 |
|
|
|
9997cec487
|
feat(workflow): 添加工作流待办任务控制器
- 新增 WorkflowController 提供工作流相关接口
- 实现待办任务、已办任务、任务详情查询功能
- 添加任务完成、驳回、转办等操作接口
- 更新应用启动横幅显示系统标语
- 统一代码格式并优化显示效果
|
2026-06-08 09:27:31 +08:00 |
|
|
|
b705fe333a
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 09:23:26 +08:00 |
|
|
|
58cf640ff2
|
feat: 3D测试影像转PNG格式
|
2026-06-08 09:20:45 +08:00 |
|
|
|
aef7fd5c45
|
feat: 影像3D重建测试数据和测试脚本
测试数据:
- 10个3D重建任务(CT/MR, 胸部/头部/腹部/膝关节/脊柱/骨盆/心脏)
- 6个重建结果(VR/MPR/MIP三种类型)
- 6个重建报告(DRAFT/REPORTED/VERIFIED三种状态)
- 3位患者关联(刘潇凡/豆包/随子赫)
测试3D影像:
- chest_vr_render.ppm (胸部VR容积渲染)
- head_mpr_axial.ppm (头部MPR轴位)
- abdomen_mip_render.ppm (腹部MIP最大密度投影)
- knee_vr_render.ppm (膝关节VR)
- phantom_volume.raw (16x16x16体数据)
- dicom_metadata.json (DICOM元数据)
测试脚本:
- 3d_reconstruction_test.py (37个测试用例, 97.3%通过率)
- 覆盖: 任务管理/结果管理/报告管理/跨模块联动/数据质量
DB修复:
- reconstruction_task/result/report补全HisBaseEntity列
|
2026-06-08 09:20:33 +08:00 |
|
|
|
41c82d383d
|
fix: 全链路测试修复 - 125/125通过(100%)
DB修复:
- 创建adm_instrument表(检验仪器,完全缺失)
- 修复radiology_statistics缺create_by/update_by/delete_flag
- 修复mr_drg_grouping缺create_by/update_by/update_time
- 修复icd10_code缺create_by/update_by/delete_flag
- 修复lab_result_comparison缺create_by/update_by/update_time
- 修复radiology_image_comparison缺create_by/update_by/update_time
- 修复adm_observation_definition缺tenant_id
- 修复adm_specimen_definition缺tenant_id
代码修复:
- LisConfigController: pageNo/pageSize增加defaultValue
- MrHomepageMapper: SQL日期参数类型转换::date
- 全链路测试: 修正错误URL和参数,125/125通过(100%)
|
2026-06-08 09:12:14 +08:00 |
|
|
|
7a856d4773
|
style(branding): 更新应用启动横幅样式
- 将简单ASCII艺术横幅替换为带有边框的装饰性横幅
- 添加了应用名称HealthLink-HIS的显示
- 集成了版本号、Spring Boot版本、JDK版本和数据库信息
- 使用方框边框设计提升视觉效果
- 统一了字体样式和布局格式
|
2026-06-08 09:06:13 +08:00 |
|
|
|
bc6bb5506d
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-08 08:54:05 +08:00 |
|
|
|
df72ccc3e5
|
chore(deps): 更新 fastjson2 依赖版本
- 将 fastjson2 版本从 2.0.61 升级到 2.0.62
|
2026-06-08 08:53:36 +08:00 |
|
|
|
0dfdf8ccd0
|
fix: 修复前端构建缺失的API导出函数
- techStation.js: 新增 executeExamOrder/executeLabOrder/退费审批等7个函数
- emr.js: 新增 getOverdueList 超期病历查询
- infection/hygiene/api.js: 新增 getStats 统计接口
- nursingstatistics/api.js: 新增 getSummaryList/deleteRecord
- 其他API存根文件补充完整
前端构建验证通过: 5537 modules, ✓ built in 1m 51s
|
2026-06-08 08:49:17 +08:00 |
|
|
|
bc92620f66
|
fix: 修复前端路由名重复导致的404问题 + E2E测试20/20通过
根因分析:
- 后端菜单配置存在30+个重复路由名(如Record/Enhanced/Charge等)
- Vue Router不允许重名路由,addRoute抛出异常
- permission.js的catch直接调用logOut(),导致所有页面重定向到登录页
修复内容:
1. permission.js: addRoute时try-catch重名错误,跳过而非登出
2. permission store: filterAsyncRouter中添加路由名自动去重逻辑
3. 新增src/api/anesthesia.js: 麻醉模块API文件缺失修复
4. 修正test-data.ts中所有错误路由路径,匹配实际菜单配置
验证: workflow-full.spec.ts 20/20通过, login.spec.ts 4/4通过
|
2026-06-08 00:18:34 +08:00 |
|
|
|
a3816725d1
|
feat(e2e): 前端E2E全流程测试 - 20/20通过
- 重写LoginPage,修复登录状态清除和跳转等待逻辑
- 新增workflow-full.spec.ts覆盖20个核心页面
- 修复login.spec.ts密码可见性测试placeholder不匹配
- 所有导航超时增至60秒,适配重页面加载
- 已验证通过: 登录4/4 + 全流程20/20 = 24/24
|
2026-06-07 22:57:01 +08:00 |
|
|
|
9165917da3
|
feat(test): 多角色协作测试v3 - 通过率84.9%
12个场景119个用例, 通过101个(84.9%)
通过的场景:
- 门诊全流程: 28/30 (收费员→医生→医技→药师→收费员)
- 住院全流程: 13/13 (收费员→医生→护士→药师)
- 手术全流程: 10/10 (医生→专家→手术室护士→医生)
- 急诊全流程: 7/7 (急诊医生→急诊护士)
- 医保全流程: 5/5 (收费员→财务)
- 药品全流程: 7/8 (药师→合理用药)
- 院感全流程: 8/8 (护士→医技)
- 中医+质控: 6/6
- 报表+经营: 8/8
失败项(需后续修复):
- 检验模块DB列名错误(observation/specimen/instrument)
- 会诊/EMR模块缺少/page端点
- 权限隔离问题(所有角色可互相访问)
- 合理用药剂量规则DB错误
|
2026-06-07 22:17:26 +08:00 |
|
|
|
3e98aaae1b
|
feat(test): 多角色协作测试v2 - 通过率69.8%
12个场景126个用例, 通过88个(69.8%)
通过的模块:
- 门诊: 挂号/医生站/收费 30/30
- 住院: 患者主页/护理评估/体征 13/15
- 手术: 手术排程/麻醉/知情同意 8/10
- 院感: 监测/暴发/手卫生/耐药/环境 9/9
- 中医+质控: 方剂/统计/体质/指标 6/6
- 药品: 库存/发药/追溯/合理用药 7/8
失败项(需修复):
- P0: 检验模块缺少/page端点(observation/specimen/lisConfig/instrument)
- P0: 报表模块缺少/page端点(charge/register/monthly等)
- P1: 术前讨论preop_discussion表缺delete_flag列
- P1: 合理用药dosage-rules表缺create_by列
- P2: 权限隔离问题(所有角色都能互相访问)
|
2026-06-07 22:09:29 +08:00 |
|
|
|
db66f158cf
|
feat(test): 多角色协作全流程测试+修复密码配置
- 05_test_multi_role.py: 12个场景88个测试用例
- 10个角色账户: admin/doctor1/jzys/jzhs/nkhs1/ssshs1/yjk1/医技员/sfy/hzzj1
- 场景覆盖: 门诊/住院/手术/检验/会诊/急诊/医保/药品/院感/权限/中医/质控
- 权限隔离测试: 验证角色只能访问其权限范围
- 测试结果: 28/88通过(31.8%), 主要问题是API路径不匹配
|
2026-06-07 22:03:41 +08:00 |
|