统计分析--问卷查询接口。

This commit is contained in:
haown 2024-10-16 15:46:03 +08:00
parent eac4ad3a78
commit 996df74e49
7 changed files with 214 additions and 9 deletions

View File

@ -3,18 +3,27 @@ package com.xinelu.manage.controller.patientquestionsubmitresult;
import com.xinelu.common.annotation.Log; import com.xinelu.common.annotation.Log;
import com.xinelu.common.core.controller.BaseController; import com.xinelu.common.core.controller.BaseController;
import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.core.domain.R;
import com.xinelu.common.core.page.TableDataInfo; import com.xinelu.common.core.page.TableDataInfo;
import com.xinelu.common.enums.BusinessType; import com.xinelu.common.enums.BusinessType;
import com.xinelu.common.utils.poi.ExcelUtil; import com.xinelu.common.utils.poi.ExcelUtil;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService; import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO; import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import org.springframework.security.access.prepost.PreAuthorize; import java.util.List;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/** /**
* 患者问卷提交结果信息Controller * 患者问卷提交结果信息Controller
@ -106,6 +115,13 @@ public class PatientQuestionSubmitResultController extends BaseController {
@GetMapping("/selectQuestionnaireResult") @GetMapping("/selectQuestionnaireResult")
public AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId) { public AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId) {
return patientQuestionSubmitResultService.selectQuestionnaireResult(patientQuestionSubmitResultId); return patientQuestionSubmitResultService.selectQuestionnaireResult(patientQuestionSubmitResultId);
} }
/**
* 问卷统计
*/
@GetMapping("/patientQuestionSubmitStatistic")
public R<List<PatientQuestionSubmitStatistisVo>> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto) {
return R.ok(patientQuestionSubmitResultService.patientQuestionSubmitStatistic(queryDto));
}
} }

View File

@ -0,0 +1,44 @@
package com.xinelu.manage.dto.patientquestionsubmitresult;
import io.swagger.annotations.ApiModelProperty;
import java.time.LocalDate;
import lombok.Data;
/**
* @description: 问卷统计传输对象
* @author: haown
* @create: 2024-10-15 15:53
**/
@Data
public class PatientQuestionSubmitStatistisDto {
/**
* 问卷表id
*/
@ApiModelProperty(value = "问卷表id")
private Long questionInfoId;
/**
* 问卷标题
*/
@ApiModelProperty(value = "问卷标题")
private String questionnaireName;
/**
* 患者姓名
*/
@ApiModelProperty(value = "患者姓名")
private String patientName;
/**
* 起始时间
*/
@ApiModelProperty(value = "起始时间")
private LocalDate startDate;
/**
* 截至时间
*/
@ApiModelProperty(value = "截至时间")
private LocalDate endDate;
}

View File

@ -1,7 +1,9 @@
package com.xinelu.manage.mapper.patientquestionsubmitresult; package com.xinelu.manage.mapper.patientquestionsubmitresult;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultVO; import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitResultVO;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO; import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -78,4 +80,6 @@ public interface PatientQuestionSubmitResultMapper {
* @return AjaxResult * @return AjaxResult
*/ */
List<SatisfactionSurveyVO> selectSatisfactionSurvey(SatisfactionSurveyVO satisfactionSurvey); List<SatisfactionSurveyVO> selectSatisfactionSurvey(SatisfactionSurveyVO satisfactionSurvey);
List<PatientQuestionSubmitStatistisVo> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto);
} }

View File

@ -2,8 +2,9 @@ package com.xinelu.manage.service.patientquestionsubmitresult;
import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO; import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import java.util.List; import java.util.List;
/** /**
@ -76,4 +77,6 @@ public interface IPatientQuestionSubmitResultService {
* @return AjaxResult * @return AjaxResult
*/ */
AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId); AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId);
List<PatientQuestionSubmitStatistisVo> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto);
} }

View File

