Commit Graph

98 Commits

Author SHA1 Message Date
关羽
c012974fd0 Fix Bug #405: 住院医生工作站:临床医嘱保存成功后,医嘱条目仍处于可编辑状态(未锁定展示)
- getListInfo: 增加 getPrescriptionList 的 .catch() 处理,API失败时锁定所有行(isEdit=false)
  防止列表加载静默失败导致医嘱永久处于可编辑状态
- handleSaveBatch: 在 .catch() 中增加 isEdit=false 重置,保存失败时也锁定行
- 与之前的修复配合:保存成功时先设置 isEdit=false 再调用 getListInfo 刷新数据

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 14:27:31 +08:00
赵云
5a83ff2aca Fix Bug #403: 住院医生工作站:应用医嘱组套后,药品明细字段内容丢失未正确引入表格
修复 handleSaveGroup 中 mergedDetail 和 newRow 构建时的空值处理问题:
1. mergedDetail 中 dose/doseQuantity/dispensePerDuration 使用严格 null 检查,
   避免组套中值为 null 时错误回退到 orderDetailInfos
2. newRow 中关键字段增加 mergedDetail 回退(?? 操作符),
   确保当 item 中字段为 null/undefined 时能从 setValue 填充的完整数据中获取

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 14:27:31 +08:00
关羽
6e0e78cd8d Fix Bug #405: 住院医生工作站:临床医嘱保存成功后,医嘱条目仍处于可编辑状态(未锁定展示)
- handleSaveSign: 新增行点击确定后调用savePrescription持久化到后端,而非仅设置isEdit=false后调用handleAddPrescription
- handleSaveBatch: 修复nextId.value == 1 为赋值操作(=)
- handleSaveBatch: catch块增加错误提示,保存失败时用户可感知

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 13:35:47 +08:00
Ranyunqiao
9bec956b4f bug 362 428 436 2026-05-13 13:35:47 +08:00
关羽
cec8a44bd9 Fix Bug #496: 【住院医生工作站-检查申请】检查申请列表字段命名不规范及单号生成规则不符合医疗行业标准
1. 前端 examineApplication.vue:列表表头和详情弹窗中"处方号"改为"申请单号"
2. 后端 RequestFormManageAppServiceImpl:检查申请单单号生成规则由 PAR+流水号 改为 JCZ+yyMMdd+5位顺序号(如:JCZ26051300001),其他类型申请单保持原有PAR规则不变

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:42:33 +08:00
关羽
41562c5bbd Fix Bug #402: 住院医生站诊断录入:点击保存诊断后,列表出现重复记录且部分条目元数据缺失
根因分析:
1. 后端 deleteTcmByEncounterId SQL 过滤条件错误(tcm_flag=0 应为 tcm_flag=1),导致中医诊断记录无法被正确清理
2. 前端 getList() 从服务器加载数据后,未补充缺失的 diagnosisDoctor 和 diagnosisTime 字段
3. 前端 handleSaveDiagnosis() 保存成功后直接更新本地数据而非从服务器刷新,导致数据不一致和重复记录
4. 前端新增诊断时缺少 classification、onsetDate、longTermFlag 等必要字段

修复内容:
- 后端:修复 EncounterDiagnosisMapper.xml 中 deleteTcmByEncounterId 的 tcm_flag 过滤条件
- 前端:getList() 增加缺失字段默认值填充逻辑
- 前端:handleSaveDiagnosis() 改为 async/await,保存成功后调用 getList() 从服务器刷新
- 前端:addDiagnosisItem()/handleImport()/handleNodeClick() 补充完整字段

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:36:05 +08:00
关羽
00ff4158a1 Fix Bug #402: 住院医生站诊断录入:点击保存诊断后,列表出现重复记录且部分条目元数据缺失
根因分析:
1. 前端"保存诊断"按钮无防重复点击保护,快速点击两次导致并发请求产生重复记录
2. 前端日期使用 toLocaleString('zh-CN') 格式与后端 @JsonFormat(pattern="yyyy/M/d HH:mm:ss") 不匹配,导致诊断时间解析失败为null
3. EncounterDiagnosisMapper.xml 中 deleteTcmByEncounterId 使用 tcm_flag=0(应为1),导致中医诊断删除逻辑错误

