341 lines
13 KiB
XML
341 lines
13 KiB
XML
<?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.applet.mapper.consultationInfo.ConsultationInfoMapper">
|
|
|
|
<resultMap type="ConsultationInfo" id="ConsultationInfoResult">
|
|
<result property="id" column="id"/>
|
|
<result property="patientId" column="patient_id"/>
|
|
<result property="patientName" column="patient_name"/>
|
|
<result property="cardNo" column="card_no"/>
|
|
<result property="phone" column="phone"/>
|
|
<result property="address" column="address"/>
|
|
<result property="doctorId" column="doctor_id"/>
|
|
<result property="doctorName" column="doctor_name"/>
|
|
<result property="consultationType" column="consultation_type"/>
|
|
<result property="status" column="status"/>
|
|
<result property="appointmentDate" column="appointment_date"/>
|
|
<result property="appointmentStartTime" column="appointment_start_time"/>
|
|
<result property="appointmentEndTime" column="appointment_end_time"/>
|
|
<result property="videoUrl" column="video_url"/>
|
|
<result property="problemDescription" column="problem_description"/>
|
|
<result property="situationDescription" column="situation_description"/>
|
|
<result property="problemStatement" column="problem_statement"/>
|
|
<result property="medicalRecord" column="medical_record"/>
|
|
<result property="delFlag" column="del_flag"/>
|
|
<result property="createBy" column="create_by"/>
|
|
<result property="createTime" column="create_time"/>
|
|
<result property="updateBy" column="update_by"/>
|
|
<result property="updateTime" column="update_time"/>
|
|
</resultMap>
|
|
|
|
<sql id="selectConsultationInfoVo">
|
|
select id,
|
|
patient_id,
|
|
patient_name,
|
|
card_no,
|
|
phone,
|
|
address,
|
|
doctor_id,
|
|
doctor_name,
|
|
consultation_type,
|
|
status,
|
|
appointment_date,
|
|
appointment_start_time,
|
|
appointment_end_time,
|
|
video_url,
|
|
problem_description,
|
|
situation_description,
|
|
problem_statement,
|
|
medical_record,
|
|
del_flag,
|
|
create_by,
|
|
create_time,
|
|
update_by,
|
|
update_time
|
|
from consultation_info
|
|
</sql>
|
|
|
|
<select id="selectConsultationInfoList" parameterType="com.xinelu.applet.dto.consultationInfo.ConsultationInfoDTO" resultType="com.xinelu.manage.vo.consultationInfo.ConsultationInfoVO">
|
|
SELECT
|
|
ci.id,
|
|
ci.patient_id,
|
|
ci.patient_name,
|
|
ci.card_no,
|
|
ci.phone,
|
|
ci.address,
|
|
ci.doctor_id,
|
|
ci.doctor_name,
|
|
ci.problem_description,
|
|
ci.create_time,
|
|
(SELECT content FROM chat_record cr WHERE cr.consultation_id = ci.id ORDER BY create_time DESC LIMIT 1) as content,
|
|
(SELECT message_type FROM chat_record cr WHERE cr.consultation_id = ci.id ORDER BY create_time DESC LIMIT 1) as messageType,
|
|
(SELECT COUNT(cr.id) FROM chat_record cr WHERE cr.consultation_id = ci.id AND read_status = '0'
|
|
<if test="patientId != null ">
|
|
and sender_id= ci.doctor_id
|
|
</if>
|
|
<if test="doctorId != null ">
|
|
and sender_id= ci.patient_id
|
|
</if>
|
|
) AS messageCount
|
|
FROM
|
|
consultation_info ci
|
|
<where>
|
|
<if test="patientId != null ">
|
|
and ci.patient_id = #{patientId}
|
|
</if>
|
|
<if test="patientName != null and patientName != ''">
|
|
and ci.patient_name like concat('%', #{patientName}, '%')
|
|
</if>
|
|
<if test="doctorId != null and doctorId != ''">
|
|
and ci.doctor_id = #{doctorId}
|
|
</if>
|
|
<if test="doctorName != null and doctorName != ''">
|
|
and ci.doctor_name like concat('%', #{doctorName}, '%')
|
|
</if>
|
|
<if test="consultationType != null and consultationType != ''">
|
|
and ci.consultation_type = #{consultationType}
|
|
</if>
|
|
<if test="status != null ">
|
|
and ci.status = #{status}
|
|
</if>
|
|
<if test="appointmentDate != null ">
|
|
and ci.appointment_date = #{appointmentDate}
|
|
</if>
|
|
<if test="appointmentStartTime != null ">
|
|
and ci.appointment_start_time = #{appointmentStartTime}
|
|
</if>
|
|
<if test="appointmentEndTime != null ">
|
|
and ci.appointment_end_time = #{appointmentEndTime}
|
|
</if>
|
|
</where>
|
|
ORDER BY ci.create_time DESC
|
|
</select>
|
|
|
|
<select id="selectConsultationInfoById" parameterType="Long" resultType="com.xinelu.applet.dto.consultationInfo.ConsultationInfoDTO">
|
|
select id,
|
|
patient_id,
|
|
patient_name,
|
|
card_no,
|
|
phone,
|
|
address,
|
|
doctor_id,
|
|
doctor_name,
|
|
consultation_type,
|
|
status,
|
|
appointment_date,
|
|
appointment_start_time,
|
|
appointment_end_time,
|
|
video_url,
|
|
problem_description,
|
|
situation_description,
|
|
problem_statement,
|
|
medical_record,
|
|
del_flag,
|
|
create_by,
|
|
create_time,
|
|
update_by,
|
|
update_time
|
|
from consultation_info
|
|
where id = #{id}
|
|
</select>
|
|
|
|
<select id="getConsultationFiles" parameterType="Long" resultType="string">
|
|
SELECT file_url FROM consultation_file WHERE del_flag='0' AND consultation_id=#{id}
|
|
</select>
|
|
|
|
<insert id="insertConsultationInfo" parameterType="ConsultationInfo" useGeneratedKeys="true" keyProperty="id">
|
|
insert into consultation_info
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
<if test="id != null">id,
|
|
</if>
|
|
<if test="patientId != null">patient_id,
|
|
</if>
|
|
<if test="patientName != null">patient_name,
|
|
</if>
|
|
<if test="cardNo != null">card_no,
|
|
</if>
|
|
<if test="phone != null">phone,
|
|
</if>
|
|
<if test="address != null">address,
|
|
</if>
|
|
<if test="doctorId != null">doctor_id,
|
|
</if>
|
|
<if test="doctorName != null">doctor_name,
|
|
</if>
|
|
<if test="consultationType != null">consultation_type,
|
|
</if>
|
|
<if test="status != null">status,
|
|
</if>
|
|
<if test="appointmentDate != null">appointment_date,
|
|
</if>
|
|
<if test="appointmentStartTime != null">appointment_start_time,
|
|
</if>
|
|
<if test="appointmentEndTime != null">appointment_end_time,
|
|
</if>
|
|
<if test="videoUrl != null">video_url,
|
|
</if>
|
|
<if test="problemDescription != null">problem_description,
|
|
</if>
|
|
<if test="situationDescription != null">situation_description,
|
|
</if>
|
|
<if test="problemStatement != null">problem_statement,
|
|
</if>
|
|
<if test="medicalRecord != null">medical_record,
|
|
</if>
|
|
<if test="delFlag != null">del_flag,
|
|
</if>
|
|
<if test="createBy != null">create_by,
|
|
</if>
|
|
<if test="createTime != null">create_time,
|
|
</if>
|
|
<if test="updateBy != null">update_by,
|
|
</if>
|
|
<if test="updateTime != null">update_time,
|
|
</if>
|
|
</trim>
|
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
<if test="id != null">#{id},
|
|
</if>
|
|
<if test="patientId != null">#{patientId},
|
|
</if>
|
|
<if test="patientName != null">#{patientName},
|
|
</if>
|
|
<if test="cardNo != null">#{cardNo},
|
|
</if>
|
|
<if test="phone != null">#{phone},
|
|
</if>
|
|
<if test="address != null">#{address},
|
|
</if>
|
|
<if test="doctorId != null">#{doctorId},
|
|
</if>
|
|
<if test="doctorName != null">#{doctorName},
|
|
</if>
|
|
<if test="consultationType != null">#{consultationType},
|
|
</if>
|
|
<if test="status != null">#{status},
|
|
</if>
|
|
<if test="appointmentDate != null">#{appointmentDate},
|
|
</if>
|
|
<if test="appointmentStartTime != null">#{appointmentStartTime},
|
|
</if>
|
|
<if test="appointmentEndTime != null">#{appointmentEndTime},
|
|
</if>
|
|
<if test="videoUrl != null">#{videoUrl},
|
|
</if>
|
|
<if test="problemDescription != null">#{problemDescription},
|
|
</if>
|
|
<if test="situationDescription != null">#{situationDescription},
|
|
</if>
|
|
<if test="problemStatement != null">#{problemStatement},
|
|
</if>
|
|
<if test="medicalRecord != null">#{medicalRecord},
|
|
</if>
|
|
<if test="delFlag != null">#{delFlag},
|
|
</if>
|
|
<if test="createBy != null">#{createBy},
|
|
</if>
|
|
<if test="createTime != null">#{createTime},
|
|
</if>
|
|
<if test="updateBy != null">#{updateBy},
|
|
</if>
|
|
<if test="updateTime != null">#{updateTime},
|
|
</if>
|
|
</trim>
|
|
</insert>
|
|
|
|
<insert id="insertConsultationFile">
|
|
insert into consultation_file(consultation_id, file_url) values
|
|
<foreach item="item" index="index" collection="fileUrls" separator=",">
|
|
(#{consultationId},#{item})
|
|
</foreach>
|
|
</insert>
|
|
|
|
<update id="updateConsultationInfo" parameterType="ConsultationInfo">
|
|
update consultation_info
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
<if test="patientId != null">patient_id =
|
|
#{patientId},
|
|
</if>
|
|
<if test="patientName != null">patient_name =
|
|
#{patientName},
|
|
</if>
|
|
<if test="cardNo != null">card_no =
|
|
#{cardNo},
|
|
</if>
|
|
<if test="phone != null">phone =
|
|
#{phone},
|
|
</if>
|
|
<if test="address != null">address =
|
|
#{address},
|
|
</if>
|
|
<if test="doctorId != null">doctor_id =
|
|
#{doctorId},
|
|
</if>
|
|
<if test="doctorName != null">doctor_name =
|
|
#{doctorName},
|
|
</if>
|
|
<if test="consultationType != null">consultation_type =
|
|
#{consultationType},
|
|
</if>
|
|
<if test="status != null">status =
|
|
#{status},
|
|
</if>
|
|
<if test="appointmentDate != null">appointment_date =
|
|
#{appointmentDate},
|
|
</if>
|
|
<if test="appointmentStartTime != null">appointment_start_time =
|
|
#{appointmentStartTime},
|
|
</if>
|
|
<if test="appointmentEndTime != null">appointment_end_time =
|
|
#{appointmentEndTime},
|
|
</if>
|
|
<if test="videoUrl != null">video_url =
|
|
#{videoUrl},
|
|
</if>
|
|
<if test="problemDescription != null">problem_description =
|
|
#{problemDescription},
|
|
</if>
|
|
<if test="situationDescription != null">situation_description =
|
|
#{situationDescription},
|
|
</if>
|
|
<if test="problemStatement != null">problem_statement =
|
|
#{problemStatement},
|
|
</if>
|
|
<if test="medicalRecord != null">medical_record =
|
|
#{medicalRecord},
|
|
</if>
|
|
<if test="delFlag != null">del_flag =
|
|
#{delFlag},
|
|
</if>
|
|
<if test="createBy != null">create_by =
|
|
#{createBy},
|
|
</if>
|
|
<if test="createTime != null">create_time =
|
|
#{createTime},
|
|
</if>
|
|
<if test="updateBy != null">update_by =
|
|
#{updateBy},
|
|
</if>
|
|
<if test="updateTime != null">update_time =
|
|
#{updateTime},
|
|
</if>
|
|
</trim>
|
|
where id = #{id}
|
|
</update>
|
|
|
|
<delete id="deleteConsultationInfoById" parameterType="Long">
|
|
delete
|
|
from consultation_info
|
|
where id = #{id}
|
|
</delete>
|
|
|
|
<delete id="deleteConsultationInfoByIds" parameterType="String">
|
|
delete from consultation_info where id in
|
|
<foreach item="id" collection="array" open="(" separator="," close=")">
|
|
#{id}
|
|
</foreach>
|
|
</delete>
|
|
</mapper>
|