Example #1
0
        //设置执行次数和执行时间:这个是在开立的时候做的,二次查看的时候要根据使用次数算执行时间
        public void GetMpTimes(string id_freq)
        {
            //  cof.GetDoseDrugData(id_freq, this.EmsHeadDO);
            string exctime = cof.GetWorkTime(id_freq);

            if (exctime != null && exctime != "")
            {
                exctimes = exctime.Split(';');
                Array.Sort(exctimes);
                Array.Reverse(exctimes);
            }
            else
            {
                return;
            }
            DateTime?            dt            = this.EmsHeadDO.Emsdrugs.Dt_begin_ui;
            XLabelBaseUserRender tmpUserRender = xapFormControl1.GetUserRender("drugsUse", "quan_firday_mp") as XLabelBaseUserRender;
            XNumbericUpDown      numRender     = tmpUserRender.UserRender as XNumbericUpDown;
            //作为计算的时间
            DateTime date = DateTime.Now;

            //bool flag = false;
            if (dt != null)
            {
                DateTime dtNow    = DateTime.Now;
                DateTime dtBegion = (DateTime)dt;
                string   nowtime  = dtBegion.ToShortTimeString().ToString();
                string   worktime = "";
                int      numf     = 0;
                for (int i = 0; i < exctimes.Length; i++)
                {
                    DateTime dt1 = Convert.ToDateTime(exctimes[i]);
                    DateTime dt2 = Convert.ToDateTime(nowtime);
                    if (dt1.CompareTo(dt2) >= 0)//大于等于
                    {
                        numf++;
                        if (worktime != "")
                        {
                            worktime = ";" + worktime;
                        }
                        worktime = exctimes[i] + worktime;
                    }
                }
                this.EmsHeadDO.Emsdrugs.Work_time = worktime;
                numRender.ValueText = numf.ToString();
                //暂时关掉,改为频次的次数
                //numRender.MinValue = numf;
                numRender.MaxValue = numf;
                this.EmsHeadDO.Emsdrugs.Quan_firday_mp = numf;
            }
            else
            {
                numRender.ValueText = null;
                numRender.MaxValue  = 0;
            }
        }
Example #2
0
        //计算首次执行时间
        private void getWorkTime()
        {
            //次数变更 具体时间也跟着变更
            XLabelBaseUserRender tmpUserRender = getControlByName("drugsUse", "quan_firday_mp");
            XNumbericUpDown      numRender     = tmpUserRender.UserRender as XNumbericUpDown;
            string firday_mp = numRender.ValueText;

            if (firday_mp == "")
            {
                firday_mp = "0";
            }
            int num_firday_mp = int.Parse(firday_mp);

            if (exctimes == null)
            {
                return;
            }
            if (num_firday_mp > exctimes.Length)
            {
                this.ShowInfo("首日执行次数与事件不符!");
                return;
            }
            string worktime = "";

            Array.Sort(exctimes);
            Array.Reverse(exctimes);
            for (int i = 0; i < num_firday_mp; i++)
            {
                if (worktime != "")
                {
                    worktime = ";" + worktime;
                }
                worktime = exctimes[i] + worktime;
            }

            XLabelBaseUserRender worktimeLable = this.xapFormControl1.GetUserRender("drugsUse", "work_time") as XLabelBaseUserRender;

            if (worktimeLable != null)
            {
                worktimeLable.ValueText = worktime;
            }
        }
