Пример #1
0
        //显示待配明细
        private void ShowDetails(string prescNo, ListView lv)
        {
            string sql = "select * from view_presc_window where prescno='{0}'";

            sql = string.Format(sql, prescNo);
            DataTable dtDetails;

            csSql.ExecuteSelect(sql, Config.Soft.ConnString, out dtDetails);

            List <PrescDetails> ds = null;

            if (dtDetails != null && dtDetails.Rows.Count > 0)
            {
                ds = new List <PrescDetails>();
                foreach (DataRow row in dtDetails.Rows)
                {
                    PrescDetails pd = new PrescDetails
                    {
                        DrugOnlyCode = row["drugonlycode"].ToString(),
                        DrugName     = row["drugname"].ToString(),
                        DrugSpec     = row["drugspec"].ToString(),
                        DrugFactory  = row["drugfactory"].ToString(),
                        DrugNum      = GetNumString(int.Parse(row["drugnum"].ToString()), row["drugunit"].ToString(), int.Parse(row["drugpacknum"].ToString()), row["drugpackunit"].ToString(), int.Parse(row["drugsplitnum"].ToString()), row["drugsplitunit"].ToString()),
                        Status       = row["drugdoflag"].ToString()
                    };
                    switch (pd.Status)
                    {
                    case "N":
                        pd.Status = "未出";
                        break;

                    case "Y":
                        pd.Status = "已出";
                        break;

                    case "E":
                        pd.Status = "机外";
                        break;

                    case "S":
                        pd.Status = "缺药";
                        break;

                    case "B":
                        pd.Status = "超限";
                        break;

                    case "M":
                        pd.Status = "多出";
                        break;

                    case "Q":
                        pd.Status = "少出";
                        break;
                    }
                    ds.Add(pd);
                }
            }
            lv.ItemsSource = ds;
        }
Пример #2
0
        //显示正在配药
        private void ShowDoing()
        {
            string wins = GetWins(Config.Soft.MacCode);
            string sql  = "select prescno,windowno,patname from pat_prescinfo where windowno in ({0}) and doflag in('D','O') and paytime>=convert(varchar(100),getdate(),23) order by dotime desc";

            sql = string.Format(sql, wins);
            DataTable dtPresc;

            csSql.ExecuteSelect(sql, Config.Soft.ConnString, out dtPresc);

            List <Presc>        ps = null;
            List <PC>           cs = null;
            List <PrescDetails> ds = null;

            if (dtPresc != null && dtPresc.Rows.Count > 0)
            {
                string prescNo = dtPresc.Rows[0]["prescno"].ToString().Trim();
                ps = new List <Presc>();
                ps.Add(new Presc
                {
                    PrescNo  = prescNo,
                    WindowNo = int.Parse(dtPresc.Rows[0]["windowno"].ToString()),
                    PatName  = dtPresc.Rows[0]["patname"].ToString()
                });

                sql = @"select pd.drugonlycode,di.drugname,di.drugaliasname,di.drugspec,di.drugfactory,di.drugpacknum,di.drugpackunit,di.drugsplitnum,di.drugsplitunit,pd.drugnum,pd.drugunit,pd.doflag,
(select top 1 maccode from drug_pos dp where dp.drugonlycode=pd.drugonlycode) as maccode 
from pat_druginfo pd
left join drug_info di on di.drugonlycode=pd.drugonlycode
where prescno='{0}'";
                sql = string.Format(sql, prescNo);
                DataTable dtDetails;
                csSql.ExecuteSelect(sql, Config.Soft.ConnString, out dtDetails);
                if (dtDetails != null && dtDetails.Rows.Count > 0)
                {
                    ds = new List <PrescDetails>();
                    foreach (DataRow row in dtDetails.Rows)
                    {
                        PrescDetails pd = new PrescDetails
                        {
                            MacCode      = row["maccode"].ToString(),
                            DrugOnlyCode = row["drugonlycode"].ToString(),
                            DrugName     = row["drugname"].ToString(),
                            DrugSpec     = row["drugspec"].ToString(),
                            DrugFactory  = row["drugfactory"].ToString(),
                            DrugNum      = GetNumString(int.Parse(row["drugnum"].ToString()), row["drugunit"].ToString(), int.Parse(row["drugpacknum"].ToString()), row["drugpackunit"].ToString(), int.Parse(row["drugsplitnum"].ToString()), row["drugsplitunit"].ToString()),
                            Status       = row["doflag"].ToString()
                        };
                        switch (pd.Status)
                        {
                        case "N":
                            pd.Status = "未出";
                            break;

                        case "Y":
                            pd.Status = "已出";
                            break;

                        case "E":
                            pd.Status = "机外";
                            break;

                        case "S":
                            pd.Status = "缺药";
                            break;

                        case "B":
                            pd.Status = "超限";
                            break;

                        case "M":
                            pd.Status = "多出";
                            break;

                        case "Q":
                            pd.Status = "少出";
                            break;
                        }
                        pd.BackColor = pd.MacCode == Config.Soft.MacCode ? color_In : color_Out;
                        ds.Add(pd);
                    }
                }

                sql = @"select distinct outpc,pcflag from pat_druginfo where prescno='{0}' and outpc is not null order by outpc";
                sql = string.Format(sql, prescNo, Config.Soft.MacCode);
                DataTable dtPC;
                csSql.ExecuteSelect(sql, Config.Soft.ConnString, out dtPC);
                if (dtPC.Rows.Count > 0)
                {
                    cs = new List <PC>();
                    foreach (DataRow row in dtPC.Rows)
                    {
                        PC c = new PC {
                            OutPC = row["outpc"].ToString(), Flag = row["pcflag"].ToString()
                        };
                        switch (c.Flag)
                        {
                        case "N":
                            c.BackColor = color_No;
                            break;

                        case "D":
                            c.BackColor = color_Doing;
                            break;

                        case "Y":
                            c.BackColor = color_Yes;
                            break;
                        }
                        cs.Add(c);
                    }
                }
            }
            lvDoing.ItemsSource         = ps;
            lvPC.ItemsSource            = cs;
            lvDoing_Details.ItemsSource = ds;
        }