专病路径修改

This commit is contained in:
zhangheng 2024-04-23 17:38:54 +08:00
parent 7ba09706a1
commit f2d9cde171
13 changed files with 45 additions and 44 deletions

View File

@ -78,7 +78,7 @@ public class SignPatientManageRouteController extends BaseController {
}
/**
* 修改签约患者管理任务路径
* 修改签约患者管理任务路径(未使用)
*/
@PreAuthorize("@ss.hasPermi('manage:signroute:edit')")
@Log(title = "签约患者管理任务路径", businessType = BusinessType.UPDATE)
@ -122,5 +122,4 @@ public class SignPatientManageRouteController extends BaseController {
public AjaxResult addPatientQuestionResult(@RequestBody PatientQuestionSubmitResultDTO dto) {
return signPatientManageRouteService.addPatientQuestionResult(dto);
}
}

View File

@ -62,7 +62,7 @@ public class SpecialDiseaseNodeController extends BaseController {
}
/**
* 新增专病路径-管理节点信息
* 新增专病路径-管理节点信息(未使用)
*/
@PreAuthorize("@ss.hasPermi('system:specialDiseaseNode:add')")
@Log(title = "专病路径-管理节点信息", businessType = BusinessType.INSERT)

View File

@ -51,22 +51,22 @@ public class SpecialDiseaseRouteController extends BaseController {
}
/**
* 新增专病路径信息
* 新增专病路径信息及服务包信息
*/
@PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:add')")
@Log(title = "专病路径信息", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody @Validated(Insert.class)SpecialDiseaseRouteVO specialDiseaseRoute) {
public AjaxResult add(@RequestBody @Validated(Insert.class) SpecialDiseaseRouteVO specialDiseaseRoute) {
return specialDiseaseRouteService.insertSpecialDiseaseRoute(specialDiseaseRoute);
}
/**
* 修改专病路径信息
* 修改专病路径信息及服务包信息
*/
@PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:edit')")
@Log(title = "专病路径信息", businessType = BusinessType.UPDATE)
@PutMapping("/edit")
public AjaxResult edit(@RequestBody @Validated(Update.class)SpecialDiseaseRouteVO specialDiseaseRoute) {
public AjaxResult edit(@RequestBody @Validated(Update.class) SpecialDiseaseRouteVO specialDiseaseRoute) {
return specialDiseaseRouteService.updateSpecialDiseaseRoute(specialDiseaseRoute);
}

View File

@ -3,18 +3,15 @@ package com.xinelu.manage.domain.signpatientmanageroutenode;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.annotation.Excel;
import com.xinelu.common.core.domain.BaseEntity;
import com.xinelu.common.custominterface.Insert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDateTime;
import java.time.LocalTime;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.time.LocalTime;
/**
* 签约患者管理任务路径节点对象 sign_patient_manage_route_node
@ -46,44 +43,37 @@ public class SignPatientManageRouteNode extends BaseEntity {
/** 管理路径节点名称 */
@ApiModelProperty(value = "管理路径节点名称")
@Excel(name = "管理路径节点名称")
@NotBlank(message = "管理路径节点名称不能为空", groups = {Insert.class})
private String routeNodeName;
/** 管理路径节点时间,时间单位为:天 */
@ApiModelProperty(value = "管理路径节点时间,时间单位为:天")
@Excel(name = "管理路径节点时间,时间单位为:天")
@NotNull(message = "管理路径节点时间不能为空", groups = {Insert.class})
private Integer routeNodeDay;
/** 任务类型电话外呼PHONE_OUTBOUND问卷量表QUESTIONNAIRE_SCALE宣教文章PROPAGANDA_ARTICLE文字提醒TEXT_REMIND人工随访ARTIFICIAL_FOLLOW_UP */
@ApiModelProperty(value = "任务类型电话外呼PHONE_OUTBOUND问卷量表QUESTIONNAIRE_SCALE宣教文章PROPAGANDA_ARTICLE文字提醒TEXT_REMIND人工随访ARTIFICIAL_FOLLOW_UP")
@Excel(name = "任务类型电话外呼PHONE_OUTBOUND问卷量表QUESTIONNAIRE_SCALE宣教文章PROPAGANDA_ARTICLE文字提醒TEXT_REMIND人工随访ARTIFICIAL_FOLLOW_UP")
@NotBlank(message = "任务类型不能为空", groups = {Insert.class})
private String taskType;
/** 任务状态 */
@ApiModelProperty(value = "任务状态")
@Excel(name = "任务状态")
@NotBlank(message = "任务状态不能为空", groups = {Insert.class})
private String taskStatus;
/** 任务细分 */
@ApiModelProperty(value = "任务细分")
@Excel(name = "任务细分")
@NotBlank(message = "任务细分不能为空", groups = {Insert.class})
private String taskSubdivision;
/** 二级分类描述 */
@ApiModelProperty(value = "二级分类描述")
@Excel(name = "二级分类描述")
@NotBlank(message = "二级分类描述不能为空", groups = {Insert.class})
private String secondClassifyDescribe;
/** 执行时间格式HH:mm */
@ApiModelProperty(value = "执行时间格式HH:mm")
@JsonFormat(pattern = "HH:mm")
@Excel(name = "执行时间格式HH:mm", width = 30, dateFormat = "yyyy-MM-dd")
@NotBlank(message = "执行时间不能为空", groups = {Insert.class})
private LocalTime executeTime;
/** 电话推送标识0未开启1已开启 */

View File

@ -3,8 +3,6 @@ package com.xinelu.manage.domain.specialdiseasenode;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xinelu.common.annotation.Excel;
import com.xinelu.common.core.domain.BaseEntity;
import com.xinelu.common.custominterface.Insert;
import com.xinelu.common.custominterface.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
@ -14,8 +12,6 @@ import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
import java.time.LocalTime;
@ -57,7 +53,6 @@ public class SpecialDiseaseNode extends BaseEntity {
*/
@ApiModelProperty(value = "节点名称出院后AFTER_DISCHARGE入院后AFTER_ADMISSION就诊后AFTER_CONSULTATION就诊/出院后AFTER_VISIT_DISCHARGE术前PREOPERATIVE术后POSTOPERATIVE")
@Excel(name = "节点名称出院后AFTER_DISCHARGE入院后AFTER_ADMISSION就诊后AFTER_CONSULTATION就诊/出院后AFTER_VISIT_DISCHARGE术前PREOPERATIVE术后POSTOPERATIVE")
@NotBlank(message = "节点名称不能为空", groups = {Insert.class, Update.class})
private String routeNodeName;
/**
@ -65,7 +60,6 @@ public class SpecialDiseaseNode extends BaseEntity {
*/
@ApiModelProperty(value = "节点天数,单位:天")
@Excel(name = "节点天数,单位:天")
@NotNull(message = "节点天数不能为空", groups = {Insert.class, Update.class})
private Integer routeNodeDay;
/**
@ -73,7 +67,6 @@ public class SpecialDiseaseNode extends BaseEntity {
*/
@ApiModelProperty(value = "任务类型")
@Excel(name = "任务类型")
@NotBlank(message = "任务类型不能为空", groups = {Insert.class, Update.class})
private String taskType;
/**
@ -81,7 +74,6 @@ public class SpecialDiseaseNode extends BaseEntity {
*/
@ApiModelProperty(value = "任务细分")
@Excel(name = "任务细分")
@NotBlank(message = "任务细分不能为空", groups = {Insert.class, Update.class})
private String taskSubdivision;
/**
@ -89,7 +81,6 @@ public class SpecialDiseaseNode extends BaseEntity {
*/
@ApiModelProperty(value = "任务状态")
@Excel(name = "任务状态")
@NotBlank(message = "任务状态不能为空", groups = {Insert.class, Update.class})
private String taskStatus;
/**

View File

@ -3,6 +3,7 @@ package com.xinelu.manage.domain.specialdiseaseroute;
import com.xinelu.common.annotation.Excel;
import com.xinelu.common.core.domain.BaseEntity;
import com.xinelu.common.custominterface.Insert;
import com.xinelu.common.custominterface.Query;
import com.xinelu.common.custominterface.Update;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -14,6 +15,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* 专病路径信息对象 special_disease_route
@ -39,6 +41,7 @@ public class SpecialDiseaseRoute extends BaseEntity {
*/
@ApiModelProperty(value = "所属科室id")
@Excel(name = "所属科室id")
@NotNull(message = "所属科室不能为空", groups = {Insert.class})
private Long departmentId;
/**
@ -46,6 +49,7 @@ public class SpecialDiseaseRoute extends BaseEntity {
*/
@ApiModelProperty(value = "所属科室名称")
@Excel(name = "所属科室名称")
@NotBlank(message = "所属科室不能为空", groups = {Insert.class})
private String departmentName;
/**
@ -53,6 +57,7 @@ public class SpecialDiseaseRoute extends BaseEntity {
*/
@ApiModelProperty(value = "病种id")
@Excel(name = "病种id")
@NotNull(message = "所属病种不能为空", groups = {Insert.class})
private Long diseaseTypeId;
/**
@ -60,6 +65,7 @@ public class SpecialDiseaseRoute extends BaseEntity {
*/
@ApiModelProperty(value = "病种名称")
@Excel(name = "病种名称")
@NotBlank(message = "所属病种不能为空", groups = {Insert.class})
private String diseaseTypeName;
/**
@ -104,7 +110,7 @@ public class SpecialDiseaseRoute extends BaseEntity {
*/
@ApiModelProperty(value = "适用范围在院IN_THE_HOSPITAL出院DISCHARGE门诊OUTPATIENT_SERVICE门诊+出院OUTPATIENT_SERVICE_DISCHARGE")
@Excel(name = "适用范围在院IN_THE_HOSPITAL出院DISCHARGE门诊OUTPATIENT_SERVICE门诊+出院OUTPATIENT_SERVICE_DISCHARGE")
@NotBlank(message = "版本号不能为空", groups = {Insert.class, Update.class})
@NotBlank(message = "适用范围不能为空", groups = {Insert.class, Query.class})
private String suitRange;
/**
@ -112,7 +118,7 @@ public class SpecialDiseaseRoute extends BaseEntity {
*/
@ApiModelProperty(value = "排序")
@Excel(name = "排序")
private Long routeSort;
private Integer routeSort;
/**
* 备注信息

View File

@ -15,16 +15,17 @@ import com.xinelu.manage.vo.department.DepartmentVO;
import com.xinelu.manage.vo.questionInfo.QuestionVO;
import com.xinelu.manage.vo.questionsubject.QuestionSubjectVO;
import com.xinelu.manage.vo.questionsubjectoption.QuestionSubjectOptionVO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 问卷基本信息Service业务层处理
@ -307,10 +308,11 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
departmentVO.setCountNum(0);
List<DepartmentVO> departmentVOS = questionInfoMapper.departmentQuestionByDepartmentName(departmentName, questionnaireStatus, questionType);
if (CollectionUtils.isNotEmpty(departmentVOS)) {
Integer result = departmentVOS.stream().mapToInt(DepartmentVO::getCountNum).sum();
departmentVO.setCountNum(result);
departmentVO.setCountNum(departmentVOS.get(0).getTotalNumber());
department.add(departmentVO);
department.addAll(departmentVOS);
} else {
department.add(departmentVO);
}
return AjaxResult.success(department);
}

View File

@ -20,7 +20,6 @@ import com.xinelu.manage.dto.manualfollowup.ManualFollowUpDTO;
import com.xinelu.manage.dto.patientquestionoptionresult.PatientQuestionOptionResultDTO;
import com.xinelu.manage.dto.patientquestionsubjectresult.PatientQuestionSubjectResultDTO;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO;
import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper;
import com.xinelu.manage.mapper.patientquestionoptionresult.PatientQuestionOptionResultMapper;
import com.xinelu.manage.mapper.patientquestionsubjectresult.PatientQuestionSubjectResultMapper;
import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper;
@ -33,6 +32,7 @@ import com.xinelu.manage.vo.manualfollowup.ManualFollowPatientVO;
import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO;
import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO;
import com.xinelu.manage.vo.signroutetriggercondition.SignRouteTriggerConditionVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -110,8 +110,14 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
//新增节点表
List<SignPatientManageRouteNode> signPatientManageRouteNodes = new ArrayList<>();
for (SignPatientManageRouteNode routeNode : signPatientManageRoute.getRouteNodeList()) {
if (Objects.isNull(routeNode) || StringUtils.isBlank(routeNode.getTaskType()) || (" ").equals(routeNode.getTaskType()) || StringUtils.isBlank(routeNode.getRouteNodeName()) || Objects.isNull(routeNode.getRouteNodeDay())) {
continue;
}
extracted(signPatientManageRoute, signPatientManageRouteNodes, routeNode);
}
if (CollectionUtils.isEmpty(signPatientManageRouteNodes)) {
return AjaxResult.error("创建任务中至少有一个管理任务节点!");
}
int insertBatchCount = signPatientManageRouteNodeMapper.insertBatch(signPatientManageRouteNodes);
if (insertBatchCount < 0) {
return AjaxResult.error("新增签约患者管理任务路径失败!请联系管理员!");
@ -125,6 +131,9 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
BeanUtils.copyBeanProp(triggerCondition, signRouteTriggerCondition);
signRouteTriggerConditions.add(triggerCondition);
}
if (CollectionUtils.isEmpty(signRouteTriggerConditions)) {
return AjaxResult.success();
}
int insertTriggerCondition = signRouteTriggerConditionMapper.insertBatch(signRouteTriggerConditions);
if (insertTriggerCondition < 0) {
return AjaxResult.error("新增签约患者管理任务路径失败!请联系管理员!");

View File

@ -31,7 +31,7 @@ public interface ISpecialDiseaseRouteService {
List<SpecialDiseaseRouteVO> selectSpecialDiseaseRouteList(SpecialDiseaseRouteDTO specialDiseaseRoute);
/**
* 新增专病路径信息
* 新增专病路径信息及服务包信息
*
* @param specialDiseaseRoute 专病路径信息
* @return 结果
@ -39,7 +39,7 @@ public interface ISpecialDiseaseRouteService {
AjaxResult insertSpecialDiseaseRoute(SpecialDiseaseRouteVO specialDiseaseRoute);
/**
* 修改专病路径信息
* 修改专病路径信息及服务包信息
*
* @param specialDiseaseRoute 专病路径信息
* @return 结果

View File

@ -73,7 +73,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
}
/**
* 新增专病路径信息
* 新增专病路径信息及服务包信息
*
* @param specialDiseaseRoute 专病路径信息
* @return 结果
@ -88,6 +88,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
if (insertRouteCount < 0) {
return AjaxResult.error("新增专病路径信息失败,请联系管理员!");
}
//服务包
List<SpecialDiseaseRoutePackage> specialDiseaseRoutePackages = new ArrayList<>();
if (CollectionUtils.isNotEmpty(specialDiseaseRoute.getRoutePackageList())) {
for (SpecialDiseaseRoutePackage specialDiseaseRoutePackage : specialDiseaseRoute.getRoutePackageList()) {
@ -108,7 +109,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
}
/**
* 修改专病路径信息
* 修改专病路径信息及服务包信息
*
* @param specialDiseaseRoute 专病路径信息
* @return 结果

View File

@ -41,4 +41,6 @@ public class DepartmentVO {
*/
@ApiModelProperty(value = "所属科室下属数量")
private Integer countNum;
private Integer totalNumber;
}

View File

@ -262,7 +262,8 @@
select dt.id,
dt.department_name,
dt.department_code,
count(qi.id) AS countNum
count(qi.id) AS countNum,
(select count(1) from question_info) totalNumber
from department dt left join question_info qi on dt.id = qi.department_id
<where>
<if test="departmentName != null and departmentName != ''">

View File

@ -353,7 +353,7 @@
select dt.id,
dt.department_name,
dt.department_code,
count(sdr.id) AS countNum
( SELECT COUNT(1) FROM special_disease_route a WHERE a.department_id = dt.id ) AS countNum
from department dt left join special_disease_route sdr on dt.id = sdr.department_id
left join special_disease_route_package sdrp ON sdr.id = sdrp.route_id
<where>