Example #3
0
        void xapFormControl1_ModelFilled(object sender, EventArgs e)
        {
            xapFormControl1.SetTabPageEnabled("drugsUse", !IsReadOnly);
            gv.DataTable.DataSource = this.EmsHeadDO.Emsdrugs.EmsOrDrugList;
            mapUnit = new Dictionary <string, string>();
            //记录单位名称
            mapUnit.Add(this.EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Id_srv, this.EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Name_unit_sale);
            if (this.EmsHeadDO.IsNEW)
            {
                //获取执行时刻,和首次执行次数
                GetMpTimes(this.EmsHeadDO.Emsdrugs.Id_freq);
                this.EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Name_unit_sale = "";
            }
            else
            {
                string exctime = cof.GetWorkTime(this.EmsHeadDO.Emsdrugs.Id_freq);

                if (exctime != null && exctime != "")
                {
                    exctimes = exctime.Split(';');
                    Array.Sort(exctimes);
                    Array.Reverse(exctimes);
                }
                if (exctimes == null)
                {
                    exctimes = new string[] { }
                }
                ;
                cof.setMpWorkTimesOnEdit(this.EmsHeadDO, exctimes);
                XLabelBaseUserRender tmpUserRender = this.xapFormControl1.GetUserRender("drugsUse", "quan_firday_mp") as XLabelBaseUserRender;
                XNumbericUpDown      numRender     = tmpUserRender.UserRender as XNumbericUpDown;
                if (this.EmsHeadDO.Emsdrugs.Quan_firday_mp != null)
                {
                    numRender.MaxValue = (double)this.EmsHeadDO.Emsdrugs.Quan_firday_mp;
                }
                numRender.MinValue = 0;
            }
            //	治疗用药、预防用药:只有抗生素类型的药品(BD_SRV_DRUG.fg_anti抗菌药物标志),才显示这两个控件。这两个选项框互斥。
            if (!cof.IsAntDrug(this.EmsHeadDO.Emsdrugs.Id_srv))
            {
                //cof.getControlByName(xapFormControl1,"drugsUse", "fg_treat").Visible = false;//治疗用药
                cof.getControlByName(xapFormControl1, "drugsUse", "fg_propc").Visible = false;//预防用药
            }
            if (this.EmsHeadDO.Emsdrugs.Id_route == null)
            {
                RouteDosageRefDO[] routeRefs = new GetSrvVsRouteImp().GetDosageVsRountes("'" + string.Join("','", this.EmsHeadDO.Emsdrugs.EmsOrDrugList.Select(p => p.Id_srv).ToList()) + "'");
                this.EmsHeadDO.Emsdrugs.Id_route   = routeRefs[0].Id_route;
                this.EmsHeadDO.Emsdrugs.Name_route = routeRefs[0].Route_name;
            }
            else if (this.EmsHeadDO.Emsdrugs.Name_route == null)
            {
                String             name      = "";
                RouteDosageRefDO[] routeRefs = new GetSrvVsRouteImp().GetDosageVsRountes("'" + string.Join("','", this.EmsHeadDO.Emsdrugs.EmsOrDrugList.Select(p => p.Id_srv).ToList()) + "'");

                for (int i = 0; i < routeRefs.Length; i++)
                {
                    if (this.EmsHeadDO.Emsdrugs.Id_route == routeRefs[i].Id_route)
                    {
                        name = routeRefs[i].Route_name;
                    }
                }
                if (name == "" && routeRefs.Length > 0)
                {
                    name = routeRefs[0].Route_name;
                }
                this.EmsHeadDO.Emsdrugs.Name_route = name;
            }


            //备用药结束时间

            dt_fail.MinDate = this.EmsHeadDO.Emsdrugs.Dt_begin_ui.Value.AddDays(-1);
            dt_fail.MaxDate = cof.GetServerDataTime().AddHours(this.Context.GetOrgParam <int>(ICiOrdNSysParamConst.SYS_PARAM_TemporaryPrnOrValidTime));
            this.EmsHeadDO.Emsdrugs.EmsOrDeleteDrugList = new XapDataList <EmsOrDrug>()
            {
            };
            cof.setDrugConStateAfterFilled(this.EmsHeadDO.Emsdrugs.Id_freq, this.adjustHeightIds, this.xapFormControl1);
            cof.setGridColumnEdit(gv, this.EmsHeadDO);

            UserRender name_route = xapFormControl1.GetUserRender("drugsUse", "name_route");

            name_route.Focus();
        }

        OrderSrvDoseViewModel drugChangeModel = new OrderSrvDoseViewModel();
