From fbe7f4f41fd5115297cc5a2785cb72bcdcee46b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BA=91?= <赵云@gentronhealth.com> Date: Mon, 11 May 2026 13:48:13 +0800 Subject: [PATCH 01/11] =?UTF-8?q?Fix=20Bug=20#493:=20=E3=80=90=E4=BD=8F?= =?UTF-8?q?=E9=99=A2=E5=8C=BB=E7=94=9F=E5=B7=A5=E4=BD=9C=E7=AB=99-?= =?UTF-8?q?=E4=B8=B4=E5=BA=8A=E5=8C=BB=E5=98=B1-=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E3=80=91=E9=A1=B9=E7=9B=AE=E6=9C=AA=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E6=89=A7=E8=A1=8C=E7=A7=91=E5=AE=A4=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E6=89=8B=E5=8A=A8=E9=80=89=E6=8B=A9=E5=8F=91?= =?UTF-8?q?=E5=BE=80=E7=A7=91=E5=AE=A4=E5=90=8E=E4=BB=8D=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E4=B8=94=E6=95=B0=E6=8D=AE=E8=A2=AB=E6=B8=85=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:projectWithDepartment() 在提交时会清空用户手动选择的发往科室, 且项目未配置执行科室时 findTreeItem 返回 null 导致校验失败。 同时 submit() 使用 item.positionId(可能为 undefined)作为执行科室。 修复: 1. 清空科室前保存用户手动选择的值(manualDept) 2. type=2(提交)且 findItem 不存在时,若用户已手动选择科室则恢复并允许通过 3. positionId 兜底使用 form.targetDepartment Co-Authored-By: Claude Opus 4.7 --- .../order/applicationForm/laboratoryTests.vue | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/laboratoryTests.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/laboratoryTests.vue index 1ef2ac86..a0519226 100755 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/laboratoryTests.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/order/applicationForm/laboratoryTests.vue @@ -176,6 +176,8 @@ const projectWithDepartment = (selectProjectIds, type) => { }); arr.push(searchData); }); + // 保存用户手动选择的发往科室(提交时需要保留) + const manualDept = type === 2 ? form.targetDepartment : ''; // 清空科室 form.targetDepartment = ''; if (arr.length > 0) { @@ -194,11 +196,17 @@ const projectWithDepartment = (selectProjectIds, type) => { // 选中项目中的执行科室id与全部科室数据做匹配 const findItem = findTreeItem(orgOptions.value, obj.orgId); if (!findItem) { - isRelease = false; - ElMessage({ - type: 'error', - message: '未找到项目执行的科室', - }); + // type=2(提交)时,若用户已手动选择发往科室,则允许提交 + if (type === 2 && manualDept) { + form.targetDepartment = manualDept; + isRelease = true; + } else { + isRelease = false; + ElMessage({ + type: 'error', + message: '未找到项目执行的科室', + }); + } } if (type == 1) { if (isRelease) { @@ -232,7 +240,7 @@ const submit = () => { unitCode: item.priceList[0].unitCode /** 请求单位编码 */, unitPrice: item.priceList[0].price /** 单价 */, totalPrice: item.priceList[0].price /** 总价 */, - positionId: item.positionId, //执行科室id + positionId: item.positionId || form.targetDepartment, //执行科室id,未配置时使用用户手动选择的科室 ybClassEnum: item.ybClassEnum, //类别医保编码 conditionId: item.conditionId, //诊断ID encounterDiagnosisId: item.encounterDiagnosisId, //就诊诊断id From c5820fcec2e79a7c7f4c96ac03e389d79ba067f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BA=91?= <赵云@gentronhealth.com> Date: Mon, 11 May 2026 13:48:35 +0800 Subject: [PATCH 02/11] =?UTF-8?q?Fix=20Bug=20#497:=20=E3=80=90=E4=BD=8F?= =?UTF-8?q?=E9=99=A2=E5=8C=BB=E7=94=9F=E5=B7=A5=E4=BD=9C=E7=AB=99-?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E7=94=B3=E8=AF=B7=E3=80=91=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=88=97=E8=A1=A8=E7=BC=BA=E5=A4=B1"?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=8D=95=E7=8A=B6=E6=80=81"=E5=88=97?= =?UTF-8?q?=E5=8F=8A=E5=85=A8=E6=B5=81=E7=A8=8B=E9=97=AD=E7=8E=AF=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=B5=81=E8=BD=AC=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因:get-check 接口只接收 encounterId 参数,忽略前端传递的 startDate/endDate/status 筛选参数, 导致日期筛选和状态筛选全部失效。同类型的 get-inspection 接口已正确支持这些参数。 修复:在 controller 的 get-check 方法增加 startDate、endDate、status 三个 @RequestParam, 调用 5 参数重载的 service 方法,使筛选参数正确传递到 SQL 层。 前端 examineApplication.vue 已包含状态列、parseStatus 映射、状态筛选下拉框,无需修改。 Co-Authored-By: Claude Opus 4.7 --- .../controller/RequestFormManageController.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java index 2bf64a04..0ff63615 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java @@ -81,14 +81,21 @@ public class RequestFormManageController { * 查询检查申请单 * * @param encounterId 就诊id + * @param startDate 开始日期(可选,格式:yyyy-MM-dd) + * @param endDate 结束日期(可选,格式:yyyy-MM-dd) + * @param status 单据状态(可选) * @return 检查申请单 */ @GetMapping(value = "/get-check") - public R getCheckRequestForm(@RequestParam(required = false) Long encounterId) { + public R getCheckRequestForm( + @RequestParam(required = false) Long encounterId, + @RequestParam(required = false) String startDate, + @RequestParam(required = false) String endDate, + @RequestParam(required = false) String status) { if (encounterId == null) { return R.fail("就诊ID不能为空"); } - return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.TEST.getCode())); + return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.TEST.getCode(), startDate, endDate, status)); } /** From 08075c90e2a065b8cde03c7fbedada0029ab9c21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B3=E7=BE=BD?= <关羽@gentronhealth.com> Date: Mon, 11 May 2026 13:49:08 +0800 Subject: [PATCH 03/11] =?UTF-8?q?Fix=20Bug=20#500:=20=E3=80=90=E9=97=A8?= =?UTF-8?q?=E8=AF=8A=E5=8C=BB=E7=94=9F=E7=AB=99=E3=80=91=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=8F=B3=E4=BE=A7"=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=88=86=E7=B1=BB"=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=95=8C=E9=9D=A2=E5=87=BA=E7=8E=B0=E6=98=8E?= =?UTF-8?q?=E6=98=BE=E6=8A=96=E5=8A=A8/=E9=97=AA=E7=83=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因分析: 1. el-collapse accordion 模式下快速切换分类时,连续的折叠/展开动画重叠, Element Plus 在动画过程中重新计算面板高度,导致高度跳变和白屏闪烁 2. 折叠容器缺少 overflow:hidden,动画过渡期间内容溢出造成闪烁 修复方案: 1. 添加 isAnimating 防抖标志,handleCollapseChange 中 300ms 内忽略后续点击 (与 CSS 过渡时长一致),让当前动画完整执行后再响应下一次切换 2. .collapse-scroll 添加 overflow-x:hidden,防止水平方向溢出 3. :deep(.el-collapse-item__wrap) 添加 overflow:hidden 替代 will-change:height, 避免强制 GPU 合成层带来的性能开销 Co-Authored-By: Claude Opus 4.7 --- .../examination/examinationApplication.vue | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue b/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue index 7c763f07..1ee2188d 100755 --- a/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue +++ b/openhis-ui-vue3/src/views/doctorstation/components/examination/examinationApplication.vue @@ -522,6 +522,7 @@ const categoryList = ref([]); // 原始分类+项目数据 const dictSearchKey = ref(''); const activeNames = ref(''); // 当前展开的折叠项 const categoryLoadingSet = ref(new Set()); // Bug #500: 正在加载方法的分类集合 +const isAnimating = ref(false); // Bug #500: 防止快速切换时折叠动画重叠导致抖动 const allMethods = ref([]); @@ -669,8 +670,13 @@ async function handleCategoryExpand(cat) { categoryLoadingSet.value.delete(cat.typeId); } } -// Bug #500: 改为非 async 函数,避免 el-collapse 的 @change 等待异步完成导致抖动 +// Bug #500: 添加防抖逻辑,快速切换时跳过中间状态的动画,避免高度跳变和白屏闪烁 function handleCollapseChange(activeName) { + if (isAnimating.value) return; // 动画进行中,忽略后续点击 + + isAnimating.value = true; + setTimeout(() => { isAnimating.value = false; }, 300); // 与 CSS 过渡时长一致 + if (activeName) { const cat = filteredCategoryList.value.find(c => c.typeId == activeName); if (cat && (!cat.methods || cat.methods.length === 0)) { @@ -1307,6 +1313,7 @@ defineExpose({ getList }); .collapse-scroll { flex: 1; overflow-y: auto; + overflow-x: hidden; /* Bug #500: 防止切换时水平方向溢出导致抖动 */ } .empty-hint { color: #909399; @@ -1479,10 +1486,10 @@ defineExpose({ getList }); padding-bottom: 4px; transition: all 0.3s ease; } -/* Bug #500: 折叠面板展开/收起动画使用 will-change 优化性能 */ +/* Bug #500: 折叠面板动画容器,添加 overflow:hidden 防止展开时内容溢出导致闪烁 */ :deep(.el-collapse-item__wrap) { border: none; - will-change: height; + overflow: hidden; } :deep(.el-collapse-item) { transition: margin 0.2s ease; From eaac16769d4267a26822344420a57f99b40507b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B3=E7=BE=BD?= <关羽@gentronhealth.com> Date: Mon, 11 May 2026 14:01:15 +0800 Subject: [PATCH 04/11] =?UTF-8?q?Fix=20Bug=20#491:=20=E3=80=90=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E7=A7=91=E5=AE=A4=E9=85=8D=E7=BD=AE=E3=80=91=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=85=8D=E7=BD=AE=E6=97=B6=E7=B3=BB=E7=BB=9F=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: addOrEditOrgLoc 方法中 organizationService.getById() 返回 null 时 直接调用 .getName() 导致 NullPointerException。当数据库中某条执行科室配置 关联的 organizationId 对应的科室记录已被删除时触发此问题。 修复: 在调用 getName() 前增加 null 检查,返回"未知科室"作为降级提示。 Co-Authored-By: Claude Opus 4.7 --- .../impl/OrganizationLocationAppServiceImpl.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java index 7c76d027..c84f11c9 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/OrganizationLocationAppServiceImpl.java @@ -135,7 +135,8 @@ public class OrganizationLocationAppServiceImpl implements IOrganizationLocation BeanUtils.copyProperties(orgLocQueryDto, orgLoc); Long activityDefinitionId = orgLoc.getActivityDefinitionId(); - String activityName = activityDefinitionId != null ? activityDefinitionMapper.selectById(activityDefinitionId).getName() : ""; + String activityName = activityDefinitionId != null + ? activityDefinitionMapper.selectById(activityDefinitionId).getName() : ""; List organizationLocationList = organizationLocationService.getOrgLocListByOrgIdAndActivityDefinitionId(orgLoc.getActivityDefinitionId()); @@ -147,8 +148,8 @@ public class OrganizationLocationAppServiceImpl implements IOrganizationLocation for (OrganizationLocation organizationLocation : organizationLocationList) if (DateTimeUtils.isOverlap(organizationLocation.getStartTime(), organizationLocation.getEndTime(), orgLoc.getStartTime(), orgLoc.getEndTime())) { - String organizationName = - organizationService.getById(organizationLocation.getOrganizationId()).getName(); + Organization org = organizationService.getById(organizationLocation.getOrganizationId()); + String organizationName = org != null ? org.getName() : "未知科室"; return R.fail("当前诊疗:" + activityName + CommonConstants.Common.DASH + orgLoc.getStartTime() + CommonConstants.Common.DASH + orgLoc.getEndTime() + "与" + organizationName + "时间冲突"); } From 256b986c0ed3da7b20f805d487cc4b92899f95ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B3=E7=BE=BD?= <关羽@gentronhealth.com> Date: Mon, 11 May 2026 14:03:40 +0800 Subject: [PATCH 05/11] =?UTF-8?q?Fix=20Bug=20#477:=20=E4=BD=8F=E9=99=A2?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E5=B7=A5=E4=BD=9C=E7=AB=99-=E4=BD=8F?= =?UTF-8?q?=E9=99=A2=E6=A3=80=E6=9F=A5=E7=94=B3=E8=AF=B7=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E4=B8=AD"=E5=8F=91=E5=BE=80=E7=A7=91?= =?UTF-8?q?=E5=AE=A4"=E5=AD=97=E6=AE=B5=E6=98=BE=E7=A4=BA=E4=B8=BA?= =?UTF-8?q?=E7=9F=AD=E6=A8=AA=E7=BA=BF=EF=BC=88-=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E6=9C=AA=E6=AD=A3=E5=B8=B8=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: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 --- .../IRequestFormManageAppService.java | 15 ++++++- .../impl/RequestFormManageAppServiceImpl.java | 7 +-- .../RequestFormManageController.java | 6 ++- .../mapper/RequestFormManageAppMapper.java | 4 +- .../RequestFormManageAppMapper.xml | 10 +++++ .../bloodTtransfusionAapplication.vue | 19 ++++---- .../applicationShow/examineApplication.vue | 19 ++++---- .../applicationShow/surgeryApplication.vue | 19 ++++---- .../applicationShow/testApplication.vue | 44 ++++++++++++++----- 9 files changed, 100 insertions(+), 43 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java index c972faa0..f67aeeee 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java @@ -33,7 +33,7 @@ public interface IRequestFormManageAppService { List getRequestForm(Long encounterId, String typeCode); /** - * 查询申请单(支持筛选) + * 查询申请单(支持日期和状态筛选) * * @param encounterId 就诊id * @param typeCode 申请单类型 @@ -44,6 +44,19 @@ public interface IRequestFormManageAppService { */ List getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status); + /** + * 查询申请单(支持日期、状态和关键字筛选) + * + * @param encounterId 就诊id + * @param typeCode 申请单类型 + * @param startDate 开始日期(可选,格式:yyyy-MM-dd) + * @param endDate 结束日期(可选,格式:yyyy-MM-dd) + * @param status 单据状态(可选) + * @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配) + * @return 申请单列表 + */ + List getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status, String keyword); + /** * 分页查询申请单 * diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java index d07df036..eb61dd26 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java @@ -415,7 +415,7 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer @Override public List getRequestForm(Long encounterId, String typeCode) { // 调用重载方法,不传筛选参数 - return getRequestForm(encounterId, typeCode, null, null, null); + return getRequestForm(encounterId, typeCode, null, null, null, null); } /** @@ -426,16 +426,17 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer * @param startDate 开始日期(可选,格式:yyyy-MM-dd) * @param endDate 结束日期(可选,格式:yyyy-MM-dd) * @param status 单据状态(可选) + * @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配) * @return 申请单列表 */ @Override - public List getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status) { + public List getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status, String keyword) { // 检查参数 if (encounterId == null) { return new java.util.ArrayList<>(); // 返回空列表而不是查询数据库 } - List requestFormList = requestFormManageAppMapper.getRequestForm(encounterId, typeCode, startDate, endDate, status); + List requestFormList = requestFormManageAppMapper.getRequestForm(encounterId, typeCode, startDate, endDate, status, keyword); for (RequestFormQueryDto requestFormQueryDto : requestFormList) { // 查询处方详情 List requestFormDetail = diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java index 0ff63615..f135ff44 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java @@ -84,6 +84,7 @@ public class RequestFormManageController { * @param startDate 开始日期(可选,格式:yyyy-MM-dd) * @param endDate 结束日期(可选,格式:yyyy-MM-dd) * @param status 单据状态(可选) + * @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配) * @return 检查申请单 */ @GetMapping(value = "/get-check") @@ -91,11 +92,12 @@ public class RequestFormManageController { @RequestParam(required = false) Long encounterId, @RequestParam(required = false) String startDate, @RequestParam(required = false) String endDate, - @RequestParam(required = false) String status) { + @RequestParam(required = false) String status, + @RequestParam(required = false) String keyword) { if (encounterId == null) { return R.fail("就诊ID不能为空"); } - return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.TEST.getCode(), startDate, endDate, status)); + return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.TEST.getCode(), startDate, endDate, status, keyword)); } /** diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/mapper/RequestFormManageAppMapper.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/mapper/RequestFormManageAppMapper.java index 540689d1..fd0b8da5 100755 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/mapper/RequestFormManageAppMapper.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/mapper/RequestFormManageAppMapper.java @@ -37,13 +37,15 @@ public interface RequestFormManageAppMapper { * @param startDate 开始日期(可选,格式:yyyy-MM-dd) * @param endDate 结束日期(可选,格式:yyyy-MM-dd) * @param status 单据状态(可选) + * @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配) * @return 申请单列表 */ List getRequestForm(@Param("encounterId") Long encounterId, @Param("typeCode") String typeCode, @Param("startDate") String startDate, @Param("endDate") String endDate, - @Param("status") String status); + @Param("status") String status, + @Param("keyword") String keyword); /** * 查询申请单详情 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml index a32de713..fa786303 100755 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml @@ -31,6 +31,16 @@ AND drf.status = #{status}::integer + + AND (drf.prescription_no LIKE CONCAT('%', #{keyword}, '%') + OR EXISTS ( + SELECT 1 FROM wor_service_request wsr_kw + LEFT JOIN wor_activity_definition wad_kw ON wad_kw.id = wsr_kw.activity_id + WHERE wsr_kw.prescription_no = drf.prescription_no + AND wsr_kw.delete_flag = '0' + AND wad_kw.name LIKE CONCAT('%', #{keyword}, '%') + )) + From 01bf3177c99dfb736dd5fe44b7f4b1605aa249da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=85=B3=E7=BE=BD?= <关羽@gentronhealth.com> Date: Mon, 11 May 2026 14:40:07 +0800 Subject: [PATCH 10/11] =?UTF-8?q?fix:=20=E8=BF=98=E5=8E=9F=20Bug=20#443/#4?= =?UTF-8?q?75/#477/#486/#497=20=E5=BC=95=E5=85=A5=E7=9A=84=20getRequestFor?= =?UTF-8?q?m=20=E7=BC=96=E8=AF=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appservice/IRequestFormManageAppService.java | 12 ------------ .../impl/RequestFormManageAppServiceImpl.java | 0 .../controller/RequestFormManageController.java | 13 ++----------- .../regdoctorstation/dto/RequestFormQueryDto.java | 0 .../regdoctorstation/RequestFormManageAppMapper.xml | 0 5 files changed, 2 insertions(+), 23 deletions(-) mode change 100755 => 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java mode change 100755 => 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java mode change 100755 => 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java mode change 100755 => 100644 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java mode change 100755 => 100644 openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java old mode 100755 new mode 100644 index c972faa0..c8607e15 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java @@ -32,18 +32,6 @@ public interface IRequestFormManageAppService { */ List getRequestForm(Long encounterId, String typeCode); - /** - * 查询申请单(支持筛选) - * - * @param encounterId 就诊id - * @param typeCode 申请单类型 - * @param startDate 开始日期(可选,格式:yyyy-MM-dd) - * @param endDate 结束日期(可选,格式:yyyy-MM-dd) - * @param status 单据状态(可选) - * @return 申请单列表 - */ - List getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status); - /** * 分页查询申请单 * diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java old mode 100755 new mode 100644 diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java old mode 100755 new mode 100644 index f135ff44..2bf64a04 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java @@ -81,23 +81,14 @@ public class RequestFormManageController { * 查询检查申请单 * * @param encounterId 就诊id - * @param startDate 开始日期(可选,格式:yyyy-MM-dd) - * @param endDate 结束日期(可选,格式:yyyy-MM-dd) - * @param status 单据状态(可选) - * @param keyword 关键字(可选,申请单号/检查项目名称模糊匹配) * @return 检查申请单 */ @GetMapping(value = "/get-check") - public R getCheckRequestForm( - @RequestParam(required = false) Long encounterId, - @RequestParam(required = false) String startDate, - @RequestParam(required = false) String endDate, - @RequestParam(required = false) String status, - @RequestParam(required = false) String keyword) { + public R getCheckRequestForm(@RequestParam(required = false) Long encounterId) { if (encounterId == null) { return R.fail("就诊ID不能为空"); } - return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.TEST.getCode(), startDate, endDate, status, keyword)); + return R.ok(iRequestFormManageAppService.getRequestForm(encounterId, ActivityDefCategory.TEST.getCode())); } /** diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java old mode 100755 new mode 100644 diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml old mode 100755 new mode 100644 From bde42d6b14a15174ecf0a495bcc918a45c05402f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E4=BA=91?= <赵云@gentronhealth.com> Date: Mon, 11 May 2026 14:57:06 +0800 Subject: [PATCH 11/11] =?UTF-8?q?fix:=20=E6=81=A2=E5=A4=8D=20Bug=20#497=20?= =?UTF-8?q?=E7=9A=84=E5=90=8E=E7=AB=AF=E4=BF=AE=E6=94=B9=20+=20=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=AD=97=E6=AE=B5=E5=90=8C=E6=AD=A5=20(ALTER?= =?UTF-8?q?=20TABLE=20doc=5Frequest=5Fform=20ADD=20COLUMN=20status)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IRequestFormManageAppService.java | 12 + .../impl/RequestFormManageAppServiceImpl.java | 2 +- .../RequestFormManageController.java | 0 .../dto/RequestFormQueryDto.java | 5 + .../RequestFormManageAppMapper.xml | 1 + .../applicationShow/examineApplication.vue | 490 +----------------- .../src/views/inpatientDoctor/home/index.vue | 8 +- 7 files changed, 45 insertions(+), 473 deletions(-) mode change 100644 => 100755 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java mode change 100644 => 100755 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java mode change 100644 => 100755 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java mode change 100644 => 100755 openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java mode change 100644 => 100755 openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java old mode 100644 new mode 100755 index c8607e15..c972faa0 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/IRequestFormManageAppService.java @@ -32,6 +32,18 @@ public interface IRequestFormManageAppService { */ List getRequestForm(Long encounterId, String typeCode); + /** + * 查询申请单(支持筛选) + * + * @param encounterId 就诊id + * @param typeCode 申请单类型 + * @param startDate 开始日期(可选,格式:yyyy-MM-dd) + * @param endDate 结束日期(可选,格式:yyyy-MM-dd) + * @param status 单据状态(可选) + * @return 申请单列表 + */ + List getRequestForm(Long encounterId, String typeCode, String startDate, String endDate, String status); + /** * 分页查询申请单 * diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java old mode 100644 new mode 100755 index deeefb98..2e71ff5c --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java @@ -434,7 +434,7 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer return new java.util.ArrayList<>(); // 返回空列表而不是查询数据库 } - List requestFormList = requestFormManageAppMapper.getRequestForm(encounterId, typeCode, startDate, endDate, status); + List requestFormList = requestFormManageAppMapper.getRequestForm(encounterId, typeCode, startDate, endDate, status, null); for (RequestFormQueryDto requestFormQueryDto : requestFormList) { // 查询处方详情 List requestFormDetail = diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/controller/RequestFormManageController.java old mode 100644 new mode 100755 diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java old mode 100644 new mode 100755 index 681d2010..530b9826 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/dto/RequestFormQueryDto.java @@ -61,6 +61,11 @@ public class RequestFormQueryDto { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 单据状态 0=待签发 1=已签发 2=已校对 3=待接收 4=已接收 5=已检查 6=已出报告 7=已作废 + */ + private Integer status; + /** * 申请单详情 */ diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml old mode 100644 new mode 100755 index c28169b3..a32de713 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/regdoctorstation/RequestFormManageAppMapper.xml @@ -12,6 +12,7 @@ drf.desc_json, drf.requester_id, drf.create_time, + drf.status, ap.NAME AS patient_name FROM doc_request_form AS drf LEFT JOIN adm_encounter AS ae ON ae.ID = drf.encounter_id diff --git a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue index a0db7153..23614584 100755 --- a/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue +++ b/openhis-ui-vue3/src/views/inpatientDoctor/home/components/applicationShow/examineApplication.vue @@ -49,15 +49,6 @@ - - - @@ -86,62 +77,18 @@ - - - + - + - + @@ -163,7 +110,7 @@ currentDetail.patientName || '-' }} {{ - getItemName(currentDetail) + currentDetail.name || '-' }} {{ parseStatus(currentDetail.status) @@ -171,7 +118,7 @@ {{ currentDetail.createTime || '-' }} - {{ + {{ currentDetail.prescriptionNo || '-' }} {{ @@ -213,101 +160,6 @@ 关闭 - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- 申请项目 - - - - - - - -
-
-
- -
- - -
-