liusheng
2025-04-30 f37340d34e42ded944304ad0601d3f3abc9d55bd
代码提交
已添加1个文件
已修改11个文件
315 ■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/enums/MsgLSEnum.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/enums/WxGZHEnum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatArchiveReq.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -1,11 +1,14 @@
package com.ruoyi.web.component;
import afu.org.checkerframework.checker.oigj.qual.O;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.MsgLSEnum;
import com.ruoyi.common.enums.ServiceFromEnum;
import com.ruoyi.common.enums.WxGZHEnum;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.HttpUtil;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
@@ -17,6 +20,7 @@
import com.smartor.service.IBaseSmsaccountService;
import com.smartor.service.IServiceOutPathService;
import com.smartor.service.IServiceSubtaskRecordService;
import com.sun.org.apache.bcel.internal.generic.NEW;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -32,6 +36,7 @@
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import static cn.hutool.core.convert.Convert.numberToWord;
import static cn.hutool.core.convert.Convert.toHex;
@Slf4j
@@ -79,6 +84,9 @@
    @Value("${xhsmsPath}")
    private String xhsmsPath;
    @Value("${visitHosp}")
    private Integer visitHosp;
    // åˆ›å»ºå›ºå®šå¤§å°çš„线程池
    private static final ExecutorService executorService = Executors.newFixedThreadPool(10);