Example #4
0
        void xapFormControl1_FormCreated(object sender, EventArgs e)
        {
            //备用条件和失效日期隐藏
            cof.getControlByName(xapFormControl1, "drugsUse", "bak_des").Visible = false;
            cof.getControlByName(xapFormControl1, "drugsUse", "dt_fail").Visible = false;
            cof.adjustHeight(this.xapFormControl1, "drugsUse", adjustHeightIds, -58);
            //首日最大执行次数
            int?freqct    = this.EmsHeadDO.Emsdrugs.Freqct;
            int numgreqct = 0;

            if (freqct != null)
            {
                numgreqct = (int)freqct;
            }
            XLabelBaseUserRender tmpUserRender = this.xapFormControl1.GetUserRender("drugsUse", "quan_firday_mp") as XLabelBaseUserRender;

            XNumbericUpDown numRender = tmpUserRender.UserRender as XNumbericUpDown;

            numRender.MaxValue = (double)numgreqct;
            numRender.MinValue = 0;


            XTabControl       tabControl = new XTabControl();
            List <ControlTab> tabs       = xapFormControl1.FormModel.Tabs;

            dic = tabs[0].Pages[0].DicUserRenders;

            gv             = xapFormControl1.GetGridView("drug");//药品属性表
            gv.MouseClick += new MouseEventHandler(gv_MouseClick);
            gv.ReadOnly    = true;
            UserRender btnDel = this.xapFormControl1.GetUserRender("drugsUse", "del");//删除按钮

            btnDel.MouseClick += new MouseEventHandler(btnDel_MouseClick);

            UserRender btnAdd = this.xapFormControl1.GetUserRender("drugsUse", "btnAdd");//新增按钮

            btnAdd.MouseClick += new MouseEventHandler(btnAdd_MouseClick);
            //UserRender btnOK = xapFormControl1.GetUserRender("drugsUse", "btnSave");//保存
            //btnOK.MouseClick += new MouseEventHandler(btnOK_MouseClick);
            gv_change = xapFormControl1.GetGridView("change");//变动用药

            SetGridPolicy(true);
            gv.ReadOnly           = false;
            gv.DataTable.ReadOnly = false;
            //gv.DataTable.Columns["Name_srv"].ReadOnly = true;
            //gv.DataTable.Columns["Name_mm"].ReadOnly = true;
            gv.DataTable.Columns["Quan_cur"].ReadOnly       = true;
            gv.DataTable.Columns["Name_unit_sale"].ReadOnly = true;
            //长期医嘱使用天数为空
            if (cof.getControlByName(xapFormControl1, "drugsUse", "fg_long").ValueCode == "True" && this.EmsHeadDO.IsNEW)
            {
                this.EmsHeadDO.Emsdrugs.Use_days = null;
            }
            //cof.getControlByName(xapFormControl1,"drugsUse", "fg_long").Enabled = false;

            //----------药品说明----------------------
            XTabControl tabControl1 = tabs[0].tabContrl;
            XTabPage    xtab        = tabControl1.XTabPages[1];

            tabControl1.SelectedIndexChanged += new XTabControl.selectedIndexChanged(tabControl1_SelectedIndexChanged);
            xtab.Controls.Clear();
            xtab.Controls.Add(desView);

            cof.getControlByName(xapFormControl1, "drugsUse", "work_time").LostFocus += new EventHandler(Work_time_LostFocus);
            cof.getControlByName(xapFormControl1, "drugsUse", "dt_fail").LostFocus   += new EventHandler(Dt_fail_LostFocus);

            //失效日期控件
            UserRender usfail = xapFormControl1.GetUserRender("drugsUse", "dt_fail");

            dt_fail = usfail.Renders[0] as xap.cli.sdk.render.Items.XCalendarTimerComboBox;
        }