修复内容:
- 前端:添加 saveLoading 状态防止重复点击
- 前端:统一使用 formatDateStr(new Date(), 'YYYY/M/D HH:mm:ss') 确保与后端日期格式一致
- 后端:修正 deleteTcmByEncounterId 的 tcm_flag 条件为 1

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:26:10 +08:00
荀彧
a09020a4fd Fix Bug #401: 门诊完诊审计日志错误:div_log 表中 pool_id 与 slot_id 存值与设计规范不符
调整完诊时 div_log 的 pool_id/slot_id 获取优先级:优先使用 triage_queue_item
(挂号时录入的号源信息,为权威来源),队列项不存在或值缺失时回退使用
encounter → order → slot → pool 链路

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 10:25:48 +08:00
赵云
253ceaffc6 Fix Bug #488: 【临床医嘱】双击编辑待签发医嘱,医嘱类型回显为数字且点击确认报接口错误
修复 clickRowDb 函数中编辑条件过于严格的问题:原条件 `row.statusEnum == 1 && !row.requestId`
只允许"待保存"(无requestId)的医嘱进入编辑,导致"待签发"(有requestId)的医嘱无法编辑。
改为 `row.statusEnum == 1`,允许所有待签发状态的医嘱编辑。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 00:16:01 +08:00
张飞
ed7c388d11 Fix Bug #477: 住院医生工作站-住院检查申请详情弹窗中"发往科室"字段显示为短横线(-),未正常获取数据
根因分析:
1. 前端组件使用了错误的API获取科室列表:表单使用getDepartmentList(/app-common/department-list)
   保存的targetDepartment ID,但详情弹窗使用getOrgList(/base-data-manage/organization/organization)
   查询,两个接口返回的数据结构和ID不同,导致recursionFun无法匹配到科室名称
2. recursionFun中obj.children可能为null/undefined,直接遍历会抛TypeError
3. getLocationInfo是异步调用,handleViewDetail可能在科室数据加载完成前被调用

修复:
- 统一使用getDepartmentList(@/api/public.js)获取科室数据,与表单组件保持一致
- recursionFun增加children空值保护
- handleViewDetail改为async,打开详情前确保科室数据已加载
2026-05-13 00:16:01 +08:00
刘备
f581f72693 Fix Bug #468: [住院医生工作站-检验申请] 列表页缺失【单据状态】列,无法闭环管理检验医嘱执行进度
前后端完整链路修复:
- 后端 Mapper: LEFT JOIN wor_service_request 表,通过 CASE MIN(status_enum) 映射单据状态
- 后端 Mapper: 新增状态筛选和关键字搜索(申请单号/检验项目模糊匹配)
- 后端 Service/Controller: 新增 status 和 keyword 参数传递
- 前端 Vue: 列表页添加【单据状态】列,绑定 status 字段
- 前端 Vue: 移除中间状态选项(已采集/已收样),与后端 CASE 映射保持一致

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 00:16:01 +08:00
赵云
4af2fc5f54 Fix Bug #470: 住院医生工作站-手术申请单加载手术项目耗时过长,影响医生开单效率
策略A-前端优化:为手术项目穿梭框添加 v-loading 加载状态指示器,
解决API查询期间用户看到空白/卡住界面的问题。
同时暴露 getList 方法供父组件调用(之前未暴露但已被父组件调用)。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 00:15:52 +08:00
华佗
21e68da15e Fix Bug #469: [住院医生工作站-检验申请] 完善【操作】列临床业务逻辑:支持按状态动态切换修改、删除、撤回等功能
根据单据状态动态显示操作按钮:
- 待签发(状态0):显示修改、删除、详情
- 已签发(状态1):显示撤回、详情
- 其他状态:仅显示详情

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-13 00:15:52 +08:00
Ranyunqiao
4c4f01abd1 429 433 438 476 477 478 2026-05-13 00:15:51 +08:00
331fc532fc bug 486 [住院医生工作站-临床医嘱] 医嘱检索框不支持全局模糊搜索,未选“医嘱类型”时检索结果为空 删去了搜索条件的默认值 2026-05-12 12:18:58 +08:00
赵云
c7956a116b fix: 恢复 Bug #497 的后端修改 + 数据库字段同步 (ALTER TABLE doc_request_form ADD COLUMN status) 2026-05-11 15:30:17 +08:00
关羽
777ba71c7d Fix Bug #486: [住院医生工作站-临床医嘱] 医嘱检索框不支持全局模糊搜索,未选"医嘱类型"时检索结果为空
根因:handleFocus/handleChange 中 categoryCode 的计算逻辑错误。当新增行未选择
医嘱类型时(row.adviceType 为 undefined),代码回退到 adviceQueryParams 的默认值并
匹配到具体药品分类(如西药 categoryCode='2'),导致搜索被限制在单一分类而非全局药库。

