Commit Graph

1768 Commits

Author SHA1 Message Date
c4a7261de0 疾病报告管理-》报告卡管理:查看报卡详情页缺失“历史审核记录”展示 2026-04-30 16:49:15 +08:00
wangjian963
4a01825a30 feat(分诊队列): 实现分诊队列核心功能与日志记录
新增分诊队列相关服务接口与实现,包括队列管理、叫号操作和日志记录
添加DivLogService和CallRecordService用于记录分诊操作和叫号历史
在CurrentDayEncounterDto和TriageQueueItem中增加seqNo字段用于显示预约序号
实现分诊操作日志记录功能,包括添加队列、移除队列、叫号、完成等操作
新增CallType枚举定义叫号类型,并实现叫号记录功能
优化队列状态映射逻辑,支持更多状态类型显示
2026-04-30 16:02:52 +08:00
guanyu
81daaccdda fix: 修复#404医嘱组套编辑字段回显丢失 - 恢复被误删的列别名
根因: 关羽修复#403时(e2808fd6)误删了#404的列别名(AS)修复,
导致dose/rate_code/method_code/dose_quantity/dispense_per_duration/therapy_enum
无法正确映射到DTO,编辑组套时这些字段回显为空。

修复: 在OrdersGroupPackageAppMapper.xml的getGroupPackageDetail查询中
恢复6个字段的显式列别名映射。
2026-04-30 15:21:08 +08:00
82ef66794b 住院护士站-》医嘱执行页面:勾选医嘱后点击“执行选中”按钮无反应,无法完成执行操作.
疾病报告管理-》报告卡管理:审核报卡界面内容与门诊医生站登记界面不一致
2026-04-30 13:33:03 +08:00
b536eadd92 修复前端获取版本号的bug 2026-04-29 17:54:34 +08:00
guanyu
3472aa790e fix: 修复#436手术计费界面显示无关费用项
根因: 前端按generateSourceEnum和sourceBillNo过滤手术计费项目,
但后端SQL查询和DTO未返回这两个字段,导致过滤失效,显示所有费用项。

修复:
1. EncounterPatientPrescriptionDto添加generateSourceEnum和sourceBillNo字段
2. SQL查询添加T1.generate_source_enum和T1.prescription_no AS source_bill_no
2026-04-29 17:40:13 +08:00
guanyu
ec89ead14c fix: 修复#456门诊医生站医嘱类型和状态异常
根因: 处方列表组件中adviceTypes参数传递格式错误,
将单个adviceType值直接赋值给adviceTypes参数,
但后端期望List<Integer>数组格式。

修复: 将adviceQueryParams.adviceTypes = value改为
adviceQueryParams.adviceTypes = [value],确保参数格式正确。
2026-04-29 17:24:07 +08:00
guanyu
136235fe4c fix: 修复#459检验申请报错仍生成记录
根因: saveRequestForm方法缺少@Transactional事务注解,
导致处理多个诊疗项目时,部分成功保存后发生异常,
已保存的数据无法回滚,造成脏数据。

修复: 在saveRequestForm方法上添加@Transactional(rollbackFor = Exception.class)注解,
确保整个操作原子性,异常时自动回滚。
2026-04-29 17:21:15 +08:00
guanyu
c2cac12b9f fix: 修复#459检验申请报错仍生成记录
根因: RequestFormManageAppServiceImpl缺少@Transactional事务注解,
导致保存申请单过程中如果后续步骤报错,已保存的申请单不会回滚,
产生脏数据。

修复: 在类上添加@Transactional(rollbackFor = Exception.class)注解,
确保整个保存操作在同一个事务中,任何异常都会回滚所有数据库操作。
2026-04-29 17:20:13 +08:00
guanyu
b424d73542 fix: 修复#471手术申请查询混入脏数据
根因: 手术申请分页查询SQL中cli_surgery、adm_patient、adm_encounter表
LEFT JOIN时缺少delete_flag='0'过滤条件,导致已删除的数据混入查询结果。

修复: 在LEFT JOIN条件中添加AND cs.delete_flag='0'、AND ap.delete_flag='0'、AND ae.delete_flag='0'。
2026-04-29 17:18:18 +08:00
guanyu
decac542c8 fix: 修复#462诊疗目录标本下拉框无数据
根因: diagnosisTreatmentDialog.vue中useDict未引入specimen_code字典,
导致标本下拉框无数据。

