<!--- Build EDI .DAT content for form_edit resubmit (included by form_edit_resubmit_action.cfm) --->
<cfquery name="GetData" datasource="#Application.DataSrc#">
	SELECT
		cb.*,
		i.Invoice_ID, i.Patient_ID,
		ps.Assmt_ID AS Group_Assmt_ID,
		Claim.Schedule_ID, Claim.Claim_ID, Claim.Total_EClaim, Claim.Total_Contract, Claim.Visit_Date,
		Claim.Rev_Code, Claim.HCPCS, Claim.Total_Units,
		Claim.Min_Visitdate, Claim.Max_Visitdate,
		pAssessments.F300 AS HIPPS_Code, pAssessments.F26 AS Assessment_Reason_M0100,
		pAssessments.F176 AS Assessment_Completed_M0090, pAssessments.F30, pAssessments.F181 AS dischargedate,
		pPtPayer.Policy_Group_Name, pAuths.Auth_No AS AUTHNO,
		pPayer.Output AS POUT, pPayer.Qcode_req, pPayer.Revenue_0023, pPayer.Value_Codes,
		pPayer.PayerSource AS PAYSRC,
		pPatients.FIPS_Code,
		pPhysicians.Phys_Last AS LastName, pPhysicians.Phys_First AS FirstName, pPhysicians.Phys_NPI AS PNPI,
		Agency.Agency_Contact, Agency.Hospice_Medicare_NPI AS HNPI,
		(SELECT MIN(c.Visit_Date) FROM #Request.prefix_db_lookup#.Claim c
			WHERE c.Agency_Id = <cfqueryparam value="#session.AgencyId#" cfsqltype="cf_sql_integer">
			AND c.Schedule_ID IN (<cfqueryparam value="#scheduleIdList#" cfsqltype="cf_sql_integer" list="yes">)) AS FirstVisitDate
	FROM #Request.prefix_db_agency#.claim_bill cb
	INNER JOIN #Request.prefix_db_agency#.Invoices i ON cb.Invoice_ID = i.Invoice_ID
	INNER JOIN #Request.prefix_db_agency#.pSchedules ps ON ps.Invoice_ID = i.Invoice_ID AND ps.Status = 0
	INNER JOIN #Request.prefix_db_lookup#.Claim ON Claim.Schedule_ID = ps.Schedule_ID
		AND Claim.Agency_Id = <cfqueryparam value="#session.AgencyId#" cfsqltype="cf_sql_integer">
		AND Claim.Ticket = 1
	INNER JOIN #Request.prefix_db_agency#.pAssessments ON ps.Assmt_ID = pAssessments.Assmt_ID AND pAssessments.Status = 0
	INNER JOIN #Request.prefix_db_agency#.pAdmit ON pAssessments.Admit_ID = pAdmit.Admit_ID AND pAdmit.Status = 0
	INNER JOIN #Request.prefix_db_agency#.pPatients ON i.Patient_ID = pPatients.Patient_ID
	INNER JOIN #Request.prefix_db_lookup#.Agency ON Agency.Agency_ID = i.Agency_ID
	INNER JOIN #Request.prefix_db_agency#.pPayer ON i.PatientPayer_ID = pPayer.Pay_ID AND pPayer.Status = 0
	LEFT JOIN #Request.prefix_db_agency#.pPtPayer ON pPtPayer.Patient_ID = pPatients.Patient_ID AND pPayer.Pay_ID = pPtPayer.Payer_ID AND pPtPayer.Status = 0
	LEFT JOIN #Request.prefix_db_agency#.pAuths ON Claim.Auth_ID = pAuths.Auth_ID AND pAuths.Status = 0
	LEFT JOIN #Request.prefix_db_lookup#.pPhysicians ON pAdmit.Render_Phys_ID = pPhysicians.Phys_ID
	WHERE cb.Invoice_ID = <cfqueryparam value="#url.inv#" cfsqltype="cf_sql_integer">
	AND Claim.Total_EClaim > 0
	ORDER BY Claim.Visit_Date, Claim.Claim_ID
</cfquery>

<cfif GetData.recordcount EQ 0>
	<cfset finaldata = "" />
