
<cfparam name="form.Patient_ID" default="0">

<cfparam name="URL.Action" default="None">
<cfparam name="form.df" default="">
<cfparam name="form.dt" default="">

<script type="text/javascript">
	$(document).ready(function () {
		$("#ExpiringataTables").dataTable({
			"sPaginationType": "full_numbers",
		//	"bJQueryUI": true,
			"aaSorting": [[2,'desc']]
		});
	});
	$(function() {
		$( "#tabs" ).tabs();
	});

</script>


<!--- Query matches getExpiringAssessments from cron_dashboard_emp_count.cfm --->
<cfquery  name="GetA" datasource="#Application.DataSrc#">
	SELECT  
		exp_assmt.Assmt_ID, exp_assmt.Patient_ID,
		exp_assmt.Record_creation_Date, exp_assmt.admission_status, 
		exp_assmt.Assessment_Reason_M0100, exp_assmt.Certification_Start, 
		exp_assmt.Certification_End, exp_assmt.Assessment_Completed_M0090, 
		exp_assmt.Transmission_status,
		exp_assmt.Expiration_Date,
		pPatients.Pt_First, pPatients.Pt_Last, pPatients.Pt_Middle,
		pEmployee.Emp_Last, pEmployee.Emp_First,
		COALESCE(NULLIF(pAdmit.Case_Manager, 0), 2) AS AssignedEmpID
	FROM (
		SELECT 
			latest_assmt.Admit_ID,
			latest_assmt.Assmt_ID,
			latest_assmt.Patient_ID,
			latest_assmt.Record_Creation_Date,
			latest_assmt.F27,
			pAssessments.F25 AS admission_status,
			pAssessments.F26 AS Assessment_Reason_M0100,
			pAssessments.F177 AS Certification_Start,
			pAssessments.F178 AS Certification_End,
			pAssessments.F176 AS Assessment_Completed_M0090,
			pAssessments.F197 AS Transmission_status,
			pAssessments.F178 AS Expiration_Date
		FROM (
			SELECT 
				pAssessments.Admit_ID,
				pAssessments.Assmt_ID,
				pAssessments.Patient_ID,
				pAssessments.F178,
				pAssessments.F27,
				pAssessments.Record_Creation_Date
			FROM #Request.prefix_db_agency#.pAssessments
			JOIN #Request.prefix_db_agency#.pAdmit ON pAdmit.Admit_ID = pAssessments.Admit_ID
				AND pAdmit.Status = 0
			WHERE pAssessments.Status = 0
				AND (LEFT(pAssessments.F26, 1) = '1' OR LEFT(pAssessments.F26, 1) = '4')
				AND pAssessments.F178 IN (
					SELECT MAX(ass.F178)
					FROM #Request.prefix_db_agency#.pAssessments ass
					WHERE ass.Admit_ID = pAssessments.Admit_ID
						AND ass.Status = 0
						AND (LEFT(ass.F26, 1) = '1' OR LEFT(ass.F26, 1) = '4')
				)
		) AS latest_assmt
		JOIN #Request.prefix_db_agency#.pAssessments pAssessments
			ON pAssessments.Assmt_ID = latest_assmt.Assmt_ID
			AND pAssessments.Status = 0
		UNION ALL

		SELECT
			pAssessments.Admit_ID,
			pAssessments.Assmt_ID,
			pAssessments.Patient_ID,
			pAssessments.Record_Creation_Date,
			pAssessments.F27,
			pAssessments.F25 AS admission_status,
			pAssessments.F26 AS Assessment_Reason_M0100,
			pAssessments.F177 AS Certification_Start,
			pAssessments.F178 AS Certification_End,
			pAssessments.F176 AS Assessment_Completed_M0090,
			pAssessments.F197 AS Transmission_status,
			DATE_ADD(pAssessments.F176, INTERVAL 30 DAY) AS Expiration_Date
		FROM #Request.prefix_db_agency#.pAssessments pAssessments
		JOIN #Request.prefix_db_agency#.pAdmit pAdmit
			ON pAdmit.Admit_ID = pAssessments.Admit_ID
			AND pAdmit.Status = 0
		WHERE pAssessments.Status = 0
			AND pAssessments.F176 IS NOT NULL
			AND pAssessments.F176 > '1900-01-01'
			AND LOWER(pAssessments.F26) LIKE '%eval%'
	) AS exp_assmt
	JOIN #Request.prefix_db_agency#.pAdmit pAdmit ON pAdmit.Admit_ID = exp_assmt.Admit_ID
		AND pAdmit.Status = 0
	JOIN #Request.prefix_db_agency#.pPatients pPatients ON pPatients.Patient_ID = exp_assmt.Patient_ID
		AND pPatients.Status = 0
	LEFT JOIN #Request.prefix_db_lookup#.pEmployee ON pEmployee.Emp_ID = pAdmit.Case_Manager
		AND pEmployee.Status = 0
	WHERE pPatients.Loc_ID = '#session.agencyid#'
		AND exp_assmt.admission_status = 1
		AND (
			(
				(LEFT(exp_assmt.Assessment_Reason_M0100, 1) = '1' OR LEFT(exp_assmt.Assessment_Reason_M0100, 1) = '4')
				AND DATE_SUB(exp_assmt.Certification_End, INTERVAL 14 DAY) <= CURDATE()
			)
			OR
			(
				LOWER(exp_assmt.Assessment_Reason_M0100) LIKE '%eval%'
				AND DATE_ADD(exp_assmt.Assessment_Completed_M0090, INTERVAL 30 DAY) <= DATE_ADD(CURDATE(), INTERVAL 30 DAY)
			)
		)
		AND exp_assmt.Admit_ID NOT IN (
			SELECT pAssessments.Admit_ID
			FROM #Request.prefix_db_agency#.pAssessments
			WHERE (pAssessments.F26 like '9%' OR pAssessments.F26 like '7%' OR pAssessments.F26 like '8%')
				AND pAssessments.Status = 0
		)
		AND NOT EXISTS (
			SELECT 1
			FROM #Request.prefix_db_agency#.Communication
			JOIN #Request.prefix_db_agency#.CommunicationSubjects
				ON CommunicationSubjects.CommSub_ID = Communication.CommSub_ID
			WHERE Communication.Status = 0
				AND Communication.Patient_ID = pPatients.Patient_ID
				AND pAdmit.M0030_START_CARE_DT < Communication.Comm_Date
				AND (
					(LEFT(exp_assmt.F27, 2) = 'SN' AND CommunicationSubjects.Subject LIKE 'Discharge Summary - SN%')
					OR (LEFT(exp_assmt.F27, 2) = 'PT' AND CommunicationSubjects.Subject LIKE 'Discharge Summary - PT%')
					OR (LEFT(exp_assmt.F27, 2) = 'OT' AND CommunicationSubjects.Subject LIKE 'Discharge Summary - OT%')
					OR (LEFT(exp_assmt.F27, 2) = 'ST' AND CommunicationSubjects.Subject LIKE 'Discharge Summary - ST%')
					OR (LEFT(exp_assmt.F27, 3) = 'MSW' AND CommunicationSubjects.Subject LIKE 'Discharge Summary - MSW%')
					OR CommunicationSubjects.Subject LIKE '%Agency Transfer%'
				)
		)
		<cfif form.df NEQ '' AND form.dt NEQ ''>
			AND exp_assmt.Expiration_Date BETWEEN <cfqueryparam value="#CreateODBCDate(form.df)#" cfsqltype="CF_SQL_DATE"> 
				AND <cfqueryparam value="#CreateODBCDate(form.dt)#" cfsqltype="CF_SQL_DATE">
		</cfif>
		<cfif session.earole contains 'Field' AND session.eaRole does not contain 'Project Manager' AND session.eaRole does not contain 'Quality'>
			AND pAdmit.Case_Manager = <cfqueryparam value="#Val(session.employeeid)#" cfsqltype="CF_SQL_INTEGER">
		</cfif>
	ORDER BY exp_assmt.Expiration_Date ASC
