@ -958,67 +958,122 @@
</if>
</select>
<select id= "bbSel" parameterType= "com.emr.entity.Archive_Master_Vo" resultMap= "BaseResultMap" >
SELECT DISTINCT U.dept_name,E.name,isnull( D.checkDoctor,0) checkDoctor,isnull( A.lockinfo,0) lockinfo,isnull(B.inpNo,0) inpNo,isnull(C.visitId,0) visitId FROM (SELECT dept_name,discharge_date_time from archive_master) U
LEFT JOIN (
select s.dept_name,count(*) as lockinfo from archive_master as s where 1=1 and s.ArchiveState not in('在院','归档中','复审退回','主任退回') GROUP BY s.dept_name
) A ON U.dept_name=A.dept_name
LEFT JOIN (
select dept_name,count(*) as inpNo from archive_master where 1=1 and ArchiveState in('在院','归档中','复审退回','主任退回') GROUP BY dept_name
) B ON U.dept_name=B.dept_name
LEFT JOIN (
select dept_name,count(*) as visitId from archive_master where 1=1 and ArchiveState in('在院','归档中','复审退回','主任退回') and CEILING(DATEDIFF(hour,discharge_date_time,GETDATE())/24.00)>3 GROUP BY dept_name
) C ON U.dept_name=C.dept_name
LEFT JOIN (
select s.dept_name,count(*) as checkDoctor from archive_master as s where 1=1 and s.ArchiveState='在院' GROUP BY s.dept_name
) D ON U.dept_name=D.dept_name
LEFT JOIN (
select * from emr_dictionary
) E ON U.dept_name=E.code
where 1=1
<if test= "deptName!= null and deptName!= ''" >
and U.dept_name in
<foreach item= "item" collection= "deptName.split(',')" open= "(" separator= "," close= ")" >
#{item}
</foreach>
</if>
select a.*,ISNULL(b.name, a.dept_name) name from(select dept_name,
SUM(CASE WHEN ArchiveState not IN ('在院','取消入院','作废') AND Is_Valid != 1
<choose >
<when test= "startDateTo != null and startDateTo != '' and endDateTo != null and endDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23) between #{startDateTo,jdbcType=NCHAR} and #{endDateTo,jdbcType=NCHAR}
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120) and #{endDateTo,jdbcType=NCHAR}
</when>
<when test= "startDateTo != null and startDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23) >= #{startDateTo,jdbcType=NCHAR}
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120)
</when>
<when test= "endDateTo != null and endDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23 ) < = #{endDateTo,jdbcType=NCHAR}
and CONVERT(VARCHAR(10),discharge_date_time,120) < = #{endDateTo,jdbcType=NCHAR}
</when>
</choose>
</select>
<select id= "bbSel2" parameterType= "com.emr.entity.Archive_Master_Vo" resultMap= "BaseResultMap" >
select id,inp_no,visit_id,U.name,dept_name,E.name doctor_name,DOCTOR_IN_CHARGE,ArchiveState,CONVERT(varchar(100),admission_date_time, 120) admission_date_time,CONVERT(varchar(100),U.discharge_date_time, 120) discharge_date_time,GETDATE() nowt,CEILING(DATEDIFF(hour,U.discharge_date_time,GETDATE())/24.00)-3 nurse_name,bed_number
from archive_master U
LEFT JOIN (
select code,name from emr_dictionary
) E
ON U.dept_name=E.code
where 1=1 and U.ArchiveState in('归档中','提交','主任退回','复审退回')
and CEILING(DATEDIFF(hour,U.discharge_date_time,GETDATE())/24.00)>3
<if test= "deptName!= null and deptName!= ''" >
and U.dept_name in
<foreach item= "item" collection= "deptName.split(',')" open= "(" separator= "," close= ")" >
#{item}
</foreach>
</if>
AND Is_Valid != 1 THEN 1 ELSE 0 END) as checkDoctor,
SUM(CASE WHEN ArchiveState IN ('归档中','提交','主任退回','复审退回')
<choose >
<when test= "startDateTo != null and startDateTo != '' and endDateTo != null and endDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23) between #{startDateTo,jdbcType=NCHAR} and #{endDateTo,jdbcType=NCHAR}
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120) and #{endDateTo,jdbcType=NCHAR}
</when>
<when test= "startDateTo != null and startDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23) >= #{startDateTo,jdbcType=NCHAR}
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120)
</when>
<when test= "endDateTo != null and endDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23 ) < = #{endDateTo,jdbcType=NCHAR}
and CONVERT(VARCHAR(10),discharge_date_time,120) < = #{endDateTo,jdbcType=NCHAR}
</when>
</choose>
AND Is_Valid != 1 THEN 1 ELSE 0 END) as lockinfo,
SUM(CASE WHEN ArchiveState not IN ('归档中','提交','主任退回','复审退回')
<choose >
<when test= "startDateTo != null and startDateTo != '' and endDateTo != null and endDateTo != ''" >
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120) and #{endDateTo,jdbcType=NCHAR}
</when>
<when test= "startDateTo != null and startDateTo != ''" >
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120)
</when>
<when test= "endDateTo != null and endDateTo != ''" >
and CONVERT(VARCHAR(10),discharge_date_time,120) < = #{endDateTo,jdbcType=NCHAR}
</when>
</choose>
AND Is_Valid != 1 THEN 1 ELSE 0 END) as inpNo,
SUM(CASE WHEN ArchiveState not IN ('归档中','提交','主任退回','复审退回')
<choose >
<when test= "startDateTo != null and startDateTo != '' and endDateTo != null and endDateTo != ''" >
and CONVERT(VARCHAR(10),discharge_date_time,120) between CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120) and #{endDateTo,jdbcType=NCHAR}
</when>
<when test= "startDateTo != null and startDateTo != ''" >
and CONVERT(VARCHAR(10),discharge_date_time,120) >= CONVERT(VARCHAR(10),#{startDateTo,jdbcType=NCHAR},120)
</when>
<when test= "endDateTo != null and endDateTo != ''" >
and CONVERT(VARCHAR(10),discharge_date_time,120) < = #{endDateTo,jdbcType=NCHAR}
</when>
</choose>
AND Is_Valid != 1
<if test= "remark!= null and remark!= ''" >
and CEILING(DATEDIFF(hour,discharge_date_time,GETDATE())/24.00)>#{remark,jdbcType=NCHAR}
</if>
<if test= "remark== null and remark== ''" >
and CEILING(DATEDIFF(hour,discharge_date_time,GETDATE())/24.00)>3
</if>
THEN 1 ELSE 0 END) as visitId
FROM archive_master GROUP BY dept_name
) a
left join(
select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where typeCode='dept_code' )
) b
on a.dept_name=b.code
<where >
1=1
</where>
<if test= "deptName!= null and deptName!= ''" >
and a.dept_name in
<foreach item= "item" collection= "deptName.split(',')" open= "(" separator= "," close= ")" >
#{item}
</foreach>
</if>
</select>
<select id= "bbSel2" parameterType= "com.emr.entity.Archive_Master_Vo" resultMap= "BaseResultMap" >
select id,inp_no,visit_id,U.name,dept_name,E.name doctor_name,DOCTOR_IN_CHARGE,ArchiveState,ISNULL(e.name, u.dept_name) doctorName,
CONVERT(varchar(100),admission_date_time, 120) admission_date_time,CONVERT(varchar(100),U.discharge_date_time, 120) discharge_date_time
,bed_number,GETDATE() nowt,
<if test= "remark!= null and remark!= ''" >
CEILING(DATEDIFF(hour,U.discharge_date_time,GETDATE())/24.00)-#{remark,jdbcType=NCHAR} nurse_name
</if>
<if test= "remark== null or remark== ''" >
CEILING(DATEDIFF(hour,U.discharge_date_time,GETDATE())/24.00)-3 nurse_name
</if>
from archive_master U
LEFT JOIN (
select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where typeCode='dept_code' )
) E
ON U.dept_name=E.code
<where > 1=1 and U.ArchiveState in('归档中','提交','主任退回','复审退回')
<if test= "remark!= null and remark!= ''" >
and CEILING(DATEDIFF(hour,U.discharge_date_time,GETDATE())/24.00)>#{remark,jdbcType=NCHAR}
</if>
<if test= "remark== null or remark== ''" >
and CEILING(DATEDIFF(hour,U.discharge_date_time,GETDATE())/24.00)>3
</if>
<if test= "deptName!= null and deptName!= ''" >
and U.dept_name in
<foreach item= "item" collection= "deptName.split(',')" open= "(" separator= "," close= ")" >
#{item}
</foreach>
</if>
<choose >
<when test= "startDateTo != null and startDateTo != '' and endDateTo != null and endDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23) between #{startDateTo,jdbcType=NCHAR} and #{endDateTo,jdbcType=NCHAR}
</when>
<when test= "startDateTo != null and startDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23) >= #{startDateTo,jdbcType=NCHAR}
</when>
<when test= "endDateTo != null and endDateTo != ''" >
and CONVERT(varchar(100),U.discharge_date_time, 23) < = #{endDateTo,jdbcType=NCHAR}
</when>
</choose>
</where>
</select>
<delete id= "deleteByPrimaryKey" parameterType= "java.lang.String" >
delete from archive_master