专病路径

This commit is contained in:
zhangheng 2024-04-08 11:14:49 +08:00
parent b357b669cd
commit 193a3a6095
10 changed files with 55 additions and 74 deletions

View File

@ -110,7 +110,7 @@ public class QuestionInfoController extends BaseController {
* 科室问卷数量 * 科室问卷数量
*/ */
@GetMapping("/departmentQuestionCount") @GetMapping("/departmentQuestionCount")
public AjaxResult departmentQuestionCount(String departmentName) { public AjaxResult departmentQuestionCount(String departmentName, String questionnaireStatus) {
return questionInfoService.departmentQuestionCount(departmentName); return questionInfoService.departmentQuestionCount(departmentName, questionnaireStatus);
} }
} }

View File

@ -97,7 +97,7 @@ public class SignPatientManageRouteNode extends BaseEntity {
/** 电话内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ /** 电话内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */
@ApiModelProperty(value = "电话内容") @ApiModelProperty(value = "电话内容")
@Excel(name = "电话内容", readConverterExp = "=文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记") @Excel(name = "电话内容", readConverterExp = "文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记")
private String phoneNodeContent; private String phoneNodeContent;
/** 电话重拨次数重拨一次REDIAL_ONCE重拨二次REDIAL_TWICE不重播NOT_REPLAY */ /** 电话重拨次数重拨一次REDIAL_ONCE重拨二次REDIAL_TWICE不重播NOT_REPLAY */

View File

@ -2,10 +2,10 @@ package com.xinelu.manage.mapper.questioninfo;
import com.xinelu.manage.domain.questioninfo.QuestionInfo; import com.xinelu.manage.domain.questioninfo.QuestionInfo;
import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.manage.vo.department.DepartmentVO;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/** /**
* 问卷基本信息Mapper接口 * 问卷基本信息Mapper接口
* *
@ -65,8 +65,9 @@ public interface QuestionInfoMapper {
/** /**
* 科室路径数量 * 科室路径数量
* *
* @param departmentName 科室名称 * @param departmentName 科室名称
* @param questionnaireStatus 问卷状态
* @return DepartmentVO * @return DepartmentVO
*/ */
List<DepartmentVO> departmentQuestionByDepartmentName(String departmentName); List<DepartmentVO> departmentQuestionByDepartmentName(@Param("departmentName") String departmentName, @Param("questionnaireStatus") String questionnaireStatus);
} }

View File

@ -1,17 +1,22 @@
package com.xinelu.manage.service.patienttaskexecuterecord.impl; package com.xinelu.manage.service.patienttaskexecuterecord.impl;
import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.TaskContentEnum;
import com.xinelu.common.utils.AgeUtil; import com.xinelu.common.utils.AgeUtil;
import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord; import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord;
import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper; import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper;
import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper; import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper;
import com.xinelu.manage.service.patienttaskexecuterecord.IPatientTaskExecuteRecordService; import com.xinelu.manage.service.patienttaskexecuterecord.IPatientTaskExecuteRecordService;
import com.xinelu.manage.service.propagandainfo.IPropagandaInfoService;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultVO;
import com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO; import com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 患者管理任务执行记录Service业务层处理 * 患者管理任务执行记录Service业务层处理
@ -25,6 +30,8 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR
private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper; private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper;
@Resource @Resource
private PatientQuestionSubmitResultMapper submitResultMapper; private PatientQuestionSubmitResultMapper submitResultMapper;
@Resource
private IPropagandaInfoService iPropagandaInfoService;
/** /**
* 查询患者管理任务执行记录 * 查询患者管理任务执行记录
@ -115,6 +122,29 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR
*/ */
@Override @Override
public AjaxResult selectPatientQuestionSubmit(Long taskExecuteRecordId) { public AjaxResult selectPatientQuestionSubmit(Long taskExecuteRecordId) {
return AjaxResult.success(submitResultMapper.selectResultByTaskExecuteRecordId(taskExecuteRecordId)); //判断任务类型
PatientTaskExecuteRecord patientTaskExecuteRecord = patientTaskExecuteRecordMapper.selectPatientTaskExecuteRecordById(taskExecuteRecordId);
if (Objects.isNull(patientTaskExecuteRecord) || StringUtils.isBlank(patientTaskExecuteRecord.getTaskContent())) {
return AjaxResult.success();
}
//如果是人工随访或问卷表
if (TaskContentEnum.ARTIFICIAL_FOLLOW_UP.getInfo().equals(patientTaskExecuteRecord.getTaskContent()) || TaskContentEnum.QUESTIONNAIRE_SCALE.getInfo().equals(patientTaskExecuteRecord.getTaskContent())) {
PatientQuestionSubmitResultVO patientQuestionSubmitResult = submitResultMapper.selectResultByTaskExecuteRecordId(taskExecuteRecordId);
patientQuestionSubmitResult.setTaskContent(patientTaskExecuteRecord.getTaskContent());
return AjaxResult.success(patientQuestionSubmitResult);
}
//如果是电话外呼
if (TaskContentEnum.PHONE_OUTBOUND.getInfo().equals(patientTaskExecuteRecord.getTaskContent())) {
return AjaxResult.success();
}
//如果是宣教文章
if (TaskContentEnum.PROPAGANDA_ARTICLE.getInfo().equals(patientTaskExecuteRecord.getTaskContent())) {
return AjaxResult.success();
}
if (TaskContentEnum.TEXT_REMIND.getInfo().equals(patientTaskExecuteRecord.getTaskContent())) {
return AjaxResult.success();
}
return AjaxResult.success();
} }
} }

