1,患者过滤状态修改(之前只支持发送之前的过滤,现在支持发送之后的过滤,如果任务发送后,外链不能再打开)
2.在出入院表新增入院申请单字段
3.采集入院数据时,同时要采集importanceFlagCode emergencyLevelCode
4.外链的发送,也要查询子任务状态,如果是不执行,也不能再发送
已修改13个文件
已添加1个文件
880 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java 543 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedInhosp.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -12,12 +12,10 @@
import com.ruoyi.common.utils.sms.smsUtils;
import com.smartor.common.MtSubmitSmUtil;
import com.smartor.common.ShiyiSmsUtil;
import com.smartor.domain.ServiceOutPath;
import com.smartor.domain.ShiyiSmsRequest;
import com.smartor.domain.ShiyiSmsResponse;
import com.smartor.domain.smsVO;
import com.smartor.domain.*;
import com.smartor.mapper.UtilsMapper;
import com.smartor.service.IServiceOutPathService;
import com.smartor.service.IServiceSubtaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -71,6 +69,8 @@
    @Autowired
    private IServiceOutPathService iServiceOutPathService;
    @Autowired
    private IServiceSubtaskService iServiceSubtaskService;
    @Value("${spring.profiles.active}")
    private String active;
@@ -106,6 +106,12 @@
    @PostMapping("/send")
    public AjaxResult sendAsk(@RequestBody smsVO vo) throws UnsupportedEncodingException {
        String content = "";
        if (StringUtils.isNotEmpty(vo.getSubId())) {
            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
            if (serviceSubtask.getSendstate() == 4L) content = "该任务不执行";
            return AjaxResult.error(content);
        }
        if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
            RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
            String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
@@ -193,8 +199,13 @@
     */
    @ApiOperation("微信发送")
    @PostMapping("/sendChat")
    public AjaxResult sendChat(@RequestBody smsVO vo) throws UnsupportedEncodingException {
    public AjaxResult sendChat(@RequestBody smsVO vo) {
        String sendMsg = "";
        if (StringUtils.isNotEmpty(vo.getSubId())) {
            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
            if (serviceSubtask.getSendstate() == 4L) sendMsg = "该任务不执行";
            return AjaxResult.error(sendMsg);
        }
        if (StringUtils.isNotEmpty(vo.getTaskId()) && StringUtils.isNotEmpty(vo.getPatId()) && StringUtils.isNotEmpty(vo.getSubId())) {
            RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
            String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
@@ -246,6 +257,11 @@
            serviceOutPath.setUrl(url);
            iServiceOutPathService.insertServiceOutPath(serviceOutPath);
        }
        if (StringUtils.isNotEmpty(vo.getSubId())) {
            ServiceSubtask serviceSubtask = iServiceSubtaskService.selectServiceSubtaskById(Long.valueOf(vo.getSubId()));
            if (serviceSubtask.getSendstate() == 4L) content = "该任务不执行";
        }
        return AjaxResult.success(content);
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -12,6 +12,7 @@
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.domain.DTO.PatMedInhospDTO;
import com.smartor.domain.PatMedInhosp;
import com.smartor.domain.PatMedInhospVO;
import com.smartor.domain.PatMedReq;
@@ -79,6 +80,27 @@
    }
    /**
     * æŸ¥è¯¢æ‚£è€…住院记录通过入院申请单信息
     */
    @ApiOperation("查询患者住院记录通过入院申请单信息")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/selectPatMedInhospByApplication")
    public TableDataInfo selectPatMedInhospByApplication(@RequestBody PatMedInhosp patMedInhosp) {
        PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
        SysUser user = getLoginUser().getUser();
        patMedInhosp.setOrgid(user.getOrgid());
        List<PatMedInhospDTO> list = patMedInhospService.selectPatMedInhospByApplication(patMedInhosp);
        long count = PageUtils.count(new ISelect() {
            @Override
            public void doSelect() {
                patMedInhospService.selectPatMedInhospByApplication(patMedInhosp);
            }
        });
        return getDataTable2(count, list);
    }
    /**
     * å‡ºé™¢ã€é—¨è¯Šäººæ•°å’Œéšè®¿é‡ç»Ÿè®¡ï¼ˆå‘¨ï¼Œæœˆï¼Œå¹´ï¼‰
     */
    @ApiOperation("出院、门诊人数和随访量统计(周,月,年)")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -952,12 +952,6 @@
        return AjaxResult.success(serviceSubtaskService.scanGenerateSubtask(serviceTask));
    }
    @PostMapping("/test")
    public void test() {
        ryTask.dealOutHospInfo();
    }
    @PostMapping("/syncMedInhospForShiyi")
    public void syncMedInhospForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
        collectHISService.syncMedInhosp(startTime, endTime);
@@ -967,12 +961,5 @@
    public void syncMedOperForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
        collectHISService.syncOper(startTime, endTime);
    }
    @PostMapping("/qwenLLMTest")
    public int qwenLLMTest(@RequestParam("voiceText") String questionText, @RequestParam("voiceText") String voiceText, @RequestParam("value") String value, @RequestParam("regexText") String regexText) {
        int result = ryTask.qwenLLMTest(questionText, voiceText, value, regexText);
        return result;
    }
}
smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,543 @@
package com.smartor.domain.DTO;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * æ‚£è€…住院记录对象返参 pat_med_inhosp
 *
 * @author smartor
 * @date 2023-03-04
 */
