<!---
This file is Copyright � 1998-2009 by Home Care Business Services. This work may not be reproduced, in whole or in part, 
using any medium, including, but not limited to, electronic transmission, CD-ROM or published in print, without the express 
permission of Home Care Business Services.

$Revision: 1.2 $
$Id: CAHPS_CSV.cfm,v 1.2 2010/07/09 13:32:36 melissa Exp $
$Date: 2010/07/09 13:32:36 $
--->


<!--- Page specific code, such as queries and variable settings should go here --->


<cfif isDefined("FORM.submit")>
	
	<cfset SubmittedPatients=0>
	
	<cfloop list=#Form["ScheduleItems_ID[]"]# index="ListItem" delimiters=",;">
		<cfquery  name="AgencyName" datasource="#Application.DataSrc#">
		SELECT  Agency.Agency_Name, Agency.Agency_Medicare_ID, Agency.Natl_Provider_ID, Agency.CAHPS, DATE_FORMAT('#FORM.monthYear#', "%m") AS trueMonth
		FROM #Request.prefix_db_agency#.ScheduleItems 
			INNER JOIN #Request.prefix_db_agency#.patient ON ScheduleItems.Patient_ID = patient.Patient_ID 
			INNER JOIN #Request.prefix_db_lookup#.Employee ON ScheduleItems.Employee_ID = Employee.Employee_ID
			INNER JOIN #Request.prefix_db_agency#.Assessment_New ON ScheduleItems.Assessment_Tracker_ID = Assessment_New.Assessment_Tracker_ID
			INNER JOIN #Request.prefix_db_lookup#.Agency ON ScheduleItems.Agency_ID = Agency.Agency_ID
		WHERE ScheduleItems.Agency_ID = #session.AgencyID#	
			AND	patient.Patient_ID = #ListItem#
		</cfquery>
		<cfset SubmittedPatients=#SubmittedPatients#+1>
	</cfloop>
	
	<cfoutput query="AgencyName">

	    <cfset CAHPSAgency=#CAHPS#>
		<cfset AgencyName=#Agency_Name#>
		<cfset AgencyMedicareID=#Agency_Medicare_ID#>
		<cfset AgencyProviderID=#Natl_Provider_ID#>
		<cfset SampleYear=Left(#FORM.monthYear#, 4)>
		<cfset SampleMonth=#trueMonth#>
		<cfset TotalPatients=#FORM.TotalPatients#>
	</cfoutput>

	<cfset csvFileContent=",,,,,,,,,,,,,,,,,,,,,,,,,"& chr(13)& chr(10)>
	<cfset csvFileContent="#csvFileContent#""CAHPS Information Layout"",,,,,,,,,,,,,,,,,,,,,,,,,"& chr(13)& chr(10)>
	<cfset csvFileContent="#csvFileContent#""Provider Name: #AgencyName#"",,,,,""Sample Month: #SampleMonth#"",,,,,,,,,,,,,,,,,,,,"& chr(13)& chr(10)>
	<cfset csvFileContent="#csvFileContent#""CMS Certification Number: #AgencyMedicareID#"",,,,,""Sample Year: #SampleYear#"",,,,,,,,,,,,,,,,,,,,"& chr(13)& chr(10)>
	<cfset csvFileContent="#csvFileContent#""NPI: #AgencyProviderID#"",,,,,""Submitted Patients: #SubmittedPatients# of #TotalPatients# "",,,,,,,,,,,,,,,,,,,,"& chr(13)& chr(10)>
	<cfset csvFileContent="#csvFileContent#,,,,,,,,,,,,,,,,,,,,,,,,,"& chr(13)& chr(10)>
	
		
	<cfset TemplatePath="#getDirectoryFromPath(getCurrentTemplatePath())#CSVTemplate/#CAHPSAgency#.csv">
	
	
<cfif #FileExists(TemplatePath)# eq "YES">
    <cffile action="read"
	    file="#getDirectoryFromPath(getCurrentTemplatePath())#CSVTemplate/#CAHPSAgency#.csv"
	    variable="csvHeaderTemplate">
<cfelse>

    <cffile action="read"
	    file="#getDirectoryFromPath(getCurrentTemplatePath())#CSVTemplate/Default.csv"
	    variable="csvHeaderTemplate">

</cfif>

<!---
<cfoutput>#csvHeaderTemplate#</cfoutput>
--->
        
        
	    

<cfset csvFileContent="#csvFileContent##csvHeaderTemplate#"& chr(13)& chr(10)>


	
	
	<!--
	<cfoutput>
		#Form["ScheduleItems_ID[]"]#<br />
	</cfoutput>
	-->
	
	<cfloop list=#Form["ScheduleItems_ID[]"]# index="ListItem" delimiters=",;">
	
		<cfquery  name="SkilledVisitsTotal" datasource="#Application.DataSrc#">
		SELECT COUNT(*) as SkilledVisitsTotalCount
		FROM #Request.prefix_db_agency#.ScheduleItems 
			INNER JOIN #Request.prefix_db_agency#.patient ON ScheduleItems.Patient_ID = patient.Patient_ID 
			INNER JOIN #Request.prefix_db_lookup#.Employee ON ScheduleItems.Employee_ID = Employee.Employee_ID
			INNER JOIN #Request.prefix_db_agency#.Assessment_New ON ScheduleItems.Assessment_Tracker_ID = Assessment_New.Assessment_Tracker_ID
			INNER JOIN #Request.prefix_db_lookup#.Agency ON ScheduleItems.Agency_ID = Agency.Agency_ID
		WHERE ScheduleItems.Agency_ID = #session.AgencyID#	
			AND	patient.Patient_ID = #ListItem#
			AND ScheduleItems.Visit_Date > '#FORM.monthYear#'
			AND ScheduleItems.Visit_Date < DATE_ADD('#FORM.monthYear#', INTERVAL 1 MONTH)
			GROUP BY patient.Patient_ID 
		</cfquery>
		
		<cfoutput query="SkilledVisitsTotal">
			<cfset SkilledVisitTotal=#SkilledVisitsTotalCount#>
		</cfoutput>
		
	  	<cfquery  name="GetP" datasource="#Application.DataSrc#">
		SELECT COUNT(*) as LookBack, patient.First_Name_M0040, patient.Middle_Initial_M0040, patient.Last_Name_M0040,
		patient.Gender_M0069, patient.DOB_M0066, patient.Telephone, patient.Agency_Assigned_ID,
		ScheduleItems.Visit_Type, Assessment_New.Source_of_Admission, patient.Current_Payment_Sources_M0150, 
		<!--- Patient.Payer, ---> 
		Assessment_New.HHRG_175_Score, Assessment_New.HHRG_230_Score, 
		Assessment_New.Dress_Upper_M0650, Assessment_New.Dress_Lower_M0660,
		Assessment_New.Bathing_M0670, Assessment_New.M1840_Toilet,
		Assessment_New.Transferring_M0690, Assessment_New.Eating_M0710,
		patient.Financial_Factors_M0150, Assessment_New.M1016_DX_NA,
		
		Assessment_New.Grooming_M0640, Assessment_New.Dress_Upper_M0650, 
		Assessment_New.Dress_Lower_M0660, Bathing_M0670, 
		Assessment_New.Toileting_M0680, Assessment_New.Transferring_M0690, 
		Assessment_New.Ambulation_M0700, Assessment_New.Eating_M0710, 
		Assessment_New.Meal_Prep_M0720, Assessment_New.Transport_M0730, 
		Assessment_New.Laundry_M0740, Assessment_New.Shopping_M0760, 
		Assessment_New.Housekeeping_M0750, Assessment_New.Use_Phone_M0770, 
		Assessment_New.M1845_Toilet
		FROM #Request.prefix_db_agency#.ScheduleItems 
			INNER JOIN #Request.prefix_db_agency#.patient ON ScheduleItems.Patient_ID = patient.Patient_ID 
			INNER JOIN #Request.prefix_db_lookup#.Employee ON ScheduleItems.Employee_ID = Employee.Employee_ID
			INNER JOIN #Request.prefix_db_agency#.Assessment_New ON ScheduleItems.Assessment_Tracker_ID = Assessment_New.Assessment_Tracker_ID
			INNER JOIN #Request.prefix_db_lookup#.Agency ON ScheduleItems.Agency_ID = Agency.Agency_ID
		WHERE ScheduleItems.Agency_ID = #session.AgencyID#	
			AND	patient.Patient_ID = #ListItem#
			AND ScheduleItems.Visit_Date > DATE_SUB('#FORM.monthYear#', INTERVAL 1 MONTH)
			AND ScheduleItems.Visit_Date < DATE_ADD('#FORM.monthYear#', INTERVAL 1 MONTH)
			GROUP BY patient.Patient_ID 
		</cfquery>
		
		
		
		
		<cfoutput query="GetP">
		
			<cfset Gender="M">
			<cfif #Gender_M0069# eq "">
			<cfelse>
				<cfset Gender=#LEFT(Gender_M0069, 1)#>
			</cfif>
				
				
			<cfset HMO="">
			<cfif #find("HMO",UCase(Current_Payment_Sources_M0150))# gt 0>
				<cfset HMO="1">
			<cfelse>
				<cfset HMO="2">
			</cfif>
			
			<!---
			MedEligible
			So If Financial_Factors_M0150 is like "medicare" and like "medicaid"
			answer will be 1
			if just medicare or just medicaid...2
			if neither 3
			if blank M
			--->
			
			<cfset MedEligible="M">
			<cfif #Financial_Factors_M0150# eq "">
				<cfset MedEligible="M">
			<cfelseif #find("medicaid",LCase(Financial_Factors_M0150))# gt 0 AND #find("medicare",LCase(Financial_Factors_M0150))# gt 0>
				<cfset MedEligible="1">
			<cfelseif #find("medicaid",LCase(Financial_Factors_M0150))# gt 0 AND #find("medicare",LCase(Financial_Factors_M0150))# eq 0>
				<cfset MedEligible="2">
			<cfelseif #find("medicaid",LCase(Financial_Factors_M0150))# eq 0 AND #find("medicare",LCase(Financial_Factors_M0150))# eq 0>
				<cfset MedEligible="3">
			</cfif>
			<!---
			If Financial_Factors_M0150 is like "medicare", answer will be 1
			if like Medicaid (and NO medicare) answer will be 2
			if NO medicaid and NO medicare and NO self pay, answer will be 3
			if self pay only - 4
			if its blank it will be "M" for missing
			--->
			<cfset PayerHMO="M">
			<cfif #Financial_Factors_M0150# eq "">
				<cfset PayerHMO="M">
			<cfelseif #find("medicare",LCase(Financial_Factors_M0150))# gt 0>
				<cfset PayerHMO="1">
			<cfelseif #find("medicaid",LCase(Financial_Factors_M0150))# gt 0 AND #find("medicare",LCase(Financial_Factors_M0150))# eq 0>
				<cfset PayerHMO="2">
			<cfelseif #find("medicaid",LCase(Financial_Factors_M0150))# eq 0 AND #find("medicare",LCase(Financial_Factors_M0150))# eq 0 AND #find("self pay",LCase(Financial_Factors_M0150))# eq 0>
				<cfset PayerHMO="3">
			<cfelseif #find("medicaid",LCase(Financial_Factors_M0150))# eq 0 AND #find("medicare",LCase(Financial_Factors_M0150))# eq 0 AND #find("self pay",LCase(Financial_Factors_M0150))# > 0>
				<cfset PayerHMO="4">
			</cfif>
			
			<!---
			for these fields: Grooming_M0640, Dress_Upper_M0650, Dress_Lower_M0660, Bathing_M0670, Toileting_M0680, Transferring_M0690, Ambulation_M0700, 
			Eating_M0710, Meal_Prep_M0720, Transport_M0730, Laundry_M0740, Shopping_M0760, Housekeeping_M0750, Use_Phone_M0770, M1845_Toilet
			if the left-justified number > 0 (and not blank) - that is counted as a deficit towards the total deficits for this patient
			--->
			<cfset ADLDeficits=0>
			<cfif #LEFT(Grooming_M0640, 1)# neq "" AND IsNumeric(#LEFT(Grooming_M0640, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Grooming_M0640, 1)#>
			</cfif>
			<cfif #LEFT(Dress_Upper_M0650, 1)# neq "" AND IsNumeric(#LEFT(Dress_Upper_M0650, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Dress_Upper_M0650, 1)#>
			</cfif>
			<cfif #LEFT(Dress_Lower_M0660, 1)# neq "" AND IsNumeric(#LEFT(Dress_Lower_M0660, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Dress_Lower_M0660, 1)#>
			</cfif>
			<cfif #LEFT(Bathing_M0670, 1)# neq "" AND IsNumeric(#LEFT(Bathing_M0670, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Bathing_M0670, 1)#>
			</cfif>
			<cfif #LEFT(Toileting_M0680, 1)# neq "" AND IsNumeric(#LEFT(Toileting_M0680, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Toileting_M0680, 1)#>
			</cfif>
			<cfif #LEFT(Transferring_M0690, 1)# neq "" AND IsNumeric(#LEFT(Transferring_M0690, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Transferring_M0690, 1)#>
			</cfif>
			<cfif #LEFT(Ambulation_M0700, 1)# neq "" AND IsNumeric(#LEFT(Ambulation_M0700, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Ambulation_M0700, 1)#>
			</cfif>
			<cfif #LEFT(Eating_M0710, 1)# neq "" AND IsNumeric(#LEFT(Eating_M0710, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Eating_M0710, 1)#>
			</cfif>
			<cfif #LEFT(Meal_Prep_M0720, 1)# neq "" AND IsNumeric(#LEFT(Meal_Prep_M0720, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Meal_Prep_M0720, 1)#>
			</cfif>
			<cfif #LEFT(Transport_M0730, 1)# neq "" AND IsNumeric(#LEFT(Transport_M0730, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Transport_M0730, 1)#>
			</cfif>
			<cfif #LEFT(Laundry_M0740, 1)# neq "" AND IsNumeric(#LEFT(Laundry_M0740, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Laundry_M0740, 1)#>
			</cfif>
			<cfif #LEFT(Shopping_M0760, 1)# neq "" AND IsNumeric(#LEFT(Shopping_M0760, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Shopping_M0760, 1)#>
			</cfif>
			<cfif #LEFT(Housekeeping_M0750, 1)# neq "" AND IsNumeric(#LEFT(Housekeeping_M0750, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Housekeeping_M0750, 1)#>
			</cfif>
			<cfif #LEFT(Use_Phone_M0770, 1)# neq "" AND IsNumeric(#LEFT(Use_Phone_M0770, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(Use_Phone_M0770, 1)#>
			</cfif>
			<cfif #LEFT(M1845_Toilet, 1)# neq "" AND IsNumeric(#LEFT(M1845_Toilet, 1)#)>
				<cfset ADLDeficits=#ADLDeficits#+#LEFT(M1845_Toilet, 1)#>
			</cfif>
			
			<cfif #M1016_DX_NA# eq "">
				<cfset SurgicalDischarge="1">	
			<cfelse>
				<cfset SurgicalDischarge="2">
			</cfif>
			
			<cfset TelephoneNumber=#Replace(#Telephone#, "-", "", "all")#>
	
			<!---
			
			<cfset csvFileContentDebug="#csvFileContent#""#First_Name_M0040#""
			,""#Middle_Initial_M0040#"",""#Last_Name_M0040#""
			,""#Gender#"",""#DateFormat(DOB_M0066, "mmddyyyy")#""
			,""#TelephoneNumber#"",""M"",""#Agency_Assigned_ID#""
			,""#SkilledVisitTotal#"",""{{{{#LookBack#}}}}"",""#LEFT(Source_of_Admission, 1)#""
			,""#PayerHMO#"",""#HMO#"",""#MedEligible#"" 
			,""#HHRG_175_Score#"",""#HHRG_230_Score#""
			,""#SurgicalDischarge#"",""M"",""#ADLDeficits#""
			,""#LEFT(Dress_Upper_M0650, 1)#"",""#LEFT(Dress_Lower_M0660, 1)#""
			,""#LEFT(Bathing_M0670, 1)#"",""#LEFT(M1840_Toilet, 1)#""
			,""#LEFT(Transferring_M0690_M0670, 1)#"",""#LEFT(Eating_M0710, 1)#""
			"& chr(13)& chr(10)>
			--->
			
			<cfset tempTemplate=#csvHeaderTemplate#>
			
			<!--- First Name --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"PatientFirstName", #First_Name_M0040#)#>
			
			<!--- Middle Initial --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"PatientMiddleInitial", #Middle_Initial_M0040#)#>
			
			<!--- Last Name --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"PatientLastName", #Last_Name_M0040#)#>
			
			<!--- Gender --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"Gender", #Gender#)#>
			
			<!--- DOB --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"PatientDOB", #DateFormat(DOB_M0066,"mmddyyyy")#)#>
			
			<!--- Patient Phone --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"PatientPhone", #TelephoneNumber#)#>
			
			<!--- Language --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"Language", "M")#>
			
			<!--- MRN --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"MRN", #Agency_Assigned_ID#)#>
			
			<!--- Skilled Visits --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"SkilledVisits", #SkilledVisitTotal#)#>
			
			<!--- Lookback Period Visits --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"LookbackPeriodVisits", #LookBack#)#>
			
			<!--- Admission Source --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"AdmissionSource", #LEFT(Source_of_Admission, 1)#)#>
			
			<!--- Payer --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"Payer", #PayerHMO#)#>
			
			<!--- HMO --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"HMO", #HMO#)#>
			
			<!--- MedElgible --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"MedElgible", #MedEligible#)#>
			
			<!--- PrimaryDiagnosis --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"PrimaryDiagnosis", #HHRG_175_Score#)#>
			
			<!--- OtherDiagnosis --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"OtherDiagnosis", #HHRG_230_Score#)#>
			
			<!--- SurgicalDischarge --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"SurgicalDischarge", #SurgicalDischarge#)#>
			
			<!--- ESRD --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ESRD", "M")#>
			
			<!--- ADL_Deficits --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ADL_Deficits", #ADLDeficits#)#>
			
			<!--- ADL_DressUpper --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ADL_DressUpper", #LEFT(Dress_Upper_M0650, 1)#)#>
			
			<!--- ADL_DressLower --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ADL_DressLower", #LEFT(Dress_Lower_M0660, 1)#)#>
			
			<!--- ADL_Bathing --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ADL_Bathing", #LEFT(Bathing_M0670, 1)#)#>
			
			<!--- ADL_Toileting --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ADL_Toileting", #LEFT(M1840_Toilet, 1)#)#>
			
			<!--- ADL_Transferring --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ADL_Transferring", #LEFT(Transferring_M0690, 1)#)#>
			
			<!--- ADL_Feed --->
			<cfset tempTemplate=#Replace(#tempTemplate#,"ADL_Feed", #LEFT(Eating_M0710, 1)#)#>
			
			<cfset csvFileContent="#csvFileContent##tempTemplate#"& chr(13)& chr(10)>
			
		</cfoutput>
		
		<!---
	

	   #ListItem#<br />
	   --->
	 
	</cfloop>

	<!---
	<CFLOOP COLLECTION="#Form#" ITEM="VarName">
	  <CFOUTPUT>
	  <TR>
	    <TD>#VarName#</TD>
	    <TD>#Form[VarName]#</TD>
	  </TR>
	  </CFOUTPUT>
	</CFLOOP>
	
	
	<cfoutput>
		#csvFileContent#
	</cfoutput>
	--->
	
	
			<!---
			<cfoutput>#csvFileContent#</cfoutput>
            <cfabort>
            --->
	
	<cffile action="write"
	file="#getDirectoryFromPath(getCurrentTemplatePath())#CSV/CAHPS_#session.AgencyID#_test.csv"
	output="#csvFileContent#">
	
	
   <cfheader name="Content-Disposition" value="attachment; filename=CAHPS_#session.AgencyID#_test.csv">
	<cfcontent 
	   type = "text/csv"
	   deleteFile = "yes"
	   file = "#getDirectoryFromPath(getCurrentTemplatePath())#CSV/CAHPS_#session.AgencyID#_test.csv"
	   reset = "no">
	<br /><br />

<cfelse>
	<h1>CAHPS</h1>
	<h2>You reached this page by error. Plesae submit the CAHPS Form located <a href="index.cfm?page=reports&cat=patients&rpt=CAHPS_Form">Here</a></h2><br>
	
</cfif>
