<cfparam name ="url.ID" default= '0'>
<!--- <cfif getTimeZone.svc_dataset EQ 1>
	<p>you donot have access for this page</p>
</cfif>--->
<cfquery  name="GetRAP" datasource="#Application.DataSrc#"> 
 SELECT  pPatients.Patient_ID, pPatients.Pt_Last AS  Last_Name_M0040,
 pPatients.Pt_First AS First_Name_M0040, pPatients.Status AS PatStat, "" AS DOC,
 pEmployee.Emp_Last AS Last_Name, pEmployee.Emp_First AS First_Name,
        pSchedules.Schedule_ID, pSchedules.PtPayer_ID, "" AS ApproveBill, 
                    pSchedules.Nonbillable,  pSchedules.Visit_Date,
                    DATEDIFF(now(),pAssessments.F177) AS aging,
                    CASE
                    WHEN DATEDIFF(pSchedules.Visit_Date,pAssessments.F177) <= 30 THEN pAssessments.F177
                    WHEN DATEDIFF(pSchedules.Visit_Date,pAssessments.F177) > 30 THEN  DATE_ADD(pAssessments.F177, INTERVAL 31 DAY)
                    ELSE  pAssessments.F177
                    END as start_date,
                    CASE
                    WHEN DATEDIFF(pSchedules.Visit_Date,pAssessments.F177) <= 30 THEN DATE_ADD(pAssessments.F177, INTERVAL 30 DAY)
                    WHEN DATEDIFF(pSchedules.Visit_Date,pAssessments.F177) > 30 THEN  pAssessments.F178
                    ELSE  pAssessments.F178
                    END as end_date,
                    pSchedules.Total_Units,
                    (SELECT count(*) FROM #Request.prefix_db_agency#.pCMS4857
					WHERE  Assmt_ID =  pAssessments.Assmt_ID
					AND  Status = 0
					AND (Form_Type="Form 485" OR Form_Type="Form 487") ) AS orders485,

						(SELECT pAss.F25 FROM #Request.prefix_db_agency#.pAssessments pAss
				  WHERE pAss.Patient_ID =  pAssessments.Patient_ID
				  AND pAss.Admit_ID = pAssessments.Admit_ID
				  AND pAss.F26 =  ( CASE 
									WHEN (pSchedules.Visit_Type = "1 - SOC - SN" )  THEN '1 - Start of care - further visits planned'
									WHEN (pSchedules.Visit_Type = "1 - SOC - PT" ) THEN '1 - Start of care - further visits planned - Physical Therapy'
									WHEN (pSchedules.Visit_Type = "1 - SOC - OT" ) THEN '1 - Start of care - further visits planned - Occupational Therapy'
									WHEN (pSchedules.Visit_Type = "3 - ROC - SN"  || pSchedules.Visit_Type = "3 - ROC - PT") THEN '3 - Resumption of care (after inpatient stay)'
									WHEN (pSchedules.Visit_Type = "PT Eval" ) THEN 'PT Adult Evaluation'
									WHEN (pSchedules.Visit_Type = "OT Eval" ) THEN 'OT Adult Evaluation'
									WHEN (pSchedules.Visit_Type = "ST Eval" ) THEN 'ST Adult Evaluation'
									WHEN (pSchedules.Visit_Type = "SN Eval" ) THEN 'SN Adult Evaluation'
									WHEN (pSchedules.Visit_Type = "MSW Eval" ) THEN 'MSW Evaluation'
									WHEN (pSchedules.Visit_Type = "PT FU Eval" ) THEN 'PT Followup'
							    WHEN (pSchedules.Visit_Type = "OT FU Eval" ) THEN 'OT Followup'
							    WHEN (pSchedules.Visit_Type = "ST FU Eval" ) THEN 'ST Followup'
							    WHEN (pSchedules.Visit_Type = "MSW FU Eval" ) THEN 'MSW Followup'
							    WHEN (pSchedules.Visit_Type = "SN FU Eval" ) THEN 'SN Followup'
							    WHEN (pSchedules.Visit_Type = "Hospice Comprehensive" ) THEN 'Hospice Comprehensive'
							    WHEN (pSchedules.Visit_Type = "SN Hospice" ) THEN 'SN Hospice'
							    WHEN (pSchedules.Visit_Type = "Chaplain Comprehensive Evaluation" ) THEN 'Chaplain Comprehensive Evaluation'
							    WHEN (pSchedules.Visit_Type = "Hospice Discharge" ) THEN 'Hospice Discharge'
									WHEN (pSchedules.Visit_Type = "4 - Recertification" ) THEN '4 - Recertification (follow-up) reassessment'
									WHEN (pSchedules.Visit_Type = "4 - Recertification PT" ) THEN '4 - Recertification (follow-up) reassessment - PT'
									WHEN (pSchedules.Visit_Type = "4 - Recertification OT" ) THEN '4 - Recertification (follow-up) reassessment - OT'
									WHEN (pSchedules.Visit_Type = "5 - Other follow-up" ) THEN '5 - Other follow-up'
									WHEN (pSchedules.Visit_Type = "6 - Transfer no discharge" ) THEN '6 - Transferred to an inpatient facility - patient not discharged from agency'
									WHEN (pSchedules.Visit_Type = "7 - Transfer discharged" ) THEN '7 - Transferred to an inpatient facility - patient discharged from agency'
									WHEN (pSchedules.Visit_Type = "8 - Death" ) THEN '8 - Death at home'
									WHEN (pSchedules.Visit_Type = "9 - Discharge from agency" ) THEN '9 - Discharge from agency'
							ELSE 0
							END )
				  AND pAss.Status = 0  AND pSchedules.Visit_Date = pAss.F176
				  ORDER BY F25 ASC LIMIT 0,1) AS assessments_completed,

                    (SELECT count(*) FROM #Request.prefix_db_agency#.pSchedules
				  WHERE pSchedules.Status = 0 
				  AND pAssessments.Assmt_ID = pSchedules.Assmt_ID
				  AND pSchedules.Invoice_ID != 0 AND pSchedules.NOA != 0 ) AS invoicecount,
                    "" AS Output_Type, "" AS EClaimed, pSchedules.Skill AS Type,pSchedules.Emp_ID,
                    pAssessments.F26 AS Assessment_Reason_M0100, pAssessments.F177, '' AS TRANSTATUS,  
                    pAssessments.F26 AS Reason, "complete" AS Status, 0 AS Assessment_Number,
                    pAssessments.Assmt_ID, pAssessments.F177 AS Certification_Start,pAssessments.F178 AS Certification_End,
                    DATE_ADD(pAssessments.F177, INTERVAL 30 DAY) AS interval_30_day,
                    pAssessments.F178, pAssessments.F300 AS HIPPS_Code, '' AS Homebound_Status,
                    pSchedules.Invoice_ID, 0 AS Invoice_ID2,  pPayer.Pay_ID AS Payer_ID, pPayer.Pay_ID AS PAYID,
                     pPayer.Output as PAYOUT, pPayer.Pay_Name, "" AS notes,
                     pPayer.Pay_ID AS PPAYID, pPayer.Pay_Name, pPayer.Output AS POUT,pPayer.Submitter_ID,pPayer.Receiver_ID,
                     pPayer.PayerSource,pPayer.Payer_No,"1" AS Provider_ID  
                    FROM #Request.prefix_db_agency#.pSchedules 
                    JOIN #Request.prefix_db_agency#.pPatients ON pPatients.Patient_ID = pSchedules.Patient_ID
                    JOIN #Request.prefix_db_lookup#.pEmployee ON   pSchedules.Emp_ID = pEmployee.Emp_ID 
                    JOIN #Request.prefix_db_agency#.pAssessments ON pAssessments.Assmt_ID = pSchedules.Assmt_ID
                    JOIN #Request.prefix_db_agency#.pPtPayer on pSchedules.PtPayer_ID =  pPtPayer.PtPayer_ID
                    JOIN #Request.prefix_db_agency#.pPayer  on  pPtPayer.Payer_ID =  pPayer.Pay_ID 
                    WHERE pPatients.Status < 2
                    AND pSchedules.Status = 0
                    AND pAssessments.Status = 0
                    AND pSchedules.Missed = '0'
                    AND pPayer.NOA_req = 1                         
                    AND pSchedules.Invoice_ID = 0
                    AND pSchedules.Nonbillable = 0
                    AND pPtPayer.status = 0
                     AND pSchedules.NOA = 0 
					 AND pSchedules.Visit_Date  <= Now()
                    <!---  AND pSchedules.pgnotesdraft = 2
                    AND pSchedules.Initial_visit = 1  --->
                    AND pSchedules.Visit_Type like '1%'
                    <!---  AND pAssessments.Assmt_ID NOT IN ( SELECT Assmt_ID FROM #Request.prefix_db_agency#.pSchedules
                      WHERE Status = 0 
                      AND (Invoice_ID != 0 OR NOA != 0 )
                      GROUP BY Assmt_ID ) --->
                     AND pAssessments.F26 like '1%' 
                   <!--- AND pPayer.Output = 'Medicare' --->
                    GROUP BY pSchedules.Assmt_ID
                    ORDER BY First_Name_M0040,pSchedules.Visit_Date ASC
