From 148a7f11b0ead8539cae824f02dda19a703f4d0b Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期六, 07 十二月 2024 16:54:02 +0800
Subject: [PATCH] zjh20241207

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java |  174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 163 insertions(+), 11 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
index 1974bc4..f4da486 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
@@ -3,17 +3,23 @@
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.XmlUtil;
+import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ltkj.common.core.domain.AjaxResult;
+import com.ltkj.common.core.domain.entity.SysDept;
 import com.ltkj.common.utils.AgeResult;
 import com.ltkj.common.utils.DateUtils;
 import com.ltkj.hosp.domain.*;
 import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto;
 import com.ltkj.hosp.pacsDto.SavePacsApply;
 import com.ltkj.hosp.service.*;
+import com.ltkj.hosp.sqlDomain.LtkjExamJcsqd;
+import com.ltkj.system.service.ISysConfigService;
 import com.ltkj.system.service.ISysDeptService;
 import com.ltkj.web.controller.his.HisApiGetMethodService;
 import lombok.extern.slf4j.Slf4j;
@@ -22,6 +28,7 @@
 import org.springframework.stereotype.Component;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -47,6 +54,14 @@
     private LtkjEjjfxmzdService ltkjEjjfxmzdService;
     @Autowired
     private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
+    @Autowired
+    private ISysConfigService configService;
+    @Autowired
+    private ITbTransitionService transitionService;
+    @Autowired
+    private ITjOrderService tjOrderService;
+    @Autowired
+    private LtkjExamJcsqdService ltkjExamJcsqdService;
 
 
     /**
@@ -87,9 +102,14 @@
         hashMap.put("name", name);
         log.info("浣滃簾妫�鏌� ->{}", JSONUtil.toJsonStr(hashMap));
         return getMethodService.getPacsData("updatePacsApply", hashMap);
+//        JSONObject object = JSONUtil.createObj();
+//        object.putOpt("ResultCode","1");
+//        return AjaxResult.success().put("data",JSONUtil.toJsonStr(object));
     }
 
     public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer, List<TbTransition> detailList) {
+//        if (true)
+//            return true;
         JSONArray array = JSONUtil.createArray();
         ArrayList<SavePacsApply> errorPacsList = new ArrayList<>();
         ArrayList<SavePacsApply> successPacsList = new ArrayList<>();
@@ -121,6 +141,8 @@
     public int saveProjects(TjOrder tjOrder, TjCustomer tjCustomer, List<TjProject> projects, JSONArray array, ArrayList<SavePacsApply> successPacsList, ArrayList<SavePacsApply> errorPacsList) {
         int allTotal = 0;
         if (projects != null && !projects.isEmpty()) {
+            String dept = configService.selectConfigByKey("request_default_dept");
+            String ysbm = configService.selectConfigByKey("request_default_ysbm");
             for (TjProject project : projects) {
                 if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
                     if (null != project.getHisXmbm()) {
@@ -135,7 +157,7 @@
                         savePacsApply.setCardNumber(tjCustomer.getCusIdcard());
                         savePacsApply.setTel(tjCustomer.getCusPhone());
                         Date date = new Date();
-                        String regNo = "jk_" + DateFormatUtils.format(date, "yyyyMMddHHmmss") + "_" + project.getHisXmbm();
+                        String regNo = "M_jk" + tjOrder.getCardId() +"_" + project.getHisXmbm();
                         savePacsApply.setRegNo(regNo);
                         JSONObject jsonObject = JSONUtil.createObj();
                         jsonObject.putOpt("cardId", tjOrder.getCardId());
@@ -145,28 +167,29 @@
                         savePacsApply.setCheckItemID(project.getHisXmbm());
                         savePacsApply.setCheckItem(project.getHisXmmc());
                         // TODO 妫�鏌ラ儴浣�
-                        savePacsApply.setCheckPosition("");
+                        savePacsApply.setCheckPosition("-");
                         savePacsApply.setAmount(project.getProPrice());
                         savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
-                        savePacsApply.setApplyDepment("0101");
+                        savePacsApply.setApplyDepment(dept);
                         savePacsApply.setApplyDepmentName("浣撴涓績");
-                        savePacsApply.setApplyDoctor("00029");
+                        savePacsApply.setApplyDoctor(ysbm);
                         savePacsApply.setApplyDoctorName("鐜嬪仴钀�");
-                        savePacsApply.setExecDepment("0101");
+                        savePacsApply.setExecDepment(dept);
                         savePacsApply.setExecDepmentName("浣撴涓績");
                         savePacsApply.setCreateTime(savePacsApply.getApplyDate());
                         // TODO 妫�鏌ヨ澶�
-                        savePacsApply.setDevice("");
+                        savePacsApply.setDevice("-");
                         // TODO 妫�鏌ヨ澶囩被鍨�
-                        savePacsApply.setDeviceType("");
-                        log.info("妫�鏌ョ敵璇� ->{}", JSONUtil.toJsonStr(savePacsApply));
+                        savePacsApply.setDeviceType("-");
+                        log.info("PACS妫�鏌ョ敵璇� ->{}", JSONUtil.toJsonStr(savePacsApply));
                         AjaxResult ajaxResult = savePacsApply(savePacsApply);
+                        log.info("杩斿洖 ->{}",JSONUtil.toJsonStr(ajaxResult));
                         String result = ajaxResult.get("data").toString();
-                        JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result).getStr("Response"));
-                        log.info("璇锋眰杩斿洖 ->{}", object);
+                        JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result));
+                        log.info("PACS璇锋眰杩斿洖 ->{}", object);
                         String code = object.getStr("ResultCode");
                         allTotal++;
-                        if (code.equals("0")) {
+                        if (code.equals("1")) {
                             successPacsList.add(savePacsApply);
                             LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                             tree.setCardId(tjOrder.getCardId());
@@ -175,6 +198,7 @@
                             tree.setFyhj(String.valueOf(project.getProPrice()));
                             tree.setHisXmdm(project.getHisXmbm());
                             tree.setType("妫�鏌�");
+                            tree.setService("pacs");
                             tree.setTjPrice(String.valueOf(project.getProPrice()));
                             LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                             if (project.getSfzhfy().equals("Y"))
@@ -208,4 +232,132 @@
     // exec usp_tjjk_pacsjg 鈥樹綋妫�鍙封��
     // 璋冪敤鏇存柊鐘舵�侊細
     // exec usp_tjjk_pacszt 鈥樹綋妫�鍙封��
+
+
+    /**
+     * 璋冪敤pacs鐢宠鍗曟帹閫�
+     * xml浼犻��
+     */
+    public boolean OrderAdd(TjCustomer customer,TjOrder tjOrder){
+        List<TbTransition> detailList = transitionService.getTbTransitionListByCusId(customer.getCusIdcard(), tjOrder.getCardId());
+        LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
+        wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
+        wq.in(TjProject::getDeptId, deptService.getJcDeptIds());
+        List<TjProject> projects = projectService.list(wq);
+        HashMap<String, Object> root = new HashMap<>();
+        HashMap<String, Object> hashMap = new HashMap<>();
+
+        HashMap<String, Object> patientInfo = new HashMap<>();
+        patientInfo.put("PatientId",customer.getCusId());
+        patientInfo.put("VisitNo",tjOrder.getTjNumber());
+        patientInfo.put("PatType","P");
+        patientInfo.put("PatientName",customer.getCusName());
+        if (customer.getCusSex() == 0) patientInfo.put("PatientSex","M");
+        else if (customer.getCusSex() == 1) patientInfo.put("PatientSex","F");
+        else patientInfo.put("PatientSex","O");
+        patientInfo.put("PatBirthday",new SimpleDateFormat("yyyy-MM-dd").format(customer.getCusBrithday()));
+        patientInfo.put("IdCard",customer.getCusIdcard());
+        patientInfo.put("hospitalid","chkwyy");
+
+//        String examItems = "";
+        HashMap<String, Object> examItem = new HashMap<>();
+        List<Map<String,Object>> list = new ArrayList<>();
+        String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+        for (TjProject project : projects) {
+            HashMap<String, Object> examItems = new HashMap<>();
+            // 鐢宠鍗曞彿瑙勫垯锛氫綋妫�鍙穇project.getProId()鍚庡洓浣�
+            examItems.put("HisID", tjOrder.getTjNumber() + String.valueOf(project.getProId()).substring(String.valueOf(project.getProId()).length() - 4));
+            examItems.put("EmergencyFlag", "0");
+            examItems.put("ExamItemID", project.getHisXmbm());
+            examItems.put("ExamItemName", project.getHisXmmc());
+            examItems.put("OrderDT", date);
+            SysDept dept = deptService.getById(project.getDeptId());
+            examItems.put("Modality", dept.getModality());
+            // TODO 鏀惰垂鏍囪瘑 1鏄敹璐� 鍜� 0鏈敹璐�
+            examItems.put("ChargeFlag","");
+//            examItems += "<ExamItem>"+
+//                    XmlUtil.mapToXmlStr(examItem)
+//                            .replace("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>","")
+////                            .replaceAll("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>","")
+//                            .replace("<xml>","")
+//                            .replace("</xml>","")
+//                    +"</ExamItem>";
+            list.add(examItems);
+        }
+        examItem.put("ExamItem",list);
+        hashMap.put("PatientInfor",patientInfo);
+        hashMap.put("ExamItemList",examItem);
+        root.put("Root",hashMap);
+        String result = HttpRequest.post("http://10.100.100.222:8000/WebInterfaceService.asmx")
+        .body(XmlUtil.mapToXmlStr(root)).contentType("application/xml;charset:utf-8;").execute().body();
+        String s = XmlUtil.mapToXmlStr(root);
+        log.info("璋冪敤pacs浼犻�掑弬鏁扮殑鍊间负: "+s);
+        Map<String, Object> map = XmlUtil.xmlToMap(result);
+        if (map.get("Code").toString().equals("1")){
+            for (TjProject project : projects) {
+                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                tree.setCardId(tjOrder.getTjNumber());
+                tree.setPationid(String.valueOf(customer.getCusId()));
+                tree.setSqdh(tjOrder.getTjNumber() + String.valueOf(project.getProId()).substring(String.valueOf(project.getProId()).length() - 4));
+                tree.setFyhj(String.valueOf(project.getProPrice()));
+                tree.setHisXmdm(project.getHisXmbm());
+                tree.setType("妫�鏌�");
+                tree.setService("pacs");
+                tree.setTjPrice(String.valueOf(project.getProPrice()));
+                LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+                if (project.getSfzhfy().equals("Y"))
+                    wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
+                else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
+                List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+                if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+                    String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+                    LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
+                    wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+                    LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
+                    LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+                    wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+                    LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
+                    tree.setXmfl(ejjfxmzd.getYjkmdm());
+                }
+                tree.setCreateTime(DateUtil.date());
+                ltkjJianchajianyanTreeService.save(tree);
+
+
+                LtkjExamJcsqd jcsqd = new LtkjExamJcsqd();
+                jcsqd.setTjh(tjOrder.getTjNumber());
+                jcsqd.setTmh(tree.getSqdh());
+                jcsqd.setJcxmid(tree.getHisXmdm());
+                jcsqd.setJcxmmc(project.getHisXmmc());
+                jcsqd.setSqsj(date);
+                ltkjExamJcsqdService.save(jcsqd);
+            }
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 璋冪敤pacs鐢宠鍗曚綔搴�
+     * @param sqdh 鐢宠鍗曞彿
+     * @param czrid 鎿嶄綔浜虹紪鐮�
+     * @return
+     */
+    public boolean OrderDelete(String sqdh,String czrid){
+        HashMap<String, Object> root = new HashMap<>();
+        HashMap<String, Object> hashMap = new HashMap<>();
+        LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(new LambdaQueryWrapper<LtkjJianchajianyanTree>().eq(LtkjJianchajianyanTree::getSqdh, sqdh));
+        String pationid = tree.getPationid();
+        hashMap.put("PatientId",pationid);
+        hashMap.put("PatType","P");
+        hashMap.put("Operator",czrid);
+        hashMap.put("HisID",sqdh);
+        root.put("Root",hashMap);
+        String result = HttpRequest.post("").body(XmlUtil.mapToXmlStr(root)).contentType("application/xml;charset:utf-8;").execute().body();
+        Map<String, Object> map = XmlUtil.xmlToMap(result);
+        if (map.get("Code").toString().equals("1")){
+            ltkjJianchajianyanTreeService.removeById(tree);
+            return true;
+        }
+        return false;
+    }
 }

--
Gitblit v1.8.0