From 138f31f7ed04842abca552dc8eaa912b3191e059 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 28 九月 2026 10:56:49 +0800
Subject: [PATCH] 处理患者再入院状态代码提交
---
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java | 86 +++++++++++++++++++++++++++++++++---------
1 files changed, 67 insertions(+), 19 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
index 1ad6fc5..d2d357c 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.core.domain.entity.SysUserRole;
+import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.common.enums.EmergencyLevelEnum;
import com.smartor.common.enums.ImportFlagEnum;
@@ -85,6 +86,12 @@
@Value("${spring.profiles.active}")
private String active;
+ @Autowired
+ private ServiceSubtaskServiceImpl serviceSubtaskServiceImpl;
+ @Autowired
+ private ServiceSubtaskMapper serviceSubtaskMapper;
+ @Autowired
+ private PatMedInhospMapper patMedInhospMapper;
@Override
public List<ServiceSLTDInhospResDTO> queryHealthcareRecordList(ServiceSLTDInhospReqVO reqVO) {
@@ -690,7 +697,7 @@
queryInhosp.setSerialnum(StringUtils.trim(patMedInhosp.getSerialnum()));
queryInhosp.setOrgid(StringUtils.trim(dto.getOrgId()));
queryInhosp.setInhospstate(cry);
- log.info("----------------杩欓噷鐨勫叆鍙備负锛歿},{}", queryInhosp.getPatno(), queryInhosp.getSerialnum());
+// log.info("----------------杩欓噷鐨勫叆鍙備负锛歿},{}", queryInhosp.getPatno(), queryInhosp.getSerialnum());
List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhosp(queryInhosp);
if (cry.equals("0")) {
@@ -709,6 +716,44 @@
queryInhosp.setInhospstate("1");
patMedInhospList = patMedInhospService.selectPatMedInhosp(queryInhosp);
if (CollectionUtils.isNotEmpty(patMedInhospList)) {
+ //濡傛灉涓嶄负绌猴紝鍒欏皢鍏ラ櫌鏃堕棿杩涜鏇存柊
+ PatMedInhosp pmOut = patMedInhospList.get(0);
+ //鏈鍏ラ櫌鏁版嵁锛堣繖閲� existingInhosps 蹇呬负绌猴紝鍙� existingInhosps.get(0) 浼氫笅鏍囪秺鐣岋級
+ PatMedInhosp pmIn = patMedInhosp;
+ pmOut.setStarttime(pmIn.getStarttime());
+ pmOut.setUpdateTime(new Date());
+ patMedInhospService.updatePatMedInhosp(pmOut);
+ //鐪佺珛鍚屽痉闇�瑕佸皢寮�濮嬫棩鏈熶笌鍏ラ櫌鏃ユ湡鐩哥瓑鐨勪换鍔★紝鏀规垚涓嶆墽琛�
+ try {
+ if ("sltd".equals(active) && DateUtils.isSameDay(pmOut.getStarttime(), pmIn.getEndtime())) {
+ ServiceSubtask serviceSubtask = new ServiceSubtask();
+ serviceSubtask.setInhospid(pmOut.getInhospid());
+ serviceSubtask.setSendstate(4L);
+ serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
+ }
+ //閫氳繃鍏ラ櫌鏃堕棿锛屽拰鎮h�呯殑缂栧彿鍘绘煡涓�涓嬪嚭闄㈡椂闂达紝鏄惁瀛樺湪锛屽鏋滃瓨鍦紝鍒欒鎮h�呮槸鍐嶅叆闄㈢殑锛岄渶瑕佹敼鎴愪笉鎵ц
+ //鍑洪櫌鏃堕棿鍙瘮杈冨埌澶╋紝涓嶆瘮杈冩椂鍒嗙
+ if (pmIn.getStarttime() != null) {
+ Date dayStart = DateUtils.truncate(pmIn.getStarttime(), Calendar.DAY_OF_MONTH);
+ Date dayEnd = DateUtils.addDays(dayStart, 1);
+ List<PatMedInhosp> outInhosps = patMedInhospMapper.selectOutInhospByPatnoAndOutDate(
+ StringUtils.trim(pmIn.getPatno()), dayStart, dayEnd);
+ if (CollectionUtils.isNotEmpty(outInhosps)) {
+ //瀛樺湪鍑洪櫌璁板綍锛岃鏄庤鎮h�呮槸鍐嶅叆闄紝鎶婁笂涓�娆″嚭闄骇鐢熺殑瀛愪换鍔℃敼鎴愪笉鎵ц
+ ServiceSubtask outSubtask = new ServiceSubtask();
+ outSubtask.setInhospid(outInhosps.get(0).getInhospid());
+ outSubtask.setSendstate(4L);
+ outSubtask.setRemark("鎮h�呭啀鍏ラ櫌");
+ outSubtask.setUpdateTime(new Date());
+ serviceSubtaskMapper.updateServiceSubtaskByCondition(outSubtask);
+ log.info("鎮h�呭啀鍏ラ櫌锛屽皢涓婃鍑洪櫌璁板綍鐨勫瓙浠诲姟鏀逛负涓嶆墽琛岋細patno={}, 鍑洪櫌inhospid={}, 鍑洪櫌鏃堕棿={}, 鏈鍏ラ櫌鏃堕棿={}",
+ pmIn.getPatno(), outInhosps.get(0).getInhospid(), outInhosps.get(0).getEndtime(), pmIn.getStarttime());
+ }
+ }
+
+ } catch (Exception e) {
+ log.error("灏嗗嚭闄㈡椂闂寸瓑浜庡叆闄㈡椂闂寸殑inhospid鐨勪换鍔℃洿鏂板け璐ヤ簡, inhospid={}", pmOut.getInhospid(), e);
+ }
return;
}
}
@@ -733,7 +778,7 @@
} else {
// 涓嶅瓨鍦ㄥ嚭闄㈣褰曪紝鍏堟煡棰勫叆闄紙state=3锛夛紝鍐嶆煡鍏ラ櫌锛坰tate=0锛�
queryInhosp.setInhospstate("3");
- log.info("-----鏌ヨ棰勫叆闄㈣褰曪紝鍏ュ弬涓猴細{}", queryInhosp);
+// log.info("-----鏌ヨ棰勫叆闄㈣褰曪紝鍏ュ弬涓猴細{}", queryInhosp);
List<PatMedInhosp> patMedInhospList = patMedInhospService.selectPatMedInhosp(queryInhosp);
log.info("----棰勫叆闄㈡煡璇㈢粨鏋滐細{}", CollectionUtils.isEmpty(patMedInhospList) ? "绌�" : patMedInhospList.get(0).getSerialnum());
if (CollectionUtils.isNotEmpty(patMedInhospList)) {
@@ -786,13 +831,14 @@
if (CollectionUtils.isEmpty(patMedInhospList3)) {
try {
//鑾峰彇涓�涓嬪叆闄㈢敵璇峰崟
- Map<String, String> headers = buildRequestHeaders();
- Map<String, Object> requestParams = new HashMap<>();
- requestParams.put("orgId", "20001001");
- requestParams.put("20001001", patArchive.getPatidHis());
- String result = HttpUtils.sendPostByHeader(sltdPubPath + "/hospitalizedApply/query", new Gson().toJson(requestParams), headers);
-
-
+ //鏍规嵁 encounterSourceId 鑾峰彇 importanceFlagCode emergencyLevelCode
+ if (active.equals("sltd")) {
+ Map<String, String> applyInfo = hospitalizedApply(dto.getEncounterSourceId(), dto.getOrgId());
+ if (ObjectUtils.isNotEmpty(applyInfo)) {
+ patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode"));
+ patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode"));
+ }
+ }
patMedInhospService.insertPatMedInhosp(patMedInhosp);
log.debug("鎴愬姛鎻掑叆棰勫叆闄㈣褰曪細serialnum={}", patMedInhosp.getSerialnum());
} catch (Exception e) {
@@ -842,7 +888,7 @@
if ("1".equals(cry)) {
patMedInhosp.setInhospstate("1");
ServiceSLTDDiagnosisResDTO mainDischargeDiagnosis = dto.getMainDischargeDiagnosis();
- log.info("-----------mainDischargeDiagnosis鐨勫�兼湁浜嗗悧?{}", mainDischargeDiagnosis);
+// log.info("-----------mainDischargeDiagnosis鐨勫�兼湁浜嗗悧?{}", mainDischargeDiagnosis);
if (!Objects.isNull(mainDischargeDiagnosis)) {
if (mainDischargeDiagnosis.getIsMainDiagnosis() == 1) {
patMedInhosp.setLeavediagname(StringUtils.defaultString(mainDischargeDiagnosis.getDiagnosisDictName(), ""));
@@ -871,11 +917,13 @@
} else {
setAdmissionInfo(patMedInhosp, dto);
patMedInhosp.setEncounterSourceId(dto.getEncounterSourceId() == null ? "" : dto.getEncounterSourceId());
- if (StringUtils.isNotEmpty(dto.getEncounterSourceId())) {
+ if (StringUtils.isNotEmpty(dto.getEncounterSourceId()) && active.equals("sltd")) {
//鏍规嵁 encounterSourceId 鑾峰彇 importanceFlagCode emergencyLevelCode
Map<String, String> applyInfo = hospitalizedApply(dto.getEncounterSourceId(), dto.getOrgId());
- patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode"));
- patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode"));
+ if (!Objects.isNull(applyInfo)) {
+ patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode"));
+ patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode"));
+ }
}
}
@@ -897,13 +945,13 @@
}
}
- if (active.equals("nhfy") || active.equals("sltd")) {
+ //鐩墠鍙湁鐪佺珛鍚屽痉
+ if (active.equals("sltd")) {
Map<String, String> drugInfoMap = queryMedicalOrders(dto);
if (drugInfoMap != null && !drugInfoMap.isEmpty()) {
patMedInhosp.setMedicalName(drugInfoMap.get("drugItemNames"));
patMedInhosp.setMedicalCode(drugInfoMap.get("drugItemIds"));
patMedInhosp.setMedicalCompany(drugInfoMap.get("drugManufacturerNames"));
-
log.info("鑾峰彇鑽搧淇℃伅鎴愬姛锛氬悕绉�={}, 缂栫爜={}, 鍘傚={}", drugInfoMap.get("drugItemNames"), drugInfoMap.get("drugItemIds"), drugInfoMap.get("drugManufacturerNames"));
}
}
@@ -958,7 +1006,7 @@
String code = BigDecimal.valueOf(((Number) codeObj).longValue()).toPlainString();
if (!"200".equals(code)) {
log.error("銆恞ueryMedicalOrders銆戞帴鍙h繑鍥炲け璐ワ紝code={}, message={}", code, responseMap.get("message"));
- return result;
+ return null;
}
}
@@ -969,7 +1017,7 @@
// 閬嶅巻鍖诲槺鍒楄〃锛屾彁鍙栬嵂鍝佷俊鎭�
Set<String> processedItemIds = new HashSet<>(); // 鐢ㄤ簬鍘婚噸锛堝彧鏍规嵁 itemId 鍘婚噸锛�
-
+
for (Object item : dataList) {
if (item instanceof Map) {
Map<String, Object> itemMap = (Map<String, Object>) item;
@@ -995,7 +1043,7 @@
// 鑷冲皯鏈変竴涓湁鍊硷紝澶勭悊姣忎釜瀛楁
String itemName = (itemNameObj != null && StringUtils.isNotEmpty(itemNameObj.toString())) ? itemNameObj.toString() : "";
-
+
// itemId 鐗规畩澶勭悊锛氶伩鍏嶇瀛﹁鏁版硶锛圙son 鍙兘灏嗘暟瀛楄В鏋愪负 Double锛�
String itemId = "";
if (itemIdObj != null && StringUtils.isNotEmpty(itemIdObj.toString())) {
@@ -1006,7 +1054,7 @@
itemId = itemIdObj.toString();
}
}
-
+
String manufacturerName = (manufacturerNameObj != null && StringUtils.isNotEmpty(manufacturerNameObj.toString())) ? manufacturerNameObj.toString() : "";
// 鍙牴鎹� itemId 鍘婚噸锛堝悓涓�缂栫爜鐨勮嵂鍝佸彧淇濈暀涓�涓級
--
Gitblit v1.9.3