diff --git a/postdischarge-common/src/main/java/com/xinelu/common/enums/NodeExecuteStatusEnum.java b/postdischarge-common/src/main/java/com/xinelu/common/enums/NodeExecuteStatusEnum.java new file mode 100644 index 00000000..ff851f30 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/enums/NodeExecuteStatusEnum.java @@ -0,0 +1,18 @@ +package com.xinelu.common.enums; + +/** + * 节点执行状态枚举类 + * + * @author haown + * @date 2024-04-01 + */ +public enum NodeExecuteStatusEnum { + /** + * 已执行 + */ + EXECUTED, + /** + * 未执行 + */ + UNEXECUTED +} diff --git a/postdischarge-common/src/main/java/com/xinelu/common/enums/RouteCheckStatusEnum.java b/postdischarge-common/src/main/java/com/xinelu/common/enums/RouteCheckStatusEnum.java new file mode 100644 index 00000000..f706c9c1 --- /dev/null +++ b/postdischarge-common/src/main/java/com/xinelu/common/enums/RouteCheckStatusEnum.java @@ -0,0 +1,19 @@ +package com.xinelu.common.enums; + +/** + * 节点审核状态枚举类 + * + * @author haown + * @date 2024-04-01 + */ +public enum RouteCheckStatusEnum { + /** + * 同意 + */ + AGREE, + + /** + * 不同意 + */ + DISAGREE +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/propagandainfo/PropagandaInfoController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/propagandainfo/PropagandaInfoController.java index 2b53fbc4..f22219bc 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/propagandainfo/PropagandaInfoController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/propagandainfo/PropagandaInfoController.java @@ -8,7 +8,6 @@ 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.propagandainfo.PropagandaInfo; -import com.xinelu.manage.dto.department.DepartmentDTO; import com.xinelu.manage.dto.propagandainfo.PropagandaInfoDto; import com.xinelu.manage.dto.propagandainfo.PropagandaInfoSaveDto; import com.xinelu.manage.dto.propagandainfo.PropagandaUpdateDto; @@ -138,8 +137,8 @@ public class PropagandaInfoController extends BaseController { */ @ApiOperation("查询科室信息列表及包含宣教库数量") @GetMapping("/selectNumByDept") - public R> selectNumByDept(DepartmentDTO departmentDto) { - List list = propagandaInfoService.selectNumByDept(departmentDto); + public R> selectNumByDept(PropagandaInfoDto propagandaInfoDto) { + List list = propagandaInfoService.selectNumByDept(propagandaInfoDto); return R.ok(list); } } 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 9a0ba9ca..c7011713 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 @@ -33,11 +33,11 @@ public class SignPatientManageRouteController extends BaseController { @Resource private ISignPatientManageRouteService signPatientManageRouteService; -/** - * 查询签约患者管理任务路径列表 - */ -@PreAuthorize("@ss.hasPermi('manage:signroute:list')") -@GetMapping("/list") + /** + * 查询签约患者管理任务路径列表 + */ + @PreAuthorize("@ss.hasPermi('manage:signroute:list')") + @GetMapping("/list") public TableDataInfo list(SignPatientManageRoute signPatientManageRoute) { startPage(); List list = signPatientManageRouteService.selectSignPatientManageRouteList(signPatientManageRoute); @@ -94,4 +94,6 @@ public class SignPatientManageRouteController extends BaseController { public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(signPatientManageRouteService.deleteSignPatientManageRouteByIds(ids)); } + + } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java new file mode 100644 index 00000000..4e174ac6 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroutenode/SignPatientManageRouteNodeController.java @@ -0,0 +1,52 @@ +package com.xinelu.manage.controller.signpatientmanageroutenode; + +import com.xinelu.common.core.controller.BaseController; +import com.xinelu.common.core.domain.R; +import com.xinelu.common.core.page.TableDataInfo; +import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; +import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto; +import com.xinelu.manage.service.signpatientmanageroutenode.ISignPatientManageRouteNodeService; +import com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import java.util.List; +import javax.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @description: 签约患者管理任务路径节点控制器 + * @author: haown + * @create: 2024-04-02 15:08 + **/ +@Api(tags = "签约患者管理任务路径节点控制器") +@RestController +@RequestMapping("/manage/signnode") +public class SignPatientManageRouteNodeController extends BaseController { + + @Resource + private ISignPatientManageRouteNodeService signNodeService; + + /** + * 根据患者主键查询签约路径及节点 + */ + @ApiOperation("患者任务列表查询") + @GetMapping("/tasklist") + public TableDataInfo tasklist(PatientTaskDto patientTaskDto) { + startPage(); + List list = signNodeService.selectPatientTaskList(patientTaskDto); + return getDataTable(list); + } + + /** + * 根据患者主键查询签约路径及节点 + */ + @ApiOperation("根据患者主键查询患者管理路径节点") + @GetMapping("/getNodesByPatient/{patientId}") + public R> getNodesByPatient(@PathVariable("patientId") Long patientId) { + List list = signNodeService.getNodesByPatient(patientId); + return R.ok(list); + } +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientinfo/PatientInfo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientinfo/PatientInfo.java index 07711912..d6c8aa69 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientinfo/PatientInfo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/domain/patientinfo/PatientInfo.java @@ -205,6 +205,11 @@ public class PatientInfo extends BaseEntity { @Excel(name = "患者来源,微信小程序:WE_CHAT_APPLET,微信公众号:WE_CHAT_OFFICIAL_ACCOUNT,管理端:MANAGE_END") private String patientSource; + /** 手术名称 */ + @ApiModelProperty(value = "手术名称") + @Excel(name = "手术名称") + private String surgicalName; + /** 删除标识,0:未删除,1:已删除 */ private Integer delFlag; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/propagandainfo/PropagandaInfoDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/propagandainfo/PropagandaInfoDto.java index b370cfa3..03617196 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/propagandainfo/PropagandaInfoDto.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/propagandainfo/PropagandaInfoDto.java @@ -24,6 +24,12 @@ public class PropagandaInfoDto { @ApiModelProperty(value = "所属科室id") private Long departmentId; + /** + * 科室名称 + */ + @ApiModelProperty(value = "科室名称") + private String departmentName; + /** 宣教标题(宣教名称) */ @ApiModelProperty(value = "宣教标题") @Excel(name = "宣教标题", readConverterExp = "宣=教名称") diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/PatientTaskDto.java b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/PatientTaskDto.java new file mode 100644 index 00000000..39293898 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/dto/signpatientmanageroutenode/PatientTaskDto.java @@ -0,0 +1,56 @@ +package com.xinelu.manage.dto.signpatientmanageroutenode; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @description: 患者任务查询传输对象 + * @author: haown + * @create: 2024-04-02 17:06 + **/ +@ApiModel("患者任务查询传输对象") +@Data +public class PatientTaskDto { + + /** 就诊时间,格式:yyyy-MM-dd HH:mm:ss */ + @ApiModelProperty(value = "就诊时间开始,格式:yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime visitDateStart; + + /** 就诊时间,格式:yyyy-MM-dd HH:mm:ss */ + @ApiModelProperty(value = "就诊时间结束,格式:yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime visitDateEnd; + + /** 所属医院id */ + @ApiModelProperty(value = "所属医院id") + private Long hospitalAgencyId; + + /** 所属院区id */ + @ApiModelProperty(value = "所属院区id") + private Long campusAgencyId; + + /** 所属科室id */ + @ApiModelProperty(value = "所属科室id") + private Long departmentId; + + /** 所属病区id */ + @ApiModelProperty(value = "所属病区id") + private Long wardId; + + /** 节点审核状态,同意:AGREE,不同意:DISAGREE */ + @ApiModelProperty(value = "节点审核状态,同意:AGREE,不同意:DISAGREE") + private String routeCheckStatus; + + /** 主要诊断 */ + @ApiModelProperty(value = "主要诊断") + private String mainDiagnosis; + + /** 患者姓名 */ + @ApiModelProperty(value = "患者姓名") + private String patientName; + +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/propagandainfo/PropagandaInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/propagandainfo/PropagandaInfoMapper.java index 243dd006..1d7d51d7 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/propagandainfo/PropagandaInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/propagandainfo/PropagandaInfoMapper.java @@ -1,7 +1,6 @@ package com.xinelu.manage.mapper.propagandainfo; import com.xinelu.manage.domain.propagandainfo.PropagandaInfo; -import com.xinelu.manage.dto.department.DepartmentDTO; import com.xinelu.manage.dto.propagandainfo.PropagandaInfoDto; import com.xinelu.manage.vo.department.DepartmentVO; import com.xinelu.manage.vo.propagandainfo.PropagandaMaterialsVo; @@ -73,9 +72,9 @@ public interface PropagandaInfoMapper { /** * 查询科室信息列表及包含宣教库数量 * - * @param departmentDto + * @param propagandaInfoDto 宣教库查询传输对象 * @return */ - List selectNumByDept(DepartmentDTO departmentDto); + List selectNumByDept(PropagandaInfoDto propagandaInfoDto); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java index 0174be35..e29b10fb 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java @@ -1,6 +1,8 @@ package com.xinelu.manage.mapper.signpatientmanageroutenode; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; +import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto; +import com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo; import java.util.List; import org.apache.ibatis.annotations.Param; @@ -60,4 +62,11 @@ public interface SignPatientManageRouteNodeMapper { * @return 结果 */ public int deleteSignPatientManageRouteNodeByIds(Long[] ids); + + /** + * 查询患者任务列表 + * @param patientTaskDto 患者任务列表查询传输对象 + * @return 患者任务列表 + */ + List selectPatientTaskList(PatientTaskDto patientTaskDto); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/materialsinfo/impl/MaterialsInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/materialsinfo/impl/MaterialsInfoServiceImpl.java index 3216a2dd..add464b0 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/materialsinfo/impl/MaterialsInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/materialsinfo/impl/MaterialsInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.xinelu.manage.service.materialsinfo.impl; import com.xinelu.common.exception.ServiceException; +import com.xinelu.common.utils.SecurityUtils; import com.xinelu.manage.domain.materialsinfo.MaterialsInfo; import com.xinelu.manage.domain.propagandamaterials.PropagandaMaterials; import com.xinelu.manage.dto.materialsinfo.MaterialsInfoDto; @@ -56,6 +57,8 @@ public class MaterialsInfoServiceImpl implements IMaterialsInfoService { */ @Override public int insertMaterialsInfo(MaterialsInfo materialsInfo) { + materialsInfo.setDelFlag(0); + materialsInfo.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); materialsInfo.setCreateTime(LocalDateTime.now()); return materialsInfoMapper.insertMaterialsInfo(materialsInfo); } @@ -68,6 +71,7 @@ public class MaterialsInfoServiceImpl implements IMaterialsInfoService { */ @Override public int updateMaterialsInfo(MaterialsInfo materialsInfo) { + materialsInfo.setUpdateBy(SecurityUtils.getLoginUser().getUser().getNickName()); materialsInfo.setUpdateTime(LocalDateTime.now()); return materialsInfoMapper.updateMaterialsInfo(materialsInfo); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java index b63178ae..cc67ba5e 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientvisitrecord/impl/PatientVisitRecordServiceImpl.java @@ -412,11 +412,11 @@ public class PatientVisitRecordServiceImpl implements IPatientVisitRecordService patientVisitRecord.setVisitDate(patientVisitRecord.getDischargeTime()); } else if (StringUtils.equals(VisitMethodConstants.BE_IN_HOSPITAL, patientVisitRecord.getVisitMethod())) { // 住院时间,出院时间-入院时间 - if (patientVisitRecord.getDischargeTime() != null) { + if (patientVisitRecord.getAdmissionTime() != null && patientVisitRecord.getDischargeTime() != null) { long daysBetween = ChronoUnit.DAYS.between(patientVisitRecord.getAdmissionTime(), patientVisitRecord.getDischargeTime()); patientVisitRecord.setHospitalizationDays((int) daysBetween + 1); } - patientVisitRecord.setVisitDate(patientVisitRecord.getAdmissionTime()); + patientVisitRecord.setVisitDate(patientVisitRecord.getDischargeTime()); } } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/IPropagandaInfoService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/IPropagandaInfoService.java index d6d8d0b6..155e8168 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/IPropagandaInfoService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/IPropagandaInfoService.java @@ -1,7 +1,6 @@ package com.xinelu.manage.service.propagandainfo; import com.xinelu.manage.domain.propagandainfo.PropagandaInfo; -import com.xinelu.manage.dto.department.DepartmentDTO; import com.xinelu.manage.dto.propagandainfo.PropagandaInfoDto; import com.xinelu.manage.dto.propagandainfo.PropagandaInfoSaveDto; import com.xinelu.manage.dto.propagandainfo.PropagandaUpdateDto; @@ -83,8 +82,8 @@ public interface IPropagandaInfoService { /** * 查询科室信息列表及包含宣教信息数量 * - * @param departmentDto + * @param propagandaInfoDto 宣教库查询传输对象 * @return */ - List selectNumByDept(DepartmentDTO departmentDto); + List selectNumByDept(PropagandaInfoDto propagandaInfoDto); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/impl/PropagandaInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/impl/PropagandaInfoServiceImpl.java index d57c0f7f..9d0bf02d 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/impl/PropagandaInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/propagandainfo/impl/PropagandaInfoServiceImpl.java @@ -5,7 +5,6 @@ import com.xinelu.common.utils.bean.BeanUtils; import com.xinelu.manage.domain.materialsinfo.MaterialsInfo; import com.xinelu.manage.domain.propagandainfo.PropagandaInfo; import com.xinelu.manage.domain.propagandamaterials.PropagandaMaterials; -import com.xinelu.manage.dto.department.DepartmentDTO; import com.xinelu.manage.dto.propagandainfo.PropagandaInfoDto; import com.xinelu.manage.dto.propagandainfo.PropagandaInfoSaveDto; import com.xinelu.manage.dto.propagandainfo.PropagandaUpdateDto; @@ -191,7 +190,7 @@ public class PropagandaInfoServiceImpl implements IPropagandaInfoService { } @Override - public List selectNumByDept(DepartmentDTO departmentDto) { - return propagandaInfoMapper.selectNumByDept(departmentDto); + public List selectNumByDept(PropagandaInfoDto propagandaInfoDto) { + return propagandaInfoMapper.selectNumByDept(propagandaInfoDto); } } 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 3cdf8c1c..99494d3b 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,7 +3,6 @@ package com.xinelu.manage.service.signpatientmanageroute; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import java.util.List; - /** * 签约患者管理任务路径Service接口 * @@ -58,4 +57,5 @@ public interface ISignPatientManageRouteService { * @return 结果 */ public int deleteSignPatientManageRouteById(Long id); + } 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 b0f6cf75..2829706e 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,6 +1,7 @@ package com.xinelu.manage.service.signpatientmanageroute.impl; import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; +import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; import com.xinelu.manage.service.signpatientmanageroute.ISignPatientManageRouteService; import java.time.LocalDateTime; @@ -18,6 +19,8 @@ import org.springframework.stereotype.Service; public class SignPatientManageRouteServiceImpl implements ISignPatientManageRouteService { @Resource private SignPatientManageRouteMapper signPatientManageRouteMapper; + @Resource + private PatientInfoMapper patientInfoMapper; /** * 查询签约患者管理任务路径 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java index 2db9a65f..c6e5b144 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/ISignPatientManageRouteNodeService.java @@ -1,6 +1,8 @@ package com.xinelu.manage.service.signpatientmanageroutenode; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; +import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto; +import com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo; import java.util.List; @@ -19,6 +21,14 @@ public interface ISignPatientManageRouteNodeService { */ public SignPatientManageRouteNode selectSignPatientManageRouteNodeById(Long id); + /** + * 根据患者主键查询患者管理路径节点 + * + * @param patientId 患者主键 + * @return 签约患者管理任务路径节点 + */ + List getNodesByPatient(Long patientId); + /** * 查询签约患者管理任务路径节点列表 * @@ -58,4 +68,11 @@ public interface ISignPatientManageRouteNodeService { * @return 结果 */ public int deleteSignPatientManageRouteNodeById(Long id); + + /** + * 查询患者任务列表 + * @param patientTaskDto 患者任务列表查询传输对象 + * @return 患者任务列表 + */ + List selectPatientTaskList(PatientTaskDto patientTaskDto); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java index b3afe663..eaac0d66 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientmanageroutenode/impl/SignPatientManageRouteNodeServiceImpl.java @@ -1,11 +1,19 @@ package com.xinelu.manage.service.signpatientmanageroutenode.impl; +import com.xinelu.manage.domain.patientinfo.PatientInfo; +import com.xinelu.manage.domain.signpatientmanageroute.SignPatientManageRoute; import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode; +import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto; +import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; +import com.xinelu.manage.mapper.signpatientmanageroute.SignPatientManageRouteMapper; import com.xinelu.manage.mapper.signpatientmanageroutenode.SignPatientManageRouteNodeMapper; import com.xinelu.manage.service.signpatientmanageroutenode.ISignPatientManageRouteNodeService; +import com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; /** @@ -18,6 +26,10 @@ import org.springframework.stereotype.Service; public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManageRouteNodeService { @Resource private SignPatientManageRouteNodeMapper signPatientManageRouteNodeMapper; + @Resource + private PatientInfoMapper patientInfoMapper; + @Resource + private SignPatientManageRouteMapper signRouteMapper; /** * 查询签约患者管理任务路径节点 @@ -30,7 +42,25 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage return signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeById(id); } - /** + @Override public List getNodesByPatient(Long patientId) { + List nodeList = new ArrayList<>(); + PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(patientId); + if (patientInfo.getSignPatientRecordId() != null) { + // 查询签约路径 + SignPatientManageRoute signPatientManageRoute = new SignPatientManageRoute(); + signPatientManageRoute.setSignPatientRecordId(patientInfo.getSignPatientRecordId()); + List signRoutes = signRouteMapper.selectSignPatientManageRouteList(signPatientManageRoute); + if (CollectionUtils.isNotEmpty(signRoutes)) { + SignPatientManageRoute signRoute = signRoutes.get(0); + SignPatientManageRouteNode nddeQuery = new SignPatientManageRouteNode(); + nddeQuery.setManageRouteId(signRoute.getId()); + nodeList = signPatientManageRouteNodeMapper.selectSignPatientManageRouteNodeList(nddeQuery); + } + } + return nodeList; + } + + /** * 查询签约患者管理任务路径节点列表 * * @param signPatientManageRouteNode 签约患者管理任务路径节点 @@ -49,8 +79,8 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage */ @Override public int insertSignPatientManageRouteNode(SignPatientManageRouteNode signPatientManageRouteNode) { - signPatientManageRouteNode.setCreateTime(LocalDateTime.now()); - return signPatientManageRouteNodeMapper.insertSignPatientManageRouteNode(signPatientManageRouteNode); + signPatientManageRouteNode.setCreateTime(LocalDateTime.now()); + return signPatientManageRouteNodeMapper.insertSignPatientManageRouteNode(signPatientManageRouteNode); } /** @@ -61,7 +91,7 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage */ @Override public int updateSignPatientManageRouteNode(SignPatientManageRouteNode signPatientManageRouteNode) { - signPatientManageRouteNode.setUpdateTime(LocalDateTime.now()); + signPatientManageRouteNode.setUpdateTime(LocalDateTime.now()); return signPatientManageRouteNodeMapper.updateSignPatientManageRouteNode(signPatientManageRouteNode); } @@ -86,4 +116,8 @@ public class SignPatientManageRouteNodeServiceImpl implements ISignPatientManage public int deleteSignPatientManageRouteNodeById(Long id) { return signPatientManageRouteNodeMapper.deleteSignPatientManageRouteNodeById(id); } + + @Override public List selectPatientTaskList(PatientTaskDto patientTaskDto) { + return signPatientManageRouteNodeMapper.selectPatientTaskList(patientTaskDto); + } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java index d8f208cb..b552b2c9 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/signpatientrecord/impl/SignPatientRecordServiceImpl.java @@ -2,6 +2,8 @@ package com.xinelu.manage.service.signpatientrecord.impl; import com.xinelu.common.constant.SignRecordServiceStatusConstants; import com.xinelu.common.constant.TaskCreateTypeConstant; +import com.xinelu.common.enums.NodeExecuteStatusEnum; +import com.xinelu.common.enums.RouteCheckStatusEnum; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.SecurityUtils; import com.xinelu.common.utils.StringUtils; @@ -184,6 +186,10 @@ public class SignPatientRecordServiceImpl implements ISignPatientRecordService { BeanUtils.copyBeanProp(manageRouteNode, node); manageRouteNode.setManageRouteId(body.getRouteId()); manageRouteNode.setId(null); + manageRouteNode.setRouteCheckStatus(RouteCheckStatusEnum.AGREE.name()); + manageRouteNode.setRouteCheckDate(LocalDateTime.now()); + manageRouteNode.setRouteCheckRemark("签约自动审核通过"); + manageRouteNode.setNodeExecuteStatus(NodeExecuteStatusEnum.UNEXECUTED.name()); manageRouteNode.setCreateTime(LocalDateTime.now()); manageRouteNode.setCreateBy(SecurityUtils.getLoginUser().getUser().getNickName()); return manageRouteNode; diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroute/SignPatientManageRouteNodeVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroute/SignPatientManageRouteNodeVo.java new file mode 100644 index 00000000..5066bf48 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroute/SignPatientManageRouteNodeVo.java @@ -0,0 +1,211 @@ +package com.xinelu.manage.vo.signpatientmanageroute; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalTime; +import lombok.Data; + +/** + * @description: 居民管理路径查询返回视图类 + * @author: haown + * @create: 2024-04-02 08:58 + **/ +@ApiModel("居民管理路径查询返回视图类") +@Data +public class SignPatientManageRouteNodeVo { + + /** 签约记录表id */ + @ApiModelProperty(value = "签约记录表id") + private Long signPatientRecordId; + + /** 路径主键 */ + @ApiModelProperty(value = "路径主键") + private Long routeId; + + /** 路径名称(任务名称) */ + @ApiModelProperty(value = "路径名称") + private String routeName; + + /** 管理路径节点名称,出院后:AFTER_DISCHARGE,入院后:AFTER_ADMISSION,就诊后:AFTER_CONSULTATION,就诊/出院后:AFTER_VISIT_DISCHARGE,术前:PREOPERATIVE,术后:POSTOPERATIVE*/ + @ApiModelProperty(value = "管理路径节点名称,出院后:AFTER_DISCHARGE,入院后:AFTER_ADMISSION,就诊后:AFTER_CONSULTATION," + + "就诊/出院后:AFTER_VISIT_DISCHARGE,术前:PREOPERATIVE,术后:POSTOPERATIVE") + private String routeNodeName; + + /** 管理路径节点时间,时间单位为:天 */ + @ApiModelProperty(value = "管理路径节点时间,时间单位为:天") + 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") + private String taskType; + + /** 任务状态 */ + @ApiModelProperty(value = "任务状态") + private String taskStatus; + + /** 任务细分 */ + @ApiModelProperty(value = "任务细分") + private String taskSubdivision; + + /** 二级分类描述 */ + @ApiModelProperty(value = "二级分类描述") + private String secondClassifyDescribe; + + /** 执行时间,格式:HH:mm */ + @ApiModelProperty(value = "执行时间,格式:HH:mm") + @JsonFormat(pattern = "HH:mm") + private LocalTime executeTime; + + /** 电话推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "电话推送标识,0:未开启,1:已开启") + private Integer phonePushSign; + + /** 电话话术表id */ + @ApiModelProperty(value = "电话话术表id") + private Long phoneId; + + /** 电话模板ID */ + @ApiModelProperty(value = "电话模板ID") + private String phoneTemplateId; + + /** 电话模板名称 */ + @ApiModelProperty(value = "电话模板名称") + private String phoneTemplateName; + + /** 电话内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "电话内容") + private String phoneNodeContent; + + /** 电话重拨次数,重拨一次:REDIAL_ONCE,重拨二次:REDIAL_TWICE,不重播:NOT_REPLAY */ + @ApiModelProperty(value = "电话重拨次数,重拨一次:REDIAL_ONCE,重拨二次:REDIAL_TWICE,不重播:NOT_REPLAY") + private String phoneRedialTimes; + + /** 电话时间间隔,单位为:分钟 */ + @ApiModelProperty(value = "电话时间间隔,单位为:分钟") + private Integer phoneTimeInterval; + + /** 电话短信提醒,不发送短信:NOT_SEND_MESSAGE,未接通发短信:NOT_CONNECTED_SEND_MESSAGE,接通后发短信:CONNECTED_SEND_MESSAGE,所有人发短信:EVERYONE_SEND_MESSAGE */ + @ApiModelProperty(value = "电话短信提醒,不发送短信:NOT_SEND_MESSAGE,未接通发短信:NOT_CONNECTED_SEND_MESSAGE,接通后发短信:CONNECTED_SEND_MESSAGE,所有人发短信:EVERYONE_SEND_MESSAGE") + private String phoneMessageRemind; + + /** 电话短信模板表id */ + @ApiModelProperty(value = "电话短信模板表id") + private Long phoneMessageTemplateId; + + /** 电话短信模板名称 */ + @ApiModelProperty(value = "电话短信模板名称") + private String phoneMessageTemplateName; + + /** 问卷表id */ + @ApiModelProperty(value = "问卷表id") + private Long questionInfoId; + + /** 问卷模板名称 */ + @ApiModelProperty(value = "问卷模板名称") + private String questionnaireName; + + /** 问卷模板内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "问卷模板内容") + private String questionnaireContent; + + /** 问卷有效期,单位:天 */ + @ApiModelProperty(value = "问卷有效期,单位:天") + private Integer questionExpirationDate; + + /** 宣教文章表id */ + @ApiModelProperty(value = "宣教文章表id") + private Long propagandaInfoId; + + /** 宣教文章模板标题(宣教模板名称) */ + @ApiModelProperty(value = "宣教文章模板标题") + private String propagandaTitle; + + /** 宣教文章内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "宣教文章内容") + private String propagandaContent; + + /** 短信推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "短信推送标识,0:未开启,1:已开启") + private Integer messagePushSign; + + /** 短信模板表id */ + @ApiModelProperty(value = "短信模板表id") + private Long messageTemplateId; + + /** 短信模板名称 */ + @ApiModelProperty(value = "短信模板名称") + private String messageTemplateName; + + /** 短信预览 */ + @ApiModelProperty(value = "短信预览") + private String messagePreview; + + /** 短信节点内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "短信节点内容") + private String messageNodeContent; + + /** 公众号推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "公众号推送标识,0:未开启,1:已开启") + private Integer officialPushSign; + + /** 公众号模板表id */ + @ApiModelProperty(value = "公众号模板表id") + private Long officialTemplateId; + + /** 公众号模板名称 */ + @ApiModelProperty(value = "公众号模板名称") + private String officialTemplateName; + + /** 公众号提醒内容 */ + @ApiModelProperty(value = "公众号提醒内容") + private String officialRemindContent; + + /** 公众号节点内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "公众号节点内容") + private String officialNodeContent; + + /** 小程序推送标识,0:未开启,1:已开启 */ + @ApiModelProperty(value = "小程序推送标识,0:未开启,1:已开启") + private Integer appletPushSign; + + /** 小程序模板表id */ + @ApiModelProperty(value = "小程序模板表id") + private Long appletTemplateId; + + /** 小程序模板名称 */ + @ApiModelProperty(value = "小程序模板名称") + private String appletTemplateName; + + /** 小程序提醒内容 */ + @ApiModelProperty(value = "小程序提醒内容") + private String appletRemindContent; + + /** 小程序提示说明 */ + @ApiModelProperty(value = "小程序提示说明") + private String appletPromptDescription; + + /** 小程序节点内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "小程序节点内容") + private String appletNodeContent; + + /** 人工随访模板表id */ + @ApiModelProperty(value = "人工随访模板表id") + private Long followTemplateId; + + /** 人工随访模板名称 */ + @ApiModelProperty(value = "人工随访模板名称") + private String followTemplateName; + + /** 人工随访模板内容(富文本存放整个节点的信息,包含标签画像的名称以及其它,标签画像名称使用特殊符号进行标记) */ + @ApiModelProperty(value = "人工随访模板内容") + private String followContent; + + /** 节点审核状态,同意:AGREE,不同意:DISAGREE */ + @ApiModelProperty(value = "节点审核状态,同意:AGREE,不同意:DISAGREE") + private String routeCheckStatus; + + /** 节点任务执行状态,已执行:EXECUTED,未执行:UNEXECUTED */ + @ApiModelProperty(value = "节点任务执行状态,已执行:EXECUTED,未执行:UNEXECUTED") + private String nodeExecuteStatus; +} diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/PatientTaskVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/PatientTaskVo.java new file mode 100644 index 00000000..a00ee251 --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/signpatientmanageroutenode/PatientTaskVo.java @@ -0,0 +1,143 @@ +package com.xinelu.manage.vo.signpatientmanageroutenode; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xinelu.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.time.LocalDate; +import java.time.LocalDateTime; +import lombok.Data; + +/** + * @description: 患者任务列表查询返回视图类 + * @author: haown + * @create: 2024-04-02 17:14 + **/ +@ApiModel("患者任务列表查询返回视图类") +@Data +public class PatientTaskVo { + + /** 患者id */ + private Long patientId; + + /** 居民信息表id */ + @ApiModelProperty(value = "居民信息表id") + private Long residentId; + + /** 患者姓名 */ + @ApiModelProperty(value = "患者姓名") + @Excel(name = "患者姓名") + private String patientName; + + /** 患者电话 */ + @ApiModelProperty(value = "患者电话") + @Excel(name = "患者电话") + private String patientPhone; + + /** 家属电话 */ + @ApiModelProperty(value = "家属电话") + private String familyMemberPhone; + + /** 出生日期,格式:yyyy-MM-dd */ + @ApiModelProperty(value = "出生日期,格式:yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDate birthDate; + + /** 身份证号 */ + @ApiModelProperty(value = "身份证号") + private String cardNo; + + /** 性别,男:MALE,女:FEMALE */ + @ApiModelProperty(value = "性别,男:MALE,女:FEMALE") + @Excel(name = "性别,男:MALE,女:FEMALE") + private String sex; + + /** 住址 */ + @ApiModelProperty(value = "住址") + @Excel(name = "住址") + private String address; + + /** 患者类型,预住院患者:PRE_HOSPITALIZED_PATIENT,在院患者:IN_HOSPITAL_PATIENT,门诊患者:OUTPATIENT,出院患者:DISCHARGED_PATIENT, + 签约患者:CONTRACTED_PATIENT */ + @ApiModelProperty(value = "患者类型,预住院患者:PRE_HOSPITALIZED_PATIENT,在院患者:IN_HOSPITAL_PATIENT,门诊患者:OUTPATIENT,出院患者:DISCHARGED_PATIENT,签约患者:CONTRACTED_PATIENT") + private String patientType; + + /** 主治医生id */ + @ApiModelProperty(value = "主治医生id") + @Excel(name = "主治医生id") + private Long attendingPhysicianId; + + /** 主治医生姓名 */ + @ApiModelProperty(value = "主治医生姓名") + @Excel(name = "主治医生姓名") + private String attendingPhysicianName; + + /** 主要诊断 */ + @ApiModelProperty(value = "主要诊断") + private String mainDiagnosis; + + /** 所属医院id */ + @ApiModelProperty(value = "所属医院id") + private Long hospitalAgencyId; + + /** 所属医院名称 */ + @ApiModelProperty(value = "所属医院名称") + @Excel(name = "所属医院名称") + private String hospitalAgencyName; + + /** 所属院区id */ + @ApiModelProperty(value = "所属院区id") + private Long campusAgencyId; + + /** 所属院区名称 */ + @ApiModelProperty(value = "所属院区名称") + @Excel(name = "所属院区名称") + private String campusAgencyName; + + /** 所属科室id */ + @ApiModelProperty(value = "所属科室id") + private Long departmentId; + + /** 所属科室名称 */ + @ApiModelProperty(value = "所属科室名称") + @Excel(name = "所属科室名称") + private String departmentName; + + /** 所属病区id */ + @ApiModelProperty(value = "所属病区id") + private Long wardId; + + /** 所属病区名称 */ + @ApiModelProperty(value = "所属病区名称") + @Excel(name = "所属病区名称") + private String wardName; + + /** 门诊/住院号 */ + @ApiModelProperty(value = "门诊/住院号 ") + private String inHospitalNumber; + + /** 就诊时间,格式:yyyy-MM-dd HH:mm:ss */ + @ApiModelProperty(value = "就诊时间,格式:yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime visitDate; + + /** 手术名称 */ + @ApiModelProperty(value = "手术名称") + private String surgicalName; + + /** 签约患者管理任务路径节点id */ + @ApiModelProperty(value = "签约患者管理任务路径节点id") + private Long manageRouteNodeId; + + /** 签约患者管理任务路径id */ + @ApiModelProperty(value = "签约患者管理任务路径id") + private Long manageRouteId; + + /** 签约患者管理任务路径名称 */ + @ApiModelProperty(value = "签约患者管理任务路径名称") + private String manageRouteName; + + /** 节点审核状态,同意:AGREE,不同意:DISAGREE */ + @ApiModelProperty(value = "节点审核状态,同意:AGREE,不同意:DISAGREE") + private String routeCheckStatus; +} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/materialsinfo/MaterialsInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/materialsinfo/MaterialsInfoMapper.xml index 217eb8e0..317aa044 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/materialsinfo/MaterialsInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/materialsinfo/MaterialsInfoMapper.xml @@ -49,12 +49,13 @@ and materials_type = #{materialsType} - and create_time >= #{createTimeStart} + and date_format(create_time,'%y%m%d') >= date_format(#{createTimeStart},'%y%m%d') - and create_time <= #{createTimeEnd} + and date_format(create_time,'%y%m%d') <= date_format(#{createTimeEnd},'%y%m%d') + order by create_time desc @@ -249,6 +253,8 @@ patient_source, + surgical_name, + del_flag, create_by, @@ -337,6 +343,8 @@ #{patientSource}, + #{surgicalName}, + #{delFlag}, #{createBy}, @@ -465,6 +473,9 @@ patient_source = #{patientSource}, + surgical_name = + #{surgicalName}, + del_flag = #{delFlag}, diff --git a/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml index 42d30bf0..2d9f1310 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/propagandainfo/PropagandaInfoMapper.xml @@ -298,6 +298,9 @@ and d.department_name like concat('%', #{departmentName}, '%') + + and p.propaganda_status = #{propagandaStatus} + GROUP BY d.id order by countNum desc diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index ad5eae43..e39a04f1 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -75,174 +75,24 @@ @@ -716,4 +566,51 @@ #{id} + + \ No newline at end of file