<cfcomponent public="yes" output="false">
	<cffunction name="GetScheduledcount" access="remote" returnformat="plain" returntype="string">
		<cfargument name="Startdate" required="yes" hint="Authorization start,end date ">
		<cfargument name="Enddate" required="yes" hint="Authorization start,end date">
		<cfargument name="revcode_id" required="yes" hint="Authorization start,end date and Units">
		<cfargument name="patid" required="yes" hint="Authorization start,end date and Units">
		<cfargument name="payid" required="yes" hint="Authorization start,end date and Units">

		<cfquery name="SchDate" datasource="#Application.DataSrc#">
			Select case  r.Measure
			When '.25' Then  Sum(s.Total_Units)
			When 'visit' Then Count(s.ScheduleItems_ID)
			When '1' Then  Cast(Sum(s.Total_Hours) AS UNSIGNED)
			End  as weekunits From #Request.prefix_db_agency#.ScheduleItems s, #Request.prefix_db_agency#.Revenue_Code r
			Where r.Rev_CodeID = s.Rev_CodeID
			<!---AND s.Assessment_ID = '#Assid#'--->
			AND s.Patient_ID='#patid#'
			AND s.Payer_ID='#payid#'
			AND s.Rev_CodeID = '#revcode_id#'
			AND s.Visit_Date BETWEEN '#Startdate#' AND '#Enddate#'
		</cfquery>

		<cfif isdefined('SchDate.recordcount') and SchDate.recordcount gt 0>
			<cfset RetValue=SchDate.weekunits />

			<cfreturn #RetValue#>
		<cfelse>
			<cfreturn '0'>
		</cfif>
	</cffunction>

	<cffunction name="Getauthorizeddates" access="remote" returnformat="plain" returntype="string">
		<cfargument name="revcode_id" required="yes" hint="Authorization start,end date and Units">
		<cfargument name="patid" required="yes" hint="Authorization start,end date and Units">
		<cfargument name="payid" required="yes" hint="Authorization start,end date and Units">
		<cfargument name="Aid" required="yes" hint="Authorization start,end date and Units">

		<cfquery name="AuthoDate" datasource="#Application.DataSrc#">
			Select a.Time_Frame, a.Units, s.Total_Units, a.StartDate, a.EndDate,  ABS(floor(DateDiff(a.StartDate , a.EndDate)/7)) as countweeks  From #Request.prefix_db_agency#.authorizations a, #Request.prefix_db_agency#.ScheduleItems s
			Where a.Payer_ID = s.Payer_ID
			AND a.Rev_CodeID = s.Rev_CodeID
			AND a.Patient_ID='#patid#'
			AND a.Payer_ID='#payid#'
			AND a.Rev_CodeID = '#revcode_id#'
			and a.Auth_ID='#Aid#'
		</cfquery>

		<cfif isdefined('AuthoDate.recordcount') and AuthoDate.recordcount gt 0>
			<cfset ReValue=DateFormat(AuthoDate.StartDate, 'mm/dd/yyyy')&'|'&DateFormat(AuthoDate.EndDate, 'mm/dd/yyyy')&'|'&AuthoDate.Units&'|'&AuthoDate.Total_Units&'|'&AuthoDate.countweeks >

			<cfreturn #ReValue#>
		<cfelse>
			<cfreturn '0'>
		</cfif>
	</cffunction>


<cffunction name="Get_Visit_orderdate" access="remote" returnformat="plain" returntype="string">
		<cfargument name="revcode_id" required="yes" hint="revcode_id">
		<cfargument name="patid" required="yes" hint="patid">
		<!---<cfargument name="payid" required="yes" hint="payid">--->
		<cfargument name="Aid" required="yes" hint="Aid">
		<cfargument name="AssessmentID" required="yes" hint="AssessmentID">
		

			<cfquery name="OrderDate" datasource="#Application.DataSrc#">
					SELECT v.Assessment_ID,v.Revenue_Code,v.HCPCS_Code,v.Units,v.Units_Extra,
					MIN(v.Week_Start) AS Week_Start,MAX(v.Week_End) AS Week_End,
					v.Rev_CodeID, 
					ABS(floor(DateDiff(v.Week_Start , v.Week_End)/7)) as countweeks 
					FROM #Request.prefix_db_agency#.visit_orders v, #Request.prefix_db_agency#.ScheduleItems s
					WHERE  v.Assessment_ID = '#AssessmentID#'
					AND v.Rev_CodeID = s.Rev_CodeID
					<!---AND v.Rev_CodeID = '#revcode_id#'--->
					<!---and v.Visit_OrderID = '#Aid#'--->
					   Group BY v.Week_Start 
					   ORDER BY  v.Week_End  ASC
			 </cfquery>

         <cfset ReValues= ''>
		<cfif isdefined('OrderDate.recordcount') and OrderDate.recordcount gt 0>
		<cfloop query="OrderDate">
			<cfset ReValue=DateFormat(OrderDate.Week_Start, 'mm/dd/yyyy')&'|'&DateFormat(OrderDate.Week_End, 'mm/dd/yyyy')&'|'&OrderDate.Units&'|'&OrderDate.Units_Extra&'|'&OrderDate.countweeks >
			<cfset ReValues=ReValues&ReValue&'@' >
			</cfloop>
			<cfreturn #ReValues#>
		<cfelse>
			<cfreturn '0'>
		</cfif>
	</cffunction>
	

