From 1f66eb9a6353d638f5b9cb33b934bd4705e4efed Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 29 七月 2026 17:35:56 +0800
Subject: [PATCH] Merge branch 'master-任务组'
---
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java | 91 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 90 insertions(+), 1 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 2ada147..82c4094 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -9,6 +9,8 @@
import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.core.domain.entity.SysUserRole;
import com.ruoyi.common.utils.StringUtils;
+import com.smartor.common.enums.EmergencyLevelEnum;
+import com.smartor.common.enums.ImportFlagEnum;
import com.ruoyi.common.utils.http.HttpUtils;
import com.smartor.common.DistinctByProperty;
import com.smartor.domain.*;
@@ -795,7 +797,6 @@
patMedInhosp.setInhospno(dto.getHealthcareRecordNo());
patMedInhosp.setFuflag("1");
-
if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1"))
patMedInhosp.setFuflag("0");
if ("0".equals(cry)) {
@@ -840,6 +841,13 @@
setDischargeInfo(patMedInhosp, dto);
} else {
setAdmissionInfo(patMedInhosp, dto);
+ patMedInhosp.setEncounterSourceId(dto.getEncounterSourceId() == null ? "" : dto.getEncounterSourceId());
+ if (StringUtils.isNotEmpty(dto.getEncounterSourceId())) {
+ //鏍规嵁 encounterSourceId 鑾峰彇 importanceFlagCode emergencyLevelCode
+ Map<String, String> applyInfo = hospitalizedApply(dto.getEncounterSourceId(), dto.getOrgId());
+ patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode"));
+ patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode"));
+ }
}
patMedInhosp.setDrname(dto.getDoctorName());
@@ -884,6 +892,86 @@
patMedInhosp.setHospitaldistrictid("" + dto.getAreaId());
patMedInhosp.setHospitaldistrictcode("" + dto.getAreaId());
patMedInhosp.setHospitaldistrictname(dto.getAreaName());
+ }
+
+ /**
+ * 鏍规嵁鍏ラ櫌鐢宠鍗旾D鏌ヨ鍏ラ櫌鐢宠鍗曡鎯�
+ * 鍙彁鍙� importanceFlagCode锛坕mportanceFlagCodeList閫楀彿鎷兼帴锛夊拰 emergencyLevelCode 涓や釜鍊�
+ */
+ private Map<String, String> hospitalizedApply(String encounterSourceId, String orgid) {
+ Map<String, String> applyInfo = new HashMap<>();
+ Map<String, String> headers = buildRequestHeaders();
+ log.info("闄㈢敵璇峰崟ID鏌ヨ鍏ラ櫌鐢宠鍗曪細{},appKey:{}", sltdPubPath + "/sf/hospitalizedApply/query", APP_KEY);
+ //璁剧疆鍏ュ弬
+ Map<String, Object> requestParams = new HashMap<>();
+ requestParams.put("applyId", encounterSourceId);
+ requestParams.put("orgId", orgid);
+
+ String result = null;
+ if (StringUtils.isNotEmpty(encounterSourceId) && StringUtils.isNotEmpty(orgid))
+ result = HttpUtils.sendPostByHeader(sltdPubPath + "/sf/hospitalizedApply/query", new Gson().toJson(requestParams), headers);
+
+ if (StringUtils.isEmpty(result)) {
+ log.error("銆恏ospitalizedApply銆戞帴鍙h繑鍥炰负绌猴紝applyId={}", encounterSourceId);
+ return applyInfo;
+ }
+ try {
+ Gson gson = new Gson();
+ Type mapType = new TypeToken<Map<String, Object>>() {
+ }.getType();
+ Map<String, Object> responseMap = gson.fromJson(result, mapType);
+ Object dataObj = responseMap == null ? null : responseMap.get("data");
+ if (dataObj instanceof Map) {
+ Map<String, Object> data = (Map<String, Object>) dataObj;
+ //閲嶈鎬ф爣璁扮紪鐮侊紝鎺ュ彛杩斿洖鏄暟缁勶紝闇�瑕佽浆鎹负瀛楀吀鍚嶇О
+ Object importanceFlagCodeListObj = data.get("importanceFlagCodeList");
+ if (importanceFlagCodeListObj instanceof List) {
+ List<?> importanceFlagCodeList = (List<?>) importanceFlagCodeListObj;
+ // 杩囨护鎺� null 鍊�
+ List<String> nonNullList = importanceFlagCodeList.stream()
+ .filter(Objects::nonNull)
+ .map(Object::toString)
+ .filter(StringUtils::isNotEmpty)
+ .collect(Collectors.toList());
+
+ if (!nonNullList.isEmpty()) {
+ String importanceFlagLabel;
+ if (nonNullList.size() == 1) {
+ // 鍙湁涓�涓�硷紝鐩存帴閫氳繃鏋氫妇鑾峰彇鎻忚堪
+ importanceFlagLabel = ImportFlagEnum.getDescByCode(nonNullList.get(0));
+ } else {
+ // 澶氫釜鍊硷紝鐢ㄩ�楀彿鎷兼帴鏋氫妇鎻忚堪
+ StringBuilder labelBuilder = new StringBuilder();
+ for (String code : nonNullList) {
+ String label = ImportFlagEnum.getDescByCode(code);
+ if (StringUtils.isNotEmpty(label)) {
+ labelBuilder.append(label).append(",");
+ }
+ }
+ importanceFlagLabel = StringUtils.stripEnd(labelBuilder.toString(), ",");
+ }
+
+ if (StringUtils.isNotEmpty(importanceFlagLabel)) {
+ applyInfo.put("importanceFlagCode", importanceFlagLabel);
+ }
+ }
+ }
+ //绱ф�ョ▼搴︾紪鐮侊紝閫氳繃鏋氫妇杞崲鎻忚堪
+ Object emergencyLevelCodeObj = data.get("emergencyLevelCode");
+ if (emergencyLevelCodeObj != null) {
+ String emergencyLevelLabel = EmergencyLevelEnum.getDescByCode(emergencyLevelCodeObj.toString());
+ if (StringUtils.isNotEmpty(emergencyLevelLabel)) {
+ applyInfo.put("emergencyLevelCode", emergencyLevelLabel);
+ }
+ }
+ } else {
+ log.error("銆恏ospitalizedApply銆戞帴鍙h繑鍥瀌ata涓嶆槸瀵硅薄锛宎pplyId={}锛宺esult锛歿}", encounterSourceId, result);
+ }
+ } catch (Exception e) {
+ log.error("銆恏ospitalizedApply銆戣В鏋愬叆闄㈢敵璇峰崟璇︽儏澶辫触锛宎pplyId={}", encounterSourceId, e);
+ }
+ log.info("銆恏ospitalizedApply銆慳pplyId={}锛宨mportanceFlagCode={}锛宔mergencyLevelCode={}", encounterSourceId, applyInfo.get("importanceFlagCode"), applyInfo.get("emergencyLevelCode"));
+ return applyInfo;
}
/**
@@ -1076,6 +1164,7 @@
dto.setCostCategoryCode(getStringValue(dataItem, "costCategoryCode"));
dto.setCostNatureName(getStringValue(dataItem, "costNatureName"));
dto.setCostNatureCode(getStringValue(dataItem, "costNatureCode"));
+ dto.setEncounterSourceId(getStringValue(dataItem, "encounterSourceId"));
dto.setFurtherConsultationStatus(getIntegerValue(dataItem, "furtherConsultationStatus"));
Object mainDiagObj = dataItem.get("mainDischargeDiagnosis");
if (mainDiagObj instanceof Map) {
--
Gitblit v1.9.3