From 88ca2e40cdd8b209b7c13f97de9e98564e0e75ba Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 22 七月 2025 16:20:22 +0800 Subject: [PATCH] 代码提交 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 76 ++++++++++++++++++++++++++++++++++++- 1 files changed, 73 insertions(+), 3 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java index 4badfac..fb98ade 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java @@ -20,6 +20,8 @@ import cn.lihu.jh.module.ecg.service.queuesequence.QueueSequenceService; import cn.lihu.jh.module.ecg.webservice.WebServiceClient; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DuplicateKeyException; @@ -29,12 +31,11 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -199,6 +200,29 @@ @Override public PageResult<AppointmentDO> getAppointmentPage(AppointmentPageReqVO pageReqVO) { + //1. 鍏堟牴鎹畃atId鍘绘煡 + PageResult<AppointmentDO> result = appointmentMapper.selectPage(pageReqVO); + log.info("--------------PATID result鐨勫�间负锛歿}", result); + if (!result.getList().isEmpty()) { + return result; + } + + if (StringUtils.isNotEmpty(pageReqVO.getPatId())) { + // 2. 鐢� applyNo 鏌ヨ + pageReqVO.setApplyNo(pageReqVO.getPatId()); + pageReqVO.setPatId(null); + log.info("------------------ApplyNo pageReqVO鐨勫�间负锛歿}", pageReqVO); + result = appointmentMapper.selectPage(pageReqVO); + if (!result.getList().isEmpty()) { + return result; + } + + // 3. 鐢� episodeId 鏌ヨ + pageReqVO.setEpisodeId(pageReqVO.getApplyNo()); + pageReqVO.setPatId(null); + pageReqVO.setApplyNo(null); + log.info("-----------EpisodeId pageReqVO鐨勫�间负锛歿}", pageReqVO); + } return appointmentMapper.selectPage(pageReqVO); } @@ -351,6 +375,23 @@ } return null; }).ifPresent(appointment::setTolerance); + + // 鍖荤敓寮�鍗曟椂闂� + Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("author")).map(author -> (Map<String, Object>) author.get("time")).map(time -> (String) time.get("value")).map(str -> { + try { + return new SimpleDateFormat("yyyyMMddHHmmss").parse(str); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + }).filter(Objects::nonNull).ifPresent(appointment::setDoctorTime); + + //璁剧疆寮�鍗曞尰鐢熷鍚� + Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("author")).map(author -> (Map<String, Object>) author.get("assignedEntity")).map(assignedEntity -> (Map<String, Object>) assignedEntity.get("assignedPerson")).map(assignedPerson -> (Map<String, Object>) assignedPerson.get("name")).map(name -> (Map<String, Object>) name.get("item")).map(item -> (Map<String, Object>) item.get("part")).map(part -> (String) part.get("value")).ifPresent(appointment::setDoctor); + + //璁剧疆寮�鍗曞尰鐢熺紪鐮� + Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("author")).map(author -> (Map<String, Object>) author.get("assignedEntity")).map(assignedEntity -> (Map<String, Object>) assignedEntity.get("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setDoctorCode); + // 璁剧疆鎮h�呮潵婧愮被鍨� Optional.ofNullable(encounter.get("code")).map(code -> (Map<String, Object>) code).map(code -> (String) code.get("code")).map(Integer::parseInt).ifPresent(appointment::setPatSrc); @@ -564,6 +605,9 @@ String status = Optional.ofNullable(dataMap.get("controlActProcess")).map(controlActProcess -> (Map<String, Object>) controlActProcess).map(controlActProcess -> (Map<String, Object>) controlActProcess.get("subject")).map(subject -> (Map<String, Object>) subject.get("placerGroup")).map(placerGroup -> (Map<String, Object>) placerGroup.get("component2")).map(component2 -> (Map<String, Object>) component2.get("observationRequest")).map(observationRequest -> (Map<String, Object>) observationRequest.get("component1")).map(component1 -> (Map<String, Object>) component1.get("processStep")).map(processStep -> (Map<String, Object>) processStep.get("code")).map(code -> (String) code.get("code")).orElseThrow(() -> exception(APPOINTMENT_CREATE_FAIL)); existingAppointment.setStatus(status); + if ("3".equals(status)) { + existingAppointment.setRegisterDate(new Date()); + } // 灏咥ppointmentDO杞崲涓篈ppointmentSaveReqVO骞舵洿鏂� AppointmentSaveReqVO updateReqVO = BeanUtils.toBean(existingAppointment, AppointmentSaveReqVO.class); updateAppointment(updateReqVO); @@ -643,6 +687,32 @@ appointmentMapper.updateById(appointment); } + @Override + public void handleAppointmentStatusUpdate(Map<String, Object> dataMap) { + if (dataMap == null) { + throw exception(APPOINTMENT_STATUS_REGISTER_UPDATE_FAIL); + } + //鑾峰彇applyNo + Map<String, Object> controlActProcess = (Map<String, Object>) dataMap.get("controlActProcess"); + Map<String, Object> subject = (Map<String, Object>) controlActProcess.get("subject"); + Map<String, Object> placerGroup = (Map<String, Object>) subject.get("placerGroup"); + Map<String, Object> component2 = (Map<String, Object>) placerGroup.get("component2"); + Map<String, Object> observationRequest = (Map<String, Object>) component2.get("observationRequest"); + Map<String, Object> id = (Map<String, Object>) observationRequest.get("id"); + String applyNo = String.valueOf(id.get("extension")); + + //鑾峰彇status + Map<String, Object> component1 = (Map<String, Object>) observationRequest.get("component1"); + Map<String, Object> processStep = (Map<String, Object>) component1.get("processStep"); + Map<String, Object> codeMap = (Map<String, Object>) processStep.get("code"); + String status = String.valueOf(codeMap.get("code")); + + //鐘舵�佹洿鏂� + Integer i = appointmentMapper.updateStatusByApplyNo(applyNo, status, null); + log.info("鐢宠鍗曠櫥璁癮pplyNo:{},鐘舵�乻tatus:{},鏇存柊缁撴灉锛歿}", applyNo, status, i); + + } + public AppointmentDO getByApplyNo(String applyNo) { return appointmentMapper.getByApplyNo(applyNo); } -- Gitblit v1.9.3