修复: 在useDict调用中添加'specimen_code'字典。
2026-04-29 17:14:29 +08:00
guanyu
783ee48ec8 fix: 修复#465检验项目列表限制500项
根因: LabActivityDefinitionManageMapper.xml中getLabActivityDefinitionSimpleList查询
设置了LIMIT 500/1500的限制,导致检验项目超过500项时无法完整显示。

修复: 将LIMIT限制提高到10000,支持更多检验项目。
2026-04-29 17:13:44 +08:00
guanyu
e1ad4965eb fix: 修复#457门诊收费手术医嘱不显示名称
根因: 手术收费项目的contextEnum错误设置为6(中成药),
导致门诊收费查询SQL无法正确匹配手术名称。

修复: 将手术收费项目的contextEnum改为3(项目),
因为手术属于诊疗项目类别。
2026-04-29 17:11:16 +08:00
guanyu
fd1880f1c8 fix: 修复#438门诊划价选择'西药'时无数据
根因: 门诊划价控制器(OutpatientPricingController)未接收adviceType参数,
导致前端传递的药品类型过滤条件无法生效。

修复: 在getAdviceBaseInfo方法中添加adviceType参数接收和处理,
确保西药(adviceType=1, categoryCode='2')能正确过滤。
2026-04-29 17:09:58 +08:00
wangjian963
d4d05267ad feat(分诊队列): 实现分诊队列核心功能与日志记录
新增分诊队列相关服务接口与实现,包括队列管理、叫号操作和日志记录
添加DivLogService和CallRecordService用于记录分诊操作和叫号历史
在CurrentDayEncounterDto和TriageQueueItem中增加seqNo字段用于显示预约序号
实现分诊操作日志记录功能,包括添加队列、移除队列、叫号、完成等操作
新增CallType枚举定义叫号类型,并实现叫号记录功能
优化队列状态映射逻辑,支持更多状态类型显示
2026-04-29 17:05:17 +08:00
2b0acce1db Merge remote-tracking branch 'origin/develop' into develop 2026-04-29 17:00:05 +08:00
4312c0c557 增加后端版本展示 2026-04-29 16:59:44 +08:00
guanyu
caa45c3310 fix: 修复#472住院医生站手术申请单勾选无效
根因: 前端获取手术项目列表时传递的adviceTypes为字符串'3',
后端期望List<Integer>格式, 可能导致解析异常。

