///<summary>Uses the report complex pattern to print the same report generated by FillGrid()</summary> private void butRunReport_Click(object sender, EventArgs e) { if (!ValidateFilters()) { return; } ReportComplex report = new ReportComplex(true, false); List <long> listClinicNums = comboClinicMulti.ListSelectedClinicNums; DataTable table = RpClaimNotSent.GetClaimsNotSent(_startDate, _endDate, listClinicNums, true, (ClaimNotSentStatuses)comboBoxInsFilter.SelectedItem); string subtitleClinics = ""; subtitleClinics = comboClinicMulti.GetStringSelectedClinics(); report.ReportName = Lan.g(this, "Claims Not Sent"); report.AddTitle("Title", Lan.g(this, "Claims Not Sent")); if (PrefC.HasClinicsEnabled) { report.AddSubTitle("Clinics", subtitleClinics); } QueryObject query = report.AddQuery(table, "Date: " + DateTimeOD.Today.ToShortDateString()); if (PrefC.HasClinicsEnabled) { query.AddColumn("Clinic", 60, FieldValueType.String); } query.AddColumn("Date", 85, FieldValueType.Date); query.GetColumnDetail("Date").StringFormat = "d"; query.AddColumn("Type", 90, FieldValueType.String); query.AddColumn("Claim Status", 100, FieldValueType.String); query.AddColumn("Patient Name", 150, FieldValueType.String); query.AddColumn("Insurance Carrier", 150, FieldValueType.String); query.AddColumn("Amount", 90, FieldValueType.Number); query.AddColumn("Proc Codes", 90); report.AddPageNum(); if (!report.SubmitQueries()) { return; } FormReportComplex FormR = new FormReportComplex(report); FormR.ShowDialog(); DialogResult = DialogResult.OK; }
///<summary>Uses the report complex pattern to print the same report generated by FillGrid()</summary> private void butRunReport_Click(object sender, EventArgs e) { if (!ValidateFilters()) { return; } ReportComplex report = new ReportComplex(true, false); List <long> listClinicNums = GetSelectedClinicNums(); DataTable table = RpClaimNotSent.GetClaimsNotSent(_startDate, _endDate, listClinicNums, true, (ClaimNotSentStatuses)comboBoxInsFilter.SelectedItem); string subtitleClinics = ""; //the following logic could probably be simplified if (PrefC.HasClinicsEnabled) { if (comboBoxClinics.SelectedIndices.Contains(0)) { subtitleClinics = Lan.g(this, "All Clinics"); } else { for (int i = 0; i < comboBoxClinics.SelectedIndices.Count; i++) { if (i > 0) { subtitleClinics += ", "; } if (Security.CurUser.ClinicIsRestricted) { subtitleClinics += _listClinics[(int)comboBoxClinics.SelectedIndices[i] - 1].Abbr; } else { if ((int)comboBoxClinics.SelectedIndices[i] == 1) { subtitleClinics += Lan.g(this, "Unassigned"); //start here } else { subtitleClinics += _listClinics[(int)comboBoxClinics.SelectedIndices[i] - 2].Abbr; //Minus 2 from the selected index } } } } } report.ReportName = Lan.g(this, "Claims Not Sent"); report.AddTitle("Title", Lan.g(this, "Claims Not Sent")); if (PrefC.HasClinicsEnabled) { report.AddSubTitle("Clinics", subtitleClinics); } QueryObject query = report.AddQuery(table, "Date: " + DateTimeOD.Today.ToShortDateString()); if (PrefC.HasClinicsEnabled) { query.AddColumn("Clinic", 60, FieldValueType.String); } query.AddColumn("Date", 85, FieldValueType.Date); query.GetColumnDetail("Date").StringFormat = "d"; query.AddColumn("Type", 90, FieldValueType.String); query.AddColumn("Claim Status", 100, FieldValueType.String); query.AddColumn("Patient Name", 150, FieldValueType.String); query.AddColumn("Insurance Carrier", 150, FieldValueType.String); query.AddColumn("Amount", 90, FieldValueType.Number); query.AddColumn("Proc Codes", 90); report.AddPageNum(); if (!report.SubmitQueries()) { return; } FormReportComplex FormR = new FormReportComplex(report); FormR.ShowDialog(); DialogResult = DialogResult.OK; }
///<summary>Gets all unsent claims in the database between the user entered date range and with the appropriate user selected filters.</summary> private void FillGrid() { if (!ValidateFilters()) { return; } List <long> listClinicNums = GetSelectedClinicNums(); DataTable table = RpClaimNotSent.GetClaimsNotSent(_startDate, _endDate, listClinicNums, false , (ClaimNotSentStatuses)comboBoxInsFilter.SelectedItem);//this query can get slow with a large number of clinics (like NADG) gridMain.BeginUpdate(); gridMain.Columns.Clear(); ODGridColumn col; if (PrefC.HasClinicsEnabled) { col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Clinic"), 90); gridMain.Columns.Add(col); } col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Date of Service"), 90, GridSortingStrategy.DateParse); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Claim Type"), 90); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Claim Status"), 100); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Patient Name"), 150); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Carrier Name"), 150); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Claim Fee"), 90, GridSortingStrategy.AmountParse); gridMain.Columns.Add(col); col = new ODGridColumn(Lan.g(gridMain.TranslationName, "Proc Codes"), 100); gridMain.Columns.Add(col); gridMain.Rows.Clear(); ODGridRow row; for (int i = 0; i < table.Rows.Count; i++) { row = new ODGridRow(); if (PrefC.HasClinicsEnabled) { row.Cells.Add(table.Rows[i]["Clinic"].ToString()); } DateTime dateService = PIn.Date(table.Rows[i]["DateService"].ToString()); row.Cells.Add(dateService.ToShortDateString()); string type = table.Rows[i]["ClaimType"].ToString(); switch (type) { case "P": type = "Pri"; break; case "S": type = "Sec"; break; case "PreAuth": type = "Preauth"; break; case "Other": type = "Other"; break; case "Cap": type = "Cap"; break; case "Med": type = "Medical"; //For possible future use. break; default: type = "Error"; //Not allowed to be blank. break; } row.Cells.Add(type); row.Cells.Add(table.Rows[i]["ClaimStatus"].ToString()); row.Cells.Add(table.Rows[i]["Patient Name"].ToString()); row.Cells.Add(table.Rows[i]["CarrierName"].ToString()); row.Cells.Add(PIn.Double(table.Rows[i]["ClaimFee"].ToString()).ToString("c")); row.Cells.Add(table.Rows[i]["ProcCodes"].ToString()); UnsentInsClaim unsentClaim = new UnsentInsClaim(); unsentClaim.ClaimNum = PIn.Long(table.Rows[i]["ClaimNum"].ToString()); unsentClaim.PatNum = PIn.Long(table.Rows[i]["PatNum"].ToString()); ClaimTracking claimTrackingCur = _listNewClaimTrackings.FirstOrDefault(x => x.ClaimNum == unsentClaim.ClaimNum); if (claimTrackingCur != null) { unsentClaim.ClaimTrackingNum = claimTrackingCur.ClaimTrackingNum; } row.Tag = unsentClaim; gridMain.Rows.Add(row); } gridMain.EndUpdate(); }