完成93需求
This commit is contained in:
@@ -75,7 +75,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
s.surgery_no,
|
||||
s.patient_id,
|
||||
p.name as patient_name,
|
||||
CASE p.gender_enum WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '未知' END as patient_gender,
|
||||
CASE p.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END as patient_gender,
|
||||
EXTRACT(YEAR FROM AGE(p.birth_date)) as patient_age,
|
||||
s.encounter_id,
|
||||
e.bus_no as encounter_no,
|
||||
@@ -194,7 +194,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<where>
|
||||
s.delete_flag = '0'
|
||||
<if test="ew.sqlSegment != null and ew.sqlSegment != ''">
|
||||
AND ${ew.sqlSegment.replace('tenant_id', 's.tenant_id').replace('create_time', 's.create_time').replace('surgery_no', 's.surgery_no').replace('surgery_name', 's.surgery_name').replace('patient_name', 'p.name').replace('main_surgeon_name', 's.main_surgeon_name').replace('anesthetist_name', 's.anesthetist_name').replace('org_name', 'o.name')}
|
||||
<![CDATA[
|
||||
AND ${ew.sqlSegment.replace('tenant_id', 's.tenant_id').replace('create_time', 's.create_time').replace('surgery_no', 's.surgery_no').replace('surgery_name', 's.surgery_name').replace('patient_name', 'p.name').replace('main_surgeon_name', 's.main_surgeon_name').replace('anesthetist_name', 's.anesthetist_name').replace('org_name', 'o.name').replace('status_enum', 's.status_enum').replace('planned_time', 's.planned_time')}
|
||||
]]>
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
@@ -0,0 +1,146 @@
|
||||
<?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.openhis.web.clinicalmanage.mapper.SurgicalScheduleAppMapper">
|
||||
<!-- 分页查询手术安排-->
|
||||
<select id="getSurgerySchedulePage" resultType="com.openhis.web.clinicalmanage.dto.OpScheduleDto">
|
||||
SELECT
|
||||
os.schedule_id,
|
||||
os.tenant_id,
|
||||
st.tenant_name AS orgName,
|
||||
os.apply_id,
|
||||
os.patient_id,
|
||||
os.visit_id,
|
||||
os.oper_code,
|
||||
os.oper_name,
|
||||
os.surgery_nature,
|
||||
os.anes_method,
|
||||
os.schedule_date,
|
||||
os.sequence_no,
|
||||
os.room_code,
|
||||
os.table_no,
|
||||
su.nick_name AS createByName,
|
||||
os.create_time,
|
||||
os.update_time,
|
||||
ap.name AS patient_name,
|
||||
CASE ap.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END AS gender,
|
||||
EXTRACT(YEAR FROM AGE(ap.birth_date)) AS age,
|
||||
cs.apply_dept_id,
|
||||
cs.apply_dept_name,
|
||||
cs.org_id,
|
||||
o.name AS org_name,
|
||||
cs.main_surgeon_name AS surgeon_name
|
||||
FROM op_schedule os
|
||||
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
||||
LEFT JOIN cli_surgery cs ON os.patient_id = cs.patient_id
|
||||
LEFT JOIN adm_organization o ON cs.org_id = o.id
|
||||
LEFT JOIN sys_tenant st ON st.id = os.tenant_id
|
||||
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
||||
<where>
|
||||
<if test="dto.tenantId != null">
|
||||
AND os.tenant_id = #{dto.tenantId}
|
||||
</if>
|
||||
<if test="dto.patientName != null and dto.patientName != ''">
|
||||
AND ap.name LIKE CONCAT('%', #{dto.patientName}, '%')
|
||||
</if>
|
||||
<if test="dto.applyDeptId != null and dto.applyDeptId != ''">
|
||||
AND cs.apply_dept_id = #{dto.applyDeptId}
|
||||
</if>
|
||||
<if test="dto.scheduleDate != null">
|
||||
AND os.schedule_date = #{dto.scheduleDate}
|
||||
</if>
|
||||
AND os.delete_flag = '0'
|
||||
</where>
|
||||
ORDER BY os.create_time DESC
|
||||
</select>
|
||||
<!-- 根据ID查询手术安排详情-->
|
||||
<select id="getSurgeryScheduleDetail" resultType="com.openhis.web.clinicalmanage.dto.OpScheduleDto">
|
||||
SELECT
|
||||
os.*,
|
||||
os.oper_code AS surgeryNo,
|
||||
ap.name AS patient_name,
|
||||
CASE ap.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END AS gender,
|
||||
EXTRACT(YEAR FROM AGE(ap.birth_date)) AS age,
|
||||
cs.apply_dept_id,
|
||||
cs.apply_dept_name,
|
||||
cs.org_id,
|
||||
o.name AS org_name,
|
||||
cs.main_surgeon_name AS surgeon_name,
|
||||
cs.apply_doctor_name AS apply_doctor_name,
|
||||
drf.create_time AS apply_time,
|
||||
os.surgery_nature AS surgeryType
|
||||
FROM op_schedule os
|
||||
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
||||
LEFT JOIN cli_surgery cs ON os.patient_id = cs.patient_id
|
||||
LEFT JOIN adm_organization o ON cs.org_id = o.id
|
||||
LEFT JOIN doc_request_form drf ON drf.prescription_no=cs.surgery_no
|
||||
WHERE os.schedule_id = #{scheduleId}
|
||||
</select>
|
||||
<!-- 新增手术安排-->
|
||||
<insert id="addSurgerySchedule" useGeneratedKeys="true" keyProperty="scheduleId">
|
||||
insert into op_schedule(patient_id, doctor_id, schedule_time, schedule_status, create_time, update_time)
|
||||
values(#{patientId}, #{doctorId}, #{scheduleTime}, #{scheduleStatus}, #{createTime}, #{updateTime})
|
||||
</insert>
|
||||
<!-- 修改手术安排-->
|
||||
<update id="updateSurgerySchedule">
|
||||
update op_schedule set patient_id = #{patientId}, doctor_id = #{doctorId}, schedule_time = #{scheduleTime},
|
||||
schedule_status = #{scheduleStatus}, create_time = #{createTime}, update_time = #{updateTime}
|
||||
where schedule_id = #{scheduleId}
|
||||
</update>
|
||||
|
||||
<!-- 查询所有符合条件的手术安排列表(用于导出) -->
|
||||
<select id="getSurgeryScheduleList" resultType="com.openhis.web.clinicalmanage.dto.OpScheduleDto">
|
||||
SELECT
|
||||
os.schedule_id,
|
||||
os.tenant_id,
|
||||
st.tenant_name AS orgName,
|
||||
os.apply_id,
|
||||
os.patient_id,
|
||||
os.visit_id,
|
||||
os.oper_code,
|
||||
os.oper_name,
|
||||
os.surgery_nature,
|
||||
os.anes_method,
|
||||
os.schedule_date,
|
||||
os.sequence_no,
|
||||
os.room_code,
|
||||
os.table_no,
|
||||
su.nick_name AS createByName,
|
||||
os.create_time,
|
||||
os.update_time,
|
||||
ap.name AS patient_name,
|
||||
CASE ap.gender_enum WHEN 0 THEN '男' WHEN 1 THEN '女' ELSE '未知' END AS gender,
|
||||
EXTRACT(YEAR FROM AGE(ap.birth_date)) AS age,
|
||||
cs.apply_dept_id,
|
||||
cs.apply_dept_name,
|
||||
cs.org_id,
|
||||
o.name AS org_name,
|
||||
cs.main_surgeon_name AS surgeon_name
|
||||
FROM op_schedule os
|
||||
LEFT JOIN adm_patient ap ON os.patient_id = ap.id
|
||||
LEFT JOIN cli_surgery cs ON os.patient_id = cs.patient_id
|
||||
LEFT JOIN adm_organization o ON cs.org_id = o.id
|
||||
LEFT JOIN sys_tenant st ON st.id = os.tenant_id
|
||||
LEFT JOIN sys_user su ON su.user_id = os.creator_id
|
||||
<where>
|
||||
AND os.delete_flag = '0'
|
||||
<if test="dto.patientId != null"> AND os.patient_id = #{dto.patientId}</if>
|
||||
<if test="dto.visitId != null"> AND os.visit_id = #{dto.visitId}</if>
|
||||
<if test="dto.applyId != null"> AND os.apply_id = #{dto.applyId}</if>
|
||||
<if test="dto.operCode != null and dto.operCode != ''"> AND os.oper_code = #{dto.operCode}</if>
|
||||
<if test="dto.operName != null and dto.operName != ''"> AND os.oper_name LIKE CONCAT('%', #{dto.operName}, '%')</if>
|
||||
<if test="dto.scheduleDate != null"> AND os.schedule_date = #{dto.scheduleDate}</if>
|
||||
<if test="dto.orgId != null and dto.orgId != ''"> AND cs.org_id = #{dto.orgId}</if>
|
||||
<if test="dto.applyDeptId != null and dto.applyDeptId != ''"> AND cs.apply_dept_id = #{dto.applyDeptId}</if>
|
||||
<if test="dto.patientName != null and dto.patientName != ''"> AND ap.name LIKE CONCAT('%', #{dto.patientName}, '%')</if>
|
||||
</where>
|
||||
ORDER BY os.create_time DESC
|
||||
</select>
|
||||
<!-- 查询时间段内该手术室是否被占用-->
|
||||
<select id="isScheduleConflict" resultType="java.lang.Boolean">
|
||||
SELECT COUNT(*) > 0 FROM op_schedule WHERE room_code = #{surgeryRoomId}
|
||||
AND entry_time >= #{startTime}
|
||||
AND end_time < #{endTime}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -47,4 +47,62 @@
|
||||
AND activity_category_code = #{activityCategoryCode}
|
||||
</select>
|
||||
|
||||
<!-- 结果映射 -->
|
||||
<resultMap id="RequestFormPageDtoMap" type="com.openhis.web.regdoctorstation.dto.RequestFormPageDto">
|
||||
<result column="surgery_no" property="surgeryNo"/>
|
||||
<result column="desc_json" property="descJson" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
|
||||
<result column="name" property="name"/>
|
||||
<result column="gender_enum" property="gender"/>
|
||||
<result column="birth_date" property="birthDay"/>
|
||||
<result column="main_surgeon_id" property="mainSurgeonId"/>
|
||||
<result column="main_surgeon_name" property="mainSurgeonName"/>
|
||||
<result column="surgery_type" property="surgeryType"/>
|
||||
<result column="apply_time" property="applyTime"/>
|
||||
<result column="apply_id" property="applyId"/>
|
||||
<result column="apply_dept_id" property="applyDeptId"/>
|
||||
<result column="apply_dept_name" property="applyDeptName"/>
|
||||
<result column="encounter_id" property="encounterId"/>
|
||||
<result column="surgery_type_enum" property="surgeryTypeEnum"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 分页查询申请单 -->
|
||||
<select id="getRequestFormPage" resultMap="RequestFormPageDtoMap">
|
||||
SELECT
|
||||
drf.prescription_no AS surgery_no,
|
||||
drf.desc_json,
|
||||
drf.create_by AS apply_doctor_name,
|
||||
drf.create_time AS apply_time,
|
||||
drf.id AS apply_id,
|
||||
ae.id AS encounter_id,
|
||||
ap.id AS patient_id,
|
||||
ap.name,
|
||||
ap.gender_enum,
|
||||
ap.birth_date,
|
||||
cs.main_surgeon_id,
|
||||
cs.surgery_type_enum AS surgery_type,
|
||||
cs.main_surgeon_name,
|
||||
cs.apply_dept_id,
|
||||
cs.apply_dept_name,
|
||||
cs.surgery_type_enum
|
||||
FROM doc_request_form drf
|
||||
LEFT JOIN cli_surgery cs ON cs.surgery_no = drf.prescription_no
|
||||
LEFT JOIN adm_patient ap ON ap.id = cs.patient_id
|
||||
LEFT JOIN adm_encounter ae ON ae.id = cs.encounter_id
|
||||
<where>
|
||||
<if test="requestFormDto.applyTimeStart != null">
|
||||
AND drf.create_time >= #{requestFormDto.applyTimeStart}
|
||||
</if>
|
||||
<if test="requestFormDto.applyTimeEnd != null">
|
||||
AND drf.create_time <= #{requestFormDto.applyTimeEnd}
|
||||
</if>
|
||||
<if test="requestFormDto.mainDoctorId != null">
|
||||
AND cs.main_surgeon_id = #{requestFormDto.mainDoctorId}
|
||||
</if>
|
||||
<if test="requestFormDto.applyDeptId != null">
|
||||
AND cs.apply_dept_id = #{requestFormDto.applyDeptId}
|
||||
</if>
|
||||
AND drf.delete_flag = '0'
|
||||
</where>
|
||||
ORDER BY drf.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user