Exemplo n.º 1
0
        public bool Reload(Ent4BannerDTO e)
        {
            mEnt4BannerDTO = e;
            if (mEnt4BannerDTO == null)
            {
                mDataSource.Clear();
                return(false);
            }
            var sql           = string.Format("a0.id_en='{0}'", e.Id_ent);
            var szCidiagAggDO = cidiagCrud.find(sql, "a0.createdtime desc", false);

            if (szCidiagAggDO.Length > 0)
            {
                SetCidiagAggDO(szCidiagAggDO.LastOrDefault());
            }
            else
            {
                SetCidiagAggDO(CreateCidiagAggDO(this.mEnt4BannerDTO));
            }


            mDataSource = (XapDataList <CiDiagItemDO>)GetCidiagAggDO().getCiDiagItemDO().ToArray();

            return(szCidiagAggDO.Length > 0);
        }
Exemplo n.º 2
0
        public CiMedReferralViewModel(BaseContext c, Ent4BannerDTO e)
        {
            this.context = c;
            this.SetEnt4BannerDTO(e);

            medReferralDO = new MedReferralDO();
        }
Exemplo n.º 3
0
        public override void HandleState(object sender, xap.rui.engine.DictionaryEventArgs e)
        {
            string uiEvent  = e.Data[UIConst.UI_EVENT] as string;
            string newState = e.Data[UIConst.NEW_STATE] as string;

            switch (uiEvent)
            {
            case UIEvent.LOAD:
                this.ent4BannerDTO = (this.Context["PatientData"] as BannerData).Ent4BannerDTO;
                //树列表
                DiCertificateTreeView leftView = userControl.GetConfig().GetInstance("leftView") as DiCertificateTreeView;
                if (leftView != null)
                {
                    leftView.ent4BannerDTO     = this.ent4BannerDTO;
                    leftView.parentUserControl = this.Parent.Parent as XUserControl;
                }

                //编辑界面
                DiCertificateEditView rightView = userControl.GetConfig().GetInstance("rightView") as DiCertificateEditView;
                if (rightView != null)
                {
                    rightView.ent4BannerDTO = this.ent4BannerDTO;
                }

                userControl.Enabled = cof.viewEditState8EntSd(ent4BannerDTO.Entpattp);
                break;

            default:
                break;
            }
        }
Exemplo n.º 4
0
        public override void OnSelected(object sender, TargetEventArgs e)
        {
            if (!(sender is bannerOpdocstation))
            {
                return;
            }

            BannerData bannerData = e.Object as BannerData;

            if (bannerData != null && bannerData.Ent4BannerDTO != null)
            {
                this.ent4BannerDTO = bannerData.Ent4BannerDTO;

                if (finishMode == null)
                {
                    string idDep = this.Context.Dept.Id_dep;
                    // 诊毕状态 0 无诊毕 可以去掉诊毕按钮,任何业务部受限制
                    // 1 仅诊毕 通过点击诊毕按钮,进行批量业务处理(是否处理按业务场景确定,比如是否修改诊毕状态,是否调用打印)
                    // 2 诊毕撤回,严格控制诊毕后不允许做其他业务,只有进行撤回后才能继续
                    finishMode = this.Context.GetParam <string>(idDep, ICiOrdNSysParamConst.SYS_PARAM_OpThisPatVisitFinishMode);
                }
            }
            else
            {
                this.ent4BannerDTO = null;
            }
        }