<cffunction name="GetVisitorderdates" access="remote" returnformat="plain" returntype="string">
		<cfargument name="revcode_id" required="yes" hint="revcode_id">
		<cfargument name="Assessment_ID" required="yes" hint="Assessment_ID">
		<cfargument name="Visit_order_ID" required="yes" hint="Visit_order_ID">

			<cfquery name="OrderDate" datasource="#Application.DataSrc#">
					SELECT v.Assessment_ID,v.Revenue_Code,v.HCPCS_Code,v.Units,v.Units_Extra,v.Week_Start,v.Week_End,v.Rev_CodeID, 
					ABS(floor(DateDiff(v.Week_Start , v.Week_End)/7)) as countweeks 
					FROM #Request.prefix_db_agency#.visit_orders v, #Request.prefix_db_agency#.ScheduleItems s
					WHERE  v.Assessment_ID = '#Assessment_ID#'
					AND v.Rev_CodeID = s.Rev_CodeID
					AND v.Rev_CodeID = '#revcode_id#'
					and v.Visit_OrderID = '#Visit_order_ID#'
			 </cfquery>

		<cfif isdefined('OrderDate.recordcount') and OrderDate.recordcount gt 0>
			<cfset ReValue=DateFormat(OrderDate.Week_Start, 'mm/dd/yyyy')&'|'&DateFormat(OrderDate.Week_End, 'mm/dd/yyyy')&'|'&OrderDate.Units&'|'&OrderDate.Units_Extra&'|'&OrderDate.countweeks >
			<cfreturn #ReValue#>
		<cfelse>
			<cfreturn '0'>
		</cfif>
	</cffunction>
	
	<cffunction name="GetVisitScheduledcount" access="remote" returnformat="plain" returntype="string">
		<cfargument name="Startdate" required="yes" hint="Authorization start,end date ">
		<cfargument name="Enddate" required="yes" hint="Authorization start,end date">
		<cfargument name="revcode_id" required="yes" hint="Authorization start,end date and Units">
		<!---<cfargument name="patid" required="yes" hint="Authorization start,end date and Units">
		<cfargument name="payid" required="yes" hint="Authorization start,end date and Units">--->
		<cfargument name="Assid" required="yes" hint="Authorization start,end date and Units">

		<cfquery name="ScheduledDate" datasource="#Application.DataSrc#">
			Select <!---case  r.Measure
			When '.25' Then  Sum(s.Total_Units)
			When 'visit' Then Count(s.ScheduleItems_ID)
			When '1' Then  Cast(Sum(s.Total_Hours) AS UNSIGNED)
			End  as weekunits---> s.* From #Request.prefix_db_agency#.ScheduleItems s, #Request.prefix_db_agency#.Revenue_Code r
			Where r.Rev_CodeID = s.Rev_CodeID
			AND s.Assessment_ID = '#Assid#'
			<!---<!---AND s.Patient_ID='#patid#'
			AND s.Payer_ID='#payid#'--->--->
			AND s.Rev_CodeID = '#revcode_id#'
			AND s.Visit_Date BETWEEN '#Startdate#' AND '#Enddate#'
		</cfquery>

		<cfif isdefined('ScheduledDate.recordcount') and ScheduledDate.recordcount gt 0>
			<!---<cfset RetValue=ScheduledDate.weekunits />--->
             <cfset RetValue=ScheduledDate.recordcount />
			<cfreturn #RetValue#>
		<cfelse>
			<cfreturn '0'>
		</cfif>
	</cffunction>



	<cffunction name="Getauthorizeddata" access="remote" returnformat="plain" returntype="string">
		<cfargument name="patid" required="yes" hint="Authorization start,end date and Units">
		<cfargument name="id" required="yes" hint="Authorization start,end date and Units">

		<cfquery name="AData" datasource="#Application.DataSrc#">
			SELECT Patient_ID,
			Auth_ID,
			Rev_CodeID,
			Payer_ID,
			Revenue_Code
			FROM #Request.prefix_db_agency#.authorizations
			WHERE  Patient_ID = '#patid#' And Auth_ID='#id#'
		</cfquery>

		<cfif isdefined('AData.recordcount') and AData.recordcount gt 0>
			<cfset ReValue=0&'|'&AData.Rev_CodeID&'|'&AData.Payer_ID&'|'&AData.Auth_ID&'|'&AData.Revenue_Code>

			<cfreturn #ReValue#>
		<cfelse>
			<cfreturn '0'>
		</cfif>
	</cffunction>
</cfcomponent>