<!---
AJAX handler to get HCPCS codes filtered by visit date, payer, and authorization skill (#10401, #10480).
Skill comes from the authorization (not the employee) so the list is payer + skill scoped.
--->
<cfif NOT isdefined("session.agencyid")>
	<h2>Your Session has timed out.</h2><br /> <p>Please Login again.<br /></p> 
<cfelse>
	<cfparam name="url.visit_date" default="">
	<cfparam name="url.visit_date_end" default="">
	<cfparam name="url.payer_id" default="0">
	<cfparam name="url.emp_id" default="0">
	<cfparam name="url.skill" default="">
	<cfparam name="url.selected_hcpcs_id" default="0">
	
	<cfif url.visit_date NEQ "" AND url.payer_id NEQ 0>
		<!--- Parse the visit date to ensure proper format --->
		<cftry>
			<cfset visitDateParsed = CreateODBCDate(url.visit_date)>
			<cfset visitDateEndParsed = visitDateParsed>
			<cfif url.visit_date_end NEQ "" AND IsDate(url.visit_date_end)>
				<cfset visitDateEndParsed = CreateODBCDate(url.visit_date_end)>
			</cfif>
			<!--- Authorization skill drives HCPCS list (#10480) — do not override with employee skill --->
			<cfset hcpcs_skill = Trim(url.skill)>
			
			<cfquery name="gethcpcs" datasource="#Application.DataSrc#">
				SELECT * FROM  #Request.prefix_db_agency#.pRevenue_Code 
				WHERE Status = 0
				AND pRevenue_Code.Payer_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#url.payer_id#">
				AND Agency_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#session.agencyid#">
				<cfif hcpcs_skill NEQ ''>
					<cfset skillUpper = UCase(Trim(hcpcs_skill))>
					<cfif skillUpper EQ 'PT' OR skillUpper EQ 'PTA'>
						AND pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="PT">
					<cfelseif skillUpper EQ 'OT' OR skillUpper EQ 'COTA'>
						AND pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="OT">
					<cfelseif skillUpper EQ 'ST' OR skillUpper EQ 'STA' OR skillUpper EQ 'SLPA'>
						AND pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="ST">
					<cfelseif skillUpper EQ 'SN' OR skillUpper EQ 'RN' OR Left(skillUpper, 3) EQ 'LPN' OR Left(skillUpper, 3) EQ 'LVN'>
						<!--- LPN/LVN rows are often Visit_Type SN or "Skilled Nursing" with LPN description (G0300) --->
						AND (
							pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="SN">
							OR pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="LPN">
							OR pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="LVN">
							OR pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="LVN/LPN">
							OR pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="Skilled Nursing">
							OR pRevenue_Code.HCPCS = <cfqueryparam cfsqltype="cf_sql_varchar" value="G0299">
							OR pRevenue_Code.HCPCS = <cfqueryparam cfsqltype="cf_sql_varchar" value="G0300">
							OR pRevenue_Code.Description LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%LPN%">
							OR pRevenue_Code.Description LIKE <cfqueryparam cfsqltype="cf_sql_varchar" value="%LVN%">
						)
					<cfelseif skillUpper EQ 'MSW' OR skillUpper EQ 'SW'>
						AND (
							pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="MSW">
							OR pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="Medical Social Worker">
						)
					<cfelse>
						AND pRevenue_Code.Visit_Type = <cfqueryparam cfsqltype="cf_sql_varchar" value="#hcpcs_skill#">
					</cfif>
				</cfif>
				AND (
					pRevenue_Code.Contract_Rate_Effective_Date IS NULL 
					OR pRevenue_Code.Contract_Rate_Effective_Date <= <cfqueryparam cfsqltype="cf_sql_date" value="#visitDateParsed#">
				)
				AND (
					pRevenue_Code.Contract_Rate_End_Date IS NULL 
					OR pRevenue_Code.Contract_Rate_End_Date >= <cfqueryparam cfsqltype="cf_sql_date" value="#visitDateEndParsed#">
				)
				ORDER BY HCPCS, Description
			</cfquery>
			
			<select class="form-control" name="HCPCS_ID" id="HCPCS_ID" onchange="onHCPCSChange(this.value);">
				<option value=0>--- Select HCPCS ---</option>
				<cfoutput query="gethcpcs">
					<option value='#gethcpcs.Rev_CodeID#' <cfif gethcpcs.Rev_CodeID EQ url.selected_hcpcs_id>selected</cfif>>#HCPCS# - #Description#</option>
				</cfoutput>
			</select>
			
			<cfcatch type="any">
				<select class="form-control" name="HCPCS_ID" id="HCPCS_ID" onchange="onHCPCSChange(this.value);">
					<option value=0>--- Select HCPCS ---</option>
				</select>
			</cfcatch>
		</cftry>
	<cfelse>
		<select class="form-control" name="HCPCS_ID" id="HCPCS_ID" onchange="onHCPCSChange(this.value);">
			<option value=0>--- Select HCPCS ---</option>
		</select>
	</cfif>
</cfif>
