<cfif Not isDefined('form.Emp_ID') or form.Emp_ID eq ''>
	<cfset form.Emp_ID = 0>
</cfif>
<cfif Not isDefined('form.Pay_ID') or form.Pay_ID eq ''>
	<cfset form.Pay_ID = 0>
</cfif>

<cfif isDefined('form.EmpPay_ID')>
	<cfset form.Pay_ID = form.EmpPay_ID>
</cfif>
<!--- <cfif CGI.REMOTE_ADDR NEQ '103.143.7.161'>
	<cfabort>
</cfif> --->
<cfparam name="form.addsign" default="0">
<cfparam name="form.evv_reason_code_id" default="0">
<cfparam name="form.evv_change_memo" default="">
<!--- Normalize EVV fields so empty/invalid post values do not cause validation or query issues --->
<cfif NOT isNumeric(form.evv_reason_code_id) OR form.evv_reason_code_id LTE 0>
	<cfset form.evv_reason_code_id = 0>
</cfif>
<cfif NOT structKeyExists(form, "evv_change_memo") OR NOT isSimpleValue(form.evv_change_memo)>
	<cfset form.evv_change_memo = "">
</cfif>
<cfparam name="form.Skill" default="">
<cfparam name="form.HCPCS_ID" default="0">
<cfparam name="form.pgnotesdraft" default="0">
<cfparam name="form.Nonbillable" default="0">
<cfparam name="form.Auth_ID" default="0">
<cfparam name="form.schgoals_not_met" default="">
<cfparam name="form.unstable_action" default="">
<cfparam name="form.EVV_Override" default="0">
<cfif NOT isNumeric(form.EVV_Override)>
	<cfset form.EVV_Override = 0>
</cfif>

<cfset allow_auth_change_on_visit = (session.eaRole contains 'Project Manager' OR session.eaRole contains 'Scheduling' OR session.eaRole contains 'Quality' OR session.eaRole contains 'QA')>

<cfif NOT allow_auth_change_on_visit AND isDefined('form.SID') AND val(form.SID) GT 0 AND isDefined('form.Patient_ID') AND isNumeric(form.Patient_ID)>
	<cfquery name="getCurrentScheduleAuth" datasource="#Application.DataSrc#">
		SELECT Auth_ID
		FROM #Request.prefix_db_agency#.pSchedules
		WHERE Schedule_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.SID#">
		AND Patient_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#form.Patient_ID#">
		AND Status = 0
		LIMIT 1
	</cfquery>
	<cfif getCurrentScheduleAuth.recordcount GT 0>
		<cfset form.Auth_ID = getCurrentScheduleAuth.Auth_ID>
	</cfif>
</cfif>
<cfinclude template='/__Security-Block.cfm' />
<cfif IsDefined("form.Patient_ID")>
	<cfset formPatientIdVal = Val(form.Patient_ID)>
	<cfif formPatientIdVal EQ 0>
		<div class="portlet box blue">
			<div class="portlet-title">
				<div class="caption">
					<i class="fa fa-gear"></i> Incomplete or Incorrect
				</div>
				<div class="tools">
					<a href="javascript:;" class="expand">
					</a>
				</div>
			</div>
			<div class="portlet-body">
				<h4>The information you provided in the form was incomplete or incorrect. Please take a moment to review the following list:</h4>
				<p><strong>Patient ID is missing.</strong> Please go back and open the visit from the patient chart, then try again.</p>
				<input class="btn blue" type="button" value="Go Back" onClick="history.back()">
			</div>
		</div>
	 	<cfabort>
	</cfif>
</cfif>
<!--- Calculate EClaim and QB Totals --->

<!--- Authorization_error email send start --->
	<cfif form.Auth_ID EQ '' OR form.Auth_ID EQ  0>
       <cfmail to="#request.send_errors_to#" from="error@myhomecarebiz.com" subject="Authorization Error when update visits" type="html">
   			     <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
               		 <p><b>An error occurred on the website.</b></p>
										<cfif Request.prefix_db_agency eq "prefix_db_agency_invalid">
                        <h2>Prefix Error: Prefix Was  Not Supplied</h2>
                    <cfelseif not isDefined("Request.Agency_ID")>
                        <h2>Prefix Error: Invalid Prefix Supplied</h2>
                    </cfif>
								 		<table align=left>
                        <tr>
                            <td nowrap valign=top><b>Error Date/Time</b></td>
                            <td>#DateFormat(now(),"mm/dd/yyyy")# #TimeFormat(now(),"hh:mm:ss")#</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>Template</b></td>
                            <td>/var/www/patientadmin_new/patient/patientvisit_action.cfm</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>Error Information</b></td>
                            <td>Authorization ID is zero</td>
                        </tr>
                        <tr> <td nowrap valign=top colspan=2><hr></td></tr>

                        <cfif isDefined("session.agencyname")>
                            <tr>
                                <td nowrap valign=top><b>Agency Login</b></td>
                                <td>#session.agencylogin#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>Agency Name</b></td>
                                <td>#session.agencyname#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>Agency ID</b></td>
                                <td>#session.agencyid#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>Display Name</b></td>
                                <td>#session.display#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>User ID</b></td>
                                <td>#Session.EmployeeID#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>User Name</b></td>
                                <td>#session.username#</td>
                            </tr>
                        </cfif>

                        <tr>
                            <td nowrap valign=top colspan=2><hr></td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>Server</b></td>
                            <td>#CGI.SERVER_NAME#</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>DSN</b></td>
                            <td>#Application.DataSrc#</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top colspan=2><hr></td>
                        </tr>
                        <tr>
                            <td nowrap valign=top colspan=2>
                                <b>Form Variables:</b><br />
                                <cfdump var="#FORM#"><br>

                                <b>URL Variables:</b><br />
                                <cfdump var="#URL#"><br>

                                <b>Request Variables:</b><br />
                                <cfdump var="#Request#"><br>

                                <b>Session Variables:</b><br />
                                <cfdump var="#Session#"><br>
                            </td>
                        </tr>
                    </table>
               </font>
       </cfmail>
       <h1 class="MainTitle" style="font-size:2.6rem; font-weight:bold;">Oops! Something went wrong. Sorry!!</h1>
	      <p class="Main Description" style="font-size:1.5rem; font-weight:bold;">
	       Technical problems are preventing the server from displaying this page. <br/> A detailed message is being sent to the site administrator regarding this problem and We're Working on it and we'll get it fixed as soons as we can.<br/>
	      <a href="javascript:history.back();"> Go Back</a> <br/> </p>
			<cfabort>
	</cfif>


<cfset form.Total_EPay = 00.00>
<cfset form.Total_Units = 0>
<cfset form.Total_EClaim = 0>
<cfset form.Total_QB = 0>
<cfparam name="form.SuperVision" default="0">
<cfparam name="form.Initial_visit" default="0">
<cfparam name="form.Followup_visit" default="0">
<cfparam name="form.prn_visit" default="0">
<cfparam name="url.close" default=-1>
<cfparam name="url.thedate" default=''>
<cfparam name="form.thedate" default=''>
<cfset form.Total_Hours = "0.00">
<cfparam name="form.view" default='day'>

<cfif NOT isDefined("form.AID") OR Not isDefined('session.AgencyId') OR session.AgencyId eq ''>
	<div class="portlet box red">
			<div class="portlet-title">
				<div class="caption">
					<i class="fa fa-gear"></i> Timed Out
				</div>
				<div class="tools">
					<a href="javascript:;" class="expand">
					</a>
				</div>
			</div>
			<div class="portlet-body">
				<h4>Your session has Timed Out. </h4>
				<p>Please <a href='/'>Sign In</a> again to continue.</p>
			</div>
	</div>
<!---<cfelseif form.AID eq 0>
  <div class="portlet box red">
		<div class="portlet-title">
			<div class="caption">
				<i class="fa fa-gear"></i> Incomplete or Incorrect
			</div>
			<div class="tools">
				<a href="javascript:;" class="expand">
				</a>
			</div>
		</div>
		<div class="portlet-body">
			<h4>The information you provided in the form was incomplete or incorrect.  Please take a moment to review the following list:</h4>
			<input class="btn blue" type="button" value="Go Back" onClick="history.back()">
		</div>
	</div>
	<cfabort> --->