@ -3,14 +3,15 @@ package com.xinelu.manage.service.patientquestionsubmitresult.impl;
import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.domain.AjaxResult;
import com.xinelu.common.enums.QuestionTypeEnum; import com.xinelu.common.enums.QuestionTypeEnum;
import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult; import com.xinelu.manage.domain.patientquestionsubmitresult.PatientQuestionSubmitResult;
import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitStatistisDto;
import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper; import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper;
import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService; import com.xinelu.manage.service.patientquestionsubmitresult.IPatientQuestionSubmitResultService;
import com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo;
import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO; import com.xinelu.manage.vo.patientquestionsubmitresult.SatisfactionSurveyVO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
/** /**
* 患者问卷提交结果信息Service业务层处理 * 患者问卷提交结果信息Service业务层处理
@ -114,4 +115,9 @@ public class PatientQuestionSubmitResultServiceImpl implements IPatientQuestionS
public AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId) { public AjaxResult selectQuestionnaireResult(Long patientQuestionSubmitResultId) {
return AjaxResult.success(patientQuestionSubmitResultMapper.selectResultByTaskExecuteRecordId(null, patientQuestionSubmitResultId)); return AjaxResult.success(patientQuestionSubmitResultMapper.selectResultByTaskExecuteRecordId(null, patientQuestionSubmitResultId));
} }
@Override
public List<PatientQuestionSubmitStatistisVo> patientQuestionSubmitStatistic(PatientQuestionSubmitStatistisDto queryDto) {
return null;
}
} }

View File

@ -0,0 +1,96 @@
package com.xinelu.manage.vo.patientquestionsubmitresult;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
/**
* @description: 问卷统计返回视图类
* @author: haown
* @create: 2024-10-16 15:06
**/
@Data
public class PatientQuestionSubmitStatistisVo {
/**
* 患者主键
*/
@ApiModelProperty(value = "患者主键")
private Long patientId;
/** 身份证号 */
@ApiModelProperty(value = "身份证号")
private String cardNo;
/** 姓名 */
@ApiModelProperty(value = "姓名")
private String patientName;
/** 就诊类型门诊OUTPATIENT_SERVICE住院BE_IN_HOSPITAL */
@ApiModelProperty(value = "就诊类型门诊OUTPATIENT_SERVICE住院BE_IN_HOSPITAL")
private String visitMethod;
/** 所属医院id */
@ApiModelProperty(value = "所属医院id")
private Long hospitalAgencyId;
/** 所属医院名称 */
@ApiModelProperty(value = "所属医院名称")
private String hospitalAgencyName;
/** 所属科室id */
@ApiModelProperty(value = "所属科室id")
private Long departmentId;
/** 所属科室名称 */
@ApiModelProperty(value = "所属科室名称")
private String departmentName;
/** 入院时间 */
@ApiModelProperty(value = "入院时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime admissionTime;
/** 出院时间 */
@ApiModelProperty(value = "出院时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime dischargeTime;
/** 门诊/住院号 */
@ApiModelProperty(value = "门诊/住院号")
private String inHospitalNumber;
/**
* 患者问卷提交结果表id
*/
@ApiModelProperty(value = "患者问卷提交结果表id")
private Long patientQuestionSubmitResultId;
/**
* 问卷表id
*/
@ApiModelProperty(value = "问卷表id")
private Long questionInfoId;
/**
* 问卷标题
*/
@ApiModelProperty(value = "问卷标题")
private String questionnaireName;
/**
* 问卷总得分根据患者提交问卷得出的分值
*/
@ApiModelProperty(value = "问卷总得分,根据患者提交问卷得出的分值")
private BigDecimal totalScore;
/**
* 问卷时间
*/
@ApiModelProperty(value = "问卷时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
}

View File

@ -462,4 +462,40 @@
and pi.sex = #{sex} and pi.sex = #{sex}
</if> </if>
</select> </select>
<select id="patientQuestionSubmitStatistic" resultType="com.xinelu.manage.vo.patientquestionsubmitresult.PatientQuestionSubmitStatistisVo">
select
vr.patient_id,
vr.patient_name,
vr.card_no,
vr.visit_method,
vr.hospital_agency_id,
vr.hospital_agency_name,
vr.department_id,
vr.department_name,
vr.admission_time,
vr.discharge_time,
vr.in_hospital_number,
pqsr.id as patientQuestionSubmitResultId,
pqsr.question_info_id,
pqsr.questionnaire_name,
pqsr.total_score,
pqsr.create_time
from patient_question_submit_result pqsr
LEFT JOIN sign_patient_manage_route route on pqsr.manage_route_id = route.id
LEFT JOIN sign_patient_record record ON route.sign_patient_record_id = record.id
left join patient_visit_record vr on record.patient_visit_record_id = vr.id
<if test="questionInfoId != null">
and pqsr.question_info_id = #{questionInfoId}
</if>
<if test="patientName != null and patientName != ''">
and vr.patient_name like concat('%', #{patientName}, '%')
</if>
<if test="startDate != null">
and pqsr.create_time &gt;=#{startDate}
</if>
<if test="endDate != null ">
and pqsr.create_time &lt;= #{endDate}
</if>
</select>
</mapper> </mapper>