From fe546224146c917c4a9730d3a46c214cd2ceda20 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 30 七月 2026 15:52:36 +0800
Subject: [PATCH] 【市一】AI
---
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 154 ++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 121 insertions(+), 33 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
index abd8d24..46a1457 100644
--- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -11,6 +11,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.smartor.common.ScheduleSubtaskBuilder;
import com.smartor.domain.*;
+import com.smartor.domain.DTO.PatMedInhospDTO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
import com.smartor.service.IPatMedInhospService;
@@ -98,14 +99,18 @@
*/
@Override
public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
- if (patMedInhosp.getCry() == 0) {
+ if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 0) {
patMedInhosp.setDeptcodeList(patMedInhosp.getLeaveldeptcodes());
patMedInhosp.setHospitaldistrictcodeList(patMedInhosp.getLeavehospitaldistrictcodes());
patMedInhosp.setLeaveldeptcodes(null);
patMedInhosp.setLeavehospitaldistrictcodes(null);
patMedInhosp.setInhospstate("0");
- } else if (patMedInhosp.getCry() == 1) {
+ } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 1) {
patMedInhosp.setInhospstate("1");
+ } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 2) {
+ patMedInhosp.setInhospstate("2");
+ } else if (patMedInhosp.getCry() != null && patMedInhosp.getCry() == 3) {
+ patMedInhosp.setInhospstate("3");
}
List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
@@ -114,6 +119,24 @@
patMedInhosp1.setTagname(tagname);
}
return patMedInhospList;
+ }
+
+ @Override
+ public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp) {
+ List<PatMedInhosp> patMedInhosps = selectPatMedInhospList(patMedInhosp);
+ if (!org.springframework.util.CollectionUtils.isEmpty(patMedInhosps)) {
+ return null;
+ }
+ List<PatMedInhospDTO> patMedInhospDTOList = DtoConversionUtils.sourceToTarget(patMedInhosps, PatMedInhospDTO.class);
+ for (PatMedInhospDTO pmd : patMedInhospDTOList) {
+ ServiceSubtaskEntity serviceSubtask = new ServiceSubtaskEntity();
+ serviceSubtask.setServiceType("4");
+ serviceSubtask.setInhospid(pmd.getInhospid());
+ List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtask);
+ if (CollectionUtils.isNotEmpty(serviceSubtasks)) pmd.setFinishFlag("1");
+ }
+
+ return patMedInhospDTOList;
}
@Override
@@ -349,7 +372,7 @@
serviceTaskVo.setAppltype("5");
List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(serviceTaskVo);
- if (CollectionUtils.isEmpty(serviceTasks)) {
+ if (CollectionUtils.isNotEmpty(serviceTasks)) {
for (ServiceTask serviceTask : serviceTasks) {
if(!ObjectUtils.isEmpty(serviceTask.getTaskid())){
ServiceTaskSchedule serviceTaskSchedule = new ServiceTaskSchedule();
@@ -364,10 +387,13 @@
String opLevelCodes = serviceTaskSchedule.getOplevelCodes();
List<String> icd10CodeList = new ArrayList<>();
- List<String> opLevelList = new ArrayList<>();
+ List<String> opLevelCodeList = new ArrayList<>();
List<String> deptCodeList = new ArrayList<>();
List<String> wardCodeList = new ArrayList<>();
+ /**
+ * 闅忚绫诲瀷(1-绉戝锛�2-鐥呭尯锛�3-鐤剧梾 4-鍏ラ櫌绉戝 5-鍏ラ櫌鐥呭尯 6-鎵嬫湳)
+ */
Integer type = 1;
if (StringUtils.isNotEmpty(deptCodes)) {
type = 1;
@@ -382,38 +408,98 @@
icd10CodeList = Arrays.asList(icd10Codes.split(","));
}
if (StringUtils.isNotEmpty(opLevelCodes)) {
- opLevelList = Arrays.asList(opLevelCodes.split(","));
+ type = 6;
+ opLevelCodeList = Arrays.asList(opLevelCodes.split(","));
}
- PatMedInhosp patMedInhospVo = new PatMedInhosp();
- patMedInhospVo.setDeptcodeList(deptCodeList);
- patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
- patMedInhospVo.setIcd10codeList(icd10CodeList);
- List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
- log.info("dealOutHospInfoBySchedule 浠诲姟缁勯殢璁�, taskid = {}, 鎵弿鎮h�呬汉鏁� {}", serviceTask.getTaskid(), patList.size());
+ //闈炴墜鏈鐞嗘柟寮�
+ if(type != 6){
+ PatMedInhosp patMedInhospVo = new PatMedInhosp();
+ patMedInhospVo.setScheduleCheckFlag("0");
+ patMedInhospVo.setInhospstate("1");
+ patMedInhospVo.setFuflag("1");
+// patMedInhospVo.setDeptcodeList(deptCodeList);
+ patMedInhospVo.setLeaveldeptcodes(deptCodeList);
+ patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
+ patMedInhospVo.setIcd10codeList(icd10CodeList);
+ List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
+ log.info("dealOutHospInfoBySchedule 浠诲姟缁勯殢璁�, taskid = {}, 鎵弿鎮h�呬汉鏁� {}", serviceTask.getTaskid(), patList.size());
- for(PatMedInhosp patMedInhosp : patList){
- ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
- scheduleDetailVo.setTaskid(serviceTask.getTaskid());
- scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
- List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
+ for(PatMedInhosp patMedInhosp : patList){
+ ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
+ scheduleDetailVo.setTaskid(serviceTask.getTaskid());
+ scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
+ List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
- List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = new ArrayList<>();
- PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
- if (Objects.isNull(patArchive)) {
- break;
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
+ if (Objects.isNull(patArchive)) {
+ continue;
+ }
+ //灏佽serviceSubtask
+
+ ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type);
+ List<Map<String, Object>> preachformList = new ArrayList<>();
+ if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
+ try {
+ ObjectMapper objectMapper = new ObjectMapper();
+ preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+ }catch (Exception e){
+ log.error("浠诲姟缁刾reachformDesc瑙f瀽澶辫触,taskid={},inhospid={}", serviceTask.getTaskid(), patMedInhosp.getInhospid());
+ }
+ }
+ scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
+ //缃杞撼鍏ユ爣璁帮紝閬垮厤涓嬫鎵弿閲嶅鐢熸垚锛堝悗缁疆娆$敱 rollTaskGroupCycle 璐熻矗锛�
+ PatMedInhosp flagUpd = new PatMedInhosp();
+ flagUpd.setInhospid(patMedInhosp.getInhospid());
+ flagUpd.setScheduleCheckFlag("1");
+ patMedInhospMapper.updatePatMedInhosp(flagUpd);
}
- //灏佽serviceSubtask
- ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type);
- List<Map<String, Object>> preachformList = new ArrayList<>();
- if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
- try {
- ObjectMapper objectMapper = new ObjectMapper();
- preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
- }catch (Exception e){
- break;
+ }else {
+ //浠诲姟缁� - 鎵嬫湳闅忚
+ if(CollectionUtils.isNotEmpty(opLevelCodeList)){
+ PatMedOperationItem pmoi = new PatMedOperationItem();
+ //鑾峰彇闇�瑕佸嚭闄㈢柧鐥呴殢璁匡紝鏈鐞嗙殑鏁版嵁
+ pmoi.setOpercheckFlag("0");
+ pmoi.setMainFlag("1");
+ pmoi.setDeptCodes(deptCodeList);
+ pmoi.setWardCodes(wardCodeList);
+ pmoi.setOpLevelCodes(opLevelCodeList);
+ List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemList(pmoi);
+ for(PatMedOperationItem patMedOperationItem : patMedOperationItems){
+ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
+ if (Objects.isNull(patArchive)) {
+ continue;
+ }
+ PatMedInhosp patMedInhospVo = new PatMedInhosp();
+ patMedInhospVo.setPatid((patMedOperationItem.getPatid()));
+ patMedInhospVo.setScheduleCheckFlag("0");
+ patMedInhospVo.setInhospstate("1");
+ patMedInhospVo.setFuflag("1");
+ List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
+ if(CollectionUtils.isNotEmpty(patMedInhospList)){
+ ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
+ scheduleDetailVo.setTaskid(serviceTask.getTaskid());
+ scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId());
+ List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo);
+ //灏佽serviceSubtask
+ ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config);
+ List<Map<String, Object>> preachformList = new ArrayList<>();
+ if(StringUtils.isNotEmpty(serviceTask.getPreachformDesc())){
+ try {
+ ObjectMapper objectMapper = new ObjectMapper();
+ preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class);
+ }catch (Exception e){
+ log.error("浠诲姟缁�(鎵嬫湳)preachformDesc瑙f瀽澶辫触,taskid={}", serviceTask.getTaskid());
+ }
+ }
+ scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
+ //缃杞撼鍏ユ爣璁帮紝閬垮厤閲嶅鐢熸垚
+ PatMedInhosp flagUpd = new PatMedInhosp();
+ flagUpd.setInhospid(patMedInhospList.get(0).getInhospid());
+ flagUpd.setScheduleCheckFlag("1");
+ patMedInhospMapper.updatePatMedInhosp(flagUpd);
+ }
}
}
- scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList);
}
}
}
@@ -765,10 +851,10 @@
if (ObjectUtils.isEmpty(serviceSubtask)) {
return;
}
- if(StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())){
+ if (StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())) {
serviceSubtask.setVisitDeptCode(patMedOperationItem.getDeptcode());
serviceSubtask.setVisitDeptName(patMedOperationItem.getDeptname());
- }else {
+ } else {
serviceSubtask.setVisitDeptCode(patMedOperationItem.getHospitaldistrictcode());
serviceSubtask.setVisitDeptName(patMedOperationItem.getHospitaldistrictname());
}
@@ -889,7 +975,8 @@
//灏佽serviceSubtask
- private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
+ @Override
+ public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type) {
//澧炲姞serviceTask鍒ょ┖
// if(Objects.isNull(serviceTask)){
// return null;
@@ -927,6 +1014,7 @@
serviceSubtask.setSex(patArchive.getSex());
serviceSubtask.setAge(patArchive.getAge());
serviceSubtask.setSendstate(2L);
+ serviceSubtask.setCampusid(patMedInhosp1.getCampusid());
serviceSubtask.setManagementDoctor(patMedInhosp1.getManagementDoctor());
serviceSubtask.setManagementDoctorCode(patMedInhosp1.getManagementDoctorCode());
serviceSubtask.setStarttime(patMedInhosp1.getStarttime());
--
Gitblit v1.9.3