Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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);
        }