Beispiel #1
0
        private void loadEntpHistory()
        {
            if (BizAssMessageBoxUtil.ShowPatIsNullMsg(this.Ent4BannerDTO, "就诊历史"))
            {
                return;
            }
            if (isEntHistoryFrameOpen)
            {
                return;
            }
            entpHistoryFrame             = new EntHistoryFrame();
            entpHistoryFrame.BannerDTO   = this.Ent4BannerDTO;
            entpHistoryFrame.BaseContext = this.Context;


            this.getParentCtrl();
            entpHistoryFrame.StartPosition = FormStartPosition.Manual;

            entpHistoryFrame.Location            = this.getLocation();
            entpHistoryFrame.Size                = this.getSize();
            entpHistoryFrame.BannerDTO           = this.Ent4BannerDTO;
            entpHistoryFrame.EntHistoryInitEvent = this;
            isEntHistoryFrameOpen                = true; // 记录窗口打开状态
            entpHistoryFrame.Show(this.xBaseCtrl);
        }
Beispiel #2
0
        /// <summary>
        /// 弹出助手窗口前的判断,确定是否弹出窗口
        /// </summary>
        /// <returns></returns>
        protected override bool IsAllowOpenAssiFrameValidate(AssiBtnDTO btnDTO)
        {
            // 1.患者信息为空
            if (BizAssMessageBoxUtil.ShowPatIsNullMsg(this.ent4BannerDTO, btnDTO.Text) == true)
            {
                return(false);
            }
            // 就诊历史、组套不做校验
            if (btnDTO.ButtonId == "btnEntHistoryTabFrame" || btnDTO.ButtonId == "btnMkrMsAppView")
            {
                return(true);
            }
            // 2.诊毕状态不允许操作
            if (IsEntCompleted())
            {
                return(false);
            }

            // 病历模板、个人知识库不校验是否下诊断
            if (btnDTO.ButtonId == "btnTplView" || btnDTO.ButtonId == "btnKnowledgeFormView" || btnDTO.ButtonId == "btnDiagDef")
            {
                return(true);
            }

            //  3.未下诊断 以上三种情况不允许点击助手按钮
            if (!IsWriteCiDi())
            {
                return(false);
            }

            return(true);
        }
Beispiel #3
0
        /// <summary>
        /// 判断点确定按钮时就诊历史是否选择内容
        /// </summary>
        /// <returns></returns>
        private bool isSelectedItem()
        {
            foreach (string key in selResultDic.Keys)
            {
                if (selResultDic[key] != null)
                {
                    // 住院诊断返回数据是0
                    List <CiDiagItemDO> list = selResultDic[key] as List <CiDiagItemDO>;
                    if (list != null && list.Count == 0)
                    {
                        continue;
                    }
                    return(true);
                }
            }
            if (BdFcDictCodeConst.SD_CODE_ENTP_IP.Equals(this.Code_entp))
            {
                BizAssMessageBoxUtil.ShowInforMsg("住院就诊中不支持病历回写,请至少选择一项:诊断、处置!");
            }
            else
            {
                BizAssMessageBoxUtil.ShowInforMsg("请至少选择一项:诊断、病历或处置!");
            }

            return(false);
        }
Beispiel #4
0
        /// <summary>
        /// 加载配置文件是否成功
        /// </summary>
        /// <returns></returns>
        private XUserControl LoadConfigUserControl(Dictionary <string, object> paramDic, AssiBtnDTO btnDTO)
        {
            XUserControl xUserControl = null;
            Dictionary <AssiFrameLocation, string> ConfigPathDic = this.GetDisplayCfgXmlDic();

            // 待加载的配置文件路径不存在
            if (ConfigPathDic == null || !ConfigPathDic.ContainsKey(btnDTO.FrameLocation))
            {
                BizAssMessageBoxUtil.ShowInforMsg("加载助手窗口失败,请配置加载助手的配置文件!");
                return(xUserControl);
            }

            //if (cacheXUserControlDic.ContainsKey(btnDTO.FrameLocation))
            //{
            //    xUserControl = cacheXUserControlDic[btnDTO.FrameLocation];
            //    xUserControl.LoadData(paramDic);
            //}
            //else
            //{
            xUserControl = new XUserControl();
            string xmlpath = ConfigPathDic[btnDTO.FrameLocation];

            xUserControl.Init(xmlpath, paramDic);

            xUserControl.Dock = DockStyle.Fill;

            //    cacheXUserControlDic.Add(btnDTO.FrameLocation, xUserControl);
            //}

            return(xUserControl);
        }