Exemplo n.º 5
0
        //接诊时调用医保的共享数据 缓存在客户端
        public String getMedicalsharingData(Ent4BannerDTO ent4Banner, BaseContext context, out string errMessage, string str)
        {
            ClincHistoryTradeInfo historyInfo = null;
            EachCommDTO           eachCommDTO = new EachCommDTO();

            eachCommDTO.Code_hp = ent4Banner.No_hp;
            eachCommDTO.Id_grp  = context.Group.Id_grp;
            eachCommDTO.Id_org  = context.Org.Id_org;
            eachCommDTO.Id_pat  = ent4Banner.Id_pat;
            historyInfo         = MedicalSharingCache.getMedicalData(ent4Banner.No_hp);
            if (historyInfo != null && historyInfo.SysInfo != null && historyInfo.SysInfo.ServerDateTime != null)
            {
                DateTime        systemDateTime  = LogicEx.GetInstance().GetSystemDateTime();
                DateTime        serverDateTime2 = (DateTime)historyInfo.SysInfo.ServerDateTime;
                System.TimeSpan timespan        = systemDateTime.Subtract(serverDateTime2);
                if (timespan != null && timespan.TotalMinutes > 10)
                {
                    historyInfo = service.GetClincHistoryInfo(eachCommDTO, out errMessage, str);
                    //historyInfo = service.GetClincHistoryInfoByTest();
                }
            }
            else
            {
                //historyInfo = service.GetClincHistoryInfoByTest();
                // historyInfo = service.GetClincHistoryInfo(icno, out errMessage, str);

                historyInfo = service.GetClincHistoryInfo(eachCommDTO, out errMessage, str);
            }
            // ClincHistoryTradeInfo historyInfo = service.GetClincHistoryInfo(icno, out errMessage, str);
            // ClincHistoryTradeInfo historyInfo =  service.GetClincHistoryInfoByTest();//测试数据
            errMessage = "";
            MedicalSharingCache.setMedicalSharingData(ent4Banner.No_hp, historyInfo, errMessage);
            return("");
        }
Exemplo n.º 6
0
        public EmsPathgyViewModel(Ent4BannerDTO ent)
            : base(ent)
        {
            lstEmsPathgyItemDO = new XapDataList <EmsPathgyItemDO>();

            uiEmsDTO.EmsType = EmsType.PATHGY;
        }
Exemplo n.º 7
0
        public OrderItemViewModel(Ent4BannerDTO ent4BannerDto, BaseContext context, bool isOutPress = false)
        {
            this.id_en     = ent4BannerDto.Id_ent;
            this.code_entp = ent4BannerDto.Code_entp;
            this.context   = context;

            if (isOutPress)
            {//出院带药
                emsAppModeEnum = EmsAppModeEnum.OUTHEMSAPPMODE;
            }
            else if (EnDictCodeConst.SD_ENTP_INPATIENT == this.code_entp)//住院
            {
                emsAppModeEnum = EmsAppModeEnum.IVEMSAPPMODE;
            }
            else
            {//门诊或其他
                emsAppModeEnum = EmsAppModeEnum.SVEMSAPPMODE;
            }

            this.udidocService                = XapServiceMgr.find <IUdidocCrudService>();
            this.orderItemMService            = XapServiceMgr.find <ICiorderMDOCrudService>();
            this.maintainService              = XapServiceMgr.find <ICiOrdMaintainService>();
            this.entdiCrudService             = XapServiceMgr.find <IEntdiCrudService>();
            this.diagservice                  = XapServiceMgr.find <ICidiagCrudService>();
            this.qryService                   = XapServiceMgr.find <ICiorderCrudService>();
            this.bsservice                    = XapServiceMgr.find <IBsQueryService>();
            this.ciOrderQryService            = XapServiceMgr.find <ICiOrdQryService>();
            this.bdHpUnlimitDrugDoCrudService = XapServiceMgr.find <IBdHpUnlimitDrugDOCrudService>();

            OrderSequenceModel = this.ciOrderQryService.getOrderSequenceMode();
        }
Exemplo n.º 8
0
        /// <summary>
        /// 获取banner信息患者
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void OnSelected(object sender, TargetEventArgs e)
        {
            if (!(sender is bannerOpdocstation))
            {
                this.Enabled = false;
                return;
            }

            this.ent4BannerDTO = null;

            BannerData bannerData = e.Object as BannerData;

            if (bannerData != null && bannerData.Ent4BannerDTO != null)
            {
                this.ent4BannerDTO = bannerData.Ent4BannerDTO;
                string d = this.AnalysisPresResult();
            }
            else
            {
                this.ent4BannerDTO = null;
            }

            //MainPointsEvent();
            //this.ClearState();
        }