@@ -342,10 +350,37 @@
                                sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!");
                            }
                            //短信还需要模板
                            Map<String, String> req = new HashMap<>();
                            req.put("phone", sendMagParam.getPhone());
                            req.put("content", sendMagParam.getContent());
                            String s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
                            String s = null;
                            if (visitHosp == 1) {
                                //新华的短信发送方式
                                Map<String, String> req = new HashMap<>();
                                req.put("phone", sendMagParam.getPhone());
                                req.put("content", sendMagParam.getContent());
                                s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
                            } else if (visitHosp == 2) {
                                //丽水的短信发送方式
                                String address = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
                                if (StringUtils.isEmpty(address)) {
                                    ServiceSubtask ss = new ServiceSubtask();
                                    ss.setResult("error");
                                    ss.setRemark("短信发送失败,该机构没有配置短信地址");
                                    ss.setSendstate(5L);
                                    ss.setId(serviceSubtask.getId());
                                    ss.setFinishtime(new Date());
                                    serviceSubtaskMapper.updateServiceSubtask(ss);
                                    continue;
                                }
                                String dxCode = getDXCode(address, sendMagParam.getPhone(), sendMagParam.getContent(), "", "", MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()));
                                log.error("---------丽水短信发送结果:{}-------", dxCode);
                                ObjectMapper objectMapper = new ObjectMapper();
                                Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class);
                                String code = textParam.get("code").toString();
                                if (code.equals("0")) {
                                    s = "true";
                                } else {
                                    throw new BaseException(null);
                                }
                            }
                            if (s.equals("true")) {
                                ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                                serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
@@ -499,7 +534,7 @@
                            }
                            String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(),wxqqxx);
                            String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx);
                            Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
                            if (!map.isEmpty()) {
                                serviceSubtask.setResult("success");
@@ -643,7 +678,7 @@
        return key;
    }
    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String patientname, String setPatientid,List<String> wxqqxx) {
    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String patientname, String setPatientid, List<String> wxqqxx) {
        XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
        xinHuaWXReq.setIdcard(idcard);
        xinHuaWXReq.setUrl(url);
@@ -668,6 +703,32 @@
        return code;
    }
    private String getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap) {
        Map<String, Object> map = new LinkedHashMap<>();
        Map<String, Object> YeWuXX = new LinkedHashMap<>();
        Map<String, Object> DuanXinXX = new LinkedHashMap<>();
        DuanXinXX.put("ShouJiHM", ShouJiHM);
        DuanXinXX.put("FaSongNR", FaSongNR);
        DuanXinXX.put("FaSongRID", FaSongRID);
        DuanXinXX.put("FaSongRXM", FaSongRXM);
        YeWuXX.put("DuanXinXX", DuanXinXX);
        map.put("XiaoXiTou", headerMap);
        map.put("DuanXinXX", DuanXinXX);
        String body = new Gson().toJson(map);
        String result = HttpUtils.sendPost(address, body);
        log.error("--------result的值为:{}-----", result);
        JSONObject jsonObject = JSONObject.parseObject(result);
        String code = (String) jsonObject.toString();
        return code;
    }
    public String encode(String arg) {
        if (arg == null) {
            arg = "";
ruoyi-common/src/main/java/com/ruoyi/common/enums/MsgLSEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.ruoyi.common.enums;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.sun.org.apache.bcel.internal.generic.NEW;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
/**
 * ä¸½æ°´çŸ­ä¿¡æžšä¸¾
 * XiaoXiLX    FZ_PT_DuanXinFS
 * XiaoXiMC    çŸ­ä¿¡å‘送
 */
public enum MsgLSEnum {
    ZYY("47231022633110211A2101", "https://9.0.124.104:13011/mediinfo-grus-fuwuzxwg/api/esb/lyraAsyncRun", "1400360867068907520", "丽水市中医院"), JN("47255004333112711A1001", null, "1400361376454545408", "景宁畲族自治县人民医院");
    private String orgid;
    private String address;
    private String ZuHuID;
    private String ZuHuMC;
    MsgLSEnum(String orgid, String address, String ZuHuID, String ZuHuMC) {
        this.orgid = orgid;
        this.ZuHuID = ZuHuID;
        this.ZuHuMC = ZuHuMC;
        this.address = address;
    }
    public static Map<String, Object> getHeaderByCode(String orgid) {
        Map<String, Object> map = new LinkedHashMap<>();
        MsgLSEnum[] organEnums = values();
        for (int i = 0; i < organEnums.length; i++) {
            MsgLSEnum organEnum = organEnums[i];
            if (organEnum.getOrgid().equals(orgid)) {
                map.put("XiaoXiID", IdUtils.simpleUUID());
                map.put("FaSongSJ", new Date());
                map.put("ZuHuID", organEnum.getZuHuID());
                map.put("ZuHuMC", organEnum.getZuHuMC());
                map.put("FaSongJGID", organEnum.getOrgid());
                map.put("FaSongJGMC", organEnum.getZuHuMC());
                map.put("FaSongXTJC", "随访系统");
                map.put("FaSongXTMC", "随访系统");
                map.put("FaSongFCSJC", "亥尔时");
                map.put("XiaoXiLX", "FZ_PT_DuanXinFS");
                map.put("XiaoXiMC", "短信发送");
            }
        }
        return map;
    }
    public static String getAddressByCode(String orgid) {
        MsgLSEnum[] organEnums = values();
        for (int i = 0; i < organEnums.length; i++) {
            MsgLSEnum organEnum = organEnums[i];
            if (organEnum.getOrgid().equals(orgid)) {
                return organEnum.getAddress();
            }
        }
        return null;
    }
    public String getOrgid() {
        return orgid;
    }
    public void setOrgid(String orgid) {
        this.orgid = orgid;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getZuHuID() {
        return ZuHuID;
    }
    public void setZuHuID(String zuHuID) {
        ZuHuID = zuHuID;
    }
    public String getZuHuMC() {
        return ZuHuMC;
    }
    public void setZuHuMC(String zuHuMC) {
        ZuHuMC = zuHuMC;
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/enums/WxGZHEnum.java
@@ -9,7 +9,7 @@
 * ä¸½æ°´å…¬ä¼—号
 */
public enum WxGZHEnum {
    ZYY("47231022633110211A2101", "3311000002", "MzMxMTAwMDAwMg==", "http://192.168.10.170:18001/frontend/medical/api"),
    ZYY("47231022633110211A2101", "3311000002", "MzMxMTAwMDAwMg==", "http://40.78.1.5:8101/frontend/medical/api"),
    JN("47255004333112711A1001", null, null, null);
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -8,8 +8,10 @@
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.MsgLSEnum;
import com.ruoyi.common.enums.ServiceFromEnum;
import com.ruoyi.common.enums.WxGZHEnum;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.HttpUtil;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
@@ -472,10 +474,34 @@
                                sendMagParam.setPhone(serviceSubtask.getPhone());
                                sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format);
                                sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!");
                                Map<String, String> req = new HashMap<>();
                                req.put("phone", sendMagParam.getPhone());
                                req.put("content", sendMagParam.getContent());
                                String isSuccess = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
                                String isSuccess = null;
                                if (visitHosp == 1) {
                                    Map<String, String> req = new HashMap<>();
                                    req.put("phone", sendMagParam.getPhone());
                                    req.put("content", sendMagParam.getContent());
                                    isSuccess = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req));
                                } else if (visitHosp == 2) {
                                    //丽水的短信发送方式
                                    String address = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid());
                                    if (StringUtils.isEmpty(address)) {
                                        ServiceSubtask ss = new ServiceSubtask();
                                        ss.setResult("error");
                                        ss.setRemark("短信发送失败,该机构没有配置短信地址");
                                        ss.setSendstate(5L);
                                        ss.setId(serviceSubtask.getId());
                                        ss.setFinishtime(new Date());
                                        serviceSubtaskMapper.updateServiceSubtask(ss);
                                        continue;
                                    }
                                    String dxCode = getDXCode(address, sendMagParam.getPhone(), sendMagParam.getContent(), "", "", MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()));
                                    log.error("---------丽水短信发送结果:{}-------", dxCode);
                                    ObjectMapper objectMapper = new ObjectMapper();
                                    Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class);
                                    String code = textParam.get("code").toString();
                                    if (code.equals("0")) {
                                        isSuccess = "true";
                                    }
                                }
                                //任务发送记录
                                ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                                serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
