private void dgvMain_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex == colClaim.Index) { if (e.RowIndex >= 0) { user_action_log ual = (user_action_log)dgvMain.Rows[e.RowIndex].Tag; if (CommonFunctions.DBNullToZero(ual["call_id"]) > 0) { call toShow = new call(ual.call_id); pnlShowCall.Visible = true; ctlCallDisplay.DisplayCall(toShow); lblCallInfo.Text = toShow.operatordata + " " + toShow.created_on; pnlShowCall.Visible = true; } else if (CommonFunctions.DBNullToZero(ual["claim_id"]) > 0) { try { frmClaimManager toShow = new frmClaimManager(new claim(ual.claim_id)); toShow.Show(); } catch { MessageBox.Show(this, "An error occurred showing the selected claim."); } } } } }
private void StartCall() { FormCall = GetNewCall(); ActiveUser.LogAction(ActiveUser.ActionTypes.StartMultiClaimCall, 0, FormCall.id, ""); callTime = new TimeSpan(0); callTimer.Start(); }
private void InitializeNewCall() { CurrentCall = new call(); CurrentCall.created_on = DateTime.Now; CurrentCall.claim_id = LinkedClaim.id; CurrentCall.OnHoldSeconds = 0; CurrentCall.operatordata = ActiveUser.UserObject.username; CurrentCall.updated_on = DateTime.Now; CurrentCall.StartTime = DateTime.Now; CurrentCall.parent_id = 0; CurrentCall.Save(); ctlStatusHandler.Initialize(LinkedClaim.company_id); mainQuestionViewer.CurrentCall = CurrentCall; ngDisplay.CurrentCall = CurrentCall; ActiveUser.LogAction(ActiveUser.ActionTypes.StartCall, LinkedClaim.id, CurrentCall.id, LinkedClaim.PatientName); callTime = new TimeSpan(); callTimer.Start(); lblCallTime.Visible = true; ctlStatusHandler._category = null; ctlDataVerification.Initialize(); if (CallStarted != null) { CallStarted(this, new EventArgs()); } }
public List <call> GetPastCalls(bool requireAnswer) { List <call> toReturn = new List <call>(); string sql = "SELECT * FROM calls c WHERE claim_id = " + id; if (requireAnswer) { sql += " AND (Select count(*) FROM choices where call_id = c.id) > 1"; } sql += " ORDER BY created_on desc"; DataTable pastCalls = Search(sql); foreach (DataRow aCall in pastCalls.Rows) { call c = new call(); c.Load(aCall); c.LinkedClaim = this; c.ReadOnly = true; toReturn.Add(c); } return(toReturn); }
public void InitializeNewCall() { IsCallInProgress = true; btnHoldCall.Enabled = true; btnLogCall.Text = "End Call"; CurrentCall = new call(); CurrentCall.created_on = DateTime.Now; CurrentCall.claim_id = Claim.id; CurrentCall.OnHoldSeconds = 0; CurrentCall.operatordata = ActiveUser.UserObject.username; CurrentCall.updated_on = DateTime.Now; CurrentCall.Save(); currentCallNode = new CallTreeCallNode(CurrentCall); currentCallNode.ImageIndex = 5; currentCallNode.SelectedImageIndex = 5; // Initialize CallTreeView foreach (question q in Questions) { if (String.IsNullOrEmpty(q.required_answer)) { AddQuestionToTree(q, (TreeNode)currentCallNode); } } _numQuestionsAnswered = 0; tvwCall.Nodes.Add(currentCallNode); currentCallNode.NodeFont = new Font(tvwCall.Font, FontStyle.Bold); currentCallNode.Expand(); currentCallNode.EnsureVisible(); notesGrid.CurrentCall = CurrentCall; }
public CallTreeCallNode(call call) : base() { this.Text = call.operatordata; if (call.updated_on.HasValue) { this.Text += " - " + call.updated_on.Value.ToString("MM/dd/yyyy hh:mm tt"); } Call = call; }
private void ctlMultiClaimCallClaimDisplay_SaveChanges(object sender, EventArgs e) { ctlMultiClaimCallClaimDisplay current = (ctlMultiClaimCallClaimDisplay)sender; if (FormCall == null) { FormCall = GetNewCall(); } current.CurrentCall = FormCall; }
public CallQuestion(choice choice) { _subQuestions = new List <CallQuestion>(); _choice = choice; if (choice != null) { _call = choice.LinkedCall; Question = choice.LinkedQuestion; } }
private call GetNewCall() { call toReturn = new call(); toReturn.created_on = DateTime.Now; toReturn.claim_id = 0; toReturn.operatordata = ActiveUser.UserObject.username; toReturn.StartTime = DateTime.Now; toReturn.parent_id = 0; toReturn.Save(); return(toReturn); }
public void DisplayCall(call toShow) { dgvMain.Rows.Clear(); dgvMain.Rows.Add(new object[] { "Creation", toShow.operatordata + " " + toShow.created_on.Value.ToShortDateString() + " " + toShow.created_on.Value.ToShortTimeString() }); dgvMain.Rows.Add(new object[] { "Length", System.Convert.ToInt32(toShow.DurationSeconds / 60) + " minutes" }); if (toShow.call_status > 0) { dgvMain.Rows.Add(new object[] { "Status", toShow.LinkedStatus.text }); } foreach (choice aChoice in toShow.GetCallChoices()) { string toAdd = ""; List <string> parentCatNames = new List <string>(); question workingQuestion; if (aChoice.LinkedQuestion.parent > 0) { workingQuestion = aChoice.LinkedQuestion; parentCatNames.Insert(0, workingQuestion.text); while (workingQuestion.parent > 0) { workingQuestion = workingQuestion.ParentQuestion; parentCatNames.Insert(0, workingQuestion.text); } } else { parentCatNames.Insert(0, aChoice.LinkedQuestion.text); } foreach (string aCatName in parentCatNames) { if (toAdd == string.Empty) { toAdd = aCatName; } else { toAdd += " -> " + aCatName; } } dgvMain.Rows.Add(new object[] { toAdd, aChoice.answer }); } foreach (notes aNote in toShow.GetNotes()) { dgvMain.Rows.Add(new object[] { "note", aNote.Note }); } }
public void LoadNotes(call call) { Notes.Clear(); List <notes> callNotes = call.GetNotes(); foreach (notes note in callNotes) { note.Note += CreateNoteAdditionalText(note); Notes.Add(note); } bsNotes.ResetBindings(false); InitializeColumnVisibility(); }
private void AddCallToTree(call call, TreeNode parentNode) { // Add Call Node CallTreeCallNode callNode = new CallTreeCallNode(call); callNode.ImageIndex = 0; callNode.SelectedImageIndex = 0; parentNode.Nodes.Add(callNode); List <CallQuestion> callQuestions = call.GetCallQuestions(); foreach (CallQuestion cq in callQuestions) { if (cq.IsAnswered) { AddQuestionToTree(cq, callNode); } } }
public CallDisplay(call toShow) { _showNotes = true; DisplayCall(toShow); }
public CallQuestion(question question, call call) { _subQuestions = new List <CallQuestion>(); _call = call; Question = question; }
public CallDisplay(call toShow, bool showNotes) { _showNotes = showNotes; DisplayCall(toShow); }
private bool Save() { if (ValidateForm()) { try { claim toSave; if (_editMode == EditModes.Edit) { toSave = _claimsList[_currentIndex]; } else { toSave = new claim(); toSave.created_on = DateTime.Now; toSave.created_by = ActiveUser.UserObject.username; _editMode = EditModes.Edit; _claimsList.Add(toSave); _currentIndex = _claimsList.Count - 1; } #region Field Assignments // Services SaveWithCheckForChange(ref toSave, "amount_of_claim", nmbClaimAmount.Value * 100); // Insurance if (cmbInsuranceCarrier.SelectedIndex >= 0) { int newID = ((company)cmbInsuranceCarrier.SelectedItem).id; int oldID = toSave.company_id; if (toSave.company_id != newID) { AddChange(toSave.id, "company", toSave.LinkedCompany.name, new company(newID).name); toSave.company_id = newID; } if (toSave.company_address_id != _currentContactInfo.order_id) { company_contact_info oldInfo = new company_contact_info(); company_contact_info newInfo = new company_contact_info(); oldInfo.Load(new int[] { oldID, toSave.company_address_id }); newInfo.Load(new int[] { newID, _currentContactInfo.order_id }); AddChange(toSave.id, "company_address", oldInfo.address, newInfo.address); toSave.company_address_id = _currentContactInfo.order_id; } } // Patient // name has to be handled in a special way if (toSave.PatientName != txtPatientName.Text) { AddChange(toSave.id, "patient_name", toSave.PatientName, txtPatientName.Text); toSave.PatientName = txtPatientName.Text; } SaveWithCheckForChangeSpecialDateTime(ref toSave, "patient_dob", ctlPatientDOB.CurrentDate); SaveWithCheckForChange(ref toSave, "patient_ssn", txtPatientSSN.Text.Replace("-", "")); SaveWithCheckForChange(ref toSave, "patient_address", txtPatientAddress.Text); SaveWithCheckForChange(ref toSave, "patient_address2", txtPatientAddress2.Text); SaveWithCheckForChange(ref toSave, "patient_city", txtPatientCity.Text); SaveWithCheckForChange(ref toSave, "patient_state", txtPatientState.Text); SaveWithCheckForChange(ref toSave, "patient_zip", txtPatientZIP.Text); // Doctor // name has to be handled in a special way if (toSave.DoctorName != txtDoctorName.Text) { AddChange(toSave.id, "doctor_name", toSave.DoctorName, txtDoctorName.Text); toSave.DoctorName = txtDoctorName.Text; } SaveWithCheckForChange(ref toSave, "doctor_tax_number", txtDoctorTaxID.Text); SaveWithCheckForChange(ref toSave, "doctor_license_number", txtDoctorLicenseID.Text); SaveWithCheckForChange(ref toSave, "doctor_bcbs_number", txtDoctorBC.Text); // phone has to be handled in a special way PhoneObject newDoctorPhone = new PhoneObject(txtDoctorPhone.Text); if (toSave.doctor_phone_number_object.FormattedPhone != newDoctorPhone.FormattedPhone) { AddChange(toSave.id, "doctor_phone_number", toSave.doctor_phone_number_object.FormattedPhone, newDoctorPhone.FormattedPhone); toSave.doctor_phone_number_object = newDoctorPhone; } // phone has to be handled in a special way PhoneObject newDoctorFax = new PhoneObject(txtDoctorFax.Text); if (toSave.doctor_fax_number_object.FormattedPhone != newDoctorFax.FormattedPhone) { AddChange(toSave.id, "doctor_fax_number", toSave.doctor_fax_number_object.FormattedPhone, newDoctorFax.FormattedPhone); toSave.doctor_fax_number_object = newDoctorFax; } SaveWithCheckForChange(ref toSave, "doctor_address", txtDoctorAddress.Text); SaveWithCheckForChange(ref toSave, "doctor_address2", txtDoctorAddress2.Text); SaveWithCheckForChange(ref toSave, "doctor_city", txtDoctorCity.Text); SaveWithCheckForChange(ref toSave, "doctor_state", txtDoctorState.Text); SaveWithCheckForChange(ref toSave, "doctor_zip", txtDoctorZIP.Text); // Subscriber // Need special code for name if (toSave.SubscriberName != txtSubscriberName.Text) { AddChange(toSave.id, "subscriber_name", toSave.SubscriberName, txtSubscriberName.Text); toSave.SubscriberName = txtSubscriberName.Text; } SaveWithCheckForChangeSpecialDateTime(ref toSave, "subscriber_dob", ctlSubscriberDOB.CurrentDate); SaveWithCheckForChange(ref toSave, "subscriber_number", txtSubscriberID.Text); SaveWithCheckForChange(ref toSave, "subscriber_alternate_number", txtSubscriberAltID.Text); SaveWithCheckForChange(ref toSave, "subscriber_ssn", txtSubscriberSSN.Text.Replace("-", "")); SaveWithCheckForChange(ref toSave, "subscriber_group_name", txtSubscriberGroupName.Text); SaveWithCheckForChange(ref toSave, "subscriber_group_number", txtSubscriberGroupNum.Text); SaveWithCheckForChange(ref toSave, "subscriber_address", txtSubscriberAddress.Text); SaveWithCheckForChange(ref toSave, "subscriber_address2", txtSubscriberAddress2.Text); SaveWithCheckForChange(ref toSave, "subscriber_city", txtSubscriberCity.Text); SaveWithCheckForChange(ref toSave, "subscriber_state", txtSubscriberState.Text); SaveWithCheckForChange(ref toSave, "subscriber_zip", txtSubscriberZIP.Text); // General SaveWithCheckForChangeSpecialDateTime(ref toSave, "sent_date", ctlSentDate.CurrentDate); SaveWithCheckForChangeSpecialDateTime(ref toSave, "resent_date", ctlResentDate.CurrentDate); SaveWithCheckForChangeSpecialDateTime(ref toSave, "on_hold_date", ctlOnHoldDate.CurrentDate); SaveWithCheckForChangeSpecialDateTime(ref toSave, "tracer_date", ctlTracerDate.CurrentDate); // Notes / Open SaveWithCheckForChange(ref toSave, "notes", txtNotes.Text); // Special for boolean if (toSave.open != System.Convert.ToInt32(!chkClosed.Checked)) { AddChange(toSave.id, "open", !chkClosed.Checked, chkClosed.Checked); toSave.open = System.Convert.ToInt32(!chkClosed.Checked); } toSave.handling = cmbHandling.Text; #endregion toSave.Save(); SaveRevisitDate(); _changed = false; if (toSave.LinkedChanges.Count > 0) { lnkViewClaimChangeHistory.Visible = true; } choice choice = new choice(); call call = new call(); return(true); } catch (Exception err) { MessageBox.Show(this, "An unexpected error occurred attempting to save this claim. Please report " + "this error to an administrator:\n\n" + err.Message, "Unexpected Error in Save Routine", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } } else { return(false); } }
private void ImportThread_DoWork(object sender, DoWorkEventArgs e) { claim workingClaim = new claim(); DataTable importData = new DataTable(); DataTable importDataSecondaries = new DataTable(); DataTable importDataPredeterms = new DataTable(); DataTable importDataSecondaryPredeterms = new DataTable(); system_options.SetImportFlag(true); primaryClaimCount = 0; secondaryClaimCount = 0; predetermClaimCount = 0; secondaryPredetermClaimCount = 0; closedClaimCount = 0; OleDbConnection oConnect; UpdateProgressBar(50, "Initiating Remote Connection..."); #region Initiate Connection, Get Data try { oConnect = new OleDbConnection(dms.GetConnectionString(true)); } catch (Exception err) { CreateLogFile(err.ToString()); Updateimporterror(true); LoggingHelper.Log("An error occurred getting the connection string for a new connection in frmImportData.Import", LogSeverity.Error, err, false); e.Cancel = true; return; } OleDbDataAdapter oAdapter; // Use Connection object for the DataAdapter to retrieve all tables from selected Database try { oConnect.Open(); } catch (Exception err) { CreateLogFile(err.ToString()); Updateimporterror(true); LoggingHelper.Log("Could not connect to the database in frmImportdata.Import", LogSeverity.Error, err, false); e.Cancel = true; return; } try { UpdateProgressBar(50, "Querying remote database (Standard)..."); // ************* Standard Claims oAdapter = new OleDbDataAdapter(PrepareSQL(dms.sqlstatement, changesOnly), oConnect); oAdapter.SelectCommand.CommandTimeout = System.Convert.ToInt32(nmbTimeout.Value); oAdapter.Fill(importData); UpdateProgressBar(10, "Querying remote database (Secondary)..."); // ************** Secondaries if (dms.sqlstatementsecondaries != "") { oAdapter = new OleDbDataAdapter(PrepareSQL(dms.sqlstatementsecondaries, changesOnly), oConnect); oAdapter.SelectCommand.CommandTimeout = System.Convert.ToInt32(nmbTimeout.Value); oAdapter.Fill(importDataSecondaries); } UpdateProgressBar(10, "Querying remote database (Predeterms)..."); // *************** Predeterms if (dms.sqlstatementpredeterms != "") { oAdapter = new OleDbDataAdapter(PrepareSQL(dms.sqlstatementpredeterms, changesOnly), oConnect); oAdapter.SelectCommand.CommandTimeout = System.Convert.ToInt32(nmbTimeout.Value); oAdapter.Fill(importDataPredeterms); } UpdateProgressBar(10, "Querying remote database (Secondary Predeterms)..."); // *************** Predeterms if (dms.sqlstatementsecondarypredeterms != "") { oAdapter = new OleDbDataAdapter(PrepareSQL(dms.sqlstatementsecondarypredeterms, changesOnly), oConnect); oAdapter.SelectCommand.CommandTimeout = System.Convert.ToInt32(nmbTimeout.Value); oAdapter.Fill(importDataSecondaryPredeterms); } } catch (Exception err) { CreateLogFile(err.ToString()); Updateimporterror(true); LoggingHelper.Log("Error with SQL statement or connection in frmImportData.Import", LogSeverity.Error, err); MessageBox.Show(this, "There was an error with your SQL statement or with your connection.\n\n" + err.Message, "Error retrieving data"); CancelImport(); return; } #endregion data_mapping_schema_data dmsd = new data_mapping_schema_data(); dmsd.schema_id = dms.id; DataTable dataForSchema = dmsd.Search(); // Generate our list of objects one time, and then use them for each iteration of rows List <data_mapping_schema_data> allMappedSchemaData = new List <data_mapping_schema_data>(); foreach (DataRow aMapping in dataForSchema.Rows) { // For every row, need to get the data for every field dmsd = new data_mapping_schema_data(); dmsd.Load(aMapping); allMappedSchemaData.Add(dmsd); } UpdateProgressBar(100, "Importing data..."); if (okToZap) { company cmp = new company(); cmp.Zap(); workingClaim.Zap(); call aCall = new call(); aCall.Zap(); company_contact_info info = new company_contact_info(); info.Zap(); procedure p = new procedure(); p.Zap(); choice c = new choice(); c.Zap(); notes n = new notes(); n.Zap(); claim_batch cb = new claim_batch(); cb.Zap(); batch_claim_list bcl = new batch_claim_list(); bcl.Zap(); } else { if (!changesOnly) { workingClaim.MarkAllImportsUpdated(false); } } // Apply incremental updates to progress bar int currentRow = 0; totalRows = importData.Rows.Count + importDataSecondaries.Rows.Count + importDataPredeterms.Rows.Count + importDataSecondaryPredeterms.Rows.Count; decimal exactIncrementAmount; if (totalRows > 0) { exactIncrementAmount = 500m / totalRows; } else { exactIncrementAmount = 500m; } decimal incrementCounter = 0; int increment; if (exactIncrementAmount < 1) { increment = 1; } else { increment = Convert.ToInt32(Math.Truncate(exactIncrementAmount)); } string lastClaimID = ""; claim aClaim = new claim(); company aCompany = new company(); company_contact_info anInfo = new company_contact_info(); procedure aProcedure = new procedure(); for (int p = 0; p < 4; p++) { claim.ClaimTypes ct; DataTable thisImport; switch (p) { case 0: thisImport = importData; ct = claim.ClaimTypes.Primary; UpdateLabels(0); break; case 1: thisImport = importDataSecondaries; ct = claim.ClaimTypes.Secondary; UpdateLabels(1); break; case 2: thisImport = importDataPredeterms; ct = claim.ClaimTypes.Predeterm; UpdateLabels(2); break; default: thisImport = importDataSecondaryPredeterms; UpdateLabels(3); ct = claim.ClaimTypes.SecondaryPredeterm; break; } // Have data at this point, need to tie them to the internal mapping schema data foreach (DataRow anImportRow in thisImport.Rows) { string newID = anImportRow[dms.claim_id_column].ToString(); string newDB = anImportRow[dms.claim_db_column].ToString(); bool isOnlyProcedureData; if (newID == lastClaimID) { // We're only dealing with the import of "some" data isOnlyProcedureData = true; } else { if (ct == claim.ClaimTypes.Primary) { primaryClaimCount++; } else if (ct == claim.ClaimTypes.Secondary) { secondaryClaimCount++; } else if (ct == claim.ClaimTypes.Predeterm) { predetermClaimCount++; } else { secondaryPredetermClaimCount++; } UpdateTypeCount(); aClaim = FindClaim(anImportRow, ct); aCompany = FindCompany(anImportRow[dms.company_namecolumn].ToString()); anInfo = FindContactInfo(anImportRow["Ins_Co_Street1"].ToString(), aCompany.id, anImportRow["Ins_Co_Phone"].ToString()); lastClaimID = newID; aClaim.ClearClaimProcedures(); isOnlyProcedureData = false; // Check for "X" in provider field try { if (aClaim.doctor_provider_id.StartsWith("X")) { AddStatus(string.Format("The claim for patient {0} on {1} uses an X provider ({2})", aClaim.PatientName, aClaim.DatesOfServiceString(), aClaim.doctor_provider_id), true, true); } } catch (Exception err) { CreateLogFile(err.ToString()); Updateimporterror(true); LoggingHelper.Log(err, false); } } aProcedure = FindProcedure(anImportRow["PROC_LOGID"].ToString()); if (CommonFunctions.DBNullToString(anImportRow["DATERECEIVED"]) == "") { aClaim.open = 1; } else if (((DateTime)anImportRow["DATERECEIVED"]).Year == 1753) { aClaim.open = 1; } else { aClaim.open = 0; UpdateStatusHistory(aClaim); } foreach (data_mapping_schema_data aMappedData in allMappedSchemaData) { // We do a check for is only procedure data to speed up processing // It makes the code a little messier. if (isOnlyProcedureData) { // If we're only importing the procedure data, none of the other information is important if ((aMappedData.LinkedField.table_name == "claims") || (aMappedData.LinkedField.table_name == "companies") || (aMappedData.LinkedField.table_name == "company_contact_info")) { // Ignore } else if (aMappedData.LinkedField.table_name == "procedures") { if (aMappedData.LinkedField.field_name == "surf_string") { aProcedure[aMappedData.LinkedField.field_name] = CommonFunctions.RemoveNonPrintableCharacters(anImportRow[aMappedData.mapped_to_text].ToString()); } else if (aMappedData.LinkedField.field_name == "claim_id") { aProcedure["claim_id"] = lastClaimID; } else { aProcedure[aMappedData.LinkedField.field_name] = anImportRow[aMappedData.mapped_to_text]; } } else { LoggingHelper.Log("Uninitialized table name in frmImportData.Import", LogSeverity.Critical, new Exception("Uninitialized table name in import procedure."), true); } } else { // This is a new claim - we need to get the data for every field if (aMappedData.LinkedField.table_name == "claims") { aClaim[aMappedData.LinkedField.field_name] = anImportRow[aMappedData.mapped_to_text]; } else if (aMappedData.LinkedField.table_name == "companies") { if (aMappedData.mapped_to_text != dms.company_namecolumn) { aCompany[aMappedData.LinkedField.field_name] = anImportRow[aMappedData.mapped_to_text]; } } else if (aMappedData.LinkedField.table_name == "company_contact_info") { anInfo[aMappedData.LinkedField.field_name] = anImportRow[aMappedData.mapped_to_text]; } else if (aMappedData.LinkedField.table_name == "procedures") { if (aMappedData.LinkedField.field_name == "surf_string") { aProcedure[aMappedData.LinkedField.field_name] = CommonFunctions.RemoveNonPrintableCharacters(anImportRow[aMappedData.mapped_to_text].ToString()); } else { aProcedure[aMappedData.LinkedField.field_name] = anImportRow[aMappedData.mapped_to_text]; } } else { LoggingHelper.Log("Uninitialized table name in frmImport.Import", LogSeverity.Critical); throw new Exception("Uninitialized table name in import procedure."); } } } aCompany.Save(); anInfo.company_id = aCompany.id; if (CommonFunctions.DBNullToZero(anInfo["order_id"]) == 0) { anInfo.order_id = anInfo.GetNextOrderID(); } anInfo.Save(); aClaim.company_id = aCompany.id; aClaim.company_address_id = anInfo.order_id; aClaim["import_update_flag"] = true; aClaim.Save(); if (p == 0 || p == 2 || p == 3) // Only update the id if this is the primary claim or a predeterm { aProcedure.claim_id = aClaim.id; } aProcedure.Save(); currentRow++; if (Math.Truncate(incrementCounter + exactIncrementAmount) != Math.Truncate(incrementCounter)) { UpdateProgressBar(increment, string.Format("{0} / {1} procedures completed...", currentRow, totalRows), false); } incrementCounter += exactIncrementAmount; } } if (changesOnly) { // Grab all the deleted claims and mark them as closed here // Add a note that they have been deleted, I guess string deletedClaimsSQL = "SELECT CLAIMID, CLAIMDB " + "FROM AUDIT_DDB_CLAIM " + "WHERE N_CLAIMID is null " + "AND CLAIMID is not null AND CLAIMDB is not null " + "AND date_changed >= '" + lastWrite.ToString("G") + "'"; DataTable deletedClaims = new DataTable(); OleDbCommand cmd = new OleDbCommand(deletedClaimsSQL, oConnect); cmd.CommandTimeout = 90; oAdapter = new OleDbDataAdapter(cmd); oAdapter.Fill(deletedClaims); UpdateProgressBar(5, "Updating Local Status for Deleted Claims..."); foreach (DataRow aDeletedClaim in deletedClaims.Rows) { // Close the claims DataTable matches = aClaim.Search("SELECT * FROM claims WHERE claimidnum = '" + aDeletedClaim["claimid"] + "' and claimdb = '" + aDeletedClaim["claimdb"] + "'"); if (matches.Rows.Count > 0) { // This should honestly not load every claim aClaim = new claim(); aClaim.Load(matches.Rows[0]); aClaim.open = 0; aClaim.Save(); UpdateStatusHistory(aClaim); closedClaimCount++; } } } else { closedClaimCount = workingClaim.CloseClaimsWithoutUpdate(); } UpdateLabels(4); workingClaim.FixRevisitDateAfterImport(); }