Exemplo n.º 9
0
        public override void HandleState(object sender, DictionaryEventArgs eventArgs)
        {
            string uiEvent  = eventArgs.Data[UIConst.UI_EVENT] as string;
            string newState = eventArgs.Data[UIConst.NEW_STATE] as string;

            switch (uiEvent)
            {
            case UIEvent.LOAD:
                Dictionary <string, object> dic = eventArgs.Data[UIConst.DATA] as Dictionary <string, object>;
                if (dic != null)
                {
                    if (dic.Keys.Contains("PatientData"))
                    {
                        this.ent4BannerDto = (dic["PatientData"] as BannerData).Ent4BannerDTO;
                    }
                }

                break;

            case "conscom":
                ConsComplete();
                break;

            case "completesuccess":
                this.SetStatusInfo("完成会诊");
                break;

            case "print":
                this.rptPrint();
                break;

            default:
                break;
            }
        }
Exemplo n.º 10
0
 private void EntHistoryTabFrame_Load(object sender, EventArgs e)
 {
     this.BannerDTO   = this.Context["ent4BannerDTO"] as Ent4BannerDTO;
     this.BaseContext = this.Context["context"] as BaseContext;
     xUserControl.Init(Application.StartupPath + "\\modules\\iihci\\ui\\opordertemplate\\Helper_pithy.xml");
     this.OnInit();
 }
Exemplo n.º 11
0
        public override void HandleState(object sender, DictionaryEventArgs eventArgs)
        {
            string uiEvent  = eventArgs.Data[UIConst.UI_EVENT] as string;
            string newState = eventArgs.Data[UIConst.NEW_STATE] as string;

            switch (uiEvent)
            {
            case UIEvent.LOAD:
                Dictionary <string, Object> data = eventArgs.Data[UIConst.DATA] as Dictionary <string, Object>;
                if (data != null)
                {
                    ent4BannerDto = (data["PatientData"] as BannerData).Ent4BannerDTO;
                    if (ent4BannerDto != null)
                    {
                        this.Id_ent = ent4BannerDto.Id_ent;
                    }
                    this.OnLoadData();
                }
                break;

            case UIEvent.ADD:
                //  this.add();
                break;

            case "ListSelected":
                this.LoadData();
                break;

            default:
                break;
            }
        }
Exemplo n.º 12
0
        /// <summary>
        /// 通过服务id_srv和banner信息,获得服务关联的所有物品信息
        /// </summary>
        /// <param name="id_srvs"></param>
        /// <param name="PatInfo"></param>
        /// <param name="isOutPres">出院带药</param>>
        /// <returns></returns>
        public static XapDataList <EmsOrDrug> getMMOfDrug(string id_srvs, Ent4BannerDTO PatInfo, bool isOutPres = false)
        {
            //通过患者信息拼接就诊上下文
            CiEnContextDTO contextdto = CiEnContextUtil.GetCiEnContext(PatInfo);

            return(new OrderCardViewModel().GetOrDrugs(id_srvs, PatInfo.Id_hp, isOutPres == true?EnDictCodeConst.SD_ENTP_OUTPATIENT:PatInfo.Code_entp, contextdto));
        }
Exemplo n.º 13
0
        /// <summary>
        /// Banner选择事件处理逻辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="bannerData"></param>
        /// <returns></returns>
        public override bool OnEventSelected(object sender, object bannerData)
        {
            base.OnEventSelected(sender, bannerData);

            if (bannerData == null)
            {
                //GetEmsView().SetDataPolicy(false);
                this.GetDefaultEmsView().GetViewModel().SetEnt4BannerDTO(null);
                return(true);
            }

            this.HandleCancelEmsEvent();

            if (bannerData is BannerData)
            {
                this.ent4BannerDTO = (bannerData as BannerData).Ent4BannerDTO;

                //if (null != this.ent4BannerDTO && this.ent4BannerDTO.Sd_status == EnDictCodeConst.SD_ENSTATUS_OP_FINISH) {
                //    this.GetDefaultEmsView().SetDataPolicy(false);
                //}
            }

            this.GetDefaultEmsView().GetViewModel().SetEnt4BannerDTO(this.ent4BannerDTO);



            return(true);
        }
