Exemple #1
0
        //This function returns results from PatientLog table for all PatientLog Views aside from PatientSort
        private IQueryable <PatientLog> patientLogQueryGenerator(DateTime fromDate, DateTime toDate, List <string> selectedHosp, List <string> selectedServ,
                                                                 GridFilter.SortDirections direction, string sortColumn, bool assigned)
        {
            //Query PatientLog by physicians and date/time range
            string user = HubSecurity.getLoggedInUserID();
            IQueryable <PatientLog> query;

            //Alter query to show all Assigned entries if selected to do so
            if (!assigned)
            {
                if (sortColumn == null)
                {
                    query = from d in db.PatientLogs
                            where d.ServiceDate >= fromDate &&
                            d.ServiceDate <= toDate &&
                            d.Physician == user
                            orderby d.PatientName, d.ServiceDate
                    select d;
                }
                else
                {
                    query = from d in db.PatientLogs
                            where d.ServiceDate >= fromDate &&
                            d.ServiceDate <= toDate &&
                            d.Physician == user
                            select d;
                }
            }
            else
            {
                if (sortColumn == null)
                {
                    query = from d in db.PatientLogs
                            where d.Physician == user && d.ServiceType == "Assigned"
                            orderby d.PatientName, d.ServiceDate
                    select d;
                }
                else
                {
                    query = from d in db.PatientLogs
                            where d.Physician == user && d.ServiceType == "Assigned"
                            select d;
                }
            }

            //Apply hospital filters if any are provided
            if (selectedHosp.Any())
            {
                query = query.Where(h => selectedHosp.Contains(h.Hospital));
            }

            //Apply service type filters only if not showing assigned view
            if (!assigned)
            {
                if (selectedServ.Any())
                {
                    query = query.Where(s => selectedServ.Contains(s.ServiceType));
                }
            }

            //Apply sorting
            if (direction == GridFilter.SortDirections.Ascending)
            {
                if (sortColumn == "PatientName")
                {
                    query = query.OrderBy(sortColumn + ", ServiceDate");
                }
                else
                {
                    query = query.OrderBy(sortColumn);
                }
            }
            else
            {
                query = query.OrderBy(sortColumn + " DESC");
            }

            List <int> idList = query.Select(p => p.ID).ToList();

            Session["patientLogListOfID"] = idList;

            //Update user preferences if Assigned is not selected
            if (!assigned)
            {
                Dictionary <string, string> filters = new Dictionary <string, string>();
                string hospPref = null;
                foreach (string hosp in selectedHosp)
                {
                    hospPref += hosp + ",";
                }
                if (hospPref != null)
                {
                    hospPref = hospPref.Substring(0, hospPref.Length - 1);
                }
                filters.Add("Hospital", hospPref);

                string servPref = null;
                foreach (string serv in selectedServ)
                {
                    servPref += serv + ",";
                }
                if (servPref != null)
                {
                    servPref = servPref.Substring(0, servPref.Length - 1);
                }
                filters.Add("ServiceType", servPref);

                if (direction == GridFilter.SortDirections.Ascending)
                {
                    filters.Add("SortDirection", "Ascending");
                }
                else
                {
                    filters.Add("SortDirection", "Descending");
                }
                filters.Add("SortColumn", sortColumn);

                DataSubmissions.SavePreferences(db, "PatientLog", "PatientLogIndex", filters);
            }

            return(query);
        }
        //This function returns results from PatientLog table for all PatientLog Views aside from PatientSort
        private IQueryable <BillingIndexPatient> billingIndexQueryGenerator(DateTime fromDate, DateTime toDate, List <string> selectedPhy, List <string> selectedHosp, List <string> selectedServ, List <string> selectedLastNameFilters,
                                                                            bool?notesCompleted, bool?notesCopied, bool?faceSheetEntered, bool?chargePosted, bool?codingCompleted,
                                                                            GridFilter.SortDirections direction, string sortColumn, bool purge)
        {
            //Query billing records
            IQueryable <BillingIndexPatient> query = from d in db.PatientLogs
                                                     join b in db.Billings on d.ID equals b.PLRecord into ds
                                                     from b in ds.DefaultIfEmpty()
                                                     where d.ServiceDate >= fromDate &&
                                                     d.ServiceDate <= toDate && d.ServiceType != "Assigned"
                                                     select new BillingIndexPatient()
            {
                ID             = b.ID, PLRecord = d.ID, PatientName = d.PatientName, DOB = d.DOB, MRN_FIN = d.MRN_FIN, Hospital = d.Hospital, ServiceDate = d.ServiceDate, ServiceType = d.ServiceType, Physician = d.Physician,
                NotesCompleted = b.NotesCompleted, NotesCopied = b.NotesCopied, FaceSheetEntered = b.FaceSheetEntered, ChargePosted = b.ChargePosted, CodingCompleted = b.CodingCompleted, Purge = b.Purge
            };

            if (selectedPhy.Any())
            {
                query = query.Where(h => selectedPhy.Contains(h.Physician));
            }
            //Apply hospital filters if any are provided
            if (selectedHosp.Any())
            {
                query = query.Where(h => selectedHosp.Contains(h.Hospital));
            }

            if (selectedServ.Any())
            {
                query = query.Where(s => selectedServ.Contains(s.ServiceType));
            }

            if (selectedLastNameFilters.Any())
            {
                for (int i = 0; i < selectedLastNameFilters.Count() - 1; i++)
                {
                    query = query.Where(f => f.PatientName.StartsWith(selectedLastNameFilters[i]));
                }
            }

            //Filter by notes completed if necessary
            if (notesCompleted == true)
            {
                query = query.Where(n => n.NotesCompleted == true);
            }
            else if (notesCompleted == false)
            {
                query = query.Where(n => n.NotesCompleted == false);
            }
            //Filter by notes copied if necessary
            if (notesCopied == true)
            {
                query = query.Where(n => n.NotesCopied == true);
            }
            else if (notesCopied == false)
            {
                query = query.Where(n => n.NotesCopied == false);
            }
            //Filter by facesheet entere3d if necessary
            if (faceSheetEntered == true)
            {
                query = query.Where(n => n.FaceSheetEntered == true);
            }
            else if (faceSheetEntered == false)
            {
                query = query.Where(n => n.FaceSheetEntered == false);
            }
            //Filter by coding completed if necessary
            if (codingCompleted == true)
            {
                query = query.Where(n => n.CodingCompleted == true);
            }
            else if (codingCompleted == false)
            {
                query = query.Where(n => n.CodingCompleted == false);
            }
            //Filter by charge posted if necessary
            if (chargePosted == true)
            {
                query = query.Where(n => n.ChargePosted == true);
            }
            else if (chargePosted == false)
            {
                query = query.Where(n => n.ChargePosted == false);
            }

            //Apply sorting (default = PatientName ASC)
            if (direction == GridFilter.SortDirections.Ascending)
            {
                if (sortColumn == "PatientName")
                {
                    query = query.OrderBy(sortColumn + ", ServiceDate");
                }
                else
                {
                    query = query.OrderBy(sortColumn);
                }
            }
            else
            {
                query = query.OrderBy(sortColumn + " " + "DESC");
            }
            if (purge)
            {
                query = query.Where(n => n.Purge == true);
            }

            List <int> plRecordList = query.Select(p => p.PLRecord).ToList();

            foreach (int id in plRecordList)
            {
                bool exists = (from b in db.Billings
                               where b.PLRecord == id
                               select b.ID).Any();
                if (!exists)
                {
                    DataSubmissions.CreateBillingEntry(db, id);
                }
            }

            //Save preferences
            Dictionary <string, string> filters = new Dictionary <string, string>();
            string pref = null;

            foreach (string phy in selectedPhy)
            {
                pref += phy + ",";
            }
            if (pref != null)
            {
                pref = pref.Substring(0, pref.Length - 1);
            }
            filters.Add("Physician", pref);

            pref = null;
            foreach (string hosp in selectedHosp)
            {
                pref += hosp + ",";
            }
            if (pref != null)
            {
                pref = pref.Substring(0, pref.Length - 1);
            }
            filters.Add("Hospital", pref);

            pref = null;
            foreach (string serv in selectedServ)
            {
                pref += serv + ",";
            }
            if (pref != null)
            {
                pref = pref.Substring(0, pref.Length - 1);
            }
            filters.Add("ServiceType", pref);

            pref = null;
            foreach (string lnf in selectedLastNameFilters)
            {
                pref += lnf + ",";
            }
            if (pref != null)
            {
                pref = pref.Substring(0, pref.Length - 1);
            }
            filters.Add("LastNameFilter", pref);

            if (direction == GridFilter.SortDirections.Ascending)
            {
                filters.Add("SortDirection", "Ascending");
            }
            else
            {
                filters.Add("SortDirection", "Descending");
            }
            filters.Add("SortColumn", sortColumn);

            pref = null;
            if (notesCompleted != null)
            {
                pref = notesCompleted.ToString();
            }
            filters.Add("NotesCompleted", pref);

            pref = null;
            if (notesCopied != null)
            {
                pref = notesCopied.ToString();
            }
            filters.Add("NotesCopied", pref);

            pref = null;
            if (faceSheetEntered != null)
            {
                pref = faceSheetEntered.ToString();
            }
            filters.Add("FaceSheetEntered", pref);

            pref = null;
            if (chargePosted != null)
            {
                pref = chargePosted.ToString();
            }
            filters.Add("ChargePosted", pref);

            pref = null;
            if (codingCompleted != null)
            {
                pref = codingCompleted.ToString();
            }
            filters.Add("CodingCompleted", pref);

            if (!purge)
            {
                DataSubmissions.SavePreferences(db, "Billing", "BillingIndex", filters);
            }
            else
            {
                DataSubmissions.SavePreferences(db, "Billing", "BillingPurge", filters);
            }

            List <int> idList = query.Select(p => p.ID).ToList();

            Session["billingListOfID"] = idList;
            return(query);
        }
