Example #1
0
        public async Task <List <DomainId>?> SearchAsync(IAppEntity app, TextQuery query, SearchScope scope)
        {
            var(queryText, filter) = query;

            if (string.IsNullOrWhiteSpace(queryText))
            {
                return(EmptyResults);
            }

            if (filter == null)
            {
                return(await SearchByAppAsync(queryText, app, scope, Limit));
            }
            else if (filter.Must)
            {
                return(await SearchBySchemaAsync(queryText, app, filter, scope, Limit));
            }
            else
            {
                var(bySchema, byApp) = await AsyncHelper.WhenAll(
                    SearchBySchemaAsync(queryText, app, filter, scope, LimitHalf),
                    SearchByAppAsync(queryText, app, scope, LimitHalf));

                return(bySchema.Union(byApp).Distinct().ToList());
            }
        }
Example #2
0
        public async Task <List <DomainId> > SearchAsync(IAppEntity app, TextQuery query, SearchScope scope,
                                                         CancellationToken ct = default)
        {
            Guard.NotNull(app, nameof(app));
            Guard.NotNull(query, nameof(query));

            var parsed = queryParser.Parse(query.Text);

            if (parsed == null)
            {
                return(null);
            }

            var result = new List <(DomainId Id, double Score)>();

            if (query.RequiredSchemaIds?.Count > 0)
            {
                await SearchBySchemaAsync(result, parsed.Text, query.RequiredSchemaIds, scope, query.Take, 1, ct);
            }
            else if (query.PreferredSchemaId == null)
            {
                await SearchByAppAsync(result, parsed.Text, app, scope, query.Take, 1, ct);
            }
            else
            {
                var halfTake = query.Take / 2;

                var schemaIds = Enumerable.Repeat(query.PreferredSchemaId.Value, 1);

                await SearchBySchemaAsync(result, parsed.Text, schemaIds, scope, halfTake, 1.1, ct);
                await SearchByAppAsync(result, parsed.Text, app, scope, halfTake, 1, ct);
            }

            return(result.OrderByDescending(x => x.Score).Select(x => x.Id).Distinct().ToList());
        }
Example #3
0
        public async Task <SearchResults> SearchAsync(string query, Context context)
        {
            var result = new SearchResults();

            var searchFilter = await CreateSearchFilterAsync(context);

            if (searchFilter == null)
            {
                return(result);
            }

            var textQuery = new TextQuery($"{query}~", searchFilter);

            var ids = await contentTextIndexer.SearchAsync(context.App, textQuery, context.Scope());

            if (ids == null || ids.Count == 0)
            {
                return(result);
            }

            var appId = context.App.NamedId();

            var contents = await contentQuery.QueryAsync(context, Q.Empty.WithIds(ids));

            foreach (var content in contents)
            {
                var url = urlGenerator.ContentUI(appId, content.SchemaId, content.Id);

                var name = FormatName(content, context.App.Languages.Master);

                result.Add(name, SearchResultType.Content, url, content.SchemaDisplayName);
            }

            return(result);
        }
        protected void BtnQuery_Click(object sender, DirectEventArgs e)
        {
            string sql = "SELECT a.pif_ic, b.apptst_patrefid, b.apptst_flr, b.apptst_sec, b.apptst_bed, b.apptst_mactyp, b.apptst_wktyp, b.apptst_daytyp, b.apptst_timetyp FROM pat_info a ";

            sql += "LEFT JOIN appointment_setup b ON a.pif_ic=b.apptst_patic ";
            sql += "WHERE pif_mrn='" + TextQuery.Text + "' ";
            sql += "AND b.apptst_flr='" + sFLOOR.Text + "' ";
            sql += "AND b.apptst_timetyp='" + sTIME.Text + "' ";
            sql += "AND b.apptst_daytyp='" + sWEEK.Text + "'";
            DataTable dt = db.Query(sql);

            if (dt.Rows.Count > 0)
            {
                string pid     = dt.Rows[0]["pif_ic"].ToString();
                string pname   = dt.Rows[0]["apptst_patrefid"].ToString();
                string bedno   = dt.Rows[0]["apptst_bed"].ToString();
                string mactype = dt.Rows[0]["apptst_mactyp"].ToString();
                string area    = dt.Rows[0]["apptst_sec"].ToString();
                Common._NotificationShow("开始报到");
                string url = "Patient_detail.aspx?personid=" + pid + "&patient_name=" + pname + "&machine_type=" + mactype + "&floor=" + sFLOOR.Text;
                url += "&area=" + area + "&time=" + sTIME.Text + "&bedno=" + bedno + "&daytyp=" + sWEEK.Text + "&sdate=" + sDATE.Text;
                X.Redirect(url);
            }
            else
            {
                Common._NotificationShow("查无此人或已逾时" + TextQuery.Text);
            }
            TextQuery.Text = "";
            TextQuery.Focus(false, 100);
        }
        protected new void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                if (Session["USER_NAME"] == null || Session["USER_RIGHT"] == null)
                {
                    X.Redirect("../login.aspx");
                }
                else
                {
                    if (Session["sDATE"] == null)
                    {
                        DateTime now = DateTime.Now;
                        sDATE.Text = now.ToString("yyyy-MM-dd");
                    }
                    else
                    {
                        sDATE.Text = Session["sDATE"].ToString();
                    }
                    GetWeek();
                    Label1.Text = sDATE.Text + " " + txtWEEK.Text;

                    Show_TimeSec();   //顯示時段
                    Show_FloorArea(); //顯示樓層,床區
                    TextQuery.Focus(true, 100);
                }
            }
        }
