Example #1
0
        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));
        }
Example #2
0
 /// <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));
 }
Example #3
0
        /// <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);
        }
Example #4
0
        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));
        }
Example #5
0
        /// <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);
        }
Example #6
0
 /// <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);
 }
Example #7
0
        /// <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);
        }
Example #8
0
 /// <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));
 }
Example #9
0
 public LEVector Multiply(FDouble s)
 {
     return(this * s);
 }
Example #10
0
        /// <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));
                }
            }
        }