Beispiel #5
0
        public void saveData()
        {
            List <OrTplNItmDO> selectList = getTmplItemsToSave();

            if (selectList != null && selectList.Count > 0)
            {
                int      num = this.buttonViewModel.getOrHelperOpenOrCountLimitSet();
                string[] but = new[] { "继续", "放弃" };
                if (selectList.Count <= num || BizAssMessageBoxUtil.ShowMsgInfo("提示信息", "模板的数据量超过" + num + "条,保存有点慢", but))
                {
                    EventHandler hh = delegate
                    {
                        if (this.saveToDb(selectList))
                        {
                            xapBaseControl.SetStatusMsg("医嘱保存成功!");
                        }
                        clearTreeChecked();
                    };

                    this.BeginInvoke(hh, null);
                }
            }
            else
            {
                this.ShowInfo("请勾选医嘱模板数据!");
            }
        }
Beispiel #6
0
        /// <summary>
        /// 发送数处理选中数据事件
        /// </summary>
        /// <param name="args"></param>
        public void SaveSelResultEvent(Dictionary <string, object> result)
        {
            // 诊断保存的记录数,用于判断诊断是否保存成功
            int cidiSavedCnt = 0;
            // 诊断Agg对象,用于判断数据库中是否存在诊断
            CidiagAggDO cidiAgg = null;

            // 获取当前选择的历史就诊中是否包含诊断,如果不包含诊断查询数据库中是否存在诊断,如果不存在不允许保存病历、医嘱
            List <CiDiagItemDO> cidiItemList = null;

            Dictionary <string, object> .KeyCollection selItemKeys = result.Keys;

            if (selItemKeys.Contains(OP_CIDIAG))
            {
                cidiItemList = result[OP_CIDIAG] as List <CiDiagItemDO>;
            }
            else if (selItemKeys.Contains(IP_CIDIAG))
            {
                cidiItemList = result[IP_CIDIAG] as List <CiDiagItemDO>;
            }

            if (cidiItemList == null || cidiItemList.Count == 0)
            {// 就诊历史中未选择诊断,查询是否已经保存过诊断
                cidiAgg = model.GetCidiagAggDO(this.Ent4BannerDTO.Id_ent);
            }
            else
            {
                cidiSavedCnt = this.SaveCiDiag(cidiItemList);
                if (cidiSavedCnt == 0)
                {
                    MessageBoxEx.Show("调用就诊历史保存诊断失败,请联系信息中心!", "就诊历史", MessageBoxButtons.OK, MessageBoxIconEx.Error, MessageBoxDefaultButton.Button1);
                    return;
                }
            }

            // 诊断不为空时可以进行医嘱保存
            if (cidiSavedCnt == 0 && cidiAgg == null && selItemKeys.Contains(ORDER_ITEM) && result[ORDER_ITEM] != null)
            {
                BizAssMessageBoxUtil.ShowCidiIsNullMsg("就诊历史");
                return;
            }

            if (selItemKeys.Contains(ORDER_ITEM) && result[ORDER_ITEM] != null)
            {
                this.LoadCiEms(result[ORDER_ITEM]);
            }

            if (selItemKeys.Contains(OUTP_MR))
            {
                this.FireMrWriteBackBizEvent(result[OUTP_MR]);
            }

            if (entpHistoryFrame != null)
            {
                entpHistoryFrame.Close();
            }
        }
