Example #1
0
        /// <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
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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();
        }
Example #4
0
        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);
 }
Example #6
0
        public OrdEmsView SwitchEmsView(BaseEmsView newCard)
        {
            rootView.RemoveRenderAll();

            newCard.Dock    = DockStyle.None;
            newCard.Context = this.Context;
            this.rootView.AddControl(newCard, ControlPosition.Center);

            return(this);
        }
Example #7
0
        protected override void InitializeBizView()
        {
            rootView = new XLayoutPanel {
                Dock = DockStyle.Fill
            };
            this.AddRender(rootView);
            //base.InitializeBizView();
            // 创建原始表格 - 药品

            this.tableControl = DefaultTableControl;
        }
Example #8
0
        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);
        }
Example #9
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);
        }
Example #10
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);
        }
Example #11
0
        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);
        }
Example #12
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);
        }
Example #13
0
 public override bool OrdValivate(object model, BaseEmsView sender)
 {
     return(base.OrdValivate(model, sender));
 }
Example #14
0
 public CustomQuanCurControl(BaseEmsView emsView)
     : base()
 {
     this.emsView = emsView;
 }