zjh
2025-06-04 2e1fc763314f7231780c7d6e36fd6922548b285a
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiController.java
@@ -9,10 +9,7 @@
import com.ltkj.common.core.controller.BaseController;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.framework.config.UserHoder;
import com.ltkj.hosp.domain.LtkjJianchajianyanTree;
import com.ltkj.hosp.domain.TjCustomer;
import com.ltkj.hosp.domain.TjOrder;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.hisDto.*;
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.service.*;
@@ -23,8 +20,10 @@
import com.ltkj.hosp.vodomain.CsProVo;
import com.ltkj.web.controller.system.TjCheckController;
import io.swagger.annotations.Api;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.NoTransactionException;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
@@ -62,51 +61,53 @@
    private LtkjHybgdService hybgdService;
    @Autowired
    private ITjCustomerService tjCustomerService;
    @Autowired
    private TjJcycxmService jcycxmService;
    /**
     * 获取pacs检查数据
     * @param json
     * @return
     */
    @PostMapping("/pacs/getAll")
    public AjaxResult getAllList(@RequestBody String json) {
        cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj(json);
        String tjNum = StrUtil.isBlank(parseObj.getStr("tjNum")) ? null : parseObj.getStr("tjNum");
        String name = StrUtil.isBlank(parseObj.getStr("name")) ? null : parseObj.getStr("name");
        String start = StrUtil.isBlank(parseObj.getStr("start")) ? null : parseObj.getStr("start");
        String end = StrUtil.isBlank(parseObj.getStr("end")) ? null : parseObj.getStr("end");
        String mzh = null;
        if (tjNum == null && name == null){
            return AjaxResult.error("体检号和名字不能都为空");
        }
        if (tjNum != null) {
            LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TjOrder::getTjNumber,tjNum);
            TjOrder order = tjOrderService.getOne(wrapper);
            mzh = order.getCardId();
            LambdaQueryWrapper<TjCustomer> wrapper1 = new LambdaQueryWrapper<>();
            wrapper1.eq(TjCustomer::getCusId,order.getUserId());
            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper1);
            name = tjCustomer.getCusName();
        }
        List<Map<String, Object>> jcList = testMapper.getPacsJcList(name, mzh, start, end);
        if (jcList.isEmpty()){
            return AjaxResult.success();
        }
        if (tjNum == null){
            String string = jcList.get(0).get("mzh").toString();
            LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TjOrder::getCardId,string);
            TjOrder order = tjOrderService.getOne(wrapper);
            if (order == null) return AjaxResult.error("");
            tjNum = order.getTjNumber();
        }
        List<CsProVo> proVos = tjCheckController.getCsProVos(tjNum,true);
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("pacs",jcList);
        hashMap.put("vo",proVos);
        return AjaxResult.success(hashMap);
    }
