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 | 340 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 292 insertions(+), 48 deletions(-) diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml index 963bbe2..272f207 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"/> @@ -61,11 +63,29 @@ <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, @@ -74,7 +94,9 @@ out_way_name, nurse_id, nurse_name, - check_flag, + deptcheck_flag, + wardcheck_flag, + diagcheck_flag, inhospstate, patno, long_task_reason, @@ -127,9 +149,13 @@ 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, @@ -170,37 +196,36 @@ b.deptid, b.leaveldeptid, b.long_task_reason, - b.schemetime - -- COALESCE ( - -- ( - -- SELECT GROUP_CONCAT(d.tagname, ', ') - -- FROM pat_archivetag d - -- WHERE d.patid = a.id - -- AND d.del_flag = 0 - -- ), '') AS tagname + b.schemetime, + b.fuflag, + b.fudate, + b.fuperiod, + b.futypecode, + b.futypedesc, + b.fuadvice, + b.fuspecialadvice, + a.idcardno FROM 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) + 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 test="startOutHospTime != null ">and date_format(b.endtime,'%y%m%d') >= + date_format(#{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 test="endOutHospTime != null ">and date_format(b.endtime,'%y%m%d') <= + date_format(#{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 test="startInHospTime != null ">and date_format(b.starttime,'%y%m%d') >= + date_format(#{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 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}, '%') @@ -210,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="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> @@ -258,22 +293,27 @@ a.telcode, a.id, a.sex - order by b.inhospid desc + <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, @@ -314,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, @@ -326,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('%', @@ -359,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 @@ -371,6 +500,7 @@ <include refid="selectPatMedInhospVo"/> where inhospid = #{inhospid} </select> + <insert id="insertPatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp" useGeneratedKeys="true" keyProperty="inhospid"> @@ -416,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> @@ -427,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> @@ -469,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> @@ -480,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 @@ -526,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> @@ -536,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> @@ -571,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} @@ -588,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} @@ -603,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} @@ -618,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} @@ -628,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