Exemple #3
0
        private IQueryable <PatientLog> patientAssignmentQueryGenerator(DateTime fromDate, DateTime toDate, List <string> selectedPhy, string selectedHosp, List <string> selectedServ,
                                                                        GridFilter.SortDirections direction, string sortColumn)
        {
            IQueryable <PatientLog> query;

            if (sortColumn == null)
            {
                //Query PatientLog by physicians and date/time range
                query = from d in db.PatientLogs
                        where d.ServiceDate >= fromDate &&
                        d.ServiceDate <= toDate &&
                        selectedHosp == d.Hospital
                        orderby d.PatientName, d.ServiceDate
                select d;
            }
            else
            {
                query = from d in db.PatientLogs
                        where d.ServiceDate >= fromDate &&
                        d.ServiceDate <= toDate &&
                        selectedHosp == d.Hospital
                        select d;

                //Apply sorting
                if (direction == GridFilter.SortDirections.Ascending)
                {
                    if (sortColumn == "PatientName")
                    {
                        query = query.OrderBy(sortColumn + ", ServiceDate");
                    }
                    else
                    {
                        query = query.OrderBy(sortColumn);
                    }
                }
                else
                {
                    query = query.OrderBy(sortColumn + " DESC");
                }
            }

            //Apply hospital filters if any are provided
            if (selectedPhy.Any())
            {
                query = query.Where(h => selectedPhy.Contains(h.Physician));
            }

            if (selectedServ.Any())
            {
                query = query.Where(s => selectedServ.Contains(s.ServiceType));
            }

            //Save preferences
            Dictionary <string, string> filters = new Dictionary <string, string>();
            string pref = null;

            foreach (string phy in selectedPhy)
            {
                pref += phy + ",";
            }
            if (pref != null)
            {
                pref = pref.Substring(0, pref.Length - 1);
            }
            filters.Add("Physician", pref);

            filters.Add("Hospital", selectedHosp);

            pref = null;
            foreach (string serv in selectedServ)
            {
                pref += serv + ",";
            }
            if (pref != null)
            {
                pref = pref.Substring(0, pref.Length - 1);
            }
            filters.Add("ServiceType", pref);

            //if (direction == GridFilter.SortDirections.Ascending)
            //{
            //    filters.Add("SortDirection", "Ascending");
            //}
            //else
            //{
            //    filters.Add("SortDirection", "Descending");
            //}

            DataSubmissions.SavePreferences(db, "PatientAssignment", "PatientAssignmentIndex", filters);

            List <int> idList = query.Select(p => p.ID).ToList();

            Session["patientAssignmentListOfID"] = idList;
            return(query);
        }