Beispiel #7
0
        /// <summary>
        /// 是否允许进行医嘱复制
        /// </summary>
        /// <param name="order">待复制的医嘱</param>
        /// <returns></returns>
        public static CiOrderDO[] getAllowedCopyOrders(CiOrderDO[] orders)
        {
            StringBuilder builder = new StringBuilder();;
            string        srvtp   = null;

            List <CiOrderDO> orderList = new List <CiOrderDO>();

            foreach (CiOrderDO order in orders)
            {
                srvtp = order.Sd_srvtp;
                //TODO BdSrvTpDictCodeConst 中对应的服务类型与目前使用的不一致,先使用数字等BdSrvTpDictCodeConst中调整后在做修改
                if (srvtp.StartsWith("01") || srvtp.StartsWith("02") || srvtp.StartsWith("03") || srvtp.StartsWith("05") || srvtp.StartsWith("08") || srvtp.StartsWith("1401"))
                {
                    orderList.Add(order);
                }
                else
                {
                    if (builder.Length == 0)
                    {
                        builder.Append("以下医嘱不支持复制:").Append(System.Environment.NewLine).Append(order.Name_or);
                    }
                    else
                    {
                        builder.Append(",").Append(order.Name_or);
                    }
                }
            }

            // 如果有异常信息弹出提示信息
            if (orderList.Count == 0)
            {
                builder.Append(System.Environment.NewLine).Append("请重新选择");
                BizAssMessageBoxUtil.ShowInforMsg(builder.ToString());
                return(null);
            }
            else if (orderList.Count > 6) // 选择的可复制医嘱最大数超过6不允许复制
            {
                builder.Append(System.Environment.NewLine).Append("医疗单打开医嘱数最多支持6个,请重新选择!!");
                BizAssMessageBoxUtil.ShowInforMsg(builder.ToString());
                return(null);
            }

            if (builder.Length != 0)   // 选中复制的医嘱中存在不允许复制,还有部分允许复制的医嘱

            {
                builder.Append(System.Environment.NewLine).Append("是否复制其余医嘱?");
                if (BizAssMessageBoxUtil.ShowConfirmMsg(builder.ToString()))
                {
                    return(orderList.ToArray <CiOrderDO>());
                }
                else
                {
                    return(null);
                }
            }
            return(orderList.ToArray <CiOrderDO>());
        }
Beispiel #8
0
 void saveButton_MouseClick(object sender, MouseEventArgs e)
 {
     if (this.xapFormControl.HasErrors)
     {
         BizAssMessageBoxUtil.ShowWarningMsg("请选择受邀科室!");
         return;
     }
     this.DialogResult = System.Windows.Forms.DialogResult.OK;
     this.Close();
 }
Beispiel #9
0
 /// <summary>
 /// 是否为诊毕状态,诊毕撤销模式时,诊毕状态不可操作
 /// </summary>
 /// <returns>true 诊毕,false 未诊毕 </returns>
 private bool IsEntCompleted()
 {
     // 如果患者本次就诊已诊毕,不能使用按钮中对应的功能
     if (EnDictCodeConst.SD_ENSTATUS_OP_FINISH.Equals(ent4BannerDTO.Sd_status))
     {
         BizAssMessageBoxUtil.ShowEnCompleteMsg();
         return(true);
     }
     return(false);
 }
Beispiel #10
0
        /// <summary>
        /// 发送病历打印事件
        /// </summary>
        /// <param name="eventArgs"></param>
        public void FireEmrPrintEvent(DataEventArgs <Dictionary <string, string> > eventArgs)
        {
            if (BdFcDictCodeConst.SD_CODE_ENTP_IP.Equals(this.Code_entp))
            {
                BizAssMessageBoxUtil.ShowInforMsg("就诊历史中不支持住院病历打印,请联系相关打印科室!");
                return;
            }
            DictionaryEventArgs args = new DictionaryEventArgs();

            args.Data.Add(UIConst.UI_EVENT, AssistantConstant.CI_EMR_PRINT_EVENT);
            contentEvent.FireEventSent(this, args);
        }