@@ -816,6 +842,31 @@
        return key;
    }
    private String getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap) {
        Map<String, Object> map = new LinkedHashMap<>();
        Map<String, Object> YeWuXX = new LinkedHashMap<>();
        Map<String, Object> DuanXinXX = new LinkedHashMap<>();
        DuanXinXX.put("ShouJiHM", ShouJiHM);
        DuanXinXX.put("FaSongNR", FaSongNR);
        DuanXinXX.put("FaSongRID", FaSongRID);
        DuanXinXX.put("FaSongRXM", FaSongRXM);
        YeWuXX.put("DuanXinXX", DuanXinXX);
        map.put("XiaoXiTou", headerMap);
        map.put("DuanXinXX", DuanXinXX);
        String body = new Gson().toJson(map);
        String result = HttpUtils.sendPost(address, body);
        log.error("--------result的值为:{}-----", result);
        JSONObject jsonObject = JSONObject.parseObject(result);
        String code = (String) jsonObject.toString();
        return code;
    }
    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String setPatientname, String setPatientid, List<String> wxqqxx) {
        XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
        xinHuaWXReq.setIdcard(idcard);
smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java
@@ -82,6 +82,15 @@
    private String guid;
    /**
     * GUID
     */
    @ApiModelProperty("出院诊断")
    private String leavediagname;
    @ApiModelProperty("出院诊断ICD值")
    private String leaveicd10code;
    /**
     * å§“名
     */
    @ApiModelProperty("患者编号")
smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
@@ -45,8 +45,11 @@
    /**
     * ç–¾ç—…名称
     */
    @ApiModelProperty("离院疾病名称")
    @Excel(name = " ç¦»é™¢ç–¾ç—…名称 ")
    private String leavediagname;
    @ApiModelProperty("疾病名称")
    @Excel(name = " ç–¾ç—…名称 ")
    private String diagname;
@@ -74,10 +77,10 @@
    private String telcode;
    /**
     * æ‰‹æœºå·ç 
     * ç¦»é™¢ç–¾ç—…编码
     */
    @ApiModelProperty("手机号码")
    @Excel(name = " æ‰‹æœºå·ç  ")
    @ApiModelProperty("离院疾病编码")
    @Excel(name = " ç¦»é™¢ç–¾ç—…编码 ")
    private String leaveicd10code;
    /**
smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java
@@ -157,7 +157,14 @@
     */
    @Excel(name = "疾病名称")
    @ApiModelProperty("疾病名称")
    private String icdName;
    private String leavediagname;
    /**
     * ç–¾ç—…名称
     */
    @Excel(name = "疾病名称")
    @ApiModelProperty("疾病名称")
    private String leaveicd10code;
    /**
     * æ‰‹æœºå·
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -595,9 +595,11 @@
                }
                //将查出的tag,放到patArchive1里的TagList中
                PatArchivetag patArchivetag = new PatArchivetag();
                patArchivetag.setTagname(list.get(i).getTag());
                patArchivetag.setTagid(list.get(i).getTagid());
                stringList.add(patArchivetag);
                if (StringUtils.isNotEmpty(list.get(i).getTag()) && ObjectUtils.isNotEmpty(list.get(i).getTagid())) {
                    patArchivetag.setTagname(list.get(i).getTag());
                    patArchivetag.setTagid(list.get(i).getTagid());
                    stringList.add(patArchivetag);
                }
            }
            patArchive1.setTagList(stringList.stream().collect(Collectors.toList()));
            patArchives.add(patArchive1);
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -657,6 +657,8 @@
        serviceSubtask.setDrname(patMedInhosp1.getDrname());
        serviceSubtask.setDeptcode(patMedInhosp1.getLeaveldeptcode());
        serviceSubtask.setDeptname(patMedInhosp1.getLeaveldeptname());
        serviceSubtask.setLeaveicd10code(patMedInhosp1.getLeaveicd10code());
        serviceSubtask.setLeavediagname(patMedInhosp1.getDiagname());
        serviceSubtask.setTemplateid(serviceTask.getTemplateid());
        serviceSubtask.setTemplatename(serviceTask.getTemplatename());
        serviceSubtask.setPatid(patArchive.getId());
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
@@ -269,6 +269,9 @@
        serviceSubtask.setPatid(patArchive.getId());
        serviceSubtask.setSendname(patArchive.getName());
        serviceSubtask.setSfzh(patArchive.getIdcardno());
        serviceSubtask.setLeavediagname(patMedOuthosp.getDiagname());
        serviceSubtask.setLeaveicd10code(patMedOuthosp.getIcd10code());
        serviceSubtask.setSfzh(patArchive.getIdcardno());
        serviceSubtask.setPhone(patArchive.getTelcode());
        if (StringUtils.isBlank(patArchive.getTelcode())) serviceSubtask.setPhone(patArchive.getRelativetelcode());
        serviceSubtask.setSex(patArchive.getSex());
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -341,12 +341,16 @@
            serviceSubtask1.setIsVisitAgain(2);
            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1);
            return "无需再次随访,患者被标记不需要被服务";
        } else if (ObjectUtils.isNotEmpty(serviceSubtask1.getIsVisitAgain()) && serviceSubtask1.getIsVisitAgain() == 2) {
            return "无需再次随访,该任务已经再次随访过了";
        }
        //新增再次随访任务
        ServiceSubtask serviceSubtask2 = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtask.class);
        serviceSubtask2.setId(null);
        serviceSubtask2.setVisitCount(serviceSubtask1.getVisitCount() + 1);
        serviceSubtask2.setSendstate(2L);
        serviceSubtask2.setCreateTime(new Date());
        serviceSubtask2.setUpdateTime(new Date());
        int i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask2);
        if (i == 1) {
            //新增成功后,需要将之前的任务设置为不要再随访(防止重复点,然后重复生成)
@@ -541,6 +545,8 @@
                    serviceSubtask.setDrname(patTaskRelevance.getDrname());
                    serviceSubtask.setDrcode(patTaskRelevance.getDrcode());
                    serviceSubtask.setInhosptime(patTaskRelevance.getInhosptime());
                    serviceSubtask.setLeaveicd10code(patTaskRelevance.getLeaveicd10code());
                    serviceSubtask.setLeavediagname(patTaskRelevance.getLeavediagname());
                    serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
                    serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
                    serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
@@ -117,6 +117,8 @@
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
        <result property="guid" column="guid"/>
        <result property="leavediagname" column="leavediagname"/>
        <result property="leaveicd10code" column="leaveicd10code"/>
    </resultMap>
    <sql id="selectPatArchiveVo">
@@ -546,7 +548,8 @@
        FROM
        pat_med_inhosp d
        JOIN pat_archive a ON a.id = d.patid
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid ) t ON t.patid =
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid
        ) t ON t.patid =
        d.patid
        <where>
            d.del_flag != 1
@@ -671,7 +674,8 @@
        t.tagname,
        a.pattype
        from pat_med_outhosp d JOIN pat_archive a ON a.id = d.patid
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid ) t ON t.patid =
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid
        ) t ON t.patid =
        d.patid
        <where>
            d.del_flag != 1
@@ -759,7 +763,8 @@
        t.tagname,
        a.pattype
        from pat_med_physical d JOIN pat_archive a ON a.id = d.patid
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid ) t ON t.patid =
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid
        ) t ON t.patid =
        d.patid
        <where>
            d.del_flag != 1
@@ -822,6 +827,8 @@
        d.deptcode,
        d.drcode,
        d.drname,
        d.leavediagname,
        d.leaveicd10code,
        a.sex,
        a.nation,
        a.native_place,
@@ -859,7 +866,8 @@
        FROM
        pat_med_inhosp d
        JOIN pat_archive a ON a.id = d.patid
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid ) t ON t.patid =
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid
        ) t ON t.patid =
        d.patid
        <where>
            d.del_flag != 1
@@ -889,11 +897,8 @@
            <if test="deptname != null and deptname != ''">
                and d.deptname LIKE concat('%', #{deptname}, '%')
            </if>
            <if test="drname != null and drname != ''">
                AND d.drname LIKE concat('%',#{drname}, '%')
            </if>
            <if test="diagname != null and diagname != ''">
                AND d.diagname LIKE concat('%',#{diagname}, '%')
            <if test="leavediagname != null and leavediagname != ''">
                AND d.leavediagname LIKE concat('%',#{leavediagname}, '%')
            </if>
            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size()>0">
                AND d.leavehospitaldistrictcode IN
@@ -945,6 +950,8 @@
        a.place_of_residence,
        a.birthplace,
        a.birthdate,
        a.icd10code as leaveicd10code,
        a.diagname as leavediagname,
        a.age,
        a.age2,
        a.viptype,
@@ -966,7 +973,8 @@
        t.tagname,
        a.pattype
        from pat_med_outhosp d JOIN pat_archive a ON a.id = d.patid
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid ) t ON t.patid =
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid
        ) t ON t.patid =
        d.patid
        <where>
            d.del_flag != 1
@@ -981,8 +989,8 @@
            </if>
            <if test="notrequiredFlag != null  and notrequiredFlag != ''">and a.notrequired_flag = #{notrequiredFlag}
            </if>
            <if test="diagname != null and diagname != ''">
                AND d.diagname LIKE concat('%',#{diagname}, '%')
            <if test="leavediagname != null and leavediagname != ''">
                AND d.diagname LIKE concat('%',#{leavediagname}, '%')
            </if>
            <if test="hospitalname != null and hospitalname != ''">
                AND d.hospitalname = #{hospitalname}
@@ -1054,7 +1062,8 @@
        t.tagname,
        a.pattype
        from pat_med_physical d JOIN pat_archive a ON a.id = d.patid
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid ) t ON t.patid =
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag where del_flag=0 GROUP BY patid
        ) t ON t.patid =
        d.patid
        <where>
            d.del_flag != 1