</cfquery>

<style>
@media print{
a[href]:after
{
content:none
}
}
</style>



<div class="portlet box blue">
		<div class="portlet-title">
			<div class="caption">
				<i class="fa fa-gear"></i>Search Expiring Assessment List
			</div>
			<div class="tools">
				<a title="" data-original-title="" href="javascript:;" class="collapse"></a>
			</div>
		<div class="actions">
         <cfoutput>
			<a class="btn default dark-stripe btn-sm" href="../cron/cron_assign_employee.cfm?Agency_ID=#session.agencyid#&redirect=dash_assess_expire"><b>Fetch latest report</b></a>
			<a class="btn btn-default btn-sm hide"  href="index.cfm?page=dashboard&cat=schedulingcompliance&rpt=downloadassessments_casemgr">Assessments by Case Manager</a>
			<a class="btn btn-default btn-sm hide" href="/agencyadmin/index.cfm?page=agency&cat=OASISManagement&rpt=rolloverAssessments">Rollover Assessments</a>
			<cfif Session.EmpLevel neq 1 AND Session.EmpLevel neq 3 >
				<a class="btn default btn-xs" href="/agencyadmin/index.cfm?page=agency&cat=Communication&rpt=communication_form&ID=0">Send a Communication</a>
			</cfif>
			<input type="button" class="btn default btn-xs" name="Cancel" value="Back" onclick="window.history.back();">
		</cfoutput>
		 </div>
		</div>
		
		<div class="portlet-body form">
		<cfoutput>
