Merge branch '3.11_院后第二增量' of http://182.92.166.109:3000/jihan/PostDischargePatientManage into 3.11_院后第二增量

 Conflicts:
	postdischarge-manage/src/main/java/com/xinelu/manage/controller/signpatientmanageroute/SignPatientManageRouteController.java
This commit is contained in:
haown 2024-04-16 09:57:11 +08:00
commit 93ae87e107
23 changed files with 390 additions and 54 deletions

View File

@ -0,0 +1,29 @@
package com.xinelu.common.enums;
import lombok.Getter;
/**
* @Description 问卷类型
* @Author zh
* @Date 2024-04-15
*/
@Getter
public enum QuestionTypeEnum {
/**
* 普通问卷
*/
REGULAR_QUESTIONNAIRE("REGULAR_QUESTIONNAIRE"),
/**
* 满意度问卷
*/
SATISFACTION_QUESTIONNAIRE("SATISFACTION_QUESTIONNAIRE"),
;
final private String info;
QuestionTypeEnum(String info) {
this.info = info;
}
}

View File

@ -0,0 +1,29 @@
package com.xinelu.common.enums;
import lombok.Getter;
/**
* @Description 任务创建类型
* @Author zh
* @Date 2024-04-07
*/
@Getter
public enum TaskCreateTypeEnum {
/**
* 手动创建
*/
MANUAL_CREATE("MANUAL_CREATE"),
/**
* 自动匹配
*/
MANUAL_MATCHE("MANUAL_MATCHE"),
;
final private String info;
TaskCreateTypeEnum(String info) {
this.info = info;
}
}

View File

@ -8,6 +8,7 @@ import com.xinelu.common.enums.BusinessType;
import com.xinelu.common.utils.poi.ExcelUtil;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@ -88,4 +89,23 @@ public class PatientQuestionSubmitResultController extends BaseController {
public AjaxResult remove(@PathVariable Long[] ids) {
return toAjax(patientQuestionSubmitResultService.deletePatientQuestionSubmitResultByIds(ids));
}
/**
* 满意度调查问卷列表
*/
@GetMapping("/satisfactionSurvey")
public TableDataInfo satisfactionSurvey(SatisfactionSurveyVO satisfactionSurvey) {
startPage();
List<SatisfactionSurveyVO> list = patientQuestionSubmitResultService.satisfactionSurvey(satisfactionSurvey);
return getDataTable(list);
}
/**
* 满意度调查问卷
*/
@GetMapping("/selectQuestionnaireResult")
public AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId) {
return patientQuestionSubmitResultService.selectQuestionnaireResult(patientQuestionSubmitResultId);
}
}

View File