//    @PostMapping("/pacs/getAll")
//    public AjaxResult getAllList(@RequestBody String json) {
//        cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj(json);
//        String tjNum = StrUtil.isBlank(parseObj.getStr("tjNum")) ? null : parseObj.getStr("tjNum");
//        String name = StrUtil.isBlank(parseObj.getStr("name")) ? null : parseObj.getStr("name");
//        String start = StrUtil.isBlank(parseObj.getStr("start")) ? null : parseObj.getStr("start");
//        String end = StrUtil.isBlank(parseObj.getStr("end")) ? null : parseObj.getStr("end");
//        String mzh = null;
//        if (tjNum == null && name == null){
//            return AjaxResult.error("体检号和名字不能都为空");
//        }
//        if (tjNum != null) {
//            LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
//            wrapper.eq(TjOrder::getTjNumber,tjNum);
//            TjOrder order = tjOrderService.getOne(wrapper);
//            mzh = order.getCardId();
//            LambdaQueryWrapper<TjCustomer> wrapper1 = new LambdaQueryWrapper<>();
//            wrapper1.eq(TjCustomer::getCusId,order.getUserId());
//            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper1);
//            name = tjCustomer.getCusName();
//        }
//        List<Map<String, Object>> jcList = testMapper.getPacsJcList(name, mzh, start, end);
//        if (jcList.isEmpty()){
//            return AjaxResult.success();
//        }
//        if (tjNum == null){
//            String string = jcList.get(0).get("mzh").toString();
//            LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
//            wrapper.eq(TjOrder::getCardId,string);
//            TjOrder order = tjOrderService.getOne(wrapper);
//            if (order == null) return AjaxResult.error("");
//            tjNum = order.getTjNumber();
//        }
//        List<CsProVo> proVos = tjCheckController.getCsProVos(tjNum,true);
//        HashMap<String, Object> hashMap = new HashMap<>();
//        hashMap.put("pacs",jcList);
//        hashMap.put("vo",proVos);
//        return AjaxResult.success(hashMap);
//    }
    /**
     * 获取pacs检查数据
@@ -126,9 +127,7 @@
            return AjaxResult.error("体检号和名字不能都为空");
        }
        if (tjNum != null) {
            LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TjOrder::getTjNumber,tjNum);
            TjOrder order = tjOrderService.getOne(wrapper);
            TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
            mzh = order.getCardId();
            LambdaQueryWrapper<TjCustomer> wrapper1 = new LambdaQueryWrapper<>();
            wrapper1.eq(TjCustomer::getCusId,order.getUserId());
@@ -140,7 +139,6 @@
//        String json1 = "[{\"reportDoctorCode\":114,\"deptName\":\"体检中心\",\"checkDoctorCode\":114,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆泌尿系前列腺\",\"zyh\":\"-\",\"diagnosis\":\"前列腺增生\",\"checkDoctorName\":\"李霞\",\"F_MACHINE_NAME_LIST\":\"GE-P6\",\"reportDate\":\"2024.11.06 11:49:20\",\"examinationDate\":\"2024.11.06 11:54:58\",\"examination\":\"双肾大小、形态正常,包膜光滑平整,实质回声分布均匀,皮髓界限清晰,集合系统未见分离。rnCDFI:双肾血流呈“树枝状”分布,灌注良好;双侧输尿管未见扩张。rn膀胱充盈佳,壁厚度正常,内壁光整,腔内未探及异常回声。rn经腹部前列腺大小约34mm×35mm×30mm,形态饱满,包膜完整,实质回声欠均匀,内腺稍增大。rnCDFI:腺体内未探及异常血流信号。\",\"name\":\"张小兵\",\"patientAge\":\"53岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.204.1730864961.484.897.557\",\"reportDoctorName\":\"李霞\",\"studyReport\":525696,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"},{\"reportDoctorCode\":141,\"deptName\":\"体检中心                  \",\"checkDoctorCode\":141,\"ghxh\":\"M_jk20241106000019_2\",\"gender\":\"男\",\"brid\":\"jk20241106000019\",\"checkParts\":\"◆胸部CT平扫\",\"zyh\":\"-\",\"diagnosis\":\"1.左肺下叶外基底段支气管扩张伴感染;rn2.冠状动脉硬化;rn3.胸椎骨质增生。\",\"checkDoctorName\":\"姚诚\",\"F_MACHINE_NAME_LIST\":\"SIEMENS-CT\",\"reportDate\":\"2024.11.06 17:12:53\",\"examinationDate\":\"2024.11.06 17:12:54\",\"examination\":\"两侧胸廓对称,气管居中。左肺下叶外基底段支气管扩张,周围见斑片状磨玻璃影;双肺门结构正常,各叶、段支气管通畅。心脏各房室大小正常;冠状动脉走行区多发致密影。纵膈内未见增大淋巴结。双侧胸膜未见增厚。部分胸椎缘见骨赘形成,胸廓诸骨质结构显示完整,软组织结构显示正常。\",\"name\":\"张小兵\",\"patientAge\":\"76岁\",\"clinicalDiagnosis\":\"\",\"mzh\":\"20241106000520\",\"F_RPT_UID\":\"1.2.840.40823.1.1.1.1.1730884375.763.395.131\",\"reportDoctorName\":\"姚诚\",\"studyReport\":525872,\"F_RPT_WRITE_DATE\":\"2024.11.06\"}]";
//        return AjaxResult.success(JSONUtil.parseArray(json1));
    }
    /**
     * 获取Lis检验数据
@@ -171,7 +169,7 @@
        }
        List<Map<String, Object>> jcList = testMapper.getLisJyList(name, mzh, start, end);
        return AjaxResult.success(jcList);
//        String json1 = "[{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四1\",\"patientAge\":\"20\",\"mzh\":\"810001246120745\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\",\"conclusion\":\"异常\",\"tjStandardGtValue\":\"1 - 5\",\"company\":\"毫克\",\"checkDoctorName\":\"检测医师\",\"jcxmid\":\"123\",\"shys\":\"审核医师\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四2\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"}]";
//        String json1 = "[{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四1\",\"patientAge\":\"20\",\"mzh\":\"810001246120745\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\",\"conclusion\":\"异常\",\"tjStandardGtValue\":\"1 - 5\",\"company\":\"毫克\",\"checkDoctorName\":\"检测医师\",\"jcxmid\":\"123\",\"shys\":\"审核医师\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四2\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"},{\"deptName\":\"科室\",\"gender\":\"男\",\"brid\":\"sqd445314589914\",\"checkParts\":\"血液\",\"project\":\"1.0-2.0\",\"examinationDate\":\"2025-02-11 05:12:23\",\"proResult\":\"1.0\",\"name\":\"赵四3\",\"patientAge\":\"20\",\"mzh\":\"201474534\",\"reportDoctorName\":\"医师\",\"proName\":\"血液分析\"}]";
//        return AjaxResult.success(JSONUtil.parseArray(json1));
    }
@@ -215,7 +213,8 @@
    @Transactional
    @PostMapping("/asyncPacs")
    public AjaxResult asyncPacs(@RequestBody String json) {
        log.info("合并检测同步参数 ->{}",json);
        try {
            log.info("合并检测同步参数 ->{}",json);
//        try {
//            Thread.sleep(2000);
//        } catch (InterruptedException ignored) {
@@ -223,152 +222,221 @@
//        }
//        if (true)
//            return AjaxResult.error("同步失败请重试");
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj( json);
        cn.hutool.json.JSONObject pacs = parseObj.getJSONObject("pacs");
        cn.hutool.json.JSONArray lis = parseObj.getJSONArray("lis");
        cn.hutool.json.JSONObject tj = parseObj.getJSONObject("tj");
        if (pacs != null && !pacs.isEmpty()){
            String tjNum = pacs.getStr("tjnum");
            LambdaQueryWrapper<TjOrder> wrapper1 = new LambdaQueryWrapper<>();
            wrapper1.eq(TjOrder::getTjNumber,tjNum);
            TjOrder order = tjOrderService.getOne(wrapper1);
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            cn.hutool.json.JSONObject parseObj = JSONUtil.parseObj( json);
            cn.hutool.json.JSONObject pacs = parseObj.getJSONObject("pacs");
            cn.hutool.json.JSONArray lis = parseObj.getJSONArray("lis");
            cn.hutool.json.JSONObject tj = parseObj.getJSONObject("tj");
            if (pacs != null && !pacs.isEmpty()){
                String tjNum = pacs.getStr("tjnum");
                LambdaQueryWrapper<TjOrder> wrapper1 = new LambdaQueryWrapper<>();
                wrapper1.eq(TjOrder::getTjNumber,tjNum);
                TjOrder order = tjOrderService.getOne(wrapper1);
            LtkjExamJcsqd ltkjExamJcsqd = new LtkjExamJcsqd();
            ltkjExamJcsqd.setTjh(order.getCardId());
                LtkjExamJcsqd ltkjExamJcsqd = new LtkjExamJcsqd();
                ltkjExamJcsqd.setTjh(order.getCardId());
            LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(LtkjJianchajianyanTree::getCardId, order.getCardId());
            String xmdm = projectService.getById(tj.getStr("proId")).getHisXmbm();
            queryWrapper.eq(LtkjJianchajianyanTree::getType,"检查");
            queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm);
            LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper);
            ltkjExamJcsqd.setTmh("M_"+tree.getSqdh()+"_"+tree.getHisXmdm());
            ltkjExamJcsqd.setBgys(pacs.getStr("checkDoctorName"));
            ltkjExamJcsqd.setBgysid(pacs.getStr("checkDoctorCode"));
            ltkjExamJcsqd.setSqsj(format.format(tree.getCreateTime()));
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
            Date reportDate = null;
            try {
                reportDate = dateFormat.parse(pacs.getStr("reportDate"));
                ltkjExamJcsqd.setJgsj(format.format(reportDate));
            } catch (ParseException ignored) {
                ltkjExamJcsqd.setJgsj(format.format(new Date()));
            }
            String checkParts = pacs.getStr("checkParts");
            ltkjExamJcsqd.setJcxmmc(checkParts);
            ltkjExamJcsqd.setJcxmid(xmdm);
            ltkjExamJcsqd.setBw(checkParts);
            ltkjExamJcsqd.setJgzt(pacs.getStr("diagnosis"));
            ltkjExamJcsqd.setJgbx(pacs.getStr("examination"));
            boolean save1 = ltkjExamJcsqdService.save(ltkjExamJcsqd);
            LtkjExamJcbgd ltkjExamJcbgd = new LtkjExamJcbgd();
            ltkjExamJcbgd.setTjh(ltkjExamJcsqd.getTjh());
            ltkjExamJcbgd.setTmh(ltkjExamJcsqd.getTmh());
            ltkjExamJcbgd.setXmdm(ltkjExamJcsqd.getJcxmid());
            ltkjExamJcbgd.setXmmc(ltkjExamJcsqd.getJcxmmc());
            ltkjExamJcbgd.setBgUrl("");
            ltkjExamJcbgd.setShysxm(pacs.getStr("reportDoctorName"));
            ltkjExamJcbgd.setShysdm(pacs.getStr("reportDoctorCode"));
            ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt());
            ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgbx());
            ltkjExamJcbgd.setZdsj(ltkjExamJcsqd.getJgsj());
            ltkjExamJcbgd.setSqsj(ltkjExamJcsqd.getSqsj());
            ltkjExamJcbgd.setJcbw(ltkjExamJcsqd.getJcxmmc());
            boolean save2 = ltkjExamJcbgdService.save(ltkjExamJcbgd);
            if (save1 && save2) {
                try {
                    testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                }catch (Exception e){
                    log.error(String.valueOf(e));
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("同步失败请重试");
                }
            } else {
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return AjaxResult.error("同步失败请重试");
            }
            return AjaxResult.success();
        }else {
            cn.hutool.json.JSONObject entries = (cn.hutool.json.JSONObject) lis.get(0);
            String tjNum = entries.getStr("tjNum");
            LtkjHysqd hysqd = new LtkjHysqd();
            LambdaQueryWrapper<TjOrder> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TjOrder::getTjNumber,tjNum);
            TjOrder order = tjOrderService.getOne(wrapper);
            hysqd.setTjh(order.getTjNumber());
            String mzh = order.getCardId();
            LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>();
            queryWrapper.eq(LtkjJianchajianyanTree::getCardId, mzh);
            TjProject project = projectService.getById(tj.getStr("proId"));
            String xmdm = project.getHisXmbm();
            queryWrapper.eq(LtkjJianchajianyanTree::getType,"检验");
            queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm);
            LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper);
            if (tree == null) {
                tree = new LtkjJianchajianyanTree();
                tree.setHisXmdm(xmdm);
                tree.setCreateTime(new Date());
                String sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999));
                queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh);
                if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) {
                    tree.setSqdh(sqdh);
                }else {
                    while (true){
                        sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999));
                        queryWrapper = new LambdaQueryWrapper<>();
                        queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh);
                        if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) {
                            tree.setSqdh(sqdh);
                LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(LtkjJianchajianyanTree::getCardId, order.getCardId());
                TjProject project = projectService.getById(tj.getStr("proId"));
                String xmdm = project.getHisXmbm();
                if (project.getSfzhfy().equals("N")){
                    LambdaQueryWrapper<TjProject> wrapper = new LambdaQueryWrapper<>();
                    wrapper.eq(TjProject::getProParentId,project.getProId());
                    List<TjProject> list = projectService.list(wrapper);
                    for (TjProject tjProject : list) {
                        if (StrUtil.isNotBlank(tjProject.getHisXmbm())){
                            xmdm = tjProject.getHisXmbm();
                            break;
                        }
                    }
                }
            }
                queryWrapper.eq(LtkjJianchajianyanTree::getType,"检查");
                queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm);
            hysqd.setTmh(tree.getSqdh()+"_"+tree.getHisXmdm());
            hysqd.setXmid(xmdm);
            hysqd.setXmmc(project.getHisXmbm());
            hysqd.setSqsj(format.format(tree.getCreateTime()));
            hysqd.setJgsj(format.format(new Date()));
//            hysqd.setBbmc();
            boolean save = hysqdService.save(hysqd);
            boolean save2 = true;
            for (Object object : lis) {
                cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) object;
                LtkjHybgd hybgd = new LtkjHybgd();
                hybgd.setTmh(tree.getSqdh()+"_"+tree.getHisXmdm());
                hybgd.setJcxmid(jsonObject.getStr("jcxmid"));
                hybgd.setJcxm(jsonObject.getStr("checkParts"));
                hybgd.setJyjg(jsonObject.getStr("proResult"));
                hybgd.setJgdw(jsonObject.getStr("company"));
                String tjStandardGtValue = jsonObject.getStr("tjStandardGtValue");
                String zdz = "";
                String zxz = "";
                if (tjStandardGtValue.contains("-")){
                    String[] split = tjStandardGtValue.split("-");
                    zxz = split[0].trim();
                    zdz = split[1].trim();
                LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper);
                ltkjExamJcsqd.setTmh("M_"+tree.getSqdh()+"_"+tree.getHisXmdm());
                ltkjExamJcsqd.setBgys(pacs.getStr("checkDoctorName"));
                ltkjExamJcsqd.setBgysid(pacs.getStr("checkDoctorCode"));
                ltkjExamJcsqd.setSqsj(format.format(tree.getCreateTime()));
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
                Date reportDate = null;
                try {
                    reportDate = dateFormat.parse(pacs.getStr("reportDate"));
                    ltkjExamJcsqd.setJgsj(format.format(reportDate));
                } catch (ParseException ignored) {
                    ltkjExamJcsqd.setJgsj(format.format(new Date()));
                }
                hybgd.setFwzdz(zdz);
                hybgd.setFwzgz(zxz);
                hybgd.setFwz(tjStandardGtValue);
                hybgd.setJysj(jsonObject.getStr("examinationDate"));
                hybgd.setShsj(jsonObject.getStr("examinationDate"));
                hybgd.setJyys(jsonObject.getStr("checkDoctorName"));
                hybgd.setShys(jsonObject.getStr("shys"));
                boolean save1 = hybgdService.save(hybgd);
                if (!save1) {
                    save2 = false;
                    break;
                String checkParts = pacs.getStr("checkParts");
    //            ltkjExamJcsqd.setJcxmmc(checkParts);
    //            ltkjExamJcsqd.setJcxmid(xmdm);
                ltkjExamJcsqd.setJcxmmc(project.getProName());
                ltkjExamJcsqd.setJcxmid(project.getProId().toString());
                ltkjExamJcsqd.setBw(checkParts);
                ltkjExamJcsqd.setJgzt(pacs.getStr("diagnosis"));
                ltkjExamJcsqd.setJgbx(pacs.getStr("examination"));
                ltkjExamJcsqd.setSgorzd("1");
                ltkjExamJcsqd.setCreateTime(new Date());
                ltkjExamJcsqdService.deletedLtkjJcsqdByTjhAndXmId(ltkjExamJcsqd.getTjh(),ltkjExamJcsqd.getJcxmid());
                boolean save1 = ltkjExamJcsqdService.save(ltkjExamJcsqd);
                log.info("手动同步检查结果状态 ->{}",ltkjExamJcsqd.getJgzt());
                if(StringUtil.isNotBlank(ltkjExamJcsqd.getJgzt())){
                    jcycxmService.deletedByTjh(order.getTjNumber());
                    String[] split = ltkjExamJcsqd.getJgzt().replaceAll("\n", "").split("。|;|;|,|,");
                    log.info("进入检查结果异常提取分割方法体 ->{}->{}",order.getTjNumber(),split);
                    for (String jg : split) {
                        if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见")
                                && !jg.contains("未见明显")&& !jg.contains("正常")&& !jg.contains("双侧椎间孔无狭窄")){
                            TjJcycxm jcycxm=new TjJcycxm();
                            jcycxm.setTjh(order.getTjNumber());
                            jcycxm.setYqid("jczyy");
                            String[] split1 = ltkjExamJcsqd.getJcxmid().split(";");
                            jcycxm.setProId(split1[0]);
                            jcycxm.setProName(ltkjExamJcsqd.getJcxmmc());
                            jcycxm.setCreateTime(new Date());
                            jcycxm.setJcjg(jg);
                            jcycxmService.save(jcycxm);
                        }
                    }
                }
            }
            if (save && save2){
                LtkjExamJcbgd ltkjExamJcbgd = new LtkjExamJcbgd();
                ltkjExamJcbgd.setTjh(ltkjExamJcsqd.getTjh());
                ltkjExamJcbgd.setTmh(ltkjExamJcsqd.getTmh());
    //            ltkjExamJcbgd.setXmdm(ltkjExamJcsqd.getJcxmid());
    //            ltkjExamJcbgd.setXmmc(ltkjExamJcsqd.getJcxmmc());
                ltkjExamJcbgd.setXmdm(project.getProId().toString());
                ltkjExamJcbgd.setXmmc(project.getProName());
                ltkjExamJcbgd.setBgUrl("");
                ltkjExamJcbgd.setShysxm(pacs.getStr("reportDoctorName"));
                ltkjExamJcbgd.setShysdm(pacs.getStr("reportDoctorCode"));
    //            ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt());
    //            ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgbx());
                ltkjExamJcbgd.setZdsj(ltkjExamJcsqd.getJgsj());
                ltkjExamJcbgd.setSqsj(ltkjExamJcsqd.getSqsj());
                ltkjExamJcbgd.setJcbw(ltkjExamJcsqd.getJcxmmc());
                ltkjExamJcbgd.setBgNr(ltkjExamJcsqd.getJgbx());
                ltkjExamJcbgd.setYxbx(ltkjExamJcsqd.getJgzt());
                ltkjExamJcbgd.setYxzd(ltkjExamJcsqd.getJgzt());
                ltkjExamJcbgd.setSgorzd("1");
                ltkjExamJcsqd.setCreateTime(new Date());
                ltkjExamJcbgdService.deletedLtkjJcbgdByTjhAndTmhA(ltkjExamJcsqd.getTjh(),ltkjExamJcsqd.getTmh());
                boolean save2 = ltkjExamJcbgdService.save(ltkjExamJcbgd);
                if (save1 && save2) {
                    try {
                        testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                    }catch (Exception e){
                        log.error(String.valueOf(e));
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return AjaxResult.error("同步失败请重试");
                    }
                } else {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("同步失败请重试");
                }
                return AjaxResult.success();
            }else {
                cn.hutool.json.JSONObject entries = (cn.hutool.json.JSONObject) lis.get(0);
                String tjNum = entries.getStr("tjNum");
                LtkjHysqd hysqd = new LtkjHysqd();
                TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
                hysqd.setTjh(order.getCardId());
                String mzh = order.getCardId();
                LambdaQueryWrapper<LtkjJianchajianyanTree> queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(LtkjJianchajianyanTree::getCardId, mzh);
                TjProject project = projectService.getById(tj.getStr("proId"));
                String xmdm = project.getHisXmbm();
                queryWrapper.eq(LtkjJianchajianyanTree::getType,"检验");
                queryWrapper.eq(LtkjJianchajianyanTree::getHisXmdm,xmdm);
                LtkjJianchajianyanTree tree = ltkjJianchajianyanTreeService.getOne(queryWrapper);
                String tmh;
                if (tree == null) {
                    tree = new LtkjJianchajianyanTree();
                    tree.setHisXmdm(xmdm);
                    tree.setCreateTime(new Date());
                    String sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999));
                    queryWrapper = new LambdaQueryWrapper<>();
                    queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh);
                    if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) {
                        tree.setSqdh(sqdh);
                    }else {
                        while (true){
                            sqdh = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + String.valueOf(RandomUtil.randomInt(0, 99999));
                            queryWrapper = new LambdaQueryWrapper<>();
                            queryWrapper.eq(LtkjJianchajianyanTree::getSqdh,sqdh);
                            if (ltkjJianchajianyanTreeService.getOne(queryWrapper) == null) {
                                tree.setSqdh(sqdh);
                                break;
                            }
                        }
                    }
                    tmh = tree.getSqdh()+"_"+tree.getHisXmdm();
                }else{
                    tmh = tree.getSqdh();
                }
                String shys = "";
                for (Object o : lis) {
                    cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) o;
                    if (StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) tmh = jsonObject.getStr("jyxh");
                    if (StrUtil.isNotBlank(jsonObject.getStr("shys"))) shys = jsonObject.getStr("shys");
                    if (StrUtil.isNotBlank(tmh) && StrUtil.isNotBlank(shys) && StrUtil.isNotBlank(jsonObject.getStr("jyxh"))) break;
                }
                hysqd.setTmh(tmh);
    //            if (StrUtil.isNotBlank(xmdm)) {
    //                hysqd.setXmid(xmdm);
    //                hysqd.setXmmc(project.getHisXmmc());
    //            }else {
    //                hysqd.setXmid(String.valueOf(project.getProId()));
    //                hysqd.setXmmc(project.getProName());
    //            }
                hysqd.setXmid(project.getProId().toString());
                hysqd.setXmmc(project.getProName());
                hysqd.setSqsj(format.format(tree.getCreateTime()));
                hysqd.setJgsj(format.format(new Date()));
                hysqd.setShrxm(shys);
                hysqd.setCreateTime(new Date());
    //            hysqd.setBbmc();
                hysqdService.deletedByTjhAndXmId(hysqd.getTjh(),hysqd.getXmid());
                hybgdService.deletedLtkjHybgdByTjhAndTmh(tmh);
                hysqdService.save(hysqd);
                for (Object object : lis) {
                    cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) object;
                    LtkjHybgd hybgd = new LtkjHybgd();
                    hybgd.setTmh(tmh);
                    hybgd.setJcxmid(jsonObject.getStr("jcxmid"));
                    hybgd.setJcxm(jsonObject.getStr("proName"));
                    hybgd.setJyjg(jsonObject.getStr("proResult"));
                    hybgd.setJgdw(jsonObject.getStr("company"));
                    String tjStandardGtValue = jsonObject.getStr("tjStandardGtValue");
                    String zdz = "";
                    String zxz = "";
                    if (tjStandardGtValue.contains("-")){
                        String[] split = tjStandardGtValue.split("-");
                        zxz = split[0].trim();
                        zdz = split[1].trim();
                    }
                    hybgd.setFwzdz(zdz);
                    hybgd.setFwzgz(zxz);
                    hybgd.setFwz(tjStandardGtValue);
                    hybgd.setJysj(jsonObject.getStr("examinationDate"));
                    hybgd.setShsj(jsonObject.getStr("examinationDate"));
                    hybgd.setJyys(jsonObject.getStr("checkDoctorName"));
                    hybgd.setShysmc(shys);
                    hybgd.setYcbz(jsonObject.getStr("ycbz"));
                    hybgd.setCreateTime(new Date());
                    hybgdService.save(hybgd);
                }
                try {
                    testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId());
                }catch (Exception e){
@@ -376,733 +444,23 @@
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("同步失败请重试");
                }
            } else {
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return AjaxResult.error("同步失败请重试");
                return AjaxResult.success();
            }
            return AjaxResult.success();
        } catch (NoTransactionException e) {
            log.error(String.valueOf(e));
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return AjaxResult.error("同步失败请重试");
        }
    }
    @PostMapping(value = "/callback")
    public void callback(@RequestBody JSONObject json) {
        System.out.println("===================记录打印次数====================");
        System.out.println(json.toJSONString());
        String tjNumber = json.get("tjNumber").toString();
        String reportName = json.get("reportName").toString();
        System.out.println("用户: "+tjNumber+reportName+" 已打印");
    }
        @PostMapping(value = "/callback")
        public void callback(@RequestBody JSONObject json) {
            System.out.println("===================记录打印次数====================");
            System.out.println(json.toJSONString());
            String tjNumber = json.get("tjNumber").toString();
            String reportName = json.get("reportName").toString();
            System.out.println("用户: "+tjNumber+reportName+" 已打印");
        }
//    @Autowired
//    private ITjCustomerService tjCustomerService;
//
//    @Autowired
//    private HisApiGetMethodService service;
//
//    private static final String HIS_URL = "https://mock.mengxuegu.com/mock/664d3dbce45d2156fa209c80/example/api/His/HisRequest";
//
//
//    @GetMapping("/his")
//    public AjaxResult Outpinconapply() {
//        Map<String, Object> maps = new HashMap<>();
//        maps.put("his_registration_id","20240704000218");
//        maps.put("ksbm", "体检中心");
//        maps.put("pagecount", 100);
//        maps.put("page", 1);
//       service.getHISDataNew("", maps);
//        return AjaxResult.success();
//    }
//    @PostMapping("/Outpincreateapply")
//    @ApiOperation(value = "新增/修改门诊注册信息")
//    public AjaxResult Outpincreateapply(@RequestBody TjCustomer customer) {
//        Map<String, Object> map = new HashMap<>();
//        if (null != customer.getCusId()) {
//            map.put("pationid", customer.getCusId());
//        } else {
//            map.put("pationid", null);
//        }
//        map.put("brxm", customer.getCusName());
//        map.put("brxb", customer.getCusSex());
//        map.put("csrq", customer.getCusBrithday());
//        map.put("brnl", customer.getAge());
//        map.put("brnldw", customer.getAgeUnit());
//        map.put("addr", customer.getAddr());
//        map.put("gzdw", null);
//        map.put("dwdz", null);
//        map.put("lxr", customer.getCusName());
//        map.put("lxrdh", customer.getCusPhone());
//        map.put("lxrgx", "本人");
//        map.put("sfzh", customer.getCusIdcard());
//        map.put("jhrxm", null);
//        map.put("jhrsfzh", null);
//        map.put("mz", customer.getCusNational());
//        map.put("zy", customer.getCareer());
//        map.put("fbbm", null);
//        map.put("czy", customer.getCreateBy());
//        map.put("jkkkh", customer.getIndexCard());
//        map.put("mindex_id", customer.getIndexCard());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpinconapply")
//    @ApiOperation(value = "门诊医生接诊")
//    public AjaxResult Outpinconapply(@RequestParam @ApiParam(value = "就诊号") String jzh,
//                                     @ApiParam(value = "接诊日期") @RequestParam Date jzrq,
//                                     @ApiParam(value = "接诊医师") @RequestParam String jzysbm) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("jzh",jzh);
//        map.put("jzrq",jzrq);
//        map.put("jzysbm",jzysbm);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpinunconapply")
//    @ApiOperation(value = "门诊医生取消接诊")
//    public AjaxResult Outpinunconapply(@RequestParam @ApiParam(value = "就诊号") String jzh,
//                                     @ApiParam(value = "接诊日期") @RequestParam Date jzrq,
//                                     @ApiParam(value = "接诊医师") @RequestParam String jzysbm) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("jzh",jzh);
//        map.put("jzrq",jzrq);
//        map.put("jzysbm",jzysbm);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Outpinimpapply")
//    @ApiOperation(value = "新增/修改门诊诊断")
//    public AjaxResult Outpinimpapply(@RequestBody OutpinimpapplyDto dto ) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dto.getHisRegistrationId());
//        map.put("mzzdid",dto.getMzzdid());
//        map.put("sqysbm",dto.getSqysbm());
//        map.put("mzksbm",dto.getMzksbm());
//        map.put("fbrq",dto.getFbrq());
//        map.put("zdrq",dto.getZdrq());
//        map.put("czybm",dto.getCzybm());
//        map.put("czyksbm",dto.getCzyksbm());
//        map.put("zs",dto.getZs());
//        map.put("bs",dto.getBs());
//        map.put("clyz",dto.getClyz());
//        map.put("jws",dto.getJws());
//        map.put("tgjc",dto.getTgjc());
//        map.put("gms",dto.getGms());
//        map.put("jbbm",dto.getJbbm());
//        map.put("jbbm1",dto.getJbbm1());
//        map.put("jbbm2",dto.getJbbm2());
////        map.put("tw",dto.getTw());
////        map.put("mb",dto.getMb());
////        map.put("hx",dto.getHx());
////        map.put("bp",dto.getBp());
//        map.put("fzbz",dto.getFzbz());
//        map.put("hzqx",dto.getHzqx());
//        map.put("sfqc",dto.getSfqc());
//        map.put("qchs",dto.getQchs());
//        map.put("sfqj",dto.getSfqj());
//        map.put("jzqk",dto.getJzqk());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpinmesapply")
//    @ApiOperation(value = "门诊预交收费")
//    public AjaxResult Outpinmesapply(@RequestParam @ApiParam(value = "门诊患者 ID") String pationid,
//                                       @ApiParam(value = "操作员") @RequestParam String czybm,
//                                       @ApiParam(value = "支付类型编码") @RequestParam String zflxbm,
//                                       @ApiParam(value = "预交金额") @RequestParam int yjje) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("pationid",pationid);
//        map.put("czybm",czybm);
//        map.put("zflxbm",zflxbm);
//        map.put("yjje",yjje);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpinregapply")
//    @ApiOperation(value = "新增/修改门诊挂号申请")
//    public AjaxResult Outpinregapply(@RequestBody OutpinregapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("pationid",dao.getPationid());
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("sqysbm",dao.getSqysbm());
//        map.put("mzksbm",dao.getMzksbm());
//        map.put("czybm",dao.getCzybm());
//        map.put("sfjz",dao.getSfjz());
//        map.put("ghzlbm",dao.getGhzlbm());
//        map.put("ywckbm",dao.getYwckbm());
//        map.put("sflstd",dao.getSflstd());
//        map.put("ghrq",dao.getGhrq());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Outpintestapply")
//    @ApiOperation(value = "门诊检验申请")
//    public AjaxResult Outpintestapply(@RequestBody OutpintestapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("sfzh",dao.getHisRegistrationId());
//        map.put("sqysbm",dao.getSqysbm());
//        map.put("mzksbm",dao.getMzksbm());
//        map.put("sjrq",dao.getSjrq());
//        map.put("czybm",dao.getCzybm());
//        map.put("czyksbm",dao.getCzyksbm());
//        map.put("sfjz",dao.getSfjz());
//        map.put("details",dao.getDetails());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpindeltestapply")
//    @ApiOperation(value = "作废门诊检验申请")
//    public AjaxResult Outpindeltestapply(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                     @ApiParam(value = "操作员") @RequestParam String czybm,
//                                     @ApiParam(value = "申请单号") @RequestParam String sqdh) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("czybm",czybm);
//        map.put("zflxbm",sqdh);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpinexamapply")
//    @ApiOperation(value = "门诊检查申请")
//    public AjaxResult Outpinexamapply(@RequestBody OutpinexamapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("sfzh",dao.getHisRegistrationId());
//        map.put("sqysbm",dao.getSqysbm());
//        map.put("mzksbm",dao.getMzksbm());
//        map.put("sjrq",dao.getSjrq());
//        map.put("czybm",dao.getCzybm());
//        map.put("czyksbm",dao.getCzyksbm());
//        map.put("lczz",dao.getLczz());
//        map.put("lczd",dao.getLczd());
//        map.put("jcms",dao.getJcms());
//        map.put("jcbw",dao.getJcbw());
//        map.put("sfjz",dao.getSfjz());
//        map.put("details",dao.getDetails());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpindelexamapply")
//    @ApiOperation(value = "作废门诊检查申请")
//    public AjaxResult Outpindelexamapply(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                         @ApiParam(value = "操作员") @RequestParam String czybm,
//                                         @ApiParam(value = "申请单号") @RequestParam String sqdh) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("czybm",czybm);
//        map.put("zflxbm",sqdh);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpinmedapply")
//    @ApiOperation(value = "门诊医疗医嘱申请")
//    public AjaxResult Outpinmedapply(@RequestBody OutpinmedapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("sfzh",dao.getHisRegistrationId());
//        map.put("sqysbm",dao.getSqysbm());
//        map.put("mzksbm",dao.getMzksbm());
//        map.put("sjrq",dao.getSjrq());
//        map.put("czybm",dao.getCzybm());
//        map.put("czyksbm",dao.getCzyksbm());
//        map.put("bqsm",dao.getBqsm());
//        map.put("sfjz",dao.getSfjz());
//        map.put("details",dao.getDetails());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpindelmedapply")
//    @ApiOperation(value = "作废门诊医疗医嘱申请")
//    public AjaxResult Outpindelmedapply(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                         @ApiParam(value = "操作员") @RequestParam String czybm,
//                                         @ApiParam(value = "申请单号") @RequestParam String sqdh) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("czybm",czybm);
//        map.put("zflxbm",sqdh);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpintreatapply")
//    @ApiOperation(value = "门诊治疗处置申请")
//    public AjaxResult Outpintreatapply(@RequestBody OutpintreatapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("sfzh",dao.getHisRegistrationId());
//        map.put("sqysbm",dao.getSqysbm());
//        map.put("mzksbm",dao.getMzksbm());
//        map.put("sjrq",dao.getSjrq());
//        map.put("czybm",dao.getCzybm());
//        map.put("czyksbm",dao.getCzyksbm());
//        map.put("bqsm",dao.getBqsm());
//        map.put("sfjz",dao.getSfjz());
//        map.put("zlbz",dao.getZlbz());
//        map.put("details",dao.getDetails());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Outpintdelreatapply")
//    @ApiOperation(value = "作废门诊治疗处置申请")
//    public AjaxResult Outpintdelreatapply(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                        @ApiParam(value = "操作员") @RequestParam String czybm,
//                                        @ApiParam(value = "申请单号") @RequestParam String sqdh) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("czybm",czybm);
//        map.put("zflxbm",sqdh);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Outpinmedicapply")
//    @ApiOperation(value = "门诊药品申请")
//    public AjaxResult Outpinmedicapply(@RequestBody OutpinmedicapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("sfzh",dao.getHisRegistrationId());
//        map.put("sqysbm",dao.getSqysbm());
//        map.put("mzksbm",dao.getMzksbm());
//        map.put("sjrq",dao.getSjrq());
//        map.put("czybm",dao.getCzybm());
//        map.put("czyksbm",dao.getCzyksbm());
//        map.put("cflxbm",dao.getCflxbm());
//        map.put("yfbm",dao.getYfbm());
//        map.put("fyts",dao.getFyts());
//        map.put("mzzd",dao.getMzzd());
//        map.put("details",dao.getDetails());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Outpindelmedicapply")
//    @ApiOperation(value = "作废门诊药品申请")
//    public AjaxResult Outpindelmedicapply(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                          @ApiParam(value = "操作员") @RequestParam String czybm,
//                                          @ApiParam(value = "申请单号") @RequestParam String sqdh) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("czybm",czybm);
//        map.put("zflxbm",sqdh);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getexamapplyinfo")
//    @ApiOperation(value = "获取检查申请信息")
//    public AjaxResult Getexamapplyinfo(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                          @ApiParam(value = "科室编码") @RequestParam String ksbm,
//                                          @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                          @ApiParam(value = "开始日期") @RequestParam Date ksrq) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("ksbm",ksbm);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getexamreportinfo")
//    @ApiOperation(value = "获取检查报告信息")
//    public AjaxResult Getexamreportinfo(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                       @ApiParam(value = "科室名称") @RequestParam String ksmc,
//                                       @ApiParam(value = "患者 ID") @RequestParam String pationid,
//                                       @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                       @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                       @ApiParam(value = "页大小,最小 10 行") @RequestParam(defaultValue = "10") Integer pagecount,
//                                       @ApiParam(value = "页数,最小 1 页") @RequestParam(defaultValue = "1") Integer page,
//                                       @ApiParam(value = "状态:已登记 ,已诊断,已作废") @RequestParam String status,
//                                       @ApiParam(value = "卡类型 5 就诊流水号 9 电子健康卡 流水号 默认 5") @RequestParam String cardtype) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("ksmc",ksmc);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("pationid",pationid);
//        map.put("pagecount",pagecount);
//        map.put("page",page);
//        map.put("status",status);
//        map.put("cardtype",cardtype);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Examreportrecordinfo")
//    @ApiOperation(value = "新增/修改检查报告记录")
//    public AjaxResult Examreportrecordinfo(@RequestBody ExamreportrecordinfoDto dto) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dto.getHisRegistrationId());
//        map.put("jcbgid",dto.getJcbgid());
//        map.put("sfjz",dto.getSfjz());
//        map.put("pationid",dto.getPationid());
//        map.put("mzzybz",dto.getMzzybz());
//        map.put("brxm",dto.getBrxm());
//        map.put("brxb",dto.getBrxb());
//        map.put("brnl",dto.getBrnl());
//        map.put("brnldw",dto.getBrnldw());
//        map.put("lxrdh",dto.getLxrdh());
//        map.put("hzksbm",dto.getHzksbm());
//        map.put("sqdh",dto.getSqdh());
//        map.put("sqjgdm",dto.getSqjgdm());
//        map.put("sqsj",dto.getSqsj());
//        map.put("sqrbm",dto.getSqrbm());
//        map.put("sqrxm",dto.getSqrxm());
//        map.put("hzzs",dto.getHzzs());
//        map.put("hzbs",dto.getHzbs());
//        map.put("xyzdbm",dto.getXyzdbm());
//        map.put("xyzdmc",dto.getXyzdmc());
//        map.put("zdrq",dto.getZdrq());
//        map.put("fbrq",dto.getFbrq());
//        map.put("tsjcbz",dto.getTsjcbz());
//        map.put("jcxmdm",dto.getJcxmdm());
//        map.put("jcxmmc",dto.getJcxmmc());
//        map.put("jcjgdm",dto.getJcjgdm());
//        map.put("jcjsbh",dto.getJcjsbh());
//        map.put("jcjsxm",dto.getJcjsxm());
//        map.put("jcrq",dto.getJcrq());
//        map.put("jcbgdbh",dto.getJcbgdbh());
//        map.put("jcff",dto.getJcff());
//        map.put("jcksbh",dto.getJcksbh());
//        map.put("jcksmc",dto.getJcksmc());
//        map.put("yqbm",dto.getYqbm());
//        map.put("jcbgbz",dto.getJcbgbz());
//        map.put("jcbwdm",dto.getJcbwdm());
//        map.put("bgksbh",dto.getBgksbh());
//        map.put("bgksmc",dto.getBgksmc());
//        map.put("bgrq",dto.getBgrq());
//        map.put("bgysbh",dto.getBgysbh());
//        map.put("bgysxm",dto.getBgysxm());
//        map.put("shysbh",dto.getShysbh());
//        map.put("shysxm",dto.getShysxm());
//        map.put("jch",dto.getJch());
//        map.put("yxh",dto.getYxh());
//        map.put("kdsj",dto.getKdsj());
//        map.put("jclx",dto.getJclx());
//        map.put("yyh",dto.getYyh());
//        map.put("yxbx",dto.getYxbx());
//        map.put("yxzd",dto.getYxzd());
//        map.put("sfyyx",dto.getSfyyx());
//        map.put("yxzl",dto.getYxzl());
//        map.put("yxs",dto.getYxs());
//        map.put("jlysbh",dto.getJlysbh());
//        map.put("jlrq",dto.getJlrq());
//        map.put("bgzt",dto.getBgzt());
//        map.put("lczdfh",dto.getLczdfh());
//        map.put("wjz",dto.getWjz());
//        map.put("wjzzdmc",dto.getWjzzdmc());
//        map.put("wjzjcysyj",dto.getWjzjcysyj());
//        map.put("wjzjcysbh",dto.getWjzjcysbh());
//        map.put("wjzjcysxyj",dto.getWjzjcysyj());
//        map.put("wjzqrrq",dto.getWjzqrrq());
//        map.put("wjzjsrbh",dto.getWjzjsrbh());
//        map.put("wjzjsrxm",dto.getWjzjsrxm());
//        map.put("wjzjsrq",dto.getWjzjsrq());
//        map.put("wjzclysbh",dto.getWjzclysbh());
//        map.put("wjzclysxm",dto.getWjzclysxm());
//        map.put("wjzclyj",dto.getWjzclyj());
//        map.put("wjzclrq",dto.getWjzclrq());
//        map.put("sfkf",dto.getSfkf());
//        map.put("yzid",dto.getYzid());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Getexamurgentinfo")
//    @ApiOperation(value = "获取检查危急值信息")
//    public AjaxResult Getexamurgentinfo(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                        @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                        @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                        @ApiParam(value = "页大小,最小 10 行") @RequestParam(defaultValue = "10") Integer pagecount,
//                                        @ApiParam(value = "页数,最小 1 页") @RequestParam(defaultValue = "1") Integer page) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("pagecount",pagecount);
//        map.put("page",page);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getexamimageinfo")
//    @ApiOperation(value = "获取检查影像信息")
//    public AjaxResult Getexamimageinfo(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                        @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                        @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                        @ApiParam(value = "页大小,最小 10 行") @RequestParam(defaultValue = "10") Integer pagecount,
//                                        @ApiParam(value = "页数,最小 1 页") @RequestParam(defaultValue = "1") Integer page) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("pagecount",pagecount);
//        map.put("page",page);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getlabapplyinfo")
//    @ApiOperation(value = "获取检验申请信息")
//    public AjaxResult Getlabapplyinfo(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                       @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                       @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                       @ApiParam(value = "卡类型, 1 电子健康卡 2 身份证 3" +
//                                               "诊疗卡 4 患者 ID 5 就诊流水号 默认" +
//                                               "4 患者 ID") @RequestParam String cardtype,
//                                       @ApiParam(value = "业务类型:门诊、住院、体检、其他") @RequestParam String mzorzy,
//                                       @ApiParam(value = "申请科室") @RequestParam String ksbm) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("cardtype",cardtype);
//        map.put("mzorzy",mzorzy);
//        map.put("ksbm",ksbm);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getlabreportinfo")
//    @ApiOperation(value = "获取检验报告记录信息")
//    public AjaxResult Getlabreportinfo(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                       @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                       @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                       @ApiParam(value = "申请科室") @RequestParam String ksbm,
//                                       @ApiParam(value = "申请科室") @RequestParam String pationid,
//                                       @ApiParam(value = "页大小,最小 10 行") @RequestParam(defaultValue = "10") Integer pagecount,
//                                       @ApiParam(value = "页数,最小 1 页") @RequestParam(defaultValue = "1") Integer page) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("ksbm",ksbm);
//        map.put("pationid",pationid);
//        map.put("pagecount",pagecount);
//        map.put("page",page);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//
//    @PostMapping("/Getlabgermrepinfo")
//    @ApiOperation(value = "获取微生物报告记录信息")
//    public AjaxResult Getlabgermrepinfo(@RequestParam @ApiParam(value = "检验报告 ID") String jybgid) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("jybgid",jybgid);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Getlabgermdetailinfo")
//    @ApiOperation(value = "获取微生物药敏信息")
//    public AjaxResult Getlabgermdetailinfo(@RequestParam @ApiParam(value = "检验报告 ID") String jybgid) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("jybgid",jybgid);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getlaburgentinfo")
//    @ApiOperation(value = "获取危急值信息")
//    public AjaxResult Getlaburgentinfo(@RequestParam @ApiParam(value = "检验报告 ID") String jybgid,
//                                       @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                       @ApiParam(value = "开始日期") @RequestParam Date ksrq) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("jybgid",jybgid);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Labreportapply")
//    @ApiOperation(value = "检验样本拒收记录")
//    public AjaxResult Labreportapply(@RequestParam @ApiParam(value = "条码号") String tmh,
//                                       @ApiParam(value = "接收人员代码,字典代码") @RequestParam String jsrydm,
//                                       @ApiParam(value = "拒收报告日期,yyyy-mm-dd hh:mm:ss") @RequestParam Date jsrq,
//                                       @ApiParam(value = "拒收原因") @RequestParam String jsyy) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("tmh",tmh);
//        map.put("jsrydm",jsrydm);
//        map.put("jsrq",jsrq);
//        map.put("jsyy",jsyy);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getlabreginfoinfo")
//    @ApiOperation(value = "获取检验登记信息")
//    public AjaxResult Getlabreginfoinfo(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                        @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                        @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                        @ApiParam(value = "状态: 已申请 已采样 已检测 已审" +
//                                                "核 已作废") @RequestParam String Status,
//                                        @ApiParam(value = "患者 ID") @RequestParam String pationid,
//                                        @ApiParam(value = "页大小,最小 10 行") @RequestParam(defaultValue = "10") Integer pagecount,
//                                        @ApiParam(value = "页数,最小 1 页") @RequestParam(defaultValue = "1") Integer page) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("Status",Status);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("pationid",pationid);
//        map.put("pagecount",pagecount);
//        map.put("page",page);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//    @PostMapping("/Testcostapply")
//    @ApiOperation(value = "体检费用申请")
//    public AjaxResult Testcostapply(@RequestBody TestcostapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("czybm",dao.getCzybm());
//        map.put("czyksbm",dao.getCzyksbm());
//        map.put("brxm",dao.getBrxm());
//        map.put("ywck",dao.getYwck());
//        map.put("sfzh",dao.getSfzh());
//        map.put("jkkkh",dao.getJkkkh());
//        map.put("mindexId",dao.getMindexId());
//        map.put("brxb",dao.getBrxb());
//        map.put("csrq",dao.getCsrq());
//        map.put("brnl",dao.getBrnl());
//        map.put("brnldw",dao.getBrnldw());
//        map.put("addr",dao.getAddr());
//        map.put("lxrdh",dao.getLxrdh());
//        map.put("mz",dao.getMz());
//        map.put("zy",dao.getZy());
//        map.put("details",dao.getDetails());
//        map.put("mxfyxmbm",dao.getMxfyxmbm());
//        map.put("sfzhfy",dao.getSfzhfy());
//        map.put("sl",dao.getSl());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Testregapply")
//    @ApiOperation(value = "新增或修改体检登记信息")
//    public AjaxResult Testregapply(@RequestBody TestregapplyDto dao) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",dao.getHisRegistrationId());
//        map.put("czybm",dao.getCzybm());
//        map.put("czyksbm",dao.getCzyksbm());
//        map.put("tjbh",dao.getTjbh());
//        map.put("grbh",dao.getGrbh());
//        map.put("sfzh",dao.getSfzh());
//        map.put("xm",dao.getXm());
//        map.put("xb",dao.getXb());
//        map.put("nl",dao.getNl());
//        map.put("csrq",dao.getCsrq());
//        map.put("nldw",dao.getNldw());
//        map.put("addr",dao.getAddr());
//        map.put("sj",dao.getSj());
//        map.put("dwbm",dao.getDwbm());
//        map.put("tcbm",dao.getTcbm());
//        map.put("details",dao.getDetails());
//        map.put("je",dao.getJe());
//        map.put("sjje",dao.getSjje());
//        map.put("details_mx",dao.getDetailsMx());
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getoutpatientcostinfo")
//    @ApiOperation(value = "获取门诊患者费用清单信息")
//    public AjaxResult Getoutpatientcostinfo(@RequestParam @ApiParam(value = "卡类型 1 电子健康卡 2 身份证 3 诊" +
//            "疗卡 4 患者 ID 5 就诊流水号 9 电子" +
//            "健康卡流水号") String cardtype,
//                                        @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                        @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                        @ApiParam(value = "检索码" +
//                                                "1 电子健康卡,长度>=64   2 身份证,长度=18(注册身份证或卡号身份证号码)3 诊疗卡,长度=8  4 患者 ID   5 就诊流水号   " +
//                                                "9 健康卡流水号(建档唯一号)长度n" +
//                                                "14") @RequestParam String input,
//                                        @ApiParam(value = "页大小,最小 10 行") @RequestParam(defaultValue = "10") Integer pagecount,
//                                        @ApiParam(value = "页数,最小 1 页") @RequestParam(defaultValue = "1") Integer page) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("cardtype",cardtype);
//        map.put("input",input);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("pagecount",pagecount);
//        map.put("page",page);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getoutaccountrecord")
//    @ApiOperation(value = "获取门诊结算记录")
//    public AjaxResult Getoutaccountrecord(@RequestParam @ApiParam(value = "就诊号 ID") String hisRegistrationId,
//                                          @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                          @ApiParam(value = "开始日期") @RequestParam Date ksrq,
//                                          @ApiParam(value = "页大小,最小 10 行") @RequestParam(defaultValue = "10") Integer pagecount,
//                                          @ApiParam(value = "页数,最小 1 页") @RequestParam(defaultValue = "1") Integer page) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("his_registration_id",hisRegistrationId);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        map.put("pagecount",pagecount);
//        map.put("page",page);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
//
//
//    @PostMapping("/Getpatientalterregrecord")
//    @ApiOperation(value = "获取患者注册信息(含变更记录)")
//    public AjaxResult Getpatientalterregrecord(@RequestParam @ApiParam(value = "就诊号 ID") String mzzybz,
//                                          @ApiParam(value = "结束日期") @RequestParam Date jsrq,
//                                          @ApiParam(value = "开始日期") @RequestParam Date ksrq) {
//        Map<String, Object> map = new HashMap<>();
//        map.put("mzzybz",mzzybz);
//        map.put("jsrq",jsrq);
//        map.put("ksrq",ksrq);
//        String post = HttpClientUtils.sendPost(HIS_URL, map);
//        return AjaxResult.success(post);
//    }
}