zhaowenxuan
2024-09-20 2e4b5f661836dcd84e72f807af0dca8aa6864bba
pacs申请类
2个文件已添加
290 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/pacsDto/SavePacsApply.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
New file
@@ -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 ‘体检号’
}
ltkj-hosp/src/main/java/com/ltkj/hosp/pacsDto/SavePacsApply.java
New file
@@ -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;
    /**
     * 出生日期格式:yyyy-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;
    /**
     * 申请时间 格式:yyyy-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;
}