</cfquery>
<!-- BEGIN RESPONSIVE TABLE PORTLET-->
<div class="portlet box red">
	<div class="portlet-title">
		<div class="caption"><i class="fa fa-gear"></i> NOAs Ready to Bill</div>
        <div class="tools"><a href="javascript:;" class="collapse"></a></div>
        <div class="actions"> <a href="javascript:;" class="btn btn-default btn-sm" onclick="history.back();"> <i class="fa fa-arrow-circle-left"></i> Back </a></div>
	</div>
	<div class="portlet-body flip-scroll">
		<cfif getTimeZone.Wage_Index eq ''>
			<p>
				<font color="##CC66FF">Wage Index has not been set in the Agency Form. You will not be able to process RAPs.</font>
			</p>
		</cfif>
		 <cfset Emp_noa_count = 0 >
		 <cfset noaByEmp = StructNew()>
		<table class="table table-bordered table-striped table-condensed flip-content" style="width:50%;">
			<cfset PayerIDS = #ValueList(GetRAP.Payer_ID)# />
			<cfset Payer_IDS = listRemoveDuplicates(PayerIDS, ",", true) />
			    
			    <cfquery  name="getpayer" datasource="#Application.DataSrc#"> 
			         SELECT * FROM  #Request.prefix_db_agency#.pPtPayer 
			         JOIN #Request.prefix_db_agency#.pPayer  on  pPtPayer.Payer_ID =  pPayer.Pay_ID
			         WHERE <!--- pPayer.Output = 'Medicare'  AND  --->
			         pPayer.status = 0
			         GROUP BY pPayer.Pay_ID
			    </cfquery>

			    
			    <cfoutput query="getpayer"  group="Pay_ID">
			        <cfset RAP_count = 0 >
			        <cfset Pay_Name = #getpayer.Pay_Name# />
			        <cfquery  name="getrapcount" dbtype="query">
			            SELECT * FROM GetRAP 
			            WHERE Payer_ID = '#Pay_ID#'
			            AND invoicecount = 0
			            AND aging >= 0
			            <!--- AND orders485 > 0  
			            AND assessments_completed > 0  --->
			        </cfquery> 
			        <cfset RAP_count = RAP_count + getrapcount.recordcount >
			        <cfset Pay_Name =  #getpayer.Pay_Name# />
			        <cfset Payer_ID =  #getpayer.Payer_ID# />
			        <cfloop query="getrapcount">
			        	<cfset _eidN = Val(Emp_ID)>
			        	<cfif _eidN EQ 0><cfset _eidN = 2></cfif>
			        	<cfif NOT StructKeyExists(noaByEmp, _eidN)>
			        		<cfset noaByEmp[_eidN] = 0>
			        	</cfif>
			        	<cfset noaByEmp[_eidN] = noaByEmp[_eidN] + 1>
			        </cfloop>
			        <tbody>
			            <cfif RAP_count gt 0 > 
			            	 <cfset Emp_noa_count = Emp_noa_count + RAP_count >
			                <tr>
			                     <td>#Pay_Name#</td>
			                    <td> <a href="index.cfm?aMenu=billing&page=agency&cat=#url.cat#&rpt=visit_compliance_NOAs&ID=#Pay_ID#&type=RAP">#RAP_count#</a>
			                    </td>
			                      <td>
			                     	    <cfset pay_enc_id = encrypt(#getpayer.Pay_ID#,#application.enckey#,"AES","Hex") />
			                     		<cfif Submitter_ID eq '' or Receiver_ID eq '' or Output eq 'no output' or PayerSource eq '0' or Payer_No eq '' >
												<a href="index.cfm?page=agency&cat=AgencyManagement&rpt=payer_form&ID=#pay_enc_id#"><font color="##FF6699">No. Fix now.</font>
										<cfelse>
                          <font color="##66CC33">YES</font></a>
										</cfif>

			                     </td>
			                </tr>
			            </cfif>
			        </tbody>
			    </cfoutput>   
           
		</table>
	</div>
</div>
<!-- END RESPONSIVE TABLE PORTLET-->
<cfif structKeyExists(session, "AgencyId") AND isNumeric(session.AgencyId) AND ( (structKeyExists(session,"IsAgencyLogin") AND session.IsAgencyLogin EQ 1) OR (structKeyExists(session,"earole") AND session.earole contains 'Project Manager') )>
	<cfquery name="updateAgencyNoaCount" datasource="#Application.DataSrc#">
         UPDATE #Request.prefix_db_lookup#.Agency
          SET   noa_count = <cfqueryparam value="#Val(Emp_noa_count)#" cfsqltype="CF_SQL_INTEGER">
          WHERE Agency_ID = <cfqueryparam value="#session.AgencyId#" cfsqltype="CF_SQL_INTEGER">
    </cfquery>
</cfif>
<cfif session.IsAgencyLogin EQ 0>
	<cfquery name="updateEmployeecounts" datasource="#Application.DataSrc#">
         UPDATE #Request.prefix_db_lookup#.pEmployee
          SET   Emp_noa_count = #Emp_noa_count#
          WHERE Emp_ID =  #session.EmployeeID#
    </cfquery>  
</cfif>
    

<!--- #10585: Refresh Dash_emp_count when report is opened --->
<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="NOA" cfsqltype="CF_SQL_VARCHAR">
		AND Emp_ID = <cfqueryparam value="#session.employeeid#" cfsqltype="CF_SQL_INTEGER">
	</cfquery>
	<cfset _myNoa = 0>
	<cfif StructKeyExists(noaByEmp, session.employeeid)>
		<cfset _myNoa = noaByEmp[session.employeeid]>
	<cfelseif StructKeyExists(noaByEmp, Val(session.employeeid))>
		<cfset _myNoa = noaByEmp[Val(session.employeeid)]>
	</cfif>
	<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="#_myNoa#" cfsqltype="CF_SQL_INTEGER">,
			<cfqueryparam value="NOA" cfsqltype="CF_SQL_VARCHAR">,
			<cfqueryparam value="#Now()#" cfsqltype="CF_SQL_TIMESTAMP">,
			<cfqueryparam value="0" cfsqltype="CF_SQL_INTEGER">
		)
	</cfquery>
<cfelse>
	<cfset Request.dashEmpCounts = noaByEmp>
	<cfset Request.dashEmpCountHeader = "NOA">
	<cfinclude template="../dashboard/dash_emp_count_refresh_inc.cfm">
</cfif>
