PostDischargePatientManage/postdischarge-mobile/src/main/resources/mapper/homepage/HomePageMapper.xml

85 lines
3.8 KiB
XML
Raw Normal View History

2024-04-18 16:12:42 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xinelu.mobile.mapper.homepage.HomePageMapper">
<select id="selectManageRouteNode" resultType="com.xinelu.mobile.vo.myfollowup.MyFollowUpVO">
2024-04-19 14:58:07 +08:00
select
2024-04-23 11:14:08 +08:00
pi.id patientId,
pi.patient_name,
spmr.id manageRouteId,
spmr.route_name manageRouteName,
2024-04-19 14:58:07 +08:00
spmrn.id manageRouteNodeId,
2024-04-23 11:14:08 +08:00
spmrn.route_node_name manageRouteNodeName,
2024-04-19 14:58:07 +08:00
spmrn.task_type,
2024-04-18 16:12:42 +08:00
spmrn.route_node_name,
IFNULL( spmrn.route_node_day,0) routeNodeDay,
pi.discharge_time,
2024-04-19 16:12:44 +08:00
pter.id patientTaskExecuteRecordId,
2024-04-22 11:09:45 +08:00
IF(pter.id is NULL,0,1) sign,
2024-04-19 16:12:44 +08:00
CASE
WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN spmrn.phone_id
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
2024-04-18 16:12:42 +08:00
FROM patient_info pi
LEFT JOIN sign_patient_manage_route spmr ON spmr.patient_id = pi.id
LEFT JOIN sign_patient_manage_route_node spmrn ON spmrn.manage_route_id = spmr.id
LEFT JOIN patient_task_execute_record pter ON pter.manage_route_node_id = spmrn.id
<where>
2024-04-23 11:14:08 +08:00
spmrn.task_type in('PHONE_OUTBOUND','QUESTIONNAIRE_SCALE','ARTIFICIAL_FOLLOW_UP')
2024-04-18 16:12:42 +08:00
<if test="residentId != null ">
2024-04-22 17:26:56 +08:00
and pi.resident_id = #{residentId}
2024-04-18 16:12:42 +08:00
</if>
<if test="routeNodeName != null and routeNodeName != ''">
2024-04-22 17:26:56 +08:00
and spmrn.route_node_name = #{routeNodeName}
2024-04-18 16:12:42 +08:00
</if>
</where>
</select>
2024-04-22 17:26:56 +08:00
<select id="selectTaskExecuteRecordByResidentId"
resultType="com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord">
select
CASE
WHEN spmrn.task_type = 'PHONE_OUTBOUND' THEN spmrn.phone_template_name
WHEN spmrn.task_type = 'QUESTIONNAIRE_SCALE' THEN spmrn.questionnaire_name
WHEN spmrn.task_type = 'PROPAGANDA_ARTICLE' THEN spmrn.propaganda_title
WHEN spmrn.task_type = 'TEXT_REMIND' THEN '文字提醒'
WHEN spmrn.task_type = 'ARTIFICIAL_FOLLOW_UP' THEN spmrn.follow_template_name
END AS manageRouteNodeName,
pter.execute_time
from resident_info ri
LEFT JOIN patient_info pi ON ri.id = pi.resident_id
LEFT JOIN patient_task_execute_record pter ON pter.patient_id = pi.id
LEFT JOIN sign_patient_manage_route_node spmrn ON spmrn.id = pter.manage_route_node_id
<where>
ri.del_flag = 0 AND pi.del_flag = 0
<if test="residentId != null ">
and pi.resident_id = #{residentId}
</if>
<if test="nodeExecuteStatus != null and nodeExecuteStatus != ''">
and spmrn.node_execute_status = #{nodeExecuteStatus}
</if>
</where>
ORDER BY pter.execute_time desc
</select>
2024-04-25 17:54:02 +08:00
<select id="satisfactionQuestionnaireByResidentId"
resultType="com.xinelu.mobile.vo.satisfactionquestionnaire.SatisfactionQuestionnaire">
2024-04-29 15:12:23 +08:00
SELECT qi.id templateId,
2024-04-25 17:54:02 +08:00
qi.questionnaire_name,
2024-04-29 15:12:23 +08:00
qi.create_time,
2024-04-29 13:45:42 +08:00
(SELECT id
FROM patient_question_submit_result
WHERE resident_id = #{residentId}
2024-04-29 15:12:23 +08:00
AND question_info_id = qi.id) patientQuestionSubmitResultId,
(SELECT create_time
FROM patient_question_submit_result
WHERE id = patientQuestionSubmitResultId) executeTime
2024-04-29 13:45:42 +08:00
FROM question_info qi
WHERE qi.question_type = #{questionType}
2024-04-29 15:12:23 +08:00
AND qi.questionnaire_status = #{questionnaireStatus}
ORDER BY qi.create_time DESC
2024-04-25 17:54:02 +08:00
</select>
2024-04-18 16:12:42 +08:00
</mapper>