From b0b1e87fa3316d9db7b65d0330ad32a455479228 Mon Sep 17 00:00:00 2001
From: zhs <zhs18203887318@163.com>
Date: 星期四, 24 四月 2025 17:07:22 +0800
Subject: [PATCH] 04-22 zhs 预出院

---
 smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java |  161 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 154 insertions(+), 7 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 b7f2ec5..18adc7d 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -238,6 +238,7 @@
         List<ExternalInHospPatientDiagnoseInfo> hospPatientDiagnoseInfos2 = hospPatientDiagnoseInfos.stream().map(map -> {
             ExternalInHospPatientDiagnoseInfo info = new ExternalInHospPatientDiagnoseInfo();
             info.setZhenDuanID((String) map.get("ZhenDuanID"));
+            info.setIcd10((String) map.get("Icd10"));
             info.setZhenDuanMC((String) map.get("ZhenDuanMC"));
             return info;
         }).collect(Collectors.toList());
@@ -257,8 +258,6 @@
     public Boolean addInDeptInfo(Map dataMap) {
         log.error("ServiceExternalServiceImpl---addInDeptInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
         Map yeWuXX = (Map) dataMap.get("YeWuXX");
-
-//        List<HashMap<String, Object>> hospPatientDiagnoseInfos = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) yeWuXX.get("ZhenDuanList") : null;
         Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
         Map<String, Object> RuKeXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("RuKeXX") : null;
 
@@ -442,11 +441,13 @@
                 ExternalInHospPatientDiagnoseInfo info = new ExternalInHospPatientDiagnoseInfo();
                 info.setZhenDuanID((String) map.get("ZhenDuanID"));
                 info.setZhenDuanMC((String) map.get("ZhenDuanMC"));
+                info.setIcd10((String) map.get("Icd10"));
                 return info;
             }).collect(Collectors.toList());
-            patMedInhosp1.setLeaveicd10code(StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code()) ? patMedInhosp1.getLeaveicd10code() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanID() : hospPatientDiagnoseInfos2.get(0).getZhenDuanID());
-            patMedInhosp1.setLeavediagname(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() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
+            patMedInhosp1.setLeaveicd10code(hospPatientDiagnoseInfos2.get(0).getIcd10());
+            patMedInhosp1.setLeavediagname(hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
+            //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());
         }
 
         patMedInhosp1.setInhospstate("1");
@@ -500,6 +501,149 @@
             }
             patMedInhosp1.setUpdateTime(new Date());
             int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+            if (i != 1) return false;