Exemplo n.º 14
0
        /// <summary>
        /// 创建固定数据表格部件
        /// </summary>
        //         private void contructControls()
        //         {
        //
        //             if (!emsViewCache.ContainsKey("EmsDrugsTableViewCard"))
        //             {
        //                 this.tableControl = new EmptyDrugSrvGridView(this);
        //
        //                 emsViewCache.Add("EmptyDrugSrvGridView", this.tableControl);
        //             }
        //             else
        //             {
        //                 this.tableControl = emsViewCache["EmptyDrugSrvGridView"];
        //             }
        //         }
        #endregion

        #region 父类继承区域

        protected override void DisposeManaged()
        {
            if (tableControl != null)
            {
                tableControl.Dispose();
                tableControl = null;
            }

            if (_defaultTableControl != null)
            {
                _defaultTableControl.Dispose();
                _defaultTableControl = null;
            }
            rootView = null;

            // 患者就诊信息(来自于选中就诊患者时候)
            ent4BannerDTO = null;

            tableControl = null;

            orderDo = null;

            isFirstVisit = true;

            nOpOrValidTime = -1;

            isCreateEms = false;
            base.DisposeManaged();
        }
Exemplo n.º 15
0
        /// <summary>
        /// 获取处方
        /// </summary>
        /// <param name="ent4BannerDTO"></param>
        /// <param name="idOrs"></param>
        /// <returns></returns>
        private PresInfo GetPresInfo(CiEnContextDTO ctxDTO, List <string> idOrList)
        {
            Ent4BannerDTO ent4BannerDTO = ctxDTO.Ent4BannerDTO;

            // 获取本次就诊的已签署的药品医嘱以及ordIds 对应的医嘱
            OrdRationalDrugDTO[] rationalDrugs = iCiOrdQryService.getRationalDrugDTOs(ent4BannerDTO, idOrList.ToArray());

            PresInfo presInfo = new PresInfo();

            // 设置医生患者信息
            this.SetDoctorPresInfo(ctxDTO, ref presInfo);

            // 获取过敏史,生理状况
            OverviewAggDO overivewAgg = this.GetAllergicHistory(ctxDTO.Id_pat);

            // 设置过敏史
            this.SetAllergicHistory(ref presInfo, overivewAgg.getPiPatAlDO());

            // 设置诊断
            this.SetDiagnoses(ref presInfo, ctxDTO.Id_en);

            //设置生理状况
            this.SetPhysiological(ref presInfo, overivewAgg.getPiPatPhyDO());

            // 设置处方
            this.SetPrescription(ref presInfo, rationalDrugs, idOrList);

            return(presInfo);
        }
        /// <summary>
        /// 查询模板明细
        /// </summary>
        /// <param name="BannerDTO"></param>
        /// <param name="id_ortmpls"></param>
        /// <returns></returns>
        public FMap getNewOrderTemplateDTO2(Ent4BannerDTO BannerDTO, string[] id_ortmpls)
        {
            remplRes = ciOrdQeryService.getOrTemplateCache(id_ortmpls, BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO);
            //string json = remplRes.serializeJson();
            FMap map2 = new FMap();

            if (remplRes != null)
            {
                map2 = remplRes.TemplItm;
            }
            //诊疗医疗单的开单模式赋值
            if (map2 != null && BaseEmsView.BaseEmsInfoContext.ContainsKey(ICiOrdNSysParamConst.OPDiagTreatTmplOrOpenMode))
            {
                foreach (string keyId in map2.Keys)
                {
                    FArrayList list = map2[keyId] as FArrayList;
                    foreach (NewOrderTemplateDTO templateDTO in list)
                    {
                        if (templateDTO.Ui_flag == "6")//治疗医疗单
                        {
                            FArrayList itmdolist = templateDTO.Itemlist;
                            foreach (OrTplNItmDO itmdo in itmdolist)
                            {
                                itmdo.Opdiagtreattmploropenmode = (string)BaseEmsView.BaseEmsInfoContext[ICiOrdNSysParamConst.OPDiagTreatTmplOrOpenMode];
                            }
                        }
                    }
                }
            }
            return(map2);
        }
