Esempio n. 1
0
        /// <summary>
        /// 弹出物品选择器
        /// </summary>
        /// <param name="ds"></param>
        /// <param name="def"></param>
        /// <param name="atPoint"></param>
        private void ShowMmSelector(XDataRow row, List <EmsOrDrug> ds, EmsOrDrug def, Point atPoint, bool canEdit = true)
        {
            var mmContainer = new XBaseControl();

            mmContainer.Size = new Size(473, 160);

            var query = from items in ds orderby items.Fact_count descending select items;

            var mm = new ExtMmRefView(LogicEx.GetInstance().ConvertDataSouse <EmsOrDrug>(query.ToList()), def, false);

            mm.Dock = DockStyle.Fill;
            mmContainer.AddRender(mm);
            var popWindow = new XContextForm(mmContainer);

            mm.Event_SelectChanged += (sender, e) =>
            {
                EmsOrDrug orDrug = EmsHeadDO.Emsdrugs.EmsOrDrugList[gv.FocusedRowHandle];
                var       mmDrug = e.Data as EmsOrDrug;

                if (mmDrug == null)
                {
                    if (orDrug.Fg_self == true)
                    {
                        orDrug.Name_mm = orDrug.Name_srv;
                        orDrug.Id_mm   = null;
                    }
                    popWindow.Close();
                    return;
                }

                #region 皮试逻辑的判断
                if (mmDrug.Fg_skintest != null && mmDrug.Fg_skintest == true)
                {
                    SkinTestLogic logic = new SkinTestLogic(EmsHeadDO.PatInfo);
                    orDrug.Name_mm    = mmDrug.Name_mm;
                    orDrug.Id_mm      = mmDrug.Id_mm;
                    orDrug.Id_srvskin = mmDrug.Id_srvskin;
                    if (logic.skinTestLogic(orDrug).Equals("0"))
                    {
                        popWindow.Close();
                        return;
                    }
                }
                #endregion
                cof.CopyTo(mmDrug, orDrug, "Id_srv", "Name_srv");
                cof.concateMMSpecAndName(orDrug);
                orDrug.Fg_mm = true;
                updateTableCustomerComtrol();
                popWindow.Close();
            };
            popWindow.Show(atPoint);
            mm.Enabled = canEdit;
        }
Esempio n. 2
0
 void xapFormControl1_ModelFilled(object sender, EventArgs e)
 {
     EmsHeadDO.Emsdrugs.EmsOrDrug = cof.MmSortList(EmsHeadDO.Emsdrugs.EmsOrDrug);
     gv.DataTable.DataSource      = EmsHeadDO.Emsdrugs.EmsOrDrugList;
     drugBindPropertyEventAndCacheUnimed(EmsHeadDO.Emsdrugs.EmsOrDrugList);
     SetGridPolicy(!IsReadOnly);
     if (cof.IsAntDrug(EmsHeadDO.Emsdrugs.Id_srv))
     {
         getControlByName("drugsUse", "fg_treat").Visible = true; //治疗用药
         getControlByName("drugsUse", "fg_propc").Visible = true; //预防用药
     }
     else
     {
         getControlByName("drugsUse", "fg_treat").Visible = false; //治疗用药
         getControlByName("drugsUse", "fg_propc").Visible = false; //预防用药
     } //自定义服务处理
     if (EmsHeadDO.Emsdrugs.EmsOrDrugList[0] != null && (EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_ctm == null || EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_ctm == false))
     {
         gv.DataTable.Columns[0].ReadOnly = true;
     }
     else
     {
         gv.DataTable.Columns[0].ReadOnly = false;
     }
     if (gv != null)
     {
         gv.DataTable.DataSource = EmsHeadDO.Emsdrugs.EmsOrDrugList;
         //加载时为自定义服务药品列表绑定事件,并缓存自定义服务的剂量单位 zwq 2016-07-18
         drugBindPropertyEventAndCacheUnimed(EmsHeadDO.Emsdrugs.EmsOrDrugList);
         cof.threadSetMaterialInfoOfDrug(EmsHeadDO.Emsdrugs.EmsOrDrug, middle);
     }
     bEdit_Note_or = !this.EmsHeadDO.IsNEW;
     if (EmsHeadDO.IsNEW)
     {
         cof.SetNoteOr(this.EmsHeadDO);
         this.setTime_cur();
         setQauntum(this.EmsHeadDO.Emsdrugs.Times_cur);
         if (EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_ctm == true)
         {
             return;
         }
         if (EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_skintest != null && EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_skintest == true)
         {
             SkinTestLogic logic = new SkinTestLogic(EmsHeadDO.PatInfo);
             logic.skinTestLogic(EmsHeadDO.Emsdrugs.EmsOrDrugList[0]);
         }
         //设置结束时间和停止标志
         setEndTime();
     }
     updateTableCustomerComtrol();
 }
