专病路径

This commit is contained in:
zhangheng 2024-04-03 17:52:02 +08:00
parent 3a207c2d7b
commit 763dbb5eb7
13 changed files with 140 additions and 23 deletions

View File

@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* 专病路径-管理节点信息Controller * 专病路径-管理节点信息Controller
@ -95,6 +96,9 @@ public class SpecialDiseaseNodeController extends BaseController {
*/ */
@GetMapping("/selectSpecialDisease") @GetMapping("/selectSpecialDisease")
public AjaxResult selectSpecialDisease(Long specialDiseaseRouteId) { public AjaxResult selectSpecialDisease(Long specialDiseaseRouteId) {
if (Objects.isNull(specialDiseaseRouteId)) {
return AjaxResult.error("请选择查询的专病路径信息!");
}
return specialDiseaseNodeService.selectSpecialDisease(specialDiseaseRouteId); return specialDiseaseNodeService.selectSpecialDisease(specialDiseaseRouteId);
} }
} }

View File

@ -84,9 +84,9 @@ public class SpecialDiseaseRouteController extends BaseController {
*/ */
@PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:remove')") @PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:remove')")
@Log(title = "专病路径信息", businessType = BusinessType.DELETE) @Log(title = "专病路径信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{id}")
public AjaxResult remove(@PathVariable Long[] ids) { public AjaxResult remove(@PathVariable Long id) {
return toAjax(specialDiseaseRouteService.deleteSpecialDiseaseRouteByIds(ids)); return specialDiseaseRouteService.deleteSpecialDiseaseRouteById(id);
} }
/** /**

View File

@ -40,6 +40,16 @@ public class DepartmentDTO extends BaseEntity {
@ApiModelProperty(value = "科室代码") @ApiModelProperty(value = "科室代码")
private String departmentCode; private String departmentCode;
/**
* 短信上下架
*/
private String textMessageStatus;
/**
* 微信状态
*/
private String templateSource;
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)

View File

@ -3,7 +3,9 @@ package com.xinelu.manage.dto.manualfollowup;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@ -15,14 +17,15 @@ import java.time.LocalDateTime;
@Data @Data
public class ManualFollowUpDTO { public class ManualFollowUpDTO {
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "随访开始时间") @ApiModelProperty(value = "随访开始时间")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime followStartTime; private LocalDate followStartTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "随访结束时间") @ApiModelProperty(value = "随访结束时间")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime followEndTime; private LocalDate followEndTime;
@ApiModelProperty(value = "患者姓名") @ApiModelProperty(value = "患者姓名")
private String patientName; private String patientName;
@ -48,21 +51,25 @@ public class ManualFollowUpDTO {
@ApiModelProperty(value = "就诊流水号") @ApiModelProperty(value = "就诊流水号")
private String visitSerialNumber; private String visitSerialNumber;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "入院开始时间") @ApiModelProperty(value = "入院开始时间")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime admissionStartTime; private LocalDate admissionStartTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "入院结束时间") @ApiModelProperty(value = "入院结束时间")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime admissionEndTime; private LocalDate admissionEndTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "门诊(门诊患者)开始时间") @ApiModelProperty(value = "门诊(门诊患者)开始时间")
private LocalDateTime clinicalStartTime; private LocalDate clinicalStartTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "门诊(门诊患者)结束时间") @ApiModelProperty(value = "门诊(门诊患者)结束时间")
private LocalDateTime clinicalEndTime; private LocalDate clinicalEndTime;
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "出院时间(出院患者)开始时间") @ApiModelProperty(value = "出院时间(出院患者)开始时间")

View File

