/// <summary> /// 初始化业务视图 /// </summary> protected override void InitializeBizView() { rootPanel = new XLayoutPanel(); rootPanel.Dock = DockStyle.Fill; this.tableViewControl = CreateEmsGridView(this);// this.tableViewControl.Dock = DockStyle.None; rootPanel.AddControl(this.tableViewControl, ControlPosition.Center); // this.cardViewControl = CreateEmsCardView(this); if (null != this.cardViewControl) { this.cardViewControl.Dock = DockStyle.None; this.srvItemViewType = cardViewControl.GetEmsViewType(); this.tableViewControl.SetEmsViewType(this.srvItemViewType); this.OrdErrorList = cardViewControl.OrdErrorList; this.tableViewControl.OrdErrorList = cardViewControl.OrdErrorList; this.tableViewControl.SetEmsValidate(cardViewControl.GetEmsValidate()); rootPanel.AddControl(this.cardViewControl, ControlPosition.Bottom, (RelativeUIParam.RELATIVERATIO < 1920 ? BaseEmsView.FORM_CARD_HEIGHT : BaseEmsView.FORM_CARD_HEIGHT + 30)); rootPanel.BottomWidth = (RelativeUIParam.RELATIVERATIO < 1920 ? BaseEmsView.FORM_CARD_HEIGHT: BaseEmsView.FORM_CARD_HEIGHT + 30); } this.AddRender(rootPanel); this.tableViewControl.UnRegFormEvent_AllowEditing(); // 取消原始的AllowEditing事件 this.tableViewControl.GetXapFormControl().AllowEditing += OnXapFormControl_AllowEditing; // 绑定当前的 AllowEditing }
public virtual bool OrdValivate(object model, BaseEmsView sender) { sender.OrdErrorList.Clear(); #region 必填项检查 foreach (var ctl in sender.Controls) { if (ctl is XapFormControl) { if (((XapFormControl)ctl).HasErrors) { sender.OrdErrorList.Add(String.IsNullOrEmpty((ctl as XapFormControl).ErrorAlertText)?"请将必填项填写完整" : (ctl as XapFormControl).ErrorAlertText); return(false); } } else if (ctl is XLayoutPanel) { foreach (var ctrTemp in (ctl as XLayoutPanel).Controls) { if (ctrTemp is BaseFormBizView) { if (((BaseFormBizView)ctrTemp).ExistErrors()) { sender.OrdErrorList.Add(String.IsNullOrEmpty(((BaseFormBizView)ctrTemp).GetErrorText()) ? "请将必填项填写完整" : ((BaseFormBizView)ctrTemp).GetErrorText()); return(false); } } } } } #endregion return(true); }
/// <summary> /// 创建固定数据表格部件 /// </summary> // private void contructControls() // { // // if (!emsViewCache.ContainsKey("EmsDrugsTableViewCard")) // { // this.tableControl = new EmptyDrugSrvGridView(this); // // emsViewCache.Add("EmptyDrugSrvGridView", this.tableControl); // } // else // { // this.tableControl = emsViewCache["EmptyDrugSrvGridView"]; // } // } #endregion #region 父类继承区域 protected override void DisposeManaged() { if (tableControl != null) { tableControl.Dispose(); tableControl = null; } if (_defaultTableControl != null) { _defaultTableControl.Dispose(); _defaultTableControl = null; } rootView = null; // 患者就诊信息(来自于选中就诊患者时候) ent4BannerDTO = null; tableControl = null; orderDo = null; isFirstVisit = true; nOpOrValidTime = -1; isCreateEms = false; base.DisposeManaged(); }
public override bool OrdValivate(object model, BaseEmsView sender) { base.OrdValivate(model, sender); EmsObsItemDO emsApObs = (model as EmsRisViewModel).GetFormDataSource() as EmsObsItemDO; if (emsApObs.Fg_set == true) { bool fg_check = false; foreach (EmsObsLap obsLap in emsApObs.EmsOrObsList) { if (obsLap.Fg_chk == true) { fg_check = true; break; } } if (!fg_check) { sender.OrdErrorList.Add("检查明细项目不能为空"); } } //DateTime tToday = CommonExtentions.NowTime(this); //tToday -= TimeSpan.FromSeconds(tToday.Second); //if (emsApObs.Dt_plan < tToday) //{ // sender.OrdErrorList.Add("计划检查时间不能在当前时间之前!"); //} return(sender.OrdErrorList.Count == 0); }
/// <summary> /// /// </summary> /// <param name="o">父对象</param> /// <param name="emsObsLaps">表格数据源</param> /// <param name="isAllowEdit">是否允许编辑</param> /// <param name="isLisDiag">区别是检验还是检查</param> public CustomRefSetItmsControl(BaseEmsView o, XRepositoryRefEdit refEdit, bool isAllowEdit) { this.emsView = o; this.refEdit = refEdit; this.isAllowEdit = isAllowEdit; this.ValueTextChanged += MySearchBox_ValueTextChanged; this.KeyPress += new KeyPressEventHandler(CustomRefControl_KeyPress); }
public OrdEmsView SwitchEmsView(BaseEmsView newCard) { rootView.RemoveRenderAll(); newCard.Dock = DockStyle.None; newCard.Context = this.Context; this.rootView.AddControl(newCard, ControlPosition.Center); return(this); }
protected override void InitializeBizView() { rootView = new XLayoutPanel { Dock = DockStyle.Fill }; this.AddRender(rootView); //base.InitializeBizView(); // 创建原始表格 - 药品 this.tableControl = DefaultTableControl; }
public override bool OrdValivate(object model, BaseEmsView sender) { base.OrdValivate(model, sender); XapDataList <EmsOrDrug> emsdrugs = (model as EmsTreatViewModel).GetTableDataSource() as XapDataList <EmsOrDrug>; #region 剂|总量大于0 foreach (EmsOrDrug item in emsdrugs) { if (item.Quan_med == null || item.Quan_med.ToDouble() <= 0) { sender.OrdErrorList.Add(item.Name_mm + "剂量必须大于0!"); } } #endregion return(sender.OrdErrorList.Count == 0); }
public override bool OrdValivate(object model, BaseEmsView sender) { bool bRet = true; bRet &= base.OrdValivate(model, sender); EmsApbuViewModel ubm = model as EmsApbuViewModel; CiordubDTO ubItem = ubm.GetFormDataSource() as CiordubDTO; // 用血量小于等于备血量 if (ubItem.Quan_medu_ub > ubItem.Quan_medu) { sender.OrdErrorList.Add("用血量不能大于备血量!"); } return(sender.OrdErrorList.Count == 0); }
public virtual BaseEmsDriver Initialize(BaseFormBizView c, Ent4BannerDTO e, SrvMatchEmsRstDTO eo) { this.ent4Banner = e; this.EmsMgrDTO = eo; if (null == c) { return(null); } //if (null == this.emsView) { this.emsView = this.CreateEmsView(c); } BaseEmsViewModel model = this.GetEmsModel(); model.SetContext(c.Context); this.emsView.SetViewModel(model); return(this); }
public override bool OrdValivate(object model, BaseEmsView sender) { sender.OrdErrorList.Clear(); if (!(sender is EmsHerbsViewGrid)) { base.OrdValivate(model, sender); } var Emsdrugs = (model as EmsHerbsViewModel).GetFormDataSource() as EmsDrugItemDO; #region 检查空数据 { var drug = Emsdrugs.EmsOrDrugList.ToList().FirstOrDefault(p => p.Id_srv == null); if (drug != null) { sender.OrdErrorList.Add("草药列表中存在空数据,请删除后保存"); } } #endregion #region 检查草药总量为 0 { var resultList = Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED).ToList().Where(p => p.Quan_cur == null || p.Quan_cur == 0); if (resultList.Count() > 0) { sender.OrdErrorList.Add(String.Join(",", resultList.Select(p => p.Name_mm)) + " 总量为 0"); } } #endregion #region 药品库存的判断 string mmcounterror = LogicEx.GetInstance().validateDrugCount(Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED).ToList()); if (!string.IsNullOrEmpty(mmcounterror)) { sender.OrdErrorList.Add(mmcounterror); } #endregion return(sender.OrdErrorList.Count == 0); }
public override bool OrdValivate(object model, BaseEmsView sender) { EmsDrugItemDO Emsdrugs = (model as EmsDrugsViewModel).GetFormDataSource() as EmsDrugItemDO; if (base.OrdValivate(model, sender) && Emsdrugs != null) { #region 药品重复检查 IEnumerable <IGrouping <string, EmsOrDrug> > enuma = Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED).GroupBy(i => i.Id_mm).Where(g => g.Count() > 1); bool bcf = enuma.Count() >= 1; if (bcf) { foreach (IGrouping <string, EmsOrDrug> group in enuma) { EmsOrDrug ems = group.First(); sender.OrdErrorList.Add("药品【" + ems.Name_mm + "】有重复!"); } } #endregion #region 空药品 if (Emsdrugs.EmsOrDrugList.Count(p => !p.IsDELETED && string.IsNullOrEmpty(p.Id_srv)) > 0) { sender.OrdErrorList.Add("药品有空数据!"); } #endregion #region 剂|总量大于0 foreach (EmsOrDrug item in Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED).ToList()) { if (item.Quan_med == null || item.Quan_med.ToDouble() <= 0) { sender.OrdErrorList.Add(item.Name_mm + "剂量必须大于0!"); } if (item.Quan_cur == null || item.Quan_cur.ToDouble() <= 0) { sender.OrdErrorList.Add(item.Name_mm + "总量必须大于0!"); } } #endregion List <string> depMps = new List <string>(); foreach (EmsOrDrug item in Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED).ToList()) { if (!depMps.Contains(item.Id_mp_dep)) { depMps.Add(item.Id_mp_dep); } } if (depMps.Count() > 1) { sender.OrdErrorList.Add("药品的执行科室不一致,不能保存!"); } #region 执行科室校验 #endregion #region 在院执行为true时,在院执行次数必须大于0 if (Emsdrugs.Fg_mp_in == true && (Emsdrugs.Times_mp_in == null || Emsdrugs.Times_mp_in <= 0)) { sender.OrdErrorList.Add("在院执行时,在院执行次数必须大于0!"); } #endregion #region 药品不能为空 if (Emsdrugs.EmsOrDrugList.Count(p => !p.IsDELETED) == 0) { sender.OrdErrorList.Add("药品不能为空!"); } #endregion #region 用药天数必须大于0 if (Emsdrugs.Use_days < 0) { sender.OrdErrorList.Add("用药天数小于0!"); } #endregion #region 药品的单价不能为空 string priceError = ""; foreach (EmsOrDrug drug in Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED)) { if (drug.Price == null) { priceError += "药品【" + drug.Name_srv + "】的价格为空,请与信息科联系!"; } } if (priceError != "") { sender.OrdErrorList.Add(priceError); } #endregion #region 校验每个服务的药品用法是否在剂型关联的用法集合里 List <string> id_dosages = new List <string>(); foreach (EmsOrDrug drug in Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED)) { id_dosages.Add(drug.Id_dosage); } RouteDosageRefDO[] rdros = LogicEx.GetInstance().getRouteDoSageRefDOById_dosages(id_dosages); string error = ""; foreach (EmsOrDrug drug in Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED)) { RouteDosageRefDO item = rdros.FirstOrDefault(p => p.Id_dosage == drug.Id_dosage && p.Id_route == drug.Id_route); if (item == null) { UdidocDO udidoc = LogicEx.GetInstance().getUdidocDOById(drug.Id_dosage); if (udidoc != null) { error += drug.Name_srv + "剂型为" + udidoc.Name + ",不能使用" + drug.Name_route + "用法;"; } } } if (error != "") { sender.OrdErrorList.Add(error); } #endregion #region 药品库存的判断 string mmcounterror = LogicEx.GetInstance().validateDrugCount(Emsdrugs.EmsOrDrugList.ToList()); if (!string.IsNullOrEmpty(mmcounterror)) { sender.OrdErrorList.Add(mmcounterror); } #endregion #region 空数据记录提示 EmsOrDrug drugitem = Emsdrugs.EmsOrDrugList.Where(p => !p.IsDELETED).ToList().FirstOrDefault(p => p.Id_srv == null); if (drugitem != null) { sender.OrdErrorList.Add("医疗单列表中存在空数据,请删除后保存"); } #endregion #region 用法数据完整性校验 if (String.IsNullOrEmpty(Emsdrugs.Id_route)) { sender.OrdErrorList.Add("药品的用法ID为空,请重新选择用法"); } #endregion } return(sender.OrdErrorList.Count == 0); }
public override bool OrdValivate(object model, BaseEmsView sender) { return(base.OrdValivate(model, sender)); }
public CustomQuanCurControl(BaseEmsView emsView) : base() { this.emsView = emsView; }