/// <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); } }
/// <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); } }
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); }
/// <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); }
/// <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); }