<form name="form" id='form' method="post" action="#CGI.SCRIPT_NAME#?#CGI.QUERY_STRING#" onsubmit="javascript:return validate();">
				<div class="form-body">
					<div class="row">
							
							<div class="col-md-4">
                                        <div class="form-group">
                                            <label>From Date              To Date </label>
                                            <div>
                                                <div class="input-group input-large date-picker input-daterange" data-date-format="mm/dd/yyyy">
                                                    <cfparam name='form.df' default='' />
                                                    <cfset df = (IsDate(form.df) ? form.df : '') />
                                                    <input type="text" class="form-control" id="df" name="df" value="<cfoutput>#DateFormat(df, "mm/dd/yyyy")#</cfoutput>" />

                                                    <span class="input-group-addon"> to </span>

                                                    <cfparam name='form.dt' default='' />
                                                    <cfset dt = (IsDate(form.dt) ? form.dt : '') />
                                                    <input type="text" class="form-control" id="dt" name="dt" value="<cfoutput>#DateFormat(dt, "mm/dd/yyyy")#</cfoutput>" />
                                                </div>
                                                <span class="help-block">Date Format: mm/dd/yyyy </span>
                                            </div>
                                        </div>
                                    </div>
						        
						      </div>
				</div>
						
			<cfset startdate="#Form.df#" />
			<cfset enddate="#Form.dt#" />
                       
						<div class="form-actions">
							<input type="submit" value="Submit" class="btn blue">
							<input type="reset" class="btn default" onclick="resetForm();">
			            </div>
		</form>
		</cfoutput>
		</div>
	</div>

