<!---
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.20 $
$Id: bill_RAP_action.cfm,v 1.20 2010/05/24 13:29:00 arlen Exp $
$Date: 2010/05/24 13:29:00 $--->


<cfparam name="PAYER_ID" default="" />
<cfif isDefined("url.id")>
  <cfset PAYER_ID=url.id />
</cfif>
<cfset invoiceTotal=0>
<cfset invoicePayerId=0>
 <cfset get_invoice_ID =  ''>
<cfset user = Session.EmployeeID>

<cfform name="file" enctype="multipart/form-data">
<cfif #parameterexists(Form.ScheduleItems_ID)#>

<!--- the the visits selected by the user--->
  <cfquery name="GetVisits" datasource="#Application.DataSrc#">
     SELECT ScheduleItems.ScheduleItems_Id
	      ,ScheduleItems.Total_Units
				,ScheduleItems.Payer_ID
				,ScheduleItems.Visit_Date
				,Assessment_New.HIPPS_Code
				,Assessment_New.Assessment_Tracker_Id
				,Assessment_New.Assessment_Reason_M0100
				,Assessment_New.Certification_Start
	      		,Assessment_New.Agency_Id
				,Assessment_New.Patient_Id
	FROM  #Request.prefix_db_agency#.ScheduleItems, #Request.prefix_db_agency#.Assessment_New
	WHERE ScheduleItems.ScheduleItems_ID IN (#Form.ScheduleItems_Id#)
	AND   ScheduleItems.Assessment_Tracker_Id = Assessment_New.Assessment_Tracker_Id
	AND   ScheduleItems.Output_Type = 'RAP'
	</cfquery>
  <!--- first get SOC visits--->
  <cfloop query="GetVisits">
    <cfif GetVisits.Assessment_Reason_M0100 EQ '1 - Start of care - further visits planned'>
      <cfquery name="InsertVisits" datasource="#Application.DataSrc#">
		  Insert Into #Request.prefix_db_lookup#.Claim (Agency_Id, ScheduleItems_ID, Visit_Date, Rev_Code, HCPCS, Total_Units, Assessment_Tracker_ID, Payer_ID, Ticket) 
		  values ('#session.AgencyId#', #ScheduleItems_ID#, #Visit_Date#, '0023', '#HIPPS_Code#', #Total_Units#, #Assessment_Tracker_ID#, #Payer_ID#, 1)
		  </cfquery>
       <cfelse>
      <!--- then get recert visits--->
      <cfquery name="GetFirst" datasource="#Application.DataSrc#">
		SELECT ScheduleItems.ScheduleItems_ID, ScheduleItems.Total_Units, ScheduleItems.Payer_ID, ScheduleItems.Visit_Date, 
		       Assessment_New.HIPPS_Code, Assessment_New.Assessment_Tracker_ID, Assessment_New.Certification_Start
		FROM   #Request.prefix_db_agency#.ScheduleItems, #Request.prefix_db_agency#.Assessment_New
		WHERE  ScheduleItems.Assessment_Tracker_ID = #GetVisits.Assessment_Tracker_ID#
		AND    ScheduleItems.Assessment_Tracker_ID = Assessment_New.Assessment_Tracker_ID
		AND    ScheduleItems.Visit_Date >= Assessment_New.Certification_Start
		ORDER BY ScheduleItems.Visit_Date
		Limit 1
		</cfquery>
      
      <!--- If there is no first visit we will use the certification start date --->
      <cfif GetFirst.recordcount eq 0>
        <cfquery name="InsertVisits" datasource="#Application.DataSrc#">
			Insert Into #Request.prefix_db_lookup#.Claim (Agency_Id, ScheduleItems_ID, Visit_Date, Rev_Code, HCPCS, Total_Units, Assessment_Tracker_ID, Payer_ID, Ticket) 
			values ('#session.AgencyId#', #GetVisits.ScheduleItems_ID#, #GetVisits.Certification_Start#, '0023', '#GetVisits.HIPPS_Code#', #GetVisits.Total_Units#, #GetVisits.Assessment_Tracker_ID#, #GetVisits.Payer_ID#, 1)
			</cfquery>
         <cfelse>
        <cfquery name="InsertVisits" datasource="#Application.DataSrc#">
			Insert Into #Request.prefix_db_lookup#.Claim (Agency_Id, ScheduleItems_ID, Visit_Date, Rev_Code, HCPCS, Total_Units, Assessment_Tracker_ID, Payer_ID, Ticket) 
			values ('#session.AgencyId#', #GetVisits.ScheduleItems_ID#, #GetFirst.Visit_Date#, '0023', '#GetFirst.HIPPS_Code#', #GetFirst.Total_Units#, #GetFirst.Assessment_Tracker_ID#, #GetFirst.Payer_ID#, 1)
			</cfquery>
      </cfif>
    </cfif>
  </cfloop>
   <!--- 10. update assessment with certifying physician --->
   <cfquery name="GetCertPhys" datasource="#Application.DataSrc#">
  <cfsetting requesttimeout="5000">
   UPDATE IGNORE #Request.prefix_db_agency#.patient p, #Request.prefix_db_lookup#.Physician h, #Request.prefix_db_lookup#.Employee e, #Request.prefix_db_agency#.Assessment_New a, #Request.prefix_db_lookup#.Claim c
   set a.HHRG_450_Score = h.Natl_Provider_ID,
   p.Lives_With_M0340 = e.Last_Name,
   p.Race_M0140_NA = e.First_Name
   WHERE p.Agency_ID = #session.AgencyId#
   AND p.Certifying_Physician = h.Physician_ID
   AND p.Certifying_Physician != 0
   and p.Patient_ID = a.Patient_ID
   and a.Assessment_Tracker_ID =  c.Assessment_Tracker_ID
   AND  h.Employee_ID = e.Employee_ID
   and p.Certifying_Physician != 0
  </cfquery>
  
  
<cfquery name="GetFirstVisit" datasource="#Application.DataSrc#">
 SELECT Claim.ScheduleItems_ID, Claim.Claim_ID, Claim.Total_Units, Claim.Visit_Date, Assessment_New.HIPPS_Code
 FROM   #Request.prefix_db_lookup#.Claim, #Request.prefix_db_agency#.Assessment_New
 WHERE  Claim.Agency_Id = '#session.AgencyId#' 
 AND    Claim.Ticket = 1 
 AND    Claim.Assessment_Tracker_ID = Assessment_New.Assessment_Tracker_ID 
 ORDER BY Patient_ID, Visit_Date
 Limit 1
</cfquery>
  <cfset c = 0 />
  <cfset Paydate =''>
   <cfset Pad = 0 />
   <cfset PayerBalance =0 />
  
    <cfset c = 0 />
	
  <cfset finaldata = "">
  <cfset agencyIds = ArrayNew(1) />
  <cfset assessmentTrackerIds = ArrayNew(1) />
  <cfset patientIds = ArrayNew(1) />
  <cfset invoiceAmounts = ArrayNew(1) />
  <cfset patients = ArrayNew(1) />
  <cfset invAmts  = ArrayNew(1) />
  <cfquery name="PrefetchData" datasource="#Application.DataSrc#">
 SELECT Assessment_New.Assessment_ID, patient.patient_id, SUM(Claim.Total_EClaim) AS invAmt
 FROM   #Request.prefix_db_agency#.Assessment_New, #Request.prefix_db_agency#.patient, #Request.prefix_db_lookup#.Agency, #Request.prefix_db_lookup#.Physician, #Request.prefix_db_agency#.Payer, #Request.prefix_db_lookup#.Claim, #Request.prefix_db_lookup#.Employee
 WHERE  Claim.Agency_Id = '#session.AgencyId#'
 AND    Claim.Ticket = 1 
 AND    Claim.Assessment_Tracker_ID = Assessment_New.Assessment_Tracker_ID 
 AND    Assessment_New.Patient_ID = patient.Patient_ID
 AND    Assessment_New.HHAC_Agency_ID = Agency.Agency_Login 
 AND    patient.Primary_ReferringPhys_ID_M0072 = Physician.Physician_ID
 AND    Claim.Payer_ID = Payer.Payer_ID 
 AND    Physician.Employee_ID = Employee.Employee_ID
 GROUP BY Assessment_New.Assessment_ID, patient.patient_id
 ORDER BY patient.patient_id
</cfquery>
  <cfoutput query="PrefetchData">
    <cfscript>
  ArrayAppend(patients, #PrefetchData.patient_id#);
   RAPCalc = CreateObject("component", "MC_RAP_Calc");
   rap = RAPCalc.getRAP(PrefetchData.Assessment_Id);
  ArrayAppend(invAmts, #Replace(rap, ",", "", "All")#);
 </cfscript>
  </cfoutput>
  <cfquery name="Getdata" datasource="#Application.DataSrc#">
 SELECT 
   Claim.ScheduleItems_ID, Claim.Claim_ID, Claim.Total_EClaim, Claim.Visit_Date, Claim.Rev_Code, Claim.HCPCS, Claim.Total_Units
	
  ,Assessment_New.Start_of_Care_M0030, Assessment_New.Certification_Start, Assessment_New.Assessment_Tracker_ID,Assessment_New.Assessment_Reason_M0100
  ,Assessment_New.Certification_End, Assessment_New.Source_of_Admission, Assessment_New.HIPPS_Code
  ,Assessment_New.Claim_Key, Assessment_New.Information_Release, Assessment_New.Homebound_Status
  ,Assessment_New.HHRG_175_Score, Assessment_New.HHRG_230_Score, Assessment_New.HHRG_250_Score 
  ,Assessment_New.HHRG_390_Score, Assessment_New.HHRG_420_Score, Assessment_New.HHRG_440_Score, Assessment_New.HHRG_450_Score
  ,Assessment_New.Assessment_Completed_M0090
   
  ,patient.Patient_ID, patient.Admission_Status, patient.HI_Claim_Number
  ,patient.Last_Name_M0040, patient.Patient_ID,patient.First_Name_M0040, patient.Middle_Initial_M0040, patient.Street_Address
  ,patient.Gender_M0069, patient.City, patient.State_M0050, patient.Zip_M0060, patient.DOB_M0066, patient.MSA_Code,  patient.FIPS_Code, patient.Agency_Assigned_ID
  
  ,patient.Lives_With_M0340,  patient.Race_M0140_NA 
  
  ,Agency.Agency_Name, Agency.Agency_Medicare_ID, Agency.Agency_Address1, Agency.Agency_City, Agency.Agent_FEIN
  ,Agency.Agency_State, Agency.Agency_Zip, Agency.Agency_Contact, Agency.Agency_Contact_Phone, Agency.Natl_Provider_ID AS ANPI
  ,Agency.Agency_ID, Agency.Wage_Index, Agency.Rural
  
  ,Physician.Natl_Provider_ID AS NPI
  
  ,Employee.Last_Name as LastName, Employee.First_Name as FirstName
  
  ,Payer.Payer_ID, Payer.Submitter_ID, Payer.Receiver_ID, Payer.PayName, Payer.Payer_Number, Payer.Address1 AS PayAdd1
  ,Payer.Address2 AS PayAdd2, Payer.City AS PayCity, Payer.State AS PayState, Payer.Zip AS PayZip ,Payer.TurboClaim,
  (SELECT MIN(Visit_Date)
    FROM   #Request.prefix_db_lookup#.Claim
	WHERE  Agency_Id = '#session.AgencyId#'
	AND    Assessment_Tracker_Id = Assessment_New.Assessment_Tracker_Id
   ) AS FirstVisitDate
    
 FROM  #Request.prefix_db_agency#.Assessment_New, #Request.prefix_db_agency#.ScheduleItems, #Request.prefix_db_agency#.patient, #Request.prefix_db_lookup#.Agency, #Request.prefix_db_lookup#.Physician, #Request.prefix_db_lookup#.Employee, #Request.prefix_db_agency#.Payer, #Request.prefix_db_lookup#.Claim
 WHERE Claim.Agency_Id = '#session.AgencyId#'
 AND   Claim.Ticket = 1 
 AND   Claim.Assessment_Tracker_Id = Assessment_New.Assessment_Tracker_Id
 AND   Assessment_New.Patient_Id = patient.Patient_Id
 AND   Assessment_New.HHAC_Agency_ID = Agency.Agency_Login 
 AND   ScheduleItems.Assessment_Tracker_Id = Assessment_New.Assessment_Tracker_Id
 AND   ScheduleItems.Output_Type = 'RAP'
 AND   patient.Primary_ReferringPhys_Id_M0072 = Physician.Physician_Id
 AND   Claim.Payer_Id = Payer.Payer_Id
 AND   Physician.Employee_Id = Employee.Employee_Id
 AND   (Claim.Visit_Date >= Assessment_New.Certification_Start or Claim.Visit_Date is null)
 ORDER BY Patient_Id, Claim_Id
</cfquery>
  <!--- Initialize variables --->
  <cfset finaldata = "">
   
  <!--- GetData Value: <cfdump var="#GetData#"><br> ---> 
  <!---<cfoutput query="GetData" group="Patient_ID">--->
  <cfoutput query="GetData" group="Assessment_Tracker_ID">
    <cfscript>
	 ArrayAppend(agencyIds, #GetData.Agency_ID#);
	 ArrayAppend(assessmentTrackerIds, #GetData.Assessment_Tracker_ID#);
	 ArrayAppend(patientIds, #GetData.Patient_ID#);
	 ArrayAppend(invoiceAmounts, #GetData.Total_EClaim#);
  </cfscript>
  
 <cfset total_Days = #DateDiff("d",Getdata.Assessment_Completed_M0090,now())# >
<cfset Assessment_Completed = #Getdata.Assessment_Completed_M0090# />

    <!--- Used for counting the number of 322 iterations --->
    <cfset ctr_322 = 1>
    <cfif len(GetData.HHRG_450_Score) GT 8>
    	<cfset TS = 34>
    <cfelse>
    	<cfset TS = 33>
    </cfif>
    <cfset YB = '4'>
    <cfset OC = ''>
    <cfset claim = #GetData.HI_Claim_Number#>
    <cfset HIPPS2 = #GetData.HIPPS_Code#>
    <cfset REV2 = '0023'>
    <cfset DESC = 'HOME HEALTH SERVICES'>
    <cfset GetData.Source_of_Admission = #Left(GetData.Source_of_Admission,1)#>
    <cfset GetData.Admission_Status = #Left(GetData.Admission_Status,2)#>
    <cfif len(GetData.Agency_Zip) GT 5>
    	<cfset GetData.Agency_Zip = #Replace(GetData.Agency_Zip,"-","","ALL" )#>
		<cfelse><cfset GetData.Agency_Zip = #Left(GetData.Agency_Zip,5)# & '1901'></cfif>
    <cfset GetData.PayZip = #Left(GetData.PayZip,5)# & '9999'>
    <!--- Remove '.' from the Text_ICD field value ---> 
    <!--- <cfset GetData.Text_ICD = #Replace(GetData.Text_ICD, ".", "", "ALL")#> ---> 
    <!--- Retrieve 1 character (M/F) from Gender_M0069 field value --->
    <cfset GetData.Gender_M0069 = #Mid(GetData.Gender_M0069,5,1)#>
    <!--- Get first character from Source_of_Admission field value ---> 
	
	
	<cfif LEFT(GetData.Assessment_Reason_M0100,1) eq  '4'>
      <cfset FirstVisit = #GetData.FirstVisitDate#>
	<cfelse>
	   <cfset FirstVisit = #GetData.Start_of_Care_M0030#>
    </cfif>
	
   
    <cfset var1 = "">
	 <cfset Turbo_Claim = 0 />
    <cfset CONTRO = #DateFormat(Now(),"YYMMDDHHMMSS")#>
    <cfset CONTROL = #session.AgencyId#&'-'&#CONTRO# />
    <cfset ISA = #DateFormat(Now(),"MMDDHHMMSS")#>
    <cfset ISA13 = #Right(ISA,9)#>
    <cfset GS06 = #DateFormat(Now(), "MMSS")#>
    <cfset ST02 = #DateFormat(Now(), "hmmss")#>

    <cfoutput group="Claim_ID">
      <cfif Trim(GetData.Rev_Code) eq '0023'>
        <cfset var1 = var1 &
		  "LX*#ctr_322#~"& chr(13)& chr(10) &
		  "SV2*#Trim(GetData.Rev_Code)#*HP>#Trim(GetData.HCPCS)#*#Trim(NumberFormat(GetData.Total_EClaim,'_____.__'))#*UN*#NumberFormat(GetData.Total_Units)#~"& chr(13)& chr(10) &
		  "DTP*472*D8*#DateFormat(GetData.FirstVisitDate,"yyyymmdd")#~"& chr(13)& chr(10)>
        <cfset ctr_322 = ctr_322 + 1>
        <cfif GetData.Total_EClaim neq '' and GetData.Total_EClaim gt 0>
          <cfset invoiceTotal = invoiceTotal + GetData.Total_EClaim>
        </cfif>
        <cfset invoicePayerId = #Payer_Id#>
      </cfif>
    </cfoutput>
    <cfset rap = 0 />
    <cfif c eq 0>
    </cfif>
    <!--- JDB: Move the cfset below back inside the c eq 0 above when the time comes --->
    <cfset finaldata = finaldata & "ISA*00*          *00*          *ZZ*00             *ZZ*               *#DateFormat(Now(), "YYMMDD")#*#DateFormat(Now(), "HHMM")#*U*00501*#ISA13#*0*P*>~" & chr(13)& chr(10) & 
		"GS*HC*#GetData.Submitter_ID#*#GetData.Receiver_ID#*#DateFormat(Now(), "YYYYMMDD")#*#DateFormat(Now(), "HHMM")#*#ISA13#*X*005010X223A2~" & chr(13)& chr(10) & 
		"ST*837*#ST02#*005010X223A2~" & chr(13)& chr(10) &  
		"BHT*0019*00*00000#YB#*#DateFormat(Now(), "YYYYMMDD")#*#DateFormat(Now(), "HHMM")#*CH~" & chr(13)& chr(10) & 
		"NM1*41*2*#UCase(GetData.Agency_Name)#*****46*#GetData.Agent_FEIN#~"  & chr(13)& chr(10) & 
		"PER*IC*#UCase(GetData.Agency_Contact)#*TE*#Left(GetData.Agency_Contact_Phone,3)##Mid(GetData.Agency_Contact_Phone,5,3)##Mid(GetData.Agency_Contact_Phone,9,4)#~" & chr(13)& chr(10) & 
		"NM1*40*2*#UCase(GetData.PayName)#*****46~"& chr(13)& chr(10) & 
		"HL*1**20*1~" & chr(13)& chr(10) & 
		"PRV*BI*PXC*251E00000X~"& chr(13)& chr(10) & 
		"NM1*85*2*#UCase(GetData.Agency_Name)#*****XX*#GetData.ANPI#~"  & chr(13)& chr(10) & 
		"N3*#UCase(GetData.Agency_Address1)#~"  & chr(13)& chr(10) & 
		"N4*#UCase(GetData.Agency_City)#*#UCase(GetData.Agency_State)#*#GetData.Agency_Zip#~">
    <cfset c = c + 1>
    <cfset finaldata = finaldata & 
		"REF*EI*#GetData.Agent_FEIN#~"  & chr(13)& chr(10) & 
		"PER*IC*#UCase(GetData.Agency_Contact)#*TE*#Left(GetData.Agency_Contact_Phone,3)##Mid(GetData.Agency_Contact_Phone,5,3)##Mid(GetData.Agency_Contact_Phone,9,4)#~" & chr(13)& chr(10) & 
		"HL*2*1*22*0~" & chr(13)& chr(10) & 
		"SBR*P*18**<!---#UCase(GetData.PayName)#--->*****MA~" & chr(13)& chr(10) & 
		"NM1*IL*1*#UCase(GetData.Last_Name_M0040)#*#UCase(GetData.First_Name_M0040)#****MI*#GetData.HI_Claim_Number#~"& chr(13)& chr(10) & 
		"N3*#UCase(GetData.Street_Address)#~"& chr(13)& chr(10) & 
		"N4*#UCase(GetData.City)#*#UCase(GetData.State_M0050)#*#GetData.Zip_M0060#~"  & chr(13)& chr(10) & 
		"DMG*D8*#DateFormat(GetData.DOB_M0066,"yyyymmdd")#*#GetData.Gender_M0069#~"& chr(13)& chr(10) &
		"NM1*PR*2*#UCase(GetData.PayName)#*****PI*#GetData.Payer_Number#~"& chr(13)& chr(10) &
		"N3*#UCase(GetData.PayAdd1)#~"& chr(13)& chr(10) &
		"N4*#UCase(GetData.PayCity)#*#GetData.PayState#*#GetData.PayZip#~"& chr(13)& chr(10) & 
		"CLM*#CONTROL#*#invoiceTotal#***32>A>2**A*Y*Y*********~"& chr(13)& chr(10) & 
		"DTP*434*RD8*#DateFormat(GetData.Certification_start,"yyyymmdd")#-#DateFormat(GetData.Certification_Start,"yyyymmdd")#~"& chr(13)& chr(10) & 
		"DTP*435*DT*#DateFormat(GetData.Start_of_Care_M0030,"yyyymmdd")#0001~"& chr(13)& chr(10) & 
		"CL1*9*#GetData.Source_of_Admission#*30~"& chr(13)& chr(10) & 
		"REF*G1*#GetData.Claim_Key#~"& chr(13)& chr(10) &
		<!---"HI*ABK>#Replace(GetData.HHRG_175_Score, ".", "", "ALL")#~"& chr(13)& chr(10) &
		"HI*ABF>#Replace(GetData.HHRG_230_Score, ".", "", "ALL")#*ABF>#Replace(GetData.HHRG_250_Score, ".", "", "ALL")#*ABF>#Replace(GetData.HHRG_390_Score, ".", "", "ALL")#*ABF>#Replace(GetData.HHRG_420_Score, ".", "", "ALL")#*ABF>#Replace(GetData.HHRG_440_Score, ".", "", "ALL")#~"& chr(13)& chr(10) &--->
		"HI*ABK>#Replace(GetData.HHRG_175_Score, ".", "", "ALL")#~"& chr(13)& chr(10) >
		<cfif GetData.HHRG_230_Score neq '' OR  GetData.HHRG_250_Score neq '' OR  GetData.HHRG_390_Score neq '' OR  GetData.HHRG_420_Score neq '' OR  GetData.HHRG_440_Score neq ''>
		<cfset  finaldata = finaldata & "HI*" >
		<cfif GetData.HHRG_230_Score neq '' >
		<cfset  finaldata = finaldata & "ABF>#Replace(GetData.HHRG_230_Score, ".", "", "ALL")#*" >
		</cfif>
		<cfif GetData.HHRG_250_Score neq '' >
		<cfset  finaldata = finaldata & "ABF>#Replace(GetData.HHRG_250_Score, ".", "", "ALL")#*" >
		</cfif>
		<cfif GetData.HHRG_390_Score neq '' >
		<cfset  finaldata = finaldata & "ABF>#Replace(GetData.HHRG_390_Score, ".", "", "ALL")#*" >
		</cfif>
		<cfif GetData.HHRG_420_Score neq '' >
		<cfset  finaldata = finaldata & "ABF>#Replace(GetData.HHRG_420_Score, ".", "", "ALL")#*" >
		</cfif>
		<cfif GetData.HHRG_440_Score neq '' >
		<cfset  finaldata = finaldata & "ABF>#Replace(GetData.HHRG_440_Score, ".", "", "ALL")#~" & chr(13)& chr(10) >
		<cfelse>
		<cfset finaldata = Left(finaldata, len(finaldata)-1) />
		<cfset finaldata = finaldata &"~"& chr(13)& chr(10) />
		</cfif>
		</cfif>
		<cfset  finaldata = finaldata &
		"HI*BE>61>>>#GetData.MSA_Code#~"& chr(13)& chr(10) & 
		"HI*BE>85>>>#GetData.FIPS_Code#~"& chr(13)& chr(10) & 
		"NM1*71*1*#UCase(GetData.LastName)#*#UCase(GetData.FirstName)#****XX*#GetData.NPI#~"& chr(13)& chr(10)>
        <cfif GetData.Lives_With_M0340 neq ''>
		<cfset finaldata = finaldata & "NM1*72*1*#UCase(GetData.Lives_With_M0340)#*#UCase(GetData.Race_M0140_NA)#****XX*#GetData.HHRG_450_Score#~"& chr(13)& chr(10)> 
		 </cfif>
		<cfset finaldata = finaldata & ""  >
    <cfset finaldata = finaldata & var1>
    <cfset finaldata = finaldata & "SE*#TS#*#ST02#~"& chr(13)& chr(10) &"GE*1*#ISA13#~"& chr(13)& chr(10)&"IEA*1*#ISA13#~">
    <!--- Add Newline/CR to string --->
    <cfset finaldata = finaldata & chr(13)& chr(10)>
  <!---</cfoutput>--->
<!---  <cfquery name="Get_Inv" datasource="#Application.DataSrc#">
	<cfoutput>
    	Select
				s.ScheduleItems_ID,
				s.Invoice_Id,s.Patient_ID,
				s.Assessment_Tracker_ID,
				s.Payer_ID AS PatientPayer_ID,
				s.Agency_ID,
				a.Homebound_Status,
                a.Assessment_Reason_M0100,
				(Select Amount from #Request.prefix_db_agency#.Payments where Invoice_ID = s.Invoice_ID limit 1) as Paid,
				(Select PaymentDate from #Request.prefix_db_agency#.Payments where Invoice_ID = s.Invoice_ID limit 1) as PaymentDate,
				(select PayerBalance from #Request.prefix_db_agency#.Invoices where Invoice_ID = s.Invoice_ID limit 1) AS PayerBalance
				from #Request.prefix_db_agency#.ScheduleItems s, #Request.prefix_db_agency#.Assessment_New a
				where s.ScheduleItems_ID in (#FORM.ScheduleItems_ID#)
				and s.Assessment_Tracker_ID = a.Assessment_Tracker_ID
    </cfoutput> 
</cfquery>--->
   <cfquery name="Get_Inv" datasource="#Application.DataSrc#"> 
		Select
		s.ScheduleItems_ID, 
		s.Invoice_Id,s.Patient_ID,
		s.Assessment_Tracker_ID,
		s.Payer_ID,	
		s.Agency_ID,
        a.Homebound_Status,
        a.Assessment_Reason_M0100,
		(Select Amount from #Request.prefix_db_agency#.Payments where Invoice_ID = s.Invoice_ID limit 1) as Paid,
		(Select PaymentDate from #Request.prefix_db_agency#.Payments where Invoice_ID = s.Invoice_ID limit 1) as PaymentDate,
		(select PayerBalance from #Request.prefix_db_agency#.Invoices where Invoice_ID = s.Invoice_ID limit 1) AS PayerBalance 
		from #Request.prefix_db_agency#.ScheduleItems s, #Request.prefix_db_agency#.Assessment_New a
        where s.ScheduleItems_ID in (#FORM.ScheduleItems_ID#)
        and s.Assessment_Tracker_ID = a.Assessment_Tracker_ID
      </cfquery>
     <cfset Paydate = #Get_Inv.PaymentDate# />
     <cfset Pad= #Get_Inv.Paid# />
     <cfset PayerBalance =#Get_Inv.PayerBalance# />
	 

<cfquery name="dblist" dbtype="query">
 select distinct(scheduleitems_id) from GetData
</cfquery>

<cfset thelist=#ValueList(dblist.scheduleitems_id,",")#>

<!---  <cfoutput query="Get_Inv" group="Assessment_Tracker_ID">--->
    <cfquery datasource="#Application.DataSrc#" name="Insert_Invoice">
 <cfsetting requesttimeout="5000">
 
  INSERT INTO #Request.prefix_db_agency#.Invoices (
	  PatientPayer_ID
	 ,Agency_ID
	 ,Patient_ID
	 ,Assessment_Tracker_ID
     ,Output
	 ,DateSent
	 ,MethodSent
	 ,InvoiceTotal
	 ,PayerBalance
	 ,Internal_control_number
	 ,WhereTreated
	 ,Assessment_Completed_M0090
	 ,No_Days
   ,Record_Created_By
   ,Record_Created_Date
   ,Record_Modified_By
   ,Record_Modified_Date
  ) VALUES (
	   <!---'#PatientPayer_ID#'
	  ,'#Agency_ID#'
	  ,'#Patient_ID#'
	  ,'#Assessment_Tracker_ID#'
      ,'RAP'
		,NOW()
		,'Electronic'
		,<cfif Assessment_Reason_M0100 contains '1 -' >#NumberFormat(Homebound_Status,'_____.__')*.60#<cfelse>#NumberFormat(Homebound_Status,'_____.__')*.50#</cfif>
		,<cfif Assessment_Reason_M0100 contains '1 -' >#NumberFormat(Homebound_Status,'_____.__')*.60#<cfelse>#NumberFormat(Homebound_Status,'_____.__')*.50#</cfif>
		,'#CONTROL#' 
		,''
		,#Assessment_Completed#
		,#total_Days#
		,#Session.EmployeeId#--->
	   '#Payer_ID#'
	  ,'#Agency_ID#'
	  ,'#Patient_ID#'
	  ,'#Assessment_Tracker_ID#'
      ,'RAP'
		,NOW()
		,'Electronic'
		,<cfif Assessment_Reason_M0100 contains '1 -' >#NumberFormat(Homebound_Status,'_____.__')*.60#<cfelse>#NumberFormat(Homebound_Status,'_____.__')*.50#</cfif>
		,<cfif Assessment_Reason_M0100 contains '1 -' >#NumberFormat(Homebound_Status,'_____.__')*.60#<cfelse>#NumberFormat(Homebound_Status,'_____.__')*.50#</cfif>
		,'#CONTROL#'
		,''
		,#Assessment_Completed#
		,#total_Days#
    ,'#Session.EmployeeId#'
    ,#now()#
    ,'#Session.EmployeeId#'
    ,#now()#
  )
</cfquery>
    <cfquery datasource="#Application.DataSrc#" name="Last_Invoice_ID">
 <cfsetting requesttimeout="5000">
	SELECT LAST_INSERT_ID() as LastInsertID
</cfquery>
    <cfquery datasource="#Application.DataSrc#" name="Insert_Payments">
	 	INSERT INTO #Request.prefix_db_agency#.Payments (
	  Invoice_ID
	 ,PatientPayer_ID
	 ,PaymentDate
	 ,Amount
	 ,PaymentMethod
	 ,WriteOffAmount
	 ,WriteOffType
	 ,Internal_control_number
   ,Record_Created_By
   ,Record_Created_Date
   ,Record_Modified_By
   ,Record_Modified_Date
  ) VALUES (
  	'#Last_Invoice_ID.LastInsertID#',
	 '#Payer_ID#',
	 <cfif Paydate neq ''>
	  #CreateODBCDateTime(Now())#,
	 <cfelse>
	 	 #CreateODBCDateTime(Now())#,
	 </cfif>
	<!--- <cfif Paid neq ''>
	  #Paid#,
	 <cfelse>--->
	 	 0.00,
	 <!---</cfif>--->
	 
	 'Electronic',
	 '0.00',
	 '0.00'	
	 ,'#CONTROL#'
    ,'#Session.EmployeeId#'
    ,#now()#
    ,'#Session.EmployeeId#'
    ,#now()# 
  )
</cfquery>

  
	 <!--- Insert ALL claimdat into claim_bill table --->
  <cfquery name="Insert_claim_bill" datasource="#Application.DataSrc#"> 
INSERT IGNORE INTO  #Request.prefix_db_agency#.claim_bill(
  Type_of_Bill , Assignment_Accept ,Submitter_ID , Receiver_ID , Agency_Name ,Agent_FEIN , Agency_Contact ,Agency_Contact_Phone , PayName ,
  ANPI ,Agency_Address1 ,Agency_City , Agency_State ,Agency_Zip , Last_Name_M0040 ,First_Name_M0040 , HI_Claim_Number ,Street_Address ,City ,
  State_M0050 ,Zip_M0060 ,DOB_M0066 ,Gender_M0069 ,Payer_Number ,PayAdd1 ,PayCity ,PayState ,PayZip ,Certification_start ,Certification_end ,
  Start_of_Care_M0030 ,Source_of_Admission ,Admission_Status ,Claim_Key ,HHRG_175_Score ,HHRG_230_Score ,HHRG_250_Score ,HHRG_390_Score ,
  HHRG_420_Score ,HHRG_440_Score ,MSA_Code ,Referring_LastName ,Referring_FirstName ,Referring_PNPI ,Certifying_LastName ,Certifying_FirstName ,
  Certifying_PNPI,Invoice_ID,Telephone,Assessment_Reason_M0100,Agency_Assigned_ID)
  VALUES
  ('32>A>2','','#Submitter_ID#','#Receiver_ID#','#Agency_Name#','#Agent_FEIN#','#Agency_Contact#','#Agency_Contact_Phone#','#PayName#',
'#ANPI#','#Agency_Address1#','#Agency_City#','#Agency_State#' ,'#Agency_Zip#','#Last_Name_M0040#','#First_Name_M0040#','#HI_Claim_Number#','#Street_Address#','#City#',
'#State_M0050#','#Zip_M0060#',<cfif DOB_M0066 neq ''>'#DATEFORMAT(DOB_M0066,'yyyy-mm-dd')#'<cfelse>null</cfif>,'#Gender_M0069#','#Payer_Number#','#PayAdd1#','#PayCity#','#PayState#','#PayZip#',
<cfif Certification_Start neq ''>'#DATEFORMAT(Certification_Start,'yyyy-mm-dd')#'<cfelse>null</cfif>,
<cfif Certification_End neq ''>'#DATEFORMAT(Certification_End,'yyyy-mm-dd')#'<cfelse>null</cfif>,
#Start_of_Care_M0030#,'#Source_of_Admission#','#Admission_Status#','#Claim_Key#','#HHRG_175_Score#','#HHRG_230_Score#','#HHRG_250_Score#','#HHRG_390_Score#',
'#HHRG_420_Score#','#HHRG_440_Score#','#MSA_Code#','#LastName#','#FirstName#' ,'#NPI#' ,'','','',#Last_Invoice_ID.LastInsertID#,'','#Assessment_Reason_M0100#','#Agency_Assigned_ID#')
	</cfquery>  
	
<cfset Turbo_Claim = #GetData.TurboClaim# /> 
<cfif Turbo_Claim eq 1 and #Session.TurboClaim# eq 1 >
 <cfset getsucess= generalCFC.AddInvoiceHistory(Last_Invoice_ID.LastInsertID) />

<cfquery datasource="#Application.DataSrc#" name="Insert_Status">
Update #Request.prefix_db_agency#.Invoices SET 
Updated_by = 'Automatic',
<cfif #form.rejected# neq 1>claim_status = 'Waiting'<cfelse>claim_status = 'Rejected'</cfif>
 ,Record_Modified_By = '#Session.EmployeeId#'
,Record_Modified_Date = #now()#
WHERE Invoice_ID = #Last_Invoice_ID.LastInsertID#
</cfquery>
</cfif>


<cfquery datasource="#Application.DataSrc#" name="Update_Flags">
  <cfsetting requesttimeout="5000">
	UPDATE #Request.prefix_db_agency#.ScheduleItems SET 
	  EClaimed = 1  	 
   	 ,Invoice_ID = #Last_Invoice_ID.LastInsertID#
     ,Agency_ID = #Agency_ID#
     ,Patient_ID = #Patient_ID#
     ,Assessment_Tracker_ID = #Assessment_Tracker_ID#
	 ,Export_Date = #CreateODBCDateTime(Now())#
  WHERE ScheduleItems_ID IN (#thelist#) 
  AND   Assessment_Tracker_ID = #Assessment_Tracker_ID#
  </cfquery>
  <cfset invoiceTotal = 0>
     <cfset Paydate =''>
     <cfset Pad =0 >
     <cfset PayerBalance =0 />
	  <cfif get_invoice_ID eq ''>
	 <cfset get_invoice_ID = #Last_Invoice_ID.LastInsertID# />
	 <cfelse>
	 <cfset get_invoice_ID = get_invoice_ID&','&#Last_Invoice_ID.LastInsertID# />
	 </cfif>
</cfoutput> 
  
 <cfquery datasource="#Application.DataSrc#" name="Get_claim">
 Select * from  #Request.prefix_db_agency#.Invoices  where Invoice_ID in (#get_invoice_ID#)
</cfquery>
  
  
  <cfset Turbo_Claim = #GetData.TurboClaim# /> 
  
  <cfif #form.rejected# neq 1>
   <cfif Turbo_Claim eq 1 and #Session.TurboClaim# eq 1 >
						<cfset invoice= 'UB'&#Getdata.ScheduleItems_ID#&'.CLI' />
						<cfset strFilePath = "/var/www/Zirmed_Upload_files_Backup/" >
						<cffile
							action="write"
							file="#strFilePath##invoice#"
							output="#finaldata#"
							/>		
					     <cfset objFTPProperties = {
							Server = "sshftp.zirmed.com",
							Port = "22",
							Username = "124641",
							Password = "demriz41",
							fingerprint = "c3:a3:24:d4:50:75:d2:0f:b9:a4:34:d8:94:11:17:36",
							Secure = true
							} />
							
							<cfftp 
							action="open"
							connection="objConnection"
							attributeCollection="#objFTPProperties#"
							/>
						
						
						<cfftp action="putfile"  localfile="#strFilePath##invoice#" remotefile="/Upload/#invoice#" connection="objConnection" />
						<cfftp action="close" connection="objConnection" />
						
							<cfmail from="ticket@myhomecarebiz.com" 
								 to="debbie@myhomecarebiz.com" 
								 subject="Medicare RAP visits just submitted via TurboClaim" 
								 type="html"> 
								 <cfoutput>
								  <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> 
								   <p>Agency: <b>#Session.AgencyName#</b></p> 
								   <p>5-Digit ID: <b>#Session.AgencyLogin#</b> <b>3-Digit ID: #Session.AgencyID#</b></p> 
								   <p>Name: <b>#session.Display#</b></p> 
								   <p>Cell: <b>#Session.Phone#</b>&nbsp;&nbsp;Agency Phone: #Session.Agency_Phone#</p>  
								 </font> 
								 </cfoutput>
								</cfmail>
							<div class="portlet box blue">
							<div class="portlet-title">
								<div class="caption">
									<i class="fa fa-report"></i>RAP Claims Export
								</div>
								<div class="tools">
									<a href="" class="collapse">
									</a>
								</div>
								<div class="actions">
								<input class="btn btn-default" type="button" title="Back" onclick="javacsript:history.back();" id="back" value="Back" name="back">
								</div>
							</div>
							  <div class="portlet-body">
								<p>!!Files Submitted by TurboClaim</p>
							   </div>
							</div>

    <cfelse>

					 <!--- Write entire text string to file --->
  
                   <cffile action="write" file="#application.datapath##user##Application.datatype#" output="#finaldata#">
				   
				<div class="portlet box blue">
					<div class="portlet-title">
							<div class="caption">
								<i class="fa fa-report"></i>RAPs Ready for Export to PC-ACE
							</div>
							<div class="tools">
								<a href="" class="collapse">
								</a>
							</div>
							<div class="actions">
							<input class="btn btn-default" type="button" title="Back" onclick="javacsript:history.back();" id="back" value="Back" name="back">
							</div>
						</div>
						<div class="portlet-body">
						<p>Your RAPs have been prepared for export. Right click on the hyperlink<br>
						below and click Save Target As...</p>
						<p><cfoutput><a target='rap' href="#application.webdatapath##user##Application.datatype#">Save as RAP.dat in c://winpcace/impub92</a></cfoutput></p>
						<cfinput type="button" name="back" id="back" title="Back" value="Back" onClick="javacsript:history.back();" />
					</div>
				</div>
</cfif>			
<cfelse>
	<cfmail from="ticket@myhomecarebiz.com" 
						 to="debbie@myhomecarebiz.com"  bcc="velmurugan@msitl.com"
						 subject="Medicare final visits just Moved  to REJECTED" 
						 type="html">
						 <p>This claims just moved into Rejectec Claims</p><br />
					<cfoutput> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
					  <p>Agency: <b>#Session.AgencyName#</b></p>
					  <p>5-Digit ID: <b>#Session.AgencyLogin#</b> <b>3-Digit ID: #Session.AgencyID#</b></p>
					  <p>Name: <b>#session.Display#</b></p>
					  <p>Cell: <b>#Session.Phone#</b>&nbsp;&nbsp;Agency Phone: #Session.Agency_Phone#</p>
					  </font> </cfoutput>
				  </cfmail>
	<div class="portlet box blue">
					<div class="portlet-title">
							<div class="caption">
								<i class="fa fa-report"></i>Bill RAP
							</div>
							<div class="tools">
								<a href="" class="collapse">
								</a>
							</div>
							<div class="actions">
							<input class="btn btn-default" type="button" title="Back" onclick="javacsript:history.back();" id="back" value="Back" name="back">
							</div>
						</div>
						<div class="portlet-body">
						<p>Your RAP Claims Moved to Rejected Now.</p>
						<p>So Please check that Claim in REJECTED </p>
						<cfinput type="button" name="back" id="back" title="Back" value="Back" onClick="javacsript:history.back();" />
					</div>
	   </div>
				
</cfif>
	
	
  
  
  <!--- After file creation is complete, flag the EClaimed field in the ScheduleItems table, by setting it to 1--->
  
  <cfquery name="dblist" dbtype="query">
 select distinct(scheduleitems_id) from GetData
</cfquery>
  <cfset thelist=#ValueList(dblist.scheduleitems_id,",")#>
  <cfif thelist neq ''>
    <cfquery datasource="#Application.DataSrc#" name="Update_Flags">
	UPDATE #Request.prefix_db_agency#.ScheduleItems SET 
      EClaimed = 1
	 ,Export_Date = #CreateODBCDateTime(Now())#
	WHERE ScheduleItems_ID IN (#thelist#)
	AND   Output_Type = 'RAP'
 </cfquery>
    <cfquery datasource="#Application.DataSrc#" name="Update_Flags">
	UPDATE #Request.prefix_db_lookup#.Supply_Sched SET Ticket = 9 WHERE Ticket = 1 AND ScheduleItems_ID IN (#thelist#)
 </cfquery>
    <cfquery datasource="#Application.DataSrc#" name="Update_Flags">
	DELETE FROM #Request.prefix_db_lookup#.Claim WHERE Agency_Id = '#session.AgencyId#' AND ScheduleItems_ID IN (#thelist#)
 </cfquery> 
  </cfif>
   <cfelse>
  <h4>RAPs Ready for Export to PC-ACE</h4>
  <p>No RAP Visits Selected</p>
  <cfinput type="button" name="back" id="back" title="Back" value="Back" onClick="javacsript:history.back();" />
  </cfif>
</cfform>