@ApiModel(value = "PatMedInhospDTO", description = "患者住院记录对象返参")
@Data
public class PatMedInhospDTO extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * è‡ªå¢žID
     */
    @ApiModelProperty(value = "自增ID")
    private Long inhospid;
    /**
     * æ€§åˆ«
     */
    @ApiModelProperty(value = "性别 1男  2女")
    private Long sex;
    /**
     * ä½é™¢å·
     */
    @ApiModelProperty(value = "住院号")
    private String inhospno;
    /**
     * æµæ°´å·
     */
    @ApiModelProperty(value = "流水号")
    private String serialnum;
    /**
     * æŠ¤å£«ID
     */
    @ApiModelProperty(value = "护士ID")
    private String nurseId;
    /**
     * æŠ¤å£«å§“名
     */
    @ApiModelProperty(value = "护士姓名")
    private String nurseName;
    /**
     * åŒ»é™¢åç§°
     */
    @ApiModelProperty(value = "医院名称")
    @Excel(name = " åŒ»é™¢åç§° ")
    private String hospitalname;
    /**
     * åŒ»é™¢ç¼–号
     */
    @ApiModelProperty(value = "医院编号")
    private String hospitalcode;
    /**
     * é™¢åŒºç¼–号
     */
    @ApiModelProperty(value = "院区编号")
    private String hospitaldistrictcode;
    /**
     * é™¢åŒºç¼–号集合
     */
    @ApiModelProperty(value = "院区编号集合")
    private List<String> hospitaldistrictcodeList;
    /**
     * é™¢åŒºåç§°
     */
    @ApiModelProperty(value = "院区名称")
    @Excel(name = " é™¢åŒºåç§° ")
    private String hospitaldistrictname;
    /**
     * å…¥é™¢è¯Šæ–­ICD值
     */
    @ApiModelProperty(value = "入院诊断ICD值")
    private String icd10code;
    /**
     * å…¥é™¢è¯Šæ–­åç§°
     */
    @ApiModelProperty(value = "入院诊断名称")
    private String diagname;
    /**
     * å…¥é™¢æ—¶é—´
     */
    @ApiModelProperty(value = "入院时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " å…¥é™¢æ—¶é—´ ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date starttime;
    /**
     * å‡ºé™¢æ—¶é—´
     */
    @ApiModelProperty(value = "出院时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " å‡ºé™¢æ—¶é—´ ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endtime;
    /**
     * å…¥é™¢ç§‘室代码
     */
    @ApiModelProperty(value = "入院科室代码")
    private String deptcode;
    /**
     * å…¥é™¢ç§‘室代码
     */
    @ApiModelProperty(value = "入院科室代码集合")
    private List<String> deptcodeList;
    /**
     * å…¥é™¢ç§‘室名称
     */
    @ApiModelProperty(value = "入院科室名称")
    private String deptname;
    /**
     * æˆ¿é—´å·
     */
    @ApiModelProperty(value = "房间号")
    private String roomno;
    /**
     * åºŠä½å·
     */
    @ApiModelProperty(value = "床位号")
    @Excel(name = " åºŠä½å· ")
    private String bedNo;
    /**
     * æœºæž„ID
     */
    @ApiModelProperty(value = "机构ID")
    @Excel(name = " æœºæž„ID ")
    private String orgid;
    /**
     * åˆ é™¤æ ‡è®°
     */
    @ApiModelProperty(value = "删除标记")
    private String delFlag;
    /**
     * ä¸Šä¼ æ ‡è®°
     */
    @ApiModelProperty(value = "上传标记")
    private Long isupload;
    /**
     * ä¸Šä¼ æ—¶é—´
     */
    @ApiModelProperty(value = "上传时间")
    private Date uploadTime;
    /**
     * æ¡£æ¡ˆID
     */
    @ApiModelProperty(value = "档案ID")
    private Long patid;
    /**
     * å‡ºé™¢è¯Šæ–­
     */
    @ApiModelProperty(value = "出院诊断")
    @Excel(name = " å‡ºé™¢è¯Šæ–­ ")
    private String leavediagname;
    /**
     * å‡ºé™¢è¯Šæ–­ICD值
     */
    @ApiModelProperty(value = "出院诊断ICD值")
    private String leaveicd10code;
    /**
     * åŒ»ç”Ÿå·¥å·
     */
    @ApiModelProperty(value = "医生工号")
    private String drcode;
    /**
     * åŒ»ç”Ÿåç§°
     */
    @ApiModelProperty(value = "医生名称")
    @Excel(name = " åŒ»ç”Ÿåç§° ")
    private String drname;
    /**
     * æ˜¯å¦ç”Ÿæˆæ–¹æ¡ˆçŠ¶æ€;0预入院 1生成入院 2生成出院 9无匹配方案   3生成入院撤销   4生成出院撤销
     */
    @ApiModelProperty(value = "是否生成方案状态;0预入院 1生成入院 2生成出院 9无匹配方案   3生成入院撤销   4生成出院撤销")
    private Long schemestatus;
    /**
     * æ˜¯å¦ç”Ÿæˆé€šç”¨æ–¹æ¡ˆçŠ¶æ€;0未生成 1生成 9无匹配方案
     */
    @ApiModelProperty(value = "是否生成通用方案状态;0未生成 1生成 9无匹配方案")
    private Long generalschemestatus;
    /**
     * å‡ºé™¢ç§‘室代码
     */
    @ApiModelProperty(value = "出院科室代码")
    private String leaveldeptcode;
    /**
     * å‡ºé™¢ç§‘室名称
     */
    @ApiModelProperty(value = "出院科室名称")
    @Excel(name = " å‡ºé™¢ç§‘室名称 ")
    private String leaveldeptname;
    /**
     * ç—…区ID
     */
    @ApiModelProperty(value = "病区ID")
    private String hospitaldistrictid;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号")
    private String leavehospitaldistrictcode;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
    /**
     * å‡ºé™¢ç—…区ID
     */
    @ApiModelProperty(value = "出院病区ID")
    private String leavehospitaldistrictid;
    /**
     * å…¥é™¢ç§‘室ID
     */
    @ApiModelProperty(value = "入院科室ID")
    private String deptid;
    /**
     * å‡ºé™¢ç§‘室ID
     */
    @ApiModelProperty(value = "出院科室ID")
    private String leaveldeptid;
    /**
     * æ–¹æ¡ˆçŠ¶æ€æ“ä½œæ—¶é—´
     */
    @ApiModelProperty(value = "方案状态操作时间")
    private Date schemetime;
    /**
     * æ‚£è€…姓名
     */
    @ApiModelProperty(value = "患者姓名")
    private String patname;
    /**
     * æ‚£è€…编号
     */
    @ApiModelProperty(value = "患者编号")
    private String patno;
    /**
     * ä½é™¢æ ‡è¯†ï¼š 0:在院  1:出院    2:转科
     */
    @ApiModelProperty(value = "住院标识: 0:在院  1:出院    2:转科  3待入院")
    private String inhospstate;
    /**
     * ç§‘室长期任务,是否处理:0未处理   1处理
     */
    @ApiModelProperty(value = "长期任务,是否处理:0未处理   1处理成功    2处理失败 ")
    private String deptcheckFlag;
    /**
     * ç—…区长期任务,是否处理:0未处理   1处理
     */
    @ApiModelProperty(value = "病区长期任务,是否处理:0未处理   1处理成功    2处理失败 ")
    private String wardcheckFlag;
    /**
     * ç–¾ç—…长期任务,是否处理:0未处理   1处理
     */
    @ApiModelProperty(value = "疾病长期任务,是否处理:0未处理   1处理成功    2处理失败 ")
    private String diagcheckFlag;
    /**
     * å…¥é™¢ç§‘室长期任务,是否处理:0未处理   1处理
     */
    @ApiModelProperty(value = "入院科室长期任务,是否处理:0未处理   1处理成功    2处理失败 ")
    private String inDeptcheckFlag;
    /**
     * å…¥é™¢ç—…区长期任务,是否处理:0未处理   1处理
     */
    @ApiModelProperty(value = "入院病区长期任务,是否处理:0未处理   1处理成功    2处理失败 ")
    private String inWardcheckFlag;
    /**
     * å¹´é¾„
     */
    @ApiModelProperty(value = "年龄")
    private String age;
    /**
     * æ‰‹æœºå·
     */
    @ApiModelProperty(value = "手机号")
    private String telcode;
    /**
     * é•¿æœŸä»»åŠ¡åŽŸå› 
     */
    @ApiModelProperty(value = "长期任务原因")
    private String longTaskReason;
    /**
     * pageNum
     */
    @ApiModelProperty("pageNum")
    private Integer pageNum;
    /**
     * pageSize
     */
    @ApiModelProperty("pageSize")
    private Integer pageSize;
    /**
     * pageNum
     */
    @ApiModelProperty("pn")
    private Integer pn;
    /**
     * pageSize
     */
    @ApiModelProperty("ps")
    private Integer ps;
    /**
     * å‡ºé™¢æ–¹å¼åºå·
     */
    @ApiModelProperty("出院方式序号")
    @Excel(name = "出院方式序号")
    private String outWayId;
    /**
     * å‡ºé™¢æ–¹å¼åç§°
     */
    @ApiModelProperty("出院方式名称")
    @Excel(name = "出院方式名称")
    private String outWayName;
    /**
     * å‡ºå…¥é™¢æ ‡è¯†
     */
    @ApiModelProperty("出入院标识:0入院  1出院 2 è½¬ç§‘  3 é¢„入院")
    private Integer cry;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号集合")
    private List<String> leavehospitaldistrictcodes;
    /**
     * å‡ºé™¢ç§‘室代码集合
     */
    @ApiModelProperty(value = "出院科室代码集合")
    private List<String> leaveldeptcodes;
    /**
     * å¼€å§‹å‡ºé™¢æ—¥æœŸ
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始出院日期")
    private Date startOutHospTime;
    /**
     * ç»“束出院日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束出院日期")
    private Date endOutHospTime;
    /**
     * å¼€å§‹å…¥é™¢æ—¥æœŸ
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始入院日期")
    private Date startInHospTime;
    /**
     * ç»“束入院日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束入院日期")
    private Date endInHospTime;
    @ApiModelProperty(value = "是否外部导入:0不是    1是")
    private Integer outImport = 0;
    @ApiModelProperty(value = "查询类型:1全部   2出院   3入院   4门诊   5外部患者 ")
    private Integer queryType = 1;
    @ApiModelProperty(value = "机构ID")
    private String guid;
    @ApiModelProperty(value = "操作人")
    private String operator;
    @ApiModelProperty(value = "操作人ID")
    private String operatorId;
    @ApiModelProperty(value = "标签名")
    private String tagname;
    @ApiModelProperty(value = "随访标识:0不需要,1要")
    private String fuflag;
    @ApiModelProperty(value = "随访日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date fudate;
    @ApiModelProperty(value = "随访周期建议")
    private String fuperiod;
    @ApiModelProperty(value = "随访类型编码")
    private String futypecode;
    @ApiModelProperty(value = "随访类型名称")
    private String futypedesc;
    @ApiModelProperty(value = "随访复诊指导")
    private String fuadvice;
    @ApiModelProperty(value = "专病随访建议")
    private String fuspecialadvice;
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("证件号码")
    @Excel(name = " è¯ä»¶å·ç  ")
    private String idcardno;
    /**
     * ç»ç®¡åŒ»ç”Ÿ
     */
    @ApiModelProperty("经管医生")
    @Excel(name = " ç»ç®¡åŒ»ç”Ÿ ")
    private String managementDoctor;
    /**
     * ç»ç®¡åŒ»ç”Ÿ
     */
    @ApiModelProperty("经管医生")
    @Excel(name = " ç»ç®¡åŒ»ç”Ÿ ")
    private String managementDoctorCode;
    @ApiModelProperty(value = "最后开始时间")
    private String lastStartTime;
    @ApiModelProperty(value = "最后结束时间")
    private String lastEndTime;
    /**
     * æœºæž„ID
     */
    @ApiModelProperty("院区")
    @Excel(name = " é™¢åŒº ")
    private String campusid;
    /**
     * å°±è¯Šæ¥æºID
     */
    @ApiModelProperty("就诊来源ID")
    @Excel(name = " å°±è¯Šæ¥æºID ")
    private String encounterSourceId;
    /**
     * é‡è¦æ€§æ ‡è®°ç¼–码
     * æžšä¸¾ç±»åž‹ï¼šImportFlagEnum
     * FH0165.98 - ç‰¹çº¦äººå‘˜
     * FH0165.99 - ç¦»ä¼‘人员
     * FH0165.03 - æ— 
     * FH0165.02 - æ—¥é—´è¯Šç–—
     * FH0165.01 - æ—¥é—´æ‰‹æœ¯
     */
    @ApiModelProperty(value = "重要性标记编码", example = "FH0165.01")
    @Excel(name = " é‡è¦æ€§æ ‡è®°ç¼–码 ")
    private String importanceFlagCode;
    /**
     * ç´§æ€¥ç¨‹åº¦ç¼–码
     * æžšä¸¾ç±»åž‹ï¼šEmergencyLevelEnum
     * FH0164.01 - ç›®æ ‡
     * FH0164.02 - æ€¥å±é‡
     * FH0164.03 - æ‹©æœŸ
     * FH0164.04 - åŸºç¡€
     */
    @ApiModelProperty(value = "紧急程度编码", example = "FH0164.01")
    @Excel(name = " ç´§æ€¥ç¨‹åº¦ç¼–码 ")
    private String emergencyLevelCode;
    @ApiModelProperty(value = "是否宣教过")
    @Excel(name = " æ˜¯å¦å®£æ•™å®Œæˆ:0 æœªå®£æ•™ 1 å·²å®£æ•™ ")
    private String finishFlag = "0";
    /**
     * '满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2)
     */
    @ApiModelProperty("'满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2)")
    @Excel(name = " '满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2) ")
    private String inhospMydFlag;
}
smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
@@ -501,6 +501,38 @@
    private String campusid;
    /**
     * å°±è¯Šæ¥æºID
     */
    @ApiModelProperty("就诊来源ID")
    @Excel(name = " å°±è¯Šæ¥æºID ")
    private String encounterSourceId;
    /**
     * é‡è¦æ€§æ ‡è®°ç¼–码
     * æžšä¸¾ç±»åž‹ï¼šImportFlagEnum
     * FH0165.98 - ç‰¹çº¦äººå‘˜
     * FH0165.99 - ç¦»ä¼‘人员
     * FH0165.03 - æ— 
     * FH0165.02 - æ—¥é—´è¯Šç–—
     * FH0165.01 - æ—¥é—´æ‰‹æœ¯
     */
    @ApiModelProperty(value = "重要性标记编码", example = "FH0165.01")
    @Excel(name = " é‡è¦æ€§æ ‡è®°ç¼–码 ")
    private String importanceFlagCode;
    /**
     * ç´§æ€¥ç¨‹åº¦ç¼–码
     * æžšä¸¾ç±»åž‹ï¼šEmergencyLevelEnum
     * FH0164.01 - ç›®æ ‡
     * FH0164.02 - æ€¥å±é‡
     * FH0164.03 - æ‹©æœŸ
     * FH0164.04 - åŸºç¡€
     */
    @ApiModelProperty(value = "紧急程度编码", example = "FH0164.01")
    @Excel(name = " ç´§æ€¥ç¨‹åº¦ç¼–码 ")
    private String emergencyLevelCode;
    /**
     * '满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2)
     */
    @ApiModelProperty("'满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2)")
smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
@@ -396,5 +396,44 @@
    @ApiModelProperty("院区")
    @Excel(name = " é™¢åŒº ")
    private String campusid;
    /**
     * å°±è¯Šæ¥æºID
     */
    @ApiModelProperty("就诊来源ID")
    @Excel(name = " å°±è¯Šæ¥æºID ")
    private String encounterSourceId;
    /**
     * é‡è¦æ€§æ ‡è®°ç¼–码
     * æžšä¸¾ç±»åž‹ï¼šImportFlagEnum
     * FH0165.98 - ç‰¹çº¦äººå‘˜
     * FH0165.99 - ç¦»ä¼‘人员
     * FH0165.03 - æ— 
     * FH0165.02 - æ—¥é—´è¯Šç–—
     * FH0165.01 - æ—¥é—´æ‰‹æœ¯
     */
    @ApiModelProperty(value = "重要性标记编码", example = "FH0165.01")
    @Excel(name = " é‡è¦æ€§æ ‡è®°ç¼–码 ")
    private String importanceFlagCode;
    /**
     * ç´§æ€¥ç¨‹åº¦ç¼–码
     * æžšä¸¾ç±»åž‹ï¼šEmergencyLevelEnum
     * FH0164.01 - ç›®æ ‡
     * FH0164.02 - æ€¥å±é‡
     * FH0164.03 - æ‹©æœŸ
     * FH0164.04 - åŸºç¡€
     */
    @ApiModelProperty(value = "紧急程度编码", example = "FH0164.01")
    @Excel(name = " ç´§æ€¥ç¨‹åº¦ç¼–码 ")
    private String emergencyLevelCode;
    /**
     * '满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2)
     */
    @ApiModelProperty("'满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2)")
    @Excel(name = " '满意度标识:0未做满度   1住院满度度  2出院满意度  ï¼ˆå¦‚果既要做住院,又要做出院,则用“,”分割,例如1,2) ")
    private String inhospMydFlag;
}
smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java
@@ -211,6 +211,9 @@
    @ApiModelProperty(value = "病历文件状态")
    private Integer medicalRecordFileStatus;
    @ApiModelProperty(value = "就诊来源ID")
    private String encounterSourceId;
    @ApiModelProperty(value = "主要出院诊断")
    private ServiceSLTDDiagnosisResDTO mainDischargeDiagnosis;
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -3,6 +3,7 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.smartor.domain.*;
import com.smartor.domain.DTO.PatMedInhospDTO;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@@ -33,6 +34,8 @@
     */
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp);
    /**
     * å‡ºé™¢ã€é—¨è¯Šäººæ•°å’Œéšè®¿é‡ç»Ÿè®¡ï¼ˆå‘¨ï¼Œæœˆï¼Œå¹´ï¼‰
     */
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -164,23 +164,23 @@
            patArchiveVO.setIsoperation(2);
            patArchiveMapper.updatePatArchive(patArchive);
            if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) {
                //不需要服务了,需要通过patid和sendstate=2或者sendstate=1去查询一下,service_subtask里是否有正在执行的任务,有的话,立即停了
                //不需要服务了,需要通过patid和sendstate=1,2,3,5,7去查询一下,service_subtask里是否有正在执行的任务,有的话,立即停了
                List<Long> list = Arrays.asList(1L, 2L, 3L, 5L, 7L);
                List<ServiceSubtask> serviceSubtaskList = new ArrayList<>();
                ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
                serviceSubtaskVO.setPatid(patArchive.getId());
                serviceSubtaskVO.setSendstate(2L);
                List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                serviceSubtaskVO.setSendstate(1L);
                List<ServiceSubtask> serviceSubtaskList1 = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                    if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList.addAll(serviceSubtaskList1);
                } else {
                    if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1;
                for (Long ss : list) {
                    serviceSubtaskVO.setSendstate(ss);
                    List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                    serviceSubtaskList.addAll(serviceSubtasks);
                }
                //去redis中,查询是否有subid,有的话移除cache-exist
                if (CollectionUtils.isNotEmpty(serviceSubtaskList)) {
                    for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                        log.info("需要移除的subId为:{}", serviceSubtask.getId().toString());
                        serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId());
                        serviceSubtask.setSendstate(4L);
                        serviceSubtask.setRemark(patArchiveVO.getNotrequiredreason());
                        serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                        redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString());
                        redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString());
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -10,6 +10,7 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.*;
import com.smartor.domain.DTO.PatMedInhospDTO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
import com.smartor.service.IPatMedInhospService;
@@ -110,6 +111,24 @@
            patMedInhosp1.setTagname(tagname);
        }
        return patMedInhospList;
    }
    @Override
    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp) {
        List<PatMedInhosp> patMedInhosps = selectPatMedInhospList(patMedInhosp);
        if (!org.springframework.util.CollectionUtils.isEmpty(patMedInhosps)) {
            return null;
        }
        List<PatMedInhospDTO> patMedInhospDTOList = DtoConversionUtils.sourceToTarget(patMedInhosps, PatMedInhospDTO.class);
        for (PatMedInhospDTO pmd : patMedInhospDTOList) {
            ServiceSubtaskEntity serviceSubtask = new ServiceSubtaskEntity();
            serviceSubtask.setServiceType("4");
            serviceSubtask.setInhospid(pmd.getInhospid());
            List<ServiceSubtask> serviceSubtasks = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtask);
            if (CollectionUtils.isNotEmpty(serviceSubtasks)) pmd.setFinishFlag("1");
        }
        return patMedInhospDTOList;
    }
    @Override