Example #6
0
        public virtual async Task <List <DomainId>?> SearchAsync(IAppEntity app, TextQuery query, SearchScope scope,
                                                                 CancellationToken ct = default)
        {
            Guard.NotNull(app, nameof(app));
            Guard.NotNull(query, nameof(query));

            var(search, take) = query;

            if (string.IsNullOrWhiteSpace(search))
            {
                return(null);
            }

            var result = new List <(DomainId Id, double Score)>();

            if (query.RequiredSchemaIds?.Count > 0)
            {
                await SearchBySchemaAsync(result, search, app, query.RequiredSchemaIds, scope, take, 1, ct);
            }
            else if (query.PreferredSchemaId == null)
            {
                await SearchByAppAsync(result, search, app, scope, take, 1, ct);
            }
            else
            {
                var halfBucket = take / 2;

                var schemaIds = Enumerable.Repeat(query.PreferredSchemaId.Value, 1);

                await SearchBySchemaAsync(result, search, app, schemaIds, scope, halfBucket, 1.1, ct);
                await SearchByAppAsync(result, search, app, scope, halfBucket, 1, ct);
            }

            return(result.OrderByDescending(x => x.Score).Select(x => x.Id).Distinct().ToList());
        }
        public async Task <string> SearchTextQueryonApp(string cacheName, string searchText)
        {
            try
            {
                var repeat = "";
                do
                {
                    var cache = await GetIConstructionCacheStore(cacheName);

                    var textquery = new TextQuery(typeof(CommonConstruction), "Metric");
                    var cursor    = cache.Query(textquery).GetAll();
                    foreach (var cacheEntry in cursor)
                    {
                        Console.WriteLine(cacheEntry.Value);
                    }
                    Console.WriteLine("do you want to repeat(y/n)");
                    repeat = Console.ReadLine();
                } while (repeat == "y");


                //var sqlquery = new SqlFieldsQuery("select uuid from CommonConstruction");
                //var cursor = cache.Query(sqlquery).GetAll();
                Console.WriteLine("End of query");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            string res = "";

            return(await Task.FromResult(res));
        }
        public override int GetHashCode()
        {
            int hashCode = 1871698487;

            if (SortedAttributeQuery != null)
            {
                hashCode += SortedAttributeQuery.GetHashCode();
            }

            if (ExactQuery != null)
            {
                hashCode += ExactQuery.GetHashCode();
            }

            if (SetQuery != null)
            {
                hashCode += SetQuery.GetHashCode();
            }

            if (PrefixQuery != null)
            {
                hashCode += PrefixQuery.GetHashCode();
            }

            if (RangeQuery != null)
            {
                hashCode += RangeQuery.GetHashCode();
            }

            if (TextQuery != null)
            {
                hashCode += TextQuery.GetHashCode();
            }

            if (ItemsForTaxQuery != null)
            {
                hashCode += ItemsForTaxQuery.GetHashCode();
            }

            if (ItemsForModifierListQuery != null)
            {
                hashCode += ItemsForModifierListQuery.GetHashCode();
            }

            if (ItemsForItemOptionsQuery != null)
            {
                hashCode += ItemsForItemOptionsQuery.GetHashCode();
            }

            if (ItemVariationsForItemOptionValuesQuery != null)
            {
                hashCode += ItemVariationsForItemOptionValuesQuery.GetHashCode();
            }

            return(hashCode);
        }
        protected void Show_Checkin()
        {
            sDATE.Text = DateTime.Now.ToString("yyyy-MM-dd");
            GetWeek();
            Label_Date.Text = sDATE.Text + " " + txtWEEK.Text;

            Show_TimeSec();   //顯示時段
            Show_FloorArea(); //顯示樓層,床區
            FormPanel2.Enabled = true;
            TextQuery.Focus(true, 100);
        }
Example #10
0
        public void TestTextQuery([Values(true, false)] bool loc, [Values(true, false)] bool keepBinary)
        {
            var cache = Cache();

            // 1. Populate cache with data, calculating expected count in parallel.
            var exp = PopulateCache(cache, loc, MaxItemCnt, x => x.ToString().StartsWith("1"));

            // 2. Validate results.
            var qry = new TextQuery(typeof(QueryPerson), "1*", loc);

            ValidateQueryResults(cache, qry, exp, keepBinary);
        }
 protected void ToString(List <string> toStringOutput)
 {
     toStringOutput.Add($"SortedAttributeQuery = {(SortedAttributeQuery == null ? "null" : SortedAttributeQuery.ToString())}");
     toStringOutput.Add($"ExactQuery = {(ExactQuery == null ? "null" : ExactQuery.ToString())}");
     toStringOutput.Add($"SetQuery = {(SetQuery == null ? "null" : SetQuery.ToString())}");
     toStringOutput.Add($"PrefixQuery = {(PrefixQuery == null ? "null" : PrefixQuery.ToString())}");
     toStringOutput.Add($"RangeQuery = {(RangeQuery == null ? "null" : RangeQuery.ToString())}");
     toStringOutput.Add($"TextQuery = {(TextQuery == null ? "null" : TextQuery.ToString())}");
     toStringOutput.Add($"ItemsForTaxQuery = {(ItemsForTaxQuery == null ? "null" : ItemsForTaxQuery.ToString())}");
     toStringOutput.Add($"ItemsForModifierListQuery = {(ItemsForModifierListQuery == null ? "null" : ItemsForModifierListQuery.ToString())}");
     toStringOutput.Add($"ItemsForItemOptionsQuery = {(ItemsForItemOptionsQuery == null ? "null" : ItemsForItemOptionsQuery.ToString())}");
     toStringOutput.Add($"ItemVariationsForItemOptionValuesQuery = {(ItemVariationsForItemOptionValuesQuery == null ? "null" : ItemVariationsForItemOptionValuesQuery.ToString())}");
 }
        /// <summary>
        /// Check text query.
        /// </summary>
        /// <param name="cnt">Amount of cache entries to create.</param>
        /// <param name="loc">Local query flag.</param>
        /// <param name="keepBinary">Keep binary flag.</param>
        private void CheckTextQuery(int cnt, bool loc, bool keepBinary)
        {
            var cache = Cache();

            // 1. Populate cache with data, calculating expected count in parallel.
            var exp = PopulateCache(cache, loc, cnt, x => x.ToString().StartsWith("1"));

            // 2. Validate results.
            TextQuery qry = loc ? new TextQuery(typeof(QueryPerson), "1*", true) :
                            new TextQuery(typeof(QueryPerson), "1*");

            ValidateQueryResults(cache, qry, exp, keepBinary);
        }
        protected void BtnQuery_Click(object sender, DirectEventArgs e)
        {
            string sql = "SELECT a.pif_ic, b.apptst_patrefid, b.apptst_flr, b.apptst_sec, b.apptst_bed, b.apptst_mactyp, b.apptst_wktyp, b.apptst_daytyp, b.apptst_timetyp FROM pat_info a ";

            sql += "LEFT JOIN appointment_setup b ON a.pif_ic=b.apptst_patic ";
            sql += "WHERE pif_mrn='" + TextQuery.Text + "' ";
            sql += "AND b.apptst_flr='" + sFLOOR.Text + "' ";
            sql += "AND b.apptst_timetyp='" + sTIME.Text + "' ";
            sql += "AND b.apptst_daytyp='" + sWEEK.Text + "'";
            DataTable dt = db.Query(sql);

            if (dt.Rows.Count > 0)
            {
                string pid     = dt.Rows[0]["pif_ic"].ToString();
                string pname   = dt.Rows[0]["apptst_patrefid"].ToString();
                string bedno   = dt.Rows[0]["apptst_bed"].ToString();
                string mactype = dt.Rows[0]["apptst_mactyp"].ToString();
                string area    = dt.Rows[0]["apptst_sec"].ToString();
                Common._NotificationShow("开始报到");
                string url = "checkin/Patient_detail.aspx?personid=" + pid + "&patient_name=" + pname + "&machine_type=" + mactype + "&floor=" + sFLOOR.Text;
                url += "&area=" + area + "&time=" + sTIME.Text + "&bedno=" + bedno + "&daytyp=" + sWEEK.Text + "&sdate=" + sDATE.Text;

                _PAT_IC            = pid;
                Session["PAT_IC"]  = pid;
                _PIF_NAME          = pname;
                _USER_NAME         = Session["USER_NAME"].ToString();
                FormPanel2.Enabled = false;

                Panel_Loader1.Hidden = false;
                Panel_Loader2.Hidden = true;
                Panel_Loader3.Hidden = true;
                Store istore = grdBED_LIST.GetStore();
                istore.RemoveAll();

                Panel_Loader1.Loader.SuspendScripting();
                Panel_Loader1.Loader.Url            = url;
                Panel_Loader1.Loader.DisableCaching = true;
                Panel_Loader1.LoadContent();
                Refreach_Label();
            }
            else
            {
                Common._NotificationShow("查无此人或已逾时" + TextQuery.Text);
            }
            TextQuery.Text = "";
            TextQuery.Focus(false, 100);
        }
Example #14
0
        public async Task <List <DomainId>?> SearchAsync(IAppEntity app, TextQuery query, SearchScope scope)
        {
            Guard.NotNull(app, nameof(app));
            Guard.NotNull(query, nameof(query));

            var queryText = query.Text;

            if (string.IsNullOrWhiteSpace(queryText))
            {
                return(null);
            }

            var isFuzzy = queryText.EndsWith("~", StringComparison.OrdinalIgnoreCase);

            if (isFuzzy)
            {
                queryText = queryText[..^ 1];
Example #15
0
        protected IndexOperation SearchText(List <DomainId>?expected, string text, SearchScope target = SearchScope.All)
        {
            return(async p =>
            {
                var query = new TextQuery(text, TextFilter.ShouldHaveSchemas(schemaId.Id));

                var result = await p.TextIndex.SearchAsync(app, query, target);

                if (expected != null)
                {
                    result.Should().BeEquivalentTo(expected.ToHashSet());
                }
                else
                {
                    result.Should().BeEmpty();
                }
            });
        }
Example #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                if (Session["USER_NAME"] == null || Session["USER_RIGHT"] == null)
                {
                    X.Redirect("index.aspx");
                }
                else
                {
                    if (Session["USER_RIGHT"].ToString() != "DC" && Session["USER_RIGHT"].ToString() != "DH")
                    {
                        Session["USER_RIGHT"] = "";
                        X.Redirect("index.aspx");
                    }
                }


                if (Session["sDATE"] == null)
                {
                    if (Request.QueryString["sdate"] != null)
                    {
                        txtTIME.Text = Request.QueryString["sdate"];
                    }
                    else
                    {
                        DateTime now = DateTime.Now;
                        txtTIME.Text = now.ToString("yyyy-MM-dd");
                    }
                    sDATE.Text = DateTime.Parse(txtTIME.Text).ToString("yyyy-MM-dd");
                }
                else
                {
                    sDATE.Text   = Session["sDATE"].ToString();
                    txtTIME.Text = sDATE.Text;
                }

                //txtTIME日期
                Show_TimeSec();   //顯示時段
                //Show_Week(); //顯示星期
                Show_FloorArea(); //顯示樓層,床區
                TextQuery.Focus(true, 100);
            }
        }
Example #17
0
        /// <summary>
        /// Adds <see cref="TextQuery"/> to query.
        /// </summary>
        /// <param name="wrapper">Query wrapper.</param>
        /// <param name="query">Query object.</param>
        /// <param name="paths">Expression path to querying field.</param>
        public static QueryWrapper <T> Text <T>(this QueryWrapper <T> wrapper, TextQuery query, params Expression <Func <T, object> >[] paths) where T : class
        {
            if (query == null || !query.IsSpecified)
            {
                return(wrapper);
            }

            return(wrapper.AddQuery(descriptor =>
            {
                var container = null as QueryContainer;

                foreach (var value in query.Values)
                {
                    if (string.IsNullOrEmpty(value))
                    {
                        continue;
                    }

                    var c = descriptor.SimpleQueryString(q => q.Query(value).Fields(f => paths.Aggregate(f, (ff, p) => ff.Field(p))).DefaultOperator(query.Mode == QueryMatchMode.All ? Operator.And : Operator.Or));

                    if (container == null)
                    {
                        container = c;
                    }
                    else
                    {
                        switch (query.Mode)
                        {
                        case QueryMatchMode.Any:
                            container |= c;
                            break;

                        case QueryMatchMode.All:
                            container &= c;
                            break;
                        }
                    }
                }

                return container;
            }));
        }
        protected async Task SearchText(List <DomainId>?expected, string text, SearchScope target = SearchScope.All)
        {
            var query = new TextQuery(text, 1000)
            {
                RequiredSchemaIds = new List <DomainId> {
                    schemaId.Id
                }
            };

            var result = await Sut.TextIndex.SearchAsync(app, query, target);

            if (expected != null)
            {
                result.Should().BeEquivalentTo(expected.ToHashSet());
            }
            else
            {
                result.Should().BeEmpty();
            }
        }
Example #19
0
        private async Task TransformFilterAsync(ClrQuery query, Context context, ISchemaEntity?schema)
        {
            if (query.Filter != null && schema != null)
            {
                query.Filter = await GeoQueryTransformer.TransformAsync(query.Filter, context, schema, textIndex);
            }

            if (!string.IsNullOrWhiteSpace(query.FullText))
            {
                if (schema == null)
                {
                    throw new InvalidOperationException();
                }

                var textQuery = new TextQuery(query.FullText, 1000)
                {
                    PreferredSchemaId = schema.Id
                };

                var fullTextIds = await textIndex.SearchAsync(context.App, textQuery, context.Scope());

                var fullTextFilter = ClrFilter.Eq("id", "__notfound__");

                if (fullTextIds?.Any() == true)
                {
                    fullTextFilter = ClrFilter.In("id", fullTextIds.Select(x => x.ToString()).ToList());
                }

                if (query.Filter != null)
                {
                    query.Filter = ClrFilter.And(query.Filter, fullTextFilter);
                }
                else
                {
                    query.Filter = fullTextFilter;
                }

                query.FullText = null;
            }
        }
        public async Task <string> SearchRecordAsync(string cacheName, string searchText)
        {
            try
            {
                var cache = await GetICustomStoreCache(cacheName, "");

                var textquery = new TextQuery("Student", "Good");
                var cursor    = cache.Query(textquery).GetAll();
                foreach (var cacheEntry in cursor)
                {
                    Console.WriteLine(cacheEntry.Value);
                }
                Console.WriteLine("End of query");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            string res = "";

            return(await Task.FromResult(res));
        }
        public override bool Equals(object obj)
        {
            if (obj == null)
            {
                return(false);
            }

            if (obj == this)
            {
                return(true);
            }

            return(obj is CatalogQuery other &&
                   ((SortedAttributeQuery == null && other.SortedAttributeQuery == null) || (SortedAttributeQuery?.Equals(other.SortedAttributeQuery) == true)) &&
                   ((ExactQuery == null && other.ExactQuery == null) || (ExactQuery?.Equals(other.ExactQuery) == true)) &&
                   ((SetQuery == null && other.SetQuery == null) || (SetQuery?.Equals(other.SetQuery) == true)) &&
                   ((PrefixQuery == null && other.PrefixQuery == null) || (PrefixQuery?.Equals(other.PrefixQuery) == true)) &&
                   ((RangeQuery == null && other.RangeQuery == null) || (RangeQuery?.Equals(other.RangeQuery) == true)) &&
                   ((TextQuery == null && other.TextQuery == null) || (TextQuery?.Equals(other.TextQuery) == true)) &&
                   ((ItemsForTaxQuery == null && other.ItemsForTaxQuery == null) || (ItemsForTaxQuery?.Equals(other.ItemsForTaxQuery) == true)) &&
                   ((ItemsForModifierListQuery == null && other.ItemsForModifierListQuery == null) || (ItemsForModifierListQuery?.Equals(other.ItemsForModifierListQuery) == true)) &&
                   ((ItemsForItemOptionsQuery == null && other.ItemsForItemOptionsQuery == null) || (ItemsForItemOptionsQuery?.Equals(other.ItemsForItemOptionsQuery) == true)) &&
                   ((ItemVariationsForItemOptionValuesQuery == null && other.ItemVariationsForItemOptionValuesQuery == null) || (ItemVariationsForItemOptionValuesQuery?.Equals(other.ItemVariationsForItemOptionValuesQuery) == true)));
        }
Example #22
0
        public static QueryWrapper <T> Text <T>(this QueryWrapper <T> wrapper,
                                                TextQuery query,
                                                Expression <Func <T, object> > path = null) where T : class
        => wrapper.QueryInternal(
            query,
            descriptor =>
        {
            var container = null as QueryContainer;

            foreach (var value in query.Values)
            {
                /*switch (query.Mode)
                 * {
                 *  default:*/

                var c = descriptor.SimpleQueryString(q =>
                {
                    // path = null signifies all fields
                    if (path != null)
                    {
                        q.Fields(f => f.Field(path));
                    }

                    q.Query(value);

                    return(q);
                });

/*                              break;
 *
 *                          case TextQueryMode.Match:
 *                              if (paths.Length == 1)
 *                                  c = descriptor.Match(q => q.Field(paths[0])
 *                                                             .Query(value));
 *                              else
 *                                  c = descriptor.MultiMatch(q => q.Fields(paths)
 *                                                                  .Query(value));
 *
 *                              break;
 *
 *                          case TextQueryMode.Phrase:
 *                              c = descriptor.MatchPhrase(q => q.Field(paths[0]) // always use first
 *                                                               .Query(value));
 *
 *                              break;
 *                      }*/

                if (container == null)
                {
                    container = c;
                }
                else
                {
                    switch (query.Mode)
                    {
                    default:
                        container &= c;
                        break;

                    case QueryMatchMode.Any:
                        container |= c;
                        break;
                    }
                }
            }

            return(container);
        });
        protected void FILL_BED()
        {
            //Show_Week();
            GetWeek();
            string sSQL = "";

            sSQL  = "SELECT M.mac_sec AS AREA, M.mac_bedno AS BED_NO, ";
            sSQL += "CASE ";
            sSQL += "WHEN EXISTS(SELECT R.cln1_col26 FROM clinical1_nurse R WHERE A.apptst_patic=R.cln1_patic AND R.cln1_diadate='" + sDATE.Text + "') ";
            sSQL += "THEN (SELECT R.cln1_col26 FROM clinical1_nurse R WHERE A.apptst_patic=R.cln1_patic AND R.cln1_diadate='" + sDATE.Text + "') ";
            sSQL += "ELSE (SELECT cln1_col2 FROM clinical1_doc_henan WHERE cln1_patic=A.apptst_patic AND cln1_diadate='base') ";
            sSQL += "END AS MAC_MODEL, ";
            sSQL += "M.mac_typ AS MAC_TYPE, ";
            sSQL += "case UPPER(M.mac_status) when 'Y' then '正常' when 'N' then '保养中' end AS MAC_STATE, ";
            sSQL += "P.pif_name AS PERSON_NAME, A.apptst_patic AS PERSON_ID, ";
            sSQL += "case P.pif_sex when 'M' then '男' when 'F' then '女' end as PERSON_SEX, ";
            sSQL += "P.pif_height AS PERSON_HEIGHT, ";
            sSQL += "N.cln1_col5 AS PERSON_WEIGHT, ";
            sSQL += "IF(STRCMP(N.cln1_col5,''), 'V', '') as PERSON_STATE ";
            sSQL += "FROM mac_setup M ";
            sSQL += "LEFT JOIN appointment_setup A ON M.mac_flr=A.apptst_flr ";
            sSQL += "AND M.mac_sec=A.apptst_sec AND M.mac_bedno=A.apptst_bed AND A.apptst_daytyp='" + sWEEK.Text + "' AND A.apptst_timetyp='" + sTIME.Text + "' ";
            sSQL += "LEFT JOIN pat_visit V ON A.apptst_patic=V.pv_ic AND V.pv_datevisit='" + sDATE.Text + "' ";
            sSQL += "LEFT JOIN general_setup G ON M.mac_brand=G.genst_code AND G.genst_ctg='macbrd' ";
            sSQL += "LEFT JOIN pat_info P ON A.apptst_patic=P.pif_ic ";
            sSQL += "LEFT JOIN clinical1_nurse N ON A.apptst_patic=N.cln1_patic AND N.cln1_diadate='" + sDATE.Text + "' "; //淨化參數表格
            sSQL += "WHERE M.mac_flr='" + sFLOOR.Text + "' ";
            if (cb_patlist.Text != "")
            {
                sSQL += "AND P.pif_name LIKE '" + cb_patlist.Text + "%' ";
            }
            if (sAREA.Text.Trim() != "全区")
            {
                sSQL += "AND M.mac_sec='" + sAREA.Text + "' ";
            }
            sSQL += "ORDER BY M.mac_bedno  ";
            DataTable dt = db.Query(sSQL);

            //補上臨時預約
            sSQL  = "SELECT A.ah_bed, A.ah_patic, A.ah_flr, A.ah_sec, A.ah_bed, A.ah_timetyp, P.pif_name, ";
            sSQL += "case P.pif_sex when 'M' then '男' when 'F' then '女' end as PERSON_SEX, ";
            sSQL += "P.pif_height, V.pv_weight, ";
            sSQL += "case V.pv_macstat when 'A' then '开' when 'S' then '关' end as PERSON_STATE, ";
            sSQL += "N.cln1_col5 ";
            sSQL += "FROM appointment_change A ";
            sSQL += "LEFT JOIN pat_info P ON A.ah_patic=P.pif_ic ";
            sSQL += "LEFT JOIN pat_visit V ON A.ah_patic=V.pv_ic AND V.pv_datevisit='" + sDATE.Text + "' ";
            sSQL += "LEFT JOIN clinical1_nurse N ON A.ah_patic=N.cln1_patic AND N.cln1_diadate='" + sDATE.Text + "' "; //淨化參數表格
            sSQL += "WHERE ah_date='" + sDATE.Text + "' AND ah_timetyp='" + sTIME.Text + "' ";
            //if (cb_patlist.Text != "")
            //{
            //    sSQL += "AND P.pif_name LIKE '" + cb_patlist.Text + "%' ";
            //}
            //if (sAREA.Text.Trim() != "全区")
            //{
            //    sSQL += "AND M.mac_sec='" + sAREA.Text + "' ";
            //}
            DataTable dt2 = db.Query(sSQL);

            System.Data.DataView dv = dt.DefaultView;

            for (int i = 0; i < dt2.Rows.Count; i++)
            {
                //dv.RowFilter = "PERSON_ID='" + dt2.Rows[i]["ah_patic"].ToString() + "' ";
                //if (dv.Count > 0)
                //{
                //    dv[0]["PERSON_NAME"] = "";
                //    dv[0]["PERSON_WEIGHT"] = "";
                //    dv[0]["PERSON_STATE"] = "";
                //    dv[0]["PERSON_ID"] = "";
                //    dv[0]["PERSON_HEIGHT"] = "";
                //    dv[0]["PERSON_SEX"] = "";
                //}

                dv.RowFilter = "BED_NO='" + dt2.Rows[i]["ah_bed"].ToString() + "' ";
                if (dv.Count > 0)
                {
                    dv[0]["PERSON_NAME"]   = dt2.Rows[i]["pif_name"].ToString();
                    dv[0]["PERSON_WEIGHT"] = dt2.Rows[i]["cln1_col5"].ToString();
                    dv[0]["PERSON_STATE"]  = dt2.Rows[i]["PERSON_STATE"].ToString();
                    dv[0]["PERSON_ID"]     = dt2.Rows[i]["ah_patic"].ToString();
                    dv[0]["PERSON_SEX"]    = dt2.Rows[i]["PERSON_SEX"].ToString();
                    dv[0]["PERSON_HEIGHT"] = dt2.Rows[i]["pif_height"].ToString();
                }
            }

            Session.Add("PAD_TIME", sTIME.Text);
            Session.Add("PAD_FLOOR", sFLOOR.Text);
            Session.Add("PAD_AREA", sAREA.Text);
            ROW_CNT.Text = dt.Rows.Count.ToString();
            Store istore = grdBED_LIST.GetStore();

            istore.DataSource = db.GetDataArray(dt);
            istore.DataBind();
            TextQuery.Focus(false, 100);
        }
Example #24
0
 protected void cboFLOOR_Click(object sender, DirectEventArgs e)
 {
     sFLOOR.Text = Common.GetComboBoxValue(this.cboFLOOR);
     FILL_BED();
     TextQuery.Focus(false, 100);
 }
        protected void FILL_BED()
        {
            string sp_pic = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAAxJREFUGFdj+P//PwAF/gL+pzWBhAAAAABJRU5ErkJggg==";

            GetWeek();
            string sSQL = "";

            sSQL  = "SELECT M.mac_sec AS AREA, M.mac_bedno AS BED_NO, ";
            sSQL += "CASE ";
            sSQL += "WHEN EXISTS(SELECT R.cln1_col26 FROM clinical1_nurse R WHERE A.apptst_patic=R.cln1_patic AND R.cln1_diadate='" + sDATE.Text + "') ";
            sSQL += "THEN (SELECT R.cln1_col26 FROM clinical1_nurse R WHERE A.apptst_patic=R.cln1_patic AND R.cln1_diadate='" + sDATE.Text + "') ";
            sSQL += "ELSE (SELECT cln1_col2 FROM clinical1_doc_henan WHERE cln1_patic=A.apptst_patic AND cln1_diadate='base') ";
            sSQL += "END AS MAC_MODEL, ";
            sSQL += "M.mac_typ AS MAC_TYPE, ";
            sSQL += "case UPPER(M.mac_status) when 'Y' then '正常' when 'N' then '保养中' end AS MAC_STATE, ";
            sSQL += "P.pif_name AS PERSON_NAME, A.apptst_patic AS PERSON_IC, ";
            sSQL += "case P.pif_sex when 'M' then '男' when 'F' then '女' end as PERSON_SEX, ";
            sSQL += "P.pif_height AS PERSON_HEIGHT, ";
            sSQL += "IFNULL(N.cln1_col5, V.pv_weight) AS PERSON_WEIGHT, ";
            sSQL += "IF(STRCMP(N.cln1_col5,''), 'images/tick_16.png', '" + sp_pic + "') as img_url, ";
            sSQL += "case V.pv_macstat when '' then '" + sp_pic + "' when 'A' then 'images/start_16.png' when 'S' then 'images/stop_16.png' end as PERSON_STATE, ";
            sSQL += "P.pif_id AS PERSON_ID ";
            sSQL += "FROM mac_setup M ";
            sSQL += "LEFT JOIN appointment_setup A ON M.mac_flr=A.apptst_flr ";
            sSQL += "AND M.mac_sec=A.apptst_sec AND M.mac_bedno=A.apptst_bed AND A.apptst_daytyp='" + sWEEK.Text + "' AND A.apptst_timetyp='" + sTIME.Text + "' ";
            sSQL += "LEFT JOIN pat_info P ON A.apptst_patic=P.pif_ic ";
            sSQL += "LEFT JOIN clinical1_nurse N ON A.apptst_patic=N.cln1_patic AND N.cln1_diadate='" + sDATE.Text + "' "; //淨化參數表格
            sSQL += "LEFT JOIN general_setup G ON M.mac_brand=G.genst_code AND G.genst_ctg='macbrd' ";
            sSQL += "LEFT JOIN pat_visit V ON A.apptst_patic=V.pv_ic AND V.pv_datevisit='" + sDATE.Text + "' ";
            sSQL += "WHERE M.mac_flr='" + sFLOOR.Text + "' ";
            if (cb_patlist.Text != "")
            {
                sSQL += "AND P.pif_name LIKE '" + cb_patlist.Text + "%' ";
            }
            if (sAREA.Text.Trim() != "全区")
            {
                sSQL += "AND M.mac_sec='" + sAREA.Text + "' ";
            }
            sSQL += "ORDER BY M.mac_bedno";
            DataTable dt = db.Query(sSQL);

            //補上更換床資料
            sSQL  = "SELECT A.ah_bed, A.ah_patic AS PERSON_IC, A.ah_flr, A.ah_sec, A.ah_bed, A.ah_timetyp, P.pif_name AS PERSON_NAME, ";
            sSQL += "case P.pif_sex when 'M' then '男' when 'F' then '女' end as PERSON_SEX, ";
            sSQL += "P.pif_height AS PERSON_HEIGHT, ";
            sSQL += "N.cln1_col5 AS PERSON_WEIGHT, ";
            sSQL += "IF(STRCMP(N.cln1_col5,''), 'images/tick_16.png', '" + sp_pic + "') as img_url, ";
            sSQL += "case V.pv_macstat when '' then '" + sp_pic + "' when 'A' then 'images/start_16.png' when 'S' then 'images/stop_16.png' end as PERSON_STATE, ";
            sSQL += "CASE ";
            sSQL += "WHEN EXISTS(SELECT R.cln1_col26 FROM clinical1_nurse R WHERE A.ah_patic=R.cln1_patic AND R.cln1_diadate='" + sDATE.Text + "') ";
            sSQL += "THEN (SELECT R.cln1_col26 FROM clinical1_nurse R WHERE A.ah_patic=R.cln1_patic AND R.cln1_diadate='" + sDATE.Text + "') ";
            sSQL += "ELSE (SELECT cln1_col2 FROM clinical1_doc_henan WHERE A.ah_patic=cln1_patic AND cln1_diadate='base') ";
            sSQL += "END AS MAC_MODEL, ";
            sSQL += "P.pif_id AS PERSON_ID ";
            sSQL += "FROM appointment_change A ";
            sSQL += "LEFT JOIN pat_info P ON A.ah_patic=P.pif_ic ";
            sSQL += "LEFT JOIN pat_visit V ON A.ah_patic=V.pv_ic AND V.pv_datevisit='" + sDATE.Text + "' ";
            sSQL += "LEFT JOIN clinical1_nurse N ON A.ah_patic=N.cln1_patic AND N.cln1_diadate='" + sDATE.Text + "' "; //淨化參數表格
            sSQL += "WHERE ah_date='" + sDATE.Text + "' AND ah_timetyp='" + sTIME.Text + "' ";
            DataTable dt2 = db.Query(sSQL);

            if (dt2.Rows.Count > 0)
            {
                System.Data.DataView dv = dt.DefaultView;

                for (int i = 0; i < dt2.Rows.Count; i++)
                {
                    dv.RowFilter = "BED_NO='" + dt2.Rows[i]["ah_bed"].ToString() + "' ";
                    if (dv.Count > 0)
                    {
                        if (dt2.Rows[i]["PERSON_ID"].ToString() != "")
                        {
                            dv[0]["PERSON_ID"] = dt2.Rows[i]["PERSON_ID"].ToString();
                        }
                        dv[0]["PERSON_IC"]     = dt2.Rows[i]["PERSON_IC"].ToString();
                        dv[0]["PERSON_NAME"]   = dt2.Rows[i]["PERSON_NAME"].ToString();
                        dv[0]["PERSON_SEX"]    = dt2.Rows[i]["PERSON_SEX"].ToString();
                        dv[0]["PERSON_HEIGHT"] = dt2.Rows[i]["PERSON_HEIGHT"].ToString();
                        dv[0]["PERSON_WEIGHT"] = dt2.Rows[i]["PERSON_WEIGHT"].ToString();
                        dv[0]["PERSON_STATE"]  = dt2.Rows[i]["PERSON_STATE"].ToString();
                        dv[0]["img_url"]       = dt2.Rows[i]["img_url"].ToString();
                        dv[0]["PERSON_STATE"]  = dt2.Rows[i]["PERSON_STATE"].ToString();
                        dv[0]["MAC_MODEL"]     = dt2.Rows[i]["MAC_MODEL"].ToString();
                    }
                }
            }

            if (CheckinEmpty == "false")
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    if (dt.Rows[i]["PERSON_NAME"].ToString() == "")
                    {
                        dt.Rows[i].Delete();
                    }
                }
                dt.AcceptChanges();
            }
            Session.Add("PAD_TIME", sTIME.Text);
            Session.Add("PAD_FLOOR", sFLOOR.Text);
            Session.Add("PAD_AREA", sAREA.Text);
            ROW_CNT.Text = dt.Rows.Count.ToString();

            Store istore = grdBED_LIST.GetStore();

            istore.DataSource = db.GetDataArray(dt);
            istore.DataBind();

            TextQuery.Focus(false, 100);
        }
