Esempio n. 1
0
        public override bool LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos) // //EmsCreateParameter
        {
            // Old_LoadMedSrv( emsCreateParameter,  pos);

            New_LoadMedSrv(emsCreateParameter, pos);
            return(true);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        /// <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);
        }
Esempio n. 7
0
 /// <summary>
 /// 从药品服务对象中加载医嘱服务项目
 /// </summary>
 /// <param name="med">药品服务对象</param>
 /// EmsCreateParameter
 public virtual bool LoadMedSrv(EmsCreatedParameter emsCreateParameter, int pos = -1)
 {
     if (pos == -1)
     {
         this.expenseList.Clear();
     }
     this.ciEmsDTO.Eu_orsrcmdtp = OrSourceFromEnum.IIHSRVREF;//医嘱来源方式
     if (this.emsMgrDTO != null)
     {
         this.uiEmsDTO.Id_srvof      = this.emsMgrDTO.Id_ems;
         this.uiEmsDTO.Funcclassstr  = this.emsMgrDTO.Funcclassstr;
         this.ciEmsDTO.Fg_quickwflow = this.emsMgrDTO.Fg_quickwflow;
         this.ciEmsDTO.Id_srvof      = this.emsMgrDTO.Id_ems;
         this.ciEmsDTO.Funcclassstr  = this.emsMgrDTO.Funcclassstr;
     }
     return(true);
 }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        /// <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);
        }
Esempio n. 10
0
        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
 {
     base.LoadMedSrv(emsCreatedParameter, pos);
     return(true);
 }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        /// <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);
        }
Esempio n. 14
0
        /// <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);
        }
Esempio n. 15
0
        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);
        }