View File

@ -75,5 +75,5 @@ public interface IQuestionInfoService {
* @param departmentName 科室名称 * @param departmentName 科室名称
* @return AjaxResult * @return AjaxResult
*/ */
AjaxResult departmentQuestionCount(String departmentName); AjaxResult departmentQuestionCount(String departmentName, String questionnaireStatus);
} }

View File

@ -288,12 +288,12 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
* @return AjaxResult * @return AjaxResult
*/ */
@Override @Override
public AjaxResult departmentQuestionCount(String departmentName) { public AjaxResult departmentQuestionCount(String departmentName, String questionnaireStatus) {
DepartmentVO departmentVO = new DepartmentVO(); DepartmentVO departmentVO = new DepartmentVO();
List<DepartmentVO> department = new ArrayList<>(); List<DepartmentVO> department = new ArrayList<>();
departmentVO.setDepartmentName("全部"); departmentVO.setDepartmentName("全部");
departmentVO.setCountNum(0); departmentVO.setCountNum(0);
List<DepartmentVO> departmentVOS = questionInfoMapper.departmentQuestionByDepartmentName(departmentName); List<DepartmentVO> departmentVOS = questionInfoMapper.departmentQuestionByDepartmentName(departmentName, questionnaireStatus);
if (CollectionUtils.isNotEmpty(departmentVOS)) { if (CollectionUtils.isNotEmpty(departmentVOS)) {
Integer result = departmentVOS.stream().mapToInt(DepartmentVO::getCountNum).sum(); Integer result = departmentVOS.stream().mapToInt(DepartmentVO::getCountNum).sum();
departmentVO.setCountNum(result); departmentVO.setCountNum(result);

View File

@ -6,7 +6,6 @@ import com.xinelu.common.utils.SecurityUtils;
import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.common.utils.bean.BeanUtils;
import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode; import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode;
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
import com.xinelu.manage.domain.specialdiseasetriggercondition.SpecialDiseaseTriggerCondition;
import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper; import com.xinelu.manage.mapper.specialdiseasenode.SpecialDiseaseNodeMapper;
import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper; import com.xinelu.manage.mapper.specialdiseaseroute.SpecialDiseaseRouteMapper;
import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper; import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper;
@ -18,7 +17,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -86,17 +84,6 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
if (insertNodeCount < 0) { if (insertNodeCount < 0) {
throw new ServiceException("新增专病路径管理节点信息失败"); throw new ServiceException("新增专病路径管理节点信息失败");
} }
List<SpecialDiseaseTriggerCondition> specialDiseaseTriggerConditions = new ArrayList<>();
for (SpecialDiseaseTriggerCondition triggerCondition : specialDiseaseNode.getTriggerConditionList()) {
triggerCondition.setRouteId(specialDiseaseRoute.getId());
triggerCondition.setCreateTime(LocalDateTime.now());
triggerCondition.setCreateBy(SecurityUtils.getUsername());
specialDiseaseTriggerConditions.add(triggerCondition);
}
int triggerConditionCount = triggerConditionMapper.insertTriggerConditionList(specialDiseaseTriggerConditions);
if (triggerConditionCount < 0) {
throw new ServiceException("新增专病路径管理节点信息失败");
}
return AjaxResult.success(); return AjaxResult.success();
} }
@ -113,18 +100,20 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
BeanUtils.copyBeanProp(specialDiseaseRoute, specialDiseaseNode); BeanUtils.copyBeanProp(specialDiseaseRoute, specialDiseaseNode);
specialDiseaseRoute.setUpdateTime(LocalDateTime.now()); specialDiseaseRoute.setUpdateTime(LocalDateTime.now());
specialDiseaseRoute.setUpdateBy(SecurityUtils.getUsername()); specialDiseaseRoute.setUpdateBy(SecurityUtils.getUsername());
specialDiseaseRoute.setId(specialDiseaseNode.getSpecialDiseaseRouteId());
int updateRouteCount = specialDiseaseRouteMapper.updateSpecialDiseaseRoute(specialDiseaseRoute); int updateRouteCount = specialDiseaseRouteMapper.updateSpecialDiseaseRoute(specialDiseaseRoute);
if (updateRouteCount < 0) { if (updateRouteCount < 0) {
log.info("修改专病路径失败"); log.info("修改专病路径失败");
throw new ServiceException("修改专病路径管理节点信息失败"); throw new ServiceException("修改专病路径管理节点信息失败");
} }
int deleteCount = specialDiseaseNodeMapper.deleteSpecialDiseaseNodeByRouteId(specialDiseaseNode.getId()); int deleteCount = specialDiseaseNodeMapper.deleteSpecialDiseaseNodeByRouteId(specialDiseaseRoute.getId());
if (deleteCount < 0) { if (deleteCount < 0) {
log.info("删除管理节点信息失败"); log.info("删除管理节点信息失败");
throw new ServiceException("修改专病路径管理节点信息失败"); throw new ServiceException("修改专病路径管理节点信息失败");
} }
for (SpecialDiseaseNode diseaseNode : specialDiseaseNode.getSpecialDiseaseNodeList()) { for (SpecialDiseaseNode diseaseNode : specialDiseaseNode.getSpecialDiseaseNodeList()) {
diseaseNode.setRouteId(specialDiseaseRoute.getId()); diseaseNode.setRouteId(specialDiseaseRoute.getId());
diseaseNode.setRouteName(specialDiseaseNode.getRouteName());
diseaseNode.setUpdateTime(LocalDateTime.now()); diseaseNode.setUpdateTime(LocalDateTime.now());
diseaseNode.setUpdateBy(SecurityUtils.getUsername()); diseaseNode.setUpdateBy(SecurityUtils.getUsername());
} }
@ -133,22 +122,6 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
log.info("新增管理节点信息失败"); log.info("新增管理节点信息失败");
throw new ServiceException("修改专病路径管理节点信息失败"); throw new ServiceException("修改专病路径管理节点信息失败");
} }
int deleteCondition = triggerConditionMapper.deleteSpecialDiseaseTriggerConditionByRouteId(specialDiseaseRoute.getId());
if (deleteCondition < 0) {
log.info("删除管理节点信息失败");
throw new ServiceException("修改专病路径管理节点信息失败");
}
List<SpecialDiseaseTriggerCondition> specialDiseaseTriggerConditions = new ArrayList<>();
for (SpecialDiseaseTriggerCondition triggerCondition : specialDiseaseNode.getTriggerConditionList()) {
triggerCondition.setRouteId(specialDiseaseRoute.getId());
triggerCondition.setCreateTime(LocalDateTime.now());
triggerCondition.setCreateBy(SecurityUtils.getUsername());
specialDiseaseTriggerConditions.add(triggerCondition);
}
int triggerConditionCount = triggerConditionMapper.insertTriggerConditionList(specialDiseaseTriggerConditions);
if (triggerConditionCount < 0) {
throw new ServiceException("修改专病路径管理节点信息失败");
}
return AjaxResult.success(); return AjaxResult.success();
} }

