s.T2,s.T3,s.IsFullText,m.inp_no,m.visit_id,m.name,CONVERT(varchar(10),m.admission_date_time, 120) admissionDateTime,d.name as deptAdmissionTo,m.isscaned,(select COUNT(*) from archive_other where archive_other.pid=s.pid)as num
s.T2,s.T3,s.IsFullText,m.inp_no,m.visit_id,m.name,CONVERT(varchar(10),m.admission_date_time, 120) admissionDateTime,m.dept_name, m.isscaned,m.dept_admission_to,(select COUNT(*) from archive_other where archive_other.pid=s.pid)as num
from archive_other s
left join archive_master m
on s.masterID=m.id
where s.id in(
(select top 1 id from archive_other a where a.pid=s.pid and a.masterID=s.masterID ORDER BY createdtime desc)
)
<iftest="id != null and id != ''"> and s.ID = #{id}</if>
<iftest="pid != null and pid != ''"> and s.pid = #{pid}</if>
<choose>
<whentest="startSignDate != null and startSignDate != '' and endSignDate != null and endSignDate != ''">
and s.createdtime between CONVERT(VARCHAR(10),#{startSignDate,jdbcType=NCHAR},120) and
#{endSignDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
<whentest="startSignDate != null and startSignDate != ''">
and s.createdtime >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endSignDate != null and endSignDate != ''">
and s.createdtime <= #{endSignDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
<iftest="otherInfo != null and otherInfo != ''"> and s.otherInfo = #{otherInfo}</if>
<iftest="masterID != null and masterID != ''"> and s.masterID = #{masterID}</if>
<iftest="detailID != null and detailID != ''"> and s.detailID = #{detailID}</if>
<iftest="dTime != null and dTime != ''"> and s.dTime = #{dTime}</if>
<iftest="c1 != null and c1 != ''"> and s.C1 = #{c1}</if>
<iftest="c2 != null and c2 != ''"> and s.C2 = #{c2}</if>
<iftest="c3 != null and c3 != ''"> and s.C3 = #{c3}</if>
<iftest="c4 != null and c4 != ''"> and s.C4 = #{c4}</if>
<iftest="c5 != null and c5 != ''"> and s.C5 = #{c5}</if>
<iftest="n1 != null and n1 != '' "> and s.N1 = #{n1}</if>
<iftest="n2 != null and n2 != ''"> and s.N2 = #{n2}</if>
<iftest="n3 != null and n3 != ''"> and s.N3 = #{n3} </if>
<iftest="t1 != null and t1 != ''"> and s.T1 = #{t1}</if>
<iftest="t2 != null and t2 != ''"> and s.T2 = #{t2}</if>
<iftest="t3 != null and t3 != ''"> and s.T3 = #{t3}</if>
<iftest="isFullText != null and isFullText != ''"> and s.IsFullText = #{isFullText}</if>
<iftest="inpNo != null and inpNo != ''"> and m.inp_no = #{inpNo}</if>
<iftest="visitId != null and visitId != ''"> and m.visit_id = #{visitId}</if>
<iftest="name != null and name != ''"> and m.name like '%'+#{name}+'%'</if>
and s.sysFlag ='1'
)s
LEFT JOIN emr_dictionary d
on m.dept_admission_to=d.code
on s.dept_admission_to=d.code
LEFT JOIN (select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where
typeCode='dept_code' )) f
on m.dept_name=f.code
where s.id in(
(select top 1 id from archive_other a where a.pid=s.pid and a.masterID=s.masterID ORDER BY createdtime desc)
)
<iftest="id != null and id != ''"> and s.ID = #{id}</if>
<iftest="pid != null and pid != ''"> and s.pid = #{pid}</if>
<choose>
<whentest="startSignDate != null and startSignDate != '' and endSignDate != null and endSignDate != ''">
and s.createdtime between CONVERT(VARCHAR(10),#{startSignDate,jdbcType=NCHAR},120) and
#{endSignDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
<whentest="startSignDate != null and startSignDate != ''">
and s.createdtime >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endSignDate != null and endSignDate != ''">
and s.createdtime <= #{endSignDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
<iftest="otherInfo != null and otherInfo != ''"> and s.otherInfo = #{otherInfo}</if>
<iftest="masterID != null and masterID != ''"> and s.masterID = #{masterID}</if>
<iftest="detailID != null and detailID != ''"> and s.detailID = #{detailID}</if>
<iftest="dTime != null and dTime != ''"> and s.dTime = #{dTime}</if>
<iftest="c1 != null and c1 != ''"> and s.C1 = #{c1}</if>
<iftest="c2 != null and c2 != ''"> and s.C2 = #{c2}</if>
<iftest="c3 != null and c3 != ''"> and s.C3 = #{c3}</if>
<iftest="c4 != null and c4 != ''"> and s.C4 = #{c4}</if>
<iftest="c5 != null and c5 != ''"> and s.C5 = #{c5}</if>
<iftest="n1 != null and n1 != '' "> and s.N1 = #{n1}</if>
<iftest="n2 != null and n2 != ''"> and s.N2 = #{n2}</if>
<iftest="n3 != null and n3 != ''"> and s.N3 = #{n3} </if>
<iftest="t1 != null and t1 != ''"> and s.T1 = #{t1}</if>
<iftest="t2 != null and t2 != ''"> and s.T2 = #{t2}</if>
<iftest="t3 != null and t3 != ''"> and s.T3 = #{t3}</if>
<iftest="isFullText != null and isFullText != ''"> and s.IsFullText = #{isFullText}</if>
<iftest="inpNo != null and inpNo != ''"> and m.inp_no = #{inpNo}</if>
<iftest="visitId != null and visitId != ''"> and m.visit_id = #{visitId}</if>
<iftest="name != null and name != ''"> and m.name like '%'+#{name}+'%'</if>
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
and CONVERT(VARCHAR(10),discharge_date_time,120)<= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t on c.dept_name= t.dept_name
left join (select dept_name,COUNT(*) AS isOutNum from archive_master as s where s.ArchiveState!='在院'
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<!--<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -77,10 +77,21 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t1 on c.dept_name= t1.dept_name
left join (
SELECT a.dept_name,ISNULL(timeOutNum, 0) timeOutNum FROM archive_master AS a LEFT JOIN (
select s.dept_name as dept_name,COUNT(*) AS timeOutNum from archive_master as s
@ -96,7 +107,7 @@
</if>
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7) group by dept_name
) x ON a.dept_name = x.dept_name
<choose>
<!--<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -107,12 +118,24 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
) as n1 on c.dept_name= n1.dept_name
left join (select dept_name,COUNT(*) AS fileNum from archive_master as s where s.ArchiveState in('已归档','已认证')
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<!-- <choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -123,11 +146,23 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t2 on c.dept_name= t2.dept_name
left join (select dept_name,COUNT(*) AS unfileNum from archive_master as s where s.ArchiveState not in('已归档','已认证')
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<!-- <choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -138,11 +173,23 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t3 on c.dept_name= t3.dept_name
left join (select dept_name,COUNT(*) AS deathNum from archive_master as s where s.DISCHARGE_DISPOSITION=5
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<!--<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -153,11 +200,23 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t4 on c.dept_name= t4.dept_name
left join (select dept_name,COUNT(*) AS Num from archive_master as s where s.ArchiveState in('已归档','已认证') and datediff(d,discharge_date_time,getdate())<=2
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<!--<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -168,11 +227,23 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t5 on c.dept_name= t5.dept_name
left join (select dept_name,COUNT(*) AS Num from archive_master as s where s.ArchiveState in('已归档','已认证') and datediff(d,discharge_date_time,getdate())<=3
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<!--<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -183,11 +254,23 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t6 on c.dept_name= t6.dept_name
left join (select dept_name,COUNT(*) AS Num from archive_master as s where s.ArchiveState in('已归档','已认证') and datediff(d,discharge_date_time,getdate())<=7
and not (datepart(weekday,discharge_date_time)=1 or datepart(weekday,discharge_date_time)=7)
<choose>
<!--<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
@ -198,7 +281,19 @@
<whentest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</when>
</choose>
</choose>-->
<choose>
<whentest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}
</when>
<whentest="startDate != null and startDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</when>
<whentest="endDate != null and endDate != ''">
and CONVERT(VARCHAR(10),discharge_date_time,120) <= #{endDate,jdbcType=NCHAR}
</when>
</choose>
group by dept_name) as t7 on c.dept_name= t7.dept_name
left join (SELECT code,Name FROM emr_dictionary ) as t8 on c.dept_name=t8.code