<div class="portlet box blue">
		<div class="portlet-title">
			<div class="caption">
				<i class="fa fa-gear"></i>Expiring Assessment List
			</div>
			<div class="tools">
				<a title="" data-original-title="" href="javascript:;" class="collapse"></a>
			</div>
			<div class="actions">
        	<form style="display:inline-block;" method="post" name="export_form" id="export_form" action="index.cfm?page=reports&cat=patients&rpt=dash_assess_expire_export
			<cfif isdefined('Form.df') and isdefined('Form.dt') and Form.df neq ''and  Form.dt neq ''>&fromdate=<cfoutput>#Form.df#</cfoutput>&todate=<cfoutput>#Form.dt#</cfoutput></cfif>">
				<input class="btn btn-default btn-sm hide" style="line-height:1.3;" type="submit" value="Export Report" name="submit">
				<input type="hidden" name="startdate" value="<cfoutput>#Form.df#</cfoutput>">
				<input type="hidden" name="enddate" value="<cfoutput>#Form.dt#</cfoutput>">
			</form>
        </div>
		</div>		
		<div class="portlet-body">
			<table class="table table-striped table-bordered table-hover" id="ExpiringataTables"> 
				<thead>
					<tr> 
						<th>Expiration Date</th> 
						<th>Cert. Start</th> 
						<th>Completed Date</th> 
						<th>Patient Name</th> 
						<th>M0100 Assessment Reason</th> 
						<th>Status</th>
						<th>Expiring<br>Days</th> 
						<!---<th>Transmission Status</th> --->
					</tr> 
				</thead>
				<tbody>
                 
                    <cfoutput query="GetA" group="Assmt_ID">
                    	<cfset todaydate = #DateFormat(now(),"yyyy-mm-dd")# />
                    	<cfset showrecord = false />
                    	<cfset diffdays = 0 />
                    	<cftry>
	                    		<cfif IsDate(Expiration_Date)>
	                    			<cfset diffdays = #DateDiff("d",Expiration_Date,todaydate)# />
                    		</cfif>
                    		<cfcatch>
                    			<cfset diffdays = 0 />
                    		</cfcatch>
                    	</cftry>
                    	<cfset enc_patientid  = encrypt(#Patient_ID#,#application.enckey#,"AES","Hex") /> 
                        <cfset enc_assid      = encrypt(#Assmt_ID#,#application.enckey#,"AES","Hex") />  
                        <cfif diffdays LTE 14 AND diffdays GTE -14>
                           	<cfset showrecord = true />
                        </cfif>
						<cfset showrecord = true />
                         <cfif showrecord EQ true >
							<tr>
								<td>
									<cftry>
										<cfif IsDate(Expiration_Date)>
											#DateFormat(Expiration_Date, "mm/dd/yy")#
										</cfif>
										<cfcatch>
										</cfcatch>
									</cftry>
								</td>
								<td>
									<cftry>
										<cfif IsDate(Certification_Start)>
											#DateFormat(Certification_Start, "mm/dd/yy")#
										</cfif>
										<cfcatch>
										</cfcatch>
									</cftry>
								</td>
								<td>
									<cftry>
										<cfif IsDate(Assessment_Completed_M0090)>
											#DateFormat(Assessment_Completed_M0090, "mm/dd/yy")#
										</cfif>
										<cfcatch>
										</cfcatch>
									</cftry>
								</td>

								<td><a href="../patientadmin_new/index.cfm?page=patient&cat=Patient&id=#enc_patientid#&restrict=1&formonly=1&assid=#enc_assid#&from=missingnotes">#Pt_Last#, #Pt_First#</a></td>
								<td>#Assessment_Reason_M0100#</td>
								<td><cfif admission_status EQ '1'>Complete<cfelse>In Progress</cfif></td> 
								<td>#diffdays#</td>
								<!---<td><cfif Assessment_Reason_M0100 contains '1' or Assessment_Reason_M0100 contains '4'><cfif len(Transmission_status) gt 0 >Dataset has been transmitted</cfif></cfif></td>--->
							</tr>
						</cfif> 
					</cfoutput> 
				</tbody>
			  </table> 
		</div>
</div>

<script>
function validate()
{
	var re = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/; 

	if(document.form.elements['df'].value != '') {
		 if(regs = document.form.elements['df'].value.match(re)) 
	   { 
			if(regs[1] < 1 || regs[1] > 12)
			{ 
			alert("Please enter a valid month"); 
			document.form.elements['df'].focus();
			return false; 
			} 
			
			if(regs[2] < 1 || regs[2] > 31) 
			{ 
			alert("Please enter a valid day"); 
			document.form.elements['df'].focus();
			return false; 
			} 
			
			if(regs[3] < 1900 || regs[3] > 2100)
			{
			alert("Please enter a valid 4 digit year between 1900 and 2100"); 
			document.form.elements['df'].focus();
			return false; 
			} 
		 } 
		else 
		{ 
			alert("The date format should be : mm/dd/yyyy");
			document.form.elements['df'].focus();
			return false;
		}
	  } 
	if(document.form.elements['dt'].value != '') {
		 if(regs = document.form.elements['dt'].value.match(re)) 
	   { 
			if(regs[1] < 1 || regs[1] > 12)
			{ 
			alert("Please enter a valid month"); 
			document.form.elements['dt'].focus();
			return false; 
			} 
			
			if(regs[2] < 1 || regs[2] > 31) 
			{ 
			alert("Please enter a valid day"); 
			document.form.elements['dt'].focus();
			return false; 
			} 
			
			if(regs[3] < 1900 || regs[3] > 2100)
			{
			alert("Please enter a valid 4 digit year between 1900 and 2100"); 
			document.form.elements['dt'].focus();
			return false; 
			} 
		 } 
		else 
		{ 
			alert("The date format should be : mm/dd/yyyy");
			document.form.elements['dt'].focus();
			return false;
		}
	  } 
	  
	  }
</script>

<script>
		function resetForm() {
document.form.elements['df'].value='';
document.form.elements['dt'].value='';
		}
	</script>



<!--- #10585: Refresh Dash_emp_count when report is opened --->
<cfset Request.dashEmpCounts = StructNew()>
<cfloop query="GetA">
	<cfset _eid = Val(AssignedEmpID)>
	<cfif _eid EQ 0><cfset _eid = 2></cfif>
	<cfif NOT StructKeyExists(Request.dashEmpCounts, _eid)>
		<cfset Request.dashEmpCounts[_eid] = 0>
	</cfif>
	<cfset Request.dashEmpCounts[_eid] = Request.dashEmpCounts[_eid] + 1>
</cfloop>
<cfif session.IsAgencyLogin EQ 0 AND session.earole contains 'Field' AND session.eaRole does not contain 'Project Manager' AND session.eaRole does not contain 'Quality'>
	<cfquery name="markDashCountForLoggedEmployee" datasource="#Application.DataSrc#">
		UPDATE #Request.prefix_db_agency#.Dash_emp_count SET status = 1
		WHERE status = 0 AND Header = <cfqueryparam value="expire OASIS" cfsqltype="CF_SQL_VARCHAR">
		AND Emp_ID = <cfqueryparam value="#session.employeeid#" cfsqltype="CF_SQL_INTEGER">
	</cfquery>
	<cfquery name="insertDashEmpCount" datasource="#Application.DataSrc#">
		INSERT INTO #Request.prefix_db_agency#.Dash_emp_count (Daily_QA_Date, Emp_ID, Emp_Count, Header, Created_Date, status)
		VALUES (
			<cfqueryparam value="#DateFormat(Now(), 'yyyy-mm-dd')#" cfsqltype="CF_SQL_DATE">,
			<cfqueryparam value="#session.employeeid#" cfsqltype="CF_SQL_INTEGER">,
			<cfqueryparam value="#GetA.recordCount#" cfsqltype="CF_SQL_INTEGER">,
			<cfqueryparam value="expire OASIS" cfsqltype="CF_SQL_VARCHAR">,
			<cfqueryparam value="#Now()#" cfsqltype="CF_SQL_TIMESTAMP">,
			<cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">
		)
	</cfquery>
<cfelse>
	<cfset Request.dashEmpCountHeader = "expire OASIS">
	<cfinclude template="dash_emp_count_refresh_inc.cfm">
</cfif>