修复:简化 categoryCode 判定为 `row.adviceType !== undefined ? selectedItem.categoryCode : ''`,
未选类型时传空 categoryCode,使 searchKey 在全药库范围内模糊匹配。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 14:07:50 +08:00
关羽
8093f8acda Fix Bug #477: 住院医生工作站-住院检查申请详情弹窗中"发往科室"字段显示为短横线(-),未正常获取数据
根因:handleViewDetail 为同步方法,点击详情时 getLocationInfo 尚未返回,
orgOptions 为空导致 recursionFun 无法将 targetDepartment ID 解析为科室名称。

修复:
1. 前端(4个申请组件):handleViewDetail 改为 async,解析 descJson 前确保 orgOptions 已加载
2. 前端:watch encounterId 改为 Promise.all 并行加载数据和科室列表
3. 后端:新增 keyword 关键字筛选参数(申请单号/检查项目模糊匹配)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 14:03:40 +08:00
赵云
fbe7f4f41f Fix Bug #493: 【住院医生工作站-临床医嘱-检验申请】项目未维护执行科室时,医生手动选择发往科室后仍报错且数据被清空
根因:projectWithDepartment() 在提交时会清空用户手动选择的发往科室,
且项目未配置执行科室时 findTreeItem 返回 null 导致校验失败。
同时 submit() 使用 item.positionId(可能为 undefined)作为执行科室。

修复:
1. 清空科室前保存用户手动选择的值(manualDept)
2. type=2(提交)且 findItem 不存在时,若用户已手动选择科室则恢复并允许通过
3. positionId 兜底使用 form.targetDepartment

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 13:48:22 +08:00
14f8a8b0a3 import 去掉多余逗号并略作格式整理 2026-05-11 09:53:02 +08:00
关羽
10b2c58a3e Fix Bug #476: 住院医生工作-检查申请单界面缺失核心临床字段(紧急程度、过敏史、检查目的等)
在检查申请单开立界面新增5个核心临床字段(依次放在发往科室之后):
1. 紧急程度:el-select下拉选择(普通/急诊),区分急诊和普通检查
2. 过敏史:textarea输入,提示造影剂过敏风险
3. 检查目的:textarea输入,让执行科室医生了解临床背景
4. 病史摘要:textarea输入,补充患者病史信息
5. 期望检查时间:datetime选择器,实现精准调度