@ -62,6 +62,13 @@ public interface SpecialDiseaseNodeMapper {
*/ */
int deleteSpecialDiseaseNodeByIds(Long[] ids); int deleteSpecialDiseaseNodeByIds(Long[] ids);
/**
* 批量新增专病路径
*
* @param specialDiseaseNodeList 数据集合
* @return int
*/
int insertSpecialDiseaseNodeList(List<SpecialDiseaseNodeVO> specialDiseaseNodeList); int insertSpecialDiseaseNodeList(List<SpecialDiseaseNodeVO> specialDiseaseNodeList);
/** /**

View File

@ -6,8 +6,10 @@ 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.service.specialdiseasenode.ISpecialDiseaseNodeService; import com.xinelu.manage.service.specialdiseasenode.ISpecialDiseaseNodeService;
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -16,6 +18,7 @@ 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;
/** /**
@ -31,6 +34,8 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
private SpecialDiseaseNodeMapper specialDiseaseNodeMapper; private SpecialDiseaseNodeMapper specialDiseaseNodeMapper;
@Resource @Resource
private SpecialDiseaseRouteMapper specialDiseaseRouteMapper; private SpecialDiseaseRouteMapper specialDiseaseRouteMapper;
@Resource
private SpecialDiseaseTriggerConditionMapper triggerConditionMapper;
/** /**
@ -81,6 +86,17 @@ 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();
} }
@ -117,6 +133,22 @@ 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

@ -59,7 +59,7 @@ public interface ISpecialDiseaseRouteService {
* @param id 专病路径信息主键 * @param id 专病路径信息主键
* @return 结果 * @return 结果
*/ */
int deleteSpecialDiseaseRouteById(Long id); AjaxResult deleteSpecialDiseaseRouteById(Long id);
/** /**
* 科室路径数量 * 科室路径数量

View File

@ -1,13 +1,17 @@
package com.xinelu.manage.service.specialdiseaseroute.impl; package com.xinelu.manage.service.specialdiseaseroute.impl;
import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute;
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.service.specialdiseaseroute.ISpecialDiseaseRouteService; import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService;
import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.manage.vo.department.DepartmentVO;
import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -24,6 +28,10 @@ import java.util.List;
public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteService { public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteService {
@Resource @Resource
private SpecialDiseaseRouteMapper specialDiseaseRouteMapper; private SpecialDiseaseRouteMapper specialDiseaseRouteMapper;
@Resource
private SpecialDiseaseNodeMapper specialDiseaseNodeMapper;
@Resource
private SpecialDiseaseTriggerConditionMapper triggerConditionMapper;
/** /**
* 查询专病路径信息 * 查询专病路径信息
@ -88,9 +96,22 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
* @param id 专病路径信息主键 * @param id 专病路径信息主键
* @return 结果 * @return 结果
*/ */
@Transactional(rollbackFor = Exception.class)
@Override @Override
public int deleteSpecialDiseaseRouteById(Long id) { public AjaxResult deleteSpecialDiseaseRouteById(Long id) {
return specialDiseaseRouteMapper.deleteSpecialDiseaseRouteById(id); int deleteRouteCount = specialDiseaseRouteMapper.deleteSpecialDiseaseRouteById(id);
if (deleteRouteCount < 0) {
throw new ServiceException("删除专病路径管理信息失败");
}
int deleteNodeCount = specialDiseaseNodeMapper.deleteSpecialDiseaseNodeByRouteId(id);
if (deleteNodeCount < 0) {
throw new ServiceException("删除专病路径管理信息失败");
}
int deleteTriggerConditionCount = triggerConditionMapper.deleteSpecialDiseaseTriggerConditionByRouteId(id);
if (deleteTriggerConditionCount < 0) {
throw new ServiceException("删除专病路径管理信息失败");
}
return AjaxResult.success();
} }
/** /**

View File

@ -67,6 +67,7 @@ public class SpecialDiseaseTriggerConditionServiceImpl implements ISpecialDiseas
@Override @Override
public int updateSpecialDiseaseTriggerCondition(SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition) { public int updateSpecialDiseaseTriggerCondition(SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition) {
specialDiseaseTriggerCondition.setUpdateTime(LocalDateTime.now()); specialDiseaseTriggerCondition.setUpdateTime(LocalDateTime.now());
specialDiseaseTriggerCondition.setUpdateBy(SecurityUtils.getUsername());
return specialDiseaseTriggerConditionMapper.updateSpecialDiseaseTriggerCondition(specialDiseaseTriggerCondition); return specialDiseaseTriggerConditionMapper.updateSpecialDiseaseTriggerCondition(specialDiseaseTriggerCondition);
} }

View File

@ -7,6 +7,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
/** /**
@ -69,9 +70,11 @@ public class PatientTaskExecuteRecordVO extends PatientTaskExecuteRecord {
@ApiModelProperty(value = "就诊方式门诊OUTPATIENT_SERVICE住院BE_IN_HOSPITAL") @ApiModelProperty(value = "就诊方式门诊OUTPATIENT_SERVICE住院BE_IN_HOSPITAL")
private String visitMethod; private String visitMethod;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate startDate; private LocalDate startDate;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate endDate; private LocalDate endDate;

View File

@ -218,14 +218,13 @@
from department d left join wechat_template wt on d.id = wt.department_id from department d left join wechat_template wt on d.id = wt.department_id
<where> <where>
<if test="departmentCode != null and departmentCode != ''"> <if test="departmentCode != null and departmentCode != ''">
and d.department_code = and d.department_code =#{departmentCode}
#{departmentCode}
</if> </if>
<if test="departmentName != null and departmentName != ''"> <if test="departmentName != null and departmentName != ''">
and d.department_name like concat('%', and d.department_name like concat('%',#{departmentName},'%')
#{departmentName}, </if>
'%' <if test="templateSource != null and templateSource != ''">
) and wt.template_source =#{templateSource}
</if> </if>
</where> </where>
GROUP BY d.id, GROUP BY d.id,
@ -245,6 +244,9 @@
<if test="departmentName != null and departmentName != ''"> <if test="departmentName != null and departmentName != ''">
and d.department_name like concat('%',#{departmentName},'%') and d.department_name like concat('%',#{departmentName},'%')
</if> </if>
<if test="textMessageStatus != null and textMessageStatus != ''">
and tm.text_message_status = #{textMessageStatus}
</if>
</where> </where>
GROUP BY d.id, GROUP BY d.id,
d.department_name, d.department_name,

View File

@ -74,7 +74,7 @@
and department_id = #{departmentId} and department_id = #{departmentId}
</if> </if>
<if test="propagandaTitle != null and propagandaTitle != ''"> <if test="propagandaTitle != null and propagandaTitle != ''">
and propaganda_title = #{propagandaTitle} and propaganda_title like concat('%', #{propagandaTitle}, '%')
</if> </if>
<if test="propagandaType != null and propagandaType != ''"> <if test="propagandaType != null and propagandaType != ''">
and propaganda_type = #{propagandaType} and propaganda_type = #{propagandaType}

View File

@ -20,6 +20,8 @@
<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">
@ -71,6 +73,18 @@
<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,
@ -704,7 +718,7 @@
<select id="selectSpecialDiseaseByRouteId" <select id="selectSpecialDiseaseByRouteId"
resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO" resultType="com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO"
resultMap="SpecialDiseaseRouteResult"> resultMap="SpecialDiseaseRouteResult">
select sdr.id routeId, select sdr.id specialDiseaseRouteId,
sdr.department_id, sdr.department_id,
sdr.department_name, sdr.department_name,
sdr.disease_type_id, sdr.disease_type_id,
@ -715,7 +729,7 @@
sdr.route_classify, sdr.route_classify,
sdr.release_status, sdr.release_status,
sdr.suit_range, sdr.suit_range,
sdn.id specialDiseaseNodeId, sdn.id specialDiseaseNodeId,
sdn.route_id, sdn.route_id,
sdn.route_name, sdn.route_name,
sdn.route_node_name, sdn.route_node_name,
@ -756,9 +770,25 @@
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>