Example #1
0
        public static List <Order_Model> Get_All_Orders(ElasticParameterObject sort_parameter, SessionSecurityTicket securityTicket)
        {
            var    TenantID   = securityTicket.TenantID.ToString();
            var    serializer = new JsonNetSerializer();
            var    connection = Elastic_Utils.ElsaticConnection();
            string queryS     = string.Empty;
            var    order_list = new List <Order_Model>();

            if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection))
            {
                var sort_by_second_key = "";
                var sort_by_third_key  = "";

                switch (sort_parameter.sort_by)
                {
                case "treatment_date":
                    sort_by_second_key = "patient_name";
                    sort_by_third_key  = "patient_birthdate";
                    break;

                case "patient_name":
                    sort_by_second_key = "patient_birthdate";
                    sort_by_third_key  = "treatment_date";
                    break;

                default:
                    sort_by_second_key = "treatment_date";
                    sort_by_third_key  = "patient_name";
                    break;
                }

                if (string.IsNullOrEmpty(sort_parameter.search_params) && sort_parameter.filter_by.filter_status == null && string.IsNullOrEmpty(sort_parameter.date_from) && string.IsNullOrEmpty(sort_parameter.date_to))
                {
                    queryS = QueryBuilderOrders.BuildGetOrderQuery(sort_parameter.start_row_index, 100, sort_parameter.sort_by, sort_parameter.isAsc, sort_by_second_key, sort_by_third_key);
                }
                else
                {
                    bool isOverdueParam = false;
                    sort_parameter.search_params = string.IsNullOrEmpty(sort_parameter.search_params) ? "" : sort_parameter.search_params.ToLower();
                    if (sort_parameter.filter_by.filter_status != null)
                    {
                        isOverdueParam = sort_parameter.filter_by.filter_status.Contains("overdue");
                        sort_parameter.filter_by.filter_status = sort_parameter.filter_by.filter_status.Where(i => i != "overdue").ToArray();
                    }

                    if (!isOverdueParam)
                    {
                        queryS = QueryBuilderOrders.BuildGetSearchOrderQuery(sort_parameter.start_row_index, 100, sort_parameter.sort_by, sort_parameter.isAsc, sort_by_second_key, sort_by_third_key, sort_parameter.search_params, sort_parameter.date_from, sort_parameter.date_to, sort_parameter.filter_by);
                    }
                    else
                    {
                        queryS = QueryBuilderOrders.BuildGetSearchOrderQueryWithOverdue(sort_parameter.start_row_index, 100, sort_parameter.sort_by, sort_parameter.isAsc, sort_by_second_key, sort_by_third_key, sort_parameter.search_params, sort_parameter.date_from, sort_parameter.date_to, sort_parameter.filter_by);
                    }
                }

                string searchCommand_Orders = Commands.Search(TenantID, elasticType).Pretty();
                string result = connection.Post(searchCommand_Orders, queryS);
                Dictionary <string, int> PracticeOrdersCount = new Dictionary <string, int>();
                var foundResults_Orders = serializer.ToSearchResult <Order_Model>(result);
                try
                {
                    foreach (var item in foundResults_Orders.Documents)
                    {
                        Order_Model order_model = new Order_Model();
                        order_model.case_id              = item.case_id;
                        order_model.delivery_time_from   = item.delivery_time_from;
                        order_model.delivery_time_string = item.delivery_time_string;
                        order_model.delivery_time_to     = item.delivery_time_to;
                        order_model.diagnose             = item.diagnose;
                        order_model.drug           = item.drug;
                        order_model.id             = item.id;
                        order_model.is_orders_drug = item.is_orders_drug;
                        order_model.localization   = item.localization;
                        order_model.order_modification_timestamp        = item.order_modification_timestamp;
                        order_model.order_modification_timestamp_string = item.order_modification_timestamp_string;
                        order_model.patient_id                     = item.patient_id;
                        order_model.patient_birthdate              = item.patient_birthdate;
                        order_model.patient_birthdate_string       = item.patient_birthdate_string;
                        order_model.patient_name                   = item.patient_name;
                        order_model.practice_id                    = item.practice_id;
                        order_model.status_drug_order              = item.status_drug_order;
                        order_model.treatment_date                 = item.treatment_date;
                        order_model.treatment_date_day_month       = item.treatment_date.ToString("dd.MM.yyyy");
                        order_model.treatment_date_month_year      = item.treatment_date_month_year;
                        order_model.treatment_doctor_name          = item.treatment_doctor_name;
                        order_model.treatment_doctor_practice_name = item.treatment_doctor_practice_name;
                        order_model.delivery_date_month            = item.treatment_date.ToString("dd.MM.");
                        order_model.pharmacy_id                    = item.pharmacy_id;
                        order_model.pharmacy_name                  = item.pharmacy_name;

                        switch (sort_parameter.sort_by)
                        {
                        case "treatment_date": order_model.group_name = order_model.treatment_date.ToString("MMMM yyyy", new System.Globalization.CultureInfo("de", true)).ToUpper(); break;

                        case "patient_name": order_model.group_name = item.patient_name.Substring(0, 1).ToUpper(); break;

                        case "diagnose": order_model.group_name = item.diagnose; break;

                        case "drug": order_model.group_name = item.drug; break;

                        case "localization": order_model.group_name = item.localization; break;

                        case "treatment_doctor_name": order_model.group_name = item.treatment_doctor_practice_name; break;

                        case "status_drug_order": order_model.group_name = item.status_drug_order; break;

                        default: order_model.group_name = item.treatment_date_month_year; break;
                        }

                        order_list.Add(order_model);
                    }
                }
                catch (Exception ex) { }
            }
            return(order_list);
        }