private void frmFindMercuryPayer_Load(object sender, EventArgs e) { // On load, populate the All Payers box and do our initial SQL search for matches // split the string on space and search for each word mercury_payer_list mpl = new mercury_payer_list(); foreach (DataRow aRow in mpl.GetAllData("name").Rows) { lstAllPayers.Items.Add(new PayerDisplayData(aRow["name"].ToString(), aRow["payer_id"].ToString(), (int)aRow["id"])); } Search(); }
private void Search() { string searchText = CommonFunctions.TrimSpaces(txtProviderName.Text); string baseSQL = string.Format("SELECT mpl.name, mpl.payer_id, mpl.id FROM mercury_payer_list mpl " + "LEFT JOIN mercury_payer_alias mpa ON mpl.id = mpa.mercury_id WHERE " + "mpl.Name = '{0}' OR mpa.alias = '{0}' ORDER BY mpl.name", searchText); mercury_payer_list mpl = new mercury_payer_list(); lstSearchResults.Items.Clear(); FillSearchResults(mpl.Search(baseSQL)); string extraSQL = string.Format("SELECT mpl.name, mpl.payer_id, mpl.id FROM mercury_payer_list mpl " + "LEFT JOIN mercury_payer_alias mpa ON mpl.id = mpa.mercury_id WHERE " + "mpl.Name LIKE '%{0}%' OR mpa.alias LIKE '%{0}%' ORDER BY mpl.name", searchText); FillSearchResults(mpl.Search(extraSQL)); if (searchText.Contains(" ")) { // All Match string[] individualTerms = searchText.Split(" "[0]); string individualSQL = "SELECT mpl.name, mpl.payer_id, mpl.id FROM mercury_payer_list mpl " + "LEFT JOIN mercury_payer_alias mpa ON mpl.id = mpa.mercury_id WHERE 1 = 1 "; foreach (string term in individualTerms) { individualSQL += string.Format(" AND mpl.Name LIKE '%{0}%'", term); } individualSQL += " ORDER BY NAME"; FillSearchResults(mpl.Search(individualSQL)); // One Match individualSQL = "SELECT mpl.name, mpl.payer_id, mpl.id FROM mercury_payer_list mpl " + "LEFT JOIN mercury_payer_alias mpa ON mpl.id = mpa.mercury_id WHERE 0 = 1 "; foreach (string term in individualTerms) { individualSQL += string.Format(" OR mpl.Name LIKE '%{0}%'", term); } individualSQL += " ORDER BY NAME"; FillSearchResults(mpl.Search(individualSQL)); } }
/// <summary> /// Tries to find a match for the payer on this claim. If a match isn't found, pops up a form asking the user to choose one. /// </summary> /// <param name="c"></param> private static Dictionary <string, string> GetMercuryPayerID(string payer_name) { mercury_payer_list mpl = new mercury_payer_list(); Dictionary <string, string> easyMatches = mpl.SearchIncludeAlias(payer_name); if (easyMatches == null) { // Ask the user to select a payer id Mercury.frmFindMercuryPayer toShow = new Mercury.frmFindMercuryPayer(payer_name); toShow.ShowDialog(); easyMatches = new Dictionary <string, string>(); easyMatches.Add("id", toShow.PayerID); easyMatches.Add("name", toShow.PayerName); } return(easyMatches); }