From 2a3d4e4c082403aeb31d4c1c499a6107ffa835af Mon Sep 17 00:00:00 2001 From: sinake <sinake1@qq.com> Date: 星期六, 13 九月 2025 14:22:55 +0800 Subject: [PATCH] 同步数据接口和随访率改成只有已完成 --- smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 152 insertions(+), 27 deletions(-) diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml index 7d2406d..272f207 100644 --- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml @@ -70,12 +70,16 @@ <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, @@ -145,6 +149,8 @@ b.nurse_id, b.nurse_name, b.patname, + b.management_doctor, + b.management_doctor_code, b.out_way_id, b.out_way_name, b.deptcheck_flag, @@ -204,25 +210,11 @@ 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) + 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.idcardno IS NOT NULL - <!--<if test="startOutHospTime != null"> - AND STR_TO_DATE(b.endtime,'%Y-%m-%d') >= STR_TO_DATE(#{startOutHospTime},'%Y-%m-%d') - </if> - <if test="endOutHospTime != null"> - AND STR_TO_DATE(b.endtime,'%Y-%m-%d') <= STR_TO_DATE(#{endOutHospTime},'%Y-%m-%d') - </if> - <if test="tagname != null and tagname != ''">and c.tagname like concat('%', #{tagname}, '%')</if> - - <if test="startInHospTime != null"> - AND STR_TO_DATE(b.starttime, '%Y-%m-%d') >= STR_TO_DATE(#{startInHospTime}, '%Y-%m-%d') - </if> - <if test="endInHospTime != null"> - AND STR_TO_DATE(b.starttime, '%Y-%m-%d') <= STR_TO_DATE(#{startInHospTime}, '%Y-%m-%d') - </if>--> <if test="startOutHospTime != null ">and date_format(b.endtime,'%y%m%d') >= date_format(#{startOutHospTime},'%y%m%d') </if> @@ -243,8 +235,11 @@ 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> @@ -305,11 +300,85 @@ order by b.starttime desc </if> </select> + + <select id="selectPatMedInhospListBySerialnum" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult"> + select + 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.deptcheck_flag, + b.wardcheck_flag, + b.diagcheck_flag, + 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.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, @@ -380,6 +449,8 @@ <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}, '%') @@ -416,6 +487,7 @@ order by b.inhospid desc </select> + <select id="getTagnameBypatid" parameterType="Long" resultType="string"> SELECT GROUP_CONCAT(d.tagname, ', ') FROM pat_archivetag d @@ -428,8 +500,6 @@ <include refid="selectPatMedInhospVo"/> where inhospid = #{inhospid} </select> - - <insert id="insertPatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp" useGeneratedKeys="true" @@ -496,6 +566,8 @@ <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> @@ -558,11 +630,14 @@ <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 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, @@ -574,22 +649,30 @@ 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 + 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.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.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.fuflag}, #{item.fudate}, #{item.fuperiod}, #{item.futypecode}, #{item.futypedesc}, #{item.fuadvice}, + #{item.fuspecialadvice}, #{item.managementDoctor}, #{item.managementDoctorCode} ) </foreach> </insert> @@ -657,6 +740,9 @@ <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> @@ -752,22 +838,60 @@ </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> + + </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 @@ -776,5 +900,6 @@ </foreach> </if> </where> + ) AS combined_data </select> </mapper> -- Gitblit v1.9.3