Beispiel #11
0
        /// <summary>
        /// 保存组套选择的结果(诊断、病历、医嘱模板、医疗服务)
        /// </summary>
        /// <param name="msDTO">组套对象</param>
        private void SaveMkrmsSelectedResult(MsDTO msDTO)
        {
            // 有效性判断
            if (null == msDTO)
            {
                return;
            }

            // 诊断 MkrMsDiDO
            FArrayList mkrMsDiDOList = msDTO.Dis;
            //医疗服务 MkrMsSrvDO
            FArrayList mkrMsSrvDOList = msDTO.Srvs;
            // 医嘱模板 MkrMsOrtpl
            FArrayList mkrMsOrtplList = msDTO.Ortpls;
            // 病历模板 MkrMsMrtplDO
            FArrayList mkrMsMrtplDOList = msDTO.Mrtpls;

            //病历不为空时发送保存病历段落事件
            if (mkrMsMrtplDOList != null && mkrMsMrtplDOList.Count > 0)
            {
                this.FireMrWriteBackBizEvent(this, mkrMsMrtplDOList[0]);
            }

            // 是否保存新增的诊断,如果本次未选择诊断,该值返回false, 如果选了诊断返回为true
            bool isProcessSaveCIDI = false;
            // 保存诊断
            List <DIDTO> didtList = this.assiCidiViewModel.SaveMkrMsDIDTOList(mkrMsDiDOList, ref isProcessSaveCIDI);

            // 如果不存在已保存的诊断,也未勾选诊断,不允许保存医嘱
            if ((didtList == null || didtList.Count == 0))
            {
                if (mkrMsSrvDOList != null || mkrMsOrtplList != null)
                {
                    BizAssMessageBoxUtil.ShowCidiIsNullMsg("门诊组套");
                    return;
                }
            }
            else if (isProcessSaveCIDI)// 有新增诊断时进行保存
            {
                //发送诊断保存成功事件 TODO 修改
                AssToolEx.SentMessage(this, declare.EventCodeType.EVENT_ORDI_SAVESUCCE, "DIDTOLIST", didtList);
            }

            // 医疗服务、医嘱模板转换医疗单
            if (mkrMsSrvDOList != null || mkrMsOrtplList != null)
            {
                MoreEmsParamDTO moreEmsDto = this.assiCiorderViewModel.SaveOrderAndOrtmpl(mkrMsSrvDOList, mkrMsOrtplList);
                AssToolEx.SentMessage(this, EventCodeType.EVENT_EMS_TMPL_EDIT, EventCodeType.ARGKEY_EMS_TMPL_EDIT, moreEmsDto);
            }
        }
Beispiel #12
0
        public void Save()
        {
            string msg = "请选择服务后再点击确定按钮!";

            if (string.IsNullOrEmpty(this.Id_srv) || this.medSrvDodic == null || this.medSrvDodic.Count == 0)
            {
                BizAssMessageBoxUtil.ShowInforMsg(msg);
                return;
            }

            var list = new List <OrTplNItmDO>();

            if (this.medSrvDodic.ContainsKey(this.Id_srv))
            {
                MedSrvDO tempmedsrv = medSrvDodic[this.Id_srv];
                if (tempmedsrv.Fg_set.Value)
                {
                    MedSrvConvertSetItem(list, tempmedsrv);
                }
                else
                {
                    OrTplNItmDO rtplItem = convertOrTplNItmDO(tempmedsrv);
                    list.Add(rtplItem);
                }
            }
            else
            {
                BizAssMessageBoxUtil.ShowInforMsg(msg);
                return;
            }

            //OnFillData();
            //重新加载当前页的数据
            FillData(selectedAlphabetRender);
            //清空选中的数据
            this.Id_srv = string.Empty;

            // 设置医嘱来源属性,用于保存到ci_order中
            this.ciEnContext.Eu_orsrcmdtp   = OrSourceFromEnum.IIHSRVCAHELPER;
            this.ciEnContext.Assistant_type = "medsrv";//医疗服务
            if (Buttonmodel != null)
            {
                var moreEmsDto = Buttonmodel.getMoreEmsParamDTO(this.ciEnContext, list.ToArray());
                if (null != moreEmsDto)
                {
                    xapBaseControl.FireEventSent(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_TMPL_EDIT, EventCodeType.ARGKEY_EMS_TMPL_EDIT,
                                                                                         moreEmsDto));
                }
            }
        }
        public void saveData()
        {
            if (selectList.Count > 0)
            {
                int num = Buttonmodel.getOrHelperOpenOrCountLimitSet();
                if (selectList != null && selectList.Count > num)
                {
                    string[] but = new[] { "继续", "放弃" };
                    if (BizAssMessageBoxUtil.ShowMsgInfo("提示信息", "模板的数据量超过" + num + "条,保存有点慢", but))
                    {
                        EventHandler hh = delegate
                        {
                            if (saveToDb(this.selectList))
                            {
                                xapBaseControl.SetStatusMsg("保存成功!");
                                clearTreeChecked();
                            }
                            else
                            {
                                clearTreeChecked();
                            }
                        };

                        this.BeginInvoke(hh, null);
                    }
                }
                else
                {
                    EventHandler hh = delegate
                    {
                        if (saveToDb(this.selectList))
                        {
                            xapBaseControl.SetStatusMsg("保存成功!");
                            clearTreeChecked();
                        }
                        else
                        {
                            clearTreeChecked();
                        }
                    };

                    this.BeginInvoke(hh, null);
                }
            }
            else
            {
                this.ShowInfo("请确认已选择医嘱数据!");
            }
        }