同步更新:
- medicalExaminations.vue: 表单模板 + form reactive对象新增字段
- examineApplication.vue: labelMap映射 + 详情弹窗紧急程度转换 + 修改弹窗新增字段 + 编辑/保存逻辑覆盖新字段
2026-05-11 08:45:13 +08:00
赵云
c0438c0288 Fix Bug #496: 【住院医生工作站-检查申请】检查申请列表字段命名不规范及单号生成规则不符合医疗行业标准
将检查申请列表及详情中的"处方号"统一修改为"申请单号",涉及列表表头、详情弹窗和打印内容三处

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 08:44:25 +08:00
赵云
cf50f8968a Fix Bug #478: 【住院医生工作站-检验申请】点击"详情"查看检验单时,"发往科室"字段回显异常(显示为"-")
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 00:09:19 +08:00
关羽
6725cef643 Fix Bug #477: 住院医生工作站-住院检查申请详情弹窗中"发往科室"字段显示为短横线(-),未正常获取数据
修复 examineApplication.vue 中 recursionFun 函数的空指针异常:
1. 增加 orgOptions.value 数组有效性校验,防止接口未返回数据时崩溃
2. 增加 obj.children 的 Array.isArray 检查,原代码直接访问 children.length 在 children 为 undefined 时抛 TypeError
3. 匹配成功后增加 break 提前退出循环
4. handleViewDetail 增加 targetDepartment 存在性检查,递归查找失败时回退显示原始 ID 值
2026-05-10 23:56:39 +08:00
赵云
49fa1c9b90 Fix Bug #493: 【住院医生工作站-临床医嘱-检验申请】项目未维护执行科室时,医生手动选择发往科室后仍报错且数据被清空 2026-05-10 23:50:43 +08:00
关羽
3ddd74d679 Fix Bug #494: 住院医生工作站-检查申请:"申请单名称"字段显示为通用名称,未展示具体检查项目名称
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 17:06:16 +08:00
关羽
1b79df4f93 Fix Bug #488: 【临床医嘱】双击编辑待签发医嘱,医嘱类型回显为数字且点击确认报接口错误
- 修复 handleSaveSign 中 getBindDevice 调用时 itemNo 可能为 undefined 导致的后端报错 "Required request parameter 'itemNo' for method parameter type String is not present":增加 itemNo 空值检查,为空时 console.warn 跳过调用而非发送无效请求
- 移除模板中两处调试残留:console.log 表达式渲染到页面(类型列和频次/用法列)
- 修复签发失败处理中截断的 conso; 语法错误
2026-05-10 16:05:42 +08:00
关羽
e5d949a740 Fix Bug #486: [住院医生工作站-临床医嘱] 医嘱检索框不支持全局模糊搜索,未选"医嘱类型"时检索结果为空
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 16:02:35 +08:00
赵云
6451c308c2 Fix Bug #498: 【住院医生工作站-检查申请】检查申请列表操作项过于单一,缺失修改/作废/打印/看报告等核心临床操作
- 根据申请单状态动态展示操作按钮(详情/修改/删除/撤回/打印/看报告)
- 待签发状态:显示修改、删除按钮
- 已签发状态:显示撤回按钮
- 已校对/待接收状态:显示打印按钮
- 已接收/已检查/已出报告状态:显示打印、看报告按钮
- 新增修改申请单弹窗和报告查看弹窗
- 新增删除、撤回申请单 API 调用

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 14:23:32 +08:00
荀彧
2b64719d46 Fix Bug #499: 【住院医生工作站-检查申请】检查申请列表缺失查询过滤功能,不符合临床高效检索要求
- 新增关键字搜索输入框,支持按申请单号/检查项目名称模糊搜索
- 时间范围筛选默认显示近一周数据
- 关键字输入支持回车键快捷查询

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 10:41:11 +08:00
赵云
482a945b77 Fix Bug #497: 【住院医生工作站-检查申请】检查申请列表缺失"申请单状态"列及全流程闭环状态流转逻辑
1. 修复 examineApplication.vue 模板结构损坏问题(</template>提前闭合导致大量HTML游离在模板外)
2. 申请单状态列改为使用 formatter 显示中文(待签发→已签发→已校对→待接收→已接收→已检查→已出报告→已作废)
3. 新增筛选功能:申请日期范围筛选 + 申请单状态下拉筛选
4. 修复 index.vue 模板中检查申请 tab-pane 缺失(被 markdown fence 替换)及手术申请 tab 结构损坏
5. 后端 RequestFormQueryDto 新增 status 字段,SQL 查询补充 drf.status 返回

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 10:31:49 +08:00
赵云
db7f1a24f1 Fix Bug #497: 【住院医生工作站-检查申请】检查申请列表缺失“申请单状态”列及全流程闭环状态流转逻辑 2026-05-10 10:25:35 +08:00
赵云
e0b6dda0e9 Fix Bug #502: 【住院护士站-汇总发药申请】“汇总发药申请”模块,顶部医嘱类型(长期/临时)过滤按钮点击无响应 2026-05-10 10:25:25 +08:00
关羽
2c66e3b37a Fix Bug #465: [住院医生工作站-检验申请] 检验项目选择列表被限制为500项,导致医生无法检索并开立其余800多项
将 getApplicationList 请求的 pageSize 从 500 改为 9999,确保所有启用的检验类诊疗项目都能加载到申请单列表中。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 18:46:00 +08:00
赵云
cb33f4dbe9 Fix Bug #470: 住院医生工作站-手术申请单加载手术项目耗时过长
移除手术申请弹窗的阻塞式 loading,改为异步加载手术项目列表。
接口失败时使用 console.warn 优雅降级而非弹窗阻断。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 12:04:53 +08:00
c67d88520f style(inpatientDoctor): 格式化申请单显示组件API文件
- 添加空行以改善代码可读性
- 统一文件开头的导入格式
- 优化代码结构布局
2026-05-09 11:30:41 +08:00
a09dcb9295 Revert "Fix Bug #466: [住院医生工作站-检验申请] 申请单界面缺失核心质控字段(申请类型、标本类型、执行时间)及联动逻辑"
This reverts commit 637169f1d2.
2026-05-09 11:29:10 +08:00
bc4a6cc6af bug402:住院医生站诊断录入:点击保存诊断后,列表出现重复记录且部分条目元数据缺失.
bug405: 住院医生工作站:临床医嘱保存成功后,医嘱条目仍处于可编辑状态(未锁定展示)
2026-05-09 10:39:17 +08:00
赵云
4f57389656 Fix Bug #443: 手术计费:点击“签发”耗材时异常报错 2026-05-08 22:00:22 +08:00
赵云
637169f1d2 Fix Bug #466: [住院医生工作站-检验申请] 申请单界面缺失核心质控字段(申请类型、标本类型、执行时间)及联动逻辑 2026-05-08 21:56:27 +08:00
赵云
18ada7c392 Fix Bug #445: 【手术管理-门诊手术安排】临时医嘱生成界面逻辑错误:已生成医嘱的计费项目未从“待生成”列表中剔除 2026-05-08 21:51:39 +08:00
赵云
43acca6c0f Fix Bug #468: [住院医生工作站-检验申请] 列表页缺失【单据状态】列,无法闭环管理检验医嘱执行进度 2026-05-08 16:14:03 +08:00
a95c9c9f22 Fix Bug #468: 住院医生工作站-检验申请列表页缺失单据状态列
在检验申请列表页"申请单号"后新增"单据状态"列,显示单据生命周期状态
(待签发/已签发/已采集/已收样/报告已出/已作废),使医生可通过列表直接获知
申请单当前执行阶段。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 09:19:27 +08:00
9c3e603b94 Fix Bug #443: 手术计费:点击签发耗材时异常报错
当手术计费弹窗中点击"签发"耗材时,因耗材的locationId(发放库房)为空导致后端异常。
在DoctorStationAdviceAppServiceImpl.handDevice方法中,当locationId为null时,使用登录用户的科室ID作为默认值,
与NurseBillingAppService中的处理方式保持一致。
2026-05-08 09:14:18 +08:00
06f257f4be Fix Bug #472: 住院医生工作站-手术申请单:勾选手术项目无效,导致无法正常开立医嘱
surgery.vue 中 ref 和 watch 未从 vue 导入,导致 transferValue 不是响应式变量,
el-transfer 勾选复选框时状态无法更新,修复 import 语句补充 ref、watch。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 08:46:59 +08:00
8ddb752ac8 Fix Bug #472: 住院医生工作站-手术申请单:勾选手术项目无效,导致无法正常开立医嘱
修复surgery.vue组件中遗漏的watch导入,导致el-transfer勾选无响应

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-07 22:50:45 +08:00
b31c891bd1 调优:473- [住院医生工作站-检验申请] 列表页字段补全:新增“申请类型”、“标本类型”字段展示,处方号改申请单号 2026-05-07 16:08:13 +08:00
205d5cf85f 调优:473- [住院医生工作站-检验申请] 列表页字段补全:新增“申请类型”、“标本类型”字段展示,处方号改申请单号 2026-05-07 11:25:19 +08:00
5be726b4bd Fix: Bug-490 【住院医生站】待签发医嘱执行删除操作,提示“删除成功”但记录未从界面消失 2026-05-06 18:28:08 +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