From b28126cc4331998f4debc0e27081a44f81009b3c Mon Sep 17 00:00:00 2001 From: sinake <sinake1@qq.com> Date: 星期一, 15 九月 2025 10:55:41 +0800 Subject: [PATCH] 出院过率条件改成inhospstate=1 --- smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml | 365 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 314 insertions(+), 51 deletions(-) diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml index 1282926..351aab6 100644 --- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml @@ -47,7 +47,9 @@ <result property="patname" column="patname"/> <result property="patno" column="patno"/> <result property="inhospstate" column="inhospstate"/> - <result property="checkFlag" column="check_flag"/> + <result property="deptcheckFlag" column="deptcheck_flag"/> + <result property="wardcheckFlag" column="wardcheck_flag"/> + <result property="diagcheckFlag" column="diagcheck_flag"/> <result property="age" column="age"/> <result property="sex" column="sex"/> <result property="telcode" column="telcode"/> @@ -60,11 +62,30 @@ <result property="operator" column="operator"/> <result property="operatorId" column="operator_id"/> <result property="remark" column="remark"/> + <result property="tagname" column="tagname"/> + <result property="fuflag" column="fuflag"/> + <result property="fudate" column="fudate"/> + <result property="fuperiod" column="fuperiod"/> + <result property="futypecode" column="futypecode"/> + <result property="futypedesc" column="futypedesc"/> + <result property="fuadvice" column="fuadvice"/> + <result property="fuspecialadvice" column="fuspecialadvice"/> + <result property="managementDoctor" column="management_doctor"/> + <result property="managementDoctorCode" column="management_doctor_code"/> </resultMap> <sql id="selectPatMedInhospVo"> select inhospid, patname, + fuflag, + management_doctor, + management_doctor_code, + fudate, + fuperiod, + futypecode, + futypedesc, + fuadvice, + fuspecialadvice, remark, guid, operator, @@ -73,7 +94,9 @@ out_way_name, nurse_id, nurse_name, - check_flag, + deptcheck_flag, + wardcheck_flag, + diagcheck_flag, inhospstate, patno, long_task_reason, @@ -122,17 +145,17 @@ select CONCAT( a.age, a.age_unit ) AS age, a.telcode as telcode, a.sex, - b.guid, - b.operator, - b.remark, - b.operator_id, b.inhospid, b.nurse_id, b.nurse_name, b.patname, + b.management_doctor, + b.management_doctor_code, b.out_way_id, b.out_way_name, - b.check_flag, + b.deptcheck_flag, + b.wardcheck_flag, + b.diagcheck_flag, b.inhospstate, b.patno, b.inhospno, @@ -173,28 +196,36 @@ b.deptid, b.leaveldeptid, b.long_task_reason, - b.schemetime + b.schemetime, + b.fuflag, + b.fudate, + b.fuperiod, + b.futypecode, + b.futypedesc, + b.fuadvice, + b.fuspecialadvice, + a.idcardno FROM - pat_med_inhosp b, - pat_archive a + pat_med_inhosp b + JOIN + pat_archive a ON a.id = b.patid + LEFT JOIN + pat_archivetag c ON c.patid = a.id AND (c.del_flag = 0 OR c.del_flag IS NULL) <where> - a.del_flag=0 - and b.del_flag=0 - and a.id = b.patid - AND a.idcardno != '' - <if test="startOutHospTime != null"> - AND date_format(b.endtime,'%y%m%d') >= date_format(#{startOutHospTime},'%y%m%d') + a.del_flag = 0 + AND b.del_flag = 0 + AND a.idcardno IS NOT NULL + <if test="startOutHospTime != null ">and date_format(b.endtime,'%y%m%d') >= + date_format(#{startOutHospTime},'%y%m%d') </if> - <if test="endOutHospTime != null"> - AND date_format(b.endtime,'%y%m%d') <= date_format(#{endOutHospTime},'%y%m%d') + <if test="endOutHospTime != null ">and date_format(b.endtime,'%y%m%d') <= + date_format(#{endOutHospTime},'%y%m%d') </if> - - - <if test="startInHospTime != null"> - AND date_format(b.starttime,'%y%m%d') >= date_format(#{startInHospTime},'%y%m%d') + <if test="startInHospTime != null ">and date_format(b.starttime,'%y%m%d') >= + date_format(#{startInHospTime},'%y%m%d') </if> - <if test="endInHospTime != null"> - AND date_format(b.starttime,'%y%m%d') <= date_format(#{endInHospTime},'%y%m%d') + <if test="endInHospTime != null ">and date_format(b.starttime,'%y%m%d') <= + date_format(#{endInHospTime},'%y%m%d') </if> <if test="hospitalname != null and hospitalname != ''">and hospitalname like concat('%', #{hospitalname}, '%') @@ -204,25 +235,35 @@ concat('%', #{hospitaldistrictname}, '%') </if> <if test="endtime != null ">and b.endtime = #{endtime}</if> + <if test="managementDoctor != null ">and b.management_doctor = #{managementDoctor}</if> + <if test="managementDoctorCode != null ">and b.management_doctor_code = #{managementDoctorCode}</if> <if test="inhospno != null ">and b.inhospno = #{inhospno}</if> + <if test="fuflag != null ">and b.fuflag = #{fuflag}</if> + <if test="orgid != null ">and b.orgid = #{orgid}</if> <if test="serialnum != null ">and b.serialnum = #{serialnum}</if> <if test="endtime != null ">and b.endtime = #{endtime}</if> <if test="patno != null ">and b.patno = #{patno}</if> <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if> - <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if> - <if test="checkFlag != null ">and b.check_flag = #{checkFlag}</if> + <if test="nurseName != null and nurseName != ''">and b.nurse_name = #{nurseName}</if> + <if test="deptcheckFlag != null ">and b.deptcheck_flag = #{deptcheckFlag}</if> + <if test="wardcheckFlag != null ">and b.wardcheck_flag = #{wardcheckFlag}</if> + <if test="diagcheckFlag != null ">and b.diagcheck_flag = #{diagcheckFlag}</if> <if test="cry != null and cry == 0 ">and b.endtime is null</if> - <if test="cry != null and cry == 1 ">and b.endtime is not null</if> + <if test="cry != null and cry == 1 ">and b.inhospstate=1</if> <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if> <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if> <if test="outWayId != null ">and b.out_way_id = #{outWayId}</if> <if test="outWayName != null ">and b.out_way_name = #{outWayName}</if> + <if test="leaveldeptcode != null ">and b.leaveldeptcode = #{leaveldeptcode}</if> <if test="leavediagname != null and leavediagname != ''">and b.leavediagname like concat('%', #{leavediagname}, '%') </if> <if test="drname != null and drname != ''">and b.drname like concat('%', #{drname}, '%')</if> <if test="leaveldeptname != null and leaveldeptname != ''">and b.leaveldeptname like concat('%', #{leaveldeptname}, '%') + </if> + <if test="deptname != null and deptname != ''">and b.deptname like concat('%', + #{deptname}, '%') </if> <if test="patid != null and patid != ''">and a.id =#{patid} </if> @@ -245,23 +286,34 @@ </foreach> </if> </where> - order by b.inhospid desc + GROUP BY + b.inhospid, + a.age, + a.age_unit, + a.telcode, + a.id, + a.sex + <if test="cry==1"> + order by b.endtime desc + </if> + <if test="cry==0"> + order by b.starttime desc + </if> </select> - <select id="selectPatMedInhospListByCondition" parameterType="com.smartor.domain.PatMedInhospVO" - resultMap="PatMedInhospResult"> - select CONCAT( a.age, a.age_unit ) AS age, - a.telcode as telcode, + <select id="selectPatMedInhospListBySerialnum" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult"> + select b.inhospid, - b.patname, - b.operator_id, - b.operator, - b.remark, - b.out_way_id, - b.out_way_name, b.nurse_id, b.nurse_name, - b.check_flag, + b.patname, + b.management_doctor, + b.management_doctor_code, + b.out_way_id, + b.out_way_name, + b.deptcheck_flag, + b.wardcheck_flag, + b.diagcheck_flag, b.inhospstate, b.patno, b.inhospno, @@ -302,6 +354,89 @@ b.deptid, b.leaveldeptid, b.long_task_reason, + b.schemetime, + b.fuflag, + b.fudate, + b.fuperiod, + b.futypecode, + b.futypedesc, + b.fuadvice, + b.fuspecialadvice + FROM + pat_med_inhosp b + + <where> + <if test="serialnum != null ">and b.serialnum = #{serialnum}</if> + + </where> + order by b.inhospid desc + </select> + + <select id="selectPatMedInhospListByCondition" parameterType="com.smartor.domain.PatMedInhospVO" + resultMap="PatMedInhospResult"> + select CONCAT( a.age, a.age_unit ) AS age, + a.telcode as telcode, + b.inhospid, + b.management_doctor, + b.management_doctor_code, + b.patname, + b.operator_id, + b.operator, + b.remark, + b.out_way_id, + b.out_way_name, + b.nurse_id, + b.nurse_name, + b.deptcheckFlag, + b.diagcheckFlag, + b.wardcheckFlag, + b.inhospstate, + b.patno, + b.inhospno, + b.serialnum, + b.hospitalname, + b.hospitalcode, + b.hospitaldistrictcode, + b.hospitaldistrictname, + b.icd10code, + b.diagname, + b.starttime, + b.endtime, + b.deptcode, + b.deptname, + b.roomno, + b.bed_no, + b.orgid, + b.del_flag, + b.update_by, + b.update_time, + b.create_by, + b.create_time, + b.isupload, + b.upload_time, + b.patid, + b.leavediagname, + b.leaveicd10code, + b.drcode, + b.drname, + b.schemestatus, + b.generalschemestatus, + b.leaveldeptcode, + b.leaveldeptname, + b.hospitaldistrictid, + b.leavehospitaldistrictcode, + b.leavehospitaldistrictname, + b.leavehospitaldistrictid, + b.deptid, + b.leaveldeptid, + b.long_task_reason, + b.fuflag, + b.fudate, + b.fuperiod, + b.futypecode, + b.futypedesc, + b.fuadvice, + b.fuspecialadvice b.schemetime FROM pat_med_inhosp b, @@ -314,15 +449,20 @@ <if test="hospitalname != null and hospitalname != ''">and hospitalname like concat('%', #{hospitalname}, '%') </if> + <if test="managementDoctor != null ">and b.management_doctor = #{managementDoctor}</if> + <if test="managementDoctorCode != null ">and b.management_doctor_code = #{managementDoctorCode}</if> <if test="patname != null and patname != ''">and patname like concat('%', #{patname}, '%')</if> <if test="hospitaldistrictname != null and hospitaldistrictname != ''">and hospitaldistrictname like concat('%', #{hospitaldistrictname}, '%') </if> <if test="endtime != null ">and b.endtime = #{endtime}</if> + <if test="fuflag != null ">and b.fuflag = #{fuflag}</if> <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if> <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if> <if test="patno != null ">and b.patno = #{patno}</if> - <if test="checkFlag != null ">and b.check_flag = #{checkFlag}</if> + <if test="diagcheckFlag != null ">and b.diagcheck_flag = #{diagcheckFlag}</if> + <if test="deptcheckFlag != null ">and b.deptcheck_flag = #{deptcheckFlag}</if> + <if test="wardcheckFlag != null ">and b.wardcheck_flag = #{wardcheckFlag}</if> <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if> <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if> <if test="leavediagname != null and leavediagname != ''">and b.leavediagname like concat('%', @@ -348,10 +488,19 @@ </select> + <select id="getTagnameBypatid" parameterType="Long" resultType="string"> + SELECT GROUP_CONCAT(d.tagname, ', ') + FROM pat_archivetag d + WHERE d.patid = #{patid} + AND d.del_flag = 0 + </select> + + <select id="selectPatMedInhospByInhospid" parameterType="Long" resultMap="PatMedInhospResult"> <include refid="selectPatMedInhospVo"/> where inhospid = #{inhospid} </select> + <insert id="insertPatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp" useGeneratedKeys="true" keyProperty="inhospid"> @@ -397,7 +546,9 @@ <if test="patname!= null">patname,</if> <if test="patno != null">patno,</if> <if test="inhospstate != null">inhospstate,</if> - <if test="checkFlag != null">check_flag,</if> + <if test="deptcheckFlag != null">deptcheck_flag,</if> + <if test="wardcheckFlag != null">wardcheck_flag,</if> + <if test="diagcheckFlag != null">diagcheck_flag,</if> <if test="longTaskReason != null">long_task_reason,</if> <if test="nurseId != null ">nurse_id,</if> <if test="nurseName != null ">nurse_name,</if> @@ -408,6 +559,15 @@ <if test="operatorId != null ">operator_id,</if> <if test="inhospno != null ">inhospno,</if> <if test="remark != null ">remark,</if> + <if test="fuflag != null ">fuflag,</if> + <if test="fudate != null ">fudate,</if> + <if test="fuperiod != null ">fuperiod,</if> + <if test="futypecode != null ">futypecode,</if> + <if test="futypedesc != null ">futypedesc,</if> + <if test="fuadvice != null ">fuadvice,</if> + <if test="fuspecialadvice != null ">fuspecialadvice,</if> + <if test="managementDoctor != null ">management_doctor,</if> + <if test="managementDoctorCode != null ">management_doctor_code,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="serialnum != null">#{serialnum},</if> @@ -450,7 +610,9 @@ <if test="patname!= null">#{patname},</if> <if test="patno != null">#{patno},</if> <if test="inhospstate != null">#{inhospstate},</if> - <if test="checkFlag != null">#{checkFlag},</if> + <if test="deptcheckFlag != null">#{deptcheckFlag},</if> + <if test="wardcheckFlag != null">#{wardcheckFlag},</if> + <if test="diagcheckFlag != null">#{diagcheckFlag},</if> <if test="longTaskReason != null">#{longTaskReason},</if> <if test="nurseId != null ">#{nurseId},</if> <if test="nurseName != null ">#{nurseName},</if> @@ -461,8 +623,60 @@ <if test="operatorId != null ">#{operatorId},</if> <if test="inhospno != null ">#{inhospno},</if> <if test="remark != null ">#{remark},</if> + <if test="fuflag != null ">#{fuflag},</if> + <if test="fudate != null ">#{fudate},</if> + <if test="fuperiod != null ">#{fuperiod},</if> + <if test="futypecode != null ">#{futypecode},</if> + <if test="futypedesc != null ">#{futypedesc},</if> + <if test="fuadvice != null ">#{fuadvice},</if> + <if test="fuspecialadvice != null ">#{fuspecialadvice},</if> + <if test="managementDoctor != null ">#{managementDoctor},</if> + <if test="managementDoctorCode != null ">#{managementDoctorCode},</if> </trim> </insert> + + + <insert id="insertPatMedInhospBatch" parameterType="java.util.List" useGeneratedKeys="true" + keyProperty="item.inhospid"> + insert into pat_med_inhosp ( + serialnum, hospitalname, hospitalcode, hospitaldistrictcode, hospitaldistrictname, + icd10code, diagname, starttime, endtime, deptcode, deptname, roomno, bed_no, + orgid, del_flag, update_by, update_time, create_by, create_time, isupload, + upload_time, patid, leavediagname, leaveicd10code, drcode, drname, + schemestatus, generalschemestatus, leaveldeptcode, leaveldeptname, hospitaldistrictid, + leavehospitaldistrictcode, leavehospitaldistrictname, leavehospitaldistrictid, + deptid, leaveldeptid, schemetime, patname, patno, inhospstate, + deptcheck_flag, wardcheck_flag, diagcheck_flag, long_task_reason, + nurse_id, nurse_name, out_way_id, out_way_name, guid, + operator, operator_id, inhospno, remark, + fuflag, fudate, fuperiod, futypecode, futypedesc, fuadvice, fuspecialadvice, management_doctor, + management_doctor_doctor + ) + values + <foreach collection="list" item="item" separator=","> + ( + #{item.serialnum}, #{item.hospitalname}, #{item.hospitalcode}, #{item.hospitaldistrictcode}, + #{item.hospitaldistrictname}, + #{item.icd10code}, #{item.diagname}, #{item.starttime}, #{item.endtime}, #{item.deptcode}, #{item.deptname}, + #{item.roomno}, #{item.bedNo}, + #{item.orgid}, #{item.delFlag}, #{item.updateBy}, #{item.updateTime}, #{item.createBy}, #{item.createTime}, + #{item.isupload}, + #{item.uploadTime}, #{item.patid}, #{item.leavediagname}, #{item.leaveicd10code}, #{item.drcode}, + #{item.drname}, + #{item.schemestatus}, #{item.generalschemestatus}, #{item.leaveldeptcode}, #{item.leaveldeptname}, + #{item.hospitaldistrictid}, + #{item.leavehospitaldistrictcode}, #{item.leavehospitaldistrictname}, #{item.leavehospitaldistrictid}, + #{item.deptid}, #{item.leaveldeptid}, #{item.schemetime}, #{item.patname}, #{item.patno}, + #{item.inhospstate}, + #{item.deptcheckFlag}, #{item.wardcheckFlag}, #{item.diagcheckFlag}, #{item.longTaskReason}, + #{item.nurseId}, #{item.nurseName}, #{item.outWayId}, #{item.outWayName}, #{item.guid}, + #{item.operator}, #{item.operatorId}, #{item.inhospno}, #{item.remark}, + #{item.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice}, + #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode} + ) + </foreach> + </insert> + <update id="updatePatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp"> update pat_med_inhosp @@ -507,7 +721,9 @@ <if test="patname!= null">patname = #{patname},</if> <if test="patno != null">patno = #{patno},</if> <if test="inhospstate != null">inhospstate = #{inhospstate},</if> - <if test="checkFlag != null">check_flag = #{checkFlag},</if> + <if test="deptcheckFlag != null">deptcheck_flag = #{deptcheckFlag},</if> + <if test="wardcheckFlag != null">wardcheck_flag = #{wardcheckFlag},</if> + <if test="diagcheckFlag != null">diagcheck_flag = #{diagcheckFlag},</if> <if test="longTaskReason != null">long_task_reason = #{longTaskReason},</if> <if test="nurseId != null ">nurse_id = #{nurseId},</if> <if test="nurseName != null ">nurse_name = #{nurseName},</if> @@ -517,6 +733,16 @@ <if test="operator != null ">operator = #{operator},</if> <if test="operatorId != null ">operator_id = #{operatorId},</if> <if test="remark != null ">remark = #{remark},</if> + <if test="fuflag != null ">fuflag = #{fuflag},</if> + <if test="fudate != null ">fudate = #{fudate},</if> + <if test="fuperiod != null ">fuperiod = #{fuperiod},</if> + <if test="futypecode != null ">futypecode = #{futypecode},</if> + <if test="futypedesc != null ">futypedesc = #{futypedesc},</if> + <if test="fuadvice != null ">fuadvice = #{fuadvice},</if> + <if test="fuspecialadvice != null ">fuspecialadvice = #{fuspecialadvice},</if> + <if test="managementDoctor != null ">management_doctor = #{managementDoctor},</if> + <if test="managementDoctorCode != null ">management_doctor_code = #{managementDoctorCode}</if> + </trim> where inhospid = #{inhospid} </update> @@ -552,7 +778,7 @@ FROM pat_med_outhosp <where> del_flag=0 - <if test="deptcodeList != null"> + <if test="deptcodeList != null and deptcodeList.size() > 0"> and deptcode in <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")"> #{deptcode} @@ -569,7 +795,7 @@ <where> del_flag=0 and inhospstate=0 - <if test="deptcodeList != null"> + <if test="deptcodeList != null and deptcodeList.size() > 0"> and deptcode in <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")"> #{deptcode} @@ -584,7 +810,7 @@ <where> del_flag=0 and inhospstate=1 - <if test="deptcodeList != null"> + <if test="deptcodeList != null and deptcodeList.size() > 0"> and deptcode in <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")"> #{deptcode} @@ -599,7 +825,7 @@ <where> del_flag=0 and inhospstate=1 - <if test="deptcodeList != null"> + <if test="deptcodeList != null and deptcodeList.size() > 0"> and deptcode in <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")"> #{deptcode} @@ -609,34 +835,71 @@ </if> ) AS combined GROUP BY deptname; - - </select> <select id="selectPatMedInhospCount" parameterType="com.smartor.domain.PatMedReq" resultType="com.smartor.domain.PatMedRes"> + SELECT SUM( rs ) AS rs, + SUM( rc ) AS rc + FROM ( SELECT COUNT(1) AS rc, - COUNT(DISTINCT patid) AS rs + 0 AS rs FROM pat_med_inhosp <where> del_flag=0 + <if test="orgid != null"> + AND orgid = #{orgid} + </if> <if test="zy != null"> and inhospstate=0 and date_format(starttime,'%y%m%d') >= date_format(#{startDate},'%y%m%d') and date_format(starttime,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + <if test="deptcodeList != null and deptcodeList.size() > 0"> + and deptcode in + <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")"> + #{deptcode} + </foreach> + </if> </if> <if test="cy != null"> and inhospstate=1 and date_format(endtime,'%y%m%d') >= date_format(#{startDate},'%y%m%d') and date_format(endtime,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + <if test="deptcodeList != null and deptcodeList.size() > 0"> + and leaveldeptcode in + <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")"> + #{deptcode} + </foreach> + </if> </if> - <if test="deptcodeList != null"> + + </where> + union all + select + 0 AS rc, + count(1) AS rs + FROM + service_subtask + <where> + del_flag = 0 + and service_type=2 + <if test="orgid != null"> + AND orgid = #{orgid} + </if> + <if test="startDate != null"> + AND date_format( visit_time, '%y%m%d' ) >= date_format( #{startDate}, '%y%m%d' ) + </if> + <if test="endDate != null"> + AND date_format( visit_time, '%y%m%d' ) <= date_format(#{endDate},'%y%m%d') + </if> + <if test="deptcodeList != null and deptcodeList.size() > 0"> and deptcode in <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")"> #{deptcode} </foreach> </if> </where> + ) AS combined_data </select> </mapper> -- Gitblit v1.9.3