Beispiel #14
0
        /// <summary>
        /// 检验是否填写诊断
        /// </summary>
        /// <param name="title">提示框标题</param>
        /// <returns></returns>
        private bool IsWriteCiDi(string title)
        {
            if (this.ent4BannerDTO == null || this.ent4BannerDTO.Id_ent == null)
            {
                BizAssMessageBoxUtil.ShowCidiIsNullMsg("患者信息为空");
                return(false);
            }
            CidiagAggDO cidiAgg = cidiViewModel.GetCidiagAggDO(this.ent4BannerDTO.Id_ent);

            if (cidiAgg == null)
            {
                BizAssMessageBoxUtil.ShowCidiIsNullMsg(title);
                return(false);
            }
            return(true);
        }
Beispiel #15
0
        /// <summary>
        /// 获取父窗口对象
        /// </summary>
        /// <param name="frameLocation"></param>
        /// <returns></returns>
        protected override XBaseControl getParentCtrl(AssiFrameLocation frameLocation)
        {
            string classId = null;

            if (parentXBaseCtrlIdDic.ContainsKey(frameLocation))
            {
                classId = parentXBaseCtrlIdDic[frameLocation];
            }

            if (classId == null)
            {
                BizAssMessageBoxUtil.ShowWarningMsg("不存在与对象AssiFrameLocation[" + frameLocation + "]匹配的值");
                return(null);
            }

            return(this.getXapBaseCtrl(classId));
        }
Beispiel #16
0
        public override void HandleState(object sender, DictionaryEventArgs e)
        {
            // 获取助手弹出窗口的坐标
            this.GetICiCommandParamDic();

            base.HandleState(sender, e);
            if (sender is ShortcutOpOrdTemplatAction)
            {
                if (sender == null || BizAssMessageBoxUtil.ShowPatIsNullMsg(ent4BannerDTO, null) || IsEntCompleted())
                {
                    return;
                }
                this.szCiCommand[2].exec(this.paramDic);
            }
            else if (sender is ShortcutOpMedclingrpAppAction)
            {
                if (sender == null || BizAssMessageBoxUtil.ShowPatIsNullMsg(ent4BannerDTO, null) || IsEntCompleted())
                {
                    return;
                }
                this.szCiCommand[0].exec(this.paramDic);
            }
            else if (sender is ShortcutOpTplcommandAction)
            {
                if (sender == null || BizAssMessageBoxUtil.ShowPatIsNullMsg(ent4BannerDTO, null) || IsEntCompleted())
                {
                    return;
                }
                this.szCiCommand[1].exec(this.paramDic);
            }
            else if (sender is ShortcutOpMedicalTechmologyAction)
            {
                XIconToolButton btn = new XIconToolButton();
                btn.Text = "医技常规";
                this.button_MouseClick(btn, null);
            }
            else if (sender is ShortcutOpMedSrvCatgAction)
            {
                XIconToolButton btn = new XIconToolButton();
                btn.Text = "服务分类";
                this.button_MouseClick(btn, null);
            }
        }
Beispiel #17
0
        /// <summary>
        /// 加载报告
        /// </summary>
        /// <param name="uiEvent"></param>
        private void LoadLisReport(string uiEvent)
        {
            // 弹出tab页签写法
            //Dictionary<string, object> dic = new Dictionary<string, object>();
            //dic.Add("patientId", "000100184100"); // 参数传患者id
            //OpenFuncEventArgs eventArgs = new OpenFuncEventArgs("46105565", dic);
            //xap.cli.context.events.XapEvents.OpenFuncEvent(this, eventArgs);

            // 判断是否存在患者信息
            if (BizAssMessageBoxUtil.ShowPatIsNullMsg(this.ent4BannerDTO, ""))
            {
                return;
            }

            if (this.IsOpenReportView)
            {
                reportView.Dispose();
            }

            reportView = new ReportView();
            reportView.reportViewInit = this;
            reportView.context        = this.Context;
            reportView.ent4BannerDTO  = this.ent4BannerDTO;
            reportView.uiEvent        = uiEvent; // 当前点击的按钮

            // 调用弹出页面方法
            reportView.WindowState = FormWindowState.Maximized;
            this.IsOpenReportView  = true;

            Control ctrl = this.Context.Config.GetInstance("OrdListView") as Control;

            if (ctrl == null)
            {
                reportView.ShowDialog();
            }
            else
            {
                reportView.ShowDialog(ctrl);
            }
        }
