static Offset <FDouble> Serialise(FlatBufferBuilder b, IHasDouble numeral) { FDouble.StartFDouble(b); var vec2 = numeral.ObservationValue; var granularity = numeral.DoubleSpace.DecimalGranularity; var xs = numeral.DoubleSpace.Xspace; var ys = numeral.DoubleSpace.Yspace; FDouble.AddXRange(b, FRange.CreateFRange(b, granularity, xs.Max, xs.Min, xs.NormalisedBool)); FDouble.AddYRange(b, FRange.CreateFRange(b, granularity, ys.Max, ys.Min, ys.NormalisedBool)); FDouble.AddVec2(b, FVector2.CreateFVector2(b, vec2.x, vec2.y)); return(FDouble.EndFDouble(b)); }
/// <summary> /// 计算药品领量天数 /// </summary> /// <param name="sd_opmutp">药品的取整模式</param> /// <param name="quan_cur">总量</param> /// <param name="quan_medu">剂量</param> /// <param name="factor">换算系数</param> /// <param name="factor_mb">医基换算系数</param> /// <param name="id_freq">频次</param> /// <returns></returns> public int?getDaysAvalidate(string sd_opmutp, FDouble quan_cur, FDouble quan_medu, FDouble factor, FDouble factor_mb, String id_freq) { if (quan_cur == null || quan_medu == null || factor == null || factor_mb == null || id_freq == null) { return(null); } return(mainService.getDaysAvalidate(sd_opmutp, quan_cur, quan_medu, factor, factor_mb, id_freq)); }
/// <summary> /// 药品领量天数计算,只有药品非草药类才需要计算 /// </summary> /// <param name="sd_mupakgu">取整模式</param> /// <param name="quan_cur">总量</param> /// <param name="quan_medu">剂量</param> /// <param name="id_freq">频次</param> /// <returns></returns> public int?getDaysAvalidate(string sd_mupakgu, FDouble quan_cur, FDouble quan_medu, FDouble factor, FDouble factor_mb, String id_freq) { object[] param = new object[] { sd_mupakgu, quan_cur, quan_medu, factor, factor_mb, id_freq }; si.url = url_r; int?days = si.invoke <int?>("getDaysAvalidate", param.ToArray()); return(days); }
static Offset <FDouble> build_double(FlatBufferBuilder b, IHasDouble numeral) { FDouble.StartFDouble(b); var vec2 = numeral.ObservationValue; FDouble.AddVec2(b, FVector2.CreateFVector2(b, vec2.x, vec2.y)); //FSingle.AddRange(b, numeral.ObservationValue); return(FDouble.EndFDouble(b)); }
/// <summary> /// 医嘱表格数据显示时的处理事件,这里主要用于处理医嘱显示内容 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void tabControl_DataDisplay(Object sender, XDataDisplayEventArgs e) { CiOrderDO ciorder = e.Object as CiOrderDO; string id_or = ciorder.Id_or; var row = sender as XDataRow; if (row != null) { foreach (UserRender render in row.UserRenderList) { if (render is DoctorOrderCard) { var card = render as DoctorOrderCard; card.DoctorOrderConfig = this.doctorOrderConfig; } } } // 设置最后一列显示价格 XCellRender priceCell = (row.ColumnCellDict["customercolumn_price"] as XCellRender); if (priceCell.Visible == true) // 住院不可见 { FDouble pri = ciOrdViewModel.PriMap[id_or] as FDouble; priceCell.Value = pri; } XCellRender cell = row.ColumnCellDict["customercolumn_报告查看"] as XCellRender; if (ciOrdViewModel.OrdStatusMap.Keys.Contains(id_or)) { DoctorOrderCard contentOrCell = row.ColumnCellDict["Content_or"] as DoctorOrderCard; row.Enabled = false; row.TooltipText = ciOrdViewModel.OrdStatusMap[id_or] as string; contentOrCell.ForeColor = Color.Red; row.UserForeColor = Color.Red; } this.setCellContent(cell, ciorder); }
/// <summary> /// 物品计算的核心算法 /// </summary> /// <param name="sd_mupakgu"></param> /// <param name="quan_medu"></param> /// <param name="factor_mb"></param> /// <param name="factor"></param> /// <param name="times"></param> /// <returns></returns> public FDouble getMMQuantum(string sd_mupakgu, FDouble quan_medu, FDouble factor_mb, FDouble factor, int?times) { if (string.IsNullOrEmpty(sd_mupakgu) || quan_medu == null || factor_mb == null || factor == null || times == null) { return(0); } // 按次取整 if (sd_mupakgu.Equals("0")) { return(Math.Ceiling(quan_medu / (factor_mb * factor)) * times); } // 按批取整 else if (sd_mupakgu.Equals("1")) { return(Math.Ceiling(quan_medu * times / (factor_mb * factor))); } // 不取整 else if (sd_mupakgu.Equals("4")) { return(quan_medu * (times) / ((factor_mb * (factor)))); } return(null); }
/// <summary> /// 服务套的情况下计算价格 /// </summary> /// <param name="medsrvdo"></param> /// <returns></returns> public FDouble getPrice(MedSrvDO medsrvdo) { FDouble price = 0; if (medsrvdo == null) { return(price); } if (medsrvdo.Fg_set != null && (bool)medsrvdo.Fg_set) { List <CiEmsSrvDTO> srvlist = this.logicEx.getSetClinicalSrvDO(medsrvdo.Id_srv, "00", 0); foreach (CiEmsSrvDTO emsdto in srvlist) { if (emsdto.Fg_mm != null && (bool)emsdto.Fg_mm) { price = price + this.logicEx.getMaterialStocksCount(emsdto.Id_mm, emsdto.Id_unit_sale); } } price = price + this.logicEx.getSrvNotMMPri(this.uiEmsDTO.MedSrvDO, null); } return(price); }
/// <summary> /// 物品类型的计算总量 /// </summary> /// <param name="code_entp"></param> /// <param name="fg_pres_outp"></param> /// <param name="times"></param> /// <param name="id_mm"></param> /// <param name="id_unit_sale"></param> /// <param name="quan_medu"></param> /// <returns></returns> public FDouble getMMQuantum(string code_entp, FBoolean fg_pres_outp, int times, string id_mm, string id_unit_sale, FDouble quan_medu) { return(mainService.getMMQuantum(code_entp, fg_pres_outp, times, id_mm, id_unit_sale, quan_medu)); }
public LEVector Multiply(FDouble s) { return(this * s); }
/// <summary> /// 计算物品的总量 /// </summary> /// <param name="code_entp"></param> /// <param name="fg_pres_outp">默认为false</param> /// <param name="times"></param> /// <param name="id_mm"></param> /// <param name="id_unit_sale"></param> /// <param name="quan_medu"></param> /// <returns></returns> public double?getMMQuantum(string code_entp, bool fg_pres_outp, int times, string id_mm, string id_unit_sale, FDouble quan_medu) { List <object> param = new List <object>(); param.Add(code_entp); param.Add(fg_pres_outp); param.Add(times); param.Add(id_mm); param.Add(id_unit_sale); param.Add(quan_medu); si.url = url_r; return(si.invoke <int?>("getMMQuantum", param.ToArray())); }
public void setEmsOrDrugList(XapDataList <EmsOrDrug> list) { lock (this) { IMaterialStockService stoctService = XapServiceMgr.find <IMaterialStockService>(); List <GetStockReqDTO> reqDtos = new List <GetStockReqDTO>(); if (emsOrDrugList == null) { emsOrDrugList = new XapDataList <EmsOrDrug>(); } for (int i = 0; i < list.Count; i++) { if (list[i].Fg_mm == true) { GetStockReqDTO reqDTO = new GetStockReqDTO(); reqDTO.Id_mm = list[i].Id_mm; reqDTO.Id_dep = list[i].Id_dep_wh; reqDTO.Req_unit_id = list[i].Id_unit_sale; reqDtos.Add(reqDTO); } } if (reqDtos.Count > 0) { MaterialStockDTO[] stockdto = null; try { stockdto = stoctService.getMaterialStocks(reqDtos.ToArray()); } catch (Exception ex) { ex.Publish(); //this.ShowInfo(ex.Message); } if (stockdto == null) { return; } for (int i = list.Count - 1; i >= 0; i--) { MaterialStockDTO materialDo = stockdto.FirstOrDefault(p => p.Id_mm == list[i].Id_mm); if (materialDo != null) { FDouble mmcount = materialDo.Quan_stock; int? mmStatus = materialDo.Mmstatus; //药房无此药的移除 if (mmStatus != null && mmStatus == (int)MaterialStatus.NORELATION) { list.RemoveAt(i); } else { list[i].Fact_count = mmcount; list[i].Price = materialDo.Price_act; list[i].Mmstatus = materialDo.Mmstatus; EmsOrDrug ems = emsOrDrugList.FirstOrDefault(p => p.Id_mm == list[i].Id_mm); if (ems != null) { emsOrDrugList.Remove(ems); } emsOrDrugList.Add(list[i]); } } } List <EmsOrDrug> sortList = null; try { sortList = emsOrDrugList.OrderByDescending(p => p.Fact_count).OrderBy(p => p.Mmstatus).ToList(); } catch //(Exception e) { // e.Message; } if (emsOrDrugList == null) { emsOrDrugList = new XapDataList <EmsOrDrug>(); } else { emsOrDrugList.Clear(); } sortList.ForEach(p => emsOrDrugList.Add(p)); } } }