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