Beispiel #18
0
        private void drugHpShow()
        {
            if (hpCanEdit())
            {
                EmsOrDrug drugitem = this.GetViewModel().GetSelectedObject() as EmsOrDrug;
                var       bdhpdtos = drugitem.BdHpIndicationDTO;
                if (bdhpdtos != null && bdhpdtos.Count > 0)
                {
                    BdHpIndicationDTO bdhpdto = bdhpdtos[0] as BdHpIndicationDTO;
                    var code_hpindicjudged    = bdhpdto.Code_hpindicjudged;
                    if (code_hpindicjudged != null && (code_hpindicjudged == HpIndicationRuleEnum.SYS_JUD_DOCCONFIRM || code_hpindicjudged == HpIndicationRuleEnum.DOC_CONFIRM))
                    {
                        showFgTreatDialog(null);
                    }

                    // 确认为非适应症时是否提醒医生 ,true 提醒,false 不提醒
                    String ishp = SysParamUtils.getSysParam().SYS_PARAM_IsRemind4FgIndicFalseConfirmed.OrgParam;
                    if (bdhpdto.Fg_indic != FBoolean.True && code_hpindicjudged != null && ishp != null && ishp.StartsWith("true") && code_hpindicjudged == HpIndicationRuleEnum.SYS_CONFIRM)
                    {
                        string limitMsg = drugitem.Limit;
                        if (string.IsNullOrEmpty(limitMsg))
                        {
                            limitMsg = "医保规则校验结果为自费,但未设置限制条件";
                        }
                        BizAssMessageBoxUtil.ShowInforMsg(limitMsg);
                    }
                }

                // 特殊病患者校验
                CiEnContextDTO ctx            = BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO;
                string         specialDisease = ((EmsDrugsViewModel)this.GetViewModel()).GetSpecialDiseaseJudgeRst(ctx, new List <EmsOrDrug> {
                    drugitem
                });
                if (!string.IsNullOrEmpty(specialDisease))
                {
                    BizAssMessageBoxUtil.ShowWarningMsg(specialDisease);
                }
            }
        }
Beispiel #19
0
        private XBaseControl getXapBaseCtrl(string classId)
        {
            if (classId == null)
            {
                BizAssMessageBoxUtil.ShowWarningMsg("不存在classId为[" + classId + "]的对象");
                return(null);
            }

            try
            {
                XBaseControl xbaseControl = this.Context.Config.GetInstance(classId) as XBaseControl;

                if (xbaseControl != null)
                {
                    return(xbaseControl);
                }
            }
            catch (Exception)
            {
                BizAssMessageBoxUtil.ShowWarningMsg("在路径[\\modules\\iihci\\ui\\optrdocstation]的配置文件中未能找到id为[" + classId + "]的类!");
            }

            return(null);
        }
Beispiel #20
0
        /// <summary>
        /// 刷新右侧显示区
        /// </summary>
        public void refreshEntpContent()
        {
            //清空以已缓存的返回数据种类集合(病历、诊断、医嘱)
            currentItemKeyList.Clear();

            if (BizAssMessageBoxUtil.ShowPatIsNullMsg(this.Ent4BannerDTO, "就诊历史"))
            {
                return;
            }

            if (BdFcDictCodeConst.SD_CODE_ENTP_OP.Equals(this.Code_entp) || BdFcDictCodeConst.SD_CODE_ENTP_ET.Equals(this.Code_entp))// 门诊
            {
                // 缓存点击调用按钮时门诊需要返回的数据种类(病历、诊断、医嘱)
                currentItemKeyList.AddRange(opItemKeyList);
            }
            else if (BdFcDictCodeConst.SD_CODE_ENTP_IP.Equals(this.Code_entp))// 住院
            {
                // 缓存点击调用按钮时门诊需要返回的数据种类(病历、诊断、医嘱)
                currentItemKeyList.AddRange(ipItemKeyList);
            }

            // 刷新门诊住院,病历、医嘱、诊断展现
            this.refreshEntpInfo();
        }