Example #26
0
        public override async Task <List <DomainId>?> SearchAsync(IAppEntity app, TextQuery query, SearchScope scope,
                                                                  CancellationToken ct = default)
        {
            Guard.NotNull(app);
            Guard.NotNull(query);

            var(search, take) = query;

            if (string.IsNullOrWhiteSpace(search))
            {
                return(null);
            }

            var luceneQuery = QueryParser.Parse(search);

            var serveField = scope == SearchScope.All ? "fa" : "fp";

            var compound = new BsonDocument
            {
                ["must"] = new BsonArray
                {
                    QueryVisitor.Visit(luceneQuery)
                },
                ["filter"] = new BsonArray
                {
                    new BsonDocument
                    {
                        ["text"] = new BsonDocument
                        {
                            ["path"]  = "_ai",
                            ["query"] = app.Id.ToString()
                        }
                    },
                    new BsonDocument
                    {
                        ["equals"] = new BsonDocument
                        {
                            ["path"]  = serveField,
                            ["value"] = true
                        }
                    }
                }
            };

            if (query.PreferredSchemaId != null)
            {
                compound["should"] = new BsonArray
                {
                    new BsonDocument
                    {
                        ["text"] = new BsonDocument
                        {
                            ["path"]  = "_si",
                            ["query"] = query.PreferredSchemaId.Value.ToString()
                        }
                    }
                };
            }
            else if (query.RequiredSchemaIds?.Count > 0)
            {
                compound["should"] = new BsonArray(query.RequiredSchemaIds.Select(x =>
                                                                                  new BsonDocument
                {
                    ["text"] = new BsonDocument
                    {
                        ["path"]  = "_si",
                        ["query"] = x.ToString()
                    }
                }));

                compound["minimumShouldMatch"] = 1;
            }

            var searchQuery = new BsonDocument
            {
                ["compound"] = compound,
            };

            if (index != null)
            {
                searchQuery["index"] = index;
            }

            var results =
                await Collection.Aggregate().Search(searchQuery).Limit(take)
                .Project <MongoTextResult>(
                    Projection.Include(x => x.ContentId)
                    )
                .ToListAsync(ct);

            return(results.Select(x => x.ContentId).ToList());
        }