Exemplo n.º 17
0
        /// <summary>
        /// 输出日志
        /// </summary>
        /// <param name="context"></param>
        /// <param name="banner"></param>
        /// <param name="msg"></param>
        private static string GetWriteLog(string msg, BaseContext context, Ent4BannerDTO banner)
        {
            StringBuilder builder = new StringBuilder();

            builder.Append("【CI】:" + msg);
            if (context != null)
            {
                builder.Append(";医生:" + context.User.Name + ";就诊部门ID:" + context.Dept.Id_dep);
            }
            if (banner != null)
            {
                builder.Append(";患者:" + banner.Name_pat + "; 就诊ID:" + banner.Id_ent + ";就诊类型:" + banner.Code_entp + ";初诊:" + banner.Fg_first);
                if (!string.IsNullOrEmpty(banner.Code_ent))
                {
                    builder.Append("; 就诊号:" + banner.Code_ent);
                }
                else
                {
                    builder.Append(";病案号:" + banner.Code_amr_ip);
                }

                if (string.IsNullOrEmpty(banner.Id_hp))
                {
                    builder.Append("; ID_HP:[" + banner.Code_amr_ip + "]");
                }

                if (banner.Fg_hpfundpay == FBoolean.True)
                {
                    builder.Append("(基金支付)");
                }
            }


            return(builder.ToString());
        }
Exemplo n.º 18
0
        /// <summary>
        /// 获取banner信息患者
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public override void OnSelected(object sender, TargetEventArgs e)
        {
            if (!(sender is bannerOpdocstation))
            {
                return;
            }

            BannerData bannerData = e.Object as BannerData;

            if (bannerData != null && bannerData.Ent4BannerDTO != null)
            {
                if (this.ent4BannerDTO != null && !this.ent4BannerDTO.Id_ent.Equals(bannerData.Ent4BannerDTO.Id_ent))
                {
                    List <string> founCode = new List <string>();
                    founCode.Add(AssistantConstant.FUN_CODE_CONTAGION_REPORT_CARD);
                    XapEvents.CloseOtherFuncEvent(founCode);
                }

                this.ent4BannerDTO = bannerData.Ent4BannerDTO;
                this.SendOpRevokeEnActionStatus(this.ent4BannerDTO);
            }
            else
            {
                this.ent4BannerDTO = null;
            }
        }
Exemplo n.º 19
0
        public override void HandleState(object sender, DictionaryEventArgs eventArgs)
        {
            string uiEvent  = eventArgs.Data[UIConst.UI_EVENT] as string;
            string newState = eventArgs.Data[UIConst.NEW_STATE] as string;

            switch (uiEvent)
            {
            case UIEvent.LOAD:
                Dictionary <string, object> dic = eventArgs.Data[UIConst.DATA] as Dictionary <string, object>;
                if (dic != null)
                {
                    if (dic.Keys.Contains("PatientData"))
                    {
                        ent4BannerDto = (dic["PatientData"] as BannerData).Ent4BannerDTO;
                    }
                    if (dic.Keys.Contains("IsInHospitalStation"))
                    {
                        ent4BannerDto.Id_ent = dic["EncounterID"].ToString();
                    }

                    // this.OnLoadData();
                }

                break;

            case UIEvent.SAVE:
                this.Save();
                break;

            case UIEvent.PRINT:
                this.print_view();
                break;
            }
        }
Exemplo n.º 20
0
        /// <summary>
        /// 获取加载病历的环境参数
        /// </summary>
        /// <returns></returns>
        private DictionaryEventArgs GetCiMrArgsDic(Dictionary <string, object> paramDic)
        {
            object        bannerObj     = paramDic[EmrEditorConst.PARAM_ENT4BANNERDTO];
            Ent4BannerDTO ent4BannerDTO = bannerObj == null ? null : bannerObj as Ent4BannerDTO;

            if (ent4BannerDTO != null)
            {
                // 获取患者信息
                EnEmrDTO enEmrDTO = iEnOutQryService.GetEntInfo4Mr(ent4BannerDTO.Id_ent);
                paramDic.Add("enEmrDTO", enEmrDTO);

                // 如果是诊闭状态,设置病历为只读状态
                if (EnDictCodeConst.SD_ENSTATUS_OP_FINISH.Equals(ent4BannerDTO.Sd_status))
                {
                    paramDic.Add("readonly", true);
                }
                else
                {
                    paramDic.Add("readonly", false);
                }
            }

            DictionaryEventArgs args = new DictionaryEventArgs();

            foreach (string key in paramDic.Keys)
            {
                args.Data.Add(key, paramDic[key]);
            }

            return(args);
        }
