//设置执行次数和执行时间:这个是在开立的时候做的,二次查看的时候要根据使用次数算执行时间 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; } }
//计算首次执行时间 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; } }
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();
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; }
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); }