<cfcomponent displayname="ScheduleList" alias="ScheduleList">	
	<cfsetting requesttimeout="50000" >
	
	<cffunction name="Schedule_List" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">				
		<cfargument name="Patient_ID" type="any" required="true">		
			 <cfquery  name="Schedule_Survo" datasource="#Application.DataSrc#">
			 	select si.ScheduleItems_ID,si.SurvoSch_Date,p.Telephone from #Request.prefix_db_agency#.ScheduleItems si
				join #Request.prefix_db_agency#.patient p on p.Patient_ID = si.Patient_ID where 
				Survocall_Type > 5
				and si.Patient_ID = #session.cs.patientid#
			 </cfquery>			 
			 <cfreturn Schedule_Survo>			  			  
	</cffunction>
	
	<cffunction name="Patient_List" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">				
		<cfargument name="Patient_ID" type="any" required="true">
		<cfargument name="Agency_ID" type="any" required="true">
		<cfquery  name="GetP" datasource="#Application.DataSrc#">
				SELECT Patient_ID, Last_Name_M0040 AS Last_Name, First_Name_M0040 AS First_Name, 
				Middle_Initial_M0040 AS Middle
				FROM #Request.prefix_db_agency#.patient
				WHERE Patient_ID = '#session.cs.patientid#'
				AND Agency_ID = #session.AgencyID#
			</cfquery>
		<cfreturn GetP>			  			  
	</cffunction>
	
	<cffunction name="Schedule_Visits" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">				
		<cfargument name="Patient_ID" type="any" required="true">		
		<cfquery  name="GetP" datasource="#Application.DataSrc#">
				SELECT 
				ScheduleItems_ID,Visit_Date 
				FROM #Request.prefix_db_agency#.ScheduleItems 
				WHERE Patient_ID = '#session.cs.patientid#'
				and  Survocall_Type is null
				Order by ScheduleItems_ID desc 
				limit 10
			</cfquery>
		<cfreturn GetP>			  			  
	</cffunction>
	
	<cffunction name="getVisit" access="remote" returntype="string" hint="Get patient list of survo schedule visits">				
		<cfargument name="ScheduleID" type="any" required="true">		
		<cfquery  name="GetP" datasource="#Application.DataSrc#">
				SELECT 
				Visit_Type 
				FROM #Request.prefix_db_agency#.ScheduleItems 
				WHERE ScheduleItems_ID = '#ScheduleID#'	
			</cfquery>
		<cfreturn GetP.Visit_Type>			  			  
	</cffunction>
	
	<cffunction name="insScheduleCall" access="remote" returntype="string" hint="Get patient list of survo schedule visits">
		<cfargument name="VisitDate" type="any" required="true">
		<cfargument name="Hrs" type="any" required="true">
		<cfargument name="Mins" type="any" required="true">
		<cfargument name="Meridiem" type="any" required="true">
		<cfargument name="Patient_ID" type="any" required="true">
		<cfargument name="Questions" type="any" required="true">	
		<cfargument name="QuestionsType" type="any" required="true">	
		<cftry>
		<cfset calltype = 0>
		<cfset vdate = VisitDate&' '&Hrs&':'&Mins&' '&Meridiem>
		<cfset Server_ID = ''>
		<cfset QUES1 = ''>
		<cfset QUES2 = ''>
		<cfset QUES3 = ''>
		<cfset QUES4 = ''>
		<cfset QUES5 = ''>		
		<cfset ID = ''>
		<cfswitch expression="#QuestionsType#" >
			<cfcase value="0" >
				<cfset ID = '616504'>
			</cfcase>
			<cfcase value="1" >
				<cfset ID = '626664'>
			</cfcase>
			<cfcase value="2" >
				<cfset ID = '626674'>
			</cfcase>
			<cfcase value="3" >
				<cfset ID = '626694'>
			</cfcase>
			<cfcase value="4" >
				<cfset ID = '626704'>
			</cfcase>
			<cfcase value="5" >
				<cfset ID = '628724'>
			</cfcase>
		</cfswitch>
		
		<cfset loop_count = 1>
		<cfloop list="#Questions#" index="k" delimiters="|">
			<cfswitch expression="#loop_count#" >
				<cfcase value="1" >
					<cfset QUES1 = #k#>
				</cfcase>
				<cfcase value="2" >
					<cfset QUES2 = #k#>
				</cfcase>
				<cfcase value="3" >
					<cfset QUES3 = #k#>
				</cfcase>
				<cfcase value="4" >
					<cfset QUES4 = #k#>
				</cfcase>
				<cfcase value="5" >
					<cfset QUES5 = #k#>
				</cfcase>
			</cfswitch>
			<cfset loop_count = loop_count + 1>
		</cfloop>
			
		
		<cfquery  name="GetCount" datasource="#Application.DataSrc#">
				select Max(Survocall_Type) 
				as count from 
				#Request.prefix_db_agency#.ScheduleItems where Patient_ID = '#session.cs.patientid#'	
		</cfquery>		
			
		<cfif GetCount.count lte 5>
			<cfset calltype = 6>
		<cfelse>
			<cfset calltype = month(vdate)&Day(vdate)&TimeFormat(vdate,'HHMM')>
		</cfif>		
		
		<cfquery   name="Get_Phone" datasource="#Application.DataSrc#">
				SELECT Telephone FROM #Request.prefix_db_agency#.patient where Patient_ID = '#session.cs.patientid#'
		</cfquery>
		
		<cfset sub_datefield = vdate>
		
					<cfset sub_minute = timeformat(sub_datefield,'mm:ss')>
				<cfquery  name="FND_Earth" datasource="#Application.DataSrc#" >
					SELECT timezone FROM #Request.prefix_db_lookup#.Agency where Agency_ID = '#session.AgencyID#' limit 1
				</cfquery>
				<cfif FND_Earth.timezone eq 'CST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 1, sub_datefield),'yyyy-mm-dd HH')>
				<cfelseif FND_Earth.timezone eq 'MST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 2, sub_datefield),'yyyy-mm-dd HH')>
				<cfelseif FND_Earth.timezone eq 'PST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 3, sub_datefield),'yyyy-mm-dd HH')>
				<cfelse>
					<cfset  sub_datefield = DateFormat(DateAdd("n", 0, sub_datefield),'yyyy-mm-dd HH')>
				</cfif>
				<cfset  sub_datefield = sub_datefield&':'&sub_minute>	
														
				<cfif DateDiff("n",now(),DateFormat(sub_datefield,'mm/dd/yyyy HH:mm')) lt 0>
					<cfset calltype =  1>
				</cfif>
		
		<cfset Patient_Phone = Get_Phone.Telephone>		
		<cfif Patient_Phone neq ''>
			<cfset Patient_Phone = REREPLACE(Get_Phone.Telephone,'\)|\(| |-','','all' )>
			<cfquery  name="Get_RecCount" datasource="#Application.DataSrc#">
				select count(ScheduleItems_ID) as counts from #Request.prefix_db_agency#.ScheduleItems where Visit_Date = Date_Format(now(),'%Y-%m-%d') and progress_note like '%yes'
			</cfquery>
			<cfset Cvt_time = TimeFormat(sub_datefield,'hh:mm tt')>		
			<cfif Get_RecCount.counts eq 0>
				<cfset Schrec_Count = 1>
			<cfelse>
				<cfset Schrec_Count = Get_RecCount.counts>
			</cfif>
			<cfset Today = DateFormat(sub_datefield,'mm/dd/yyyy')>			
		<cffile action="READ" file="/opt/coldfusion10/cfusion/lib/neo-cron.xml" variable="neocronwddx">
		<cfwddx action="WDDX2CFML" input="#neocronwddx#" output="neocron">
		<cfset wddx_Param = 'Survo'&#Schrec_Count#>	
		<cfif neocron[1][wddx_Param].disabled eq 'Yes'>
			<cfschedule action="update" interval="once"  task="#wddx_Param#" 
				startDate = "#Today#"
	    		startTime = "#Cvt_time#"
				operation = "HTTPRequest"
				resolveURL = "Yes"
			    url = "https://secure.ifbyphone.com/click_to_xyz.php?phone_to_call=#Patient_Phone#&page=ibptest&acct=110141&app=CTS&survo_id=#ID#&key=70144601ca8ea9bd16d3befbdb16467a53feabd4&referrer=Unknown&usr_clickto_log_id=181478974&user_parameters=Question1|#QUES1#||Question2|#QUES2#||Question3|#QUES3#||Question4|#QUES4#||Question5|#QUES5#"			
				requestTimeOut="50000">
				<cfset Server_ID = wddx_Param>
		<cfelse>
			<cfset Schrec_Count = Schrec_Count + 1>
			<cfloop from="#Schrec_Count#" to="30" index="i">
				<cfset wddx_Param = 'Survo'&#i#>
				<cfif neocron[1][wddx_Param].disabled eq 'Yes'>
					<cfset Server_ID = wddx_Param>
					<cfschedule action="update" interval="once"  task="#wddx_Param#" 
						startDate = "#Today#"
			    		startTime = "#Cvt_time#"
						operation = "HTTPRequest"
						resolveURL = "Yes"
					    url = "https://secure.ifbyphone.com/click_to_xyz.php?phone_to_call=#Patient_Phone#&page=ibptest&acct=110141&app=CTS&survo_id=#ID#&key=70144601ca8ea9bd16d3befbdb16467a53feabd4&referrer=Unknown&usr_clickto_log_id=181478974&user_parameters=Question1|#QUES1#||Question2|#QUES2#||Question3|#QUES3#||Question4|#QUES4#||Question5|#QUES5#"			
						requestTimeOut="50000">
						<cfbreak>
				</cfif>
			</cfloop>
		</cfif>	
		<cfquery  name="inssch" datasource="#Application.DataSrc#">
				insert into #Request.prefix_db_agency#.ScheduleItems(
					Patient_ID,
					Agency_ID,
					Employee_ID,
					Survocall_Type,
					SurvoSch_Date,
					SurvoServer_ID,
					Question1,
					Question2,
					Question3,
					Question4,
					Question5)
					values(
					'#session.cs.patientid#',
					'#session.AgencyID#',
					'#Session.EmployeeID#',
					'#calltype#',
					'#vdate#',
					'#Server_ID#',
					'#QUES1#',
					'#QUES2#',
					'#QUES3#',
					'#QUES4#',
					'#QUES5#'
					)	
			</cfquery>			
	</cfif>
	<cfset msg = ''>
	<cfcatch>
		<cfset msg = cfcatch.Message>
	</cfcatch>
		</cftry>	
		
			<cfreturn msg>						  			  
	</cffunction>
	
	
	<cffunction name="CreatePatient" access="remote" returntype="void" hint="Get patient list of survo schedule visits">				
		<cfargument name="Agency_ID" type="any" required="true">
		<cfargument name="Last_Name_M0040" type="any" required="true">
			<cfargument name="First_Name_M0040" type="any" required="true">
			<cfargument name="City" type="any" required="true">
			<cfargument name="State_M0050" type="any" required="true">
			<cfargument name="Telephone" type="any" required="true">
			<cfargument name="DOB_M0066" type="any" required="true">			
			<cfargument name="Record_Created_By" type="any" required="true">
			<cfset state = '%'&State_M0050&'%'>
			<cfquery  name="Getlat" datasource="#Application.DataSrc#">
				select latitude,longitude 
				from #Request.prefix_db_lookup#.zip_cbsa 
				where state like '#state#' 
				and latitude is not null 
				and longitude is not null limit 1
			</cfquery>
		<cfquery  name="GetP" datasource="#Application.DataSrc#">
				insert into #Request.prefix_db_agency#.patient(
				Agency_ID,
				Status,
				Last_Name_M0040,
				First_Name_M0040,
				City,
				State_M0050,
				Telephone,
				DOB_M0066,
				Record_Creation_Date,
				Record_Created_By,
				Latitude,Longitude)
				values(
				'#Agency_ID#',
				'active',
				'#Last_Name_M0040#',
				'#First_Name_M0040#',
				'#City#',
				'#State_M0050#',
				'#Telephone#',
				'#DateFormat(DOB_M0066,'yyyy-mm-dd')#',
				'#DateFormat(Now(),'yyyy-mm-dd')#',
				'#Record_Created_By#',
				'#Getlat.latitude#','#Getlat.longitude#'
				)
			</cfquery>		  
	</cffunction>
	
	<cffunction name="SurvoResult" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">
			  <cfquery  name="GetS" datasource="#Application.DataSrc#">
					select
					p.Patient_ID,
					p.Last_Name_M0040,
					p.First_Name_M0040,
					p.Middle_Initial_M0040,
					p.Status,
					p.Telephone,
					ps.Call_Result,
					ps.Call_Time,
					ps.Caller_ID,
					ps.Ans1,
					ps.Ans2,
					ps.Ans3,
					ps.Ans4,
					ps.Ans5,
					ps.PatientSurvey_ID,
					s.Visit_Type,
					s.Question1,
					s.Question2,
					s.Question3,
					s.Question4,
					s.Question5,
					s.ScheduleItems_ID,
					s.Survocall_Type,			
					s.Survo_ID
					From #Request.prefix_db_agency#.patient p 
				    join #Request.prefix_db_agency#.PatientSurvey ps on 
				    replace(replace(replace(replace(p.Telephone,'(',''),')',''),'-',''),' ','') = ps.Caller_ID					
					join #Request.prefix_db_agency#.ScheduleItems s on s.Survo_ID =  ps.PatientSurvey_ID
					where
					p.Agency_ID = '#session.AgencyID#'
					AND p.Status = 'active'
					AND ps.Status = 'TRUE'
	</cfquery>
	<cfreturn GetS>
	</cffunction>
	<cffunction name="get_patient" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">
			  <cfquery  name="GetP" datasource="#Application.DataSrc#">
				select
				Patient_ID,
				Last_Name_M0040,
				First_Name_M0040,
				City,
				State_M0050,
				Telephone,
				DOB_M0066
				From #Request.prefix_db_agency#.patient p 
				where
				Patient_ID = '#session.cs.patientid#'
	</cfquery>
	<cfreturn GetP>
	</cffunction>
	<cffunction name="updatePatient" access="remote" returntype="void" hint="Get patient list of survo schedule visits">
		<cfargument name="Last_Name_M0040" type="any" required="true">
			<cfargument name="First_Name_M0040" type="any" required="true">
			<cfargument name="City" type="any" required="true">
			<cfargument name="State_M0050" type="any" required="true">
			<cfargument name="Telephone" type="any" required="true">
			<cfargument name="DOB_M0066" type="any" required="true">
		<cfquery  name="GetP" datasource="#Application.DataSrc#">
			update #Request.prefix_db_agency#.patient
			set
			Last_Name_M0040 = '#Last_Name_M0040#',
			First_Name_M0040 = '#First_Name_M0040#',
			City = '#City#',
			State_M0050 = '#State_M0050#',
			Telephone = '#Telephone#',
			DOB_M0066 = '#DateFormat(DOB_M0066,'yyyy-mm-dd')#'
			where
				Patient_ID = '#session.cs.patientid#'	
			</cfquery>		  
	</cffunction>
	<cffunction name="deleteSchedule" access="remote" returntype="void" hint="Get patient list of survo schedule visits">		
		<cfargument name="Schedule_ID" type="any" required="true">
		<cfquery  name="GetS" datasource="#Application.DataSrc#">
			select SurvoServer_ID from #Request.prefix_db_agency#.ScheduleItems where ScheduleItems_ID= '#Schedule_ID#'	
		</cfquery>				
		<cfquery  name="GetP" datasource="#Application.DataSrc#">
			delete from #Request.prefix_db_agency#.ScheduleItems where ScheduleItems_ID= '#Schedule_ID#'	
		</cfquery>
		<cfschedule action="update" interval="once"  task="#GetS.SurvoServer_ID#" 
						startDate = "#DateFormat(now()-1,'mm/dd/yyyy')#"
			    		startTime = "01:00:00 AM"
						operation = "HTTPRequest"
						resolveURL = "Yes"
					    url = "https://secure.ifbyphone.com/click_to_xyz.php?phone_to_call=1234567890&page=ibptest&acct=110141&app=CTS&survo_id=616504&key=70144601ca8ea9bd16d3befbdb16467a53feabd4&referrer=Unknown&usr_clickto_log_id=181478974"			
						requestTimeOut="50000">
			
	</cffunction>
	<cffunction name="get_SurvoEdit" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">		
		<cfargument name="Schedule_ID" type="any" required="true">
		<cfquery  name="GetDate" datasource="#Application.DataSrc#">
			SELECT 
			ScheduleItems_ID,Question1,
			Question2,Question3,Question4,Question5 FROM #Request.prefix_db_agency#.ScheduleItems where ScheduleItems_ID = '#Schedule_ID#'	
		</cfquery>	
		<cfreturn 	GetDate>
	</cffunction>
	<cffunction name="updateScheduleCall" access="remote" returntype="string" hint="Get patient list of survo schedule visits">
		<cfargument name="VisitDate" type="any" required="true">
		<cfargument name="Hrs" type="any" required="true">
		<cfargument name="Mins" type="any" required="true">
		<cfargument name="Meridiem" type="any" required="true">
		<cfargument name="Patient_ID" type="any" required="true">
		<cfargument name="Questions" type="any" required="true">
		<cfargument name="Schedule_ID" type="any" required="true">
		<cfargument name="QuestionsType" type="any" required="true">
		<cftry>
		<cfset calltype = 0>
		<cfset vdate = VisitDate&' '&Hrs&':'&Mins&' '&Meridiem>
		<cfset Server_ID = ''>
		<cfset QUES1 = ''>
		<cfset QUES2 = ''>
		<cfset QUES3 = ''>
		<cfset QUES4 = ''>
		<cfset QUES5 = ''>		
		<cfset ID = ''>
		<cfswitch expression="#QuestionsType#" >
			<cfcase value="0" >
				<cfset ID = '616504'>
			</cfcase>
			<cfcase value="1" >
				<cfset ID = '626664'>
			</cfcase>
			<cfcase value="2" >
				<cfset ID = '626674'>
			</cfcase>
			<cfcase value="3" >
				<cfset ID = '626694'>
			</cfcase>
			<cfcase value="4" >
				<cfset ID = '626704'>
			</cfcase>
			<cfcase value="5" >
				<cfset ID = '628724'>
			</cfcase>
		</cfswitch>
		<cfset loop_count = 1>
		<cfloop list="#Questions#" index="k" delimiters="|">
			<cfswitch expression="#loop_count#" >
				<cfcase value="1" >
					<cfset QUES1 = #k#>
				</cfcase>
				<cfcase value="2" >
					<cfset QUES2 = #k#>
				</cfcase>
				<cfcase value="3" >
					<cfset QUES3 = #k#>
				</cfcase>
				<cfcase value="4" >
					<cfset QUES4 = #k#>
				</cfcase>
				<cfcase value="5" >
					<cfset QUES5 = #k#>
				</cfcase>
			</cfswitch>
			<cfset loop_count = loop_count + 1>
		</cfloop>
			
		
		<cfquery  name="GetCount" datasource="#Application.DataSrc#">
				select Max(Survocall_Type) 
				as count from 
				#Request.prefix_db_agency#.ScheduleItems where Patient_ID = '#session.cs.patientid#'	
		</cfquery>		
			
		<cfif GetCount.count lte 5>
			<cfset calltype = 6>
		<cfelse>
			<cfset calltype = month(vdate)&Day(vdate)&TimeFormat(vdate,'HHMM')>
		</cfif>		
		
		<cfquery   name="Get_Phone" datasource="#Application.DataSrc#">
				SELECT Telephone FROM #Request.prefix_db_agency#.patient where Patient_ID = '#session.cs.patientid#'
		</cfquery>
		
		<cfset sub_datefield = vdate>
		
					<cfset sub_minute = timeformat(sub_datefield,'mm:ss')>
				<cfquery  name="FND_Earth" datasource="#Application.DataSrc#" >
					SELECT timezone FROM #Request.prefix_db_lookup#.Agency where Agency_ID = '#session.AgencyID#' limit 1
				</cfquery>
				<cfif FND_Earth.timezone eq 'CST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 1, sub_datefield),'yyyy-mm-dd HH')>
				<cfelseif FND_Earth.timezone eq 'MST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 2, sub_datefield),'yyyy-mm-dd HH')>
				<cfelseif FND_Earth.timezone eq 'PST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 3, sub_datefield),'yyyy-mm-dd HH')>
				<cfelse>
					<cfset  sub_datefield = DateFormat(DateAdd("n", 0, sub_datefield),'yyyy-mm-dd HH')>
				</cfif>
				<cfset  sub_datefield = sub_datefield&':'&sub_minute>
				<cfif DateDiff("n",now(),DateFormat(sub_datefield,'mm/dd/yyyy HH:mm')) lt 0>
					<cfset calltype =  1>
				</cfif>
		
		<cfset Patient_Phone = Get_Phone.Telephone>		
		<cfif Patient_Phone neq ''>
			<cfset Patient_Phone = REREPLACE(Get_Phone.Telephone,'\)|\(| |-','','all' )>
			<cfquery  name="Get_RecCount" datasource="#Application.DataSrc#">
				select count(ScheduleItems_ID) as counts from #Request.prefix_db_agency#.ScheduleItems where Visit_Date = Date_Format(now(),'%Y-%m-%d') and progress_note like '%yes'
			</cfquery>
			<cfset Cvt_time = TimeFormat(sub_datefield,'hh:mm tt')>		
			<cfif Get_RecCount.counts eq 0>
				<cfset Schrec_Count = 1>
			<cfelse>
				<cfset Schrec_Count = Get_RecCount.counts>
			</cfif>
			<cfset Today = DateFormat(sub_datefield,'mm/dd/yyyy')>			
		<cffile action="READ" file="/opt/coldfusion9/lib/neo-cron.xml" variable="neocronwddx">
		<cfwddx action="WDDX2CFML" input="#neocronwddx#" output="neocron">
		<cfset wddx_Param = 'Survo'&#Schrec_Count#>	
		<cfif neocron[1][wddx_Param].disabled eq 'Yes'>
			<cfschedule action="update" interval="once"  task="#wddx_Param#" 
				startDate = "#Today#"
	    		startTime = "#Cvt_time#"
				operation = "HTTPRequest"
				resolveURL = "Yes"
			    url = "https://secure.ifbyphone.com/click_to_xyz.php?phone_to_call=#Patient_Phone#&page=ibptest&acct=110141&app=CTS&survo_id=#ID#&key=70144601ca8ea9bd16d3befbdb16467a53feabd4&referrer=Unknown&usr_clickto_log_id=181478974&user_parameters=Question1|#QUES1#||Question2|#QUES2#||Question3|#QUES3#||Question4|#QUES4#||Question5|#QUES5#"			
				requestTimeOut="50000">
				<cfset Server_ID = wddx_Param>
		<cfelse>
			<cfset Schrec_Count = Schrec_Count + 1>
			<cfloop from="#Schrec_Count#" to="30" index="i">
				<cfset wddx_Param = 'Survo'&#i#>
				<cfif neocron[1][wddx_Param].disabled eq 'Yes'>
					<cfset Server_ID = wddx_Param>
					<cfschedule action="update" interval="once"  task="#wddx_Param#" 
						startDate = "#Today#"
			    		startTime = "#Cvt_time#"
						operation = "HTTPRequest"
						resolveURL = "Yes"
					    url = "https://secure.ifbyphone.com/click_to_xyz.php?phone_to_call=#Patient_Phone#&page=ibptest&acct=110141&app=CTS&survo_id=#ID#&key=70144601ca8ea9bd16d3befbdb16467a53feabd4&referrer=Unknown&usr_clickto_log_id=181478974&user_parameters=Question1|#QUES1#||Question2|#QUES2#||Question3|#QUES3#||Question4|#QUES4#||Question5|#QUES5#"			
						requestTimeOut="50000">
						<cfbreak>
				</cfif>
			</cfloop>
		</cfif>	
		<cfquery  name="inssch" datasource="#Application.DataSrc#">
				Update #Request.prefix_db_agency#.ScheduleItems set					
					Survocall_Type = '#calltype#',
					SurvoSch_Date = '#vdate#',
					SurvoServer_ID = '#Server_ID#',
					Question1 = '#QUES1#',
					Question2 = '#QUES2#',
					Question3 = '#QUES3#',
					Question4 = '#QUES4#',
					Question5 = '#QUES5#'
					where ScheduleItems_ID = '#Schedule_ID#'	
			</cfquery>
	</cfif>
	<cfset msg = ''>
	<cfcatch>
		<cfset msg = cfcatch.Message>
	</cfcatch>
		</cftry>
		<cfif msg eq ''>
			<cfreturn 'Survey Call has been Scheduled'>
		<cfelse>
			<cfreturn 'An Error Occured'>	
		</cfif>	
			
	</cffunction>
	<cffunction name="get_SurveyResult" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">
		<cfquery  name="Get_Survo" datasource="#Application.DataSrc#">
			select 
			s.ScheduleItems_ID,
			s.Survocall_Type,
			s.Visit_Type,
			s.Survo_ID,
			s.Question1,
			s.Question2,
			s.Question3,
			s.Question4,
			s.Question5,
			p.Caller_ID,
			p.Status,
			s.SurvoSch_Date,
			p.Call_Time,
			p.Ans1,
			p.Ans2,
			p.Ans3,
			p.Ans4,
			p.Ans5 from #Request.prefix_db_agency#.ScheduleItems s
			left outer join 
			#Request.prefix_db_agency#.PatientSurvey p on  p.PatientSurvey_ID = s.Survo_ID 
			where Patient_ID = '#session.cs.patientid#' 
			and Survo_ID > 0
		</cfquery>			 
			 <cfreturn Get_Survo>			  			  
	</cffunction>	
	<cffunction name="insQuestion" access="remote" returntype="void" hint="Get patient list of survo schedule visits">				
		<cfargument name="question" type="any" required="true">	
		<cfargument name="questionType" type="any" required="true">	
		
			 <cfquery  name="Schedule_Survo" datasource="#Application.DataSrc#">
			 	insert into 
				#Request.prefix_db_agency#.Patient_SurveyQuestions
				(
				Agency_ID,
				Employee_ID,
				Question,
				Question_Type
				)
				values
				(
				'#session.AgencyID#',
				'#Session.EmployeeId#',
				'#question#',
				'#questionType#'				
				)
			 </cfquery>			 
			 		  			  
	</cffunction>
	<cffunction name="getPatientSurveyQuestion" access="remote" returntype="Query" hint="Get patient list of survo schedule visits">				
		<cfargument name="ID" type="any" required="true">		
			 <cfquery  name="Schedule_Survo" datasource="#Application.DataSrc#">
			 	SELECT * FROM #Request.prefix_db_agency#.Patient_SurveyQuestions
				where (Employee_ID = '#ID#' or Employee_ID = 0) order by Question_Type asc
			 </cfquery>			 
			 <cfreturn Schedule_Survo>			  			  
	</cffunction>
	
	<cffunction name="insScheduleCallType4" access="remote" returntype="string" hint="Get patient list of survo schedule visits">
		<cfargument name="VisitDate" type="any" required="true">
		<cfargument name="Hrs" type="any" required="true">
		<cfargument name="Mins" type="any" required="true">
		<cfargument name="Meridiem" type="any" required="true">
		<cfargument name="Patient_ID" type="any" required="true">
		<cfargument name="Questions" type="any" required="true">	
		<cfargument name="QuestionsType" type="any" required="true">
		<cfargument name="SchID" type="any" required="true">	
		<cftry>
		<cfset calltype = 0>
		<cfset vdate = VisitDate&' '&Hrs&':'&Mins&' '&Meridiem>
		<cfset Server_ID = ''>
		<cfset QUES1 = ''>
		<cfset QUES2 = ''>
		<cfset QUES3 = ''>
		<cfset QUES4 = ''>
		<cfset QUES5 = ''>		
		<cfset ID = ''>
		<cfswitch expression="#QuestionsType#" >
			<cfcase value="0" >
				<cfset ID = '616504'>
			</cfcase>
			<cfcase value="1" >
				<cfset ID = '626664'>
			</cfcase>
			<cfcase value="2" >
				<cfset ID = '626674'>
			</cfcase>
			<cfcase value="3" >
				<cfset ID = '626694'>
			</cfcase>
			<cfcase value="4" >
				<cfset ID = '626704'>
			</cfcase>
			<cfcase value="5" >
				<cfset ID = '628724'>
			</cfcase>
		</cfswitch>
		
		<cfset loop_count = 1>
		<cfloop list="#Questions#" index="k" delimiters="|">
			<cfswitch expression="#loop_count#" >
				<cfcase value="1" >
					<cfset QUES1 = #k#>
				</cfcase>
				<cfcase value="2" >
					<cfset QUES2 = #k#>
				</cfcase>
				<cfcase value="3" >
					<cfset QUES3 = #k#>
				</cfcase>
				<cfcase value="4" >
					<cfset QUES4 = #k#>
				</cfcase>
				<cfcase value="5" >
					<cfset QUES5 = #k#>
				</cfcase>
			</cfswitch>
			<cfset loop_count = loop_count + 1>
		</cfloop>
			
		
		<cfquery  name="GetCount" datasource="#Application.DataSrc#">
				select Max(Survocall_Type) 
				as count from 
				#Request.prefix_db_agency#.ScheduleItems where Patient_ID = '#session.cs.patientid#'	
		</cfquery>		
			
		<cfif GetCount.count lte 5>
			<cfset calltype = 6>
		<cfelse>
			<cfset calltype = month(vdate)&Day(vdate)&TimeFormat(vdate,'HHMM')>
		</cfif>		
		
		<cfquery   name="Get_Phone" datasource="#Application.DataSrc#">
				SELECT Telephone FROM #Request.prefix_db_agency#.patient where Patient_ID = '#session.cs.patientid#'
		</cfquery>
		
		<cfset sub_datefield = vdate>
		
					<cfset sub_minute = timeformat(sub_datefield,'mm:ss')>
				<cfquery  name="FND_Earth" datasource="#Application.DataSrc#" >
					SELECT timezone FROM #Request.prefix_db_lookup#.Agency where Agency_ID = '#session.AgencyID#' limit 1
				</cfquery>
				<cfif FND_Earth.timezone eq 'CST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 1, sub_datefield),'yyyy-mm-dd HH')>
				<cfelseif FND_Earth.timezone eq 'MST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 2, sub_datefield),'yyyy-mm-dd HH')>
				<cfelseif FND_Earth.timezone eq 'PST'>
					<cfset  sub_datefield = DateFormat(DateAdd("h", 3, sub_datefield),'yyyy-mm-dd HH')>
				<cfelse>
					<cfset  sub_datefield = DateFormat(DateAdd("n", 0, sub_datefield),'yyyy-mm-dd HH')>
				</cfif>
				<cfset  sub_datefield = sub_datefield&':'&sub_minute>	
														
				<cfif DateDiff("n",now(),DateFormat(sub_datefield,'mm/dd/yyyy HH:mm')) lt 0>
					<cfset calltype =  1>
				</cfif>
		
		<cfset Patient_Phone = Get_Phone.Telephone>		
		<cfif Patient_Phone neq ''>
			<cfset Patient_Phone = REREPLACE(Get_Phone.Telephone,'\)|\(| |-','','all' )>
			<cfquery  name="Get_RecCount" datasource="#Application.DataSrc#">
				select count(ScheduleItems_ID) as counts from #Request.prefix_db_agency#.ScheduleItems where Visit_Date = Date_Format(now(),'%Y-%m-%d') and progress_note like '%yes'
			</cfquery>
			<cfset Cvt_time = TimeFormat(sub_datefield,'hh:mm tt')>		
			<cfif Get_RecCount.counts eq 0>
				<cfset Schrec_Count = 1>
			<cfelse>
				<cfset Schrec_Count = Get_RecCount.counts>
			</cfif>
			<cfset Today = DateFormat(sub_datefield,'mm/dd/yyyy')>			
		<cffile action="READ" file="/opt/coldfusion9/lib/neo-cron.xml" variable="neocronwddx">
		<cfwddx action="WDDX2CFML" input="#neocronwddx#" output="neocron">
		<cfset wddx_Param = 'Survo'&#Schrec_Count#>	
		<cfif neocron[1][wddx_Param].disabled eq 'Yes'>
			<cfschedule action="update" interval="once"  task="#wddx_Param#" 
				startDate = "#Today#"
	    		startTime = "#Cvt_time#"
				operation = "HTTPRequest"
				resolveURL = "Yes"
			    url = "https://secure.ifbyphone.com/click_to_xyz.php?phone_to_call=#Patient_Phone#&page=ibptest&acct=110141&app=CTS&survo_id=#ID#&key=70144601ca8ea9bd16d3befbdb16467a53feabd4&referrer=Unknown&usr_clickto_log_id=181478974&user_parameters=Question1|#QUES1#||Question2|#QUES2#||Question3|#QUES3#||Question4|#QUES4#||Question5|#QUES5#"			
				requestTimeOut="50000">
				<cfset Server_ID = wddx_Param>
		<cfelse>
			<cfset Schrec_Count = Schrec_Count + 1>
			<cfloop from="#Schrec_Count#" to="30" index="i">
				<cfset wddx_Param = 'Survo'&#i#>
				<cfif neocron[1][wddx_Param].disabled eq 'Yes'>
					<cfset Server_ID = wddx_Param>
					<cfschedule action="update" interval="once"  task="#wddx_Param#" 
						startDate = "#Today#"
			    		startTime = "#Cvt_time#"
						operation = "HTTPRequest"
						resolveURL = "Yes"
					    url = "https://secure.ifbyphone.com/click_to_xyz.php?phone_to_call=#Patient_Phone#&page=ibptest&acct=110141&app=CTS&survo_id=#ID#&key=70144601ca8ea9bd16d3befbdb16467a53feabd4&referrer=Unknown&usr_clickto_log_id=181478974&user_parameters=Question1|#QUES1#||Question2|#QUES2#||Question3|#QUES3#||Question4|#QUES4#||Question5|#QUES5#"			
						requestTimeOut="50000">
						<cfbreak>
				</cfif>
			</cfloop>
		</cfif>	
		<cfquery  name="inssch" datasource="#Application.DataSrc#">
			update #Request.prefix_db_agency#.ScheduleItems set
			Survocall_Type = '#calltype#',
			SurvoSch_Date = '#vdate#',
			SurvoServer_ID = '#Server_ID#',
			Question1 ='#QUES1#',
			Question2 = '#QUES2#',
			Question3 ='#QUES3#',
			Question4 = '#QUES4#',
			Question5 ='#QUES5#'
			where ScheduleItems_ID = '#SchID#'
			</cfquery>			
	</cfif>
	<cfset msg = ''>
	<cfcatch>
		<cfset msg = cfcatch.Message>
	</cfcatch>
		</cftry>	
		
			<cfreturn msg>						  			  
	</cffunction>
</cfcomponent>