Exemplo n.º 21
0
        /// <summary>
        /// 基于条件,查找匹配的医疗单的具体创建工厂对象;
        /// 针对住院的
        /// </summary>
        /// <param name="srv">医疗服务对象</param>
        /// <returns></returns>
        public EmsFactoryBase GetEmsFactory(MedSrvDO srv, BaseContext context, Ent4BannerDTO bannerDto)
        {
            string srvType = srv.Sd_srvtp;

            if (srvType.Length < 4)
            {
                throw new Exception(string.Format("服务类型有误长度不足4位!目前是{0},请检查", srvType));
            }

            EmsFactoryBase r = null;

            //缓存中没有,则实际获取,然后在缓存
            SrvMatchEmsParamDTO dto         = EmsMatchTool.GetSrvMatchEmsParamDTO(context.Org.Id_org, context.Group.Id_grp, context.Dept.Id_dep, context.PsnInfo.Id_psndoc, bannerDto.Code_entp, srv.Sd_srvtp, srv.Id_srv, EmsAppModeEnum.IVEMSAPPMODE);
            SrvMatchEmsRstDTO   matchResult = this.GetSrvMatchEmsParamDTO(dto);

            if (matchResult == null)
            {
                throw new Exception(
                          string.Format("服务类型{0}没有匹配到医疗单,请从检查医疗单维护节点检查配置信息", srvType));
            }

            string funcStr = matchResult.Funcclassstr;

            if (funcStr == null || funcStr == "")
            {
                throw new Exception(
                          string.Format("服务类型{0}对应的医疗单配置串为空,请从检查医疗单维护节点检查配置信息", srvType));
            }

            r = this.GetEmsFactoryFromFuncStr(funcStr);

            return(r);
        }
Exemplo n.º 22
0
        /// <summary>
        /// 根据当前环境创建CiMrDO对象
        /// ent4BannerDTO 通过传参方式,如果使用本地onSelected方法中获取Ent4BannerDTO,可能出现在本地onSelected方法执行前,已经执行到该方法
        /// </summary>
        /// <returns></returns>
        private CiMrDO CreateCiMrDO(Ent4BannerDTO ent4BannerDTO)
        {
            CiMrDO ciMrDO = new CiMrDO();

            // 当前已选患者,但未保存过病历时,通过当前环境参数构造病历对象
            if (ent4BannerDTO != null)
            {
                // 获取当前登录用户所在院区及科室,这个两个参数确定调用哪个模板
                UserDO user  = this.Context.User;
                string idOrg = this.Context.Org.Id_org;
                string idDep = this.Context.Dept.Id_dep;

                ciMrDO.Createdby   = user.Id_user;
                ciMrDO.Createdtime = DateTime.Now;
                ciMrDO.Id_emp      = user.Id_user;

                // 患者当前科室
                ciMrDO.Id_dep_pat = ent4BannerDTO.Id_dep_phy;
                // 就诊号
                ciMrDO.Id_ent = ent4BannerDTO.Id_ent;
                // 就诊类型
                ciMrDO.Code_entp = ent4BannerDTO.Code_entp;
                // 患者号
                ciMrDO.Id_pat = ent4BannerDTO.Id_pat;
                // 经治医师	取当前登录人
                ciMrDO.Id_treat_doctor = user.Id_user;

                // 医疗记录科室 (当前登录人科室)
                ciMrDO.Id_dep = ent4BannerDTO.Id_dep_phy;
            }

            return(ciMrDO);
        }
Exemplo n.º 23
0
        public override void HandleState(object sender, DictionaryEventArgs eventArgs)
        {
            var uiEvent  = eventArgs.Data[UIConst.UI_EVENT] as string;
            var newState = eventArgs.Data[UIConst.NEW_STATE] as string;

            switch (uiEvent)
            {
            case UIEvent.REFRESH:
                LoadData();
                break;

            case UIEvent.LOAD:
                var dic = eventArgs.Data[UIConst.DATA] as Dictionary <string, object>;
                if (dic != null)
                {
                    if (dic.Keys.Contains("PatientData"))
                    {
                        ent4BannerDto = (dic["PatientData"] as BannerData).Ent4BannerDTO;
                    }
                    //if (dic.Keys.Contains("IsInHospitalStation"))
                    //{
                    //    patDo.Id_ent = dic["EncounterID"].ToString();
                    //}

                    // this.OnLoadData();
                }

                break;
            }
        }
