3 Commits
关羽 ... HEAD

Author SHA1 Message Date
关羽
c0bcb629a5 Fix Bug #401: 门诊完诊审计日志错误:div_log 表中 pool_id 与 slot_id 存值与设计规范不符
根因:部分 encounter 记录的 order_id 字段为空(挂号流程中未正确赋值),
且无 triage_queue_item 队列记录,导致完诊时 div_log 的 pool_id/slot_id 为 NULL。

修复:在 completeEncounter 中新增第二条回退链路——当 encounter.order_id 为空时,
通过 patient_id + 当天日期查询 order_main 表中的有效挂号订单,从中获取 slot_id 和 pool_id,
确保所有完诊审计日志都能正确记录号源信息。
2026-05-16 16:21:06 +08:00
关羽
8ba2a87a18 Fix Bug #537: [住院医生工作站] 冗余功能显示:需在医生工作站页签中屏蔽"汇总发药申请"模块
注释掉"汇总发药申请"tab页签,移除对应的组件import和ref引用。
该功能属于护士站环节(汇总提交领药单),不应在医生工作站显示。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 16:03:33 +08:00
赵云
566507e501 Fix Bug #469: [住院医生工作站-检验申请] 完善【操作】列临床业务逻辑:支持按状态动态切换修改、删除、撤回等功能
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-16 14:09:25 +08:00
3 changed files with 34 additions and 5 deletions

View File

@@ -324,6 +324,34 @@ public class DoctorStationMainAppServiceImpl implements IDoctorStationMainAppSer
}
}
// 回退链路2当 encounter 无 orderId 且队列项无 poolId/slotId 时,
// 查询患者当天有效挂号订单order_main获取 slot_id/pool_id
// (挂号流程中 encounter.order_id 可能未被正确赋值,但 order_main 中存在有效记录)
if ((divPoolId == null || divSlotId == null) && encounter.getPatientId() != null) {
try {
Order order = iOrderService.getOne(
new LambdaQueryWrapper<Order>()
.eq(Order::getPatientId, encounter.getPatientId())
.eq(Order::getStatus, OrderStatus.ACTIVE.getValue())
.eq(Order::getDeleteFlag, "0")
.apply("appointment_date::date = %s", LocalDate.now().toString())
.orderByDesc(Order::getCreateTime)
.last("LIMIT 1")
);
if (order != null && order.getSlotId() != null) {
ScheduleSlot slot = scheduleSlotMapper.selectById(order.getSlotId());
if (slot != null) {
divSlotId = slot.getId();
divPoolId = slot.getPoolId();
log.info("完诊通过患者当天挂号订单获取号源orderId={}, slotId={}, poolId={}",
order.getId(), divSlotId, divPoolId);
}
}
} catch (Exception e) {
log.warn("通过挂号订单获取完诊div_log的pool_id/slot_id失败encounterId={}", encounterId, e);
}
}
// 如果队列项存在且未完成,更新队列状态为已完成
// 使用排除法而非白名单:只要不是"已完成"就可以完诊,覆盖跳过、等待等非标准流转状态
// Bug #401在更新前记录队列原始完成状态用于判断是否需要写入 div_log

View File

@@ -105,15 +105,18 @@
</template>
</el-table-column>
<el-table-column prop="requesterId_dictText" label="申请者" width="120" />
<el-table-column label="操作" align="center" fixed="right" width="160">
<el-table-column label="操作" align="center" fixed="right" width="180">
<template #default="scope">
<!-- 待签发可修改删除 -->
<template v-if="scope.row.status == 0">
<el-button link type="primary" @click="handleEdit(scope.row)">修改</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
<!-- 已签发可撤回 -->
<template v-else-if="scope.row.status == 1">
<el-button link type="warning" @click="handleWithdraw(scope.row)">撤回</el-button>
</template>
<!-- 已校对(2)待接收(3)已接收(4)已检查(6)已作废(7)仅查看详情 -->
<el-button link type="primary" @click="handleViewDetail(scope.row)">详情</el-button>
</template>
</el-table-column>

View File

@@ -22,9 +22,9 @@
<el-tab-pane label="检查申请" name="examine">
<ExamineApplication ref="examineApplicationRef" />
</el-tab-pane>
<el-tab-pane label="汇总发药申请" name="summaryDrug">
<!-- <el-tab-pane label="汇总发药申请" name="summaryDrug">
<SummaryDrugApplication ref="summaryDrugApplicationRef" />
</el-tab-pane>
</el-tab-pane> -->
<el-tab-pane label="手术申请" name="surgery">
<SurgeryApplication ref="surgeryApplicationRef" />
</el-tab-pane>
@@ -47,7 +47,6 @@
import {computed, onBeforeMount, onMounted, provide, reactive, ref, watch,} from 'vue';
import Emr from './emr/index.vue';
import SummaryDrugApplication from './components/applicationShow/summaryDrugApplication.vue';
import inPatientBarDoctorFold from '@/components/patientBar/inPatientBarDoctorFold.vue';
import PatientList from '@/components/PatientList/patient-list.vue';
import {localPatientInfo, updateLocalPatientInfo} from './store/localPatient';
@@ -83,7 +82,6 @@ const currentPatientInfo = ref({});
const testApplicationRef = ref();
const examineApplicationRef = ref();
const surgeryApplicationRef = ref();
const summaryDrugApplicationRef = ref();
const bloodTtransfusionAapplicationRef = ref();
// 患者列表相关逻辑