<cfelse>
	<cfset Session.CS.AssessmentID=#form.Assmt_ID_Temp# >

	<cfquery  name="GetRev" datasource="#Application.DataSrc#">
		SELECT * FROM   #Request.prefix_db_agency#.pRevenue_Code 
		WHERE  Rev_CodeID IN (SELECT Rev_ID FROM #Request.prefix_db_agency#.pAuths WHERE Auth_ID =<cfqueryparam cfsqltype="cf_sql_integer" value="#form.Auth_ID#"> AND Status = 0 GROUP BY Auth_ID )
	</cfquery>

	<cfquery  name="GetAuth" datasource="#Application.DataSrc#">
		SELECT * FROM #Request.prefix_db_agency#.pAuths WHERE Auth_ID =<cfqueryparam cfsqltype="cf_sql_integer" value="#form.Auth_ID#"> AND Status = 0 
		GROUP BY Auth_ID 
	</cfquery>

	<cfif GetRev.RecordCount eq 1>
		 <cfif isdefined("session.rollover") and  session.rollover eq 1 and isdefined("session.Visit_Type")>
		  <cfset form.Skill = #session.Visit_Type#>
		 <cfelse>
		  <cfset form.Skill = #getrev.visit_type#>
		 </cfif>
	<cfelse>
	 	  <cfset form.Skill = #form.Skill#>
	</cfif>

	<cfif #form.StartTime# IS NOT "" AND #form.EndTime# IS NOT "">
		<!--- Determine number of minutes (n) apart ---> 
		<cfset diff = #DateDiff("n", form.StartTime, form.EndTime)#>  	 
		<!--- Calculate number of units (4 per hour) --->
		<cfset form.Total_Units = (#diff#/60)*100/25>
		<cfif form.Total_Units lt 0>
		  	<cfset form.Total_Units=form.Total_Units+96>
		</cfif>
	  	<cfset form.Total_Hours = (#diff#/15)*25/100>
	  	<cfif form.Total_Hours lt 0>
	   		<cfset form.Total_Hours = form.Total_Hours + 24 />
	  	</cfif>  
		<cfset  form.Total_Hours=#DecimalFormat(form.Total_Hours)#>
	 		<!--- <cfif form.Rev_CodeID NEQ '' or form.Rev_CodeID NEQ 0>
			  	<cfif #GetRev.Measure# IS "1">
				   	<cfset form.Total_EClaim = #Total_Hours# * #GetRev.EClaim_Price#>
				   	<cfset form.Total_QB = #Total_Hours# * #GetRev.Quick_Books_Price#>
				 </cfif>
			  	<cfif #GetRev.Measure# IS ".25">
					  	<cfif #GetRev.Tier# IS 1>
						  		<cfif form.Total_Units GT #GetRev.Units#>
					          <cfset Leftover = form.Total_Units - #GetRev.Units#>
					          <cfset LeftoverCharge = Leftover*#GetRev.Balance#>
				              <cfif LeftoverCharge GT 0>
				                  <cfset form.Total_EClaim = LeftoverCharge + #GetRev.EClaim_Price#>
				              <cfelse>
				                  <cfset form.Total_EClaim =#GetRev.EClaim_Price#>
				              </cfif>
					      	<cfelse>
					          <cfset form.Total_EClaim =#GetRev.EClaim_Price#>
					     		</cfif>
					  	<cfelse>
					   		<cfset form.Total_EClaim = #Total_Units# * #GetRev.EClaim_Price#>
					   		<cfset form.Total_QB = #Total_Units# * #GetRev.Quick_Books_Price#>
					  	</cfif> 
		 			</cfif>
				  <cfif #GetRev.Measure# IS "visit">
					   <cfset form.Total_EClaim = 1 * #GetRev.EClaim_Price#>
					   <cfset form.Total_QB = 1 * #GetRev.Quick_Books_Price#>
				  </cfif>
			</cfif> 
			<cfif #form.EmpPay_ID# IS NOT 0>
			  <cfif #GetEPay.Measure# IS "visit">
			  		<cfset form.Total_EPay = 1 * #GetEPay.Pay_Rate#>
				</cfif>
			  <cfif #GetEPay.Measure# IS "hourly">
			   		<cfset form.Total_EPay = #Total_Hours# * #GetEPay.Pay_Rate#>
			  </cfif>
			  <cfif #GetEPay.Measure# IS "salary">
			   		<cfset form.Total_EPay = 00.00>
			  </cfif>
	 		</cfif>--->
	<cfelse>
			<cfset form.Total_EPay = 00.00>
			<cfset form.Total_Units = 0>
			<cfset form.Total_EClaim = 0>
			<cfset form.Total_QB = 0>
	</cfif>

	<!--- Override time-based values for units/hours auth_measure --->
	<cfif IsDefined("getauthorizations") AND getauthorizations.recordcount GT 0 AND StructKeyExists(getauthorizations, "auth_measure") AND (getauthorizations.auth_measure EQ 'units' OR getauthorizations.auth_measure EQ 'hours')>
		<!--- For units/hours auth_measure, set time-based values to 0 (no time calculation required) --->
		<cfset form.Total_Units = 0>
		<cfset form.Total_Hours = 0>
		<cfset form.Total_EClaim = 0>
		<cfset form.Total_QB = 0>
		<cfset form.Total_EPay = 0>
	</cfif>

	<cfif #GetRev.Rev_CodeID# IS NOT "">
	  <cfset form.Rev_Code = #Trim(GetRev.Rev_Code)#>
	  <cfset form.HCPCS = #GetRev.HCPCS#>
	  <cfset form.Bill_Type = #GetRev.Description#>
	</cfif>

	<!--- Require HCPCS on billable, non-missed visits (prevents EVV transmit with missing/wrong default code) --->
	<cfparam name="form.Missed" default="0">
	<cfif Val(form.Missed) EQ 0 AND Val(form.Nonbillable) EQ 0>
		<cfset hcpcsIdValue = Val(form.HCPCS_ID)>
		<cfif hcpcsIdValue LTE 0>
			<div class="portlet box red">
				<div class="portlet-title">
					<div class="caption">
						<i class="fa fa-gear"></i> HCPCS Required
					</div>
				</div>
				<div class="portlet-body">
					<h4>HCPCS and Modifier is required. Please select an HCPCS code on the visit screen before saving.</h4>
					<input class="btn blue" type="button" value="Go Back" onClick="history.back()">
				</div>
			</div>
			<cfabort>
		</cfif>
	</cfif>

	<!--- <cfif isdefined('form.Paperwork')>
		<cfif #form.Paperwork# IS NOT "">
			<cfif #form.Paperwork# does not contain ".">
		   		<cfset Paperwork = (#form.Paperwork#/15)*25/100>
		   		<cfset form.Paperwork = Paperwork>
		    <cfelse>
		    	<cfset form.Paperwork = Paperwork>
		    </cfif>
		<cfelse>
		  <cfset Travel = 0>
		   <cfset form.Travel = Travel>
		</cfif>
	</cfif>

	<cfif isdefined('form.Travel')>
		<cfif #form.Travel# IS NOT "">
			<cfif #form.Travel# does not contain ".">
		   		<cfset Travel = (#form.Travel#/15)*25/100>
		   		<cfset form.Travel = Travel>
		    <cfelse>
		    	<cfset form.Travel = Travel>
		    </cfif>
		<cfelse>
		  <cfset Travel = 0>
		   <cfset form.Travel = Travel>
		</cfif>
	</cfif> --->

	<cfif session.eaSchedule eq "1">
		<cfif #parameterexists(form.Mi_Pay)# >
			<cfset form.Mi_Pay = #form.Mi_Pay#>
		<cfelse>
			<cfset form.Mi_Pay = 0>
		</cfif>
	<cfelse>
		<cfset form.Mi_Pay = 1>
	</cfif>

	<cfset form.Pay_ID = #form.Pay_ID#>
	<cfif GetAuth.RecordCount gt 0 >
		<cfset form.PtPayer_ID = #GetAuth.PtPayer_ID# />
		<cfset form.Rev_ID = #GetAuth.Rev_ID# />
	<cfelse>	
		<cfset form.Rev_ID  = 0 />
		<cfset form.PtPayer_ID = 0 >
	</cfif>

	<cfset form.Record_Creation_Date = "#Now()#" />
	<cfset form.Record_Created_By = #session.employeeid# />
	<cfset form.Record_Mod_Date = #Now()# />
	<cfset form.Record_Mod_By = #session.employeeid# />
	<cfset DoCommit = 1>

	<cfif form.SID EQ 0 >
		 	<cfquery  name="getvisitno" datasource="#Application.DataSrc#">
	        SELECT IFNULL(MAX(Visit_no),0)+1 As pVisit_no FROM #Request.prefix_db_agency#.pSchedules 
	        WHERE Patient_ID = <cfqueryparam VALUE="#form.Patient_ID#"  cfsqltype="cf_sql_integer">
	        AND Assmt_ID = <cfqueryparam VALUE="#form.Assmt_ID_Temp#"  cfsqltype="cf_sql_integer">
	        <!---- AND Auth_ID = <cfqueryparam VALUE="#form.Auth_ID#"  cfsqltype="cf_sql_integer"> --->
	        AND Status = <cfqueryparam VALUE="0"  cfsqltype="cf_sql_integer">
			</cfquery>
			<cfset pVisit_no = getvisitno.pVisit_no />
	<cfelse>
			<cfquery  name="getvisitno" datasource="#Application.DataSrc#">
        SELECT Visit_no As pVisit_no FROM #Request.prefix_db_agency#.pSchedules 
         WHERE  Patient_ID = <cfqueryparam VALUE="#Form.Patient_ID#"  cfsqltype="cf_sql_integer">
         AND Assmt_ID = <cfqueryparam VALUE="#form.Assmt_ID_Temp#"  cfsqltype="cf_sql_integer">
         AND Schedule_ID = <cfqueryparam VALUE="#form.SID#"  cfsqltype="cf_sql_integer">
         AND Status = 0
		  </cfquery>
			<cfset pVisit_no = getvisitno.pVisit_no />
	</cfif>

	<cfif form.SID NEQ 0 >
		<cfquery  name="getcurrentvisits" datasource="#Application.DataSrc#">
	      SELECT pSchedules.* FROM #Request.prefix_db_agency#.pSchedules 
	      WHERE Patient_ID = <cfqueryparam VALUE="#form.Patient_ID#"  cfsqltype="cf_sql_integer">
	      AND Assmt_ID = <cfqueryparam VALUE="#form.Assmt_ID_Temp#"  cfsqltype="cf_sql_integer">
	      AND Status = <cfqueryparam VALUE="0"  cfsqltype="cf_sql_integer">
	      AND Schedule_ID = <cfqueryparam VALUE="#form.SID#"  cfsqltype="cf_sql_integer"> 
		</cfquery>

		<cfif NOT isDefined("form.Visit_Date")  OR session.eaScheduling does not contain  'edit_visit_date'>
				<cfset form.Visit_Date = getcurrentvisits.Visit_Date />
		</cfif>
		<cfif NOT isDefined("form.Emp_ID") OR session.eaScheduling does not contain  'edit_employee'>
				<cfset form.Emp_ID = getcurrentvisits.Emp_ID />
		</cfif>
		<cfif  session.eaScheduling does not contain  'edit_payroll_code'>
				<cfset form.Pay_ID = getcurrentvisits.Pay_ID />
		</cfif>
		<cfif  session.eaScheduling does not contain  'edit_visit_type'>
				<cfset form.assvisit_type = getcurrentvisits.Visit_Type />
		</cfif>
		<cfset form.patient_sign =  #getcurrentvisits.patient_sign# />
		<cfset form.sign_datetime  =  #getcurrentvisits.sign_datetime# />
		<cfset form.Sch_Longitude  =  #getcurrentvisits.Sch_Longitude# />
		<cfset form.Sch_Latitude  =  #getcurrentvisits.Sch_Latitude# />
		<cfset form.NOA  =  #getcurrentvisits.NOA# />
	</cfif>






	<cfif form.SID EQ 0>  
		<cftransaction>
		    <cftry>
		        <cfquery  name="getschedule" datasource="#Application.DataSrc#">
		                   SELECT IFNULL(MAX(Schedule_ID),0)+1 As pSchedule_ID FROM #Request.prefix_db_agency#.pSchedules 
		        </cfquery>
		        <cfset pSchedule_ID =  #getschedule.pSchedule_ID# />
		       <cfcatch>
		            <cfset DoCommit = 0>
		            <cftransaction action="rollback" />
		        </cfcatch>
		    </cftry>
		    <cfif DoCommit EQ 1>
		        <cftransaction action="commit" />
		    </cfif>            
		</cftransaction>
	<cfelse>
	   <cftransaction>
			<cftry>
		      <!---   <cfquery name="update_pSchedules" datasource="#Application.DataSrc#"  result="result">
		           UPDATE #Request.prefix_db_agency#.pSchedules SET 
		           Status   = <cfqueryparam VALUE="3"  cfsqltype="cf_sql_integer">,      
		           Date_Change = <cfqueryparam VALUE="#form.Record_Mod_Date#"  cfsqltype="cf_sql_timestamp">,
		           Change_by = <cfqueryparam VALUE="#form.Record_Mod_By#"  cfsqltype="cf_sql_integer">
		           WHERE  Patient_ID = <cfqueryparam VALUE="#Form.Patient_ID#"  cfsqltype="cf_sql_integer">
		           AND Assmt_ID = <cfqueryparam VALUE="#form.Assmt_ID_Temp#"  cfsqltype="cf_sql_integer">
		           AND Schedule_ID = <cfqueryparam VALUE="#form.SID#"  cfsqltype="cf_sql_integer">
		           AND Status = 0
		        </cfquery> --->
		        <cfset pSchedule_ID  =  #form.SID# />
		        <cfcatch>
		            <cfset DoCommit = 0>
		            <cftransaction action="rollback" />
		        </cfcatch>
			</cftry>
		    <cfif DoCommit EQ 1>
		        <cftransaction action="commit" />
		    </cfif>            
		</cftransaction>
	</cfif>
	<cfif form.Auth_ID EQ '' OR form.Auth_ID EQ  0>
		<cfset form.Auth_ID  = 0 />
		<cfset form.PtPayer_ID = 0 >
		<cfset form.Rev_ID = 0 >
	</cfif>
	

	<cfif form.Initial_visit EQ 1 >
		<cfset form.Progress_Note = 2 />
	</cfif>

	<cftry>
		 <cfscript>
       		 pgcfc = CreateObject("Component", "components.general.progressnotes");
       		 retiredschedules = pgcfc.retire_schedules(#pSchedule_ID#); 
        </cfscript>
        <!--- <cfoutput>	
        		UPDATE  #Request.prefix_db_agency#.pSchedules
		     	SET
			       Auth_ID = "#form.Auth_ID#",
			       PtPayer_ID = "#form.PtPayer_ID#", 
			       Rev_ID = "#form.Rev_ID#", 
			       HCPCS_ID = "#form.HCPCS_ID#", 
			       Emp_ID = "#form.Emp_ID#",  
			       Pay_ID = "#form.Pay_ID#",
			       Skill = "#GetRev.visit_type#",
			       Nonbillable = "#form.Nonbillable#",
		      	   Missed = "#form.Missed#",
				   Visit_Date= "#form.Visit_Date#",
				StartTime =	"#form.StartTime#",
				EndTime   =	"#form.EndTime#",
				Total_Units = "#form.Total_Units#",
				Total_Eclaim =	"#form.Total_Eclaims#",
				Mi_Pay = "#form.Mi_Pay#",
				SuperVision   =	"#form.SuperVision#",
				Initial_visit =	"#form.Initial_visit#",
				Followup_visit=	"#form.Followup_visit#",					
				prn_visit =	"#form.prn_visit#", 
				prn_reason =	"#form.prn_reason#",
			    Sup_1 = "#form.Sup_1#",
			    Sup_2 = "#form.Sup_2#",
			    Sup_3 = "#form.Sup_3#",
				homebound = "#form.homebound#",
				<cfif form.Followup_visit EQ 1 >
					Visit_Type = "#form.assvisit_type#",
				<cfelse>
					Visit_Type =  NULL,
				</cfif>
				Mileage = "#form.Mileage#",
				Travel = "#form.Travel#",
				Paperwork = "#form.Paperwork#",
				pgnotesdraft = "#form.pgnotesdraft#",
				Notes = "#form.Notes#",
		      	Date_Create = "#form.Record_Creation_Date#",
		      	Created_by = "#form.Record_Created_By#",
		      	Date_Change = "#form.Record_Creation_Date#",
		      	Change_by = "#form.Record_Created_By#"
				WHERE Schedule_ID = #pSchedule_ID#
			    AND Patient_ID = #form.Patient_ID#
			    AND Assmt_ID = #form.Assmt_ID_Temp#
			    AND Patient_ID = #form.Patient_ID#
			    AND Status = 0		       			      			  	
        </cfoutput>
        <cfabort> --->
        
        <!--- CRITICAL: Check for over-scheduling BEFORE database update --->
        <cfif Form.Auth_ID NEQ 0>
        	<cfscript>
        		request.authorization = CreateObject("component","components.general.authorization").init()
        		authorizations = request.authorization.getauthorizationslist(#form.Assmt_ID_Temp#);
        	</cfscript>

        	<cfquery  name="getauthorizations" dbtype="query">
        		SELECT * FROM authorizations 
        		WHERE status = <cfqueryparam cfsqltype="cf_sql_integer" value="0"> 
        		AND  Auth_ID = <cfqueryparam VALUE="#Form.Auth_ID#"  cfsqltype="cf_sql_integer">
        	</cfquery>

			<!--- Validate visit date against selected authorization from/to dates --->
			<cfif IsDefined("form.Visit_Date") AND len(trim(form.Visit_Date)) GT 0>
				<cfset authDateValidation = request.authorization.check_visit_date_auth(
					Patient_ID = form.Patient_ID,
					Assmt_ID = 0,
					Auth_ID = Form.Auth_ID,
					Visit_Date = form.Visit_Date
				)>
				<cfif authDateValidation EQ 'invalid'>
					<cfset authStartDate = ''>
					<cfset authEndDate = ''>
					<cfif IsDefined("getauthorizations") AND getauthorizations.recordcount GT 0>
						<cfif IsDate(getauthorizations.Date_Start)>
							<cfset authStartDate = DateFormat(getauthorizations.Date_Start, "mm/dd/yyyy")>
						</cfif>
						<cfif IsDate(getauthorizations.Date_End)>
							<cfset authEndDate = DateFormat(getauthorizations.Date_End, "mm/dd/yyyy")>
						</cfif>
					</cfif>
					<div class="portlet box red">
						<div class="portlet-title">
							<div class="caption">
								<i class="fa fa-gear"></i> Authorization Date Range Violation
							</div>
						</div>
						<div class="portlet-body">
							<h4>Visit date <cfoutput>#DateFormat(form.Visit_Date, "mm/dd/yyyy")#</cfoutput> is outside the selected authorization date range<cfif authStartDate NEQ '' AND authEndDate NEQ ''> (<cfoutput>#authStartDate# - #authEndDate#</cfoutput>)</cfif>.</h4>
							<input class="btn blue" type="button" value="Go Back" onClick="history.back()">
						</div>
					</div>
					<cfabort>
				</cfif>
			</cfif>

        	<!--- Check if we should skip visit count validation --->
        	<cfset skip_visit_validation = false>
        	<cfif IsDefined("getauthorizations") AND getauthorizations.recordcount GT 0>
        		<cfif getauthorizations.bypass_compliance EQ 1>
        			<cfset skip_visit_validation = true>
        		<cfelseif getauthorizations.Admit_Type EQ 'Non-Medical'>
        			<cfset skip_visit_validation = true>
        		</cfif>
        	</cfif>
        	
        	<!--- Check for over-scheduling based on auth_measure if not skipping validation --->
        	<cfif IsDefined("getauthorizations") AND getauthorizations.recordcount GT 0 AND StructKeyExists(getauthorizations, "auth_measure")>
        		<cfif getauthorizations.auth_measure EQ 'units' OR getauthorizations.auth_measure EQ 'hours'>
        		<!--- For units/hours auth_measure, skip over-scheduling check and only validate certification dates --->
        		<!--- Get certification dates from assessment --->
        		<cfquery name="GetCertDates" datasource="#Application.DataSrc#">
        			SELECT F177 AS Cert_Start, F178 AS Cert_End
        			FROM #Request.prefix_db_agency#.pAssessments
        			WHERE Assmt_ID = <cfqueryparam value="#form.Assmt_ID_Temp#" cfsqltype="cf_sql_integer">
        			AND Status = 0
        		</cfquery>
        		
        		<!--- Check if visit date is outside certification period --->
        		<cfif GetCertDates.recordcount GT 0 AND GetCertDates.Cert_Start NEQ '' AND GetCertDates.Cert_End NEQ '' AND form.Visit_Date NEQ ''>
        			<!--- Validate that dates are valid before processing --->
        			<cfif IsDate(form.Visit_Date) AND IsDate(GetCertDates.Cert_Start) AND IsDate(GetCertDates.Cert_End)>
        				<cfset visitDateParsed = CreateDate(Year(form.Visit_Date), Month(form.Visit_Date), Day(form.Visit_Date))>
        				<cfset certStartParsed = CreateDate(Year(GetCertDates.Cert_Start), Month(GetCertDates.Cert_Start), Day(GetCertDates.Cert_Start))>
        				<cfset certEndParsed = CreateDate(Year(GetCertDates.Cert_End), Month(GetCertDates.Cert_End), Day(GetCertDates.Cert_End))>
        				
        				<cfif visitDateParsed LT certStartParsed OR visitDateParsed GT certEndParsed>
        					<div class="portlet box red">
        						<div class="portlet-title">
        							<div class="caption">
        								<i class="fa fa-gear"></i> Certification Period Violation
        							</div>
        						</div>
        						<div class="portlet-body">
        							<h4>Visit date <cfoutput>#DateFormat(form.Visit_Date, "mm/dd/yyyy")#</cfoutput> must fall within the certification period (<cfoutput>#DateFormat(GetCertDates.Cert_Start, "mm/dd/yyyy")# - #DateFormat(GetCertDates.Cert_End, "mm/dd/yyyy")#</cfoutput>)</h4>
        							<input class="btn blue" type="button" value="Go Back" onClick="history.back()">
        						</div>
        					</div>
        					<cfabort>
        				</cfif>
        			</cfif>
        		</cfif>
        		
        		<!--- Skip all other validations for units/hours - allow unlimited visits --->
        		<cfset overSchedulingResult = 'Success' />
        		</cfif>
        	<cfelseif NOT skip_visit_validation>
        		<!--- For other auth_measure types, check over-scheduling --->
        			<cfset overSchedulingResult = request.authorization.checkOverScheduling(
        				Auth_ID = Form.Auth_ID,
        				Patient_ID = form.Patient_ID,
        				Assmt_ID = form.Assmt_ID_Temp,
        				StartTime = Form.StartTime,
        				EndTime = Form.EndTime,
        				Visit_Date = Form.Visit_Date,
        				Exclude_Schedule_ID = Form.SID
        			) />
        			
        			<cfif overSchedulingResult NEQ 'Success' AND overSchedulingResult NEQ 'Authorization not found'>
        				<div class="portlet box red">
        					<div class="portlet-title">
        						<div class="caption">
        							<i class="fa fa-gear"></i> Over-Scheduling Detected
        						</div>
        					</div>
        					<div class="portlet-body">
        						<h4><cfoutput>#overSchedulingResult#</cfoutput></h4>
        						<p>Please adjust the visit duration or select a different authorization.</p>
        						<input class="btn blue" type="button" value="Go Back" onClick="history.back()">
        					</div>
        				</div>
        				<cfabort>
        			</cfif>
        	<cfelse>
        		<!--- No authorization record found or auth_measure field missing --->
        		<cfset overSchedulingResult = 'Authorization not found' />
       </cfif>
       </cfif>

<!--- Sanitize text fields to remove problematic characters --->
<cfif structKeyExists(form, "Schedule_Notes") AND len(trim(form.Schedule_Notes))>
	<cfset form.Schedule_Notes = reReplace(form.Schedule_Notes, "[^\x00-\x7F]", "", "ALL")>
	<cfset form.Schedule_Notes = trim(form.Schedule_Notes)>
</cfif>

<cfif structKeyExists(form, "homebound") AND len(trim(form.homebound))>
	<cfset form.homebound = reReplace(form.homebound, "[^\x00-\x7F]", "", "ALL")>
	<cfset form.homebound = trim(form.homebound)>
</cfif>

<cfif structKeyExists(form, "Notes") AND len(trim(form.Notes))>
	<cfset form.Notes = reReplace(form.Notes, "[^\x00-\x7F]", "", "ALL")>
	<cfset form.Notes = trim(form.Notes)>
</cfif>

<!--- Check for visit data changes before updating (only for updates, not inserts) --->
<cfset visitDataChanged = false>
<cfif form.SID NEQ 0 AND isDefined("getcurrentvisits") AND getcurrentvisits.recordcount GT 0>
	<!--- Normalize values for comparison (handle nulls and empty strings) --->
	<cfset oldAuth_ID = Trim(toString(getcurrentvisits.Auth_ID) & "")>
	<cfset newAuth_ID = Trim(toString(form.Auth_ID) & "")>
	<cfset oldPtPayer_ID = Trim(toString(getcurrentvisits.PtPayer_ID) & "")>
	<cfset newPtPayer_ID = Trim(toString(form.PtPayer_ID) & "")>
	<cfset oldRev_ID = Trim(toString(getcurrentvisits.Rev_ID) & "")>
	<cfset newRev_ID = Trim(toString(form.Rev_ID) & "")>
	<cfset oldHCPCS_ID = Trim(toString(getcurrentvisits.HCPCS_ID) & "")>
	<cfset newHCPCS_ID = Trim(toString(form.HCPCS_ID) & "")>
	<cfset oldSchedule_Notes = Trim(getcurrentvisits.Schedule_Notes & "")>
	<cfset newSchedule_Notes = Trim(form.Schedule_Notes & "")>
	<cfset oldEmp_ID = Trim(toString(getcurrentvisits.Emp_ID) & "")>
	<cfset newEmp_ID = Trim(toString(form.Emp_ID) & "")>
	<cfset oldPay_ID = Trim(toString(getcurrentvisits.Pay_ID) & "")>
	<cfset newPay_ID = Trim(toString(form.Pay_ID) & "")>
	<cfset oldSkill = Trim(getcurrentvisits.Skill & "")>
	<cfset newSkill = Trim(GetRev.visit_type & "")>
	<cfset oldNonbillable = Trim(toString(getcurrentvisits.Nonbillable) & "")>
	<cfset newNonbillable = Trim(toString(form.Nonbillable) & "")>
	<cfset oldMissed = Trim(toString(getcurrentvisits.Missed) & "")>
	<cfset newMissed = Trim(toString(form.Missed) & "")>
	<cfset oldStartTime = Trim(getcurrentvisits.StartTime & "")>
	<cfset newStartTime = Trim(form.StartTime & "")>
	<cfset oldEndTime = Trim(getcurrentvisits.EndTime & "")>
	<cfset newEndTime = Trim(form.EndTime & "")>
	<!--- Total_Units is an integer, compare as integer (truncate decimals: 4.8 becomes 4) --->
	<cfset oldTotal_Units = int(val(getcurrentvisits.Total_Units))>
	<cfset newTotal_Units = int(val(form.Total_Units))>
	<cfset oldTotal_Eclaim = Trim(toString(getcurrentvisits.Total_Eclaim) & "")>
	<cfset newTotal_Eclaim = Trim(toString(form.Total_Eclaims) & "")>
	<cfset oldMi_Pay = Trim(toString(getcurrentvisits.Mi_Pay) & "")>
	<cfset newMi_Pay = Trim(toString(form.Mi_Pay) & "")>
	<cfset oldSuperVision = Trim(toString(getcurrentvisits.SuperVision) & "")>
	<cfset newSuperVision = Trim(toString(form.SuperVision) & "")>
	<cfset oldInitial_visit = Trim(toString(getcurrentvisits.Initial_visit) & "")>
	<cfset newInitial_visit = Trim(toString(form.Initial_visit) & "")>
	<cfset oldFollowup_visit = Trim(toString(getcurrentvisits.Followup_visit) & "")>
	<cfset newFollowup_visit = Trim(toString(form.Followup_visit) & "")>
	<cfset oldprn_visit = Trim(toString(getcurrentvisits.prn_visit) & "")>
	<cfset newprn_visit = Trim(toString(form.prn_visit) & "")>
	<cfset oldprn_reason = Trim(getcurrentvisits.prn_reason & "")>
	<cfset newprn_reason = Trim(form.prn_reason & "")>
	<cfset oldSup_1 = Trim(getcurrentvisits.Sup_1 & "")>
	<cfset newSup_1 = Trim(form.Sup_1 & "")>
	<cfset oldSup_2 = Trim(getcurrentvisits.Sup_2 & "")>
	<cfset newSup_2 = Trim(form.Sup_2 & "")>
	<cfset oldSup_3 = Trim(getcurrentvisits.Sup_3 & "")>
	<cfset newSup_3 = Trim(form.Sup_3 & "")>
	<cfset oldMaint_1 = Trim(getcurrentvisits.Maint_1 & "")>
	<cfset newMaint_1 = Trim(form.Maint_1 & "")>
	<cfset oldMaint_2 = Trim(getcurrentvisits.Maint_2 & "")>
	<cfset newMaint_2 = Trim(form.Maint_2 & "")>
	<cfset oldMaint_3 = Trim(getcurrentvisits.Maint_3 & "")>
	<cfset newMaint_3 = Trim(form.Maint_3 & "")>
	<cfset oldhomebound = Trim(getcurrentvisits.homebound & "")>
	<cfset newhomebound = Trim(form.homebound & "")>
	<cfset oldVisit_Type = Trim(getcurrentvisits.Visit_Type & "")>
	<cfset newVisit_Type = "">
	<cfif form.Followup_visit EQ 1>
		<cfset newVisit_Type = Trim(form.assvisit_type & "")>
	</cfif>
	<cfset oldMileage = Trim(toString(getcurrentvisits.Mileage) & "")>
	<cfset newMileage = Trim(toString(form.Mileage) & "")>
	<cfset oldTravel = Trim(getcurrentvisits.Travel & "")>
	<cfset newTravel = Trim(form.Travel & "")>
	<cfset oldPaperwork = Trim(getcurrentvisits.Paperwork & "")>
	<cfset newPaperwork = Trim(form.Paperwork & "")>
	<cfset oldpgnotesdraft = Trim(toString(getcurrentvisits.pgnotesdraft) & "")>
	<cfset newpgnotesdraft = Trim(toString(form.pgnotesdraft) & "")>
	<cfset oldNotes = Trim(getcurrentvisits.Notes & "")>
	<cfset newNotes = Trim(form.Notes & "")>
	<cfset oldgoals_not_met = Trim(getcurrentvisits.goals_not_met & "")>
	<cfset newgoals_not_met = "">
	<cfif isDefined("form.schgoals_not_met")>
		<cfset newgoals_not_met = Trim(form.schgoals_not_met & "")>
	</cfif>
	<cfset oldunstable_action = "">
	<cfif structKeyExists(getcurrentvisits, "unstable_action")>
		<cfset oldunstable_action = Trim(getcurrentvisits.unstable_action & "")>
	</cfif>
	<cfset newunstable_action = "">
	<cfif isDefined("form.unstable_action")>
		<cfset newunstable_action = Trim(form.unstable_action & "")>
	</cfif>

	<!--- Handle Visit_Date safely --->
	<cfset oldVisit_Date = getcurrentvisits.Visit_Date>
	<cfset newVisit_Date = form.Visit_Date>
	<cfset visitDateChanged = false>
	<cfset oldVisitDateHasValue = (isDefined("oldVisit_Date") AND NOT isNull(oldVisit_Date) AND len(trim(oldVisit_Date & "")) GT 0)>
	<cfset newVisitDateHasValue = (isDefined("newVisit_Date") AND NOT isNull(newVisit_Date) AND len(trim(newVisit_Date & "")) GT 0)>
	<cfif oldVisitDateHasValue AND newVisitDateHasValue>
		<cftry>
			<cfset visitDateChanged = (DateCompare(newVisit_Date, oldVisit_Date) NEQ 0)>
			<cfcatch>
				<cflog file="patientvisit_action" text="Schedule #form.SID#: Error comparing Visit_Date (new: '#newVisit_Date#', old: '#oldVisit_Date#'). Error: #cfcatch.message#. Treating as NO CHANGE.">
				<cfset visitDateChanged = false>
			</cfcatch>
		</cftry>
	<cfelseif oldVisitDateHasValue NEQ newVisitDateHasValue>
		<cfset visitDateChanged = true>
	</cfif>

	<!--- Compare ALL manually editable fields from visit form --->
	<cfif
		newAuth_ID NEQ oldAuth_ID OR
		newPtPayer_ID NEQ oldPtPayer_ID OR
		newRev_ID NEQ oldRev_ID OR
		newHCPCS_ID NEQ oldHCPCS_ID OR
		newSchedule_Notes NEQ oldSchedule_Notes OR
		newEmp_ID NEQ oldEmp_ID OR
		newPay_ID NEQ oldPay_ID OR
		newSkill NEQ oldSkill OR
		newNonbillable NEQ oldNonbillable OR
		newMissed NEQ oldMissed OR
		visitDateChanged OR
		newStartTime NEQ oldStartTime OR
		newEndTime NEQ oldEndTime OR
		newTotal_Units NEQ oldTotal_Units OR
		newTotal_Eclaim NEQ oldTotal_Eclaim OR
		newMi_Pay NEQ oldMi_Pay OR
		newSuperVision NEQ oldSuperVision OR
		newInitial_visit NEQ oldInitial_visit OR
		newFollowup_visit NEQ oldFollowup_visit OR
		newprn_visit NEQ oldprn_visit OR
		newprn_reason NEQ oldprn_reason OR
		newSup_1 NEQ oldSup_1 OR
		newSup_2 NEQ oldSup_2 OR
		newSup_3 NEQ oldSup_3 OR
		newMaint_1 NEQ oldMaint_1 OR
		newMaint_2 NEQ oldMaint_2 OR
		newMaint_3 NEQ oldMaint_3 OR
		newhomebound NEQ oldhomebound OR
		newVisit_Type NEQ oldVisit_Type OR
		newMileage NEQ oldMileage OR
		newTravel NEQ oldTravel OR
		newPaperwork NEQ oldPaperwork OR
		newpgnotesdraft NEQ oldpgnotesdraft OR
		newNotes NEQ oldNotes
	>
		<cfset visitDataChanged = true>
	</cfif>

	<!--- #10447: visit detail changes require memo + reason code in EVV Update Log before retransmit --->
	<cfset visitDetailChanged = false>
	<cfif
		newAuth_ID NEQ oldAuth_ID OR
		newPtPayer_ID NEQ oldPtPayer_ID OR
		newRev_ID NEQ oldRev_ID OR
		newHCPCS_ID NEQ oldHCPCS_ID OR
		newSchedule_Notes NEQ oldSchedule_Notes OR
		newPay_ID NEQ oldPay_ID OR
		newSkill NEQ oldSkill OR
		newNonbillable NEQ oldNonbillable OR
		newMissed NEQ oldMissed OR
		visitDateChanged OR
		newStartTime NEQ oldStartTime OR
		newEndTime NEQ oldEndTime OR
		newTotal_Units NEQ oldTotal_Units OR
		newTotal_Eclaim NEQ oldTotal_Eclaim OR
		newMi_Pay NEQ oldMi_Pay OR
		newSuperVision NEQ oldSuperVision OR
		newInitial_visit NEQ oldInitial_visit OR
		newFollowup_visit NEQ oldFollowup_visit OR
		newprn_visit NEQ oldprn_visit OR
		newprn_reason NEQ oldprn_reason OR
		newSup_1 NEQ oldSup_1 OR
		newSup_2 NEQ oldSup_2 OR
		newSup_3 NEQ oldSup_3 OR
		newMaint_1 NEQ oldMaint_1 OR
		newMaint_2 NEQ oldMaint_2 OR
		newMaint_3 NEQ oldMaint_3 OR
		newhomebound NEQ oldhomebound OR
		newVisit_Type NEQ oldVisit_Type OR
		newMileage NEQ oldMileage OR
		newTravel NEQ oldTravel OR
		newPaperwork NEQ oldPaperwork OR
		newpgnotesdraft NEQ oldpgnotesdraft OR
		newNotes NEQ oldNotes
	>
		<cfset visitDetailChanged = true>
	</cfif>
</cfif>

       <cfquery name="InsertingpSchedules"  datasource="#Application.DataSrc#"  result="result">
		     UPDATE  #Request.prefix_db_agency#.pSchedules
		     	SET
			       Auth_ID = <cfqueryparam VALUE="#form.Auth_ID#"  cfsqltype="cf_sql_integer">,
			       PtPayer_ID = <cfqueryparam VALUE="#form.PtPayer_ID#"  cfsqltype="cf_sql_integer">, 
			       Rev_ID = <cfqueryparam VALUE="#form.Rev_ID#"  cfsqltype="cf_sql_integer">, 
			       HCPCS_ID = <cfqueryparam VALUE="#form.HCPCS_ID#"  cfsqltype="cf_sql_integer">, 
			       Schedule_Notes   =	<cfqueryparam VALUE="#form.Schedule_Notes#"  cfsqltype="cf_sql_longvarchar">,
			       Emp_ID = <cfqueryparam VALUE="#form.Emp_ID#"  cfsqltype="cf_sql_integer">,  
			       Pay_ID = <cfqueryparam VALUE="#form.Pay_ID#"  cfsqltype="cf_sql_integer">,
			       Skill = <cfqueryparam VALUE="#GetRev.visit_type#"  cfsqltype="cf_sql_varchar">,
			       Nonbillable = <cfqueryparam VALUE="#form.Nonbillable#"  cfsqltype="cf_sql_integer">,
		      	   Missed = <cfqueryparam VALUE="#form.Missed#"  cfsqltype="cf_sql_integer">,
				   Visit_Date= <cfqueryparam VALUE="#form.Visit_Date#"  cfsqltype="cf_sql_date">,
					StartTime =	<cfqueryparam VALUE="#form.StartTime#"  cfsqltype="cf_sql_varchar">,
					EndTime   =	<cfqueryparam VALUE="#form.EndTime#"  cfsqltype="cf_sql_varchar">,
				Total_Units = <cfqueryparam VALUE="#form.Total_Units#"  cfsqltype="cf_sql_integer">,
				Total_Eclaim =	<cfqueryparam VALUE="#form.Total_Eclaims#"  cfsqltype="CF_SQL_FLOAT">,
				Mi_Pay = <cfqueryparam VALUE="#form.Mi_Pay#"  cfsqltype="cf_sql_integer">,
				SuperVision   =	<cfqueryparam VALUE="#form.SuperVision#"  cfsqltype="cf_sql_integer">,
				Initial_visit =	<cfqueryparam VALUE="#form.Initial_visit#"  cfsqltype="cf_sql_integer">,
				Followup_visit=	<cfqueryparam VALUE="#form.Followup_visit#"  cfsqltype="cf_sql_integer">,					
				prn_visit =	<cfqueryparam VALUE="#form.prn_visit#"  cfsqltype="cf_sql_integer">, 
				prn_reason =	<cfqueryparam VALUE="#form.prn_reason#"  cfsqltype="cf_sql_varchar">,
			    Sup_1 = <cfqueryparam VALUE="#form.Sup_1#"  cfsqltype="cf_sql_varchar">,
			    Sup_2 = <cfqueryparam VALUE="#form.Sup_2#"  cfsqltype="cf_sql_varchar">,
			    Sup_3 = <cfqueryparam VALUE="#form.Sup_3#"  cfsqltype="cf_sql_varchar">,
			    Maint_1 = <cfqueryparam VALUE="#form.Maint_1#"  cfsqltype="cf_sql_varchar">,
			    Maint_2 = <cfqueryparam VALUE="#form.Maint_2#"  cfsqltype="cf_sql_varchar">,
			    Maint_3 = <cfqueryparam VALUE="#form.Maint_3#"  cfsqltype="cf_sql_varchar">,
				homebound = <cfqueryparam VALUE="#form.homebound#"  cfsqltype="cf_sql_longvarchar">,
				<cfif form.Followup_visit EQ 1 >
					Visit_Type = <cfqueryparam VALUE="#form.assvisit_type#"  cfsqltype="cf_sql_varchar">,
				<cfelse>
					Visit_Type = NULL,
				</cfif>
				<cfif session.eaRole contains 'Project Manager'> 
					EVV_Override = <cfqueryparam VALUE="#form.EVV_Override#"  cfsqltype="cf_sql_integer">,
				</cfif>
				Mileage = <cfqueryparam VALUE="#form.Mileage#"  cfsqltype="cf_sql_integer">,
				Travel = <cfqueryparam VALUE="#form.Travel#"  cfsqltype="cf_sql_varchar">,
				Paperwork = <cfqueryparam VALUE="#form.Paperwork#"  cfsqltype="cf_sql_varchar">,
				pgnotesdraft = <cfqueryparam VALUE="#form.pgnotesdraft#"  cfsqltype="cf_sql_integer">,
				Notes = <cfqueryparam VALUE="#form.Notes#"  cfsqltype="cf_sql_longvarchar">,
				<cfif isDefined("form.schgoals_not_met")>
					goals_not_met = <cfqueryparam VALUE="#form.schgoals_not_met#"  cfsqltype="cf_sql_varchar">,
				</cfif>
				<cfif isDefined("form.unstable_action")>
					unstable_action = <cfqueryparam VALUE="#form.unstable_action#"  cfsqltype="cf_sql_varchar">,
				</cfif>
				<!--- Reset EVV_Reason_Code_ID to NULL when visit is updated --->
				<!--- Clinician must select NEW reason code for NEW changes via EVV Update Log --->
				<cfif visitDataChanged>
					EVV_Reason_Code_ID = NULL,
				</cfif>
		      	<!--- Date_Create = <cfqueryparam VALUE="#form.Record_Creation_Date#"  cfsqltype="cf_sql_timestamp">,
		      	Created_by = <cfqueryparam VALUE="#form.Record_Created_By#"  cfsqltype="cf_sql_integer">,--->
		      	Date_Change = <cfqueryparam VALUE="#form.Record_Creation_Date#"  cfsqltype="cf_sql_timestamp">,
		      	Change_by = <cfqueryparam VALUE="#form.Record_Created_By#"  cfsqltype="cf_sql_integer">
			WHERE Schedule_ID = <cfqueryparam VALUE="#pSchedule_ID#"  cfsqltype="cf_sql_integer">
		    AND Patient_ID = <cfqueryparam VALUE="#form.Patient_ID#"  cfsqltype="cf_sql_integer">
		    AND Assmt_ID = <cfqueryparam VALUE="#form.Assmt_ID_Temp#"  cfsqltype="cf_sql_integer">
		    AND Status = 0
		</cfquery>

		<!--- #10482: Assessment/Eval visit date change -> sync pAssessments.F176 + pAdmit_Svcs.Start_Date --->
		<cfif isDefined("visitDateChanged") AND visitDateChanged>
			<cfset syncVisitType = "" />
			<cfif len(trim(newVisit_Type)) GT 0>
				<cfset syncVisitType = trim(newVisit_Type) />
			<cfelseif form.Followup_visit EQ 1 AND isDefined("form.assvisit_type") AND len(trim(form.assvisit_type)) GT 0>
				<cfset syncVisitType = trim(form.assvisit_type) />
			<cfelseif isDefined("oldVisit_Type") AND len(trim(oldVisit_Type)) GT 0>
				<cfset syncVisitType = trim(oldVisit_Type) />
			</cfif>

			<cfif len(syncVisitType) GT 0>
				<!--- Map Visit_Type to pAssessments.F26 --->
				<cfset syncF26 = "" />
				<cfif syncVisitType EQ "1 - SOC - SN">
					<cfset syncF26 = "1 - Start of care - further visits planned" />
				<cfelseif syncVisitType EQ "1 - SOC - PT">
					<cfset syncF26 = "1 - Start of care - further visits planned - Physical Therapy" />
				<cfelseif syncVisitType EQ "1 - SOC - OT">
					<cfset syncF26 = "1 - Start of care - further visits planned - Occupational Therapy" />
				<cfelseif syncVisitType EQ "3 - ROC - SN" OR syncVisitType EQ "3 - ROC - PT">
					<cfset syncF26 = "3 - Resumption of care (after inpatient stay)" />
				<cfelseif syncVisitType EQ "PT Eval">
					<cfset syncF26 = "PT Adult Evaluation" />
				<cfelseif syncVisitType EQ "OT Eval">
					<cfset syncF26 = "OT Adult Evaluation" />
				<cfelseif syncVisitType EQ "ST Eval">
					<cfset syncF26 = "ST Adult Evaluation" />
				<cfelseif syncVisitType EQ "SN Eval">
					<cfset syncF26 = "SN Adult Evaluation" />
				<cfelseif syncVisitType EQ "MSW Eval">
					<cfset syncF26 = "MSW Evaluation" />
				<cfelseif syncVisitType EQ "PT FU Eval">
					<cfset syncF26 = "PT Followup" />
				<cfelseif syncVisitType EQ "OT FU Eval">
					<cfset syncF26 = "OT Followup" />
				<cfelseif syncVisitType EQ "ST FU Eval">
					<cfset syncF26 = "ST Followup" />
				<cfelseif syncVisitType EQ "MSW FU Eval">
					<cfset syncF26 = "MSW Followup" />
				<cfelseif syncVisitType EQ "SN FU Eval">
					<cfset syncF26 = "SN Followup" />
				<cfelseif syncVisitType EQ "Hospice Comprehensive">
					<cfset syncF26 = "Hospice Comprehensive" />
				<cfelseif syncVisitType EQ "SN Hospice">
					<cfset syncF26 = "SN Hospice" />
				<cfelseif syncVisitType EQ "Chaplain Comprehensive Evaluation">
					<cfset syncF26 = "Chaplain Comprehensive Evaluation" />
				<cfelseif syncVisitType EQ "Hospice Discharge">
					<cfset syncF26 = "Hospice Discharge" />
				<cfelseif syncVisitType EQ "Hospice admission">
					<cfset syncF26 = "Hospice admission" />
				<cfelseif syncVisitType EQ "4 - Recertification">
					<cfset syncF26 = "4 - Recertification (follow-up) reassessment" />
				<cfelseif syncVisitType EQ "4 - Recertification PT">
					<cfset syncF26 = "4 - Recertification (follow-up) reassessment - PT" />
				<cfelseif syncVisitType EQ "4 - Recertification OT">
					<cfset syncF26 = "4 - Recertification (follow-up) reassessment - OT" />
				<cfelseif syncVisitType EQ "5 - Other follow-up">
					<cfset syncF26 = "5 - Other follow-up" />
				<cfelseif syncVisitType EQ "6 - Transfer no discharge">
					<cfset syncF26 = "6 - Transferred to an inpatient facility - patient not discharged from agency" />
				<cfelseif syncVisitType EQ "7 - Transfer discharged">
					<cfset syncF26 = "7 - Transferred to an inpatient facility - patient discharged from agency" />
				<cfelseif syncVisitType EQ "8 - Death">
					<cfset syncF26 = "8 - Death at home" />
				<cfelseif syncVisitType EQ "9 - Discharge from agency">
					<cfset syncF26 = "9 - Discharge from agency" />
				<cfelse>
					<cfset syncF26 = syncVisitType />
				</cfif>

				<cfquery name="getAdmitForVisitDateSync_10482" datasource="#Application.DataSrc#">
					SELECT Admit_ID, Assmt_ID
					FROM #Request.prefix_db_agency#.pAssessments
					WHERE Assmt_ID = <cfqueryparam value="#form.Assmt_ID_Temp#" cfsqltype="cf_sql_integer">
					AND Status = 0
					ORDER BY AutoAssmt_ID DESC
					LIMIT 1
				</cfquery>

				<!--- 2. UPDATE related pAssessments.F176 to the new visit date (match prior F176 = old Visit_Date) --->
				<cfset relatedAssmtId_10482 = 0 />
				<cfif getAdmitForVisitDateSync_10482.recordcount GT 0 AND len(trim(syncF26)) GT 0 AND isDefined("oldVisit_Date") AND IsDate(oldVisit_Date)>
					<cfquery name="getRelatedAssmtByOldF176_10482" datasource="#Application.DataSrc#">
						SELECT Assmt_ID
						FROM #Request.prefix_db_agency#.pAssessments
						WHERE Patient_ID = <cfqueryparam value="#form.Patient_ID#" cfsqltype="cf_sql_integer">
						AND Admit_ID = <cfqueryparam value="#getAdmitForVisitDateSync_10482.Admit_ID#" cfsqltype="cf_sql_integer">
						AND F26 = <cfqueryparam value="#syncF26#" cfsqltype="cf_sql_varchar">
						AND F176 = <cfqueryparam value="#DateFormat(oldVisit_Date,'yyyy-mm-dd')#" cfsqltype="cf_sql_date">
						AND Status = 0
						ORDER BY AutoAssmt_ID DESC
						LIMIT 1
					</cfquery>
					<cfif getRelatedAssmtByOldF176_10482.recordcount GT 0>
						<cfset relatedAssmtId_10482 = Val(getRelatedAssmtByOldF176_10482.Assmt_ID) />
					</cfif>
				</cfif>
				<!--- Fallback: schedule Assmt_ID only when F26 matches (avoid updating wrong assessment) --->
				<cfif relatedAssmtId_10482 EQ 0 AND Val(form.Assmt_ID_Temp) GT 0 AND len(trim(syncF26)) GT 0>
					<cfquery name="verifyAssmtF26_10482" datasource="#Application.DataSrc#">
						SELECT Assmt_ID
						FROM #Request.prefix_db_agency#.pAssessments
						WHERE Assmt_ID = <cfqueryparam value="#Val(form.Assmt_ID_Temp)#" cfsqltype="cf_sql_integer">
						AND F26 = <cfqueryparam value="#syncF26#" cfsqltype="cf_sql_varchar">
						AND Status = 0
						LIMIT 1
					</cfquery>
					<cfif verifyAssmtF26_10482.recordcount GT 0>
						<cfset relatedAssmtId_10482 = Val(verifyAssmtF26_10482.Assmt_ID) />
					</cfif>
				</cfif>

				<!--- Do not sync M0090 (F176) for SOC or completed OASIS; SOC dates use F177 / sync_soc_related_dates --->
				<cfset syncIsSOCVisit_10482 = (ListFindNoCase("1 - SOC - SN,1 - SOC - PT,1 - SOC - OT", syncVisitType) GT 0 OR Left(syncF26, 1) EQ "1") />
				<cfset canUpdateF176_10482 = false />
				<cfif NOT syncIsSOCVisit_10482 AND relatedAssmtId_10482 GT 0 AND IsDate(form.Visit_Date)>
					<cfquery name="getAssmtF176Guard_10482" datasource="#Application.DataSrc#">
						SELECT F25, F26
						FROM #Request.prefix_db_agency#.pAssessments
						WHERE Assmt_ID = <cfqueryparam value="#relatedAssmtId_10482#" cfsqltype="cf_sql_integer">
						AND Status = 0
						LIMIT 1
					</cfquery>
					<cfif getAssmtF176Guard_10482.recordcount GT 0
						AND Val(getAssmtF176Guard_10482.F25) NEQ 1
						AND Left(getAssmtF176Guard_10482.F26, 1) NEQ "1">
						<cfset canUpdateF176_10482 = true />
					</cfif>
				</cfif>

				<cfif canUpdateF176_10482>
					<cfquery name="updateAssessmentF176_10482" datasource="#Application.DataSrc#">
						UPDATE #Request.prefix_db_agency#.pAssessments
						SET F176 = <cfqueryparam value="#DateFormat(form.Visit_Date,'yyyy-mm-dd')#" cfsqltype="cf_sql_date">,
							Record_Mod_Date = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
							Record_Mod_By = <cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
						WHERE Assmt_ID = <cfqueryparam value="#relatedAssmtId_10482#" cfsqltype="cf_sql_integer">
						AND Status = 0
						AND IFNULL(F25, 0) <> 1
					</cfquery>
				</cfif>

				<!--- 3. UPDATE related pAdmit_Svcs.Start_Date (not for SOC; SOC Start_Date follows cert start / sync_soc_related_dates) --->
				<cfif NOT syncIsSOCVisit_10482 AND getAdmitForVisitDateSync_10482.recordcount GT 0 AND IsDate(form.Visit_Date)>
					<cfscript>
						if (NOT isDefined("request.ass") OR NOT isObject(request.ass)) {
							request.ass = CreateObject("component","components.general.assessments").init();
						}
					</cfscript>
					<cfquery name="getsAdmit_Svcs_10482" datasource="#Application.DataSrc#">
						SELECT AutoAdmitSvcs_ID, Admit_ID
						FROM #Request.prefix_db_agency#.pAdmit_Svcs
						WHERE Status = 0
						AND Admit_ID = <cfqueryparam value="#getAdmitForVisitDateSync_10482.Admit_ID#" cfsqltype="cf_sql_integer">
						AND Skill = <cfqueryparam value="#syncVisitType#" cfsqltype="cf_sql_varchar">
						ORDER BY AutoAdmitSvcs_ID DESC
						LIMIT 1
					</cfquery>
					<cfif getsAdmit_Svcs_10482.recordcount GT 0>
						<cfset updateadmitsvcs_10482 = request.ass.update_admitsvcs(
							AutoAdmitSvcs_ID = getsAdmit_Svcs_10482.AutoAdmitSvcs_ID,
							Admit_ID = getsAdmit_Svcs_10482.Admit_ID,
							Start_Date = form.Visit_Date
						) />
					<cfelse>
						<cfset insertadmitsvcs_10482 = request.ass.update_admitsvcs(
							AutoAdmitSvcs_ID = 0,
							Admit_ID = getAdmitForVisitDateSync_10482.Admit_ID,
							Skill = syncVisitType,
							Start_Date = form.Visit_Date,
							Physician_order = "no",
							Admitted = "yes"
						) />
					</cfif>
				</cfif>
			</cfif>
		</cfif>
		<!--- END #10482 --->

		<!--- #10483: CHANGE routine (Visit_Type NULL) to assessment/evaluation (Visit_Type NOT NULL) --->
		<cfif isDefined("oldVisit_Type") AND isDefined("newVisit_Type")
			AND len(trim(oldVisit_Type)) EQ 0
			AND len(trim(newVisit_Type)) GT 0
			AND IsDate(form.Visit_Date)>

			<cfset convertVisitType = trim(newVisit_Type) />
			<!--- Map Visit_Type -> F26 / F27 --->
			<cfset convertF26 = "" />
			<cfset convertF27 = "" />
			<cfif convertVisitType EQ "1 - SOC - SN">
				<cfset convertF26 = "1 - Start of care - further visits planned" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "1 - SOC - PT">
				<cfset convertF26 = "1 - Start of care - further visits planned - Physical Therapy" />
				<cfset convertF27 = "PT" />
			<cfelseif convertVisitType EQ "1 - SOC - OT">
				<cfset convertF26 = "1 - Start of care - further visits planned - Occupational Therapy" />
				<cfset convertF27 = "OT" />
			<cfelseif convertVisitType EQ "3 - ROC - SN">
				<cfset convertF26 = "3 - Resumption of care (after inpatient stay)" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "3 - ROC - PT">
				<cfset convertF26 = "3 - Resumption of care (after inpatient stay)" />
				<cfset convertF27 = "PT" />
			<cfelseif convertVisitType EQ "PT Eval">
				<cfset convertF26 = "PT Adult Evaluation" />
				<cfset convertF27 = "PT" />
			<cfelseif convertVisitType EQ "OT Eval">
				<cfset convertF26 = "OT Adult Evaluation" />
				<cfset convertF27 = "OT" />
			<cfelseif convertVisitType EQ "ST Eval">
				<cfset convertF26 = "ST Adult Evaluation" />
				<cfset convertF27 = "ST" />
			<cfelseif convertVisitType EQ "SN Eval">
				<cfset convertF26 = "SN Adult Evaluation" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "MSW Eval">
				<cfset convertF26 = "MSW Evaluation" />
				<cfset convertF27 = "MSW" />
			<cfelseif convertVisitType EQ "PT FU Eval">
				<cfset convertF26 = "PT Followup" />
				<cfset convertF27 = "PT" />
			<cfelseif convertVisitType EQ "OT FU Eval">
				<cfset convertF26 = "OT Followup" />
				<cfset convertF27 = "OT" />
			<cfelseif convertVisitType EQ "ST FU Eval">
				<cfset convertF26 = "ST Followup" />
				<cfset convertF27 = "ST" />
			<cfelseif convertVisitType EQ "MSW FU Eval">
				<cfset convertF26 = "MSW Followup" />
				<cfset convertF27 = "MSW" />
			<cfelseif convertVisitType EQ "SN FU Eval">
				<cfset convertF26 = "SN Followup" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "Hospice Comprehensive" OR convertVisitType EQ "Hospice admission">
				<cfset convertF26 = "Hospice admission" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "SN Hospice">
				<cfset convertF26 = "SN Hospice" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "Chaplain Comprehensive Evaluation">
				<cfset convertF26 = "Chaplain Comprehensive Evaluation" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "Hospice Discharge">
				<cfset convertF26 = "Hospice Discharge" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "4 - Recertification">
				<cfset convertF26 = "4 - Recertification (follow-up) reassessment" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "4 - Recertification PT">
				<cfset convertF26 = "4 - Recertification (follow-up) reassessment - PT" />
				<cfset convertF27 = "PT" />
			<cfelseif convertVisitType EQ "4 - Recertification OT">
				<cfset convertF26 = "4 - Recertification (follow-up) reassessment - OT" />
				<cfset convertF27 = "OT" />
			<cfelseif convertVisitType EQ "5 - Other follow-up">
				<cfset convertF26 = "5 - Other follow-up" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "6 - Transfer no discharge">
				<cfset convertF26 = "6 - Transferred to an inpatient facility - patient not discharged from agency" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "7 - Transfer discharged">
				<cfset convertF26 = "7 - Transferred to an inpatient facility - patient discharged from agency" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "8 - Death">
				<cfset convertF26 = "8 - Death at home" />
				<cfset convertF27 = "SN" />
			<cfelseif convertVisitType EQ "9 - Discharge from agency">
				<cfset convertF26 = "9 - Discharge from agency" />
				<cfset convertF27 = "SN" />
			<cfelse>
				<cfset convertF26 = convertVisitType />
				<cfif isDefined("GetRev") AND len(trim(GetRev.Visit_Type)) GT 0>
					<cfset convertF27 = trim(GetRev.Visit_Type) />
				<cfelse>
					<cfset convertF27 = "SN" />
				</cfif>
			</cfif>

			<!--- Resolve Admit_ID from schedule Assmt_ID, else latest active admit --->
			<cfset convertAdmitId = 0 />
			<cfset convertCertStart = DateFormat(form.Visit_Date, "yyyy-mm-dd") />
			<cfset convertCertEnd = DateFormat(DateAdd("d", 59, form.Visit_Date), "yyyy-mm-dd") />
			<cfset convertLocId = 0 />
			<cfif isDefined("session.AgencyId") AND isNumeric(session.AgencyId)>
				<cfset convertLocId = Val(session.AgencyId) />
			<cfelseif isDefined("client.Loc_ID") AND isNumeric(client.Loc_ID)>
				<cfset convertLocId = Val(client.Loc_ID) />
			</cfif>

			<cfif Val(form.Assmt_ID_Temp) GT 0>
				<cfquery name="getAdmitFromAssmt_10483" datasource="#Application.DataSrc#">
					SELECT Admit_ID, Loc_ID, F177, F178
					FROM #Request.prefix_db_agency#.pAssessments
					WHERE Assmt_ID = <cfqueryparam value="#form.Assmt_ID_Temp#" cfsqltype="cf_sql_integer">
					AND Status = 0
					ORDER BY AutoAssmt_ID DESC
					LIMIT 1
				</cfquery>
				<cfif getAdmitFromAssmt_10483.recordcount GT 0>
					<cfset convertAdmitId = Val(getAdmitFromAssmt_10483.Admit_ID) />
					<cfif Val(getAdmitFromAssmt_10483.Loc_ID) GT 0>
						<cfset convertLocId = Val(getAdmitFromAssmt_10483.Loc_ID) />
					</cfif>
					<!--- Only inherit cert period from linked assessment for SOC; recert/eval get visit date + 59 days --->
					<cfif Left(convertF26, 1) EQ "1" AND IsDate(getAdmitFromAssmt_10483.F177) AND IsDate(getAdmitFromAssmt_10483.F178)>
						<cfset convertCertStart = DateFormat(getAdmitFromAssmt_10483.F177, "yyyy-mm-dd") />
						<cfset convertCertEnd = DateFormat(getAdmitFromAssmt_10483.F178, "yyyy-mm-dd") />
					</cfif>
				</cfif>
			</cfif>
			<cfif convertAdmitId EQ 0>
				<cfquery name="getLatestAdmit_10483" datasource="#Application.DataSrc#">
					SELECT Admit_ID
					FROM #Request.prefix_db_agency#.pAdmit
					WHERE Patient_ID = <cfqueryparam value="#form.Patient_ID#" cfsqltype="cf_sql_integer">
					AND Status = 0
					AND drafts = 0
					ORDER BY Admit_ID DESC
					LIMIT 1
				</cfquery>
				<cfif getLatestAdmit_10483.recordcount GT 0>
					<cfset convertAdmitId = Val(getLatestAdmit_10483.Admit_ID) />
				</cfif>
			</cfif>

			<!--- Recert: new cert period starts day after prior cert ends (matches AssessmentFormWizard) --->
			<cfif Left(convertF26, 1) EQ "4" AND convertAdmitId GT 0>
				<cfquery name="getPriorCertEnd_10483" datasource="#Application.DataSrc#">
					SELECT F178
					FROM #Request.prefix_db_agency#.pAssessments
					WHERE Admit_ID = <cfqueryparam value="#convertAdmitId#" cfsqltype="cf_sql_integer">
					AND Patient_ID = <cfqueryparam value="#form.Patient_ID#" cfsqltype="cf_sql_integer">
					AND Status = 0
					AND F178 IS NOT NULL
					AND Left(F26, 1) IN ('1', '4')
					ORDER BY F178 DESC
					LIMIT 1
				</cfquery>
				<cfif getPriorCertEnd_10483.recordcount GT 0 AND IsDate(getPriorCertEnd_10483.F178)>
					<cfset convertCertStart = DateFormat(DateAdd("d", 1, getPriorCertEnd_10483.F178), "yyyy-mm-dd") />
					<cfset convertCertEnd = DateFormat(DateAdd("d", 59, convertCertStart), "yyyy-mm-dd") />
				</cfif>
			</cfif>

			<cfif convertAdmitId GT 0 AND len(trim(convertF26)) GT 0>
				<!--- 2+3: ADD related pAssessment (if missing) and set F176 = Visit_Date --->
				<cfquery name="getExistingAssmt_10483" datasource="#Application.DataSrc#">
					SELECT Assmt_ID
					FROM #Request.prefix_db_agency#.pAssessments
					WHERE Patient_ID = <cfqueryparam value="#form.Patient_ID#" cfsqltype="cf_sql_integer">
					AND Admit_ID = <cfqueryparam value="#convertAdmitId#" cfsqltype="cf_sql_integer">
					AND F26 = <cfqueryparam value="#convertF26#" cfsqltype="cf_sql_varchar">
					AND F176 = <cfqueryparam value="#DateFormat(form.Visit_Date,'yyyy-mm-dd')#" cfsqltype="cf_sql_date">
					AND Status = 0
					ORDER BY AutoAssmt_ID DESC
					LIMIT 1
				</cfquery>

				<cfset convertIsSOCVisit_10483 = (ListFindNoCase("1 - SOC - SN,1 - SOC - PT,1 - SOC - OT", convertVisitType) GT 0 OR Left(convertF26, 1) EQ "1") />
				<cfset insertF176_10483 = DateFormat(form.Visit_Date, "yyyy-mm-dd") />
				<cfif convertIsSOCVisit_10483 AND IsDate(convertCertStart)>
					<cfset insertF176_10483 = DateFormat(convertCertStart, "yyyy-mm-dd") />
				</cfif>

				<cfset newRelatedAssmtId = 0 />
				<cfif getExistingAssmt_10483.recordcount GT 0>
					<cfset newRelatedAssmtId = Val(getExistingAssmt_10483.Assmt_ID) />
				<cfelse>
					<cfquery name="getNextAssmtId_10483" datasource="#Application.DataSrc#">
						SELECT IFNULL(MAX(Assmt_ID),0)+1 AS Assmt_ID
						FROM #Request.prefix_db_agency#.pAssessments
					</cfquery>
					<cfset newRelatedAssmtId = Val(getNextAssmtId_10483.Assmt_ID) />
					<cfif newRelatedAssmtId EQ 0>
						<cfset newRelatedAssmtId = 1 />
					</cfif>

					<cfquery name="insertAssessment_10483" datasource="#Application.DataSrc#">
						INSERT INTO #Request.prefix_db_agency#.pAssessments
						(
							Assmt_ID, Admit_ID, Patient_ID, Loc_ID, Status,
							F26, F27, F176, F177, F178,
							Record_Creation_Date, Record_Created_By, Record_Mod_Date, Record_Mod_By
						)
						VALUES
						(
							<cfqueryparam value="#newRelatedAssmtId#" cfsqltype="cf_sql_integer">,
							<cfqueryparam value="#convertAdmitId#" cfsqltype="cf_sql_integer">,
							<cfqueryparam value="#form.Patient_ID#" cfsqltype="cf_sql_integer">,
							<cfqueryparam value="#convertLocId#" cfsqltype="cf_sql_integer">,
							0,
							<cfqueryparam value="#convertF26#" cfsqltype="cf_sql_varchar">,
							<cfqueryparam value="#convertF27#" cfsqltype="cf_sql_varchar">,
							<cfqueryparam value="#insertF176_10483#" cfsqltype="cf_sql_date">,
							<cfqueryparam value="#convertCertStart#" cfsqltype="cf_sql_date">,
							<cfqueryparam value="#convertCertEnd#" cfsqltype="cf_sql_date">,
							<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
							<cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">,
							<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
							<cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
						)
					</cfquery>
				</cfif>

				<!--- Sync F176 to visit date for eval/recert/etc.; skip SOC and completed OASIS --->
				<cfset canUpdateF176_10483 = false />
				<cfif NOT convertIsSOCVisit_10483 AND newRelatedAssmtId GT 0>
					<cfquery name="getAssmtF176Guard_10483" datasource="#Application.DataSrc#">
						SELECT F25, F26
						FROM #Request.prefix_db_agency#.pAssessments
						WHERE Assmt_ID = <cfqueryparam value="#newRelatedAssmtId#" cfsqltype="cf_sql_integer">
						AND Status = 0
						LIMIT 1
					</cfquery>
					<cfif getAssmtF176Guard_10483.recordcount GT 0
						AND Val(getAssmtF176Guard_10483.F25) NEQ 1
						AND Left(getAssmtF176Guard_10483.F26, 1) NEQ "1">
						<cfset canUpdateF176_10483 = true />
					</cfif>
				</cfif>
				<cfif canUpdateF176_10483>
					<cfquery name="updateAssessmentF176_10483" datasource="#Application.DataSrc#">
						UPDATE #Request.prefix_db_agency#.pAssessments
						SET F176 = <cfqueryparam value="#DateFormat(form.Visit_Date,'yyyy-mm-dd')#" cfsqltype="cf_sql_date">,
							Record_Mod_Date = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
							Record_Mod_By = <cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
						WHERE Assmt_ID = <cfqueryparam value="#newRelatedAssmtId#" cfsqltype="cf_sql_integer">
						AND Status = 0
						AND IFNULL(F25, 0) <> 1
					</cfquery>
				</cfif>

				<!--- 4+5: ADD related pAdmit_Svcs and set Start_Date = visit date (not for SOC) --->
				<cfif NOT convertIsSOCVisit_10483>
				<cfscript>
					if (NOT isDefined("request.ass") OR NOT isObject(request.ass)) {
						request.ass = CreateObject("component","components.general.assessments").init();
					}
				</cfscript>
				<cfquery name="getsAdmit_Svcs_10483" datasource="#Application.DataSrc#">
					SELECT AutoAdmitSvcs_ID, Admit_ID
					FROM #Request.prefix_db_agency#.pAdmit_Svcs
					WHERE Status = 0
					AND Admit_ID = <cfqueryparam value="#convertAdmitId#" cfsqltype="cf_sql_integer">
					AND Skill = <cfqueryparam value="#convertVisitType#" cfsqltype="cf_sql_varchar">
					ORDER BY AutoAdmitSvcs_ID DESC
					LIMIT 1
				</cfquery>

				<cfif getsAdmit_Svcs_10483.recordcount GT 0>
					<cfset updateadmitsvcs_10483 = request.ass.update_admitsvcs(
						AutoAdmitSvcs_ID = getsAdmit_Svcs_10483.AutoAdmitSvcs_ID,
						Admit_ID = getsAdmit_Svcs_10483.Admit_ID,
						Start_Date = form.Visit_Date
					) />
					<cfif newRelatedAssmtId GT 0>
						<cfquery name="linkAdmitSvcsAssmt_10483" datasource="#Application.DataSrc#">
							UPDATE #Request.prefix_db_agency#.pAdmit_Svcs
							SET Assmt_ID = <cfqueryparam value="#newRelatedAssmtId#" cfsqltype="cf_sql_integer">,
								Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
								Change_by = <cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
							WHERE AutoAdmitSvcs_ID = <cfqueryparam value="#getsAdmit_Svcs_10483.AutoAdmitSvcs_ID#" cfsqltype="cf_sql_integer">
							AND Status = 0
						</cfquery>
					</cfif>
				<cfelse>
					<cfset insertadmitsvcs_10483 = request.ass.update_admitsvcs(
						AutoAdmitSvcs_ID = 0,
						Admit_ID = convertAdmitId,
						Skill = convertVisitType,
						Start_Date = form.Visit_Date,
						Physician_order = "no",
						Admitted = "yes"
					) />
					<cfif newRelatedAssmtId GT 0>
						<cfquery name="getNewAdmitSvcsId_10483" datasource="#Application.DataSrc#">
							SELECT AutoAdmitSvcs_ID
							FROM #Request.prefix_db_agency#.pAdmit_Svcs
							WHERE Admit_ID = <cfqueryparam value="#convertAdmitId#" cfsqltype="cf_sql_integer">
							AND Skill = <cfqueryparam value="#convertVisitType#" cfsqltype="cf_sql_varchar">
							AND Status = 0
							ORDER BY AutoAdmitSvcs_ID DESC
							LIMIT 1
						</cfquery>
						<cfif getNewAdmitSvcsId_10483.recordcount GT 0>
							<cfquery name="linkNewAdmitSvcsAssmt_10483" datasource="#Application.DataSrc#">
								UPDATE #Request.prefix_db_agency#.pAdmit_Svcs
								SET Assmt_ID = <cfqueryparam value="#newRelatedAssmtId#" cfsqltype="cf_sql_integer">,
									Date_Change = <cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
									Change_by = <cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
								WHERE AutoAdmitSvcs_ID = <cfqueryparam value="#getNewAdmitSvcsId_10483.AutoAdmitSvcs_ID#" cfsqltype="cf_sql_integer">
								AND Status = 0
							</cfquery>
						</cfif>
					</cfif>
				</cfif>
				</cfif>
			</cfif>
		</cfif>
		<!--- END #10483 --->

		<!--- #10199 / #10222 / #10485 - Visit Screen: copy pSchedules.Notes to pAssessments.F175 for SOC/Recert/Discharge/Eval/Resumption --->
		<cfif structKeyExists(form, "Notes") AND len(trim(form.Notes)) gt 0>
			<cfset scheduleVisitType = "" />
			<cfif structKeyExists(form, "assvisit_type") AND len(trim(form.assvisit_type)) gt 0>
				<cfset scheduleVisitType = trim(form.assvisit_type) />
			<cfelseif isDefined("getcurrentvisits") AND getcurrentvisits.recordcount gt 0>
				<cfset scheduleVisitType = trim(getcurrentvisits.Visit_Type & "") />
			</cfif>

			<!--- Include 1-SOC, 3-ROC, 4-Recert, 9-Discharge, and any *eval* visit type --->
			<cfif LEFT(scheduleVisitType,1) EQ '1' OR LEFT(scheduleVisitType,1) EQ '3' OR LEFT(scheduleVisitType,1) EQ '4' OR LEFT(scheduleVisitType,1) EQ '9' OR FindNoCase("eval", scheduleVisitType) GT 0>
				<cftry>
					<cfset targetAssmtID = form.Assmt_ID_Temp />
					<cfset targetF26 = "" />
					<cfset targetVisitDate = "" />

					<!--- Map Visit_Type to canonical pAssessments.F26 value --->
					<cfif scheduleVisitType EQ "1 - SOC - SN">
						<cfset targetF26 = "1 - Start of care - further visits planned" />
					<cfelseif scheduleVisitType EQ "1 - SOC - PT">
						<cfset targetF26 = "1 - Start of care - further visits planned - Physical Therapy" />
					<cfelseif scheduleVisitType EQ "1 - SOC - OT">
						<cfset targetF26 = "1 - Start of care - further visits planned - Occupational Therapy" />
					<cfelseif scheduleVisitType EQ "3 - ROC - SN" OR scheduleVisitType EQ "3 - ROC - PT">
						<cfset targetF26 = "3 - Resumption of care (after inpatient stay)" />
					<cfelseif scheduleVisitType EQ "PT Eval">
						<cfset targetF26 = "PT Adult Evaluation" />
					<cfelseif scheduleVisitType EQ "OT Eval">
						<cfset targetF26 = "OT Adult Evaluation" />
					<cfelseif scheduleVisitType EQ "ST Eval">
						<cfset targetF26 = "ST Adult Evaluation" />
					<cfelseif scheduleVisitType EQ "SN Eval">
						<cfset targetF26 = "SN Adult Evaluation" />
					<cfelseif scheduleVisitType EQ "MSW Eval">
						<cfset targetF26 = "MSW Evaluation" />
					<cfelseif scheduleVisitType EQ "PT FU Eval">
						<cfset targetF26 = "PT Followup" />
					<cfelseif scheduleVisitType EQ "OT FU Eval">
						<cfset targetF26 = "OT Followup" />
					<cfelseif scheduleVisitType EQ "ST FU Eval">
						<cfset targetF26 = "ST Followup" />
					<cfelseif scheduleVisitType EQ "MSW FU Eval">
						<cfset targetF26 = "MSW Followup" />
					<cfelseif scheduleVisitType EQ "SN FU Eval">
						<cfset targetF26 = "SN Followup" />
					<cfelseif scheduleVisitType EQ "Hospice Comprehensive">
						<cfset targetF26 = "Hospice Comprehensive" />
					<cfelseif scheduleVisitType EQ "SN Hospice">
						<cfset targetF26 = "SN Hospice" />
					<cfelseif scheduleVisitType EQ "Chaplain Comprehensive Evaluation">
						<cfset targetF26 = "Chaplain Comprehensive Evaluation" />
					<cfelseif scheduleVisitType EQ "Hospice Discharge">
						<cfset targetF26 = "Hospice Discharge" />
					<cfelseif scheduleVisitType EQ "4 - Recertification">
						<cfset targetF26 = "4 - Recertification (follow-up) reassessment" />
					<cfelseif scheduleVisitType EQ "4 - Recertification PT">
						<cfset targetF26 = "4 - Recertification (follow-up) reassessment - PT" />
					<cfelseif scheduleVisitType EQ "4 - Recertification OT">
						<cfset targetF26 = "4 - Recertification (follow-up) reassessment - OT" />
					<cfelseif scheduleVisitType EQ "5 - Other follow-up">
						<cfset targetF26 = "5 - Other follow-up" />
					<cfelseif scheduleVisitType EQ "6 - Transfer no discharge">
						<cfset targetF26 = "6 - Transferred to an inpatient facility - patient not discharged from agency" />
					<cfelseif scheduleVisitType EQ "7 - Transfer discharged">
						<cfset targetF26 = "7 - Transferred to an inpatient facility - patient discharged from agency" />
					<cfelseif scheduleVisitType EQ "8 - Death">
						<cfset targetF26 = "8 - Death at home" />
					<cfelseif scheduleVisitType EQ "9 - Discharge from agency">
						<cfset targetF26 = "9 - Discharge from agency" />
					<cfelse>
						<cfset targetF26 = scheduleVisitType />
					</cfif>

					<cfif structKeyExists(form, "visit_dates") AND len(trim(form.visit_dates)) gt 0>
						<cfset targetVisitDate = form.visit_dates />
					<cfelse>
						<cfset targetVisitDate = form.Visit_Date />
					</cfif>

					<cfquery name="getCurrentAdmit_10199" datasource="#Application.DataSrc#">
						SELECT Admit_ID
						FROM #Request.prefix_db_agency#.pAssessments
						WHERE Assmt_ID = <cfqueryparam value="#form.Assmt_ID_Temp#" cfsqltype="cf_sql_integer">
						AND Status = 0
						ORDER BY AutoAssmt_ID DESC
						LIMIT 1
					</cfquery>

					<cfif getCurrentAdmit_10199.recordcount gt 0 AND len(trim(targetF26)) gt 0 AND len(trim(targetVisitDate & "")) gt 0>
						<cfquery name="getrelated_OASIS_10199" datasource="#Application.DataSrc#">
							SELECT Assmt_ID
							FROM #Request.prefix_db_agency#.pAssessments
							WHERE F26 = <cfqueryparam value="#targetF26#" cfsqltype="cf_sql_varchar">
							AND Patient_ID = <cfqueryparam value="#form.Patient_ID#" cfsqltype="cf_sql_integer">
							AND Admit_ID = <cfqueryparam value="#getCurrentAdmit_10199.Admit_ID#" cfsqltype="cf_sql_integer">
							AND F176 = <cfqueryparam value="#DateFormat(targetVisitDate,'yyyy-mm-dd')#" cfsqltype="cf_sql_varchar">
							AND Status = 0
							ORDER BY F177 DESC
							LIMIT 1
						</cfquery>

						<cfif getrelated_OASIS_10199.recordcount gt 0 AND len(getrelated_OASIS_10199.Assmt_ID) gt 0>
							<cfset targetAssmtID = getrelated_OASIS_10199.Assmt_ID />
						</cfif>
					</cfif>

					<cfquery name="getActiveAssessment_10199" datasource="#Application.DataSrc#">
						SELECT AutoAssmt_ID, IFNULL(F175,'') AS F175
						FROM #Request.prefix_db_agency#.pAssessments
						WHERE Assmt_ID = <cfqueryparam value="#targetAssmtID#" cfsqltype="cf_sql_integer">
						AND Status = 0
						ORDER BY AutoAssmt_ID DESC
					</cfquery>

					<cfif getActiveAssessment_10199.recordcount gt 0>
						<cfset latestAutoAssmtID_10199 = getActiveAssessment_10199.AutoAssmt_ID[1] />
						<cfset currentF175_10199 = Trim(getActiveAssessment_10199.F175[1]) />
						<cfset incomingF175_10199 = Trim(form.Notes & "") />
						<cfset f175Separator_10199 = "#chr(13)##chr(10)#------------------------------#chr(13)##chr(10)#" />
						<!--- Preserve existing eval comments and append visit comments below separator --->
						<cfif len(currentF175_10199) GT 0 AND len(incomingF175_10199) GT 0>
							<cfif FindNoCase(incomingF175_10199, currentF175_10199) GT 0>
								<cfset newF175_10199 = currentF175_10199 />
							<cfelse>
								<cfset newF175_10199 = currentF175_10199 & f175Separator_10199 & incomingF175_10199 />
							</cfif>
						<cfelseif len(currentF175_10199) GT 0>
							<cfset newF175_10199 = currentF175_10199 />
						<cfelse>
							<cfset newF175_10199 = incomingF175_10199 />
						</cfif>

						<cfif getActiveAssessment_10199.recordcount gt 1>
							<cfquery name="retireDuplicateActiveAssessments_10199" datasource="#Application.DataSrc#">
								UPDATE #Request.prefix_db_agency#.pAssessments
								SET
									Status = <cfqueryparam value="2" cfsqltype="cf_sql_integer">,
									Record_Mod_Date = <cfqueryparam value="#Now()#" cfsqltype="cf_sql_timestamp">,
									Record_Mod_By = <cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
								WHERE Assmt_ID = <cfqueryparam value="#targetAssmtID#" cfsqltype="cf_sql_integer">
								AND Status = 0
								AND AutoAssmt_ID <> <cfqueryparam value="#latestAutoAssmtID_10199#" cfsqltype="cf_sql_integer">
							</cfquery>
						</cfif>

						<cfif currentF175_10199 NEQ newF175_10199>
							<cfset generalCFC_10199 = createObject("component", "components.general.progressnotes") />
							<cfset retireSuccess_10199 = generalCFC_10199.retire_assessments(targetAssmtID,2) />

							<cfquery name="update_assessment_F175_10199" datasource="#Application.DataSrc#">
								UPDATE #Request.prefix_db_agency#.pAssessments
								SET
									F175 = <cfqueryparam value="#newF175_10199#" cfsqltype="cf_sql_varchar">,
									Record_Mod_Date = <cfqueryparam value="#Now()#" cfsqltype="cf_sql_timestamp">,
									Record_Mod_By = <cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
								WHERE AutoAssmt_ID = (
									SELECT latest.AutoAssmt_ID FROM (
										SELECT MAX(AutoAssmt_ID) AS AutoAssmt_ID
										FROM #Request.prefix_db_agency#.pAssessments
										WHERE Assmt_ID = <cfqueryparam value="#targetAssmtID#" cfsqltype="cf_sql_integer">
										AND Status = 0
									) latest
								)
							</cfquery>
						</cfif>
					</cfif>
				<cfcatch type="any">
					<cflog file="patientvisit_action" text="Error while retiring assessment and updating F175. Assmt_ID: #targetAssmtID#. Error: #cfcatch.message# - Detail: #cfcatch.detail#" type="error" />
				</cfcatch>
				</cftry>
			</cfif>
		</cfif>

		<!--- HHA Exchange: missed-visit transmit only when payer has EVV required by Payer = Yes --->
		<cfset hhaPayerRequiresEVV = false>
		<cfif isNumeric(session.agencyid) AND val(session.agencyid) EQ 1195 AND val(pSchedule_ID) GT 0>
			<cftry>
				<cfset hhaPayerRequiresEVV = createObject("component", "components.evv.EVVVisitAutomation").init().scheduleRequiresEVVAutomation(
					scheduleID = val(pSchedule_ID),
					agencyID = val(session.agencyid)
				)>
				<cfcatch type="any">
					<cflog file="HHAExchange_EVV" text="patientvisit_action EVV payer check failed schedule #pSchedule_ID#: #cfcatch.message#">
				</cfcatch>
			</cftry>
		</cfif>
		<cfif hhaPayerRequiresEVV
			AND isDefined("oldMissed") AND isDefined("newMissed")
			AND val(newMissed) GT 0 AND newMissed NEQ oldMissed>
			<cftry>
				<cfset hhaMissedResult = createObject("component", "components.sandata.hhaexchange").init().create_visit(
					Agency_ID = val(session.agencyid),
					Schedule_ID = pSchedule_ID,
					transmissionReason = "missed_visit"
				)>
				<cflog file="HHAExchange_EVV" text="patientvisit_action missed update schedule #pSchedule_ID# old=#oldMissed# new=#newMissed#: #hhaMissedResult#">
				<cfcatch type="any">
					<cflog file="HHAExchange_EVV" text="patientvisit_action missed update failed schedule #pSchedule_ID#: #cfcatch.message#">
				</cfcatch>
			</cftry>
		</cfif>

		<!--- ONLY mark EVV for retransmission if visit data actually changed --->
		<!--- This prevents unnecessary EVV status updates when no data was modified --->
		<!--- Skip generic retransmit when HHA missed update was just sent --->
		<cfset skipEvvRetransmitForMissedUpdate = (
			hhaPayerRequiresEVV
			AND isDefined("oldMissed") AND isDefined("newMissed")
			AND val(newMissed) GT 0 AND newMissed NEQ oldMissed
		)>
		<cfif visitDataChanged AND NOT skipEvvRetransmitForMissedUpdate>
			<!--- Deactivate any existing EVV_Update_Log entries for this schedule --->
			<!--- This ensures a fresh log entry will be created with blank Change_Memo when retransmitted --->
			<cftry>
				<cfquery name="deactivateOldEVVLogs" datasource="#Application.DataSrc#">
					UPDATE #Request.prefix_db_lookup#.EVV_Update_Log
					SET Status = 1,
						Change_Memo = NULL
					WHERE Schedule_ID = <cfqueryparam value="#pSchedule_ID#" cfsqltype="cf_sql_integer">
					AND Status = 0
				</cfquery>
				<cflog file="patientvisit_action" text="Schedule #pSchedule_ID# - Deactivated old EVV_Update_Log entries and cleared Change_Memo due to visit data changes">
				<cfcatch>
					<!--- Log error but don't fail the visit update --->
					<cflog file="patientvisit_action" text="Error deactivating old EVV_Update_Log entries: #cfcatch.message# - #cfcatch.detail#">
				</cfcatch>
			</cftry>
			
			<cftry>
				<cfset ahcccsObj = createObject("component", "components.sandata.AHCCCS").init()>
				<cfset ahcccsObj.markEVVForRetransmission(
					recordType = "schedule",
					recordID = form.SID,
					agencyID = session.agencyid
				)>
				<cflog file="patientvisit_action" text="Schedule #form.SID# data changed - EVV marked for retransmission. Changed fields detected.">
				<cfcatch>
					<!--- Log error but don't fail the visit update --->
					<cflog file="patientvisit_action" text="Error marking EVV for retransmission: #cfcatch.message# - #cfcatch.detail#">
				</cfcatch>
			</cftry>

			<!--- #10429/#10447: auto retransmit only for clinician-only changes; visit detail changes wait for EVV Update Log --->
			<cfset evvStatusMgr = createObject("component", "components.evv.EVVStatusManager").init()>
			<cfif evvStatusMgr.agencyUsesEVVAutomation(val(session.agencyid)) AND NOT visitDetailChanged>
				<cftry>
					<cfquery name="qSchedPgDraft" datasource="#Application.DataSrc#">
						SELECT pgnotesdraft, Patient_ID
						FROM #Request.prefix_db_agency#.pSchedules
						WHERE Schedule_ID = <cfqueryparam value="#pSchedule_ID#" cfsqltype="cf_sql_integer">
						AND Status = 0
					</cfquery>
					<cfif qSchedPgDraft.recordCount GT 0 AND val(qSchedPgDraft.pgnotesdraft) EQ 2>
						<cfset evvVisitAuto = createObject("component", "components.evv.EVVVisitAutomation").init()>
						<cfset evvEmpId = structKeyExists(client, "emp_id") ? val(client.emp_id) : (structKeyExists(session, "employeeid") ? val(session.employeeid) : 0)>
						<cfset evvQueueResult = evvVisitAuto.queueVisitAutomation(
							scheduleID = pSchedule_ID,
							agencyID = val(session.agencyid),
							triggerSource = "schedule_update",
							patientID = val(qSchedPgDraft.Patient_ID),
							createdBy = evvEmpId
						)>
						<cflog file="EVVVisitAutomation" text="schedule_update schedule #pSchedule_ID# agency #session.agencyid#: #evvQueueResult.message#">
					</cfif>
					<cfcatch type="any">
						<cflog file="EVVVisitAutomation" text="schedule_update hook failed schedule #pSchedule_ID#: #cfcatch.message#">
					</cfcatch>
				</cftry>
			<cfelseif visitDetailChanged>
				<cflog file="EVVVisitAutomation" text="schedule_update schedule #pSchedule_ID# agency #session.agencyid# skipped auto-transmit: visit detail changed, awaiting EVV Update Log memo/reason code">
			</cfif>
		<cfelseif skipEvvRetransmitForMissedUpdate>
			<cflog file="patientvisit_action" text="Schedule #form.SID# marked missed - HHA Exchange missed visit update sent; skip generic EVV retransmission">
		<cfelse>
			<!--- No changes detected - do NOT update EVV status --->
			<cflog file="patientvisit_action" text="Schedule #form.SID# saved but no changes detected - EVV status NOT updated">
		</cfif>

		<!--- When visit screen submitted with EVV reason code and memo (manual time or missing signature), insert EVV_Update_Log so AHCCCS.cfc can use them in VisitChanges JSON --->
		<cfif isNumeric(form.evv_reason_code_id) AND form.evv_reason_code_id GT 0 AND len(trim(form.evv_change_memo)) GT 0>
			<cftry>
				<cfquery name="getCurrentUserEmail" datasource="#Application.DataSrc#">
					SELECT Emp_Email FROM #Request.prefix_db_lookup#.pEmployee
					WHERE Emp_ID = <cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">
					LIMIT 1
				</cfquery>
				<cfset evvChangedByEmail = (getCurrentUserEmail.recordcount GT 0 AND len(trim(getCurrentUserEmail.Emp_Email)) GT 0) ? getCurrentUserEmail.Emp_Email : "">
				<cfif evvChangedByEmail EQ "">
					<cfset evvChangedByEmail = "system@powerpathemr.com">
				</cfif>
				<!--- Deactivate any existing active EVV_Update_Log for this schedule so we have one active entry with the new reason/memo --->
				<cfquery name="deactivateEVVLogsForReason" datasource="#Application.DataSrc#">
					UPDATE #Request.prefix_db_lookup#.EVV_Update_Log
					SET Status = 1
					WHERE Schedule_ID = <cfqueryparam value="#pSchedule_ID#" cfsqltype="cf_sql_integer">
					AND Status = 0
				</cfquery>
				<cfquery name="insertEVVUpdateLogFromVisit" datasource="#Application.DataSrc#">
					INSERT INTO #Request.prefix_db_lookup#.EVV_Update_Log (
						Schedule_ID, Agency_ID, EVV_ID, Date_Updated, Change_Memo,
						Changed_By, Changed_By_Email, Reason_Code_ID, Date_Reason_Added, Reason_Added_By, Status
					) VALUES (
						<cfqueryparam value="#pSchedule_ID#" cfsqltype="cf_sql_integer">,
						<cfqueryparam value="#session.agencyid#" cfsqltype="cf_sql_integer">,
						NULL,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value="#trim(form.evv_change_memo)#" cfsqltype="cf_sql_longvarchar">,
						<cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">,
						<cfqueryparam value="#evvChangedByEmail#" cfsqltype="cf_sql_varchar">,
						<cfqueryparam value="#form.evv_reason_code_id#" cfsqltype="cf_sql_integer">,
						<cfqueryparam value="#now()#" cfsqltype="cf_sql_timestamp">,
						<cfqueryparam value="#session.employeeid#" cfsqltype="cf_sql_integer">,
						0
					)
				</cfquery>
				<cflog file="patientvisit_action" text="Schedule #pSchedule_ID# - Inserted EVV_Update_Log with Reason_Code_ID=#form.evv_reason_code_id# from visit screen">
				<cfcatch>
					<cflog file="patientvisit_action" text="Error inserting EVV_Update_Log from visit screen: #cfcatch.message# - #cfcatch.detail#">
				</cfcatch>
			</cftry>
		</cfif>

		<!--- <cfif form.Followup_visit EQ 1 AND left(form.assvisit_type,1) EQ '1' AND form.visit_longitude NEQ ''>
			<cfquery name="update_patients"  datasource="#Application.DataSrc#">
				UPDATE IGNORE #Request.prefix_db_agency#.pPatients
		     	  SET Pt_Longitude = <cfqueryparam VALUE="#form.visit_longitude#"  cfsqltype="cf_sql_varchar">,
                    Pt_Latitude = <cfqueryparam VALUE="#form.visit_latitude#"  cfsqltype="cf_sql_varchar">
                WHERE Patient_ID = <cfqueryparam VALUE="#form.Patient_ID#"  cfsqltype="cf_sql_integer">
                AND Status IN (0,1,4)
            </cfquery>
		</cfif> --->



		<!--- <cfquery name="InsertingpSchedules"  datasource="#Application.DataSrc#"  result="result">
		   INSERT INTO #Request.prefix_db_agency#.pSchedules (Schedule_ID, Patient_ID, Assmt_ID, Auth_ID, PtPayer_ID, Rev_ID, HCPCS_ID, Emp_ID, Pay_ID, 
		   	Invoice_ID,NOA, CMSOrder_ID,
		   	Skill, Visit_no, Status, Nonbillable, Missed, Visit_Date, StartTime, EndTime, Total_Units,Total_Eclaim, Mi_Pay, SuperVision, Initial_visit, Followup_visit,
		   	prn_visit,prn_reason, patient_sign, <cfif form.sign_datetime NEQ ''>sign_datetime,</cfif>Sch_Longitude,Sch_Latitude, Sup_1,Sup_2,Sup_3, homebound,
		   <cfif form.Followup_visit EQ 1 > Visit_Type,</cfif> Mileage, Travel, Paperwork, <!--- Progress_Note, ---> pgnotesdraft, Notes,
		   total_visits, severity_problem, severity_goal, increment_problem, increment_this_visit, result_this_visit,
		    total_goal, increment_goal, increment_goal_this_visit, goal_result_this_visit, total_increment, total_result, Schedules_Dup,
		    Date_Create, Created_by, Date_Change, Change_by)
		    VALUES
		    ( 
		      	<cfqueryparam VALUE="#pSchedule_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Patient_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Assmt_ID_Temp#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Auth_ID#"  cfsqltype="cf_sql_integer">,
		     	<cfqueryparam VALUE="#form.PtPayer_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Rev_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.HCPCS_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Emp_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Pay_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Invoice_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.NOA#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.CMSOrder_ID#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#GetRev.visit_type#"  cfsqltype="cf_sql_varchar">,
		      	<cfqueryparam VALUE="#pVisit_no#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="0"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Nonbillable#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Missed#"  cfsqltype="cf_sql_integer">,
				<cfqueryparam VALUE="#form.Visit_Date#"  cfsqltype="cf_sql_date">,
				<cfqueryparam VALUE="#form.StartTime#"  cfsqltype="cf_sql_varchar">,
				<cfqueryparam VALUE="#form.EndTime#"  cfsqltype="cf_sql_varchar">,
				<cfqueryparam VALUE="#form.Total_Units#"  cfsqltype="cf_sql_integer">,
				<cfqueryparam VALUE="#form.Total_Eclaims#"  cfsqltype="CF_SQL_FLOAT">,
				<cfqueryparam VALUE="#form.Mi_Pay#"  cfsqltype="cf_sql_integer">,
				<cfqueryparam VALUE="#form.SuperVision#"  cfsqltype="cf_sql_integer">,
				<cfqueryparam VALUE="#form.Initial_visit#"  cfsqltype="cf_sql_integer">,
				<cfqueryparam VALUE="#form.Followup_visit#"  cfsqltype="cf_sql_integer">,					
				<cfqueryparam VALUE="#form.prn_visit#"  cfsqltype="cf_sql_integer">, 
				<cfqueryparam VALUE="#form.prn_reason#"  cfsqltype="cf_sql_varchar">,
			    <cfqueryparam VALUE="#form.patient_sign#"  cfsqltype="cf_sql_varchar">, 
			    <cfif form.sign_datetime NEQ ''>
			   		 <cfqueryparam VALUE="#form.sign_datetime#"  cfsqltype="cf_sql_timestamp">, 
			   </cfif>
			   <cfif form.Sch_Longitude NEQ ''>
			    	<cfqueryparam VALUE="#form.Sch_Longitude#"  cfsqltype="CF_SQL_FLOAT">,
			    <cfelse>
			    	NULL,
			    </cfif>
			    <cfif form.Sch_Latitude NEQ ''> 
			    	<cfqueryparam VALUE="#form.Sch_Latitude#"  cfsqltype="CF_SQL_FLOAT">,
			     <cfelse>
			    	NULL, 
			    </cfif>
			    <cfqueryparam VALUE="#form.Sup_1#"  cfsqltype="cf_sql_varchar">,
			    <cfqueryparam VALUE="#form.Sup_2#"  cfsqltype="cf_sql_varchar">,
			    <cfqueryparam VALUE="#form.Sup_3#"  cfsqltype="cf_sql_varchar">,
				<cfqueryparam VALUE="#form.homebound#"  cfsqltype="cf_sql_varchar">,
				<cfif form.Followup_visit EQ 1 >
					<cfqueryparam VALUE="#form.assvisit_type#"  cfsqltype="cf_sql_varchar">,
				</cfif>
				<cfqueryparam VALUE="#form.Mileage#"  cfsqltype="cf_sql_integer">,
				<cfqueryparam VALUE="#form.Travel#"  cfsqltype="cf_sql_varchar">,
				<cfqueryparam VALUE="#form.Paperwork#"  cfsqltype="cf_sql_varchar">,
				<!--- <cfqueryparam VALUE="#form.Progress_Note#"  cfsqltype="cf_sql_integer">, --->
				<cfqueryparam VALUE="#form.pgnotesdraft#"  cfsqltype="cf_sql_integer">,
				<cfqueryparam VALUE="#form.Notes#"  cfsqltype="cf_sql_varchar">,
				<cfqueryparam VALUE="#form.total_visits#"  cfsqltype="cf_sql_integer">,
                <cfqueryparam VALUE="#form.severity_problem#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.severity_goal#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.increment_problem#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.increment_this_visit#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.result_this_visit#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.total_goal#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.increment_goal#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.increment_goal_this_visit#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.goal_result_this_visit#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.total_increment#"  cfsqltype="CF_SQL_FLOAT">,
                 <cfqueryparam VALUE="#form.total_result#"  cfsqltype="CF_SQL_FLOAT">,
                <cfqueryparam VALUE="#form.Schedules_Dup#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Record_Creation_Date#"  cfsqltype="cf_sql_timestamp">,
		      	<cfqueryparam VALUE="#form.Record_Created_By#"  cfsqltype="cf_sql_integer">,
		      	<cfqueryparam VALUE="#form.Record_Creation_Date#"  cfsqltype="cf_sql_timestamp">,
		      	<cfqueryparam VALUE="#form.Record_Created_By#"  cfsqltype="cf_sql_integer">
		    )
		</cfquery> --->


		<cfcatch>
			<cfquery name="revert_pSchedules" datasource="#Application.DataSrc#" >
		           UPDATE #Request.prefix_db_agency#.pSchedules SET 
		           Status   = <cfqueryparam VALUE="0"  cfsqltype="cf_sql_integer">,      
		           Date_Change = <cfqueryparam VALUE="#form.Record_Mod_Date#"  cfsqltype="cf_sql_timestamp">,
		           Change_by = <cfqueryparam VALUE="#form.Record_Mod_By#"  cfsqltype="cf_sql_integer">
		           WHERE  Schedule_ID = <cfqueryparam VALUE="#pSchedule_ID#"  cfsqltype="cf_sql_integer">
		           ORDER BY AutoSchedule_ID DESC LIMIT 1
		       </cfquery>
	        <h1>There is an error submitting the visit. The error has been forwarded to the Programming Team.</h2>

	         <cfmail to="#request.send_errors_to#" from="error@myhomecarebiz.com" subject="#Application.Secure# - Error when update visits" type="html">
   			     	<font face="Verdana, Arial, Helvetica, sans-serif" size="2">
               		 <p><b>An error occurred on the website.</b></p>
						<cfif Request.prefix_db_agency eq "prefix_db_agency_invalid">
                        <h2>Prefix Error: Prefix Was  Not Supplied</h2>
                    <cfelseif not isDefined("Request.Agency_ID")>
                        <h2>Prefix Error: Invalid Prefix Supplied</h2>
                    </cfif>
								 		<table align=left>
                        <tr>
                            <td nowrap valign=top><b>Error Date/Time</b></td>
                            <td>#DateFormat(now(),"mm/dd/yyyy")# #TimeFormat(now(),"hh:mm:ss")#</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>Template</b></td>
                            <td>/var/www/patientadmin_new/patient/patientvisit_action.cfm</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>Error Information</b></td>
                            <td>Authorization ID is zero</td>
                        </tr>
                        <tr> <td nowrap valign=top colspan=2><hr></td></tr>

                        <cfif isDefined("session.agencyname")>
                            <tr>
                                <td nowrap valign=top><b>Agency Login</b></td>
                                <td>#session.agencylogin#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>Agency Name</b></td>
                                <td>#session.agencyname#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>Agency ID</b></td>
                                <td>#session.agencyid#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>Display Name</b></td>
                                <td>#session.display#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>User ID</b></td>
                                <td>#Session.EmployeeID#</td>
                            </tr>
                            <tr>
                                <td nowrap valign=top><b>User Name</b></td>
                                <td>#session.username#</td>
                            </tr>
                        </cfif>

                        <tr>
                            <td nowrap valign=top colspan=2><hr></td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>Server</b></td>
                            <td>#CGI.SERVER_NAME#</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top><b>DSN</b></td>
                            <td>#Application.DataSrc#</td>
                        </tr>
                        <tr>
                            <td nowrap valign=top colspan=2><hr></td>
                        </tr>
                        <tr>
                            <td nowrap valign=top colspan=2>
                                <b>Form Variables:</b><br />
                                <cfdump var="#FORM#"><br>

                                <b>URL Variables:</b><br />
                                <cfdump var="#URL#"><br>

                                <b>Request Variables:</b><br />
                                <cfdump var="#Request#"><br>

                                <b>Session Variables:</b><br />
                                <cfdump var="#Session#"><br>
                            </td>
                        </tr>
                    </table>
               		</font>
       			</cfmail>
	         <cfabort>
	    	
	    </cfcatch>
</cftry>


		<!--- START insert/update Visit_Date with pAdmit_Svcs.Start_Date --->
		<cfif form.Followup_visit EQ 1 >
			<cfscript>
			    request.ass = CreateObject("component","components.general.assessments").init();
			    getassment = request.ass.get_assessments(#form.Patient_ID#,#form.Assmt_ID_Temp#);
    		</cfscript>
    		<cfset Request.Admit_ID =  getassment.Admit_ID />
    		<cfif getassment.RecordCount gt 0 >
				<cfset Request.Admit_ID =  getassment.Admit_ID />
				<cfquery name="getsAdmit_Svcs"  datasource="#Application.DataSrc#" >
					SELECT * FROM #Request.prefix_db_agency#.pAdmit_Svcs
				    WHERE Status = 0 
					AND Admit_ID =  <cfqueryparam VALUE="#Request.Admit_ID#"  cfsqltype="cf_sql_integer">
					AND Skill = <cfqueryparam VALUE="#form.assvisit_type#"  cfsqltype="cf_sql_varchar">
				</cfquery>
				<cfif getsAdmit_Svcs.RecordCount GT 0>
				    <cfset updateadmitsvcs = request.ass.update_admitsvcs(AutoAdmitSvcs_ID="#getsAdmit_Svcs.AutoAdmitSvcs_ID#", Admit_ID= "#getsAdmit_Svcs.Admit_ID#", Start_Date= #form.Visit_Date#) />
	    			<cfif updateadmitsvcs NEQ 'Success'>
	    				<h1>Admit services updating has been failed so please contact your administartor</h2><cfabort>
	    			</cfif>
				<cfelse>
					<cfscript>
				    	insertadmitsvcs = request.ass.update_admitsvcs( AutoAdmitSvcs_ID= 0, Admit_ID= #Request.Admit_ID#,
				    	 Skill= #form.assvisit_type#, Start_Date= #form.Visit_Date#, Physician_order= "no", Admitted= "yes");
	    			</cfscript>
	    			<cfif insertadmitsvcs NEQ 'Success'>
	    				<h1>Admit services insertion has been failed so please contact your administartor</h2><cfabort>
	    			</cfif>
				</cfif>
			</cfif>
		</cfif>
		<!--- END update Visit_Date with pAdmit_Svcs.Start_Date --->

		<cfset Request.Visit_Date  = #form.Visit_Date# >
		<cfset Request.StartTime  = #form.StartTime# >
		<cfset Request.EndTime  = #form.EndTime# >
		<cfset Request.Patient_ID  = #form.Patient_ID# >
		<cfset Request.Emp_ID  = #form.Emp_ID# >
		<cfset Request.Schedule_ID  = pSchedule_ID />
		<cfinclude template="/schedules/duplicate_visitupdate.cfm" />
		<cfset Assmt_ID    = #form.Assmt_ID_Temp# >
		<cfset Auth_ID     = #form.Auth_ID# >
		<cfset Patient_ID  = #form.Patient_ID# >
		<cfinclude template="/schedules/update_visitcompliance.cfm" />
		<cfparam name="form.frm" default="">
	
		<cfif form.addsign EQ 1 >
			<cfset encassid   = encrypt(#form.Assmt_ID_Temp#,#application.enckey#,"AES","Hex") />
			<cfset encsid   = encrypt(#Request.Schedule_ID#,#application.enckey#,"AES","Hex") />
			<cflocation url="/patientadmin_new/index.cfm?a=1&page=patient&px=y&ID=#session.cs.enc_patientid#&cat=patient_sign&AID=#encassid#&SID=#encsid#" addtoken="no">
		<cfelseif form.addsign EQ 2 >
			<cfset encassid   = encrypt(#form.Assmt_ID_Temp#,#application.enckey#,"AES","Hex") />
			<cfset encsid   = encrypt(#Request.Schedule_ID#,#application.enckey#,"AES","Hex") />
			<cflocation url="/patientadmin_new/index.cfm?a=1&page=patient&px=y&ID=#session.cs.enc_patientid#&cat=patientedit_visit&AID=#encassid#&SID=#encsid#" addtoken="no">
		</cfif>

		<!--- START  PG notes creation for 9 - Discharge OR 4 - Recert OR 3 - Resumption  --->
		<cfset encassid  = encrypt(#form.Assmt_ID_Temp#,#application.enckey#,"AES","Hex") />
		<cfset encsid   = encrypt(#Request.Schedule_ID#,#application.enckey#,"AES","Hex") />
		<!--- <cfif form.Followup_visit EQ 1 AND form.createpgnotes EQ 1>
			<cfquery name = "Getall_ass" datasource="#Application.DataSrc#">
				SELECT * FROM #Request.prefix_db_agency#.pAssessments 
				LEFT OUTER JOIN #Request.prefix_db_agency#.pPatients ON pAssessments.Patient_ID = pPatients.Patient_ID
				WHERE pPatients.Loc_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#session.agencyid#">
				AND  pAssessments.Patient_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#session.cs.patientid#">
				AND pAssessments.status = 0 
				AND pAssessments.Admit_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#Request.Admit_ID#">
				AND pPatients.status < 2
				Order By F176 ASC 
			</cfquery>
			<cfset all_assessmentreason = ValueList(Getall_ass.F26) />
		
			<cfoutput>
				<script>
					pgnoteinsertion('#form.Assmt_ID_Temp#','#GetRev.visit_type#','#Request.Schedule_ID#');
					function pgnoteinsertion(AID,skilltype,Schedule_ID)
						{
								var Skills = '';
								<cfif all_assessmentreason contains 'PT Adult Evaluation'>				        			
						     		Skills = 'PT';
						     	<cfelseif all_assessmentreason contains 'OT Adult Evaluation'>	
						     		Skills = 'OT';
						     	</cfif>

						     	if ( Skills == "PT" || Skills == "OT")
						     	{
						     		jQuery.ajax({
							                url: "/pathway/careplan.cfc",
								                type: "get",  	
								                data: {
								                method: "insertautocareplans",
								                problem_id: 1,
								                Skill: Skills,
								                Assmt_ID: AID,
							                }, 
							                success: function (data){
							                	
						                		if (data != "Failed")
										        	{
										        		pgnoteinsertion1(AID,skilltype,Schedule_ID)
											         }	
											        else
											        {
											        	bootbox.alert(data);
											        }		        	      		                    
							                }, 
							                error: function (xhr, textStatus, errorThrown){ 
							                alert(errorThrown);
							                }
							                });
						     	}
						     	else
						     	{
						     		pgnoteinsertion1(AID,skilltype,Schedule_ID)
						     	}
								
						}

						function pgnoteinsertion1(AID,skilltype,Schedule_ID)
						{

						     jQuery.ajax({
							            url: "../pathway/progressnotes.cfc?method=insert_progress",
							            type: "get",
							              crossDomain: true,headers:{ 'Access-Control-Allow-Origin':'*'  },
							                data: {                 
							                    Assmt_ID: AID,
							                    Skill: skilltype,
							                    Schedule_ID: Schedule_ID
							                },
							                success: function(data)
							                {   
							                    if(data == "Success"){ 
							                        //alert("success");
							                       // newurl  = '../patientadmin_new/index.cfm?page=patient&ID=#session.cs.enc_patientid#&cat=patientedit_visit&restrict=1&formonly=1&AID=#encassid#&SID=#encsid#&frm=bill';
							                        newurl =  '#form.currentpage#';
							                        window.location.href  = newurl ; 
							                    }   
							                    else
							                    {
							                     bootbox.alert("failed"); 
							                    }            
							                },
							                error: function(xhr, textStatus, errorThrown)
							                {
							                    alert(errorThrown);
							                } 
							        }); 
						}
				</script>
			</cfoutput>
			<h3>Please wait till finish the updating.</h3>
			<cfabort> 
		</cfif> --->
		<!--- Debug: Print all old and new values for comparison --->
		<!--- <cfif CGI.REMOTE_ADDR EQ '103.143.7.161' AND form.SID NEQ 0 AND isDefined("getcurrentvisits") AND getcurrentvisits.recordcount GT 0>
			<cfoutput>
				<h2>Visit Data Comparison - Schedule ID: #form.SID#</h2>
				<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse;">
					<tr style="background-color: ##f0f0f0;">
						<th>Field</th>
						<th>Old Value</th>
						<th>New Value</th>
						<th>Changed?</th>
					</tr>
					<tr>
						<td><strong>Auth_ID</strong></td>
						<td>#oldAuth_ID#</td>
						<td>#newAuth_ID#</td>
						<td><cfif newAuth_ID NEQ oldAuth_ID>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>PtPayer_ID</strong></td>
						<td>#oldPtPayer_ID#</td>
						<td>#newPtPayer_ID#</td>
						<td><cfif newPtPayer_ID NEQ oldPtPayer_ID>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Rev_ID</strong></td>
						<td>#oldRev_ID#</td>
						<td>#newRev_ID#</td>
						<td><cfif newRev_ID NEQ oldRev_ID>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>HCPCS_ID</strong></td>
						<td>#oldHCPCS_ID#</td>
						<td>#newHCPCS_ID#</td>
						<td><cfif newHCPCS_ID NEQ oldHCPCS_ID>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Schedule_Notes</strong></td>
						<td>#oldSchedule_Notes#</td>
						<td>#newSchedule_Notes#</td>
						<td><cfif newSchedule_Notes NEQ oldSchedule_Notes>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Emp_ID</strong></td>
						<td>#oldEmp_ID#</td>
						<td>#newEmp_ID#</td>
						<td><cfif newEmp_ID NEQ oldEmp_ID>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Pay_ID</strong></td>
						<td>#oldPay_ID#</td>
						<td>#newPay_ID#</td>
						<td><cfif newPay_ID NEQ oldPay_ID>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Skill</strong></td>
						<td>#oldSkill#</td>
						<td>#newSkill#</td>
						<td><cfif newSkill NEQ oldSkill>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Nonbillable</strong></td>
						<td>#oldNonbillable#</td>
						<td>#newNonbillable#</td>
						<td><cfif newNonbillable NEQ oldNonbillable>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Missed</strong></td>
						<td>#oldMissed#</td>
						<td>#newMissed#</td>
						<td><cfif newMissed NEQ oldMissed>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Visit_Date</strong></td>
						<td>#oldVisit_Date#</td>
						<td>#newVisit_Date#</td>
						<td><cfif visitDateChanged>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>StartTime</strong></td>
						<td>#oldStartTime#</td>
						<td>#newStartTime#</td>
						<td><cfif newStartTime NEQ oldStartTime>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>EndTime</strong></td>
						<td>#oldEndTime#</td>
						<td>#newEndTime#</td>
						<td><cfif newEndTime NEQ oldEndTime>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Total_Units</strong></td>
						<td>#oldTotal_Units#</td>
						<td>#newTotal_Units#</td>
						<td><cfif newTotal_Units NEQ oldTotal_Units>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Total_Eclaim</strong></td>
						<td>#oldTotal_Eclaim#</td>
						<td>#newTotal_Eclaim#</td>
						<td><cfif newTotal_Eclaim NEQ oldTotal_Eclaim>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Mi_Pay</strong></td>
						<td>#oldMi_Pay#</td>
						<td>#newMi_Pay#</td>
						<td><cfif newMi_Pay NEQ oldMi_Pay>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>SuperVision</strong></td>
						<td>#oldSuperVision#</td>
						<td>#newSuperVision#</td>
						<td><cfif newSuperVision NEQ oldSuperVision>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Initial_visit</strong></td>
						<td>#oldInitial_visit#</td>
						<td>#newInitial_visit#</td>
						<td><cfif newInitial_visit NEQ oldInitial_visit>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Followup_visit</strong></td>
						<td>#oldFollowup_visit#</td>
						<td>#newFollowup_visit#</td>
						<td><cfif newFollowup_visit NEQ oldFollowup_visit>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>prn_visit</strong></td>
						<td>#oldprn_visit#</td>
						<td>#newprn_visit#</td>
						<td><cfif newprn_visit NEQ oldprn_visit>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>prn_reason</strong></td>
						<td>#oldprn_reason#</td>
						<td>#newprn_reason#</td>
						<td><cfif newprn_reason NEQ oldprn_reason>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Sup_1</strong></td>
						<td>#oldSup_1#</td>
						<td>#newSup_1#</td>
						<td><cfif newSup_1 NEQ oldSup_1>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Sup_2</strong></td>
						<td>#oldSup_2#</td>
						<td>#newSup_2#</td>
						<td><cfif newSup_2 NEQ oldSup_2>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Sup_3</strong></td>
						<td>#oldSup_3#</td>
						<td>#newSup_3#</td>
						<td><cfif newSup_3 NEQ oldSup_3>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Maint_1</strong></td>
						<td>#oldMaint_1#</td>
						<td>#newMaint_1#</td>
						<td><cfif newMaint_1 NEQ oldMaint_1>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Maint_2</strong></td>
						<td>#oldMaint_2#</td>
						<td>#newMaint_2#</td>
						<td><cfif newMaint_2 NEQ oldMaint_2>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Maint_3</strong></td>
						<td>#oldMaint_3#</td>
						<td>#newMaint_3#</td>
						<td><cfif newMaint_3 NEQ oldMaint_3>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>homebound</strong></td>
						<td>#oldhomebound#</td>
						<td>#newhomebound#</td>
						<td><cfif newhomebound NEQ oldhomebound>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Visit_Type</strong></td>
						<td>#oldVisit_Type#</td>
						<td>#newVisit_Type#</td>
						<td><cfif newVisit_Type NEQ oldVisit_Type>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Mileage</strong></td>
						<td>#oldMileage#</td>
						<td>#newMileage#</td>
						<td><cfif newMileage NEQ oldMileage>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Travel</strong></td>
						<td>#oldTravel#</td>
						<td>#newTravel#</td>
						<td><cfif newTravel NEQ oldTravel>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Paperwork</strong></td>
						<td>#oldPaperwork#</td>
						<td>#newPaperwork#</td>
						<td><cfif newPaperwork NEQ oldPaperwork>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>pgnotesdraft</strong></td>
						<td>#oldpgnotesdraft#</td>
						<td>#newpgnotesdraft#</td>
						<td><cfif newpgnotesdraft NEQ oldpgnotesdraft>YES<cfelse>NO</cfif></td>
					</tr>
					<tr>
						<td><strong>Notes</strong></td>
						<td>#oldNotes#</td>
						<td>#newNotes#</td>
						<td><cfif newNotes NEQ oldNotes>YES<cfelse>NO</cfif></td>
					</tr>
					<tr style="background-color: ##e0e0e0; font-weight: bold;">
						<td colspan="3"><strong>Overall Result:</strong></td>
						<td><cfif visitDataChanged>DATA CHANGED - EVV WILL UPDATE<cfelse>NO CHANGES - EVV WILL NOT UPDATE</cfif></td>
					</tr>
				</table>
			</cfoutput>
			<cfabort>
		</cfif> --->

		<cfparam name="form.previous" default="">
		<cfif form.previous contains '&df=&dt=' OR form.previous contains 'patientvisit_action'>
			<cfset form.previous ="../patientadmin_new/index.cfm?page=patient&ID=#session.cs.enc_patientid#&cat=patientedit_visit&restrict=1&formonly=1&AID=#encassid#&SID=#encsid#&frm=bill" />
		</cfif>
	    <cfif isdefined('form.frm') and form.frm eq 'bill'>
	   			<cflocation url="#form.previous#" addtoken="no">
	    <cfelseif isdefined('form.frm') and form.frm eq 'schedules' and isdefined('form.view') and form.view eq 'day'>
				<cflocation url="/schedules/index.cfm?view=day&mmid=3" addtoken="no">
		<cfelseif isdefined('form.frm') and form.frm eq 'schedules' and isdefined('form.view') and form.view eq 'week'>
				<cflocation url="/schedules/index.cfm?page=schedules&cat=&rpt=&view=week" addtoken="no">
		<cfelseif isdefined('form.frm') and form.frm eq 'schedulesmonth'>
				<cflocation url="#form.currentpage#&message=Visit Updated" addtoken="no">
				<cflocation url="/schedules/index.cfm?page=schedules&cat=&rpt=&view=month" addtoken="no">
		<cfelseif  form.frm eq 'currentpage' OR form.frm eq 'patient' >
			<cflocation url="#form.currentpage#" addtoken="no">
		<cfelse>
		   <cflocation url="#form.previous#" addtoken="no">
			<cfif not isdefined("url.from")> 
				<cfif isdefined('session.schedhomeurl') and session.schedhomeurl neq ''>
				   <cfif isdefined('session.schedhomeurl') and session.schedhomeurl neq ''>
				   	   	<cfif isdefined('form.view') and form.view eq 'month'>
							  	<cflocation url="/schedules/index.cfm?page=schedules&cat=&rpt=&view=month" addtoken="no">
							  <cfelse>							  	 
								<cflocation url='#form.previous#' addtoken="no">
						</cfif>
						
					</cfif>
					<cflocation url="/schedules/index.cfm?view=day&mmid=3" addtoken="no">
				<cfelse>
				
					<cfif isdefined('session.schwizard') and  session.schwizard eq "True">
						<cfif isdefined('session.addschduleassessurl') and session.addschduleassessurl neq ''>
							<cflocation url ="#session.addschduleassessurl#" addtoken="no">	
						</cfif>		
					<cfelse>
						<cfif isdefined('session.add_schdule_assessurl') and session.add_schdule_assessurl neq ''>
							<cflocation url ="#session.add_schdule_assessurl#" addtoken="no">
						</cfif>
					</cfif>
				 </cfif>
				 <cflocation url="/schedules/index.cfm?view=day&mmid=3" addtoken="no">
			</cfif>
		</cfif>
		<cflocation url="/schedules/index.cfm?view=day&mmid=3" addtoken="no">
</cfif>
