<iftest="overdueDays != null and overdueDays != ''">
case when ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,substring(m.discharge_date_time,1,10)),f.handle_time) , 0)-#{overdueDays,jdbcType=NCHAR}>0 then ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,substring(m.discharge_date_time,1,10)),f.handle_time) , 0)-#{overdueDays,jdbcType=NCHAR}
case
when ISNULL(datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)<=0
then '0'
when ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-cast(#{overdueDays,jdbcType=NCHAR} as int)<0
then '0'
when ISNULL(m.dayOne,0)>=0 and ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)>=0
then ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-cast(#{overdueDays,jdbcType=NCHAR} as int)
else '0'
end overdue
</if>
<iftest="overdueDays == null or overdueDays == ''">
case when ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,substring(m.discharge_date_time,1,10)),f.handle_time) , 0)-3>0 then ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,substring(m.discharge_date_time,1,10)),f.handle_time) , 0)-3
case
when ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-3<0
then '0'
when ISNULL(m.dayOne,0)>=0 and ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)>=0
then ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-3
select id,master_id ,convert(varchar,handle_time,120) handle_time ,handle_id,handle_name,following_type from (
@ -1484,7 +1496,15 @@
from Archive_Master_Following where 1=1 and following_type='5') as t1 where 1=1 and RowNum = 1
) f
LEFT JOIN (
select id master_id,patient_id,inp_no,visit_id,name,dept_name,convert(varchar,discharge_date_time,120) discharge_date_time,check_doctor,first_instance,DOCTOR_IN_CHARGE,death_flag,dept_admission_to,convert(varchar,admission_date_time,120) admission_date_time
select id master_id,patient_id,inp_no,visit_id,name,dept_name,convert(varchar,discharge_date_time,120) discharge_date_time,check_doctor,first_instance,DOCTOR_IN_CHARGE,death_flag,dept_admission_to,convert(varchar,admission_date_time,120) admission_date_time,
<iftest="overdueDays != null and overdueDays != ''">
convert(varchar(10),(DATEADD(DAY,cast(#{overdueDays,jdbcType=NCHAR} as int)-1,convert(varchar(10),discharge_date_time,23))),23) mid_date
,ISNULL(dbo.getWorkday(convert(varchar(10),discharge_date_time,23),convert(varchar(10),(DATEADD(DAY,cast(#{overdueDays,jdbcType=NCHAR} as int),convert(varchar(10),discharge_date_time,23))),23)) , 0) dayOne
</if>
<iftest="overdueDays == null or overdueDays == ''">
from archive_master where 1=1 and ArchiveState!='作废' and ArchiveState!='已封存' and Is_Valid!=1
) m
on f.master_id=m.master_id
@ -1495,17 +1515,17 @@
on m.dept_admission_to=e.code
<where> 1=1 and m.master_id!='' and m.master_id is not null
<iftest="(overdueDaysTwo != null and overdueDaysTwo != '') and (overdueDays != null and overdueDays != '')">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),m.discharge_date_time,23)),f.handle_time) , 0)-#{overdueDays,jdbcType=NCHAR}>=#{overdueDaysTwo,jdbcType=NCHAR}
</if>
<iftest="(overdueDaysTwo == null or overdueDaysTwo == '') and (overdueDays != null and overdueDays != '')">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,substring(m.discharge_date_time,1,10)),f.handle_time) , 0)-#{overdueDays,jdbcType=NCHAR}>=0
and ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-cast(#{overdueDays,jdbcType=NCHAR} as int)>=#{overdueDaysTwo,jdbcType=NCHAR}
</if>
<!--<if test="(overdueDaysTwo == null or overdueDaysTwo == '') and (overdueDays != null and overdueDays != '')">
and ABS(ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-cast(#{overdueDays,jdbcType=NCHAR} as int))>=0
</if>-->
<iftest="(overdueDaysTwo != null and overdueDaysTwo != '') and (overdueDays == null or overdueDays == '')">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,substring(m.discharge_date_time,1,10)),f.handle_time) , 0)-3>=#{overdueDaysTwo,jdbcType=NCHAR}
</if>
<iftest="(overdueDaysTwo == null or overdueDaysTwo == '') and (overdueDays == null or overdueDays == '')">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,substring(m.discharge_date_time,1,10)),f.handle_time) , 0)-3>=0
and ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-3>=#{overdueDaysTwo,jdbcType=NCHAR}
</if>
<!--<if test="(overdueDaysTwo == null or overdueDaysTwo == '') and (overdueDays == null or overdueDays == '')">
and ISNULL( datediff(day,convert(varchar(100),m.mid_date,23),convert(varchar(100),f.handle_time,23)),0)+ISNULL(m.dayOne,0)-1-3>=0
<iftest="overdueDays != null and overdueDays != ''">
case when ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-#{overdueDays,jdbcType=NCHAR}>0 then ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-#{overdueDays,jdbcType=NCHAR}
case
when ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)<=0
then '0'
when ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)+ISNULL(f2.dayOne,0)-1-cast(#{overdueDays,jdbcType=NCHAR} as int)<0
then '0'
when ISNULL(f2.dayOne,0)>=0 and ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)>=0
then ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)+ISNULL(f2.dayOne,0)-1-cast(#{overdueDays,jdbcType=NCHAR} as int)
else '0'
end overdue
</if>
<iftest="overdueDays == null or overdueDays == ''">
case when ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-'3'>0 then ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-'3'
case
when ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)<=0
then '0'
when ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)+ISNULL(f2.dayOne,0)-1-3<0
then '0'
when ISNULL(f2.dayOne,0)>=0 and ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)>=0
then ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)+ISNULL(f2.dayOne,0)-1-3
select id,master_id,following_type,following_content,handle_name,handle_time,ROW_NUMBER() OVER (partition by master_id ORDER BY master_id,handle_time) as rowNumb from Archive_Master_Following where following_type='9'
)f1
LEFT JOIN (
select *,ROW_NUMBER() OVER (partition by master_id ORDER BY master_id,handle_time) as rowNumb from Archive_Master_Following where following_type='5'
select *,
<iftest="overdueDays != null and overdueDays != ''">
convert(varchar(10),(DATEADD(DAY,cast(#{overdueDays,jdbcType=NCHAR} as int)-1,convert(varchar(10),handle_time,23))),23) mid_date
,ISNULL(dbo.getWorkday(convert(varchar(10),handle_time,23),convert(varchar(10),(DATEADD(DAY,cast(#{overdueDays,jdbcType=NCHAR} as int),convert(varchar(10),handle_time,23))),23)) , 0) dayOne
</if>
<iftest="overdueDays == null or overdueDays == ''">
convert(varchar(10),(DATEADD(DAY,cast('2' as int),convert(varchar(10),handle_time,23))),23) mid_date
,ISNULL(dbo.getWorkday(convert(varchar(10),handle_time,23),convert(varchar(10),(DATEADD(DAY,cast('3' as int),convert(varchar(10),handle_time,23))),23)) , 0) dayOne
</if>
from(
select *,ROW_NUMBER() OVER (partition by master_id ORDER BY master_id,handle_time) as rowNumb from Archive_Master_Following where following_type='5'
)a
)f2
on f1.master_id=f2.master_id and f1.rowNumb=f2.rowNumb-1
LEFT JOIN (
@ -1581,21 +1626,14 @@
on f1.master_id=m.master_id
LEFT JOIN (select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where typeCode='dept_code' )) c
on m.dept_name=c.code
LEFT JOIN (select code,name from emr_dictionary where parent_id=(select id from emr_dictionary where typeCode='dept_code' )) e
on m.dept_admission_to=e.code
<where> 1=1 and m.master_id!='' and m.master_id is not null
<iftest="overdueDaysTwo != null and overdueDaysTwo != '' and overdueDays != null and overdueDays != ''">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-#{overdueDays,jdbcType=NCHAR}>=#{overdueDaysTwo,jdbcType=NCHAR}
</if>
<iftest="(overdueDaysTwo == null or overdueDaysTwo == '')and overdueDays != null and overdueDays != ''">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-#{overdueDays,jdbcType=NCHAR}>=0
</if>
<iftest="overdueDaysTwo != null and overdueDaysTwo != '' and (overdueDays == null or overdueDays == '')">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-'3'>=#{overdueDaysTwo,jdbcType=NCHAR}
<where> 1=1 and m.master_id!='' and m.master_id is not null and f2.handle_time is not null
<iftest="(overdueDaysTwo != null and overdueDaysTwo != '') and (overdueDays != null and overdueDays != '')">
and ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)+ISNULL(f2.dayOne,0)-1-cast(#{overdueDays,jdbcType=NCHAR} as int)>=#{overdueDaysTwo,jdbcType=NCHAR}
</if>
<iftest="(overdueDaysTwo == null or overdueDaysTwo == '') and (overdueDays == null or overdueDays == '')">
and ISNULL(dbo.f_WorkDay(DATEADD(DAY,1,CONVERT(VARCHAR(10),f1.handle_time,23)),CONVERT(VARCHAR(10),f2.handle_time,23)) , 0)-'3'>=0
<iftest="(overdueDaysTwo != null and overdueDaysTwo != '') and (overdueDays == null or overdueDays == '')">
and ISNULL( datediff(day,convert(varchar(100),f2.mid_date,23),convert(varchar(100),f1.handle_time,23)),0)+ISNULL(f2.dayOne,0)-1-3>=#{overdueDaysTwo,jdbcType=NCHAR}