From 2e4b5f661836dcd84e72f807af0dca8aa6864bba Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期五, 20 九月 2024 18:05:50 +0800 Subject: [PATCH] pacs申请类 --- ltkj-hosp/src/main/java/com/ltkj/hosp/pacsDto/SavePacsApply.java | 109 +++++++++++++++++++++ ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java | 181 ++++++++++++++++++++++++++++++++++++ 2 files changed, 290 insertions(+), 0 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 new file mode 100644 index 0000000..e6bb79f --- /dev/null +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java @@ -0,0 +1,181 @@ +package com.ltkj.web.controller.pacs; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.RandomUtil; +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.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.system.service.ISysDeptService; +import com.ltkj.web.controller.his.HisApiGetMethodService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃 + * @Author: zhaowenxuan + * @Date: 2024/9/18 10:55 + */ +@Slf4j +@Component +public class PacsApiMethodService { + @Autowired + private HisApiGetMethodService getMethodService; + @Autowired + private ISysDeptService deptService; + @Autowired + private ITjProjectService projectService; + @Autowired + private LtkjJfzhglmxjfxmzdService ltkjJfzhglmxjfxmzdService; + @Autowired + private LtkjMxjfxmzdService ltkjMxjfxmzdService; + @Autowired + private LtkjEjjfxmzdService ltkjEjjfxmzdService; + @Autowired + private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService; + + + /** + * pas 妫�鏌ョ敵璇蜂俊鎭繚瀛� + * @param savePacsApply + * @return + */ + public AjaxResult savePacsApply(SavePacsApply savePacsApply){ + Map<String, Object> map = BeanUtil.beanToMap(savePacsApply); + return getMethodService.getPacsData("savePacsApply", map); + } + + /** + * pas 缁撴灉鑾峰彇 + * @param regNo 妫�鏌ョ敵璇峰崟鍙� + * @return + */ + public AjaxResult getPacsReport(String regNo){ + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("regNo", regNo); + return getMethodService.getPacsData("getPacsReport",hashMap); + } + + /** + * pas 妫�鏌ョ敵璇蜂俊鎭綔搴� + * @param regNo 妫�鏌ョ敵璇峰崟鍙� + * @param examNo 浣撴鍙� + * @param name 鐥呬汉濮撳悕 + * @return + */ + public AjaxResult updatePacsApply(String regNo,String examNo,String name){ + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("regNo", regNo); + hashMap.put("examNo", examNo); + hashMap.put("name", name); + return getMethodService.getPacsData("updatePacsApply",hashMap); + } + + public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer,List<TbTransition> detailList) { + if (detailList != null && !detailList.isEmpty()) { + 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); + ArrayList<SavePacsApply> errorPacsList = new ArrayList<>(); + ArrayList<SavePacsApply> successPacsList = new ArrayList<>(); + int allTotal = 0; + if (projects != null && !projects.isEmpty()){ + for (TjProject project : projects) { + if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) { + if (null != project.getHisXmbm()) { + SavePacsApply savePacsApply = new SavePacsApply(); + savePacsApply.setExamNo(tjOrder.getCardId()); + savePacsApply.setName(tjCustomer.getCusName()); + savePacsApply.setSex(tjCustomer.getCusSex()==1?"2":"1"); + AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday()); + savePacsApply.setAge(String.valueOf(ageResult.getAge())); + savePacsApply.setAgeUnit(String.valueOf(ageResult.getUnit())); + savePacsApply.setBirthday(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd")); + savePacsApply.setCardNumber(tjCustomer.getCusIdcard()); + savePacsApply.setTel(tjCustomer.getCusPhone()); + Date date = new Date(); + String regNo = "jk_"+DateFormatUtils.format(date, "yyyyMMddHHmmss") +"_"+project.getHisXmbm(); + savePacsApply.setRegNo(regNo); + savePacsApply.setCheckItemID(project.getHisXmbm()); + savePacsApply.setCheckItem(project.getHisXmmc()); + savePacsApply.setCheckPosition(""); + savePacsApply.setAmount(project.getProPrice()); + savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss")); + savePacsApply.setApplyDepment("0101"); + savePacsApply.setApplyDepmentName("浣撴涓績"); + savePacsApply.setApplyDoctor("00029"); + savePacsApply.setApplyDoctorName("鐜嬪仴钀�"); + savePacsApply.setExecDepment("0101"); + savePacsApply.setExecDepmentName("浣撴涓績"); + savePacsApply.setCreateTime(savePacsApply.getApplyDate()); + savePacsApply.setDevice(""); + savePacsApply.setDeviceType(""); + AjaxResult ajaxResult = savePacsApply(savePacsApply); + String result = ajaxResult.get("data").toString(); + JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result).getStr("Response")); + log.info("璇锋眰杩斿洖 ->{}",object); + String code = object.getStr("ResultCode"); + allTotal++; + if(code.equals("0")){ + successPacsList.add(savePacsApply); + LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree(); + tree.setCardId(tjOrder.getCardId()); + tree.setPationid(tjCustomer.getPationId()); + tree.setSqdh(regNo); + tree.setFyhj(String.valueOf(project.getProPrice())); + tree.setHisXmdm(project.getHisXmbm()); + tree.setType("妫�鏌�"); + 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); + }else { + errorPacsList.add(savePacsApply); + } + } + } + } + } + log.info("妫�鏌ユ�昏 ->{}涓�",allTotal); + if (!errorPacsList.isEmpty()){ + log.info("鎴愬姛 ->{}",successPacsList); + log.error("澶辫触 ->{}",errorPacsList); + } + } + return true; + } + + /* 鏌ヨ妫�鏌ョ粨鏋溿�佹洿鏂版煡璇㈢姸鎬� */ + // 璋冪敤杩斿洖妫�楠岀粨鏋滐細 + // exec usp_tjjk_pacsjg 鈥樹綋妫�鍙封�� + // 璋冪敤鏇存柊鐘舵�侊細 + // exec usp_tjjk_pacszt 鈥樹綋妫�鍙封�� +} diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/pacsDto/SavePacsApply.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/pacsDto/SavePacsApply.java new file mode 100644 index 0000000..c9af3cd --- /dev/null +++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/pacsDto/SavePacsApply.java @@ -0,0 +1,109 @@ +package com.ltkj.hosp.pacsDto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃 + * @Author: zhaowenxuan + * @Date: 2024/9/18 10:57 + */ +@Data +public class SavePacsApply { + /** + * 浣撴鍙� + */ + private String examNo; + /** + * 鐥呬汉濮撳悕 + */ + private String name; + /** + * 鎬у埆 1-鐢� 2-濂� + */ + private String sex; + /** + * 骞撮緞 + */ + private String age; + /** + * 骞撮緞鍗曚綅 1-宀� 2-鏈� 3-澶� 4-灏忔椂 5-鍒嗛挓 + */ + private String ageUnit; + /** + * 鍑虹敓鏃ユ湡鏍煎紡锛歽yyy-mm-dd + */ + private String birthday; + /** + * 韬唤璇佸彿 + */ + private String cardNumber; + /** + * 鐢佃瘽 + */ + private String tel; + /** + * 妫�鏌ョ敵璇峰崟鍙� + */ + private String regNo; + /** + * 妫�鏌ラ」鐩紪鐮� 浼犱綋妫�绯荤粺涓殑椤圭洰缂栫爜 + */ + private String checkItemID; + /** + * 妫�鏌ラ」鐩悕绉� 浼犱綋妫�绯荤粺涓殑椤圭洰鍚嶇О + */ + private String checkItem; + /** + * 妫�鏌ラ儴浣� + */ + private String checkPosition; + /** + * 閲戦 + */ + private BigDecimal amount; + /** + * 鐢宠鏃堕棿 鏍煎紡锛歽yyy-mm-dd hh:mm:ss + */ + private String applyDate; + /** + * 鐢宠绉戝 + */ + private String applyDepment; + /** + * 鐢宠绉戝鍚嶇О + */ + private String applyDepmentName; + /** + * 鐢宠鍖荤敓 + */ + private String applyDoctor; + /** + * 鐢宠鍖荤敓濮撳悕 + */ + private String applyDoctorName; + /** + * 鎵ц绉戝 + */ + private String execDepment; + /** + * 鎵ц绉戝鍚嶇О + */ + private String execDepmentName; + /** + * 鍒涘缓鏃堕棿 + */ + private String createTime; + /** + * 妫�鏌ヨ澶� + */ + private String device; + /** + * 妫�鏌ヨ澶囩被鍨� + * CT/MR/CR/DX/US/AU/BI/CD/DD/DG/ECG/ES/GM/HC/IO/ + * IVUS/KO/LS/MG/NM/OP/OT/PET/PR/PT/PX/RF/RG/SM/ + * SR/ST/XA/XC/DR + */ + private String deviceType; +} -- Gitblit v1.8.0