Example #5
0
        void xapFormControl1_ModelFilled(object sender, EventArgs e)
        {
            //xapFormControl1.SetEditable(!IsReadOnly);
            // xapFormControl1.SetTabPageEnabled("drugsUse", !IsReadOnly);
            cof.getControlByName(xapFormControl1, "drugsUse", "work_time").Enabled = false;//首日执行时间
            //SetGridPolicy(!IsReadOnly);
            group = this.xapFormControl1.GetUserRender("drugsUse", "group") as XGroupBox;
            this.EmsHeadDO.Emsdrugs.EmsOrDrug = cof.MmSortList(this.EmsHeadDO.Emsdrugs.EmsOrDrug);
            if (gv != null)
            {
                gv.DataTable.DataSource = this.EmsHeadDO.Emsdrugs.EmsOrDrugList;
            }
            mapUnit = new Dictionary <string, string>();
            //记录单位名称
            mapUnit.Add(this.EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Id_srv, this.EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Name_unit_sale);
            if (this.EmsHeadDO.IsNEW)
            {
                GetMpTimes(this.EmsHeadDO.Emsdrugs.Id_freq);
                //设置执行次数的最大值和最小值
                cof.setFreqctMaxMin(this.EmsHeadDO, xapFormControl1);
                this.EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Name_unit_sale = "";
            }
            else
            {
                string exctime = cof.GetWorkTime(this.EmsHeadDO.Emsdrugs.Id_freq);

                if (exctime != null && exctime != "")
                {
                    exctimes = exctime.Split(';');
                    Array.Sort(exctimes);
                    Array.Reverse(exctimes);
                }
                cof.setMpWorkTimesOnEdit(this.EmsHeadDO, exctimes);
                XLabelBaseUserRender tmpUserRender = this.xapFormControl1.GetUserRender("drugsUse", "quan_firday_mp") as XLabelBaseUserRender;
                XNumbericUpDown      numRender     = tmpUserRender.UserRender as XNumbericUpDown;
                numRender.MaxValue = (double)this.EmsHeadDO.Emsdrugs.Quan_firday_mp;
                numRender.MinValue = 0;
            }

            //	治疗用药、预防用药:只有抗生素类型的药品(BD_SRV_DRUG.fg_anti抗菌药物标志),才显示这两个控件。这两个选项框互斥。
            if (cof.IsAntDrug(this.EmsHeadDO.Emsdrugs.Id_srv))
            {
                cof.getControlByName(xapFormControl1, "drugsUse", "fg_treat").Visible = true; //治疗用药
                cof.getControlByName(xapFormControl1, "drugsUse", "fg_propc").Visible = true; //预防用药
                this.EmsHeadDO.Emsdrugs.Fg_treat = true;                                      //默认治疗用药
            }
            else
            {
                cof.getControlByName(xapFormControl1, "drugsUse", "fg_treat").Visible = false; //治疗用药
                cof.getControlByName(xapFormControl1, "drugsUse", "fg_propc").Visible = false; //预防用药
            }
            //限制开始时间的时间范围,入院日期,最大提前日期
            UserRender us = xapFormControl1.GetUserRender("drugsUse", "dt_begin_ui");

            xap.cli.sdk.render.Items.XCalendarTimerComboBox dt_begin = us.Renders[0] as xap.cli.sdk.render.Items.XCalendarTimerComboBox;
            DateTime?dataA = new GetInHosTime().GetPatInHosTime(this.EmsHeadDO.PatInfo.Id_ent);

            dt_begin.MinDate = dataA;
            dt_begin.MaxDate = cof.GetServerDataTime().AddDays(OrdParam.GetOrdParam.orBeforStartDays);

            //限制结束时间的时间范围,入院日期,最大提前日期
            UserRender usend = xapFormControl1.GetUserRender("drugsUse", "dt_end_ui");

            xap.cli.sdk.render.Items.XCalendarTimerComboBox dt_end = usend.Renders[0] as xap.cli.sdk.render.Items.XCalendarTimerComboBox;

            UserRender name_route = xapFormControl1.GetUserRender("drugsUse", "name_route");

            name_route.Focus();

            dt_end.MinDate = this.EmsHeadDO.Emsdrugs.Dt_begin_ui;
            //dt_end.MaxDate = cof.GetServerDataTime().AddDays(OrdParam.GetOrdParam.orBeforStartDays);

            //备用药失效时间

            dt_fail.MinDate = this.EmsHeadDO.Emsdrugs.Dt_begin_ui.Value.AddDays(-1);
            dt_fail.MaxDate = this.EmsHeadDO.Emsdrugs.Dt_begin_ui.Value.AddHours(this.Context.GetOrgParam <int>(ICiOrdNSysParamConst.SYS_PARAM_TemporaryPrnOrValidTime));
            //cof.GetServerDataTime().AddHours(OrdParam.GetOrdParam.backOrActiveTime);

            cof.setDrugConStateAfterFilled(this.EmsHeadDO.Emsdrugs.Id_freq, this.adjustHeightIds, this.xapFormControl1);
            cof.setGridColumnEdit(gv, this.EmsHeadDO);
        }