+        }
+        return true;
+    }
+
+    @Override
+    public Boolean addPreOutHospInfo(Map dataMap) {
+        log.error("ServiceExternalServiceImpl---addPreOutHospInfo鐨勬柊澧炵殑鍊间负锛歿}", dataMap);
+        Map yeWuXX = (Map) dataMap.get("YeWuXX");
+        Map<String, Object> BingRenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("BingRenXX") : null;
+        Map<String, Object> ChuYuanJL = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("ChuYuanJL") : null;
+        List<HashMap<String, Object>> epai = ObjectUtils.isNotEmpty(BingRenXX) ? (List<HashMap<String, Object>>) BingRenXX.get("DiZhiXXList") : null;
+        List<HashMap<String, Object>> epli = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) yeWuXX.get("LianXiRList") : null;
+        Map<String, Object> SuiFangJH = ObjectUtils.isNotEmpty(ChuYuanJL) ? (Map<String, Object>) ChuYuanJL.get("SuiFangJH") : null;
+
+        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
+        ExternalInHospPatientAddrInfo externalInHospPatientAddrInfo = null;
+        ExternalInHospPatientLiaisonInfo externalInHospPatientLiaisonInfo = null;
+        List<ExternalInHospPatientAddrInfo> epai2 = null;
+        if (CollectionUtils.isNotEmpty(epai)) {
+            epai2 = epai.stream().map(map -> {
+                ExternalInHospPatientAddrInfo info = new ExternalInHospPatientAddrInfo();
+                info.setDiZhiLX((String) map.get("DiZhiLX")); // 鍋囪瀛楁绫诲瀷鏄� Integer
+                info.setDiZhiXX((String) map.get("DiZhiXX"));
+                info.setShengFenDM((String) map.get("ShengFenDM"));
+                info.setShengFenMC((String) map.get("ShengFenMC"));
+                info.setShiDiQDM((String) map.get("ShiDiQDM"));
+                info.setShiDiQMC((String) map.get("ShiDiQMC"));
+                info.setXianQuDM((String) map.get("XianQuDM"));
+                info.setXianQuMC((String) map.get("XianQuMC"));
+                info.setXiangZhenDM((String) map.get("XiangZhenDM"));
+                info.setXiangZhenMC((String) map.get("XiangZhenMC"));
+                info.setCunJiDM((String) map.get("CunJiDM"));
+                info.setQiTaXX((String) map.get("QiTaXX"));
+                info.setYouBian((String) map.get("YouBian"));
+                return info;
+            }).collect(Collectors.toList());
+        }
+        List<ExternalInHospPatientLiaisonInfo> epli2 = null;
+        if (CollectionUtils.isNotEmpty(epli)) {
+            epli2 = epli.stream().map(map -> {
+                ExternalInHospPatientLiaisonInfo info = new ExternalInHospPatientLiaisonInfo();
+                info.setLianXiRXM((String) map.get("LianXiRXM"));
+                info.setLianXiRDH((String) map.get("LianXiRDH"));
+                info.setGuanXiDM((String) map.get("GuanXiDM"));
+                info.setGuanXiMC((String) map.get("GuanXiMC"));
+                return info;
+            }).collect(Collectors.toList());
+        }
+        if (CollectionUtils.isNotEmpty(epai)) externalInHospPatientAddrInfo = epai2.get(0);
+        if (CollectionUtils.isNotEmpty(epli)) externalInHospPatientLiaisonInfo = epli2.get(0);
+        //鏂板鎮h�呭熀鏈俊鎭柊澧炴垨淇敼
+        PatArchive patArchive = addPatArchive(externalInHospPatientInfo, externalInHospPatientAddrInfo, externalInHospPatientLiaisonInfo);
+
+        PatMedInhosp patMedInhosp = new PatMedInhosp();
+        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
+        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
+        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
+        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
+            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
+            patMedInhosp1.setTagname(tagname);
+        }
+        Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null;
+        PatMedInhosp patMedInhosp1 = new PatMedInhosp();
+        if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0);
+        patMedInhosp1.setSchemestatus(2L);
+        try {
+            patMedInhosp1.setEndtime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(JiuZhenXX.get("YuChuYSJ").toString()));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        if (ObjectUtils.isNotEmpty(JiuZhenXX)) {
+            patMedInhosp1.setOperator(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRXM")) ? JiuZhenXX.get("CaoZuoRXM").toString() : null);
+            patMedInhosp1.setOperatorId(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRID")) ? JiuZhenXX.get("CaoZuoRID").toString() : null);
+            patMedInhosp1.setDrname(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZhuZhiYSXM")) ? JiuZhenXX.get("ZhuZhiYSXM").toString() : null);
+            patMedInhosp1.setDrcode(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZhuZhiYSID")) ? JiuZhenXX.get("ZhuZhiYSID").toString() : null);
+            patMedInhosp1.setNurseName(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSXM")) ? JiuZhenXX.get("ZeRenHSXM").toString() : null);
+            patMedInhosp1.setNurseId(ObjectUtils.isNotEmpty(JiuZhenXX.get("ZeRenHSID")) ? JiuZhenXX.get("ZeRenHSID").toString() : null);
+            patMedInhosp1.setBedNo(ObjectUtils.isNotEmpty(JiuZhenXX.get("DangQianCWMC")) ? JiuZhenXX.get("DangQianCWMC").toString() : null);
+        }
+        patMedInhosp1.setUpdateTime(new Date());
+        patMedInhosp1.setTelcode(patArchive.getTelcode());
+        patMedInhosp1.setLeavehospitaldistrictcode(externalInHospPatientInfo.getDangQianBQID());
+        patMedInhosp1.setLeavehospitaldistrictname(externalInHospPatientInfo.getDangQianBQMC());
+        patMedInhosp1.setLeaveldeptname(externalInHospPatientInfo.getDangQianKSMC());
+        patMedInhosp1.setDeptname(externalInHospPatientInfo.getDangQianKSMC());
+        patMedInhosp1.setLeaveldeptcode(externalInHospPatientInfo.getDangQianKSID());
+        patMedInhosp1.setDeptcode(externalInHospPatientInfo.getDangQianKSID());
+
+        if (ObjectUtils.isNotEmpty(SuiFangJH)) {
+            patMedInhosp1.setFuflag(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangBS")) ? SuiFangJH.get("SuiFangBS").toString() : null);
+            if (ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangRQ"))) {
+                try {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    patMedInhosp1.setFudate(simpleDateFormat.parse(SuiFangJH.get("SuiFangRQ").toString()));
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+            }
+            patMedInhosp1.setFuperiod(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangZQJY")) ? SuiFangJH.get("SuiFangZQJY").toString() : null);
+            patMedInhosp1.setFutypecode(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangFSDM")) ? SuiFangJH.get("SuiFangFSDM").toString() : null);
+            patMedInhosp1.setFutypedesc(ObjectUtils.isNotEmpty(SuiFangJH.get("SuiFangFSMC")) ? SuiFangJH.get("SuiFangFSMC").toString() : null);
+            patMedInhosp1.setFuadvice(ObjectUtils.isNotEmpty(SuiFangJH.get("FuZhenZD")) ? SuiFangJH.get("FuZhenZD").toString() : null);
+            patMedInhosp1.setFuspecialadvice(ObjectUtils.isNotEmpty(SuiFangJH.get("QiTaZKJBSF")) ? SuiFangJH.get("QiTaZKJBSF").toString() : null);
+        }
+
+        List<HashMap<String, Object>> zhenDuanList = ObjectUtils.isNotEmpty(yeWuXX) ? (List<HashMap<String, Object>>) yeWuXX.get("ZhenDuanList") : null;
+        if (CollectionUtils.isNotEmpty(zhenDuanList)) {
+            List<ExternalInHospPatientDiagnoseInfo> hospPatientDiagnoseInfos2 = zhenDuanList.stream().map(map -> {
+                ExternalInHospPatientDiagnoseInfo info = new ExternalInHospPatientDiagnoseInfo();
+                info.setZhenDuanID((String) map.get("ZhenDuanID"));
+                info.setZhenDuanMC((String) map.get("ZhenDuanMC"));
+                info.setIcd10((String) map.get("Icd10"));
+                return info;
+            }).collect(Collectors.toList());
+            patMedInhosp1.setLeaveicd10code(hospPatientDiagnoseInfos2.get(0).getIcd10());
+            patMedInhosp1.setLeavediagname(hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
+            //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());
+        }
+
+        patMedInhosp1.setInhospstate("3");
+        if (CollectionUtils.isNotEmpty(patMedInhospList)) {
+            patMedInhosp1.setUpdateTime(new Date());
+            patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
+            if (i != 1) return false;
+        } else {
+            if (ObjectUtils.isNotEmpty(BingRenXX)) {
+                patMedInhosp1.setHospitalname(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGMC")) ? BingRenXX.get("ZuZhiJGMC").toString() : null);
+                patMedInhosp1.setHospitalcode(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+                patMedInhosp1.setLeavehospitaldistrictname(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQMC")) ? BingRenXX.get("DangQianBQMC").toString() : null);
+                patMedInhosp1.setLeavehospitaldistrictcode(ObjectUtils.isNotEmpty(BingRenXX.get("DangQianBQID")) ? BingRenXX.get("DangQianBQID").toString() : null);
+                patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
+                patMedInhosp1.setPatno(ObjectUtils.isNotEmpty(BingRenXX.get("BingRenID")) ? BingRenXX.get("BingRenID").toString() : null);
+                patMedInhosp1.setInhospno(ObjectUtils.isNotEmpty(BingRenXX.get("BingAnHao")) ? BingRenXX.get("BingAnHao").toString() : null);
+                patMedInhosp1.setSerialnum(ObjectUtils.isNotEmpty(BingRenXX.get("JiuZhenYWID")) ? BingRenXX.get("JiuZhenYWID").toString() : null);
+            }
+            patMedInhosp1.setPatid(patArchive.getId());
+            patMedInhosp1.setPatname(patArchive.getName());
+
+            patMedInhosp1.setCreateTime(new Date());
+            int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
             if (i != 1) return false;
         }
         return true;
@@ -928,7 +1072,7 @@
             patMedInhosp.setDeptname(externalInHospPatientInfo.getDangQianKSMC());
             patMedInhosp.setLeaveldeptname(externalInHospPatientInfo.getDangQianKSMC());
             //杩欓噷鏄簥浣嶅悕绉拌繕鏄簥浣嶇紪鍙凤紵锛燂紵锛�
-            patMedInhosp.setBedNo(externalInHospPatientInfo.getDangQianCWID());
+            patMedInhosp.setBedNo(externalInHospPatientInfo.getDangQianCWMC());
             patMedInhosp.setOrgid(externalInHospPatientInfo.getZuZhiJGID());
             patMedInhosp.setHospitaldistrictid(externalInHospPatientInfo.getDangQianBQID());
             patMedInhosp.setGuid(externalInHospPatientInfo.getZuZhiJGID());
@@ -949,7 +1093,7 @@
 //            patMedInhosp.setIcd10code(StringUtils.isNotEmpty(patMedInhosp.getIcd10code()) ? patMedInhosp.getIcd10code() + "," + externalInHospPatientDiagnoseInfo.getZhenDuanID() : externalInHospPatientDiagnoseInfo.getZhenDuanID());
 //            patMedInhosp.setDiagname(StringUtils.isNotEmpty(patMedInhosp.getDiagname()) ? patMedInhosp.getDiagname() + "," + externalInHospPatientDiagnoseInfo.getZhenDuanMC() : externalInHospPatientDiagnoseInfo.getZhenDuanMC());
 
-            patMedInhosp.setIcd10code(externalInHospPatientDiagnoseInfo.getZhenDuanID());
+            patMedInhosp.setIcd10code(externalInHospPatientDiagnoseInfo.getIcd10());
             patMedInhosp.setDiagname(externalInHospPatientDiagnoseInfo.getZhenDuanMC());
 
         }
@@ -1093,6 +1237,9 @@
             case "JZ_ZY_QuXiaoCY":
                 log.error("鍙栨秷鍑洪櫌鍏ュ弬绫诲瀷涓猴細{}", type);
                 return cancelOutHospInfo(dataMap);
+            case "JZ_ZY_YuChuYuan":
+                log.error("鎮h�呴鍑洪櫌鍏ュ弬绫诲瀷涓猴細{}", type);
+                return addPreOutHospInfo(dataMap);
             case "JG_ZZ_BingQu":
                 log.error("鐥呭尯淇℃伅鍏ュ弬绫诲瀷涓猴細{}", type);
                 return addWardAreaInfo(dataMap);

--
Gitblit v1.9.3