Esempio n. 1
0
        /// <summary>
        /// 保存组套选择的结果(诊断、病历、医嘱模板、医疗服务)
        /// </summary>
        /// <param name="msDTO">组套对象</param>
        private void SaveMkrmsSelectedResult(MsDTO msDTO)
        {
            // 有效性判断
            if (null == msDTO)
            {
                return;
            }

            // 诊断 MkrMsDiDO
            FArrayList mkrMsDiDOList = msDTO.Dis;
            //医疗服务 MkrMsSrvDO
            FArrayList mkrMsSrvDOList = msDTO.Srvs;
            // 医嘱模板 MkrMsOrtpl
            FArrayList mkrMsOrtplList = msDTO.Ortpls;
            // 病历模板 MkrMsMrtplDO
            FArrayList mkrMsMrtplDOList = msDTO.Mrtpls;

            //病历不为空时发送保存病历段落事件
            if (mkrMsMrtplDOList != null && mkrMsMrtplDOList.Count > 0)
            {
                this.FireMrWriteBackBizEvent(this, mkrMsMrtplDOList[0]);
            }

            // 是否保存新增的诊断,如果本次未选择诊断,该值返回false, 如果选了诊断返回为true
            bool isProcessSaveCIDI = false;
            // 保存诊断
            List <DIDTO> didtList = this.assiCidiViewModel.SaveMkrMsDIDTOList(mkrMsDiDOList, ref isProcessSaveCIDI);

            // 如果不存在已保存的诊断,也未勾选诊断,不允许保存医嘱
            if ((didtList == null || didtList.Count == 0))
            {
                if (mkrMsSrvDOList != null || mkrMsOrtplList != null)
                {
                    BizAssMessageBoxUtil.ShowCidiIsNullMsg("门诊组套");
                    return;
                }
            }
            else if (isProcessSaveCIDI)// 有新增诊断时进行保存
            {
                //发送诊断保存成功事件 TODO 修改
                AssToolEx.SentMessage(this, declare.EventCodeType.EVENT_ORDI_SAVESUCCE, "DIDTOLIST", didtList);
            }

            // 医疗服务、医嘱模板转换医疗单
            if (mkrMsSrvDOList != null || mkrMsOrtplList != null)
            {
                MoreEmsParamDTO moreEmsDto = this.assiCiorderViewModel.SaveOrderAndOrtmpl(mkrMsSrvDOList, mkrMsOrtplList);
                AssToolEx.SentMessage(this, EventCodeType.EVENT_EMS_TMPL_EDIT, EventCodeType.ARGKEY_EMS_TMPL_EDIT, moreEmsDto);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 保存医嘱,保存失败的医嘱转发给医疗单处理
        /// </summary>
        /// <param name="obj"></param>
        private void LoadCiEms(object obj)
        {
            CiOrderDO[] ciorders = (CiOrderDO[])obj;
            if (ciorders != null && ciorders.Length > 0)
            {
                string[] idOrs = new string[ciorders.Length];

                for (int i = 0; i < ciorders.Length; i++)
                {
                    idOrs[i] = ciorders[i].Id_or;
                }

                CiOrdViewModel  ciordModel = new CiOrdViewModel(this.Ent4BannerDTO, this.Context);
                MoreEmsParamDTO moreEmsDto = ciordModel.GetMoreEmsParam(idOrs);

                AssToolEx.SentMessage(this, EventCodeType.EVENT_EMS_TMPL_EDIT, EventCodeType.ARGKEY_EMS_TMPL_EDIT, moreEmsDto);
            }
        }
Esempio n. 3
0
        public object exec(object param)
        {
            AssButtonView       owner            = param as AssButtonView;
            OpOrderTemplateForm OrderSevrice_Frm = new OpOrderTemplateForm(owner, 0);

            // helperForm OrderSevrice_Frm = new helperForm(this);
            OrderSevrice_Frm.Location = new Point(200, 400);
            if (OrderSevrice_Frm.ShowDialog() == DialogResult.OK)
            {
                List <OrTplNItmDO> list = new List <OrTplNItmDO>();
                if (OrderSevrice_Frm.view.Args != null)
                {
                    foreach (Object item in OrderSevrice_Frm.view.Args.listObj)
                    {
                        if ((item as OrTplNItmDO) != null)
                        {
                            list.Add(item as OrTplNItmDO);
                        }
                    }
                }
                //保存数据库
                CiEnContextDTO envinfo = new CiEnContextDTO();
                envinfo.Code_entp  = owner.ent4BannerDTO.Code_entp;
                envinfo.Id_dep_or  = owner.Context.Dept.Id_dep;
                envinfo.Id_en      = owner.ent4BannerDTO.Id_ent;
                envinfo.Id_emp_or  = owner.Context.PsnInfo.Id_psndoc;
                envinfo.Id_entp    = owner.ent4BannerDTO.Id_entp;
                envinfo.Id_grp     = owner.Context.Group.Id_grp;
                envinfo.Id_hp      = owner.ent4BannerDTO.Id_hp;
                envinfo.Id_org     = owner.Context.Org.Id_org;
                envinfo.Id_pat     = owner.ent4BannerDTO.Id_pat;
                envinfo.Emsappmode = (int)EmsAppModeEnum.IVEMSAPPMODE;        //智慧版
                MoreEmsParamDTO moreEmsDto = owner.model.getMoreEmsParamDTO(envinfo, list.ToArray());

                AssToolEx.SentMessage(owner, EventCodeType.EVENT_EMS_TMPL_EDIT, EventCodeType.ARGKEY_EMS_TMPL_EDIT, moreEmsDto);
            }
            return(null);
        }
Esempio n. 4
0
 /// <summary>
 /// 医嘱模板 医技常规 服务分类 的事件
 /// </summary>
 /// <param name="moreEmsDto"></param>
 public void FireEventSent(MoreEmsParamDTO moreEmsDto)
 {
     AssToolEx.SentMessage(this, EventCodeType.EVENT_EMS_TMPL_EDIT, EventCodeType.ARGKEY_EMS_TMPL_EDIT, moreEmsDto);
 }
Esempio n. 5
0
        /// <summary>
        /// 医嘱模板处理
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        protected bool EventOrderTmplHandle(MoreEmsParamDTO o)
        {
            if (!string.IsNullOrEmpty(o.Prompt_msg))
            {
                BizAssMessageBoxUtil.ShowInforMsg(o.Prompt_msg);
            }
            // 有效性检查
            if (o.Errormap2 == null || o.Errormap2.Values.Count == 0)
            {
                return(false);
            }


            //var waitting = new AssWaittingTool(this.FindForm());


            bool hasError = false;

            // 异常处理
            try {
                // 建立等待标志
                NAppWaiting.Instance.Show(this);
                ClearEmsEditorView();

                var emsList = o.Errormap2.Values.Cast <CiEmsDTO>().ToList();
                GetSelectedEmsView().OnEventHandle(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_DIRECT_EDIT, EmsEditParameter.TAGKEY, new EmsEditParameter {
                    EmsDTO = emsList[0] as CiEmsDTO
                }));
                SetSelectedEmsViewTooltip(o.Errormap2.Keys.Cast <String>().ToList()[0]);
                for (int index = 1; index < emsList.Count; ++index)
                {
                    var te = this.AddTabEmsView();
                    try {
                        te.OnEventHandle(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_DIRECT_EDIT, EmsEditParameter.TAGKEY, new EmsEditParameter {
                            EmsDTO = emsList[index] as CiEmsDTO
                        }));
                    }
                    catch (Exception e) {
                        this.SetStatusMsg(e.StackTrace);
                        EventCloseEmsHandle(te);
                    }

                    SetSelectedEmsViewTooltip(o.Errormap2.Keys.Cast <String>().ToList()[index]);
                }

                this.SwitchEmsContainer(GetSelectedEmsView());
                // GetEmsButtonGroupView().OnEventHandle(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_ALLOW_EDIT));
            }
            catch (XapServiceException e) {
                this.SetStatusMsg(e.ErrorMsg.Message);
                hasError = true;
            }
            catch (Exception e) {
                this.SetStatusMsg(e.StackTrace);
                hasError = true;
            }
            finally {
                NAppWaiting.Instance.Close();
                if (hasError)
                {
                    EventCloseEmsHandle(null);
                    this.ShowInfo("医疗单中存在错误,打开失败!");
                }
            }
            //this.ResumeLayout(false);
            //this.PerformLayout();

            return(true);
        }