void DelegateCallbackClearCache(int isLocal) { ICiSysCacheService service = XapServiceMgr.find <ICiSysCacheService>(); switch (isLocal) { case 0: var cst0 = new AssCostTimeTool("清理本地缓存(ClearCacheSettingApp): ", true); SysParamUtils.Clear(); cst0.SaveTimeLog(); break; case 1: var cst1 = new AssCostTimeTool("清理一级缓存(ClearCacheSettingApp): ", true); service.clearL1Cache(null); cst1.SaveTimeLog(); break; case 2: var cst2 = new AssCostTimeTool("清理二级缓存(ClearCacheSettingApp): ", true); service.clearL2Cache(null); cst2.SaveTimeLog(); break; case 3: var cst3 = new AssCostTimeTool("清理三级缓存(ClearCacheSettingApp): ", true); service.clearL3Cache(null); cst3.SaveTimeLog(); break; } }
protected override void OnFillData() { var t1 = new AssCostTimeTool("切换患者时候,填充UI控件费用清单数据,耗时:", false); base.OnFillData(); t1.SaveTimeLog(); }
/// <summary> /// 异步加载数据 /// </summary> protected override void OnLoadData() { var t1 = new AssCostTimeTool("切换患者时候,远程调用获取费用清单数据,耗时:", false); base.OnLoadData(); if (null != model) { this.model.Reload(); this.SetFormDataSource(model.GetTableDataSource()); // 不得已,由于控件不支持,同一模型对象的数据刷新 } t1.SaveTimeLog(); }
private void PrintPreviewView_Load(object sender, EventArgs e) { //Loading _loading = new Loading(); //_loading.TopMost = true; //Form owerForm = this.FindForm().ParentForm; //_loading.Owner = owerForm; //_loading.Show(); var t1 = new AssCostTimeTool("门急诊临床单据打印,匹配打印模板耗时:", false); this.viewModel = new PrintManageViewModel(this.Context.PsnInfo.Id_psndoc, this.Context.Dept.Id_dep, this.Context.Org.Id_org, this.Context.Group.Id_grp, this.Context.GetOrgParam <string>(ICiOrdNSysParamConst.SYS_PARAM_CiPharmGrpableUsageScope), this.SelectedIndex, this.LstIdor, this.LstIdpres, this.Id_hp, this.Sd_hptp, this.bShowTools); t1.SaveTimeLog(); var t2 = new AssCostTimeTool("门急诊临床单据打印,读取小票打印机耗时:", false); //加载辅助打印机(非小票单据操作系统默认打印机打印,小票单据在此指定辅助打印机) QiPrintArgs qiPrintArgs = new QiPrintArgs(); qiPrintArgs.AddAltertivePrinter(QiPrintArgs.StripPpSzNO, this.viewModel.GetPrinterName()); qiPrintArgs.ShowtipOnDocSzChanged = true; t2.SaveTimeLog(); //装载模板视图 this.rpt_viewer = new MultiReportsViewer(); this.rpt_viewer.InitHasView(navBarDock: DockStyle.Top, useAlone: !bShowTools); this.rpt_viewer.CopyPrintArgs(qiPrintArgs); this.rpt_viewer.SetDefaultZoomRatio("100%"); //指定显示比例 Control panel = this.rpt_viewer.GetViewPanel(); panel.Dock = DockStyle.Fill; this.xapFormControl.Controls.Add(panel); this.OnInit(); AppWaiting waiting = new AppWaiting(); waiting.AsynchronousStart(this, delegate { this.toLoadData(); }); this.toFillData(); //loading.Close(); }
private void toFillData() { var t1 = new AssCostTimeTool("门急诊临床单据打印,报表刷新界面耗时:", false); if (lsttps != null && lsttps.Count > 0) { Dictionary <string, List <string> > dic = new Dictionary <string, List <string> >(); dic.Add("sd_printtps", lsttps); this.FireSelected(dic); } this.rpt_viewer.FillReport(); this.xapFormControl.SetEditable(true); t1.SaveTimeLog(); }
private bool saveToDb(List <OrTplNItmDO> selectList) { AssCostTimeTool costTimeTool = new AssCostTimeTool("执行医嘱模板保存" + selectList.Count + "条记录", false); var moreEmsDto = this.buttonViewModel.getMoreEmsParamDTO(this.ciEnContext, selectList.ToArray()); costTimeTool.SaveTimeLog(); if (moreEmsDto != null) { xapBaseControl.FireEventSent(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_TMPL_EDIT, EventCodeType.ARGKEY_EMS_TMPL_EDIT, moreEmsDto)); if (moreEmsDto.Errormap2 == null || moreEmsDto.Errormap2.Values.Count == 0) { return(true); } } return(false); }
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); }
private void toLoadData() { var t1 = new AssCostTimeTool("门急诊临床单据打印,报表加载数据耗时:", false); List <ReportLoadParams> rpt_load_params = new List <ReportLoadParams>(); lsttps.Clear(); if (this.dicParam != null) { string sd_sheettps = ""; if (this.dicParam.ContainsKey("Sd_sheettp")) { sd_sheettps = dicParam["Sd_sheettp"] as string; } if (string.IsNullOrEmpty(sd_sheettps)) { rpt_viewer.ClearRptLoaded(false, false); return; } lsttps = sd_sheettps.Split(',').ToList(); List <string> lstURLs = this.viewModel.GetPrntmplPathByPrntp(lsttps); if (lstURLs == null || lstURLs.Count == 0) { return; } foreach (string url in lstURLs) { if (string.IsNullOrEmpty(url)) { continue; } ReportLoadParams param = new ReportLoadParams(); param.RptFile = url; param.QryParams = this.getRptParams(url); rpt_load_params.Add(param); } rpt_viewer.LoadReportsByThreads(rpt_load_params, false); } else { List <string> loadurl = new List <string>(); foreach (string url in this.viewModel.dicUrlIDs.Keys) { if (string.IsNullOrEmpty(url)) { continue; } ReportLoadParams param = new ReportLoadParams(); param.RptFile = url; param.QryParams = this.getRptParams(url); rpt_load_params.Add(param); loadurl.Add(url); } rpt_viewer.LoadReportsByThreads(rpt_load_params, false); if (loadurl.Count != 0) { foreach (var rpt_load_param in rpt_load_params) { if (!String.IsNullOrEmpty(rpt_load_param.LoadErrMsg)) { loadurl.Remove(rpt_load_param.RptFile); } } lsttps = this.viewModel.FindPrntpByUrl(loadurl); } } t1.SaveTimeLog(); }
/// <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); }