@@ -811,10 +830,10 @@
        if (ObjectUtils.isEmpty(serviceSubtask)) {
            return;
        }
        if(StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())){
        if (StringUtils.isNotEmpty(patMedOperationItem.getDeptcode())) {
            serviceSubtask.setVisitDeptCode(patMedOperationItem.getDeptcode());
            serviceSubtask.setVisitDeptName(patMedOperationItem.getDeptname());
        }else {
        } else {
            serviceSubtask.setVisitDeptCode(patMedOperationItem.getHospitaldistrictcode());
            serviceSubtask.setVisitDeptName(patMedOperationItem.getHospitaldistrictname());
        }
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -9,6 +9,8 @@
import com.ruoyi.common.core.domain.entity.SysUserDept;
import com.ruoyi.common.core.domain.entity.SysUserRole;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.common.enums.EmergencyLevelEnum;
import com.smartor.common.enums.ImportFlagEnum;
import com.ruoyi.common.utils.http.HttpUtils;
import com.smartor.common.DistinctByProperty;
import com.smartor.domain.*;
@@ -795,7 +797,6 @@
        patMedInhosp.setInhospno(dto.getHealthcareRecordNo());
        patMedInhosp.setFuflag("1");
        if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1"))
            patMedInhosp.setFuflag("0");
        if ("0".equals(cry)) {
@@ -840,6 +841,13 @@
            setDischargeInfo(patMedInhosp, dto);
        } else {
            setAdmissionInfo(patMedInhosp, dto);
            patMedInhosp.setEncounterSourceId(dto.getEncounterSourceId() == null ? "" : dto.getEncounterSourceId());
            if (StringUtils.isNotEmpty(dto.getEncounterSourceId())) {
                //根据 encounterSourceId èŽ·å– importanceFlagCode   emergencyLevelCode
                Map<String, String> applyInfo = hospitalizedApply(dto.getEncounterSourceId(), dto.getOrgId());
                patMedInhosp.setImportanceFlagCode(applyInfo.get("importanceFlagCode"));
                patMedInhosp.setEmergencyLevelCode(applyInfo.get("emergencyLevelCode"));
            }
        }
        patMedInhosp.setDrname(dto.getDoctorName());
@@ -884,6 +892,86 @@
        patMedInhosp.setHospitaldistrictid("" + dto.getAreaId());
        patMedInhosp.setHospitaldistrictcode("" + dto.getAreaId());
        patMedInhosp.setHospitaldistrictname(dto.getAreaName());
    }
    /**
     * æ ¹æ®å…¥é™¢ç”³è¯·å•ID查询入院申请单详情
     * åªæå– importanceFlagCode(importanceFlagCodeList逗号拼接)和 emergencyLevelCode ä¸¤ä¸ªå€¼
     */
    private Map<String, String> hospitalizedApply(String encounterSourceId, String orgid) {
        Map<String, String> applyInfo = new HashMap<>();
        Map<String, String> headers = buildRequestHeaders();
        log.info("院申请单ID查询入院申请单:{},appKey:{}", sltdPubPath + "/sf/hospitalizedApply/query", APP_KEY);
        //设置入参
        Map<String, Object> requestParams = new HashMap<>();
        requestParams.put("applyId", encounterSourceId);
        requestParams.put("orgId", orgid);
        String result = null;
        if (StringUtils.isNotEmpty(encounterSourceId) && StringUtils.isNotEmpty(orgid))
            result = HttpUtils.sendPostByHeader(sltdPubPath + "/sf/hospitalizedApply/query", new Gson().toJson(requestParams), headers);
        if (StringUtils.isEmpty(result)) {
            log.error("【hospitalizedApply】接口返回为空,applyId={}", encounterSourceId);
            return applyInfo;
        }
        try {
            Gson gson = new Gson();
            Type mapType = new TypeToken<Map<String, Object>>() {
            }.getType();
            Map<String, Object> responseMap = gson.fromJson(result, mapType);
            Object dataObj = responseMap == null ? null : responseMap.get("data");
            if (dataObj instanceof Map) {
                Map<String, Object> data = (Map<String, Object>) dataObj;
                //重要性标记编码,接口返回是数组,需要转换为字典名称
                Object importanceFlagCodeListObj = data.get("importanceFlagCodeList");
                if (importanceFlagCodeListObj instanceof List) {
                    List<?> importanceFlagCodeList = (List<?>) importanceFlagCodeListObj;
                    // è¿‡æ»¤æŽ‰ null å€¼
                    List<String> nonNullList = importanceFlagCodeList.stream()
                            .filter(Objects::nonNull)
                            .map(Object::toString)
                            .filter(StringUtils::isNotEmpty)
                            .collect(Collectors.toList());
                    if (!nonNullList.isEmpty()) {
                        String importanceFlagLabel;
                        if (nonNullList.size() == 1) {
                            // åªæœ‰ä¸€ä¸ªå€¼ï¼Œç›´æŽ¥é€šè¿‡æžšä¸¾èŽ·å–æè¿°
                            importanceFlagLabel = ImportFlagEnum.getDescByCode(nonNullList.get(0));
                        } else {
                            // å¤šä¸ªå€¼ï¼Œç”¨é€—号拼接枚举描述
                            StringBuilder labelBuilder = new StringBuilder();
                            for (String code : nonNullList) {
                                String label = ImportFlagEnum.getDescByCode(code);
                                if (StringUtils.isNotEmpty(label)) {
                                    labelBuilder.append(label).append(",");
                                }
                            }
                            importanceFlagLabel = StringUtils.stripEnd(labelBuilder.toString(), ",");
                        }
                        if (StringUtils.isNotEmpty(importanceFlagLabel)) {
                            applyInfo.put("importanceFlagCode", importanceFlagLabel);
                        }
                    }
                }
                //紧急程度编码,通过枚举转换描述
                Object emergencyLevelCodeObj = data.get("emergencyLevelCode");
                if (emergencyLevelCodeObj != null) {
                    String emergencyLevelLabel = EmergencyLevelEnum.getDescByCode(emergencyLevelCodeObj.toString());
                    if (StringUtils.isNotEmpty(emergencyLevelLabel)) {
                        applyInfo.put("emergencyLevelCode", emergencyLevelLabel);
                    }
                }
            } else {
                log.error("【hospitalizedApply】接口返回data不是对象,applyId={},result:{}", encounterSourceId, result);
            }
        } catch (Exception e) {
            log.error("【hospitalizedApply】解析入院申请单详情失败,applyId={}", encounterSourceId, e);
        }
        log.info("【hospitalizedApply】applyId={},importanceFlagCode={},emergencyLevelCode={}", encounterSourceId, applyInfo.get("importanceFlagCode"), applyInfo.get("emergencyLevelCode"));
        return applyInfo;
    }
    /**
@@ -1076,6 +1164,7 @@
        dto.setCostCategoryCode(getStringValue(dataItem, "costCategoryCode"));
        dto.setCostNatureName(getStringValue(dataItem, "costNatureName"));
        dto.setCostNatureCode(getStringValue(dataItem, "costNatureCode"));
        dto.setEncounterSourceId(getStringValue(dataItem, "encounterSourceId"));
        dto.setFurtherConsultationStatus(getIntegerValue(dataItem, "furtherConsultationStatus"));
        Object mainDiagObj = dataItem.get("mainDischargeDiagnosis");
        if (mainDiagObj instanceof Map) {
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -5,6 +5,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.RSAPublicKeyExample;
@@ -738,6 +739,13 @@
    public Map<String, Object> selectPatQuestionResult(ServiceSubTaskQueryReq serviceSubTaskQueryReq) {
        log.info("selectPatQuesTionResult的入参为:{}", serviceSubTaskQueryReq);
        Map<String, Object> map = new HashMap<>();
        if (serviceSubTaskQueryReq.getSubId() != null) {
            ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId());
            if (serviceSubtask.getSendstate() == 4L) {
                log.info("患者子任务ID为:{},状态为:{}", serviceSubTaskQueryReq.getSubId(), serviceSubtask.getSendstate());
                throw new BaseException("该任务不执行");
            }
        }
        //获取本次的问答结果
        Map<String, Object> scriptInfoByCondition = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom(), serviceSubTaskQueryReq.getSubId());
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -6,7 +6,6 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.dx.MessageSend;
@@ -18,7 +17,6 @@
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.common.DeepSeekApi;
import com.smartor.common.FtpService;
import com.smartor.common.MtSubmitSmUtil;
import com.smartor.config.PhoneUtils;
@@ -33,7 +31,6 @@
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.ibatis.annotations.Param;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -76,10 +76,16 @@
        <result property="managementDoctorCode" column="management_doctor_code"/>
        <result property="campusid" column="campusid"/>
        <result property="inhospMydFlag" column="inhosp_myd_flag"/>
        <result property="encounterSourceId" column="encounter_source_id"/>
        <result property="importanceFlagCode" column="importance_flag_code"/>
        <result property="emergencyLevelCode" column="emergency_level_code"/>
    </resultMap>
    <sql id="selectPatMedInhospVo">
        select inhospid,
               encounter_source_id,
               importance_flag_code,
               emergency_level_code,
               patname,
               inhosp_myd_flag,
               campusid,
@@ -216,6 +222,9 @@
        b.fuadvice,
        b.fuspecialadvice,
        b.inhosp_myd_flag,
        b.encounter_source_id,
        b.importance_flag_code,
        b.emergency_level_code,
        a.idcardno
        FROM
        pat_med_inhosp b
@@ -261,6 +270,9 @@
        <if test="inDeptcheckFlag != null ">and b.in_deptcheck_flag = #{inDeptcheckFlag}</if>
        <if test="inWardcheckFlag != null ">and b.in_wardcheck_flag = #{inWardcheckFlag}</if>
        <if test="diagcheckFlag != null ">and b.diagcheck_flag = #{diagcheckFlag}</if>
        <if test="encounterSourceId != null ">and b.encounter_source_id = #{encounterSourceId}</if>
        <if test="importanceFlagCode != null ">and b.importance_flag_code = #{importanceFlagCode}</if>
        <if test="emergencyLevelCode != null ">and b.emergency_level_code = #{emergencyLevelCode}</if>
        <if test="cry != null and cry == 0 ">and b.endtime is null</if>
        <if test="cry != null and cry == 1 ">and b.inhospstate=1</if>
        <if test="cry != null and cry == 2 ">and b.inhospstate=2</if>
@@ -342,6 +354,9 @@
        select
        b.inhospid,
        b.nurse_id,
        b.encounter_source_id,
        b.importance_flag_code,
        b.emergency_level_code,
        b.nurse_name,
        b.patname,
        b.management_doctor,
@@ -410,6 +425,15 @@
        <if test="orgid != null and orgid != ''">
            and orgid = #{orgid}
        </if>
        <if test="encounterSourceId != null and encounterSourceId != ''">
            and b.encounter_source_id = #{encounterSourceId}
        </if>
        <if test="importanceFlagCode != null and importanceFlagCode != ''">
            and b.importance_flag_code = #{importanceFlagCode}
        </if>
        <if test="emergencyLevelCode != null and emergencyLevelCode != ''">
            and b.emergency_level_code = #{emergencyLevelCode}
        </if>
        <if test="serialnum != null and serialnum != ''">
            and b.serialnum = #{serialnum}
        </if>
@@ -421,6 +445,9 @@
        select CONCAT( a.age, a.age_unit ) AS age,
        a.telcode as telcode,
        b.inhospid,
        b.encounter_source_id,
        b.importance_flag_code,
        b.emergency_level_code,
        b.management_doctor,
        b.management_doctor_code,
        b.patname,
@@ -494,6 +521,15 @@
        and a.id = b.patid
        AND a.idcardno != ''
        <if test="inhospMydFlag != null ">and b.inhosp_myd_flag = #{inhospMydFlag}</if>
        <if test="encounterSourceId != null and encounterSourceId != ''">
            and b.encounter_source_id = #{encounterSourceId}
        </if>
        <if test="importanceFlagCode != null and importanceFlagCode != ''">
            and b.importance_flag_code = #{importanceFlagCode}
        </if>
        <if test="emergencyLevelCode != null and emergencyLevelCode != ''">
            and b.emergency_level_code = #{emergencyLevelCode}
        </if>
        <if test="orgid != null and orgid != ''">
            and a.orgid = #{orgid}
        </if>
@@ -626,6 +662,9 @@
        <if test="managementDoctor != null ">and management_doctor = #{managementDoctor}</if>
        <if test="managementDoctorCode != null ">and management_doctor_code = #{managementDoctorCode}</if>
        <if test="campusid != null ">and campusid = #{campusid}</if>
        <if test="importanceFlagCode != null ">and importance_flag_code = #{importanceFlagCode}</if>
        <if test="emergencyLevelCode != null ">and emergency_level_code = #{emergencyLevelCode}</if>
        <if test="encounterSourceId != null ">and encounter_source_id = #{encounterSourceId}</if>
    </select>
@@ -699,6 +738,9 @@
            <if test="managementDoctorCode != null ">management_doctor_code,</if>
            <if test="campusid != null ">campusid,</if>
            <if test="inhospMydFlag != null ">inhosp_myd_flag,</if>
            <if test="importanceFlagCode != null ">importance_flag_code,</if>
            <if test="emergencyLevelCode != null ">emergency_level_code,</if>
            <if test="encounterSourceId != null ">encounter_source_id,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="serialnum != null">#{serialnum},</if>
@@ -766,7 +808,9 @@
            <if test="managementDoctor != null ">#{managementDoctor},</if>
            <if test="managementDoctorCode != null ">#{managementDoctorCode},</if>
            <if test="campusid != null ">#{campusid},</if>
            <if test="inhospMydFlag != null ">#{inhospMydFlag},</if>
            <if test="importanceFlagCode != null ">#{importanceFlagCode},</if>
            <if test="emergencyLevelCode != null ">#{emergencyLevelCode},</if>
            <if test="encounterSourceId != null ">#{encounterSourceId},</if>
        </trim>
    </insert>
@@ -785,7 +829,7 @@
        nurse_id, nurse_name, out_way_id, out_way_name, guid,
        operator, operator_id, inhospno, remark,
        fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice, management_doctor,
        management_doctor_doctor,campusid, inhosp_myd_flag
        management_doctor_doctor,campusid, inhosp_myd_flag, importance_flag_code, emergency_level_code, encounter_source_id
        )
        values
        <foreach collection="list" item="item" separator=",">
@@ -807,7 +851,8 @@
            #{item.nurseId}, #{item.nurseName}, #{item.outWayId}, #{item.outWayName}, #{item.guid},
            #{item.operator}, #{item.operatorId}, #{item.inhospno}, #{item.remark},
            #{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice},
            #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode}, #{item.campusid}, #{item.inhospMydFlag}
            #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode}, #{item.campusid}, #{item.inhospMydFlag},
            #{item.importanceFlagCode}, #{item.emergencyLevelCode}, #{item.encounterSourceId}
            )
        </foreach>
    </insert>
@@ -881,6 +926,9 @@
            <if test="managementDoctorCode != null ">management_doctor_code = #{managementDoctorCode},</if>
            <if test="campusid != null ">campusid = #{campusid},</if>
            <if test="inhospMydFlag != null ">inhosp_myd_flag = #{inhospMydFlag},</if>
            <if test="importanceFlagCode != null ">importance_flag_code = #{importanceFlagCode},</if>
            <if test="emergencyLevelCode != null ">emergency_level_code = #{emergencyLevelCode},</if>
            <if test="encounterSourceId != null ">encounter_source_id = #{encounterSourceId},</if>
        </trim>
        where inhospid = #{inhospid}
    </update>