/// <summary> /// 优化后方法 /// </summary> /// <param name="emsCreateParameter"></param> /// <param name="pos"></param> /// <returns></returns> private bool New_LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos) { base.LoadMedSrv(emsCreateParameter, pos); MedSrvDO med = emsCreateParameter.getMedSrvDO(); this.uiEmsDTO.MedSrvDO = med; var ub = GetCustomParam() as CiordubDTO; Dictionary <String, Object> ctmInfo = new Dictionary <string, object>(); ctmInfo.Add("CustomInfo", ub.Id_or_rel); EmsRstDTO[] rsts = CreateRemote(med.Id_srv, null, ctmInfo); EmsRstDTO rst = rsts[0]; if (rst != null) { if (null == this.uiEmsDTO.CiordubDTO) { this.uiEmsDTO.CiordubDTO = new CiordubDTO(); } uiEmsDTO.CiordubDTO.deSerializeJson((rst.Document[0] as CiordubDTO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.CiordubDTO.deSerializeJson(utf8Str); if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; } tableDatasource.Add(this.uiEmsDTO.CiordubDTO); } return(true); }
/// <summary> /// 新建医疗单 /// </summary> /// <param name="emsCreatedParameter"></param> /// <param name="pos"></param> /// <returns></returns> public override bool LoadMedSrv(EmsCreatedParameter emsCreatedParameter, int pos) //EmsCreateParameter { base.LoadMedSrv(emsCreatedParameter, pos); MedSrvDO med = emsCreatedParameter.getMedSrvDO(); this.uiEmsDTO.MedSrvDO = med; EmsRstDTO[] rsts = CreateRemote(med.Id_srv); EmsRstDTO rst = rsts[0]; if (rst != null) { uiEmsDTO.Emsapop.deSerializeJson((rst.Document[0] as EmsOpitemDO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.Emsapop.deSerializeJson(utf8Str); if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; strSd_srvtp = this.uiEmsDTO.MedSrvDO.Sd_srvtp; } tableDatasource.Clear(); tableDatasource.Add(uiEmsDTO.Emsapop); //this.LoadIndicatorData(); // 动态指标 if (null != uiEmsDTO.Emsapop.OpCheckIndicatorList) { uiEmsDTO.Emsapop.OpCheckIndicatorList.Cast <OrdApSugViewItemDO>().ToList().ForEach(item => { uiEmsDTO.Emsapop.OpLabItem.Add(item); }); } } return(true); }
/// <summary> /// 加载病理数据 /// </summary> /// <param name="medSrvDO"></param> public override bool LoadMedSrv(EmsCreatedParameter emsCreatedParameter, int pos) { base.LoadMedSrv(emsCreatedParameter, pos); MedSrvDO medSrvDO = emsCreatedParameter.getMedSrvDO(); this.uiEmsDTO.MedSrvDO = medSrvDO; EmsRstDTO[] rsts = CreateRemote(medSrvDO.Id_srv); EmsRstDTO rst = rsts[0]; if (rst != null) { uiEmsDTO.Emsappathgy.deSerializeJson((rst.Document[0] as EmsPathgyItemDO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.Emsappathgy.deSerializeJson(utf8Str); if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; strSd_srvtp = this.uiEmsDTO.MedSrvDO.Sd_srvtp; } this.lstEmsPathgyItemDO.Clear(); if (uiEmsDTO.Emsappathgy.EmsItemInpathgy.Count <= 0) { uiEmsDTO.Emsappathgy.EmsItemInpathgy.AddNew(); uiEmsDTO.Emsappathgy.EmsItemInpathgy[0].Sortno = 1; } this.lstEmsPathgyItemDO.Add(uiEmsDTO.Emsappathgy); } return(true); }
/// <summary> /// 从服务项新建医疗单医嘱条目 /// </summary> /// <param name="med"></param> /// <param name="pos"></param> /// <returns></returns> public override bool LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos) //EmsCreateParameter { base.LoadMedSrv(emsCreateParameter, pos); MedSrvDO med = emsCreateParameter.getMedSrvDO(); // 暂存药品服务 this.uiEmsDTO.MedSrvDO = med; EmsRstDTO[] rsts = CreateRemote(med.Id_srv); EmsRstDTO rst = rsts[0]; if (rst != null) { uiEmsDTO.Emsapcons.deSerializeJson((rst.Document[0] as EmsConsItemDO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.Emsapcons.deSerializeJson(utf8Str); if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; this.strSd_srvtp = this.uiEmsDTO.MedSrvDO.Sd_srvtp; } this.uiEmsDTO.Emsapcons.Dt_begin_ui = this.uiEmsDTO.Emsapcons.Dt_begin_ui == null?this.NowTime() : this.uiEmsDTO.Emsapcons.Dt_begin_ui; this.uiEmsDTO.Emsapcons.Use_days = 1; this.uiEmsDTO.Emsapcons.Dt_end_ui = ((DateTime)this.uiEmsDTO.Emsapcons.Dt_begin_ui).AddDays((int)this.uiEmsDTO.Emsapcons.Use_days); this.uiEmsDTO.Emsapcons.Times_cur = CalQuantumUtil.GetInstance().getTotalTimes(med.Id_freq, this.uiEmsDTO.Emsapcons.Use_days); this.tableDataSource.Clear(); this.tableDataSource.Add(uiEmsDTO.Emsapcons); if (this.uiEmsDTO.Emsapcons.ConsAssList != null) { if (null == this.uiEmsDTO.Emsapcons.EmsConsAssistItem) { this.uiEmsDTO.Emsapcons.EmsConsAssistItem = new XapDataList <EmsItemInCons>(); } this.uiEmsDTO.Emsapcons.EmsConsAssistItem.Clear(); this.uiEmsDTO.Emsapcons.ConsAssList.Cast <EmsItemInCons>().ToList().ForEach(o => { this.uiEmsDTO.Emsapcons.EmsConsAssistItem.Add(o); }); } if (this.uiEmsDTO.Emsapcons.ConsItemList != null) { if (null == this.uiEmsDTO.Emsapcons.EmsConsItem) { this.uiEmsDTO.Emsapcons.EmsConsItem = new XapDataList <EmsItemInCons>(); } this.uiEmsDTO.Emsapcons.EmsConsItem.Clear(); this.uiEmsDTO.Emsapcons.ConsItemList.Cast <EmsItemInCons>().ToList().ForEach(o => { this.uiEmsDTO.Emsapcons.EmsConsItem.Add(o); }); } } return(true); }
/// <summary> /// 从药品服务项目创建医嘱 /// </summary> /// <param name="med"></param> public override bool LoadMedSrv(EmsCreatedParameter emsCreatedParameter, int pos) //EmsCreateParameter { base.LoadMedSrv(emsCreatedParameter, pos); MedSrvDO med = emsCreatedParameter.getMedSrvDO(); EmsRstDTO[] rsts = CreateRemote(med.Id_srv); EmsRstDTO rst = rsts[0]; if (rst != null) { uiEmsDTO.Emsaplab.deSerializeJson((rst.Document[0] as EmsObsItemDO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.Emsaplab.deSerializeJson(utf8Str); if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; strSd_srvtp = this.uiEmsDTO.MedSrvDO.Sd_srvtp; } // 处理执行科室过滤条件 if (null != rst.Extension && rst.Extension.Keys.Contains("MpDepFilter")) { this.strID_Dep_Mps = (String)rst.Extension["MpDepFilter"]; } if (this.uiEmsDTO.Emsaplab.EmsOrDrugListEx != null) { if (null == this.uiEmsDTO.Emsaplab.EmsOrDrugList) { this.uiEmsDTO.Emsaplab.EmsOrDrugList = new XapDataList <EmsOrDrug>(); } this.uiEmsDTO.Emsaplab.EmsOrDrugList.Clear(); this.uiEmsDTO.Emsaplab.EmsOrDrugListEx.Cast <EmsOrDrug>().ToList().ForEach(o => { this.uiEmsDTO.Emsaplab.EmsOrDrugList.Add(o); }); } // 处理套项目信息 if (this.uiEmsDTO.Emsaplab.EmsOrObsListEx != null) { if (null == this.uiEmsDTO.Emsaplab.EmsOrObsList) { this.uiEmsDTO.Emsaplab.EmsOrObsList = new XapDataList <EmsObsLap>(); } this.uiEmsDTO.Emsaplab.EmsOrObsList.Clear(); this.uiEmsDTO.Emsaplab.EmsOrObsListEx.Cast <EmsObsLap>().ToList().ForEach(o => { this.uiEmsDTO.Emsaplab.EmsOrObsList.Add(o); }); } } return(true); }
public override bool LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos) //EmsCreateParameter { base.LoadMedSrv(emsCreateParameter, pos); MedSrvDO med = emsCreateParameter.getMedSrvDO(); uiEmsDTO.MedSrvDO = med; tableDatasource = new XapDataList <EmsBtItemDO>(); EmsRstDTO[] rsts = CreateRemote(med.Id_srv); EmsRstDTO rst = rsts[0]; if (rst != null) { uiEmsDTO.Emsapbt.deSerializeJson((rst.Document[0] as EmsBtItemDO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.Emsapbt.deSerializeJson(utf8Str); if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; this.strSd_srvtp = this.uiEmsDTO.MedSrvDO.Sd_srvtp; } if (rst.Extension != null && rst.Extension.Keys.Contains("MpDepFilter")) { strMpDeps = rst.Extension["MpDepFilter"] as String; } tableDatasource.Add(uiEmsDTO.Emsapbt); // 动态指标 if (null != uiEmsDTO.Emsapbt.BtLabItemEx) { uiEmsDTO.Emsapbt.BtLabItemEx.Cast <OrdApSugViewItemDO>().ToList().ForEach(item => { uiEmsDTO.Emsapbt.BtLabItem.Add(item); item.PropertyChanged += ordApSugViewItemDO_PropertyChanged; }); } } return(true); }
/// <summary> /// 优化前方法 /// </summary> /// <param name="emsCreateParameter"></param> /// <param name="pos"></param> /// <returns></returns> private bool Old_LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos) { base.LoadMedSrv(emsCreateParameter, pos); MedSrvDO med = emsCreateParameter.getMedSrvDO(); med = XapServiceMgr.find <IMedsrvMDOCrudService>().findById(med.Id_srv); this.uiEmsDTO.MedSrvDO = med; orDataBing.AddBtDataBing(this.uiEmsDTO, med); var ub = GetCustomParam() as CiordubDTO; this.uiEmsDTO.CiordubDTO = ub; this.uiEmsDTO.CiordubDTO.Dt_bu_pl_ub = CommonExtentions.NowTime(this); tableDatasource = new XapDataList <CiordubDTO>(); //执行科室 OrWfDeptInfoDTO wf = new GetDeptMpImp().GetDept_mp_ids(this.uiEmsDTO.PatInfo.Code_entp, this.uiEmsDTO.PatInfo.Id_entp, this.uiEmsDTO.MedSrvDO.Sd_srvtp, this.uiEmsDTO.MedSrvDO.Id_srvca, this.uiEmsDTO.MedSrvDO.Id_srv, this.uiEmsDTO.MedSrvDO.Id_route, "", this.uiEmsDTO.PatInfo.Id_dep_nur, this.uiEmsDTO.PatInfo.Id_dep_phy); if (wf != null) { uiEmsDTO.CiordubDTO.Id_mp_dep = wf.Firstid_mp_dept; uiEmsDTO.CiordubDTO.Name_mp_dep = wf.Firstname_mp_dept; } this.uiEmsDTO.CiordubDTO.Dt_bu_pl_ub = this.uiEmsDTO.CiordubDTO.Dt_begin_ui = this.uiEmsDTO.CiordubDTO.Dt_bu_pl_ub == null?this.NowTime() : this.uiEmsDTO.CiordubDTO.Dt_bu_pl_ub; this.uiEmsDTO.CiordubDTO.Use_days = 1; this.uiEmsDTO.CiordubDTO.Dt_end_ui = ((DateTime)this.uiEmsDTO.CiordubDTO.Dt_begin_ui).AddDays((int)this.uiEmsDTO.CiordubDTO.Use_days); this.uiEmsDTO.CiordubDTO.Times_cur = CalQuantumUtil.GetInstance().getTotalTimes(med.Id_freq, this.uiEmsDTO.CiordubDTO.Use_days); tableDatasource.Add(this.uiEmsDTO.CiordubDTO); //*/ // ++ return(true); }
public override bool LoadMedSrv(EmsCreatedParameter emsCreatedParameter, int pos) //EmsCreateParameter { base.LoadMedSrv(emsCreatedParameter, pos); MedSrvDO med = emsCreatedParameter.getMedSrvDO(); Dictionary <String, Object> ctmInfo = new Dictionary <string, object>(); ctmInfo.Add("CustomInfo", emsCreatedParameter.GetParameter() == null ? null : emsCreatedParameter.GetParameter().ToString()); EmsRstDTO[] rsts = CreateRemote(med.Id_srv, null, ctmInfo); EmsRstDTO rst = rsts[0]; if (rst != null) { uiEmsDTO.Emsdrugs.deSerializeJson((rst.Document[0] as EmsDrugItemDO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.Emsdrugs.deSerializeJson(utf8Str); if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; strSd_srvtp = this.uiEmsDTO.MedSrvDO.Sd_srvtp; } if (null != rst.Extension && rst.Extension.Keys.Contains("MpDepFilter")) { this.strMpDepFilter = (String)rst.Extension["MpDepFilter"]; } if (null != uiEmsDTO.Emsdrugs.EmsOrDrugListEx) { uiEmsDTO.Emsdrugs.EmsOrDrugList.Clear(); uiEmsDTO.Emsdrugs.EmsOrDrugListEx.Cast <EmsOrDrug>().ToList().ForEach(item => { uiEmsDTO.Emsdrugs.EmsOrDrugList.Add(item); }); } } return(true); }
public override bool LoadMedSrv(EmsCreatedParameter emsCreatedParameter, int pos) //EmsCreateParameter { MedSrvDO med = emsCreatedParameter.getMedSrvDO(); String id_mm = emsCreatedParameter.getMmID(); if (String.IsNullOrEmpty(id_mm)) { this.errorMsgString = "没有物品ID"; return(false); } // 获取列表最后一个数据 EmsOrDrug newDrug = null; AssCostTimeTool.Enabled = true; AssCostTimeTool t1 = new AssCostTimeTool("加载数据时候,LoadMedSrv2 解析 MedSrv 耗时:", false); EmsRstDTO[] rsts = CreateRemote(med.Id_srv, id_mm); EmsRstDTO rst = rsts[0]; if (rst != null) { EmsDrugItemDO emsDrugItem = (rst.Document[0] as EmsDrugItemDO); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //EmsDrugItemDO emsDrugItem = new EmsDrugItemDO(); //emsDrugItem.deSerializeJson(utf8Str); FMap2 emsExtMap = rst.Extension; MedSrvDO medSrv = emsExtMap["MedSrvDO"] as MedSrvDO; OrWfDeptInfoDTO wf = emsExtMap["OrWfDeptInfoDTO"] as OrWfDeptInfoDTO; emsDrugItem.EmsOrDrug = new XapDataList <EmsOrDrug>(); // 列表中显示的物品 XapDataList <EmsOrDrug> emsOrDrugList = new XapDataList <EmsOrDrug>(); FArrayList drugList_ex = emsDrugItem.EmsOrDrugListEx; foreach (EmsOrDrug drug in drugList_ex) { emsOrDrugList.Add(drug); emsDrugItem.EmsOrDrug.Add(drug); } newDrug = this.GetSelectedObject() as EmsOrDrug; if (pos < 0) { this.uiEmsDTO.MedSrvDO = med; emsDrugItem.EmsOrDrugList = emsOrDrugList; this.uiEmsDTO.Emsdrugs = emsDrugItem; return(true); } //TODO: 可以放到查询药品前,重复就不用走后台了 if (this.uiEmsDTO.Emsdrugs.EmsOrDrugList.Count(p => p.Name_srv == newDrug.Name_srv && !p.IsDELETED) > 1) { this.errorMsgString = "已经存在服务【" + medSrv.Name + "】!"; this.uiEmsDTO.Emsdrugs.EmsOrDrugList.Remove(newDrug); this.logicEx.Clear <EmsOrDrug>(newDrug); newDrug.Status = DOStatus.NEW; this.uiEmsDTO.Emsdrugs.EmsOrDrug.Clear(); this.uiEmsDTO.Emsdrugs.EmsOrDrug.Add(newDrug); return(false); } // 获取从后台返回的用于医嘱列表显示的数据 if (emsOrDrugList == null || string.IsNullOrEmpty(emsOrDrugList[0].Id_mm)) {// TODO 什么情况没有数据 this.errorMsgString = "服务未绑定物品,请联系信息科!"; this.logicEx.Clear <EmsOrDrug>(newDrug); return(false); } EmsOrDrug tempDrug = emsOrDrugList[0]; if (!newDrug.IsUPDATED) { tempDrug.Status = DOStatus.NEW; } else { // 增加该逻辑分支 针对 已保存的 医嘱项目 进行服务项目的修改 -- 2016-11-21 by wangqz tempDrug.Status = DOStatus.UPDATED; tempDrug.Id_orsrv = newDrug.Id_orsrv; } // 新加的药品要与已有的保持同频次,同周期,同用法 tempDrug.Id_route = this.uiEmsDTO.Emsdrugs.Id_route; tempDrug.Name_route = this.uiEmsDTO.Emsdrugs.Name_route; // 草药外配标识在医疗单中,勾选外配,全为外配 tempDrug.Fg_extdispense = this.uiEmsDTO.Emsdrugs.Fg_extdispense; // 同频次 tempDrug.Id_freq = this.uiEmsDTO.Emsdrugs.Id_freq; tempDrug.Name_freq = this.uiEmsDTO.Emsdrugs.Name_freq; tempDrug.Sd_frequnitct = this.uiEmsDTO.Emsdrugs.Sd_frequnitct; tempDrug.Freqct = this.uiEmsDTO.Emsdrugs.Freqct; // 如果只有一条记录,恢复到服务默认的频次,用法 fillSameInfoWithMedSrvDO(tempDrug, medSrv); // 同周期 tempDrug.Use_days = this.uiEmsDTO.Emsdrugs.Use_days; // 计算总次数 TODO 需要提供前台计算方法,数据都有了,不用走后台了 int?times_cur = this.uiEmsDTO.Emsdrugs.Times_cur; // CalQuantumUtil.GetInstance().getTotalTimes(tempDrug.Id_freq, (int)this.uiEmsDTO.Emsdrugs.Use_days); int?orders = this.uiEmsDTO.Emsdrugs.Orders; // 计算总量 tempDrug.Quan_cur = CalQuantumUtil.GetInstance().getMMQuantum(tempDrug.Sd_mupkgutp, tempDrug.Quan_med, tempDrug.Factor_mb, tempDrug.Factor_cb, orders); tempDrug.Totalprice = tempDrug.Price * tempDrug.Quan_cur; // 计算总价 // 将返回数据加到表格数据源中 newDrug.Replace(tempDrug); } return(true); }
/// <summary> /// 创建医疗服务单 /// </summary> /// <param name="medSrvDO"></param> private bool HandleCreateEms(EmsCreatedParameter emsCreateParameter, object param = null) { #region 1.有效性验证 // 针对 Banner 的 有效性判断,该结构中含有患者就诊信息结构 if (this.ent4BannerDTO == null || emsCreateParameter == null || emsCreateParameter.getMedSrvDO() == null) { return(false); } var medSrvDO = emsCreateParameter.getMedSrvDO(); #endregion #region 2.获取指定类型的医疗单UI对象 var t0 = new AssCostTimeTool(String.Format("创建医疗单时候({0}),总耗时:", medSrvDO.Name), false); var t1 = new AssCostTimeTool("创建医疗单时候,实例化UI模型耗时:", false); var ins = EmsDriverFactory.EmsDriverShare().DriverWith(medSrvDO.Id_srv, medSrvDO.Sd_srvtp, this, this.ent4BannerDTO); if (ins == null) { return(false); } var emsView = ins.GetEmsView(); GetDefaultEmsView().ClearContext(); SwitchEmsView(emsView); t1.SaveTimeLog(); #endregion #region 3.医疗单模型加载数据 emsView.GetViewModel().AddNew(); if (param == null) { param = emsCreateParameter.GetParameter(); } emsView.GetViewModel().SetCustomParam(param); // 加载数据 t1.Reset("创建医疗单时候,数据模型加载数据耗时:"); if (!emsView.GetViewModel().LoadMedSrv(emsCreateParameter)) { if (!String.IsNullOrEmpty(emsView.GetViewModel().GetErrorMsg())) { this.SetStatusMsg(emsView.GetViewModel().GetErrorMsg()); } return(false); } if (emsView.GetViewModel().GetTipInfoMsg().Length > 0 && !getFgselfpay(emsView.GetViewModel())) { this.ShowInfo(this, emsView.GetViewModel().GetTipInfoMsg()); //emsView.GetViewModel().ClearTipInfo(); } //服务不可开立校验 if (medSrvDO != null && !String.IsNullOrEmpty(medSrvDO.Id_srv)) { var dic = AssToolEx.OrdEnabelValivate((new String[] { medSrvDO.Id_srv }), this.ent4BannerDTO.Code_entp); if (dic.ContainsKey(medSrvDO.Id_srv)) { //this.SetStatusMsg(dic[medSrvDO.Id_srv]); this.ShowInfo(dic[medSrvDO.Id_srv]); return(false); } } ////异步执行的委托 //xap.rui.appfw.async.AsyncExecuteDelegate workDelegate = workArgs => //{ // //参数是Argument,这是自己传入的,自行转化类型 // var argList = workArgs.Argument as List<object>; // BaseEmsViewModel model = argList[0] as BaseEmsViewModel; // EmsCreatedParameter crt = argList[1] as EmsCreatedParameter; // // 异步调用,远程服务等。返回结果保存在参数的Result中。 // workArgs.Result = model.LoadMedSrv(crt); //}; ////异步执行完毕后,回到调用线程执行的完毕委托 //xap.rui.appfw.async.AsyncDoneDelegate doneDelegate = doneArgs => //{ // //如果已经取消了,则返回 // if (doneArgs.Cancelled) // return; // //如果异步执行时发生了异常,可以在这里处理 // if (doneArgs.Error != null) // { // Exception ex = doneArgs.Error; // //记录日志 // LogManager.GetLogger().ErrorEx(ex.Message, ex); // //发布异常到UI // ex.Publish(); // //标记为已处理异常,如果不标记,框架会抛出异常 // //doneArgs.ErrorHandled = true; // return; // } // //异步执行完毕后,处理异步数据结果 // var data = doneArgs.Result ; //}; //// //List<object> argsList = new List<object>(); //argsList.Add(emsView.GetViewModel()); //argsList.Add(emsCreateParameter); //// //workDelegate.AsyncExecute(argsList, doneDelegate); // 设置状态 this.isCreateEms = true; // 刷新UI emsView.Refresh(); t1.SaveTimeLog(); #endregion #region 4.其他医疗单状态处理 // t1.Reset("创建医疗单时候,其他事件处理耗时:"); this.allowEdit = true; // 允许 UI 编辑 var ret = this.SentNotify(EventCodeType.NM_UIMSG_ALLOW_EDIT); t1.SaveTimeLog(); t0.SaveTimeLog(); #endregion return(ret); }
/// <summary> /// 创建医疗单 /// </summary> /// <param name="emsCreateParameter"></param> /// <param name="pos"></param> /// <returns></returns> //public override bool LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos) //{ // base.LoadMedSrv(emsCreateParameter, pos); // MedSrvDO med = emsCreateParameter.getMedSrvDO(); // String id_mm = emsCreateParameter.getMmID(); // // 获取列表最后一个数据 // EmsOrDrug newDrug = null; // EmsCrtDTO emsCrt = new EmsCrtDTO(); // emsCrt.Id_srv = med.Id_srv; // emsCrt.Id_mm = id_mm; // emsCrt.EmsMgrInfo = this.emsMgrDTO; // emsCrt.EnContext = BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO; // emsCrt.EmsDriver = ((int)this.uiEmsDTO.EmsType).ToString(); // // 临时用,验证结束需要调整到后台 // emsCrt.CustomInfo = emsCreateParameter.GetParameter() == null ? null : emsCreateParameter.GetParameter().ToString(); // EmsRstDTO rst = emsMainService.create(emsCrt); // if (rst != null) // { // String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.EmsDocument)); // EmsDrugItemDO emsDrugItem = new EmsDrugItemDO(); // emsDrugItem.deSerializeJson(utf8Str); // FMap2 emsExtMap = rst.EmsExtension; // this.id_dosages = emsExtMap["id_dosages"] as string; // MedSrvDO medSrv = emsExtMap["MedSrvDO"] as MedSrvDO; // OrWfDeptInfoDTO wf = emsExtMap["OrWfDeptInfoDTO"] as OrWfDeptInfoDTO; // SkinTestRstDTO skinTestRst = emsExtMap["SkinTestRstDTO"] as SkinTestRstDTO; // if (emsExtMap["isShowWarnInfo"] != null && (bool)emsExtMap["isShowWarnInfo"]) // { // this.tipInfoMsgString = emsExtMap["specillDrugWarnInfo"] as string; // } // // 物品参照 // XapDataList<EmsOrDrug> emsOrDrugRef = new XapDataList<EmsOrDrug>(); // if (emsDrugItem.EmsOrDrugEx == null || emsDrugItem.EmsOrDrugEx.Count == 0) { // this.errorMsgString = "服务"+emsDrugItem.Name_srv+"未绑定物品,请联系信息科!"; // return false; // } // foreach (EmsOrDrug drug in emsDrugItem.EmsOrDrugEx) // { // emsOrDrugRef.Add(drug); // } // emsDrugItem.EmsOrDrug = emsOrDrugRef; // // 列表中显示的物品 // XapDataList<EmsOrDrug> emsOrDrugList = new XapDataList<EmsOrDrug>(); // FArrayList drugList_ex = emsDrugItem.EmsOrDrugListEx; // foreach (EmsOrDrug drug in drugList_ex) // { // emsOrDrugList.Add(drug); // } // if (pos < 0) // { // this.uiEmsDTO.MedSrvDO = med; // emsDrugItem.EmsOrDrugList = emsOrDrugList; // // 当物品id查询不到对应物品时,不做赋值操作 // if (emsOrDrugList.Count > 0) // { // this.uiEmsDTO.Emsdrugs = emsDrugItem; // } // newDrug = this.uiEmsDTO.Emsdrugs.EmsOrDrugList.LastOrDefault(); // } // else // { // newDrug = this.uiEmsDTO.Emsdrugs.EmsOrDrugList.ElementAt(pos); // } // // 设置当前选择项目 // SetSelectedObject(newDrug); // if (emsOrDrugList.Count == 0) // { // this.errorMsgString = med.Name + "(" + id_mm + "), 没有关联物品或者物品数据错误!"; // this.logicEx.Clear<EmsOrDrug>(newDrug); // return false; // } // // 获取从后台返回的用于医嘱列表显示的数据 // EmsOrDrug tempDrug = emsOrDrugList[0]; // //皮试判断逻辑 // string skinErrorInfo = AssToolEx.CheckSkinTestRst(tempDrug, skinTestRst, this.GetEnt4BannerDTO()); // if (!string.IsNullOrEmpty(skinErrorInfo)) // { // this.errorMsgString = skinErrorInfo; // this.logicEx.Clear<EmsOrDrug>(newDrug); // return false; // } // // 加载第一条记录信息已经是全的了,不用执行后边的 // if (pos < 0) // { // return true; // } // if (!newDrug.IsUPDATED) // { // tempDrug.Status = DOStatus.NEW; // } // else // { // 增加该逻辑分支 针对 已保存的 医嘱项目 进行服务项目的修改 -- 2016-11-21 by wangqz // tempDrug.Status = DOStatus.UPDATED; // } // // 保留id_orsrv ,当对编辑项通过退格键删除后,在选择其他服务,Id_orsrv存在 // tempDrug.Id_orsrv = newDrug.Id_orsrv; // // 新加的药品要与已有的保持同频次,同周期,同用法 // tempDrug.Id_route = this.uiEmsDTO.Emsdrugs.Id_route; // tempDrug.Name_route = this.uiEmsDTO.Emsdrugs.Name_route; // // 同频次 // tempDrug.Id_freq = this.uiEmsDTO.Emsdrugs.Id_freq; // tempDrug.Name_freq = this.uiEmsDTO.Emsdrugs.Name_freq; // tempDrug.Sd_frequnitct = this.uiEmsDTO.Emsdrugs.Sd_frequnitct; // tempDrug.Freqct = this.uiEmsDTO.Emsdrugs.Freqct; // // 如果只有一条记录,恢复到服务默认的频次,用法 // fillSameInfoWithMedSrvDO(tempDrug, medSrv); // // 同周期 // tempDrug.Use_days = this.uiEmsDTO.Emsdrugs.Use_days; // // 计算总次数 // int times_cur = CalQuantumUtil.GetInstance().getTotalTimes(tempDrug.Id_freq, (int)this.uiEmsDTO.Emsdrugs.Use_days); // // 计算总量 // tempDrug.Quan_cur = CalQuantumUtil.GetInstance().getMMQuantum(tempDrug.Sd_opmutp, tempDrug.Quan_med, tempDrug.Factor_mb, tempDrug.Factor_cb, times_cur); // // 计算总价 // tempDrug.Totalprice = tempDrug.Price * tempDrug.Quan_cur; // // 将返回数据加到表格数据源中 // newDrug.Replace(tempDrug); // } // return true; //} public override bool LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos) { base.LoadMedSrv(emsCreateParameter, pos); MedSrvDO med = emsCreateParameter.getMedSrvDO(); String id_mm = emsCreateParameter.getMmID(); Dictionary <String, Object> ctmInfo = new Dictionary <string, object>(); ctmInfo.Add("CustomInfo", emsCreateParameter.GetParameter() == null ? null : emsCreateParameter.GetParameter().ToString()); EmsRstDTO[] rsts = CreateRemote(med.Id_srv, id_mm, ctmInfo); EmsRstDTO rst = rsts[0]; if (rst != null) { // 获取列表最后一个数据 EmsOrDrug newDrug = null; EmsDrugItemDO emsDrugItem = (rst.Document[0] as EmsDrugItemDO); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //EmsDrugItemDO emsDrugItem = new EmsDrugItemDO(); //emsDrugItem.deSerializeJson(utf8Str); FMap2 emsExtMap = rst.Extension; this.id_dosages = emsExtMap["DosagesFilter"] as string; MedSrvDO medSrv = emsExtMap["MedSrvDO"] as MedSrvDO; OrWfDeptInfoDTO wf = emsExtMap["OrWfDeptInfoDTO"] as OrWfDeptInfoDTO; SkinTestRstDTO skinTestRst = emsExtMap["SkinTestRstDTO"] as SkinTestRstDTO; if (emsExtMap["IsShowWarnInfo"] != null && (bool)emsExtMap["IsShowWarnInfo"]) { this.tipInfoMsgString = emsExtMap["SpecilDrugWarnInfo"] as string; } // 物品参照 if (emsDrugItem.EmsOrDrug == null) { emsDrugItem.EmsOrDrug = new XapDataList <EmsOrDrug>(); } foreach (EmsOrDrug drug in emsDrugItem.EmsOrDrugListEx) { emsDrugItem.EmsOrDrug.Add(drug); } // 列表中显示的物品 XapDataList <EmsOrDrug> emsOrDrugList = new XapDataList <EmsOrDrug>(); foreach (EmsOrDrug drug in emsDrugItem.EmsOrDrugListEx) { emsOrDrugList.Add(drug); } // 获取从后台返回的用于医嘱列表显示的数据 EmsOrDrug tempDrug = emsOrDrugList[0]; if (pos < 0) { this.uiEmsDTO.MedSrvDO = med; emsDrugItem.EmsOrDrugList = emsOrDrugList; // 当物品id查询不到对应物品时,不做赋值操作 if (emsOrDrugList.Count > 0) { this.uiEmsDTO.Emsdrugs = emsDrugItem; } newDrug = this.uiEmsDTO.Emsdrugs.EmsOrDrugList.LastOrDefault(); this.uiEmsDTO.Emsdrugs.Id_dep = tempDrug.Id_mp_dep; this.uiEmsDTO.Emsdrugs.Name_dep = tempDrug.Name_mp_dep; } else { newDrug = this.uiEmsDTO.Emsdrugs.EmsOrDrugList.ElementAt(pos); } // 设置当前选择项目 SetSelectedObject(newDrug); //皮试判断逻辑 string skinErrorInfo = AssToolEx.CheckSkinTestRst(tempDrug, skinTestRst, this.GetEnt4BannerDTO()); if (skinErrorInfo != null) { this.errorMsgString = skinErrorInfo; this.logicEx.Clear <EmsOrDrug>(newDrug); return(false); } // 加载第一条记录信息已经是全的了,不用执行后边的 if (pos < 0) { return(true); } if (!newDrug.IsUPDATED) { tempDrug.Status = DOStatus.NEW; } else { // 增加该逻辑分支 针对 已保存的 医嘱项目 进行服务项目的修改 -- 2016-11-21 by wangqz tempDrug.Status = DOStatus.UPDATED; } // 保留id_orsrv ,当对编辑项通过退格键删除后,在选择其他服务,Id_orsrv存在 tempDrug.Id_orsrv = newDrug.Id_orsrv; // 新加的药品要与已有的保持同频次,同周期,同用法 tempDrug.Id_route = this.uiEmsDTO.Emsdrugs.Id_route; tempDrug.Name_route = this.uiEmsDTO.Emsdrugs.Name_route; // 同频次 tempDrug.Id_freq = this.uiEmsDTO.Emsdrugs.Id_freq; tempDrug.Name_freq = this.uiEmsDTO.Emsdrugs.Name_freq; tempDrug.Sd_frequnitct = this.uiEmsDTO.Emsdrugs.Sd_frequnitct; tempDrug.Freqct = this.uiEmsDTO.Emsdrugs.Freqct; // 如果只有一条记录,恢复到服务默认的频次,用法 fillSameInfoWithMedSrvDO(tempDrug, medSrv); // 同周期 tempDrug.Use_days = this.uiEmsDTO.Emsdrugs.Use_days; // 计算总次数 int times_cur = CalQuantumUtil.GetInstance().getTotalTimes(tempDrug.Id_freq, (int)this.uiEmsDTO.Emsdrugs.Use_days); // 计算总量 tempDrug.Quan_cur = CalQuantumUtil.GetInstance().getMMQuantum(tempDrug.Sd_opmutp, tempDrug.Quan_med, tempDrug.Factor_mb, tempDrug.Factor_cb, times_cur); // 计算总价 tempDrug.Totalprice = tempDrug.Price * tempDrug.Quan_cur; // 将返回数据加到表格数据源中 newDrug.Replace(tempDrug); } return(true); }
public override bool LoadMedSrv(EmsCreatedParameter emsCreatedParameter, int pos) //EmsCreateParameter { base.LoadMedSrv(emsCreatedParameter, pos); MedSrvDO med = emsCreatedParameter.getMedSrvDO(); this.uiEmsDTO.MedSrvDO = med; EmsRstDTO[] rsts = CreateRemote(med.Id_srv); EmsRstDTO rst = rsts[0]; if (rst != null) { if (null != rst.Extension && rst.Extension.Keys.Contains("ErrMsgList")) { FArrayList errList = (FArrayList)rst.Extension["ErrMsgList"]; if (errList.Count > 0) { this.errorMsgString = errList.ToString(); return(false); } } uiEmsDTO.Emsapobs.deSerializeJson((rst.Document[0] as EmsObsItemDO).serializeJson()); //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString)); //uiEmsDTO.Emsapobs.deSerializeJson(utf8Str); if (null != rst.Extension && rst.Extension.Keys.Contains("MpDepFilter")) { this.strID_Dep_Mps = (String)rst.Extension["MpDepFilter"]; } if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO")) { this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO; strSd_srvtp = this.uiEmsDTO.MedSrvDO.Sd_srvtp; } this.uiEmsDTO.Emsapobs.EmsOrDrugList.Clear(); EmsOrDrug item = new EmsOrDrug(); item.Id_srv = this.uiEmsDTO.Emsapobs.Id_srv; item.Name_srv = this.uiEmsDTO.Emsapobs.Name_srv; item.Id_di = this.uiEmsDTO.Emsapobs.Id_di; item.Id_diitm = this.uiEmsDTO.Emsapobs.Id_diitm; item.Name_diag = this.uiEmsDTO.Emsapobs.Name_diag; item.Dt_plan = this.uiEmsDTO.Emsapobs.Dt_plan; item.Id_mp_dep = this.uiEmsDTO.Emsapobs.Id_mp_dep; item.Name_mp_dep = this.uiEmsDTO.Emsapobs.Name_mp_dep; item.Quan_med = this.uiEmsDTO.Emsapobs.Quan_med; item.Quan_medu_virtual = this.uiEmsDTO.Emsapobs.Quan_med; /////////添加检验、检查、诊疗多剂量多次执行,杨敬本20171111 item.Id_unit_med = this.uiEmsDTO.Emsapobs.Id_unit_med; item.Name_unit_med = this.uiEmsDTO.Emsapobs.Name_unit_med; item.Name_unit_medu_virtual = this.uiEmsDTO.Emsapobs.Name_unit_med; /////////添加检验、检查、诊疗多剂量多次执行,杨敬本20171111 item.Id_freq = uiEmsDTO.MedSrvDO.Id_freq; item.Name_freq = uiEmsDTO.MedSrvDO.Freq_name; item.Freqct = uiEmsDTO.MedSrvDO.Freqct; item.Sd_frequnitct = uiEmsDTO.MedSrvDO.Sd_frequnitct; item.Id_pri = uiEmsDTO.MedSrvDO.Id_primd; item.Use_days = this.uiEmsDTO.Emsapobs.Use_days; item.Quan_cur = this.uiEmsDTO.Emsapobs.Quan_cur; // CalQuantumUtil.GetInstance().getUnMMQuantum(item.Quan_med,this.uiEmsDTO.Emsapobs.Times_cur) ; item.Id_unit_sale = this.uiEmsDTO.Emsapobs.Id_unit_med; item.Name_unit_sale = this.uiEmsDTO.Emsapobs.Name_unit_med; //申请单号 item.No_applyform = this.uiEmsDTO.Emsapobs.No_applyobs; //检查目的 item.Id_pps = uiEmsDTO.Emsapobs.Id_pps; item.Sd_pps = uiEmsDTO.Emsapobs.Sd_pps; item.Name_pps = uiEmsDTO.Emsapobs.Des_pps; item.Totalprice = (item.Price == null ? 0 : item.Price); item.Price = this.uiEmsDTO.Emsapobs.Price; item.Id_mp_dep = this.uiEmsDTO.Emsapobs.Id_mp_dep; item.Name_mp_dep = this.uiEmsDTO.Emsapobs.Name_mp_dep; item.Fg_setradio = uiEmsDTO.MedSrvDO.Fg_setradio; this.uiEmsDTO.Emsapobs.EmsOrDrugList.Clear(); this.uiEmsDTO.Emsapobs.EmsOrDrugList.Add(item); if (this.uiEmsDTO.Emsapobs.EmsOrObsListEx != null) { if (null == this.uiEmsDTO.Emsapobs.EmsOrObsList) { this.uiEmsDTO.Emsapobs.EmsOrObsList = new XapDataList <EmsObsLap>(); } this.uiEmsDTO.Emsapobs.EmsOrObsList.Clear(); this.uiEmsDTO.Emsapobs.EmsOrObsListEx.Cast <EmsObsLap>().ToList().ForEach(o => { this.uiEmsDTO.Emsapobs.EmsOrObsList.Add(o); }); } } return(true); }