Example #1
0
        public static List <Practice_Doctors_Model> Get_Doctors_for_PracticeIDList(Practice_Parameter parameter, SessionSecurityTicket securityTicket)
        {
            //opdoc tenant
            var    TenantID    = securityTicket.TenantID.ToString();
            var    serializer  = new JsonNetSerializer();
            var    connection  = Elastic_Utils.ElsaticConnection();
            string queryS      = string.Empty;
            string elasticType = "user";

            List <Practice_Doctors_Model> modelForSendL = new List <Practice_Doctors_Model>();

            if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection))
            {
                var query = new QueryBuilder <Practice_Doctors_Model>()
                            .From(parameter.start_row_index)
                            .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type)
                                                                                                                   .Value("doctor"))
                                                                                                       .Term(term2 => term2.Field(id => id.practice_for_doctor_id)
                                                                                                             .Value(parameter.practice_id.ToString())))))))
                            .Sort(s => s
                                  .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc)
                                  .Field("name_untouched", parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc));

                queryS = query.BuildBeautified();

                string searchCommand_Doctors_PracticeID = Commands.Search(TenantID, elasticType).Pretty();
                string result = connection.Post(searchCommand_Doctors_PracticeID, queryS);

                var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result);
                foreach (var item in foundResults_Doctors.Documents)
                {
                    if (parameter.sortfield.Equals("bank_untouched"))
                    {
                        item.group_name = string.IsNullOrEmpty(item.bank) ? "-" : item.bank;
                    }
                    else if (parameter.sortfield.Equals("type"))
                    {
                        item.group_name = item.type.Equals("Doctor") ? "Arzt" : "Praxis";
                    }
                    else if (parameter.sortfield.Equals("account_status"))
                    {
                        item.group_name = item.account_status;
                    }
                    else if (parameter.sortfield.Equals("contract"))
                    {
                        item.group_name = item.contract.ToString();
                    }
                    else
                    {
                        item.group_name = string.IsNullOrEmpty(item.name_untouched) ? "-" : item.name_untouched.Substring(0, 1).ToUpper();
                    }

                    modelForSendL.Add(item);
                }
            }
            return(modelForSendL);
        }
Example #2
0
        public static List <Practice_Doctors_Model> Get_AC_Doctors_and_Practices(Practice_Parameter parameter, SessionSecurityTicket securityTicket)
        {
            var    TenantID   = securityTicket.TenantID.ToString();
            var    serializer = new JsonNetSerializer();
            var    connection = Elastic_Utils.ElsaticConnection();
            string queryS     = string.Empty;

            List <Practice_Doctors_Model> modelForSendL = new List <Practice_Doctors_Model>();

            if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection))
            {
                var query = new QueryBuilder <Practice_Doctors_Model>()
                            .Query(q => q
                                   .Bool(b => b
                                         .Should(sh => sh.Bool(tb => tb.Should(s => s.Bool(tbt => tbt.Must(m => m
                                                                                                           .Term(tr => tr.Field("practice_for_doctor_id").Value(parameter.practice_id.ToString()))
                                                                                                           .Term(tr => tr.Field("account_status").Value("temp"))
                                                                                                           )).Bool(ab => ab.Must(mm => mm.Term(tt => tt.Field("account_status").Value("aktiv"))))
                                                                               ).MinimumNumberShouldMatch(1))
                                                 .Match(m => m
                                                        .Field("name")
                                                        .Query(parameter.search_criteria.ToLower()).Operator(PlainElastic.Net.Operator.AND)
                                                        )
                                                 .Match(m => m
                                                        .Field("bsnr_lanr")
                                                        .Query(parameter.search_criteria.ToLower()).Operator(PlainElastic.Net.Operator.AND)
                                                        )
                                                 ).MinimumNumberShouldMatch(2)
                                         )
                                   ).Sort(s => s.Field(sr => sr.type, PlainElastic.Net.SortDirection.asc)
                                          .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc))
                            .From(0)
                            .Size(100);

                queryS = query.BuildBeautified();
                string searchCommand_Doc_Practices = Commands.Search(TenantID, elasticType).Pretty();
                string result = connection.Post(searchCommand_Doc_Practices, queryS);
                Dictionary <string, int> PracticeDoctorsCount = new Dictionary <string, int>();
                var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result);
                try
                {
                    foreach (var item in foundResults_Doctors.Documents)
                    {
                        item.type = item.type.Equals("Practice") ? "LABEL_PRACTICES" : "LABEL_DOCTORS";
                    }

                    modelForSendL = foundResults_Doctors.Documents.ToList();
                }
                catch (Exception ex)
                {
                    var a = ex.StackTrace;
                }
            }
            return(modelForSendL);
        }