修复: 将adviceTypes: '3'改为adviceTypes: [3]数组格式,
确保Spring MVC能正确解析为List<Integer>。
2026-04-29 16:48:52 +08:00
7fabad14f9 将InpatientMedicalRecordHomePageCollectionDto 中的 @Data 注解替换为 @Getter 和 @Setter 注解; 2026-04-29 16:29:22 +08:00
guanyu
405a9dfb72 fix: Bug #249 门诊手术安排查询未过滤已删除手术申请单 - 将cli_surgery表的LEFT JOIN改为INNER JOIN,确保已删除作废的手术申请单不在手术安排查询界面显示 2026-04-28 14:03:14 +08:00
d1be841688 fix: Bug #451 门诊医生站-提交新增手术申请后列表刷新失败 2026-04-28 12:33:16 +08:00
guanyu
9b8655748e fix: Bug #449/#450 门诊医生站接诊/数据加载失败 - 修复TodayOutpatientServiceImpl中receivePatient/completeVisit/cancelVisit方法空壳问题,改为调用DoctorStationMainAppService正确业务逻辑 2026-04-28 12:07:38 +08:00
00fd6c8710 在 vite.config.js 中添加了动态构建版本定义,通过环境变量 VITE_APP_VERSION 实现。
更新了 login.vue,使其动态显示构建版本,而非使用硬编码的值。
2026-04-27 14:16:32 +08:00
bbd9d48fa6 test: Playwright E2E测试12个用例全部通过!
- 修复登录按钮选择器:'登 录'(带空格)
- 修复placeholder:'账号'/'密码'
- 修复登录失败检测逻辑
- 12/12用例通过,耗时16.9秒
- 覆盖:登录4场景 + Bug回归3个(#437/#443/#427) + 手术计费2个 + 医生站2个 + 并发1个
2026-04-25 22:33:53 +08:00
8fb1d3e583 fix: 修正Playwright登录页选择器 - 使用实际placeholder '账号'/'密码' 2026-04-25 22:29:23 +08:00
34ba7cae6a fix: 修复Playwright页面对象定义错误 + 根目录config
- 修复LoginPage/SurgeryBillingPage/DoctorStationPage中page变量作用域问题
- 新增根目录playwright.config.ts(解决配置加载问题)
- .gitignore添加test-results和report目录排除
2026-04-25 22:14:19 +08:00
305ab15436 test: 增强Playwright E2E测试方案 - 新增手术计费/医生站/并发测试用例
- 新增页面对象: SurgeryBillingPage, DoctorStationPage
- 新增测试用例: 手术计费防重复(#437), 签发耗材验证(#443), 并发操作测试
- 增强登录测试: 多场景覆盖
- 完善测试数据工具: 支持多角色用户配置
- 清理冗余备份文件
2026-04-25 22:04:36 +08:00
46a7076460 Merge branch 'develop' of http://192.168.110.253:3000/wangyizhe/his into develop 2026-04-25 21:07:43 +08:00
e0e6693897 fix: 修正Playwright测试方案架构问题(诸葛亮审查反馈)
- 新增fixtures/auth.ts 登录认证夹具
- 新增pages/LoginPage.ts 页面对象模型
- 新增specs/login.spec.ts 登录测试用例(成功/失败/空用户名)
- 新增specs/bug-regression.spec.ts Bug回归测试(#437/#427)
- 新增.env.test 测试环境变量模板
- package.json添加test:e2e/test:e2e:ui/test:e2e:report脚本
- 移除test-data.ts中密码硬编码,改用环境变量
- .gitignore添加.env.test.local/playwright-report/test-results

感谢诸葛亮架构审查!
2026-04-25 21:07:40 +08:00
guanyu
7d1e50d045 fix: 修复#443手术计费签发耗材报错
根因: handleAddDeviceBilling方法中对locationId的验证过于严格,
当前端未传递locationId时直接抛出ServiceException导致签发失败。

修复: 将严格验证改为预处理设置默认值,
当advice.getLocationId()为null时, 使用SecurityUtils.getLoginUser().getOrgId()作为默认位置ID。
2026-04-25 21:05:05 +08:00
25ce12cebf Merge branch 'develop' of http://192.168.110.253:3000/wangyizhe/his into develop 2026-04-25 21:02:16 +08:00
7d55717037 feat: 添加Playwright E2E自动化测试完整方案
- 创建完整Playwright测试方案文档(docs/specs/)
- 创建Playwright配置文件(tests/playwright.config.ts)
- 创建测试数据工具类(tests/e2e/utils/test-data.ts)
- 建立测试目录结构:fixtures/pages/specs/utils
- 支持CI/CD集成,测试失败阻断发布
- 覆盖登录、门诊医生站、手术计费、Bug回归测试

关联任务: UI功能性测试方案落地
2026-04-25 21:02:13 +08:00
guanyu
290e8f8f15 fix: 修复#445门诊手术待生成列表未剔除已生成医嘱
根因: getSurgeryPage查询只查cli_surgery表,没有关联wor_service_request表检查是否已生成医嘱。
所有手术都会显示在待生成列表中,不管是否已处理。

修复: 在getSurgeryPage查询中LEFT JOIN wor_service_request表,
通过sr.id IS NULL过滤掉已生成医嘱的手术。
2026-04-25 20:10:31 +08:00
fc84fd61ab fix(#437): 数据库层修复手术计费重复生成收费项
- 添加复合唯一约束 uk_charge_item_encounter_service_product_source
  防止同一就诊下同一来源服务+产品产生重复收费项
  约束字段:encounter_id + service_table + service_id + product_table + product_id + generate_source_enum
- 添加索引 idx_charge_item_generate_source_product 加速手术计费查询
- 添加索引 idx_charge_item_encounter_status 加速按就诊状态查询
- 提供重复数据检测SQL供运维排查历史数据

根因分析:
1. adm_charge_item 表无任何唯一约束,同一收费项可被多次插入
2. 前端手术计费页面使用 sourceBillNo 过滤,但该字段不存在于 ChargeItem 实体中
3. 多处代码路径(SurgeryAppServiceImpl/RequestFormManageAppServiceImpl)均可生成收费项
4. 缺少数据库层面的兜底防护

Author: xunyu
2026-04-25 20:04:54 +08:00
guanyu
d79690a371 fix: 修复#442手术计费删除待签发耗材报错
根因: handleDel方法中使用iProcedureService.listByIds(requestIds)错误,
requestIds是WOR_DEVICE_REQUEST/WOR_SERVICE_REQUEST表主键,
不是CLI_PROCEDURE表主键。

修复: 改用iProcedureService.getProcedureRecords(requestIds, serviceTable)
通过request_id字段正确关联执行记录。
2026-04-25 20:02:11 +08:00
7bccbc7085 fix: Bug #427 检查项目分类手风琴展开 + Bug #437 手术计费重复记录修复
- #427: switchCategory函数已实现手风琴逻辑(切换时收起其他分类)
- #437: prescriptionlist.vue添加isSaving防重复提交锁
- #437: 使用JSON.parse(JSON.stringify(row))清理Vue响应式对象
- #437: 添加finally块确保锁释放
2026-04-25 19:47:05 +08:00
guanyu
059ef483ca fix: 修复#447住院医生站手术申请弹窗无法加载手术类诊疗目录数据
根因: adviceType=3(诊疗)查询时强制排除手术项(category_code!='手术'且!='24'),
导致通过categoryCode='24'显式查询手术项目时结果为空。

修复: 仅在未指定categoryCode时才排除手术,
当显式指定categoryCode='24'或'手术'时允许加载手术类项目。
2026-04-25 16:12:03 +08:00
guanyu
4beb4c40c5 fix: 修复#448门诊划价项目分类过滤失效 - 耗材和诊疗查询缺少categoryCode过滤条件
- adviceType=2(耗材)查询添加categoryCode过滤
- adviceType=3(诊疗)查询添加categoryCode过滤
- 与adviceType=1(药品)保持一致的过滤逻辑
- 修复选择耗材类型时仍检索出药品的问题
2026-04-25 15:27:02 +08:00
914f2d8229 docs: 按刘备建议结构重新整理《HIS项目发布检查清单 v1.0》 2026-04-25 12:12:41 +08:00
2f57b3e7c1 docs: 整合四份清单为《HIS项目发布检查清单 v1.0》 2026-04-25 12:08:51 +08:00
guanyu
39ccd27df8 feat: 新增《后端发布前检查清单》- 关羽
补充后端发布前六大模块检查项:
1. Maven编译验证
2. Spring Boot多环境配置
3. MyBatis Plus规范(实体映射/SQL安全/事务管理)
4. RESTful API设计(统一返回/参数校验/版本管理)
5. 安全与合规(数据脱敏/权限控制/审计日志)
6. 性能检查(N+1查询/慢查询优化)

与陈琳的前端清单形成对称体系,覆盖getDepartmentList类问题的后端等价场景。
2026-04-24 19:19:23 +08:00
d370b6a888 docs: 补充ESLint flat config配置示例到CI/CD门禁规范 2026-04-24 19:16:44 +08:00
3c61e39e09 docs: 修正构建门禁文档中的命令不一致问题 - 统一前端构建命令为 build:prod,后端编译命令为 mvn clean package -DskipTests 2026-04-24 19:06:23 +08:00
f2c71b08bb feat: 启用ESLint import规则 - 实时检测缺失导出,防止构建失败 2026-04-24 18:12:27 +08:00
90cf7f43d7 Merge branch 'develop' of http://192.168.110.253:3000/wangyizhe/his into develop 2026-04-24 18:06:44 +08:00
1f5d392c08 chore: 清理.git残留的.orig文件 2026-04-24 18:06:39 +08:00
d52bbda8c3 docs: 完善三份构建门禁文档 - 补充前后端协同检查、Java后端门禁、数据库变更字段
架构评审改进项:
- frontend-checklist.md: 增加后端Maven编译、数据库脚本、接口兼容性检查
- cicd-gatekeeper.md: 补充Java后端构建配置(SpotBugs)、分阶段覆盖率目标
- commit-template.md: 增加数据库变更影响评估字段、精简截图要求
2026-04-24 18:03:45 +08:00
guanyu
986510278b feat: 配置Husky pre-commit钩子 - 提交前自动执行前端构建检查
- 创建.husky/pre-commit文件
- 配置提交前自动执行npm run build:dev检查语法
- 添加node_modules存在性校验
- 预留ESLint检查接口(待赵云配置后启用)
- 更新openhis-ui-vue3/package.json添加lint-staged配置

【关羽】构建门禁第一步落地
2026-04-24 18:02:27 +08:00
758921b633 Merge branch 'develop' of http://192.168.110.253:3000/wangyizhe/his into develop 2026-04-24 17:14:29 +08:00
8e7ebd3461 chore: 更新package-lock.json(husky安装) 2026-04-24 17:13:31 +08:00