Esempio n. 3
0
 public void run()
 {
     if (emsordrug.Fg_skintest != null && emsordrug.Fg_skintest == true)
     {
         if (emsordrug.Fg_skintest != null && emsordrug.Fg_skintest == true)
         {
             SkinTestLogic logic = new SkinTestLogic(PatInfo);
             if (logic.skinTestLogic(emsordrug).Equals("0"))
             {
                 return;
             }
         }
     }
 }
Esempio n. 4
0
        void xapFormControl1_ModelFilled(object sender, EventArgs e)
        {
            EmsHeadDO.Emsdrugs.EmsOrDrug = cof.MmSortList(EmsHeadDO.Emsdrugs.EmsOrDrug);
            gv.DataTable.DataSource      = EmsHeadDO.Emsdrugs.EmsOrDrugList;
            drugBindPropertyEventAndCacheUnimed(EmsHeadDO.Emsdrugs.EmsOrDrugList);

            foreach (EmsOrDrug item in EmsHeadDO.Emsdrugs.EmsOrDrugList)
            {
                if (true == item.Fg_ctm)
                {
                    item.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(item_PropertyChanged);
                }
                if (!cacheUnitMed.ContainsKey(item.Id_unit_med))
                {
                    cacheUnitMed.Add(item.Id_unit_med, item.Name_unit_med);
                }
            }
            if (gv != null)
            {
                gv.DataTable.DataSource = EmsHeadDO.Emsdrugs.EmsOrDrugList;
                //加载时为自定义服务药品列表绑定事件,并缓存自定义服务的剂量单位 zwq 2016-07-18
                drugBindPropertyEventAndCacheUnimed(EmsHeadDO.Emsdrugs.EmsOrDrugList);
                cof.threadSetMaterialInfoOfDrug(EmsHeadDO.Emsdrugs.EmsOrDrug, middle);
            }
            fgoutstate();
            SetGridPolicy(!IsReadOnly);
            if (EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_skintest != null && EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_skintest == true)
            {
                SkinTestLogic logic = new SkinTestLogic(EmsHeadDO.PatInfo);
                logic.skinTestLogic(EmsHeadDO.Emsdrugs.EmsOrDrugList[0]);
            }
            bEdit_Note_or = !this.EmsHeadDO.IsNEW;
            if (EmsHeadDO.IsNEW)
            {
                cof.SetNoteOr(this.EmsHeadDO);
                this.setTime_cur();
                setQauntum(this.EmsHeadDO.Emsdrugs.Times_cur);
                if (EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_ctm == true)
                {
                    return;
                }
                if (EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_skintest != null && EmsHeadDO.Emsdrugs.EmsOrDrugList[0].Fg_skintest == true)
                {
                    SkinTestLogic logic = new SkinTestLogic(EmsHeadDO.PatInfo);
                    logic.skinTestLogic(EmsHeadDO.Emsdrugs.EmsOrDrugList[0]);
                }
                setEndTime();
            }
            updateTableCustomerComtrol();
        }
Esempio n. 5
0
        public static string CheckTestSkinSrv(XapBaseControl ctrl, EmsOrDrug drug, Ent4BannerDTO patInfo)
        {
            //数据回写后,进行皮试判断

            if (drug.Fg_skintest != null && drug.Fg_skintest == true)
            {
                SkinTestLogic logic = new SkinTestLogic(patInfo);
                string        code  = logic.skinTestLogic(drug);
                if ("0".Equals(code))  //皮试为阳性,禁用
                {
                    return("患者存在该药品过敏史并禁用该药!");
                }
                else if ("9".Equals(code))
                {
                    return("患者存在该药品过敏史,未录入强制使用原因,禁用该药!");
                }
            }
            return("");
        }
Esempio n. 6
0
        /// <summary>
        /// 判断皮试结果
        /// </summary>
        /// <param name="drug">物品</param>
        /// <param name="skinTestRst">皮试结果</param>
        /// <param name="patInfo">患者信息</param>
        /// <returns></returns>
        public static string CheckSkinTestRst(EmsOrDrug drug, SkinTestRstDTO skinTestRst, Ent4BannerDTO patInfo)
        {
            //数据回写后,进行皮试判断

            if (drug.Fg_skintest != null && drug.Fg_skintest == true)
            {
                SkinTestLogic logic = new SkinTestLogic(patInfo);
                string        code  = logic.CheckSkinTestRst(drug, skinTestRst);
                if ("0".Equals(code))
                {//皮试为阳性,禁用
                    return("");
                    //return "患者存在该药品过敏史并禁用该药!";
                }
                else if ("9".Equals(code))
                {
                    return("患者存在该药品过敏史,未录入强制使用原因,禁用该药!");
                }
            }
            return(null);
        }