Exemplo n.º 24
0
        /// <summary>
        /// 设置撤回按钮是否可操作
        /// </summary>
        /// <param name="ent4BannerDTO"></param>
        private void SendOpRevokeEnActionStatus(Ent4BannerDTO ent4BannerDTO)
        {
            DictionaryEventArgs de = new DictionaryEventArgs();
            string id_dep          = this.Context.Dept.Id_dep;
            // 病历管理模式:医生打印=0,病案统一打印=1,无纸化模式=2,医生手写=3
            string omrMgmtMd = this.Context.GetParam <string>(id_dep, ICiOrdNSysParamConst.SYS_PARAM_OMRMgmtMd);

            // 如果是无纸化模式(客户接受电子病历),不允许对已经诊闭病历进行撤回
            if (EmrEditorConst.OMR_MGMT_MD_2.Equals(omrMgmtMd))
            {
                de.Data.Add(UIConst.UI_EVENT, EmrEditorConst.OPREVOKEEN_ACTION_HIDDEN);
            }
            else
            {
                // 判断是否允许撤回
                bool isAllowRevoke = emrViewModel.IsAllowRevoke(omrMgmtMd, ent4BannerDTO);

                //如果允许撤回将撤回按钮设置为可操作状态
                if (isAllowRevoke)
                {
                    de.Data.Add(UIConst.UI_EVENT, EmrEditorConst.OPREVOKEEN_ACTION_OPERABLE);
                }
                else
                {
                    de.Data.Add(UIConst.UI_EVENT, EmrEditorConst.OPREVOKEEN_ACTION_READONLY);
                }
            }

            this.FireEventSent(this, de);
        }
Exemplo n.º 25
0
        public override void HandleState(object sender, DictionaryEventArgs eventArgs)
        {
            string uiEvent  = eventArgs.Data[UIConst.UI_EVENT] as string;
            string newState = eventArgs.Data[UIConst.NEW_STATE] as string;

            switch (uiEvent)
            {
            case UIEvent.REFRESH:
                if (this.Created)
                {
                    this.LoadData();
                }
                break;

            case UIEvent.LOAD:
                this.createInstance();
                Dictionary <string, object> dic = eventArgs.Data[UIConst.DATA] as Dictionary <string, object>;
                if (dic != null)
                {
                    if (dic.Keys.Contains("PatientData"))
                    {
                        patDo = (dic["PatientData"] as BannerData).Ent4BannerDTO;
                    }
                    if (dic.Keys.Contains("IsInHospitalStation"))
                    {
                        patDo = (dic["PatientData"] as BannerData).Ent4BannerDTO;
                    }
                }
                break;

            default:
                break;
            }
        }
Exemplo n.º 26
0
        /// <summary>
        /// 获取lis报告查看参数
        /// </summary>
        /// <param name="ent4BannerDTO"></param>
        /// <returns>查看list报告参数</returns>
        public Dictionary <String, object> GetLisParamDic(Ent4BannerDTO ent4BannerDTO)
        {
            Dictionary <String, object> paramDic = new Dictionary <string, object>();

            //paramDic.Add("funCode", LisFunCode); // 功能节点编码
            //paramDic.Add("patientid", "000145102700"); // 患者ID
            //paramDic.Add("healthchecktimes", "9"); // 就诊次数

            //if(paramDic != null)
            //return paramDic;


            paramDic.Add("funCode", LisFunCode);                                   // 功能节点编码
            paramDic.Add("patientid", ent4BannerDTO.Code_pat);                     // 患者ID

            if (BdFcDictCodeConst.SD_CODE_ENTP_IP.Equals(ent4BannerDTO.Code_entp)) // 住院
            {
                InpatientDO inpatient = GetInpatient(ent4BannerDTO.Id_ent);        // 住院属性
                paramDic.Add("healthchecktimes", inpatient.Times_ip);              // 就诊次数
            }
            else if (BdFcDictCodeConst.SD_CODE_ENTP_OP.Equals(ent4BannerDTO.Code_entp) || BdFcDictCodeConst.SD_CODE_ENTP_ET.Equals(ent4BannerDTO.Code_entp))
            {                                                                       // 门诊、急诊
                OutpatientDO outpatient = this.GetOutpatient(ent4BannerDTO.Id_ent); // 门诊属性
                paramDic.Add("healthchecktimes", outpatient.Times_op);              // 就诊次数
            }
            else
            {
                // 其他类型就诊
            }


            return(paramDic);
        }
        public EntDiProveDO SetEntDiProveDO(Ent4BannerDTO patDo)
        {
            entDiProveDo.Id_ent = patDo.Id_ent;
            entDiProveDo.Id_pat = patDo.Id_pat;
            entDiProveDo.Id_dep = patDo.Id_dep_phy;

            //TimeSpan tsm = DateTime.Now - patDo.Dt_birth_pat.Value;
            //int age = (int)tsm.TotalDays/365;

            entDiProveDo.Age       = patDo.Age;
            entDiProveDo.Name_dept = patDo.Name_dep_phy;
            entDiProveDo.Name_pat  = patDo.Name_pat;
            entDiProveDo.Sd_sex    = patDo.Name_sex;

            //entDiProveDo.Name_user = patDo.N

            entDiProveDo.Code_dep    = patDo.Code_entp;
            entDiProveDo.Str_name_di = getDiInfo(patDo.Id_ent); //诊断
            entDiProveDo.Dt_acpt     = patDo.Dt_acpt;
            entDiProveDo.Dt_end      = patDo.Dt_end;
            entDiProveDo.Name_emp    = patDo.Name_emp_phy;
            entDiProveDo.Dt_diprove  = DateTime.Now;
            entDiProveDo.Name_pat    = patDo.Name_pat;
            entDiProveDo.Code_ent    = patDo.Code_ent;
            return(entDiProveDo);
        }
