From fe47ff909096722ba8e9172c3e1f0f7910b16909 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期二, 21 十月 2025 14:49:18 +0800
Subject: [PATCH] 结束出院日期格式
---
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml | 364 ++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 267 insertions(+), 97 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
index 36d4062..351aab6 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,166 @@
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,
+ 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)
+ <where>
+ 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>
+ <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>
+ <if test="hospitalname != null and hospitalname != ''">and hospitalname like concat('%', #{hospitalname},
+ '%')
+ </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="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 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.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>
+ <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">and
+ b.leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
+ </if>
+
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size()>0">
+ AND b.leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test="leaveldeptcodes != null and leaveldeptcodes.size()>0">
+ AND b.leaveldeptcode IN
+ <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+ close=")">
+ #{leaveldeptcode}
+ </foreach>
+ </if>
+ </where>
+ 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="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,
@@ -200,106 +364,21 @@
b.fuspecialadvice
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)
+
<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>
- <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>
- <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},
- '%')
- </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="inhospno != null ">and b.inhospno = #{inhospno}</if>
- <if test="fuflag != null ">and b.fuflag = #{fuflag}</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 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="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="patid != null and patid != ''">and a.id =#{patid}
- </if>
- <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">and
- b.leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
- </if>
- <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size()>0">
- AND b.leavehospitaldistrictcode IN
- <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
- close=")">
- #{leavehospitaldistrictcode}
- </foreach>
- </if>
- <if test="leaveldeptcodes != null and leaveldeptcodes.size()>0">
- AND b.leaveldeptcode IN
- <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
- close=")">
- #{leaveldeptcode}
- </foreach>
- </if>
</where>
- GROUP BY
- b.inhospid,
- a.age,
- a.age_unit,
- a.telcode,
- a.id,
- a.sex
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,
@@ -370,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}, '%')
@@ -406,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
@@ -418,6 +500,7 @@
<include refid="selectPatMedInhospVo"/>
where inhospid = #{inhospid}
</select>
+
<insert id="insertPatMedInhosp" parameterType="com.smartor.domain.PatMedInhosp" useGeneratedKeys="true"
keyProperty="inhospid">
@@ -483,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>
@@ -545,8 +630,53 @@
<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
@@ -610,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>
@@ -645,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}
@@ -662,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}
@@ -677,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}
@@ -692,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}
@@ -702,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