From 1787e235922ca30045c6875269c5114defef52d7 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 23 十月 2026 15:48:31 +0800
Subject: [PATCH] 【丽水】指标统计,出院人次为0。同一科室有多条信息展示。
---
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 164 insertions(+), 5 deletions(-)
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
index e7c2dc4..f672d26 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1,6 +1,9 @@
package com.smartor.service.impl;
import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.ruoyi.common.core.domain.entity.SysDept;
@@ -11,9 +14,12 @@
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.system.service.ISysConfigService;
import com.smartor.domain.*;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
+import com.smartor.service.IPatChildArchiveService;
+import com.smartor.service.IPatMaternityArchiveService;
import com.smartor.service.IPatMedOuthospService;
import com.smartor.service.IServiceExternalService;
import lombok.extern.slf4j.Slf4j;
@@ -70,6 +76,12 @@
private Icd10Mapper icd10Mapper;
@Autowired
private IPatMedOuthospService patMedOuthospService;
+ @Autowired
+ private ISysConfigService configService;
+ @Autowired
+ private IPatMaternityArchiveService patMaternityArchiveService;
+ @Autowired
+ private IPatChildArchiveService patChildArchiveService;
@Autowired
private PatMedOuthospMapper patMedOuthospMapper;
@Autowired
@@ -647,6 +659,21 @@
}).collect(Collectors.toList());
patMedInhosp1.setLeaveicd10code(hospPatientDiagnoseInfos2.get(0).getIcd10());
patMedInhosp1.setLeavediagname(hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
+ //鍙湁璇婃柇鍚嶇О娌℃湁璇婃柇鐮佺殑鏁版嵁
+ if(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname())
+ && !StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code())){
+ Icd10 icd10 = new Icd10();
+ icd10.setIcdname(patMedInhosp1.getLeavediagname());
+ icd10.setDelFlag("0");
+ icd10.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+ //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+ icd10.setCampusid("1");
+ //閫氳繃icdCode鏌ヨ涓�涓嬶紝鏄惁瀛樺湪
+ List<Icd10> icd10s = icd10Mapper.exactQueryIcd10List(icd10);
+ if(CollectionUtils.isEmpty(icd10s)){
+ patMedInhosp1.setLeaveicd10code(icd10s.get(0).getIcdcode());
+ }
+ }
//patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
}
@@ -812,16 +839,31 @@
}).collect(Collectors.toList());
patMedInhosp1.setLeaveicd10code(hospPatientDiagnoseInfos2.get(0).getIcd10());
patMedInhosp1.setLeavediagname(hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
+ //鍙湁璇婃柇鍚嶇О娌℃湁璇婃柇鐮佺殑鏁版嵁
+ if(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname())
+ && !StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code())){
+ Icd10 icd10 = new Icd10();
+ icd10.setIcdname(patMedInhosp1.getLeavediagname());
+ icd10.setDelFlag("0");
+ icd10.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+ //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+ icd10.setCampusid("1");
+ //閫氳繃icdCode鏌ヨ涓�涓嬶紝鏄惁瀛樺湪
+ List<Icd10> icd10s = icd10Mapper.exactQueryIcd10List(icd10);
+ if(CollectionUtils.isEmpty(icd10s)){
+ patMedInhosp1.setLeaveicd10code(icd10s.get(0).getIcdcode());
+ }
+ }
//patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
}
String orgid = ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null;
- if(StringUtils.isNotEmpty(orgid) && orgid.equals("47246103233112211A1001")){
- //缂欎簯浜岄櫌 浣忛櫌璁板綍涓嶆洿鏂扮姸鎬�
- }else {
- patMedInhosp1.setInhospstate("1");
- }
+// if(StringUtils.isNotEmpty(orgid) && orgid.equals("47246103233112211A1001")){
+// //缂欎簯浜岄櫌 浣忛櫌璁板綍涓嶆洿鏂扮姸鎬�
+// }else {
+// patMedInhosp1.setInhospstate("1");
+// }
if (CollectionUtils.isNotEmpty(patMedInhospList)) {
patMedInhosp1.setUpdateTime(new Date());
@@ -1031,6 +1073,21 @@
}).collect(Collectors.toList());
patMedInhosp1.setLeaveicd10code(hospPatientDiagnoseInfos2.get(0).getIcd10());
patMedInhosp1.setLeavediagname(hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
+ //鍙湁璇婃柇鍚嶇О娌℃湁璇婃柇鐮佺殑鏁版嵁
+ if(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname())
+ && !StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code())){
+ Icd10 icd10 = new Icd10();
+ icd10.setIcdname(patMedInhosp1.getLeavediagname());
+ icd10.setDelFlag("0");
+ icd10.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+ //涓芥按鏃犻櫌鍖猴紝榛樿鍊兼槸 1
+ icd10.setCampusid("1");
+ //閫氳繃icdCode鏌ヨ涓�涓嬶紝鏄惁瀛樺湪
+ List<Icd10> icd10s = icd10Mapper.exactQueryIcd10List(icd10);
+ if(CollectionUtils.isEmpty(icd10s)){
+ patMedInhosp1.setLeaveicd10code(icd10s.get(0).getIcdcode());
+ }
+ }
//patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
patMedInhosp1.setDiagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
}
@@ -1266,6 +1323,8 @@
}
patMedOuthospService.dealPatMedOuthosp(patMedOuthosp, visitTimeNum);
}
+
+ genePatSpecificArchive(patMedOuthosp, patArchive);
if (i > 0) {
return true;
@@ -1797,6 +1856,7 @@
Map yeWuXX = (Map) dataMap.get("YeWuXX");
Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
Map<String, Object> JianChaSQ = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JianChaSQ") : null;
+ Map<String, Object> JianChaBG = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JianChaBG") : null;
List<HashMap<String, Object>> JianChaBWList = ObjectUtils.isNotEmpty(JianChaSQ) ? (List<HashMap<String, Object>>) JianChaSQ.get("JianChaBWList") : null;
List<HashMap<String, Object>> ZhenDuanList = ObjectUtils.isNotEmpty(JianChaSQ) ? (List<HashMap<String, Object>>) JianChaSQ.get("ZhenDuanList") : null;
List<HashMap<String, Object>> epai = ObjectUtils.isNotEmpty(BingRenXX) ? (List<HashMap<String, Object>>) BingRenXX.get("DiZhiXXList") : null;
@@ -1890,6 +1950,9 @@
e.printStackTrace();
}
}
+ }
+ if (ObjectUtils.isNotEmpty(JianChaBG)) {
+ patMedInspection.setAppliyid(ObjectUtils.isNotEmpty(JianChaBG.get("ShenQingDID")) ? JianChaBG.get("ShenQingDID").toString() : null);
}
if (CollectionUtils.isNotEmpty(JianChaBWList)) {
List<ExternalInspectionJC> externalInspectionJC = JianChaBWList.stream().map(map -> {
@@ -2278,4 +2341,100 @@
}
return 1;
}
+
+ //鏂板鎮h�呬笓绉戞。妗堝熀鏈俊鎭�
+ private void genePatSpecificArchive(PatMedOuthosp patMedOuthosp, PatArchive patArchive) {
+ String deptCategory = judgeDeptCategory(patMedOuthosp.getDeptcode(), patMedOuthosp.getOrgid());
+
+ boolean isGynecology = "1".equals(deptCategory); // 鏄惁濡囩
+ boolean isPediatrics = "2".equals(deptCategory); // 鏄惁鍎跨
+
+ if (isGynecology) {
+ // 璧板绉戞。妗堢敓鎴愰�昏緫
+ PatMaternityArchiveDetail patMaternityArchiveDetail
+ = DtoConversionUtils.sourceToTarget(patMedOuthosp, PatMaternityArchiveDetail.class);
+ patMaternityArchiveDetail.setSourceType("1");
+ patMaternityArchiveDetail.setPhone(patArchive.getTelcode());
+ patMaternityArchiveDetail.setPatid(patArchive.getId());
+ patMaternityArchiveDetail.setPatname(patArchive.getName());
+ patMaternityArchiveDetail.setBirthdate(patArchive.getBirthdate());
+ patMaternityArchiveDetail.setSex(patArchive.getSex());
+ patMaternityArchiveDetail.setAddress(patArchive.getPlaceOfResidence());
+ patMaternityArchiveDetail.setOuthospno(patMedOuthosp.getOuthospno());
+ patMaternityArchiveDetail.setSerialnum(patMedOuthosp.getSerialnum());
+ patMaternityArchiveDetail.setIcd10code(patMedOuthosp.getIcd10code());
+ patMaternityArchiveDetail.setDeptcode(patMedOuthosp.getDeptcode());
+ patMaternityArchiveDetail.setDeptname(patMedOuthosp.getDeptname());
+ patMaternityArchiveDetail.setDoctorName(patMedOuthosp.getDrname());
+ patMaternityArchiveDetail.setDoctorCode(patMedOuthosp.getDrcode());
+ patMaternityArchiveDetail.setManagementDoctorName(patMedOuthosp.getDrname());
+ patMaternityArchiveDetail.setManagementDoctorCode(patMedOuthosp.getDrcode());
+ patMaternityArchiveDetail.setOrgid(patMedOuthosp.getOrgid());
+ patMaternityArchiveDetail.setCampusid(patMedOuthosp.getCampusid());
+ patMaternityArchiveService.insertOrUpdateMaternityArchive(patMaternityArchiveDetail);
+ } else if (isPediatrics) {
+ // 璧板効绉戞。妗堢敓鎴愰�昏緫
+ PatChildArchiveDetail patChildArchiveDetail
+ = DtoConversionUtils.sourceToTarget(patMedOuthosp, PatChildArchiveDetail.class);
+ patChildArchiveDetail.setSourceType("1");
+ patChildArchiveDetail.setPhone(patArchive.getTelcode());
+ patChildArchiveDetail.setPatid(patArchive.getId());
+ patChildArchiveDetail.setPatname(patArchive.getName());
+ patChildArchiveDetail.setBirthdate(patArchive.getBirthdate());
+ patChildArchiveDetail.setSex(patArchive.getSex());
+// patChildArchiveDetail.setAddress(patArchive.getPlaceOfResidence());
+ patChildArchiveDetail.setOuthospno(patMedOuthosp.getOuthospno());
+ patChildArchiveDetail.setSerialnum(patMedOuthosp.getSerialnum());
+ patChildArchiveDetail.setIcd10code(patMedOuthosp.getIcd10code());
+ patChildArchiveDetail.setDeptcode(patMedOuthosp.getDeptcode());
+ patChildArchiveDetail.setDeptname(patMedOuthosp.getDeptname());
+ patChildArchiveDetail.setDoctorName(patMedOuthosp.getDrname());
+ patChildArchiveDetail.setDoctorCode(patMedOuthosp.getDrcode());
+ patChildArchiveDetail.setManagementDoctorName(patMedOuthosp.getDrname());
+ patChildArchiveDetail.setManagementDoctorCode(patMedOuthosp.getDrcode());
+ patChildArchiveDetail.setOrgid(patMedOuthosp.getOrgid());
+ patChildArchiveDetail.setCampusid(patMedOuthosp.getCampusid());
+ patChildArchiveService.insertOrUpdateChildArchive(patChildArchiveDetail);
+ } else {
+ // 鏈懡涓厤缃紝涓嶇敓鎴愭。妗�
+ }
+ }
+
+ /**
+ * 鍒ゆ柇褰撳墠绉戝灞炰簬濡囩杩樻槸鍎跨
+ *
+ * @param deptCode 褰撳墠绉戝/鐥呭尯 Code锛屽 "D004"
+ * @param orgid 鍖婚櫌鏈烘瀯ID
+ * @return deptCategory锛�1-濡囩 2-鍎跨锛沶ull-鏈厤缃垨鏈懡涓�
+ */
+ public String judgeDeptCategory(String deptCode, String orgid) {
+ if (StringUtils.isEmpty(deptCode)) {
+ return null;
+ }
+
+ // 浼樺厛鍙栨満鏋勭骇閰嶇疆锛屽彇涓嶅埌鍐嶅彇鍏ㄥ眬閰嶇疆
+ String configValue = configService.selectConfigByKey("sys.dept.category",
+ orgid);
+ if (StringUtils.isEmpty(configValue)) {
+ configValue = configService.selectConfigByKey("sys.dept.category");
+ }
+ if (StringUtils.isEmpty(configValue)) {
+ return null;
+ }
+
+ JSONArray configs = JSON.parseArray(configValue);
+ if (configs == null || configs.isEmpty()) {
+ return null;
+ }
+
+ for (int i = 0; i < configs.size(); i++) {
+ JSONObject cfg = configs.getJSONObject(i);
+ JSONArray deptCodes = cfg.getJSONArray("deptCodes");
+ if (deptCodes != null && deptCodes.contains(deptCode)) {
+ return cfg.getString("deptCategory");
+ }
+ }
+ return null;
+ }
+
}
--
Gitblit v1.9.3