401
门诊完诊审计日志错误:div_log 表中 pool_id 与 slot_id 存值与设计规范不符 400 门诊医生站点击【完诊】后,triage_queue_item 表 status 字段未按规范更新为 30 393 疾病报告管理-报告卡管理:状态为“审核失败”的报卡操作列缺失“审核”按钮 369 【住院管理】进入护理记录模块报错 361 三测单(体温单)住院第一日显示 1970-01-01,未正确获取入院日期
This commit is contained in:
@@ -57,6 +57,10 @@ import com.openhis.web.paymentmanage.mapper.PaymentMapper;
|
||||
import com.openhis.web.personalization.dto.ActivityDeviceDto;
|
||||
import com.openhis.triageandqueuemanage.domain.TriageQueueItem;
|
||||
import com.openhis.triageandqueuemanage.service.TriageQueueItemService;
|
||||
import com.openhis.appointmentmanage.domain.ScheduleSlot;
|
||||
import com.openhis.appointmentmanage.mapper.ScheduleSlotMapper;
|
||||
import com.openhis.clinical.domain.Order;
|
||||
import com.openhis.clinical.service.IOrderService;
|
||||
import com.openhis.workflow.domain.ServiceRequest;
|
||||
import com.openhis.workflow.service.IDeviceDispenseService;
|
||||
import com.openhis.workflow.service.IDeviceRequestService;
|
||||
@@ -70,6 +74,7 @@ import com.openhis.yb.service.IClinicSettleService;
|
||||
import com.openhis.yb.service.IInpatientSettleService;
|
||||
import com.openhis.yb.service.IRegService;
|
||||
import com.openhis.yb.service.YbManager;
|
||||
import com.openhis.web.triageandqueuemanage.appservice.impl.TriageQueueAppServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.util.StringUtil;
|
||||
@@ -186,6 +191,10 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
private YbManager ybManager;
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
@Autowired
|
||||
private IOrderService iOrderService;
|
||||
@Autowired
|
||||
private ScheduleSlotMapper scheduleSlotMapper;
|
||||
|
||||
/**
|
||||
* 【门诊预结算】
|
||||
@@ -1985,6 +1994,31 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
}
|
||||
|
||||
// 创建队列项
|
||||
// 尝试获取预约订单的 slot_id 和 pool_id
|
||||
Long queuePoolId = null;
|
||||
Long queueSlotId = null;
|
||||
try {
|
||||
// 查询患者当天的待签到预约订单(status = 1 或 2 表示已预约或已取号)
|
||||
Order order = iOrderService.getOne(
|
||||
new LambdaQueryWrapper<Order>()
|
||||
.eq(Order::getPatientId, encounter.getPatientId())
|
||||
.in(Order::getStatus, 1, 2) // 1=BOOKED 已预约, 2=CHECKED_IN 已取号
|
||||
.eq(Order::getDeleteFlag, "0")
|
||||
.orderByDesc(Order::getCreateTime)
|
||||
.last("LIMIT 1")
|
||||
);
|
||||
if (order != null && order.getSlotId() != null) {
|
||||
queueSlotId = order.getSlotId();
|
||||
// 通过 slot_id 获取 pool_id
|
||||
ScheduleSlot slot = scheduleSlotMapper.selectById(queueSlotId);
|
||||
if (slot != null) {
|
||||
queuePoolId = slot.getPoolId();
|
||||
}
|
||||
logger.info("挂号时找到预约订单,slotId={}, poolId={}, encounterId={}", queueSlotId, queuePoolId, encounterId);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.warn("查询预约订单失败,不影响挂号流程,encounterId={}", encounterId, e);
|
||||
}
|
||||
TriageQueueItem queueItem = new TriageQueueItem()
|
||||
.setTenantId(tenantId)
|
||||
.setQueueDate(queueDate)
|
||||
@@ -1997,7 +2031,9 @@ public class PaymentRecServiceImpl implements IPaymentRecService {
|
||||
.setPractitionerId(queuePractitionerId)
|
||||
.setPractitionerName(practitionerName)
|
||||
.setRoomNo(null)
|
||||
.setStatus("WAITING")
|
||||
.setPoolId(queuePoolId)
|
||||
.setSlotId(queueSlotId)
|
||||
.setStatus(TriageQueueAppServiceImpl.STATUS_WAITING) // 0=WAITING(等待中)
|
||||
.setQueueOrder(maxOrder + 1)
|
||||
.setDeleteFlag("0")
|
||||
.setCreateTime(LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS))
|
||||
|
||||
Reference in New Issue
Block a user