<cfelse>
	<cfset c = 0 />
	<cfset var1 = "" />
	<cfset authorization_number = "" />
	<cfset ctr_329 = 1 />

	<cfoutput query="GetData" group="Group_Assmt_ID">
		<cfif Mid(GetData.Assessment_Reason_M0100, 1, 1) EQ "4">
			<cfset Date = GetData.FirstVisitDate />
		<cfelse>
			<cfset Date = GetData.Start_of_Care_M0030 />
		</cfif>
		<cfset FirstVisit = GetData.FirstVisitDate />
		<cfset QCode = "Q5001" />

		<cfif GetData.POUT EQ "Hospice">
			<cfset TOB = "82>A>3" />
			<cfset TAX = "251G00000X" />
			<cfset NPI = GetData.HNPI />
			<cfset YB = "3" />
			<cfset claim = GetData.HI_Claim_Number />
			<cfset HIPPS2 = GetData.HHRG_175_Score />
			<cfset REV2 = "0651" />
		<cfelse>
			<cfset TOB = "32>A>3" />
			<cfset TAX = "251E00000X" />
			<cfset NPI = GetData.ANPI />
			<cfset YB = "4" />
			<cfset claim = GetData.HI_Claim_Number />
			<cfset HIPPS2 = GetData.HIPPS_Code />
			<cfset REV2 = "0023" />
		</cfif>
		<cfif is1500Output>
			<cfset TOB = "12>B>1" />
		<cfelseif Len(Trim(GetData.Type_of_Bill)) GTE 3>
			<cfset TOB = Left(GetData.Type_of_Bill, 2) & ">A>" & Right(GetData.Type_of_Bill, 1) />
		</cfif>

		<cfset GetData.Gender_M0069 = Left(GetData.Gender_M0069, 1) />
		<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 Agency_Zip = Replace(GetData.Agency_Zip, "-", "", "ALL") />
		<cfelse>
			<cfset Agency_Zip = Left(GetData.Agency_Zip, 5) & "1901" />
		</cfif>
		<cfset PayZip = Left(GetData.PayZip, 5) & "9999" />

		<cfset curren_date = DateFormat(Now(), "yymmdd") />
		<cfset CONTRO = TimeFormat(Now(), "HHMMSS") />
		<cfset CONTROL = session.AgencyId & "-" & curren_date & CONTRO />
		<cfset ISA = DateFormat(Now(), "mmdd") & TimeFormat(Now(), "HHMMSS") />
		<cfset ISA13 = Right(ISA, 9) />
		<cfset GS06 = TimeFormat(Now(), "MMSS") />
		<cfset ST02 = TimeFormat(Now(), "HHMMSS") />

		<cfif GetData.Revenue_0023 EQ 1>
			<cfset ctr_329 = 2 />
		<cfelse>
			<cfset ctr_329 = 1 />
		</cfif>
		<cfset invoiceTotal = 0 />
		<cfset var1 = "" />

		<cfoutput group="Claim_ID">
			<cfquery name="get_revenue" datasource="#Application.DataSrc#">
				SELECT r.* FROM #Request.prefix_db_agency#.pSchedules s
				JOIN #Request.prefix_db_agency#.pRevenue_Code r ON s.Rev_ID = r.Rev_CodeID
				WHERE s.Schedule_ID = <cfqueryparam value="#GetData.Schedule_ID#" cfsqltype="cf_sql_integer">
			</cfquery>
			<cfif get_revenue.Measure EQ "1">
				<cfset TotalUnits = GetData.Total_Units / 4 />
			<cfelseif get_revenue.Measure EQ ".25">
				<cfset TotalUnits = GetData.Total_Units />
			<cfelse>
				<cfset TotalUnits = 1 />
			</cfif>
			<cfif is1500Output>
				<cfset var1 = var1 & "LX*" & ctr_329 & "~" & Chr(13) & Chr(10) &
					"SV1*HC>" & Trim(GetData.HCPCS) & "*" & Trim(NumberFormat(GetData.Total_EClaim, "_____.__")) & "*UN*" & TotalUnits & "***1>2>3>4~" & Chr(13) & Chr(10) &
					"DTP*472*D8*" & DateFormat(GetData.Visit_Date, "yyyymmdd") & "~" & Chr(13) & Chr(10) />
			<cfelse>
				<cfset var1 = var1 & "LX*" & ctr_329 & "~" & Chr(13) & Chr(10) &
					"SV2*" & Trim(GetData.Rev_Code) & "*HC>" & Trim(GetData.HCPCS) />
				<cfif get_revenue.recordcount GT 0 AND Len(Trim(get_revenue.Modifier)) GT 0>
					<cfset var1 = var1 & ">" & get_revenue.Modifier />
				</cfif>
				<cfset var1 = var1 & "*" & Trim(NumberFormat(GetData.Total_EClaim, "_____.__")) & "*UN*" & TotalUnits & "~" & Chr(13) & Chr(10) &
					"DTP*472*D8*" & DateFormat(GetData.Visit_Date, "yyyymmdd") & "~" & Chr(13) & Chr(10) />
			</cfif>
			<cfset ctr_329 = ctr_329 + 1 />
			<cfif Val(GetData.Total_EClaim) GT 0>
				<cfset invoiceTotal = invoiceTotal + GetData.Total_EClaim />
			</cfif>
			<cfif authorization_number EQ "">
				<cfset authorization_number = GetData.AUTHNO />
			<cfelseif Len(Trim(GetData.AUTHNO)) GT 0 AND NOT Find(GetData.AUTHNO, authorization_number)>
				<cfset authorization_number = authorization_number & "," & GetData.AUTHNO />
			</cfif>
		</cfoutput>

		<cfif GetData.Qcode_req EQ 1>
			<cfif is1500Output>
				<cfset var1 = var1 & "LX*" & ctr_329 & "~" & Chr(13) & Chr(10) &
					"SV1*HC>" & Trim(QCode) & "*0.01*UN*1***1>2>3>4~" & Chr(13) & Chr(10) &
					"DTP*472*D8*" & DateFormat(FirstVisit, "yyyymmdd") & "~" & Chr(13) & Chr(10) />
			<cfelse>
				<cfset var1 = var1 & "LX*" & ctr_329 & "~" & Chr(13) & Chr(10) &
					"SV2*" & REV2 & "*HC>" & Trim(QCode) & "*.01*UN*1~" & Chr(13) & Chr(10) &
					"DTP*472*D8*" & DateFormat(FirstVisit, "yyyymmdd") & "~" & Chr(13) & Chr(10) />
			</cfif>
			<cfset invoiceTotal = invoiceTotal + 0.01 />
		</cfif>

		<cfset sbrGroupName = "" />
		<cfif Len(Trim(GetData.Policy_Group_Name)) GT 0>
			<cfset sbrGroupName = Trim(GetData.Policy_Group_Name) />
		</cfif>

		<cfif is1500Output>
			<cfset stVersion = "005010X222A1" />
		<cfelse>
			<cfset stVersion = "005010X223A2" />
		</cfif>

		<cfset finaldata = finaldata &
			"ISA*00*          *00*          *ZZ*00             *ZZ*               *" & DateFormat(Now(), "yymmdd") & "*" & TimeFormat(Now(), "HHMM") & "*U*00501*" & ISA13 & "*0*P*>~" & Chr(13) & Chr(10) &
			"GS*HC*" & GetData.Submitter_ID & "*" & GetData.Receiver_ID & "*" & DateFormat(Now(), "yyyymmdd") & "*" & TimeFormat(Now(), "HHMM") & "*" & GS06 & "*X*" & stVersion & "~" & Chr(13) & Chr(10) &
			"ST*837*" & ST02 & "*" & stVersion & "~" & Chr(13) & Chr(10) &
			"BHT*0019*00*00000" & YB & "*" & DateFormat(Now(), "yyyymmdd") & "*" & TimeFormat(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*" & GetData.Payer_Number & "~" & Chr(13) & Chr(10) &
			"HL*1**20*1~" & Chr(13) & Chr(10) &
			"PRV*BI*PXC*" & TAX & "~" & Chr(13) & Chr(10) &
			"NM1*85*2*" & UCase(GetData.Agency_Name) & "*****XX*" & NPI & "~" & Chr(13) & Chr(10) &
			"N3*" & UCase(GetData.Agency_Address1) & "~" & Chr(13) & Chr(10) &
			"N4*" & UCase(GetData.Agency_City) & "*" & UCase(GetData.Agency_State) & "*" & Agency_Zip & "~" & Chr(13) & Chr(10) &
			"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**" & sbrGroupName & "*****" & Trim(GetData.PAYSRC) & "~" & Chr(13) & Chr(10) &
			"NM1*IL*1*" & UCase(GetData.Last_Name_M0040) & "*" & UCase(GetData.First_Name_M0040) & "****MI*" & claim & "~" & Chr(13) & Chr(10) &
			"N3*" & UCase(GetData.Street_Address) & "~" & Chr(13) & Chr(10) &
			"N4*" & UCase(GetData.City) & "*" & GetData.State_M0050 & "*" & Left(GetData.Zip_M0060, 5) & "~" & 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 & "*" & PayZip & "~" & Chr(13) & Chr(10) />

		<cfif is1500Output>
			<cfset finaldata = finaldata &
				"CLM*" & CONTROL & "*" & invoiceTotal & "***12>B>1*Y*A*Y*Y~" & Chr(13) & Chr(10) &
				"REF*G1*" & Trim(authorization_number) & "~" & Chr(13) & Chr(10) />
		<cfelse>
			<cfset finaldata = finaldata &
				"CLM*" & CONTROL & "*" & invoiceTotal & "***" & TOB & "**A*Y*Y*********~" & Chr(13) & Chr(10) &
				"DTP*434*RD8*" & DateFormat(GetData.Min_Visitdate, "yyyymmdd") & "-" & DateFormat(GetData.Max_Visitdate, "yyyymmdd") & "~" & Chr(13) & Chr(10) &
				"DTP*435*DT*" & DateFormat(GetData.Start_of_Care_M0030, "yyyymmdd") & "0001~" & Chr(13) & Chr(10) &
				"CL1*9*" & Trim(GetData.Source_of_Admission) & "*30~" & Chr(13) & Chr(10) &
				"REF*G1*" & Trim(authorization_number) & "~" & Chr(13) & Chr(10) />
		</cfif>

		<!--- Diagnosis from edited claim_bill HHRG fields --->
		<cfif Len(Trim(GetData.HHRG_175_Score)) GT 0>
			<cfset finaldata = finaldata & "HI*ABK>" & Replace(GetData.HHRG_175_Score, ".", "", "ALL") & "~" & Chr(13) & Chr(10) />
		</cfif>
		<cfset diagLine = "HI*" />
		<cfset hasOtherDx = false />
		<cfif Len(Trim(GetData.HHRG_230_Score)) GT 0>
			<cfset diagLine = diagLine & "ABF>" & Replace(GetData.HHRG_230_Score, ".", "", "ALL") & "*" />
			<cfset hasOtherDx = true />
		</cfif>
		<cfif Len(Trim(GetData.HHRG_250_Score)) GT 0>
			<cfset diagLine = diagLine & "ABF>" & Replace(GetData.HHRG_250_Score, ".", "", "ALL") & "*" />
			<cfset hasOtherDx = true />
		</cfif>
		<cfif Len(Trim(GetData.HHRG_390_Score)) GT 0>
			<cfset diagLine = diagLine & "ABF>" & Replace(GetData.HHRG_390_Score, ".", "", "ALL") & "*" />
			<cfset hasOtherDx = true />
		</cfif>
		<cfif Len(Trim(GetData.HHRG_420_Score)) GT 0>
			<cfset diagLine = diagLine & "ABF>" & Replace(GetData.HHRG_420_Score, ".", "", "ALL") & "*" />
			<cfset hasOtherDx = true />
		</cfif>
		<cfif Len(Trim(GetData.HHRG_440_Score)) GT 0>
			<cfset diagLine = diagLine & "ABF>" & Replace(GetData.HHRG_440_Score, ".", "", "ALL") & "~" & Chr(13) & Chr(10) />
			<cfset hasOtherDx = true />
		<cfelseif hasOtherDx>
			<cfset diagLine = Left(diagLine, Len(diagLine) - 1) & "~" & Chr(13) & Chr(10) />
		</cfif>
		<cfif hasOtherDx>
			<cfset finaldata = finaldata & diagLine />
		</cfif>

		<cfif NOT is1500Output AND GetData.Value_Codes EQ 1>
			<cfset finaldata = finaldata & "HI*BE>61>>>" & GetData.MSA_Code & "~" & Chr(13) & Chr(10) />
			<cfif Len(Trim(GetData.FIPS_Code)) GT 0>
				<cfset finaldata = finaldata & "HI*BE>85>>>" & GetData.FIPS_Code & "~" & Chr(13) & Chr(10) />
			</cfif>
		</cfif>

		<cfif is1500Output>
			<cfset finaldata = finaldata &
				"NM1*DN*1*" & UCase(GetData.LastName) & "*" & UCase(GetData.FirstName) & "****XX*" & GetData.PNPI & "~" & Chr(13) & Chr(10) &
				"NM1*77*2*HOME*****XX*~" & Chr(13) & Chr(10) &
				"N3*" & UCase(GetData.Agency_Address1) & "~" & Chr(13) & Chr(10) &
				"N4*" & UCase(GetData.Agency_City) & "*" & UCase(GetData.Agency_State) & "*" & Agency_Zip & "~" & Chr(13) & Chr(10) />
		<cfelse>
			<cfset finaldata = finaldata &
				"NM1*71*1*" & UCase(GetData.LastName) & "*" & UCase(GetData.FirstName) & "****XX*" & GetData.PNPI & "~" & Chr(13) & Chr(10) />
			<cfif GetData.POUT NEQ "Hospice" AND GetData.Revenue_0023 EQ 1>
				<cfset finaldata = finaldata &
					"LX*1~" & Chr(13) & Chr(10) &
					"SV2*" & REV2 & "*HP>" & Trim(HIPPS2) & "*0*UN*1~" & Chr(13) & Chr(10) &
					"DTP*472*D8*" & DateFormat(Date, "yyyymmdd") & "~" & Chr(13) & Chr(10) />
			</cfif>
		</cfif>

		<cfset finaldata = finaldata & var1 />
		<cfset TS = ((ctr_329 - 1) * 3) + 31 />
		<cfset finaldata = finaldata & "SE*" & TS & "*" & ST02 & "~" & Chr(13) & Chr(10) & "GE*1*" & GS06 & "~" & Chr(13) & Chr(10) & "IEA*1*" & ISA13 & "~" & Chr(13) & Chr(10) />
		<cfset c = c + 1 />
	</cfoutput>
</cfif>