View File

@ -1,6 +1,5 @@
package com.xinelu.manage.vo.patientquestionsubmitresult; package com.xinelu.manage.vo.patientquestionsubmitresult;
import com.xinelu.manage.vo.patientquestionsubjectresult.PatientQuestionSubjectResultVO; import com.xinelu.manage.vo.patientquestionsubjectresult.PatientQuestionSubjectResultVO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -17,6 +16,12 @@ import java.util.List;
public class PatientQuestionSubmitResultVO { public class PatientQuestionSubmitResultVO {
private Long submitResulId; private Long submitResulId;
/**
* 任务类型
*/
private String taskContent;
/** /**
* 问卷标题 * 问卷标题
*/ */

View File

@ -256,6 +256,9 @@
<if test="departmentName != null and departmentName != ''"> <if test="departmentName != null and departmentName != ''">
dt.department_name like concat('%',#{departmentName},'%') dt.department_name like concat('%',#{departmentName},'%')
</if> </if>
<if test="questionnaireStatus != null and questionnaireStatus != ''">
qi.questionnaire_status =#{questionnaireStatus}
</if>
</where> </where>
GROUP BY dt.id GROUP BY dt.id
</select> </select>

View File

@ -20,8 +20,6 @@
<result property="routeRemark" column="route_remark"/> <result property="routeRemark" column="route_remark"/>
<collection property="specialDiseaseNodeList" javaType="java.util.List" <collection property="specialDiseaseNodeList" javaType="java.util.List"
resultMap="SpecialDiseaseNodeResult"/> resultMap="SpecialDiseaseNodeResult"/>
<collection property="triggerConditionList" javaType="java.util.List"
resultMap="SpecialDiseaseTriggerConditionResult"/>
</resultMap> </resultMap>
<resultMap type="SpecialDiseaseNode" id="SpecialDiseaseNodeResult"> <resultMap type="SpecialDiseaseNode" id="SpecialDiseaseNodeResult">
@ -72,19 +70,6 @@
<result property="updateBy" column="update_by"/> <result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/> <result property="updateTime" column="update_time"/>
</resultMap> </resultMap>
<resultMap type="SpecialDiseaseTriggerCondition" id="SpecialDiseaseTriggerConditionResult">
<result property="id" column="triggerConditionId"/>
<result property="routeId" column="route_id"/>
<result property="routeName" column="route_name"/>
<result property="triggerConditionCode" column="trigger_condition_code"/>
<result property="triggerConditionName" column="trigger_condition_name"/>
<result property="triggerConditionOperator" column="trigger_condition_operator"/>
<result property="triggerConditionValue" column="trigger_condition_value"/>
<result property="triggerConditionSort" column="trigger_condition_sort"/>
<result property="triggerConditionRemark" column="trigger_condition_remark"/>
</resultMap>
<sql id="selectSpecialDiseaseNodeVo"> <sql id="selectSpecialDiseaseNodeVo">
select id, select id,
route_id, route_id,
@ -716,7 +701,7 @@
</delete> </delete>
<select id="selectSpecialDiseaseByRouteId" <select id="selectSpecialDiseaseByRouteId"
resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO"
resultMap="SpecialDiseaseRouteResult"> resultMap="SpecialDiseaseRouteResult">
select sdr.id specialDiseaseRouteId, select sdr.id specialDiseaseRouteId,
sdr.department_id, sdr.department_id,
@ -770,25 +755,9 @@
sdn.route_check_person, sdn.route_check_person,
sdn.route_check_date, sdn.route_check_date,
sdn.route_check_remark, sdn.route_check_remark,
sdn.node_content, sdn.node_content
sdtc.id triggerConditionId,
sdtc.route_id,
sdtc.route_name,
sdtc.trigger_condition_code,
sdtc.trigger_condition_name,
sdtc.trigger_condition_operator,
sdtc.trigger_condition_value,
sdtc.trigger_condition_sort,
sdtc.trigger_condition_remark
from special_disease_route sdr from special_disease_route sdr
left join special_disease_node sdn ON sdn.route_id = sdr.id left join special_disease_node sdn ON sdn.route_id = sdr.id
LEFT JOIN special_disease_trigger_condition sdtc ON sdtc.route_id = sdr.id
where sdr.id = #{specialDiseaseRouteId} where sdr.id = #{specialDiseaseRouteId}
</select> </select>
<delete id="deleteSpecialDiseaseNodeRouteId">
</delete>
</mapper> </mapper>