diff --git a/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java b/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java index 38f7bd83..34293690 100644 --- a/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java +++ b/postdischarge-common/src/main/java/com/xinelu/common/constant/Constants.java @@ -223,4 +223,9 @@ public class Constants { * 字段内容编码前缀 */ public static final String CONTENT_ENCODING = "CE"; + + /** + * 路径编码 + */ + public static final String ROUTE_CODE = "RC"; } diff --git a/postdischarge-common/src/main/java/com/xinelu/common/enums/TaskContentEnum.java b/postdischarge-common/src/main/java/com/xinelu/common/enums/TaskContentEnum.java new file mode 100644 index 00000000..c36751c0 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/enums/TaskContentEnum.java @@ -0,0 +1,44 @@ +package com.xinelu.common.enums; + +import lombok.Getter; + +/** + * @Description 任务内容 + * @Author zh + * @Date 2024-04-07 + */ +@Getter +public enum TaskContentEnum { + + /** + * 电话外呼 + */ + PHONE_OUTBOUND("PHONE_OUTBOUND"), + + /** + * 问卷量表 + */ + QUESTIONNAIRE_SCALE("QUESTIONNAIRE_SCALE"), + + /** + * 宣教文章 + */ + PROPAGANDA_ARTICLE("PROPAGANDA_ARTICLE"), + + /** + * 文字提醒 + */ + TEXT_REMIND("TEXT_REMIND"), + + /** + * 人工随访 + */ + ARTIFICIAL_FOLLOW_UP("ARTIFICIAL_FOLLOW_UP"), + ; + + final private String info; + + TaskContentEnum(String info) { + this.info = info; + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java index 7f19c915..bda7141e 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java @@ -8,6 +8,7 @@ import com.xinelu.common.enums.BusinessType; import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.dto.manualfollowup.ManualFollowUpDTO; +import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; import com.xinelu.manage.service.signpatientmanageroute.ISignPatientManageRouteService; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; @@ -102,4 +103,21 @@ public class SignPatientManageRouteController extends BaseController { return getDataTable(list); } + /** + * 查询人工随访患者基本信息 + */ + @GetMapping("/selectFollowPatientInfo/{id}") + public AjaxResult selectFollowPatientInfo(@PathVariable Long id) { + return signPatientManageRouteService.selectFollowPatientInfo(id); + } + + /** + * 人工随访代办处理 + */ + @PostMapping("/addPatientQuestionResult") + public AjaxResult addPatientQuestionResult(@RequestBody PatientQuestionSubmitResultDTO dto) { + return signPatientManageRouteService.addPatientQuestionResult(dto); + } + + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java index b0906816..818a91bf 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseasenode/SpecialDiseaseNodeController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Objects; /** * 专病路径-管理节点信息Controller @@ -95,6 +96,9 @@ public class SpecialDiseaseNodeController extends BaseController { */ @GetMapping("/selectSpecialDisease") public AjaxResult selectSpecialDisease(Long specialDiseaseRouteId) { + if (Objects.isNull(specialDiseaseRouteId)) { + return AjaxResult.error("请选择查询的专病路径信息!"); + } return specialDiseaseNodeService.selectSpecialDisease(specialDiseaseRouteId); } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java index 22ccdf40..364f5363 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/specialdiseaseroute/SpecialDiseaseRouteController.java @@ -5,14 +5,13 @@ import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.enums.BusinessType; -import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.manage.domain.specialdiseaseroute.SpecialDiseaseRoute; import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService; +import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -34,22 +33,10 @@ public class SpecialDiseaseRouteController extends BaseController { @GetMapping("/list") public TableDataInfo list(SpecialDiseaseRoute specialDiseaseRoute) { startPage(); - List list = specialDiseaseRouteService.selectSpecialDiseaseRouteList(specialDiseaseRoute); + List list = specialDiseaseRouteService.selectSpecialDiseaseRouteList(specialDiseaseRoute); return getDataTable(list); } - /** - * 导出专病路径信息列表 - */ - @PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:export')") - @Log(title = "专病路径信息", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, SpecialDiseaseRoute specialDiseaseRoute) { - List list = specialDiseaseRouteService.selectSpecialDiseaseRouteList(specialDiseaseRoute); - ExcelUtil util = new ExcelUtil(SpecialDiseaseRoute.class); - util.exportExcel(response, list, "专病路径信息数据"); - } - /** * 获取专病路径信息详细信息 */ @@ -84,9 +71,9 @@ public class SpecialDiseaseRouteController extends BaseController { */ @PreAuthorize("@ss.hasPermi('system:specialDiseaseRoute:remove')") @Log(title = "专病路径信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable Long[] ids) { - return toAjax(specialDiseaseRouteService.deleteSpecialDiseaseRouteByIds(ids)); + @DeleteMapping("/{id}") + public AjaxResult remove(@PathVariable Long id) { + return specialDiseaseRouteService.deleteSpecialDiseaseRouteById(id); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java index 6bbd0bdf..86e455d5 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patienttaskexecuterecord/PatientTaskExecuteRecord.java @@ -12,7 +12,7 @@ import lombok.NoArgsConstructor; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import java.util.Date; +import java.time.LocalDateTime; /** @@ -89,7 +89,7 @@ public class PatientTaskExecuteRecord extends BaseEntity { @ApiModelProperty(value = "任务执行时间,格式:yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "任务执行时间,格式:yyyy-MM-dd HH:mm:ss", width = 30, dateFormat = "yyyy-MM-dd") - private Date executeTime; + private LocalDateTime executeTime; /** * 执行人姓名,手动执行时记录 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java index b55b16e6..334a68fc 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/department/DepartmentDTO.java @@ -40,6 +40,16 @@ public class DepartmentDTO extends BaseEntity { @ApiModelProperty(value = "科室代码") private String departmentCode; + /** + * 短信上下架 + */ + private String textMessageStatus; + + /** + * 微信状态 + */ + private String templateSource; + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java index 0e4e3e08..9cc18b43 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/manualfollowup/ManualFollowUpDTO.java @@ -3,8 +3,9 @@ package com.xinelu.manage.dto.manualfollowup; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; -import java.time.LocalDateTime; +import java.time.LocalDate; /** * 人工随访查询DTO @@ -15,14 +16,15 @@ import java.time.LocalDateTime; @Data public class ManualFollowUpDTO { - + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "随访开始时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime followStartTime; + private LocalDate followStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "随访结束时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime followEndTime; + private LocalDate followEndTime; @ApiModelProperty(value = "患者姓名") private String patientName; @@ -42,35 +44,41 @@ public class ManualFollowUpDTO { @ApiModelProperty(value = "所属病区id") private Long wardId; - @ApiModelProperty(value = "就诊方式,门诊:OUTPATIENT_SERVICE,住院:BE_IN_HOSPITAL") - private String visitMethod; + @ApiModelProperty(value = "患者类型,在院患者:IN_HOSPITAL_PATIENT,门诊患者:OUTPATIENT,出院患者:DISCHARGED_PATIENT") + private String patientType; @ApiModelProperty(value = "就诊流水号") private String visitSerialNumber; + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "入院开始时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime admissionStartTime; + private LocalDate admissionStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "入院结束时间") @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDateTime admissionEndTime; + private LocalDate admissionEndTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "门诊(门诊患者)开始时间") - private LocalDateTime clinicalStartTime; + private LocalDate clinicalStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "门诊(门诊患者)结束时间") - private LocalDateTime clinicalEndTime; + private LocalDate clinicalEndTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "出院时间(出院患者)开始时间") - private LocalDateTime dischargeStartTime; + private LocalDate dischargeStartTime; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") @ApiModelProperty(value = "出院时间(出院患者)结束时间") - private LocalDateTime dischargeEndTime; + private LocalDate dischargeEndTime; @ApiModelProperty(value = "主要诊断") private String mainDiagnosis; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionoptionresult/PatientQuestionOptionResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionoptionresult/PatientQuestionOptionResultDTO.java new file mode 100644 index 00000000..f9266f95 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionoptionresult/PatientQuestionOptionResultDTO.java @@ -0,0 +1,21 @@ +package com.xinelu.manage.dto.patientquestionoptionresult; + +import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 患者问卷题目选项提交结果DTO + * + * @author : youxilong + * @date : 2024/4/7 14:52 + */ +@Data +public class PatientQuestionOptionResultDTO extends PatientQuestionOptionResult { + + /** + * 题目序号 + */ + private BigDecimal questionNumber; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java new file mode 100644 index 00000000..0e302770 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java @@ -0,0 +1,22 @@ +package com.xinelu.manage.dto.patientquestionsubjectresult; + +import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult; +import com.xinelu.manage.dto.patientquestionoptionresult.PatientQuestionOptionResultDTO; +import lombok.Data; + +import java.util.List; + +/** + * 患者问卷题目提交结果信息DTO + * + * @author : youxilong + * @date : 2024/4/7 13:54 + */ +@Data +public class PatientQuestionSubjectResultDTO extends PatientQuestionSubjectResult { + + /** + * 患者问卷题目选项提交结果信息 + */ + private List optionResultList; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java new file mode 100644 index 00000000..de1a9c66 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java @@ -0,0 +1,35 @@ +package com.xinelu.manage.dto.patientquestionsubmitresult; + +import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; +import com.xinelu.manage.dto.patientquestionsubjectresult.PatientQuestionSubjectResultDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 患者问卷提交结果信息表DTO + * + * @author : youxilong + * @date : 2024/4/7 13:48 + */ +@Data +public class PatientQuestionSubmitResultDTO extends PatientQuestionSubmitResult { + + @ApiModelProperty(value = "任务类型,电话外呼:PHONE_OUTBOUND,问卷量表:QUESTIONNAIRE_SCALE,人工随访:ARTIFICIAL_FOLLOW_UP") + private String taskType; + + @ApiModelProperty(value = "任务处理人id") + private Long routeHandleId; + + @ApiModelProperty(value = "任务处理人姓名") + private String routeHandlePerson; + + @ApiModelProperty(value = "任务处理信息") + private String routeHandleRemark; + + /** + * 患者问卷题目提交结果信息 + */ + private List subjectResultDTOList; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java index ed712d3a..3432c323 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionoptionresult/PatientQuestionOptionResultMapper.java @@ -58,4 +58,10 @@ public interface PatientQuestionOptionResultMapper { * @return 结果 */ int deletePatientQuestionOptionResultByIds(Long[] ids); + + /** + *批量新增问卷题目选项提交结果 + */ + int saveQuestionOptionList(List saveQuestionSubjectOptions); + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java index ad7264a4..7038751f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.java @@ -58,4 +58,10 @@ public interface PatientQuestionSubjectResultMapper { * @return 结果 */ int deletePatientQuestionSubjectResultByIds(Long[] ids); + + + /** + * 批量新增患者问卷题目提交结果信息 + */ + int saveQuestionSubjectList(List patientQuestionSubjectResults); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.java index 35b296f4..14632f3f 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.java @@ -1,7 +1,7 @@ package com.xinelu.manage.mapper.patientquestionsubmitresult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; -import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; +import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultVO; import java.util.List; @@ -64,7 +64,7 @@ public interface PatientQuestionSubmitResultMapper { * 根据任务执行记录查询患者问卷信息 * * @param taskExecuteRecordId 患者管理任务执行记录表id - * @return PatientQuestionSubmitResultDTO + * @return PatientQuestionSubmitResultVO */ - PatientQuestionSubmitResultDTO selectResultByTaskExecuteRecordId(Long taskExecuteRecordId); + PatientQuestionSubmitResultVO selectResultByTaskExecuteRecordId(Long taskExecuteRecordId); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java index 08103b83..021e5d88 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroute/SignPatientManageRouteMapper.java @@ -2,6 +2,7 @@ package com.xinelu.manage.mapper.signpatientmanageroute; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.dto.manualfollowup.ManualFollowUpDTO; +import com.xinelu.manage.vo.manualfollowup.ManualFollowPatientVO; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import java.util.List; @@ -69,4 +70,10 @@ public interface SignPatientManageRouteMapper { */ List selectManualFollowUpList(ManualFollowUpDTO manualFollowUpDTO); + /** + * 查询人工随访患者基本信息 + * @param id 签约患者管理任务表id + * @return ManualFollowPatientVO 人工随访基本信息VO + */ + ManualFollowPatientVO selectFollowPatientInfo(Long id); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java index cf792f8f..a2f8598c 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseasenode/SpecialDiseaseNodeMapper.java @@ -62,6 +62,13 @@ public interface SpecialDiseaseNodeMapper { */ int deleteSpecialDiseaseNodeByIds(Long[] ids); + + /** + * 批量新增专病路径 + * + * @param specialDiseaseNodeList 数据集合 + * @return int + */ int insertSpecialDiseaseNodeList(List specialDiseaseNodeList); /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java index 4a822937..9d1d04ce 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/specialdiseaseroute/SpecialDiseaseRouteMapper.java @@ -29,6 +29,14 @@ public interface SpecialDiseaseRouteMapper { */ List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + /** + * 查询专病路径信息列表 + * + * @param specialDiseaseRoute 专病路径信息 + * @return 专病路径信息集合 + */ + List selectDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + /** * 新增专病路径信息 * diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java index b5c665fe..92b30227 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/labelfieldcontent/impl/LabelFieldContentServiceImpl.java @@ -12,6 +12,7 @@ import com.xinelu.manage.mapper.labelfieldcontent.LabelFieldContentMapper; import com.xinelu.manage.service.labelfieldcontent.ILabelFieldContentService; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; @@ -72,6 +73,7 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { * @return 结果 */ @Override + @Transactional(rollbackFor = Exception.class) public int updateLabelFieldContent(LabelFieldContent labelFieldContent) { if (ObjectUtils.isEmpty(labelFieldContentMapper.selectLabelFieldContentById(labelFieldContent.getId()))) { throw new ServiceException("当前字段内容不存在,无法修改,请联系管理员"); @@ -112,6 +114,7 @@ public class LabelFieldContentServiceImpl implements ILabelFieldContentService { * 批量新增标签字段内容信息 */ @Override + @Transactional(rollbackFor = Exception.class) public int insertLabelFieldContents(LabelFieldContentAddDTO labelFieldContentAddDTO) { // 获取到标签字段内容信息集合 List fieldContentList = labelFieldContentAddDTO.getFieldContentList(); diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java index 0235fd8a..f075de7b 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java @@ -111,7 +111,7 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR * 根据任务执行记录查询患者问卷信息 * * @param taskExecuteRecordId 患者管理任务执行记录表id - * @return PatientQuestionSubmitResultDTO + * @return PatientQuestionSubmitResultVO */ @Override public AjaxResult selectPatientQuestionSubmit(Long taskExecuteRecordId) { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java index 1c631a63..c55aebf3 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/ISignPatientManageRouteService.java @@ -3,6 +3,7 @@ package com.xinelu.manage.service.signpatientmanageroute; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.dto.manualfollowup.ManualFollowUpDTO; +import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; @@ -71,4 +72,17 @@ public interface ISignPatientManageRouteService { */ List selectManualFollowUpList(ManualFollowUpDTO manualFollowUpDTO); + /** + * 查询人工随访患者基本信息 + * @param id 签约患者管理任务表id + * @return 人工随访患者基本信息 + */ + AjaxResult selectFollowPatientInfo(Long id); + + /** + * 人工随访代办处理 + * @param dto 患者问卷提交结果信息表DTO + * @return 结果 + */ + AjaxResult addPatientQuestionResult(PatientQuestionSubmitResultDTO dto); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java index 94e47275..2d807e04 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroute/impl/SignPatientManageRouteServiceImpl.java @@ -1,19 +1,42 @@ package com.xinelu.manage.service.signpatientmanageroute.impl; +import com.xinelu.common.constant.TaskCreateTypeConstant; import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.enums.NodeExecuteStatusEnum; +import com.xinelu.common.enums.TaskContentEnum; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.AgeUtil; import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.bean.BeanUtils; +import com.xinelu.manage.domain.patientquestionoptionresult.PatientQuestionOptionResult; +import com.xinelu.manage.domain.patientquestionsubjectresult.PatientQuestionSubjectResult; +import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; +import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; 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.patientquestionoptionresult.PatientQuestionOptionResultMapper; +import com.xinelu.manage.mapper.patientquestionsubjectresult.PatientQuestionSubjectResultMapper; +import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper; +import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper; import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper; import com.xinelu.manage.service.signpatientmanageroute.ISignPatientManageRouteService; +import com.xinelu.manage.vo.manualfollowup.ManualFollowPatientVO; import com.xinelu.manage.vo.manualfollowup.ManualFollowUpVO; import com.xinelu.manage.vo.signpatientmanageroute.SignPatientManageRouteVO; -import java.time.LocalDateTime; -import java.util.List; -import javax.annotation.Resource; +import org.apache.commons.lang3.ObjectUtils; 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; /** @@ -28,6 +51,14 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout private SignPatientManageRouteMapper signPatientManageRouteMapper; @Resource private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper; + @Resource + private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper; + @Resource + private PatientQuestionSubmitResultMapper patientQuestionSubmitResultMapper; + @Resource + private PatientQuestionSubjectResultMapper patientQuestionSubjectResultMapper; + @Resource + private PatientQuestionOptionResultMapper patientQuestionOptionResultMapper; /** * 查询签约患者管理任务路径 @@ -141,4 +172,130 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout public List selectManualFollowUpList(ManualFollowUpDTO manualFollowUpDTO) { return signPatientManageRouteMapper.selectManualFollowUpList(manualFollowUpDTO); } + + /** + * 查询人工随访患者基本信息 + * + * @param id 签约患者管理任务表id + * @return 人工随访患者基本信息VO + */ + @Override + public AjaxResult selectFollowPatientInfo(Long id) { + ManualFollowPatientVO patientVO = signPatientManageRouteMapper.selectFollowPatientInfo(id); + // 设置年龄 + patientVO.setAge(AgeUtil.getAgeMonth(patientVO.getBirthDate().toString())); + if (ObjectUtils.isEmpty(patientVO)) { + return AjaxResult.error("患者信息不存在!"); + } + return AjaxResult.success(patientVO); + } + + /** + * 人工随访代办处理 + * + * @param dto 患者问卷提交结果信息表DTO + * @return 结果 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult addPatientQuestionResult(PatientQuestionSubmitResultDTO dto) { + String routeHandlePerson = dto.getRouteHandlePerson(); + LocalDateTime time = LocalDateTime.now(); + // 如果任务类型是电话外呼,更新节点任务表,新增患者管理任务执行记录 + if (dto.getTaskType().equals(TaskContentEnum.PHONE_OUTBOUND.getInfo())) { + // 更新节点任务表 + updateSignPatientManageRouteNode(dto, routeHandlePerson, time); + // 新增患者管理任务执行记录 + insertPatientTaskExecuteRecord(dto, routeHandlePerson, time); + } else { + // 如果任务类型不是电话外呼(人工随访,问卷量表),新增问卷提交结果表(题目,选项表),更新节点任务表,新增患者管理任务执行记录 + PatientQuestionSubmitResult patientQuestionSubmitResult = new PatientQuestionSubmitResult(); + BeanUtils.copyBeanProp(patientQuestionSubmitResult, dto); + patientQuestionSubmitResult.setCreateBy(routeHandlePerson); + patientQuestionSubmitResult.setCreateTime(time); + // 新增患者问卷提交结果 + if (patientQuestionSubmitResultMapper.insertPatientQuestionSubmitResult(patientQuestionSubmitResult) <= 0) { + throw new ServiceException("新增患者问卷提交结果失败"); + } + // 获取到患者问卷题目提交结果信息DTO + List subjectResultList = dto.getSubjectResultDTOList(); + // 初始化患者问卷题目提交结果信息 + List patientQuestionSubjectResults = new ArrayList<>(); + // 获取到患者问卷题目选项提交结果DTO + List patientQuestionOptionResults = new ArrayList<>(); + for (PatientQuestionSubjectResultDTO questionSubjectResult : subjectResultList) { + PatientQuestionSubjectResult saveQuestionSubject = new PatientQuestionSubjectResult(); + BeanUtils.copyBeanProp(saveQuestionSubject, questionSubjectResult); + saveQuestionSubject.setQuestionSubmitResultId(patientQuestionSubmitResult.getId()); + saveQuestionSubject.setCreateBy(routeHandlePerson); + saveQuestionSubject.setCreateTime(time); + patientQuestionSubjectResults.add(saveQuestionSubject); + patientQuestionOptionResults.addAll(questionSubjectResult.getOptionResultList()); + } + // 新增患者问卷题目提交结果 + if (patientQuestionSubjectResultMapper.saveQuestionSubjectList(patientQuestionSubjectResults) <= 0) { + throw new ServiceException("新增患者问卷题目提交结果失败"); + } + // 初始化患者问卷题目选项提交结果 + List saveQuestionSubjectOptions = new ArrayList<>(); + for (PatientQuestionOptionResultDTO patientQuestionOptionResult : patientQuestionOptionResults) { + PatientQuestionOptionResult saveQuestionOption = new PatientQuestionOptionResult(); + BeanUtils.copyBeanProp(saveQuestionOption, patientQuestionOptionResult); + // 从已保存的患者问卷题目结果列表中查找当前选项所对应的题目结果 + PatientQuestionSubjectResult patientQuestionSubjectResult = patientQuestionSubjectResults.stream(). + filter(Objects::nonNull). + filter(item -> Objects.nonNull(item.getQuestionNumber()) && patientQuestionOptionResult.getQuestionNumber(). + compareTo(item.getQuestionNumber()) == 0).findFirst().orElse(new PatientQuestionSubjectResult()); + saveQuestionOption.setQuestionSubjectResultId(patientQuestionSubjectResult.getId()); + saveQuestionOption.setCreateTime(time); + saveQuestionOption.setCreateBy(routeHandlePerson); + saveQuestionSubjectOptions.add(saveQuestionOption); + } + // 新增患者问卷题目选项提交结果 + if (patientQuestionOptionResultMapper.saveQuestionOptionList(saveQuestionSubjectOptions) <= 0) { + throw new ServiceException("新增患者问卷题目选项提交结果失败"); + } + // 更新节点任务表 + updateSignPatientManageRouteNode(dto, routeHandlePerson, time); + // 新增患者管理任务执行记录 + insertPatientTaskExecuteRecord(dto, routeHandlePerson, time); + + } + return AjaxResult.success(); + } + + /** + * 新增患者管理任务执行记录 + */ + private void insertPatientTaskExecuteRecord(PatientQuestionSubmitResultDTO dto, String routeHandlePerson, LocalDateTime time) { + PatientTaskExecuteRecord patientTaskExecuteRecord = new PatientTaskExecuteRecord(); + BeanUtils.copyProperties(dto, patientTaskExecuteRecord); + patientTaskExecuteRecord.setTaskContent(dto.getTaskType()); + patientTaskExecuteRecord.setExecuteTime(time); + patientTaskExecuteRecord.setExecutePerson(routeHandlePerson); + patientTaskExecuteRecord.setExecuteType(TaskCreateTypeConstant.MANUAL_CREATE); + patientTaskExecuteRecord.setCreateBy(routeHandlePerson); + patientTaskExecuteRecord.setCreateTime(time); + if (patientTaskExecuteRecordMapper.insertPatientTaskExecuteRecord(patientTaskExecuteRecord) <= 0) { + throw new ServiceException("新增患者管理任务记录失败"); + } + } + + /** + * 更新节点任务表 + */ + private void updateSignPatientManageRouteNode(PatientQuestionSubmitResultDTO dto, String routeHandlePerson, LocalDateTime time) { + SignPatientManageRouteNode signPatientManageRouteNode = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(dto.getManageRouteNodeId()); + signPatientManageRouteNode.setNodeExecuteStatus(NodeExecuteStatusEnum.EXECUTED.toString()); + signPatientManageRouteNode.setRouteHandleRemark(dto.getRouteHandleRemark()); + signPatientManageRouteNode.setRouteHandleId(dto.getRouteHandleId()); + signPatientManageRouteNode.setRouteHandlePerson(routeHandlePerson); + signPatientManageRouteNode.setCreateBy(routeHandlePerson); + signPatientManageRouteNode.setCreateTime(time); + // 更新节点任务表 + if (signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(signPatientManageRouteNode) <= 0) { + throw new ServiceException("更新节点任务表失败"); + } + } + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java index 616eceb6..5d8cb826 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasenode/impl/SpecialDiseaseNodeServiceImpl.java @@ -6,8 +6,10 @@ import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.specialdiseasenode.SpecialDiseaseNode; 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.specialdiseaseroute.SpecialDiseaseRouteMapper; +import com.xinelu.manage.mapper.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper; import com.xinelu.manage.service.specialdiseasenode.ISpecialDiseaseNodeService; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; import lombok.extern.slf4j.Slf4j; @@ -16,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; /** @@ -31,6 +34,8 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService private SpecialDiseaseNodeMapper specialDiseaseNodeMapper; @Resource private SpecialDiseaseRouteMapper specialDiseaseRouteMapper; + @Resource + private SpecialDiseaseTriggerConditionMapper triggerConditionMapper; /** @@ -81,6 +86,17 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService if (insertNodeCount < 0) { throw new ServiceException("新增专病路径管理节点信息失败"); } + List 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(); } @@ -117,6 +133,22 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService log.info("新增管理节点信息失败"); throw new ServiceException("修改专病路径管理节点信息失败"); } + int deleteCondition = triggerConditionMapper.deleteSpecialDiseaseTriggerConditionByRouteId(specialDiseaseRoute.getId()); + if (deleteCondition < 0) { + log.info("删除管理节点信息失败"); + throw new ServiceException("修改专病路径管理节点信息失败"); + } + List 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(); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java index ec6433a0..724c29e8 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/ISpecialDiseaseRouteService.java @@ -27,7 +27,7 @@ public interface ISpecialDiseaseRouteService { * @param specialDiseaseRoute 专病路径信息 * @return 专病路径信息集合 */ - List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); + List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute); /** * 新增专病路径信息 @@ -59,7 +59,7 @@ public interface ISpecialDiseaseRouteService { * @param id 专病路径信息主键 * @return 结果 */ - int deleteSpecialDiseaseRouteById(Long id); + AjaxResult deleteSpecialDiseaseRouteById(Long id); /** * 科室路径数量 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java index a6b94cc8..6bd890d4 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseaseroute/impl/SpecialDiseaseRouteServiceImpl.java @@ -1,13 +1,20 @@ package com.xinelu.manage.service.specialdiseaseroute.impl; +import com.xinelu.common.constant.Constants; import com.xinelu.common.core.domain.AjaxResult; +import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; 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.specialdiseasetriggercondition.SpecialDiseaseTriggerConditionMapper; import com.xinelu.manage.service.specialdiseaseroute.ISpecialDiseaseRouteService; import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.manage.vo.specialdiseaseroute.SpecialDiseaseRouteVO; 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; @@ -24,6 +31,13 @@ import java.util.List; public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteService { @Resource private SpecialDiseaseRouteMapper specialDiseaseRouteMapper; + @Resource + private SpecialDiseaseNodeMapper specialDiseaseNodeMapper; + @Resource + private SpecialDiseaseTriggerConditionMapper triggerConditionMapper; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + /** * 查询专病路径信息 @@ -43,8 +57,8 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi * @return 专病路径信息 */ @Override - public List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute) { - return specialDiseaseRouteMapper.selectSpecialDiseaseRouteList(specialDiseaseRoute); + public List selectSpecialDiseaseRouteList(SpecialDiseaseRoute specialDiseaseRoute) { + return specialDiseaseRouteMapper.selectDiseaseRouteList(specialDiseaseRoute); } /** @@ -56,6 +70,8 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi @Override public int insertSpecialDiseaseRoute(SpecialDiseaseRoute specialDiseaseRoute) { specialDiseaseRoute.setCreateTime(LocalDateTime.now()); + specialDiseaseRoute.setCreateBy(SecurityUtils.getUsername()); + specialDiseaseRoute.setRouteCode(Constants.ROUTE_CODE + generateSystemCodeUtil.generateSystemCode(Constants.ROUTE_CODE)); return specialDiseaseRouteMapper.insertSpecialDiseaseRoute(specialDiseaseRoute); } @@ -68,6 +84,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi @Override public int updateSpecialDiseaseRoute(SpecialDiseaseRoute specialDiseaseRoute) { specialDiseaseRoute.setUpdateTime(LocalDateTime.now()); + specialDiseaseRoute.setUpdateBy(SecurityUtils.getUsername()); return specialDiseaseRouteMapper.updateSpecialDiseaseRoute(specialDiseaseRoute); } @@ -88,9 +105,22 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi * @param id 专病路径信息主键 * @return 结果 */ + @Transactional(rollbackFor = Exception.class) @Override - public int deleteSpecialDiseaseRouteById(Long id) { - return specialDiseaseRouteMapper.deleteSpecialDiseaseRouteById(id); + public AjaxResult deleteSpecialDiseaseRouteById(Long 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(); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java index b6f5f42c..992501ae 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/specialdiseasetriggercondition/impl/SpecialDiseaseTriggerConditionServiceImpl.java @@ -67,6 +67,7 @@ public class SpecialDiseaseTriggerConditionServiceImpl implements ISpecialDiseas @Override public int updateSpecialDiseaseTriggerCondition(SpecialDiseaseTriggerCondition specialDiseaseTriggerCondition) { specialDiseaseTriggerCondition.setUpdateTime(LocalDateTime.now()); + specialDiseaseTriggerCondition.setUpdateBy(SecurityUtils.getUsername()); return specialDiseaseTriggerConditionMapper.updateSpecialDiseaseTriggerCondition(specialDiseaseTriggerCondition); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowPatientVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowPatientVO.java new file mode 100644 index 00000000..abd63a31 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowPatientVO.java @@ -0,0 +1,56 @@ +package com.xinelu.manage.vo.manualfollowup; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDate; + +/** + * 人工随访患者基本信息VO + * @author : youxilong + * @date : 2024/4/7 8:52 + */ +@Data +public class ManualFollowPatientVO { + + /** + * 居民信息表id + */ + private Long id; + + @ApiModelProperty(value = "姓名") + private String patientName; + + @ApiModelProperty(value = "性别") + private String sex; + + @ApiModelProperty(value = "患者年龄") + private Long age; + + @ApiModelProperty(value = "身份证号") + private String cardNo; + + @ApiModelProperty(value = "患者电话") + private String patientPhone; + + @ApiModelProperty(value = "出生日期,格式:yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate birthDate; + + @ApiModelProperty(value = "家属电话") + private String familyMemberPhone; + + @ApiModelProperty(value = "住址") + private String address; + + @ApiModelProperty(value = "患者个人头像图片路径") + private String avatarPictureUrl; + + @ApiModelProperty(value = "所属服务包表id") + private String servicePackageId; + + @ApiModelProperty(value = "服务包名称") + private String packageName; + +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java index 72251e82..d5dc1fed 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/manualfollowup/ManualFollowUpVO.java @@ -1,7 +1,6 @@ package com.xinelu.manage.vo.manualfollowup; import com.fasterxml.jackson.annotation.JsonFormat; -import com.xinelu.common.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,6 +15,30 @@ import java.time.LocalDateTime; @Data public class ManualFollowUpVO { + /** + * 患者信息表id + */ + private Long patientId; + + /** + * 签约患者管理任务id + */ + private Long manageRouteId; + + @ApiModelProperty(value = "路径名称(任务名称)") + private String manageRouteName; + + /** + * 签约患者管理任务节点id + */ + private Long manageRouteNodeId; + + @ApiModelProperty(value = "管理路径节点名称,出院后:AFTER_DISCHARGE,入院后:AFTER_ADMISSION,就诊后:AFTER_CONSULTATION,就诊/出院后:AFTER_VISIT_DISCHARGE,术前:PREOPERATIVE,术后:POSTOPERATIVE") + private String routeNodeName; + + @ApiModelProperty(value = "患者就诊记录基本信息表id") + private Long visitRecordId; + @ApiModelProperty(value = "患者姓名") private String patientName; @@ -67,8 +90,8 @@ public class ManualFollowUpVO { @ApiModelProperty(value = "主治医生姓名") private String attendingPhysicianName; - @ApiModelProperty(value = "就诊方式,门诊:OUTPATIENT_SERVICE,住院:BE_IN_HOSPITAL") - private String visitMethod; + @ApiModelProperty(value = "患者类型,在院患者:IN_HOSPITAL_PATIENT,门诊患者:OUTPATIENT,出院患者:DISCHARGED_PATIENT") + private String patientType; @ApiModelProperty(value = "入院时间") @JsonFormat(pattern = "yyyy-MM-dd") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubjectresult/PatientQuestionSubjectResultVO.java similarity index 89% rename from postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java rename to postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubjectresult/PatientQuestionSubjectResultVO.java index d703a015..8d21c9fa 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubjectresult/PatientQuestionSubjectResultDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubjectresult/PatientQuestionSubjectResultVO.java @@ -15,7 +15,7 @@ import java.util.List; */ @EqualsAndHashCode(callSuper = true) @Data -public class PatientQuestionSubjectResultDTO extends PatientQuestionSubjectResult { +public class PatientQuestionSubjectResultVO extends PatientQuestionSubjectResult { /* * 患者问卷题目提交结果信息对象id diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubmitresult/PatientQuestionSubmitResultVO.java similarity index 82% rename from postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java rename to postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubmitresult/PatientQuestionSubmitResultVO.java index 921e4826..0eebbf31 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubmitresult/PatientQuestionSubmitResultDTO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patientquestionsubmitresult/PatientQuestionSubmitResultVO.java @@ -1,7 +1,7 @@ package com.xinelu.manage.vo.patientquestionsubmitresult; -import com.xinelu.manage.vo.patientquestionsubjectresult.PatientQuestionSubjectResultDTO; +import com.xinelu.manage.vo.patientquestionsubjectresult.PatientQuestionSubjectResultVO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,7 +14,7 @@ import java.util.List; * @date 2024-03-28 */ @Data -public class PatientQuestionSubmitResultDTO { +public class PatientQuestionSubmitResultVO { private Long submitResulId; /** @@ -29,5 +29,5 @@ public class PatientQuestionSubmitResultDTO { @ApiModelProperty(value = "问卷说明") private String questionnaireDescription; - List subjectResultList; + List subjectResultList; } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java index 87fc4990..cab744d2 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/patienttaskexecuterecord/PatientTaskExecuteRecordVO.java @@ -7,6 +7,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import lombok.Data; 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") private String visitMethod; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate startDate; + @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate endDate; diff --git a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml index a45d51f9..c9c2d1a4 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/department/DepartmentMapper.xml @@ -218,14 +218,13 @@ from department d left join wechat_template wt on d.id = wt.department_id - and d.department_code = - #{departmentCode} + and d.department_code =#{departmentCode} - and d.department_name like concat('%', - #{departmentName}, - '%' - ) + and d.department_name like concat('%',#{departmentName},'%') + + + and wt.template_source =#{templateSource} GROUP BY d.id, @@ -245,6 +244,9 @@ and d.department_name like concat('%',#{departmentName},'%') + + and tm.text_message_status = #{textMessageStatus} + GROUP BY d.id, d.department_name, diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml index b6b66f60..9e525634 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionoptionresult/PatientQuestionOptionResultMapper.xml @@ -149,6 +149,39 @@ + + insert into patient_question_option_result( + question_subject_result_id, + questionnaire_subject_id, + question_name, + option_name, + option_answer, + option_score, + option_choose_sign, + option_submit_answer, + option_sort, + option_remark, + create_by, + create_time + ) values + + ( + #{QuestionSubjectOption.questionSubjectResultId}, + #{QuestionSubjectOption.questionnaireSubjectId}, + #{QuestionSubjectOption.questionName}, + #{QuestionSubjectOption.optionName}, + #{QuestionSubjectOption.optionAnswer}, + #{QuestionSubjectOption.optionScore}, + #{QuestionSubjectOption.optionChooseSign}, + #{QuestionSubjectOption.optionSubmitAnswer}, + #{QuestionSubjectOption.optionSort}, + #{QuestionSubjectOption.optionRemark}, + #{QuestionSubjectOption.createBy}, + #{QuestionSubjectOption.createTime} + ) + + + update patient_question_option_result diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml index afd43561..1805cc62 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubjectresult/PatientQuestionSubjectResultMapper.xml @@ -194,6 +194,50 @@ + + insert into patient_question_subject_result( + question_submit_result_id, + question_info_id, + question_number, + question_type, + question_name, + question_description, + write_description, + fill_blanks_answer, + option_count, + whether_score, + scoring_method, + scoring_description, + question_score, + question_sort, + question_remark, + create_by, + create_time + ) values + + ( + #{QuestionSubject.questionSubmitResultId}, + #{QuestionSubject.questionInfoId}, + #{QuestionSubject.questionNumber}, + #{QuestionSubject.questionType}, + #{QuestionSubject.questionName}, + #{QuestionSubject.questionDescription}, + #{QuestionSubject.writeDescription}, + #{QuestionSubject.fillBlanksAnswer}, + #{QuestionSubject.optionCount}, + #{QuestionSubject.whetherScore}, + #{QuestionSubject.scoringMethod}, + #{QuestionSubject.scoringDescription}, + #{QuestionSubject.questionScore}, + #{QuestionSubject.questionSort}, + #{QuestionSubject.questionRemark}, + #{QuestionSubject.createBy}, + #{QuestionSubject.createTime} + ) + + + update patient_question_subject_result diff --git a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.xml index e35f3962..a5628a87 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/patientquestionsubmitresult/PatientQuestionSubmitResultMapper.xml @@ -32,7 +32,7 @@ - @@ -40,7 +40,7 @@ - @@ -373,7 +373,7 @@ SELECT + pi.id AS 'patientId', pi.patient_name, pi.patient_phone, pi.sex, @@ -110,13 +111,18 @@ pi.in_hospital_number, pi.visit_serial_number, pi.main_diagnosis, + pvr.id AS 'visitRecordId', pvr.surgical_name, pi.attending_physician_id, pi.attending_physician_name, - pi.visit_method, + pi.patient_type, IF(pi.visit_method = 'OUTPATIENT_SERVICE',NULL,pi.admission_time) AS 'admissionTime', IF(pi.visit_method = 'OUTPATIENT_SERVICE',pi.visit_date,pi.discharge_time) AS 'visitOrDischargeTime', pter.execute_time AS 'executeTime', + spmr.id AS 'manageRouteId', + spmrn.id AS 'manageRouteNodeId', + spmrn.manage_route_name AS 'manageRouteName', + spmrn.route_node_name AS 'routeNodeName', spmrn.task_type, CASE WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN spmrn.phone_template_name @@ -135,7 +141,8 @@ LEFT JOIN patient_info pi ON spmr.patient_id = pi.id LEFT JOIN patient_visit_record pvr ON pi.patient_visit_record_id = pvr.id - pi.del_flag = '0' AND spmrn.node_execute_status = 'UNEXECUTED' + pi.del_flag = '0' AND spmr.task_create_type = 'MANUAL_CREATE' + AND spmrn.node_execute_status = 'UNEXECUTED' AND spmrn.task_type in ('PHONE_OUTBOUND','QUESTIONNAIRE_SCALE','ARTIFICIAL_FOLLOW_UP') AND pi.patient_name LIKE concat('%', #{patientName}, '%') @@ -155,8 +162,8 @@ AND pi.ward_id = #{wardId} - - AND pi.visit_method = #{visitMethod} + + AND pi.patient_type = #{patientType} AND pi.visit_serial_number LIKE concat('%', #{visitSerialNumber}, '%') @@ -191,6 +198,30 @@ + + insert into sign_patient_manage_route diff --git a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml index a0184146..f698c374 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseasenode/SpecialDiseaseNodeMapper.xml @@ -20,6 +20,8 @@ + @@ -71,6 +73,18 @@ + + + + + + + + + + + + select id, route_id, @@ -704,7 +718,7 @@ + + + + + + \ No newline at end of file diff --git a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml index f78aedb9..0fa13398 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/specialdiseaseroute/SpecialDiseaseRouteMapper.xml @@ -120,6 +120,73 @@ + +