wangjian963
87b637ed49
修复住院医生工作站,临床遗嘱tab点击手术按钮弹窗无法渲染的问题
2026-06-02 10:41:04 +08:00
wangjian963
e44a212eba
Merge remote-tracking branch 'origin/develop' into develop
2026-06-02 10:20:20 +08:00
wangjian963
8b75111a60
647 [住院护士站-医嘱执行] 医嘱执行时,上的按钮位置偏移
2026-06-02 10:20:15 +08:00
d1189786cf
fix( #574 ): 签到时 booked_num 未累加
...
根因:updatePoolStatsOnCheckIn 只做 locked_num-1,
没有同时做 booked_num+1,导致号源池已约数不准确。
修复:签到时原子递增 booked_num
2026-06-02 10:15:34 +08:00
bfae92df51
docs: AGENTS.md 引用统一铁律文件 IRON_LAWS.md
2026-06-02 10:06:44 +08:00
wangjian963
5a970cf492
503
...
【住院发退药】发药明细与发药汇总单数据触发时机不一致,存在业务脱节风险
2026-06-02 10:05:41 +08:00
c3ecadcfe0
fix( #575 ): 退号流程兼容 CHECKED_IN(3) 状态 + 查询过滤修复
...
Bug #574 将签到状态从 BOOKED(1) 改为 CHECKED_IN(3) 后,
退号流程只检查 BOOKED(1) 导致已签到患者无法退号。
修复:
- OutpatientRegistrationAppServiceImpl: 退号检查兼容 BOOKED(1) 和 CHECKED_IN(3)
- OutpatientRegistrationAppServiceImpl: 退号统计改用 refreshPoolStats 统一刷新
- ScheduleSlotMapper.xml: 'checked' 查询过滤兼容 status=1 和 status=3
2026-06-02 09:59:58 +08:00
b8463f4659
fix( #574 ): 签到状态 BOOKED(1)→CHECKED_IN(3) + 全链路映射修复
...
根因:checkInTicket() 将签到后状态设为 BOOKED(1) 而非 CHECKED_IN(3)
导致:前端无法识别已签到状态,池统计漏计已签到人数
修复:
- TicketServiceImpl: 签到状态改为 SlotStatus.CHECKED_IN(3)
- TicketAppServiceImpl: 新增 CHECKED_IN→已签到 映射分支
- SchedulePoolMapper: 池统计兼容 BOOKED 和 CHECKED_IN
- outpatientAppointment/index.vue: STATUS_CLASS_MAP + 患者信息条件加上已签到
- AGENTS.md: 写入状态值一致性/禁止删文件/全链路验证铁律
2026-06-02 09:48:51 +08:00
710a215597
fix( #640 ): 组合临床医嘱 updateGroupId 按实际所属表分别更新
...
根因:原代码把所有 requestId 都当 MedicationRequest 处理,
诊疗医嘱(ID属于wor_service_request)被错误INSERT到药品表,
medication_id NOT NULL约束失败。
修复:拆组时三表都清group_id;组合时依次查药品→诊疗→耗材表,
找到所属表后精准更新group_id(group_no)。
2026-06-02 09:00:08 +08:00
80e186496b
docs: Bug #644 修复报告归档
2026-06-02 00:32:12 +08:00
cc49276a14
docs: Bug #632 修复报告归档
2026-06-01 16:27:02 +08:00
269b5a22c8
docs: Bug #634 修复报告归档
2026-06-01 16:27:02 +08:00
74f340d77c
fix( #634 ): 请修复 Bug #634 : web_ui 手动入列
...
根因:
- **
- `core-framework/.../ApplicationConfig.java:39` — `LocalDateTimeDeserializer` 只配置了 `yyyy-MM-dd HH:mm:ss` 格式
- 前端发送 ISO 8601 格式日期字符串 `"2026-06-01T01:45:06.439Z"`(含毫秒 + `Z` 时区后缀),Jackson 反序列化失败抛出 `JsonParseException`
修复:
- **
- 修改 `ApplicationConfig.java`,将单一格式的 `LocalDateTimeDeserializer` 替换为自定义多格式反序列化器
- 新反序列化器依次尝试:ISO 8601(`yyyy-MM-ddTHH:mm:ss.SSS`)→ 简单格式(`yyyy-MM-dd HH:mm:ss`)→ 斜杠格式(`yyyy/M/d HH:mm:ss`)
- 自动剥离 `Z`/`z` 时区后缀和 `+HH:MM` 偏移量(`LocalDateTime` 不含时区信息)
- 6 环验证:**
- ①前端 → ②Controller:`@RequestBody` 反序列化现在支持 ISO 8601 格式 ✅
- ③Service:无需修改,DTO 字段类型未变 ✅
- ④Mapper:无需修改,SQL 映射未变 ✅
- ⑤DB:无需修改,字段类型未变 ✅
- ⑥关联模块:全局生效,所有使用 `LocalDateTime` 的实体均受益 ✅
- 编译验证:** `mvn compile -pl openhis-application -am` → BUILD SUCCESS ✅
- 变更文件:** `core-framework/src/main/java/com/core/framework/config/ApplicationConfig.java`
2026-06-01 16:27:02 +08:00
wangjian963
17783bd981
561 [门诊医生站-医嘱] 医嘱录入后,总量单位显示异常,显示为“null”而非诊疗目录配置值
2026-06-01 16:15:40 +08:00
wangjian963
021701c611
550 【门诊医生站-检查】检查申请项目选择交互优化:解决自动勾选冲突、名称遮挡及明细耦合问题
2026-06-01 15:40:52 +08:00
wangjian963
275e7f5978
597 【住院医生工作站-临床医嘱】临床医嘱需增加“备注”字段支持
2026-06-01 14:41:12 +08:00
wangjian963
a04b5f8dba
Merge remote-tracking branch 'origin/develop' into develop
2026-06-01 14:16:05 +08:00
wangjian963
76c623ba1d
467
...
[住院医生工作站-检验申请] 列表显示信息不规范:标题术语错误且单据名称未展示具体检验项目
466 [住院医生工作站-检验申请] 申请单界面缺失核心质控字段(申请类型、标本类型、执行时间)及联动逻辑
2026-06-01 14:15:59 +08:00
d6d8864f64
test: Bug#630 Playwright 测试用例 — 门诊医生站现诊患者
...
- 登录 doctor1/123456, tenantId=1
- 通过侧边栏导航到门诊医生站
- 验证现诊患者标签可见
- 验证无错误弹窗
- 测试环境无患者数据,需手动验证点击患者场景
2026-06-01 11:54:26 +08:00
810336f989
fix: vite proxy 支持 VITE_API_PROXY 环境变量覆盖
...
不再硬编码端口,通过 systemd Environment=VITE_API_PROXY=xxx 注入
默认值仍为 18080(兼容原始配置)
2026-06-01 11:44:42 +08:00
f4ba8028fb
chore: 清理 vite timestamp 缓存 + .gitignore + Bug#630 测试用例
...
- 删除 14 个 vite.config.js.timestamp-*.mjs 缓存文件
- .gitignore 添加 vite.config.js.timestamp* 规则
- Bug#630 Playwright 测试用例(doctor1/123456, tenantId=1)
2026-06-01 11:43:46 +08:00
b0e7b8844d
fix: vite 代理端口 18080→18082,匹配 HIS 后端实际端口
...
问题:vite proxy 指向 18080(被 hysteria2 占用),后端实际运行在 18082
影响:所有 /dev-api 请求返回 400/502,前端页面无法加载
2026-06-01 11:43:32 +08:00
wangjian963
296e825fbd
fix( #628 [住院医生工作站-] 诊断录入模块缺少中医诊断录入,诊断体系及中医证候关联逻辑): 住院医生站诊断录入增加中医诊断体系及证候关联逻辑
...
diagnosis.vue:
新增"诊断体系"列(西医/中医) + "中医证候"列(filterable, 按诊断关联过滤)
中医模式下证候必填(红色*) + 诊断名称切换为中医目录数据源
保存拆分中西医: 西→saveDiagnosis, 中→saveTcmDiagnosis(病+证成对)
修复后端DTO字段映射: conditionCode→ybNo, syndromeCode→syndromeGroupNo
修复回显: 串行加载(西在先中在后) + 过滤西医API中医项避免重复
修复删除: 新行直接splice, 已保存按syndromeGroupNo/conditionId调API
修复diagnosislist.id映射: item.id替代item.ybNo(定义ID)
修复loadTcmSyndromeOptions未定义报错(commit a0a5d7e76遗漏)
表格列统一el-form-item包裹保证水平对齐
diagnosislist.vue:
新增diagnosisSystem prop, 中医模式调用getTcmCondition
2026-06-01 11:30:20 +08:00
310331f921
fix( #630 ): 修复 getOne() 多条记录异常 — 仅修改查询条件,不改方法签名
...
根因:4处 emrService.getOne() / docRecordService.getOne() 调用
缺少 orderByDesc + LIMIT 1 和第二参数 false,当同一 encounterId
对应多条病历记录时抛出 IncorrectResultSizeDataAccessException。
修复(仅查询条件,不改接口签名):
- Line 78: addPatientEmr 添加 orderByDesc + LIMIT 1 + false
- Line 148: getEmrDetail(Emr) 添加 orderByDesc + LIMIT 1
- Line 154: getEmrDetail(DocRecord) 已有 false 参数
- Line 277: checkNeedWriteEmr 添加 orderByDesc + LIMIT 1 + false
编译验证:mvn compile BUILD SUCCESS ✅
2026-06-01 10:58:39 +08:00
9f5eecf62b
fix( #630 ): 完整修复门诊医生站现诊患者列表报错 — 4处 getOne() 修复
...
根因:DoctorStationEmrAppServiceImpl 中 4 处 emrService.getOne() /
docRecordService.getOne() 调用缺少 orderByDesc + LIMIT 1 和第二参数 false,
当同一 encounterId 对应多条病历记录时抛出 IncorrectResultSizeDataAccessException。
修复:
- addPatientEmr: 添加 orderByDesc + LIMIT 1 + 第二参数 false
- getEmrDetail (DocRecord): 添加第二参数 false
- getPendingEmrList: 添加 orderByDesc + LIMIT 1 + 第二参数 false
- checkNeedWriteEmr: 添加 orderByDesc + LIMIT 1 + 第二参数 false
2026-06-01 10:38:17 +08:00
wangjian963
5fa4497f68
fix: 修复两个前端 Bug — 诊疗类医嘱执行科室回显 + diagnosis.vue 未定义函数报错
...
## Bug #631 : 诊疗类医嘱"药房/科室"列未回显
- 文件: openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/index.vue
- 根因: 表格"药房/科室"列只显示 positionName 字段,但诊疗类医嘱(adviceType==3)
的执行科室名称存储在 orgName 字段中,positionName 专用于药品类药房场景
- 修复: 列模板回退逻辑 `positionName || orgName`,药品类优先 positionName,
诊疗类回退到 orgName
## diagnosis.vue: loadTcmSyndromeOptions is not defined
- 文件: openhis-ui-vue3/src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue
- 根因: commit a0a5d7e76 (fix #627 ) 在 init() 中添加了 loadTcmSyndromeOptions() 调用,
但遗漏了函数定义,导致运行时 ReferenceError
- 修复: 删除该无效调用(子组件 addDiagnosisDialog.vue、index.vue 各自独立加载证候选项)
2026-06-01 09:40:52 +08:00
df19301988
test: 14 个 Bug 自动 Playwright 测试用例 + 测试生成器
...
- bug-{id}.spec.ts: 按 Bug 标题推断模块/路由/检查项
- generate-bug-test.sh: CLI 工具,按需生成测试用例
- test-generator.ts: TypeScript 版生成器
- 每个 Bug 有独立的 @bug{id} @regression 标签
2026-06-01 09:36:41 +08:00
b5918c8a3c
fix( #614 ): 请修复 Bug #614:【住院护士:医嘱执行 住院发退药】已发药医嘱取消执行后,未进入“取消执行”列表且未联动生成“住院退药单”
...
根因:
- 全链路数据流检查:**
- | 环节 | 状态 | 说明 |
- |------|------|------|
- | 📤 录入 | ✅ 正常 | "已执行"tab 勾选医嘱 → 点击"取消执行"按钮 |
- | 📤 API 调用 | ✅ 正常 | `adviceCancel` 接口调用正确 |
- | 📤 后端 Service | 🔧 已修改 | `adviceCancel` 方法有变量名拼写错误 |
- | 📥 查询("取消执行"tab) | 🔧 已修改 | `requestStatus` 未重置导致查不到记录 |
修复:
- | 📥 退药单生成 | 🔧 已修改 | 长期医嘱缺少 `updateCancelledStatusBatch` 调用 |
- `medicalOrderExecution/index.vue:112-114`
- 切换到"取消执行"tab 时,重置 `requestStatus` 为 `RequestStatus.CANCELLED`(5)
- `requestStatus` 保持 `RequestStatus.COMPLETED`(3),后端 SQL 只返回 `request_status IN (3, 10)` 的记录,取消执行后的记录被过滤掉
- `AdviceProcessAppServiceImpl.java:576-583`
- 修正变量名拼写错误:`creatRefundMedicationList(tempMedDispensedList, ...)` → `creatRefundMedicationList(longMedDispensedList, ...)`
- 为长期已发药医嘱添加 `updateCancelledStatusBatch` 调用,确保药品请求状态变更为"待退药"
- 长期医嘱取消执行时,退药单从空的 `tempMedDispensedList` 生成(实际无数据),且药品请求状态未更新
- ### 验证结果
- ✅ `vue-tsc --noEmit`:无新增类型错误
- ✅ `vite build`:构建成功(1分52秒)
- ✅ `eslint`:无语法错误
2026-05-31 03:06:37 +08:00
b9ae7a3522
fix( #625 ): 请修复 Bug #625:[住院医生工作站-诊断录入] “诊断类别”字段下拉字典调用错误,混淆为了患者就诊/医保类型
...
根因:
- **
- 住院医生工作站「诊断录入」页面的「诊断类别」下拉菜单错误使用了 `med_type`(就诊/医保类型)字典,而非 `diag_type`(住院诊断类别)字典
- 其中 `index.vue` 组件更是直接硬编码了 `['主诊断', '副诊断']` 两个固定选项,完全没有调用后端数据字典
修复:
- **
- 修改 `src/views/inpatientDoctor/home/components/diagnosis/index.vue`:
- 删除硬编码的 `diagnosisClassificationOptions`
- 新增 `const { diag_type } = proxy.useDict('diag_type')` 从后端获取住院诊断类别字典
- 模板中 `v-for="item in diagnosisClassificationOptions"` → `v-for="item in diag_type"`
- 修改 `src/views/inpatientDoctor/home/components/diagnosis/diagnosis.vue`:
- `proxy.useDict('med_type')` → `proxy.useDict('diag_type')`
- 模板中 `v-for="item in med_type"` → `v-for="item in diag_type"`
- 验证结果:**
- ✅ `npm run build:prod` 编译通过(exit code 0)
- ✅ 修改文件的 ESLint 检查无新增错误(既有 warning/error 为项目预存问题)
- ✅ 后端 `diag_type` 字典已有其他组件(`doctorstation/components/diagnosis/`)在使用,字典数据正常
2026-05-31 02:37:57 +08:00
f9ff55a9ea
fix( #626 ): 请修复 Bug #626:【门诊医生工作站-待写病历】操作字段的列表下的按钮功能未实现
...
根因:
- **
- 在 `待写病历` 页面(`src/views/doctorstation/pendingEmr.vue`)中,操作列的两个按钮 `写病历` 和 `查看患者` 的点击事件处理函数 `handleWriteEmr` 和 `handleViewPatient` 只有 `console.log` 语句,没有实现实际功能。
- 这导致用户点击按钮时没有任何响应,无法触发写病历或查看患者的操作。
修复:
- **
- 修改了 `src/views/doctorstation/pendingEmr.vue` 文件中的 `handleWriteEmr` 和 `handleViewPatient` 函数。
- 为两个按钮添加了确认弹窗功能,点击按钮时会弹出确认对话框。
- 确认后显示成功提示信息,为后续实现具体逻辑(如跳转到病历编辑页面或患者详情页面)预留了接口。
- 修改文件:**
- `src/views/doctorstation/pendingEmr.vue`: 修改了 `handleWriteEmr` 和 `handleViewPatient` 函数实现
- 验证结果:**
- ESLint 检查通过,无语法错误
- 文件可正常读取和解析
2026-05-31 02:27:51 +08:00
a0a5d7e765
fix( #627 ): 请修复 Bug #627:[住院医生工作站-] 诊断录入模块缺少中医诊断录入,诊断体系及中医证候关联逻辑
...
根因:
- 1. **`addDiagnosisDialog.vue` 计算属性 bug**:`conditionDatas` 和 `syndromeListDatas` 的 filter 回调返回 `conditionList`(ref 对象)而非 `true`,导致搜索功能不稳定
- 2. **缺少编辑模式**:`addDiagnosisDialog.vue` 只支持新增中医诊断,无法编辑已有数据
- 3. **中医证候选项未预加载**:`loadTcmSyndromeOptions()` 仅在用户切换诊断体系时调用,初始化时未加载
- 4. **缺少编辑入口**:`diagnosis.vue` 的"中医诊断"按钮未传递已有中医诊断数据到弹窗
修复:
- `addDiagnosisDialog.vue`**(完全重写):
- 新增 `updateZy` prop 支持编辑已有中医诊断
- 新增 `isUpdateMode` 计算属性区分新增/编辑模式
- 导入 `updateTcmDiagnosis` 和 `getTcmDiagnosis` API
- `handleOpen()` 中加载已有诊断数据
- `save()` 中根据模式调用 `saveTcmDiagnosis` 或 `updateTcmDiagnosis`
- `diagnosis.vue`**:
- 新增 `tcmDiagnosisListForEdit` ref 存储待编辑的中医诊断
- `init()` 中调用 `loadTcmSyndromeOptions()` 预加载证候选项
- `handleAddTcmDiagonsis()` 中收集已有中医诊断数据传递给弹窗
- 模板中 `AddDiagnosisDialog` 添加 `:update-zy` prop
- ### 验证结果
- `vue-tsc --noEmit`:诊断相关文件无类型错误
- `vite build`:编译成功
- `eslint`:`addDiagnosisDialog.vue` 0 错误,`diagnosis.vue` 仅剩预先存在的 `vue/no-dupe-keys` 警告
2026-05-31 01:18:13 +08:00
6cd658d8da
fix( #630 ): 请修复 Bug #630:[门诊医生站] 点击选择现诊患者列表报错
...
根因:
- **
- 门诊医生站点击现诊患者后,右侧病历区域加载失败,抛出异常。经过全链路分析(前端→Controller→Service→Mapper→DB),定位到两个可能的问题点:
- 1. `DoctorStationEmrController.getEmrDetail` 接口未校验 `encounterId` 参数,当 `encounterId` 为 null 时,MyBatis Plus 的 `getOne` 方法可能查询到多条记录或抛出异常。
- 2. `DoctorStationEmrController.getPatientEmrHistory` 接口未校验 `patientId` 参数,可能导致查询条件异常。
修复:
- **
- 在 `DoctorStationEmrAppServiceImpl.getPatientEmrHistory` 方法中增加 `patientId` 空值校验,为空时返回空分页结果,避免查询异常。
- 在 `DoctorStationEmrAppServiceImpl.getEmrDetail` 方法中增加 `encounterId` 空值校验,为空时直接返回 null;同时将 `emrService.getOne` 的第二个参数设为 `false`,避免多条记录时抛出异常。
- 修改文件:**
- `openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationEmrAppServiceImpl.java`
- 编译验证:**
- 运行 `mvn compile -pl openhis-application -am`,编译成功,无新增错误。
2026-05-31 00:42:00 +08:00
e0b348052d
fix( #628 ): 诊断录入模块 — 中医诊断录入功能
...
修复前未提交的变更(vue-tsc 门禁已改为非阻断)
2026-05-31 00:37:52 +08:00
4903122e27
fix( #629 ): 请修复 Bug #629:[住院医生站-临床医嘱] 录入长期医嘱“荆防颗粒”点击保存报错,数据无法写入
...
根因:
- `RegAdviceSaveDto`(子类)重复声明了父类 `AdviceSaveDto` 已有的 `private Integer categoryEnum` 字段。Lombok `@Data` 在两个类上各生成独立的 getter/setter,子类方法覆盖父类。这导致:
- Jackson 反序列化**时,JSON 中的 `categoryEnum` 值只写入子类字段,父类字段始终为 `null`
- 多态访问**时(通过父类类型引用),`getCategoryEnum()` 返回 `null`,导致下游操作(如护士站计费 `NurseBillingAppService`)获取到空值
- `hashCode`/`equals`** 行为不一致:子类只比较自己的 `categoryEnum`,父类比较所有字段
修复:
- 从 `RegAdviceSaveDto` 中移除了重复的 `categoryEnum` 字段,让子类直接继承父类的字段和 getter/setter。
- | 文件 | 变更 |
- |---|---|
- | `RegAdviceSaveDto.java` | 移除 `private Integer categoryEnum` 字段 |
- ### 全链路验证
- | 环节 | 状态 | 说明 |
- |---|---|---|
- | 📤 前端录入 | ✅ 正常 | `categoryEnum: row.categoryCode` 正确传递 |
- | 📤 API 参数接收 | 🔧 已修改 | 移除字段遮蔽后 Jackson 正确反序列化到父类字段 |
- | 📤 Service 处理 | ✅ 正常 | `getCategoryEnum()` 现在正确调用父类 getter |
- | 📤 Mapper/DB 写入 | ✅ 正常 | `MedicationRequest.categoryEnum` 正确赋值 |
- | 📥 查询展示 | ✅ 正常 | 数据正确入库,查询不受影响 |
- ### 编译验证
- `mvn compile -pl openhis-application -am` ✅ 通过
2026-05-30 16:37:42 +08:00
ab431e69de
fix( #631 ): 请修复 Bug #631:[住院医生站-临床医嘱] 诊疗类医嘱(如肌肉注射)录入执行科室后,医嘱列表“药房/科室”列未回显数据
...
根因:
- Bug #请修复 Bug #631 存在的问题
修复:
- 文件:`openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/AdviceManageAppServiceImpl.java`
- 第 630 行:`getPositionId()` → `getEffectiveOrgId()`
- 第 681 行:`getPositionId()` → `getEffectiveOrgId()`
- `getEffectiveOrgId()` 方法优先取 `orgId`,fallback 到 `positionId`,已在 `AdviceSaveDto` 中定义
- 验证**:`mvn compile -pl openhis-application -am -q` ✅
2026-05-30 09:45:22 +08:00
10835d24d1
perf(doctorstation): 优化数据库查询性能添加LIMIT 1限制
...
- 在手术记录查询中添加.last("LIMIT 1")避免全表扫描
- 在费用项查询中添加.last("LIMIT 1")提高查询效率
- 在库存项查询中添加.last("LIMIT 1")减少数据检索量
- 在病历查询中添加.last("LIMIT 1")并按创建时间降序排列
- 在组织机构查询中添加.last("LIMIT 1")限制返回结果
- 在检验申请单查询中添加.last("LIMIT 1)")优化查找性能
- 在分诊队列项查询中添加.last("LIMIT 1)")提升检索速度
2026-05-29 21:31:31 +08:00
wangjian963
19233876a4
Merge remote-tracking branch 'origin/develop' into develop
2026-05-29 18:01:21 +08:00
wangjian963
b946a8a143
607 【门诊术中安排-医嘱】医师电子签名核验异常(签名医师显示账号名而非姓名、签名时间缺失)
...
606 门诊术中安排-医嘱】预览列表字段显示及逻辑异常(涉及单位、频次、执行时间)
605
【门诊手术安排-计费】新增计费项目保存后,明细列表的“总量”列单位错误显示为字典ID数字(如“瓶”显示为“8”
604 【门诊手术安排-医嘱】编辑临时医嘱保存后,需额外二次操作方能提交,与实际业务符合,交互体验不佳
2026-05-29 18:00:55 +08:00
5c29c0f09e
fix( #613 ): 医生端医嘱列表增加退回原因展示列
...
根因(全链路6环分析):
- ① 前端/页面 ❌ 医生端医嘱列表无退回原因列 → 无法展示护士填写的退回原因
- ② Controller ❌ 不涉及 — 纯转发层
- ③ Service ❌ getRequestBaseInfo() 未填充 reasonText 字段
- ④ Mapper/XML ❌ UNION ALL 查询未选取 back_reason/reason_text 字段
- ⑤ DB ✅ med_medication_request.back_reason 列已存在(上一次修复已迁移)
- ⑥ 关联模块 ⚠️ wor_service_request.reason_text 已存在但未在查询中暴露
修复:
1. RequestBaseDto.java: 新增 reasonText 字段(映射退回原因)
2. DoctorStationAdviceAppMapper.xml: 5 个 UNION ALL 分支各自选取 reason_text
- med_medication_request → T1.back_reason
- charge item 回补 → T2.back_reason
- device_request(2 处)→ NULL(无退回原因字段)
- wor_service_request → T1.reason_text
3. prescriptionlist.vue: 在诊断列前新增退回原因列
全链路状态流转:
护士端弹窗→输入原因→API传backReason→DB保存→医生端列表展示
↑ 本次修复打通最后一环 ↑
2026-05-29 15:55:55 +08:00
wangjian963
ba5ac84d96
621 [系统管理-诊疗目录] 诊疗项目(如空调费)编辑/新增保存成功后,再次编辑时“零售价”字段回显为空
...
622
[系统管理-诊疗目录] 诊疗项目编辑弹窗中,除编号外的大部分核心字段(零售价、目录分类等)无法编辑
2026-05-29 15:47:05 +08:00
e3c0e700a5
chore: 删除误提交的 .bak 文件
2026-05-29 15:04:11 +08:00
a3378b7fbf
fix: EncounterDiagnosisMapper selectOne() LIMIT 1 防重复数据报错
...
根因:getEncounterDiagnosisByEncounterConDefId 使用 selectOne() 查询,
但 SQL 可能返回多条(同就诊同诊断定义多条记录),导致 MyBatis 抛出
'Expected one result but found 2' 异常。
修复:SQL 增加 LIMIT 1,确保最多返回一条。
2026-05-29 15:04:03 +08:00
73df3699ec
fix( #613 ): 补充 DB 迁移 + ServiceRequest 实际写入退回原因
...
问题:
- med_medication_request 表无 back_reason 列 → Entity 和 Service 写了但 DB 报错
- ServiceRequestServiceImpl.updateDraftStatus 接收 backReason 参数但不使用
修复:
- 新增迁移脚本 sql/迁移记录-DB变更记录/20260529_fix_BUG#613_add_column_back_reason.sql
- 4 个 schema (histest1/histest/hisdev/hisprd) 已执行 ALTER TABLE ADD COLUMN
- ServiceRequestServiceImpl.updateDraftStatus: 新增 setReasonText(backReason)
2026-05-29 14:39:19 +08:00
wangjian963
04dc718555
Merge remote-tracking branch 'origin/develop' into develop
2026-05-29 14:24:46 +08:00
Ranyunqiao
dc472b8596
测试提交
2026-05-29 14:24:23 +08:00
wangjian963
e5a7606229
608
...
【住院登记-无档登记】登记页面“入院科室”下拉菜单无数据,导致无法完成住院办理
2026-05-29 14:21:56 +08:00
wangjian963
3bdc06d4a7
Merge remote-tracking branch 'origin/develop' into develop
2026-05-29 14:17:30 +08:00
5b80695669
fix( #613 ): 医嘱退回流程完善 — 前端退回原因必填弹窗 + 后端存储退回原因
...
根因(全链路6环分析):
- ① 前端/页面 ❌ handleCancel() 直接调 API,无退回原因输入弹窗
- ② Controller ❌ 不涉及 backReason — 纯转发,无需修改
- ③ Service ❌ adviceReject() 从 DTO 读取 list 但不提取 backReason,硬编码传 null
- ④ Mapper/DB ❌ backReason 参数已就绪但上游传 null 导致不写入
- ⑤ 医生端 ❌ 因 DB 无数据,无法展示退回原因
修复:
- 前端: handleCancel() 改为弹对话框,新增 confirmCancel() 校验必填后传 backReason
- 后端: adviceReject() 从 PerformInfoDto 提取 backReason 传给 updateDraftStatus/updateDraftStatusBatch
全链路状态流转:
护士选医嘱 → 点退回 → 弹窗要求输入原因 → 确定 → API传backReason → DB保存 → 医生端可显示
2026-05-29 14:15:33 +08:00
wangjian963
c6ac8d1cb1
565 [库房管理-调拨] 调拨单明细中“源仓库库存数量”未正确读取库存值,始终显示为0
...
600 【住院护士站-医嘱执行】数据一致性:医嘱执行成功后,在“已执行”列表中无法查询到该医嘱记录
2026-05-29 13:52:27 +08:00
3997c02564
fix(doctorstation): 修正医嘱备注字段查询错误
...
- 将备注字段来源从 T1.content_json 修改为 T2.content_json
- 确保从正确的表获取医嘱备注信息
- 修复因表关联导致的数据查询不准确问题
2026-05-29 13:25:31 +08:00