@ -72,7 +72,7 @@ public class QuestionInfoController extends BaseController {
@Log(title = "问卷基本信息", businessType = BusinessType.INSERT)
@PostMapping("/add")
public AjaxResult add(@RequestBody QuestionVO questionInfo) {
if (Objects.isNull(questionInfo) || StringUtils.isBlank(questionInfo.getQuestionnaireName())) {
if (Objects.isNull(questionInfo) || StringUtils.isBlank(questionInfo.getQuestionnaireName()) || StringUtils.isBlank(questionInfo.getQuestionType())) {
return AjaxResult.error("请添加问卷信息!");
}
return questionInfoService.insertQuestionInfo(questionInfo);
@ -85,6 +85,9 @@ public class QuestionInfoController extends BaseController {
@Log(title = "问卷基本信息", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
public AjaxResult edit(@RequestBody QuestionVO question) {
if (Objects.isNull(question) || StringUtils.isBlank(question.getQuestionnaireName()) || StringUtils.isBlank(question.getQuestionType())) {
return AjaxResult.error("请添加问卷信息!");
}
return questionInfoService.updateQuestionInfo(question);
}
@ -94,8 +97,8 @@ public class QuestionInfoController extends BaseController {
@PreAuthorize("@ss.hasPermi('system:question:remove')")
@Log(title = "问卷基本信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long id) {
return toAjax(questionInfoService.deleteQuestionInfoById(id));
public AjaxResult remove(@PathVariable Long ids) {
return toAjax(questionInfoService.deleteQuestionInfoById(ids));
}
/**
@ -110,7 +113,7 @@ public class QuestionInfoController extends BaseController {
* 科室问卷数量
*/
@GetMapping("/departmentQuestionCount")
public AjaxResult departmentQuestionCount(String departmentName, String questionnaireStatus) {
return questionInfoService.departmentQuestionCount(departmentName, questionnaireStatus);
public AjaxResult departmentQuestionCount(String departmentName, String questionnaireStatus, String questionType) {
return questionInfoService.departmentQuestionCount(departmentName, questionnaireStatus, questionType);
}
}

View File

@ -123,6 +123,12 @@ public class QuestionInfo extends BaseEntity {
@Excel(name = "问卷备注信息")
private String questionnaireRemark;
/**
* 问卷类型普通问卷REGULAR_QUESTIONNAIRE,满意度问卷SATISFACTION_QUESTIONNAIRE
*/
@ApiModelProperty(value = "问卷类型")
@Excel(name = "问卷类型")
private String questionType;
@Override
public String toString() {

View File

@ -2,6 +2,8 @@ package com.xinelu.manage.mapper.patientquestionsubmitresult;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultVO;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -63,8 +65,17 @@ public interface PatientQuestionSubmitResultMapper {
/**
* 根据任务执行记录查询患者问卷信息
*
* @param taskExecuteRecordId 患者管理任务执行记录表id
* @param taskExecuteRecordId 患者管理任务执行记录表id
* @param patientQuestionSubmitResultId 患者问卷提交结果信息表
* @return PatientQuestionSubmitResultVO
*/
PatientQuestionSubmitResultVO selectResultByTaskExecuteRecordId(Long taskExecuteRecordId);
PatientQuestionSubmitResultVO selectResultByTaskExecuteRecordId(@Param("taskExecuteRecordId") Long taskExecuteRecordId, @Param("patientQuestionSubmitResultId") Long patientQuestionSubmitResultId);
/**
* 满意度调查问卷列表
*
* @param satisfactionSurvey 居民信息
* @return AjaxResult
*/
List<SatisfactionSurveyVO> selectSatisfactionSurvey(SatisfactionSurveyVO satisfactionSurvey);
}

View File

@ -69,5 +69,5 @@ public interface QuestionInfoMapper {
* @param questionnaireStatus 问卷状态
* @return DepartmentVO
*/
List<DepartmentVO> departmentQuestionByDepartmentName(@Param("departmentName") String departmentName, @Param("questionnaireStatus") String questionnaireStatus);
List<DepartmentVO> departmentQuestionByDepartmentName(@Param("departmentName") String departmentName, @Param("questionnaireStatus") String questionnaireStatus, @Param("questionType") String questionType);
}

View File

@ -17,7 +17,7 @@ public interface IPatientQuestionSubjectResultService {
* @param id 患者问卷题目提交结果信息主键
* @return 患者问卷题目提交结果信息
*/
public PatientQuestionSubjectResult selectPatientQuestionSubjectResultById(Long id);
PatientQuestionSubjectResult selectPatientQuestionSubjectResultById(Long id);
/**
* 查询患者问卷题目提交结果信息列表

View File

@ -1,6 +1,8 @@
package com.xinelu.manage.service.patientquestionsubmitresult;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import java.util.List;
@ -58,4 +60,20 @@ public interface IPatientQuestionSubmitResultService {
* @return 结果
*/
int deletePatientQuestionSubmitResultById(Long id);
/**
* 满意度调查问卷列表
*
* @param satisfactionSurvey 居民信息
* @return AjaxResult
*/
List<SatisfactionSurveyVO> satisfactionSurvey(SatisfactionSurveyVO satisfactionSurvey);
/**
* 满意度调查问卷
*
* @param patientQuestionSubmitResultId 问卷信息
* @return AjaxResult
*/
AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId);
}

View File

@ -1,8 +1,11 @@
package com.xinelu.manage.service.patientquestionsubmitresult.impl;
import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.QuestionTypeEnum;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper;
import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -87,4 +90,28 @@ public class PatientQuestionSubmitResultServiceImpl implements IPatientQuestionS
public int deletePatientQuestionSubmitResultById(Long id) {
return patientQuestionSubmitResultMapper.deletePatientQuestionSubmitResultById(id);
}
/**
* 满意度调查问卷列表
*
* @param satisfactionSurvey 居民信息
* @return AjaxResult
*/
@Override
public List<SatisfactionSurveyVO> satisfactionSurvey(SatisfactionSurveyVO satisfactionSurvey) {
satisfactionSurvey.setQuestionType(QuestionTypeEnum.SATISFACTION_QUESTIONNAIRE.getInfo());
return patientQuestionSubmitResultMapper.selectSatisfactionSurvey(satisfactionSurvey);
}
/**
* 满意度调查问卷
*
* @param patientQuestionSubmitResultId 问卷信息
* @return AjaxResult
*/
@Override
public AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId) {
return AjaxResult.success(patientQuestionSubmitResultMapper.selectResultByTaskExecuteRecordId(null, patientQuestionSubmitResultId));
}
}

View File

@ -118,6 +118,6 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR
*/
@Override
public AjaxResult selectPatientQuestionSubmit(Long taskExecuteRecordId) {
return AjaxResult.success(submitResultMapper.selectResultByTaskExecuteRecordId(taskExecuteRecordId));
return AjaxResult.success(submitResultMapper.selectResultByTaskExecuteRecordId(taskExecuteRecordId, null));
}
}

View File

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

View File

@ -196,6 +196,9 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
log.info("修改问卷题目表失败," + questionSubjects);
throw new SecurityException("修改问卷失败!请联系管理员!");
}
if (CollectionUtils.isEmpty(questionSubjectOptions)) {
return AjaxResult.success();
}
List<QuestionSubjectOption> saveQuestionSubjectOptions = new ArrayList<>();
for (QuestionSubjectOptionVO questionSubjectOption : questionSubjectOptions) {
QuestionSubjectOption saveQuestionSubjectOption = new QuestionSubjectOption();
@ -257,6 +260,7 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
* @param questionInfo 问卷基本信息
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult updateQuestionByDepartment(QuestionInfo questionInfo) {
if (Objects.isNull(questionInfo) || Objects.isNull(questionInfo.getId())) {
@ -296,12 +300,12 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService {
* @return AjaxResult
*/
@Override
public AjaxResult departmentQuestionCount(String departmentName, String questionnaireStatus) {
public AjaxResult departmentQuestionCount(String departmentName, String questionnaireStatus, String questionType) {
DepartmentVO departmentVO = new DepartmentVO();
List<DepartmentVO> department = new ArrayList<>();
departmentVO.setDepartmentName("全部");
departmentVO.setCountNum(0);
List<DepartmentVO> departmentVOS = questionInfoMapper.departmentQuestionByDepartmentName(departmentName, questionnaireStatus);
List<DepartmentVO> departmentVOS = questionInfoMapper.departmentQuestionByDepartmentName(departmentName, questionnaireStatus, questionType);
if (CollectionUtils.isNotEmpty(departmentVOS)) {
Integer result = departmentVOS.stream().mapToInt(DepartmentVO::getCountNum).sum();
departmentVO.setCountNum(result);

View File

@ -4,6 +4,7 @@ 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.enums.TaskCreateTypeEnum;
import com.xinelu.common.exception.ServiceException;
import com.xinelu.common.utils.AgeUtil;
import com.xinelu.common.utils.SecurityUtils;
@ -98,9 +99,11 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
* @param signPatientManageRoute 签约患者管理任务路径
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult insertSignPatientManageRoute(SignPatientManageRouteVO signPatientManageRoute) {
//新增主表
signPatientManageRoute.setTaskCreateType(TaskCreateTypeEnum.MANUAL_CREATE.getInfo());
signPatientManageRoute.setCreateBy(SecurityUtils.getUsername());
signPatientManageRoute.setCreateTime(LocalDateTime.now());
int insertRoute = signPatientManageRouteMapper.insertSignPatientManageRoute(signPatientManageRoute);
@ -140,6 +143,7 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
* @param signPatientManageRoute 签约患者管理任务路径
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult updateSignPatientManageRoute(SignPatientManageRouteVO signPatientManageRoute) {
int deleteRouteNodeCount = signPatientManageRouteNodeMapper.deleteRouteNodeByManageRouteId(signPatientManageRoute.getSignPatientManageRouteId());
@ -188,6 +192,7 @@ public class SignPatientManageRouteServiceImpl implements ISignPatientManageRout
* @param ids 需要删除的签约患者管理任务路径主键
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
@Override
public int deleteSignPatientManageRouteByIds(Long[] ids) {
return signPatientManageRouteMapper.deleteSignPatientManageRouteByIds(ids);

View File

@ -163,6 +163,7 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
* @param specialDiseaseNode 节点信息
* @return AjaxResult
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult updateRouteCheckStatus(SpecialDiseaseNode specialDiseaseNode) {
if (Objects.isNull(specialDiseaseNode) || Objects.isNull(specialDiseaseNode.getId())) {

View File

@ -77,6 +77,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
* @param specialDiseaseRoute 专病路径信息
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult insertSpecialDiseaseRoute(SpecialDiseaseRouteVO specialDiseaseRoute) {
specialDiseaseRoute.setCreateTime(LocalDateTime.now());
@ -111,6 +112,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
* @param specialDiseaseRoute 专病路径信息
* @return 结果
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult updateSpecialDiseaseRoute(SpecialDiseaseRouteVO specialDiseaseRoute) {
int deleteRoutePackageCount = specialDiseaseRoutePackageMapper.deleteSpecialDiseaseRoutePackageByRouteId(specialDiseaseRoute.getId());
@ -209,6 +211,7 @@ public class SpecialDiseaseRouteServiceImpl implements ISpecialDiseaseRouteServi
* @param specialDiseaseRoute 路径信息
* @return AjaxResult
*/
@Transactional(rollbackFor = Exception.class)
@Override
public AjaxResult editReleaseStatus(SpecialDiseaseRoute specialDiseaseRoute) {
if (Objects.isNull(specialDiseaseRoute) || StringUtils.isBlank(specialDiseaseRoute.getReleaseStatus())) {

View File

@ -120,5 +120,8 @@ public class ManualFollowUpVO {
@ApiModelProperty(value = "任务执行记录id")
private Long taskExecuteRecordId;
@ApiModelProperty(value = "任务处理信息")
private String routeHandleRemark;
}

View File

@ -4,6 +4,7 @@ import com.xinelu.manage.vo.patientquestionsubjectresult.PatientQuestionSubjectR
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
@ -34,5 +35,18 @@ public class PatientQuestionSubmitResultVO {
@ApiModelProperty(value = "问卷说明")
private String questionnaireDescription;
/**
* 问卷总分值小数点后两位
*/
@ApiModelProperty(value = "问卷总分值,小数点后两位")
private BigDecimal questionnaireTotalScore;
/**
* 问卷总得分根据患者提交问卷得出的分值
*/
@ApiModelProperty(value = "问卷总得分,根据患者提交问卷得出的分值")
private BigDecimal totalScore;
List<PatientQuestionSubjectResultVO> subjectResultList;
}

View File

@ -0,0 +1,93 @@
package com.xinelu.manage.vo.patientquestionsubmitresult;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
/**
* 满意度调查
*
* @author xinelu
* @date 2024-04-15
*/
@Data
public class SatisfactionSurveyVO {
private Long patientQuestionSubmitResultId;
/**
* 患者姓名
*/
@ApiModelProperty(value = "患者姓名")
private String patientName;
/**
* 患者电话
*/
@ApiModelProperty(value = "患者电话")
private String patientPhone;
/**
* 身份证号
*/
@ApiModelProperty(value = "身份证号")
private String cardNo;
/**
* 出生日期格式yyyy-MM-dd
*/
@ApiModelProperty(value = "出生日期格式yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate birthDate;
/**
* 性别MALEFEMALE
*/
@ApiModelProperty(value = "性别MALEFEMALE")
private String sex;
/**
* 问卷类型普通问卷REGULAR_QUESTIONNAIRE,满意度问卷SATISFACTION_QUESTIONNAIRE
*/
@ApiModelProperty(value = "问卷类型")
private String questionType;
/**
* 患者类型预住院患者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;
/**
* 签约状态未签约UN_SIGN,在签IN_SIGN,解约SEPARATE_SIGN, 服务到期EXPIRE_SIGN
*/
@ApiModelProperty(value = "签约状态未签约UN_SIGN,在签IN_SIGN,解约SEPARATE_SIGN, 过期EXPIRE_SIGN")
private String signStatus;
/**
* 服务状态意向签约INTENTIONAL_SIGNING服务中SERVICE_CENTER服务结束SERVICE_END
*/
@ApiModelProperty(value = "服务状态意向签约INTENTIONAL_SIGNING服务中SERVICE_CENTER服务结束SERVICE_END")
private String serviceStatus;
/**
* 就诊方式门诊OUTPATIENT_SERVICE住院BE_IN_HOSPITAL
*/
@ApiModelProperty(value = "就诊方式门诊OUTPATIENT_SERVICE住院BE_IN_HOSPITAL")
private String visitMethod;
/**
* 所属医院名称
*/
@ApiModelProperty(value = "所属医院名称")
private String hospitalAgencyName;
/**
* 所属科室名称
*/
@ApiModelProperty(value = "所属科室名称")
private String departmentName;
}

View File

@ -37,6 +37,8 @@
<result property="submitResulId" column="submitResulId"/>
<result property="questionnaireName" column="questionnaire_name"/>
<result property="questionnaireDescription" column="questionnaire_description"/>
<result property="questionnaireTotalScore" column="questionnaire_total_score"/>
<result property="totalScore" column="total_score"/>
<collection property="subjectResultList" javaType="java.util.List"
resultMap="PatientQuestionSubjectResultResult"/>
</resultMap>
@ -375,39 +377,85 @@
<select id="selectResultByTaskExecuteRecordId"
resultType="com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultVO"
resultMap="PatientQuestionSubmitResultDTO">
select pqsm.id submitResulId,
pqsm.questionnaire_name,
pqsm.questionnaire_description,
pqsj.id subjectResult,
pqsj.question_submit_result_id,
pqsj.question_info_id,
pqsj.question_number,
pqsj.question_type,
pqsj.question_name,
pqsj.question_description,
pqsj.write_description,
pqsj.fill_blanks_answer,
pqsj.option_count,
pqsj.whether_score,
pqsj.scoring_method,
pqsj.scoring_description,
pqsj.question_score,
pqsj.question_sort,
pqsj.question_remark,
pqor.id,
pqor.question_subject_result_id,
pqor.questionnaire_subject_id,
pqor.question_name,
pqor.option_name,
pqor.option_answer,
pqor.option_score,
pqor.option_choose_sign,
pqor.option_submit_answer,
pqor.option_sort,
pqor.option_remark
select
pqsm.id submitResulId,
pqsm.questionnaire_name,
pqsm.questionnaire_description,
pqsm.questionnaire_total_score,
pqsm.total_score,
pqsj.id subjectResult,
pqsj.question_submit_result_id,
pqsj.question_info_id,
pqsj.question_number,
pqsj.question_type,
pqsj.question_name,
pqsj.question_description,
pqsj.write_description,
pqsj.fill_blanks_answer,
pqsj.option_count,
pqsj.whether_score,
pqsj.scoring_method,
pqsj.scoring_description,
pqsj.question_score,
pqsj.question_sort,
pqsj.question_remark,
pqor.id,
pqor.question_subject_result_id,
pqor.questionnaire_subject_id,
pqor.question_name,
pqor.option_name,
pqor.option_answer,
pqor.option_score,
pqor.option_choose_sign,
pqor.option_submit_answer,
pqor.option_sort,
pqor.option_remark
FROM patient_question_submit_result pqsm
LEFT JOIN patient_question_subject_result pqsj ON pqsm.id = pqsj.question_submit_result_id
LEFT JOIN patient_question_option_result pqor ON pqor.question_subject_result_id = pqsj.id
where pqsm.task_execute_record_id = #{taskExecuteRecordId}
LEFT JOIN patient_question_subject_result pqsj ON pqsm.id = pqsj.question_submit_result_id
LEFT JOIN patient_question_option_result pqor ON pqor.question_subject_result_id = pqsj.id
<where>
<if test="taskExecuteRecordId != null">
and pqsm.task_execute_record_id = #{taskExecuteRecordId}
</if>
<if test="patientQuestionSubmitResultId != null">
and pqsm.id = #{patientQuestionSubmitResultId}
</if>
</where>
</select>
<select id="selectSatisfactionSurvey" resultType="com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO">
select
pqsr.id patientQuestionSubmitResultId,
pqsr.patient_name,
pi.patient_phone,
pi.birth_date,
pi.card_no,
pi.sex,
pi.patient_type,
pi.sign_status,
pi.visit_method,
pi.patient_health_state,
pi.hospital_agency_name,
pi.department_name
from patient_question_submit_result pqsr
LEFT JOIN question_info qi on pqsr.question_info_id = qi.id
LEFT JOIN patient_info pi ON pi.id = pqsr.patient_id
where
pi.del_flag = 0
<if test="questionType != null and questionType != ''">
and qi.question_type = #{questionType}
</if>
<if test="patientName != null and patientName != ''">
and pi.patient_name like concat('%', #{patientName}, '%')
</if>
<if test="patientPhone != null and patientPhone != ''">
and pi.patient_phone like concat('%', #{patientPhone}, '%')
</if>
<if test="cardNo != null and cardNo != ''">
and pi.card_no = #{cardNo}
</if>
<if test="sex != null and sex != ''">
and pi.sex = #{sex}
</if>
</select>
</mapper>

View File

@ -140,11 +140,11 @@
<if test="visitMethod != null and visitMethod != ''">
and pi.visit_method = #{visitMethod}
</if>
<if test="executeTime != null ">
and pter.execute_time &lt;= #{startDate}
<if test="startDate != null ">
and pter.execute_time &gt;=#{startDate}
</if>
<if test="executeTime != null ">
and pter.execute_time &gt;= #{endDate}
<if test="endDate != null ">
and pter.execute_time &lt;= #{endDate}
</if>
<if test="manageRouteName != null and manageRouteName != ''">
and pter.manage_route_name like concat('%', #{manageRouteName}, '%')

View File

@ -19,6 +19,7 @@
<result property="questionnaireStatus" column="questionnaire_status"/>
<result property="questionnaireSort" column="questionnaire_sort"/>
<result property="questionnaireRemark" column="questionnaire_remark"/>
<result property="questionType" column="question_type"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
@ -40,6 +41,7 @@
questionnaire_status,
questionnaire_sort,
questionnaire_remark,
question_type,
create_by,
create_time,
update_by,
@ -89,6 +91,9 @@
<if test="questionnaireRemark != null and questionnaireRemark != ''">
and questionnaire_remark = #{questionnaireRemark}
</if>
<if test="questionType != null and questionType != ''">
and question_type = #{questionType}
</if>
</where>
</select>
@ -128,6 +133,8 @@
</if>
<if test="questionnaireRemark != null">questionnaire_remark,
</if>
<if test="questionType != null">question_type,
</if>
<if test="createBy != null">create_by,
</if>
<if test="createTime != null">create_time,
@ -164,6 +171,8 @@
</if>
<if test="questionnaireRemark != null">#{questionnaireRemark},
</if>
<if test="questionType != null">#{questionType},
</if>
<if test="createBy != null">#{createBy},
</if>
<if test="createTime != null">#{createTime},
@ -217,6 +226,9 @@
<if test="questionnaireRemark != null">questionnaire_remark =
#{questionnaireRemark},
</if>
<if test="questionType != null">question_type =
#{questionType},
</if>
<if test="createBy != null">create_by =
#{createBy},
</if>
@ -254,10 +266,13 @@
from department dt left join question_info qi on dt.id = qi.department_id
<where>
<if test="departmentName != null and departmentName != ''">
dt.department_name like concat('%',#{departmentName},'%')
and dt.department_name like concat('%',#{departmentName},'%')
</if>
<if test="questionnaireStatus != null and questionnaireStatus != ''">
qi.questionnaire_status =#{questionnaireStatus}
and qi.questionnaire_status =#{questionnaireStatus}
</if>
<if test="questionType != null and questionType != ''">
and qi.question_type = #{questionType}
</if>
</where>
GROUP BY dt.id

View File

@ -307,7 +307,7 @@
pvr.surgical_name,
pi.attending_physician_id,
pi.attending_physician_name,
IF(spmr.suit_range = 'IN_THE_HOSPITAL', pi.admission_time, NULL) AS 'admissionTime',
IF(spmr.suit_range = 'IN_THE_HOSPITAL' OR spmr.suit_range = 'DISCHARGE', pi.admission_time, NULL) AS 'admissionTime',
CASE
WHEN spmr.suit_range = 'OUTPATIENT_SERVICE' THEN pi.visit_date
WHEN spmr.suit_range = 'DISCHARGE' THEN pi.discharge_time
@ -335,7 +335,8 @@
WHEN spmrn.task_type = 'QUESTIONNAIRE_SCALE' THEN spmrn.question_info_id
WHEN spmrn.task_type = 'ARTIFICIAL_FOLLOW_UP' THEN spmrn.follow_template_id
END AS 'templateId',
spmrn.node_execute_status
spmrn.node_execute_status,
spmrn.route_handle_remark
FROM
sign_patient_manage_route spmr
LEFT JOIN sign_patient_manage_route_node spmrn ON spmr.id = spmrn.manage_route_id
@ -409,6 +410,12 @@
<if test="nodeExecuteStatus != null ">
AND spmrn.node_execute_status = #{nodeExecuteStatus}
</if>
<if test="followStartTime != null ">
AND pter.execute_time >= #{followStartTime}
</if>
<if test="followEndTime != null ">
AND pter.execute_time &lt;= #{followEndTime}
</if>
</where>
order by spmr.create_time DESC
</select>