Exemplo n.º 28
0
        /// <summary>
        /// 根据就诊状态和门诊病历管理模式确定撤回按钮是否可操作
        /// </summary>
        /// <param name="omrMgmtMd">门诊病历管理模式:医生打印=0,病案统一打印=1,无纸化模式=2,医生手写=3</param>
        /// <param name="ent4BannerDTO">banner数据</param>
        /// <returns></returns>
        public bool IsAllowRevoke(string omrMgmtMd, Ent4BannerDTO ent4BannerDTO)
        {
            //判断是否为诊闭状态,如果是未诊闭状态,不可撤回
            if (!EnDictCodeConst.SD_ENSTATUS_OP_FINISH.Equals(ent4BannerDTO.Sd_status))
            {
                return(false);
            }

            // 诊闭后omrMgmtMd =0 可撤回,omrMgmtMd=1 如果病历已经打印不可撤回
            // omrMgmtMd=2 病历不可撤回, 3 占时不考虑先按不可撤回
            switch (omrMgmtMd)
            {
            case "0":
                return(true);

            case "1":
                // 如果病历已经打印,返回false,不允许撤回;
                return(!isMrPrinted(ent4BannerDTO.Id_ent));

            case "2":
                return(false);

            case "3":
                break;
            }
            return(true);
        }
Exemplo n.º 29
0
        public void saveEmptyDI(Ent4BannerDTO patientsDTO)
        {
            DIDTO diDTO = new DIDTO();

            FillDiInfo(diDTO, patientsDTO);
            try
            {
                CiEnContextDTO ciEnContextDto = CiEnContextUtil.GetCiEnContext(patientsDTO);
                SaveResult = mainService.SaveCiDiDtos(new DIDTO[] { diDTO }, "", ciEnContextDto);
            }
            catch (XapServiceException xapex)
            {
                if (xapex != null)
                {
                    this.ShowMessage(xapex.Message);
                }
                else
                {
                    this.ShowMessage("后台服务异常!");
                }
            }
            catch
            {
            }
        }
Exemplo n.º 30
0
        /// <summary>
        /// 获取当前登录人未签署的药品
        /// </summary>
        /// <param name="patDo"></param>
        /// <returns></returns>
        public CiOrderDO[] GetCiOrderDOsDrug(Ent4BannerDTO ent4BannerDTO)
        {
            String whereStr = String.Format(" ID_EN ='{0}' and CODE_ENTP ='{1}' and SD_SU_OR ='0' and ID_EMP_OR = '{2}' and SD_SRVTP like '0101%' ",
                                            ent4BannerDTO.Id_ent, ent4BannerDTO.Code_entp, this.context.PsnInfo.Id_psndoc);

            return(this.orderItemMService.find(whereStr, "", FBoolean.False));
        }