Example #3
0
        public HttpResponseMessage GetDoctorsforPracticeID(Practice_Parameter Parameter)
        {
            TransactionalInformation      transaction = new TransactionalInformation();
            List <Practice_Doctors_Model> data        = docDataService.GetDoctorsForPracticeID(Parameter, connectionString, SessionToken, out transaction);

            if (transaction.ReturnStatus)
            {
                return(Request.CreateResponse(HttpStatusCode.OK, data));
            }

            return(Request.CreateResponse(HttpStatusCode.BadRequest));
        }
        public static List <Practice_Doctors_Model> Get_Doctors_That_Work_In_Practice_for_PracticeID(Practice_Parameter parameter, SessionSecurityTicket userSecurityTicket)
        { //opdoc tenant
            var    TenantID    = userSecurityTicket.TenantID.ToString();
            var    serializer  = new JsonNetSerializer();
            var    connection  = Elastic_Utils.ElsaticConnection();
            string queryS      = string.Empty;
            string elasticType = "user";

            List <Practice_Doctors_Model> modelForSendL = new List <Practice_Doctors_Model>();

            if (Elastic_Utils.IfIndexOrTypeExists(TenantID, connection) && Elastic_Utils.IfIndexOrTypeExists(TenantID + "/" + elasticType, connection))
            {
                if (string.IsNullOrEmpty(parameter.role))
                {
                    if (parameter.account_status.HasValue)
                    {
                        var status = parameter.account_status.Value ? "aktiv" : "inaktiv";
                        var query  = new QueryBuilder <Practice_Doctors_Model>()
                                     .From(0)
                                     .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type)
                                                                                                                            .Value("doctor"))
                                                                                                                .Term(term2 => term2.Field(id => id.practice_for_doctor_id)
                                                                                                                      .Value(parameter.practice_id.ToString()))
                                                                                                                .Term(term2 => term2.Field(st => st.account_status)
                                                                                                                      .Value(status)))))));

                        queryS = query.BuildBeautified();
                    }
                    else
                    {
                        var query = new QueryBuilder <Practice_Doctors_Model>()
                                    .From(0)
                                    .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type)
                                                                                                                           .Value("doctor"))
                                                                                                               .Term(term2 => term2.Field(id => id.practice_for_doctor_id)
                                                                                                                     .Value(parameter.practice_id.ToString())))))));

                        queryS = query.BuildBeautified();
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(parameter.search_criteria))
                    {
                        var query = new QueryBuilder <Practice_Doctors_Model>()
                                    .From(0)
                                    .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type)
                                                                                                                           .Value("doctor"))
                                                                                                               .Term(term2 => term2.Field(id => id.practice_for_doctor_id)
                                                                                                                     .Value(parameter.practice_id.ToString()))
                                                                                                               .Term(term2 => term2.Field(role => role.role)
                                                                                                                     .Value(parameter.role)))
                                                                                                   .Should(s => s.Term(term => term.Field(name => name.name).Value(parameter.search_criteria.ToLower())))))))
                                    .Sort(s => s
                                          .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc));

                        queryS = query.BuildBeautified();
                    }
                    else
                    {
                        var query = new QueryBuilder <Practice_Doctors_Model>()
                                    .From(0)
                                    .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type)
                                                                                                                           .Value("doctor"))
                                                                                                               .Term(term2 => term2.Field(id => id.practice_for_doctor_id)
                                                                                                                     .Value(parameter.practice_id.ToString()))
                                                                                                               .Term(term2 => term2.Field(role => role.role)
                                                                                                                     .Value(parameter.role)))))))
                                    .Sort(s => s
                                          .Field(parameter.sortfield, parameter.ascending ? PlainElastic.Net.SortDirection.asc : PlainElastic.Net.SortDirection.desc));

                        queryS = query.BuildBeautified();
                    }
                }

                string searchCommand_Doctors_PracticeID = Commands.Search(TenantID, elasticType).Pretty();
                string result = connection.Post(searchCommand_Doctors_PracticeID, queryS);

                var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result);

                modelForSendL = foundResults_Doctors.Documents.ToList();
            }

            return(modelForSendL);
        }
        public static List <Practice_Doctors_Model> Get_Doctors_for_PracticeID_with_Bank_Account_Inheritance(Practice_Parameter parameter, SessionSecurityTicket userSecurityTicket)
        { //opdoc tenant
            var    TenantID   = userSecurityTicket.TenantID.ToString();
            var    serializer = new JsonNetSerializer();
            var    connection = Elastic_Utils.ElsaticConnection();
            string queryS     = string.Empty;

            var query = new QueryBuilder <Practice_Doctors_Model>()
                        .From(0)
                        .Size(100).Query(q => q.Filtered(f => f.Filter(flt => flt.Bool(b => b.Must(m => m.Term(t => t.Field(type => type.type)
                                                                                                               .Value("doctor"))
                                                                                                   .Term(term2 => term2.Field(id => id.practice_for_doctor_id)
                                                                                                         .Value(parameter.practice_id.ToString()))
                                                                                                   .Term(term3 => term3.Field(ia => ia.bank_info_inherited)
                                                                                                         .Value(true.ToString()))
                                                                                                   .Term(term4 => term4.Field(fi => fi.bank_id).Value(parameter.practice_bank_account_id)))))));

            queryS = query.BuildBeautified();

            string searchCommand_Doctors_PracticeID = Commands.Search(TenantID, "user").Pretty();
            string result = connection.Post(searchCommand_Doctors_PracticeID, queryS);

            var foundResults_Doctors = serializer.ToSearchResult <Practice_Doctors_Model>(result);

            return(foundResults_Doctors.Documents.ToList());
        }