From a2a840d4969d680b30eeec184a7059fef64d0b84 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期五, 04 七月 2025 21:39:14 +0800 Subject: [PATCH] 代码提交 --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/appointment/AppointmentServiceImpl.java | 62 +++++++++++++++++++++++-------- 1 files changed, 46 insertions(+), 16 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 8060822..dc75d22 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,7 @@ 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.StringUtils; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DuplicateKeyException; @@ -32,6 +33,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.Optional; @@ -110,21 +112,7 @@ String action = "S0405"; ApplicationTemplate app = new ApplicationTemplate(); String statusName = AppointmentTypeEnum.getByType(appointment.getStatus()); - String message = app.getXML( - appointment.getApplyNo(), - appointment.getStatus(), - statusName, - null, - appointment.getPatDeptCode(), - appointment.getPatDeptDesc(), - appointment.getPatWardCode(), - appointment.getPatWardDesc(), - appointment.getPatBedNo(), - appointment.getEpisodeId(), - String.valueOf(appointment.getBookSrc()), - appointment.getPatId(), - appointment.getPatName() - ); + String message = app.getXML(appointment.getApplyNo(), appointment.getStatus(), statusName, null, appointment.getPatDeptCode(), appointment.getPatDeptDesc(), appointment.getPatWardCode(), appointment.getPatWardDesc(), appointment.getPatBedNo(), appointment.getEpisodeId(), String.valueOf(appointment.getBookSrc()), appointment.getPatId(), appointment.getPatName()); try { String response = webServiceClient.callJHFWTYRK(action, "", message); @@ -174,7 +162,7 @@ @Override public List<AppointmentDO> queryAndCreateAppointmentByPatId(String patCode) { // 浠庡尰闄㈠钩鍙版煡璇� - List<AppointmentDO> appointmentExtermalList = getAppointmentExtermal(patCode); + List<AppointmentDO> appointmentExtermalList = appointmentMapper.getCurrentCode(patCode); for (int appointmentIndex = 0; appointmentIndex < appointmentExtermalList.size(); appointmentIndex++) { AppointmentDO appointmentExtermal = appointmentExtermalList.get(appointmentIndex); @@ -213,6 +201,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); } @@ -358,6 +369,13 @@ Optional.ofNullable(encounter.get("location")).map(location -> (Map<String, Object>) location).map(location -> (Map<String, Object>) location.get("serviceDeliveryLocation")).map(serviceDeliveryLocation -> (Map<String, Object>) serviceDeliveryLocation.get("location")).map(location -> (Map<String, Object>) location.get("id")).map(id -> (Map<String, Object>) id.get("item")).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatBedNo); + 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("zdy")).map(zdy -> { + Object ISDN = zdy.get("ISDN"); + if (ISDN != null) { + return ISDN.toString(); + } + return null; + }).ifPresent(appointment::setTolerance); // 璁剧疆鎮h�呮潵婧愮被鍨� Optional.ofNullable(encounter.get("code")).map(code -> (Map<String, Object>) code).map(code -> (String) code.get("code")).map(Integer::parseInt).ifPresent(appointment::setPatSrc); @@ -366,6 +384,12 @@ Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("patientPerson")).ifPresent(patientPerson -> { // 璁剧疆鎮h�匢D Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatId); + + // 璁剧疆鎮h�呴棬璇婂彿 + Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(2)).map(item -> (String) item.get("extension")).ifPresent(appointment::setOutpatientNo); + + // 璁剧疆鎮h�呬綇闄㈠彿 + Optional.ofNullable(encounter.get("subject")).map(subject -> (Map<String, Object>) subject).map(subject -> (Map<String, Object>) subject.get("patient")).map(patient -> (Map<String, Object>) patient.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> items.size() > 1).map(items -> (Map<String, Object>) items.get(2)).map(item -> (String) item.get("extension")).ifPresent(appointment::setHospitalNo); // 璁剧疆鎮h�呭鍚� Optional.ofNullable(patientPerson.get("name")).map(name -> (Map<String, Object>) 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::setPatName); @@ -387,6 +411,9 @@ // 璁剧疆鎮h�呰韩浠借瘉鍙� Optional.ofNullable(patientPerson.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> !items.isEmpty()).map(items -> (Map<String, Object>) items.get(0)).map(item -> (String) item.get("extension")).ifPresent(appointment::setPatIdentityId); + + //鎮h�呭尰淇濆崱 + Optional.ofNullable(patientPerson.get("id")).map(id -> (Map<String, Object>) id).map(id -> (List<?>) id.get("item")).filter(items -> !items.isEmpty()).map(items -> (Map<String, Object>) items.get(1)).map(item -> (String) item.get("extension")).ifPresent(appointment::setMedicalCard); }); // 璁剧疆绉戝鍜岀梾鍖轰俊鎭� @@ -562,6 +589,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); -- Gitblit v1.9.3