Beispiel #21
0
        /// <summary>
        /// 报告加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ReportView_Load(object sender, System.EventArgs e)
        {
            ReportViewModel reportViewModel = new ReportViewModel(this.context);

            Dictionary <string, object> paramDic = reportViewModel.GetParamDic(this.uiEvent, this.ent4BannerDTO);

            if (!paramDic.ContainsKey("funCode"))
            {
                BizAssMessageBoxUtil.ShowWarningMsg("加载报告时未获取到功能节点编码!");
                return;
            }

            string funCode = paramDic["funCode"] as string;

            paramDic.Remove("funCode");
            Control ctrl = XapEvents.GetFuncEvent(this, new GetFuncEventArgs(funCode, paramDic));
            // XCefWebBrowser webBrower = ctrl as XCefWebBrowser;

            EmbedControl webBrower = ctrl as EmbedControl;



            string title = MenuItemController.GetInstance().FuncIdAndNameMapper[funCode];

            StringBuilder msgBuilder = new StringBuilder();
            string        url        = webBrower.Arguments;

            msgBuilder.Append("打开节点[" + title + "];节点编码:" + funCode + " ; 请求地址:" + url);
            string logMsg = LogManagerUtil.GetEnInfo(msgBuilder.ToString(), this.ent4BannerDTO);

            LogManager.GetLogger().InfoEx(logMsg);

            this.Text = title;
            ctrl.Dock = DockStyle.Fill;
            this.AddRender(ctrl);
        }
Beispiel #22
0
        /// <summary>
        /// 医嘱模板处理
        /// </summary>
        /// <param name="o"></param>
        /// <returns></returns>
        protected bool EventOrderTmplHandle(MoreEmsParamDTO o)
        {
            if (!string.IsNullOrEmpty(o.Prompt_msg))
            {
                BizAssMessageBoxUtil.ShowInforMsg(o.Prompt_msg);
            }
            // 有效性检查
            if (o.Errormap2 == null || o.Errormap2.Values.Count == 0)
            {
                return(false);
            }


            //var waitting = new AssWaittingTool(this.FindForm());


            bool hasError = false;

            // 异常处理
            try {
                // 建立等待标志
                NAppWaiting.Instance.Show(this);
                ClearEmsEditorView();

                var emsList = o.Errormap2.Values.Cast <CiEmsDTO>().ToList();
                GetSelectedEmsView().OnEventHandle(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_DIRECT_EDIT, EmsEditParameter.TAGKEY, new EmsEditParameter {
                    EmsDTO = emsList[0] as CiEmsDTO
                }));
                SetSelectedEmsViewTooltip(o.Errormap2.Keys.Cast <String>().ToList()[0]);
                for (int index = 1; index < emsList.Count; ++index)
                {
                    var te = this.AddTabEmsView();
                    try {
                        te.OnEventHandle(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_DIRECT_EDIT, EmsEditParameter.TAGKEY, new EmsEditParameter {
                            EmsDTO = emsList[index] as CiEmsDTO
                        }));
                    }
                    catch (Exception e) {
                        this.SetStatusMsg(e.StackTrace);
                        EventCloseEmsHandle(te);
                    }

                    SetSelectedEmsViewTooltip(o.Errormap2.Keys.Cast <String>().ToList()[index]);
                }

                this.SwitchEmsContainer(GetSelectedEmsView());
                // GetEmsButtonGroupView().OnEventHandle(this, AssToolEx.DictionaryEventArgsWith(EventCodeType.EVENT_EMS_ALLOW_EDIT));
            }
            catch (XapServiceException e) {
                this.SetStatusMsg(e.ErrorMsg.Message);
                hasError = true;
            }
            catch (Exception e) {
                this.SetStatusMsg(e.StackTrace);
                hasError = true;
            }
            finally {
                NAppWaiting.Instance.Close();
                if (hasError)
                {
                    EventCloseEmsHandle(null);
                    this.ShowInfo("医疗单中存在错误,打开失败!");
                }
            }
            //this.ResumeLayout(false);
            //this.PerformLayout();

            return(true);
        }
