(case when temp.etimeStr <= archive_other_ext_submitTime.create_time THEN '1'
when temp.etimeStr >=archive_other_ext_submitTime.create_time THEN '2' end
) as timeStatus,
CASE
WHEN sysFlag = 1 THEN
CASE
WHEN archive_other_ext_submitTime.str2 IS NOT NULL
AND archive_other_ext_submitTime.str2 >= (select top 1 convert(varchar(19),eTime,120) eTime from archive_other_ext where sysFlag = 1 and jzh = temp.jzh order by eTime desc) THEN
- 1
ELSE
statusFlag
END
ELSE
CASE
WHEN archive_other_ext_submitTime.str2 IS NOT NULL
AND archive_other_ext_submitTime.str2 >= etimeStr THEN
- 1
ELSE
statusFlag
END
END
statusFlagSort
) as timeStatus
-- CASE
-- WHEN sysFlag = 1 THEN
-- CASE
-- WHEN archive_other_ext_submitTime.str2 IS NOT NULL
-- AND archive_other_ext_submitTime.str2 >= (select top 1 convert(varchar(19),eTime,120) eTime from archive_other_ext where sysFlag = 1 and jzh = temp.jzh order by eTime desc) THEN
-- - 1
-- ELSE
-- statusFlag
-- END
-- ELSE
-- CASE
-- WHEN archive_other_ext_submitTime.str2 IS NOT NULL
-- AND archive_other_ext_submitTime.str2 >= etimeStr THEN
-- - 1
-- ELSE
-- statusFlag
-- END
-- END
-- statusFlagSort
from (
select
archive_other_ext.ID idTemp,
@ -526,7 +526,7 @@
and zd_assort.assort_id = #{assortId,jdbcType=NVARCHAR}
COUNT(CASE WHEN m.ArchiveState = '128' THEN 1 end)fileNum,
COUNT(CASE WHEN m.DISCHARGE_DISPOSITION = '5' THEN 1 end)deathNum
FROM
archive_master m
LEFT JOIN emr_dictionary d ON d.code= m.dept_name AND d.parent_id= 'dept_code'
LEFT JOIN ( SELECT COUNT ( id ) AS fileNum, dept_name FROM archive_master WHERE ArchiveState = '128' GROUP BY dept_name ) a ON a.dept_name= m.dept_name
LEFT JOIN ( SELECT COUNT ( id ) AS unfileNum, dept_name FROM archive_master WHERE ArchiveState != '128' AND ArchiveState != '1024' AND discharge_date_time != '1801-02-03 00:00:00.000' GROUP BY dept_name ) e ON e.dept_name= m.dept_name
LEFT JOIN ( SELECT COUNT ( id ) AS deathNum, dept_name FROM archive_master WHERE DISCHARGE_DISPOSITION = '5' GROUP BY dept_name ) t ON t.dept_name= m.dept_name
LEFT JOIN (SELECT COUNT(id) day2Num,dept_name FROM archive_master WHERE discharge_date_time != '1801-02-03 00:00:00.000'
AND ArchiveState= '128' AND DATEDIFF(DAY, discharge_date_time, checked_datetime)-(SELECT COUNT(id) FROM emr_holiday_set WHERE [date]BETWEEN discharge_date_time AND checked_datetime AND flag=2 )<=2 GROUP BY dept_name ) q ON q.dept_name=m.dept_name
LEFT JOIN (SELECT COUNT(id) day3Num,dept_name FROM archive_master WHERE discharge_date_time != '1801-02-03 00:00:00.000'
AND ArchiveState= '128' AND DATEDIFF(DAY, discharge_date_time, checked_datetime)-(SELECT COUNT(id) FROM emr_holiday_set WHERE [date]BETWEEN discharge_date_time AND checked_datetime AND flag=2 )<=3 GROUP BY dept_name ) q1 ON q1.dept_name=m.dept_name
LEFT JOIN (SELECT COUNT(id) day7Num,dept_name FROM archive_master WHERE discharge_date_time != '1801-02-03 00:00:00.000'
AND ArchiveState= '128' AND DATEDIFF(DAY, discharge_date_time, checked_datetime)-(SELECT COUNT(id) FROM emr_holiday_set WHERE [date]BETWEEN discharge_date_time AND checked_datetime AND flag=2 )<=7 GROUP BY dept_name ) q2 ON q2.dept_name=m.dept_name
LEFT JOIN emr_dictionary d ON d.code = m.dept_name
AND d.parent_id = 'dept_code'
<where>
1 = 1
AND m.discharge_date_time != '1801-02-03 00:00:00.000'
<iftest="deptCode != null and deptCode != ''">
AND m.dept_name =#{deptCode}
</if>
<iftest="startDate != null and startDate != '' and endDate != null and endDate != ''">
and m.discharge_date_time between CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120) and
#{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</if>
<iftest="startDate != null and startDate != ''">
and m.discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</if>
<iftest="endDate != null and endDate != ''">
and m.discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
AND DATEDIFF( DAY, discharge_date_time, checked_datetime ) - ( SELECT COUNT ( id ) FROM emr_holiday_set WHERE [date] BETWEEN discharge_date_time AND checked_datetime AND flag = 2 ) <=#{dayNum}
<iftest="startDate != null and startDate != ''">
and discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</if>
<iftest="endDate != null and endDate != ''">
and discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'
</if>
</where>
GROUP BY
dept_name
) q ON q.dept_name= m.dept_name
<where>
<iftest="deptCode != null and deptCode != ''">
AND m.dept_name =#{deptCode}
</if>
<iftest="startDate != null and startDate != ''">
and m.discharge_date_time >= CONVERT(VARCHAR(10),#{startDate,jdbcType=NCHAR},120)
</if>
<iftest="endDate != null and endDate != ''">
and m.discharge_date_time <= #{endDate,jdbcType=NCHAR}+ ' 23:59:59'