Example #27
0
        public async Task <List <DomainId> > SearchAsync(IAppEntity app, TextQuery query, SearchScope scope,
                                                         CancellationToken ct = default)
        {
            Guard.NotNull(app);
            Guard.NotNull(query);

            var parsed = queryParser.Parse(query.Text);

            if (parsed == null)
            {
                return(null);
            }

            var serveField = GetServeField(scope);

            var elasticQuery = new
            {
                query = new
                {
                    @bool = new
                    {
                        filter = new List <object>
                        {
                            new
                            {
                                term = new Dictionary <string, object>
                                {
                                    ["appId.keyword"] = app.Id.ToString()
                                }
                            },
                            new
                            {
                                term = new Dictionary <string, string>
                                {
                                    [serveField] = "true"
                                }
                            }
                        },
                        must = new
                        {
                            query_string = new
                            {
                                query = parsed.Text
                            }
                        },
                        should = new List <object>()
                    }
                },
                _source = new[]
                {
                    "contentId"
                },
                size = query.Take
            };

            if (query.RequiredSchemaIds?.Count > 0)
            {
                var bySchema = new
                {
                    terms = new Dictionary <string, object>
                    {
                        ["schemaId.keyword"] = query.RequiredSchemaIds.Select(x => x.ToString()).ToArray()
                    }
                };

                [email protected](bySchema);
            }
            else if (query.PreferredSchemaId.HasValue)
            {
                var bySchema = new
                {
                    terms = new Dictionary <string, object>
                    {
                        ["schemaId.keyword"] = query.PreferredSchemaId.ToString()
                    }
                };

                [email protected](bySchema);
            }

            var json = JsonConvert.SerializeObject(elasticQuery, Formatting.Indented);

            return(await SearchAsync(elasticQuery, ct));
        }