From 25a0ba7b2706db3c5ee546da3e0e7c909777b890 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 29 七月 2026 15:37:32 +0800
Subject: [PATCH] 1,患者过滤状态修改(之前只支持发送之前的过滤,现在支持发送之后的过滤,如果任务发送后,外链不能再打开) 2.在出入院表新增入院申请单字段 3.采集入院数据时,同时要采集importanceFlagCode emergencyLevelCode 4.外链的发送,也要查询子任务状态,如果是不执行,也不能再发送
---
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