Beispiel #23
0
        void button_MouseClick(object sender, MouseEventArgs e)
        {
            XIconToolButton btn = sender as XIconToolButton;

            // 如不是中间按钮区直接返回,或者banner为空,弹出提示信息并返回
            if (btn == null || BizAssMessageBoxUtil.ShowPatIsNullMsg(ent4BannerDTO, btn.Text) || IsEntCompleted())
            {
                return;
            }

            if (btn.TabIndex < szCiCommand.Length && szCiCommand[btn.TabIndex] != null)
            {
                // 获取助手弹出窗口的坐标
                this.GetICiCommandParamDic();

                if (btn.Text == "医嘱模板")
                {
                    // 判断是否已经诊毕,以及是否已经下诊断
                    if (!IsWriteCiDi("医嘱模板"))
                    {
                        return;
                    }

                    using (OpOrderTemplateForm OrderSevrice_Frm = new OpOrderTemplateForm(this, 1))
                    {
                        // helperForm OrderSevrice_Frm = new helperForm(this);
                        OrderSevrice_Frm.StartPosition = FormStartPosition.Manual;
                        OrderSevrice_Frm.Location      = this.GetLeftLocation();
                        // OrderSevrice_Frm.LocationChanged += new EventHandler(OrderSevrice_Frm_LocationChanged);
                        OrderSevrice_Frm.SaveClick  += new MouseEventHandler(OrderSevrice_Frm_SaveClick);
                        OrderSevrice_Frm.FormClosed += new FormClosedEventHandler(OrderSevrice_Frm_FormClosed);
                        OrderSevrice_Frm.ShowDialog();
                    }
                }
                else if (btn.Text == "医技常规")
                {
                    // 判断是否已经诊毕,以及是否已经下诊断
                    if (!IsWriteCiDi("医技常规"))
                    {
                        return;
                    }
                    using (OpOrderTemplateForm OrderSevrice_Frm = new OpOrderTemplateForm(this, 2))
                    {
                        // helperForm OrderSevrice_Frm = new helperForm(this);
                        OrderSevrice_Frm.StartPosition = FormStartPosition.Manual;
                        OrderSevrice_Frm.Location      = this.GetLeftLocation();
                        // OrderSevrice_Frm.LocationChanged += new EventHandler(OrderSevrice_Frm_LocationChanged);
                        OrderSevrice_Frm.SaveClick  += new MouseEventHandler(OrderSevrice_Frm_SaveClick);
                        OrderSevrice_Frm.FormClosed += new FormClosedEventHandler(OrderSevrice_Frm_FormClosed);
                        OrderSevrice_Frm.ShowDialog();
                    }
                }
                else if (btn.Text == "服务分类")
                {
                    // 判断是否已经诊毕,以及是否已经下诊断
                    if (!IsWriteCiDi("服务分类"))
                    {
                        return;
                    }

                    using (OpOrderTemplateForm OrderSevrice_Frm = new OpOrderTemplateForm(this, 0))
                    {
                        // helperForm OrderSevrice_Frm = new helperForm(this);
                        OrderSevrice_Frm.StartPosition = FormStartPosition.Manual;
                        OrderSevrice_Frm.Location      = this.GetLeftLocation();
                        // OrderSevrice_Frm.LocationChanged += new EventHandler(OrderSevrice_Frm_LocationChanged);
                        OrderSevrice_Frm.SaveClick  += new MouseEventHandler(OrderSevrice_Frm_SaveClick);
                        OrderSevrice_Frm.FormClosed += new FormClosedEventHandler(OrderSevrice_Frm_FormClosed);
                        OrderSevrice_Frm.ShowDialog();
                    }
                }
                else if (btn.Text == "病历模板")
                {
                    Object result = szCiCommand[btn.TabIndex].exec(paramDic);
                }
                else if (btn.Text == "门诊组套")
                {
                    Object result = szCiCommand[btn.TabIndex].exec(paramDic);
                }
                else
                {
                    Object result = szCiCommand[btn.TabIndex].exec(this);
                }
            }
        }