Esempio n. 7
0
        //void btnOK_MouseClick(object sender, MouseEventArgs e)
        //{
        //    xapFormControl1.SaveForm();
        //    this.Save(this);
        //    EmsHeadDO.Sd_srvtp="";

        //}
        //频次
        protected override void OnRefResult(object sender, RefResultEventArgs e)
        {
            RefDataCollection data = e.RefResultSet;

            if (data == null || data.Count == 0)
            {
                this.ShowInfo("频次为空");
                return;
            }
            if (e.BindingFieldName == "Name_freq")
            {
                string id_freq  = data.FirstData["Id_freq"] as string;//获取字段值
                string frequnit = data.FirstData["Id_freq"] as string;
                int    freqct   = int.Parse(data.FirstData["Freqct"].ToString());
                EmsHeadDO.Emsdrugs.Freqct        = int.Parse(data.FirstData["Freqct"].ToString());
                EmsHeadDO.Emsdrugs.Sd_frequnitct = data.FirstData["Sd_frequnitct"] as string;
                GetDoseDrugData(id_freq);
                EmsHeadDO.Emsdrugs.Work_time = cof.GetWorkTime(id_freq);
                this.setTime_cur();
                setQauntum(this.EmsHeadDO.Emsdrugs.Times_cur);
                fgoutstate();
            }

            //新增时候 参照写会
            EmsOrDrug drugNew = xapFormControl1.GetFocused <EmsOrDrug>("drug");

            if (e.BindingFieldName.Equals("Name_srv"))
            {
                if (e.RefResultSet.IsEmpty)
                {
                    drugNew.Id_srv         = "";
                    drugNew.Name_srv       = "";
                    drugNew.Spec_mm        = "";
                    drugNew.Quan_med       = null;
                    drugNew.Name_unit_med  = "";
                    drugNew.Quan_cur       = null;
                    drugNew.Name_unit_sale = "";
                    drugNew.Note_ext       = "";
                    drugNew.Name_mm        = "";
                    return;
                }
                int focuIndex = gv.DataTable.FocusedRow.Index;
                if (data.FirstData["Id_srv"] == null)
                {
                    return;
                }
                string id_srv = data.FirstData["Id_srv"] as string;
                string fg_ctm = data.FirstData["Fg_ctm"] as string;
                if (fg_ctm == null || "N" == fg_ctm)
                {
                    drugNew.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(item_PropertyChanged);
                    XapDataList <EmsOrDrug> drugs = cof.GetSrvMm(EmsHeadDO, id_srv, EmsHeadDO.PatInfo.Code_entp);

                    if (drugs.Count > 0)
                    {
                        //执行科室填充
                        DrugUtils.fillExecDetps(drugs, EmsHeadDO.Emsdrugs.Id_route, EmsHeadDO.PatInfo);
                        foreach (EmsOrDrug ems in drugs)
                        {
                            if (EmsHeadDO.Emsdrugs.EmsOrDrug.Contains(ems))
                            {
                                continue;
                            }
                            EmsHeadDO.Emsdrugs.EmsOrDrug.Add(ems);
                        }
                        EmsOrDrug drugRef = drugs.FirstOrDefault();
                        if (drugRef.Fg_skintest != null && drugRef.Fg_skintest == true)
                        {
                            SkinTestLogic logic = new SkinTestLogic(EmsHeadDO.PatInfo);
                            if (logic.skinTestLogic(drugRef).Equals("0"))
                            {
                                return;
                            }
                        }
                        cof.CopyTo(drugRef, drugNew, "Id_srv", "Name_srv");
                        cof.concateMMSpecAndName(drugNew);
                        cof.concateExtNote(new XapDataList <EmsOrDrug> {
                            drugNew
                        }, EmsHeadDO.PatInfo, EmsHeadDO);
                        //新启动一个线程设置服务的物品库存信息
                        cof.threadSetMaterialInfoOfDrug(drugs, middle);
                        this.setTime_cur();
                        setQauntum(this.EmsHeadDO.Emsdrugs.Times_cur);
                        //毒麻药品核对患者信息
                        //if (cof.verifyPois(drugNew.Fg_pois.Value, drugNew.Sd_pois))
                        //{
                        //    OrSrvAgentInfoDO agentInfo = cof.newOrSrvAgentInfoDOFromBanner(EmsHeadDO.PatInfo);
                        //    if (drugNew.Agentinfolist == null) {
                        //        drugNew.Agentinfolist = new FArrayList();
                        //    }
                        //    drugNew.Agentinfolist.Add(agentInfo);
                        //    CheckPatAgentInfoDialog dialog = new CheckPatAgentInfoDialog(agentInfo);
                        //    dialog.ShowDialog();
                        //}
                    }
                    else
                    {
                        this.ShowInfo("服务未绑定物品,请与信息科联系!", "提示");
                        drugNew.Id_srv         = "";
                        drugNew.Name_srv       = "";
                        drugNew.Spec_mm        = "";
                        drugNew.Quan_med       = null;
                        drugNew.Name_unit_med  = "";
                        drugNew.Quan_cur       = null;
                        drugNew.Name_unit_sale = "";
                        return;
                    }
                }
                else
                {
                    //参照回写是自定义服务时的操作
                    handleRefResultSrvIsFtmSrv(drugNew);
                }
            }
            this.updateTableCustomerComtrol();
        }