Commit Graph

1779 Commits

Author SHA1 Message Date
21743237bb fix: #428修复selectedItems.push缺少isPackage和packageId字段
- 在selectedItems.push添加isPackage和packageId字段
- 在loadCategoryList的mapped对象添加packageId映射
- 确保套餐明细懒加载功能正常工作
2026-05-01 01:01:07 +08:00
70726f6aaa fix: 修复#446临时医嘱提交后弹窗关闭逻辑
- 添加成功提示消息:临时医嘱已生成,弹窗即将关闭
- 延迟1秒关闭弹窗,让用户看到成功反馈
- 避免界面'非法关闭'的用户体验问题
2026-05-01 00:09:33 +08:00
97d0011fc3 fix: 修复#444计费药品列表未显示药品名称
- 添加更多字段回退逻辑:chargeName, itemName等
- 确保即使contentJson中没有adviceName也能显示药品名称
- 添加默认值'未知药品'避免空显示
2026-05-01 00:08:51 +08:00
guanyu
701f5fed82 fix: 修复#447/#453/#455申请单adviceTypes格式错误
- 修复#447手术申请:adviceTypes改为[3,6]包含诊疗和手术类型
- 修复#453检验申请:adviceTypes从字符串'3'改为数组[3]
- 修复#455检查申请:adviceTypes从字符串'3'改为数组[3]
- 修复#455输血申请:adviceTypes从字符串'3'改为数组[3]
- 统一所有申请单的adviceTypes为数组格式,确保后端正确解析
2026-05-01 00:07:56 +08:00
guanyu
97b4e396d9 fix: 修复#469检验申请操作列临床业务逻辑
- 在handleCellClick中添加isDeleting.value检查
- 避免删除操作期间触发数据填充
- 确保删除后不会错误加载申请单数据到表单
2026-05-01 00:01:07 +08:00
guanyu
d62ac41f66 fix: 修复#470/#447手术/输血申请单加载项目耗时过长
- 将pageSize从10000改为500,与检验/检查申请保持一致
- 减少单次请求数据量,提升加载性能
- 同时修复手术申请单和输血申请单
2026-04-30 23:59:22 +08:00
guanyu
c712a42f79 fix: 修复#428赵云代码语法错误 - loadPackageDetailsForItem函数位置错误
- 修复loadPackageDetailsForItem函数被错误插入到loadPackageDetails函数内部的问题
- 格式化模板代码,提高可读性
- 确保套餐明细加载逻辑正确工作
2026-04-30 23:56:01 +08:00
a007721c8f 住院医生站:开立诊疗项目时,明细配置区的项目单价显示为负数 2026-04-30 17:12:10 +08:00
616aa46a0c fix: 修复#428检查申请分类联动功能
- 修复1: 将el-collapse-item的@click事件改为el-collapse的@change事件
- 修复2: 添加handleCollapseChange函数处理展开事件
- 修复3: 修改已选择区域展开后显示套餐明细或检查方法
- 修复4: 添加loadPackageDetailsForItem函数加载套餐明细
- 修复5: 修改toggleItemExpand函数在展开时加载套餐明细
2026-04-30 17:08:16 +08:00
d5d112b2cc Merge remote-tracking branch 'origin/develop' into develop 2026-04-30 16:49:26 +08:00
c4a7261de0 疾病报告管理-》报告卡管理:查看报卡详情页缺失“历史审核记录”展示 2026-04-30 16:49:15 +08:00
wangjian963
7799282b86 fix: 修复#420 #416 检验申请单显示优化与布局调整
#420: 申请单项目列表显示"售价/单位"替代数据库ID
  - 从priceList取售价price,从AdviceBaseDto取单位unitCode_dictText
  - 诊疗类项目priceList不含unitCode,须从顶层item取单位
  - 同步修复检验、检查、输血、手术四个申请单

  #416: 申请单弹窗布局调整
  - 弹窗宽度 1000px → 1200px
  - transfer穿梭框面板 400px → 480px
  - 优化左右双栏视觉效果,减少滚动
2026-04-30 16:48:59 +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