|
|
e4fe900618
|
fix(#668): 中医处方签发 groupingBy null key 崩溃修复 — 过滤 null groupId 后再分组,无 groupId 的处方各自生成处方号
|
2026-06-10 16:57:16 +08:00 |
|
Ranyunqiao
|
bbf4c8441b
|
bug 703 - 708
|
2026-06-10 14:39:14 +08:00 |
|
|
|
e9d09e69c9
|
Merge remote-tracking branch 'origin/develop' into develop
|
2026-06-10 10:40:01 +08:00 |
|
|
|
e5fb8a3350
|
fix(#632): 检验申请单保存 JSON 反序列化异常 — isPackage 字段类型兼容
根因: DoctorStationLabApplyItemDto.isPackage 为 Boolean 类型,
前端可能传 String 导致 Jackson 反序列化失败
修复:
- DoctorStationLabApplyItemDto: isPackage 改为 String 类型
- DoctorStationLabApplyDto: 加 @JsonIgnoreProperties(ignoreUnknown = true)
- DoctorStationLabApplyServiceImpl: setIsPackage 参数适配
编译验证通过
|
2026-06-10 10:34:39 +08:00 |
|
|
|
b55fa84b85
|
refactor(dependency): 升级FastJSON到FastJSON2并替换所有引用
- 从核心系统pom.xml移除FastJSON 1.2.83依赖
- 将所有com.alibaba.fastjson导入替换为com.alibaba.fastjson2
- 更新应用层各个服务类中的JSON相关导入
- 替换领域层服务和DTO中的FastJSON注解引用
- 修改测试类中的JSON库导入声明
- 统一使用object.get()方法替代object.getInnerMap().get()
- 清理重复的FastJSON依赖配置项
|
2026-06-10 10:33:24 +08:00 |
|
|
|
5f00dab7ad
|
chore: 补充 Bug#704 迁移脚本 + 前端类型定义
|
2026-06-10 09:13:05 +08:00 |
|
|
|
8c42cf11b5
|
fix(#698): 已登记入院列表增加检索维度与关键字段 + 修复 vite build
Bug #698 修复:
- 前端: 新增身份证号/登记时间段/入院科室搜索控件
- 前端: 列表新增身份证号码/入院科室/登记时间三列
- 后端DTO: 新增 idCard/startTime/endTime/organizationId/organizationName
- 后端SQL: SELECT 增加 id_card/organization_name,JOIN 入院科室表,WHERE 增加时间段和科室过滤
- 后端Service: 搜索字段扩展 id_card
预存问题修复:
- deptManage/index.vue: 移除重复 clearable 属性(vite build 报错)
- PatientManageMapper.xml: 移除无用 identifier_no 子查询(country_code ambiguous)
|
2026-06-10 09:12:12 +08:00 |
|
|
|
ada67eb9c0
|
docs: 新增铁律19-22(Bug #698 教训)
- 铁律19: 编译错误不区分来源
- 铁律20: 数据来源必须验证
- 铁律21: 外部配置值必须实测验证
- 铁律22: 端到端验证必须有实际输出证据
|
2026-06-10 09:12:00 +08:00 |
|
|
|
7b1777a91e
|
fix(#718): 停嘱流程优化 — 医嘱状态流转与护士站同步
由 AI Agent (zhaoyun) 自动修复
|
2026-06-10 09:00:12 +08:00 |
|
|
|
af6fdbf7d6
|
fix(#715): 临时耗材医嘱同步至护士站
由 AI Agent (guanyu) 自动修复
|
2026-06-10 08:37:25 +08:00 |
|
|
|
6c80673427
|
fix(#719): 频次/用法和停嘱医生字段为空
根因1: frequencyUsage 由 DictAspect 延迟翻译导致 _dictText 为空
- 改用 DictUtils.getDictLabel 直接翻译,避免 AOP 时序问题
根因2: AdviceProcessAppMapper.xml UNION 分支硬编码 NULL AS stopper_name
- 改为读取 T1.update_by
由 AI Agent (zhaoyun) 自动修复
|
2026-06-10 08:36:16 +08:00 |
|
Ranyunqiao
|
cbb3f618be
|
bug 700
|
2026-06-09 17:17:17 +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 |
|