コード例 #1
0
        public override void EditEms(CiEmsDTO ems)
        {
            base.EditEms(ems);
            orCiEmsToUiEms.EditApbtuse(uiEmsDTO, ems);

            var srvCommon = (CiEmsSrvDTO)ems.Emssrvs[0];

            var service = XapServiceMgr.find <IMedsrvMDOCrudService>();

            //查询用血对应的服务
            uiEmsDTO.MedSrvDO = service.findById(srvCommon.Id_srv);

            var btService = XapServiceMgr.find <ICiorappbtMDOCrudService>();

            OrdApBtDO[] btdos = btService.find("a0.id_or='" + ems.Id_or_rel + "'", null, FBoolean.False);
            OrdApBtDO   btdo  = btdos[0];

            this.uiEmsDTO.CiordubDTO.Id_mp_dep   = srvCommon.Id_dep;
            this.uiEmsDTO.CiordubDTO.Name_mp_dep = srvCommon.Name_dep;
            uiEmsDTO.CiordubDTO.Applyform        = btdo.No_applyform;
            uiEmsDTO.CiordubDTO.Dt_bt_pl         = Convert.ToDateTime(btdo.Dt_bt_pl);
            uiEmsDTO.CiordubDTO.Num_margin_bu    = btdo.Num_margin_bu;
            uiEmsDTO.CiordubDTO.Quan_medu        = btdo.Num_margin_bu;
            uiEmsDTO.CiordubDTO.Des_or           = ems.Note;
            tableDatasource = new XapDataList <CiordubDTO>();
            tableDatasource.Add(uiEmsDTO.CiordubDTO);
        }
コード例 #2
0
        protected void ciUseDayAndDtEnd(CiEmsDTO ciemsdto)
        {
            //频次类型为once,使用天数设置为0,长临标识为false
            if ((string.IsNullOrEmpty(ciemsdto.Sd_frequnitct)) && ciemsdto.Id_freq != null)
            {
                var freqdef = XapServiceMgr.find <IFreqdefMDOCrudService>();
                var freq    = freqdef.findById(ciemsdto.Id_freq);
                if (freq != null)
                {
                    if (freq.Sd_frequnitct == BdSrvDictCodeConst.SD_FREQUNIT_ONCE)
                    {
                        ciemsdto.Days_or = 0;
                        ciemsdto.Fg_long = false;
                    }
                }
            }
            else if (ciemsdto.Sd_frequnitct == BdSrvDictCodeConst.SD_FREQUNIT_ONCE)
            {
                ciemsdto.Days_or = 0;
                ciemsdto.Fg_long = false;
            }
            DateTime?dt_begin = ciemsdto.Dt_begin;

            if (dt_begin != null)
            {
                if (ciemsdto.Days_or != null)
                {
                    ciemsdto.Dt_end = ((DateTime)dt_begin).AddDays((int)ciemsdto.Days_or);
                }
            }
            ciemsdto.Days_or = (ciemsdto.Days_or == 0 || ciemsdto.Days_or == null ? 1 : ciemsdto.Days_or);
        }
コード例 #3
0
        protected virtual void OnBeforeCallServiceSave(CiEmsDTO ems)
        {
            // TODO: 费用数据 -> ciemsdto(合并)
            if (expenseList.Count > 0)
            {
                this.MergeExpenseSrv(this.expenseList.ToArray(), ems);
            }

            if (ems.Times_cur == null)
            {
                ems.Times_cur = CalQuantumUtil.GetInstance().getTotalTimes(ems.Id_freq, ems.Days_or);
            }

            //if (ems.Freqct != null && ems.Days_or != null&& ems.Times_mp_in == null && ems.Fg_mp_in != null && ems.Fg_mp_in.GetValueOrDefault(false)) {
            //    ems.Times_mp_in = ems.Freqct * ems.Days_or;
            //}

            //门诊中频次为once,使用天数设置为0;结束时间=开始时间+使用天数
            ciUseDayAndDtEnd(ems);

            // 添加基本医保判断结果属性
            // 第一位 医保就诊为1 非医保就诊为0
            // 第二位 黑白名单: 白名单为0 黑名单为 1 非医保就诊时为9
            // 第三位 是否为保外诊断:保外诊断 0 保内诊断 1 非医保就诊时为 9
            CiEnContextDTO contextDTO = CiEnContextUtil.GetCiEnContext(this.ent4BannerDTO, EmsAppModeEnum.SVEMSAPPMODE);

            ems.Fg_vip          = this.ent4BannerDTO.Fg_gcvip;//vip标识
            ems.Bhpjudgerst     = contextDTO.Bhpjudgerst;
            ems.Des_bhpjudgerst = contextDTO.Des_bhpjudgerst;
            //医保保外诊断的处理,fg_selfpay=Y,fg_indic=false
            foreach (CiEmsSrvDTO ciemssrvdto in ems.Emssrvs)
            {
                HpJudgeUtil.HandleCiEmsSrvDTOHPInfo(ciemssrvdto);
            }
        }
コード例 #4
0
 public CiOrderDO SaveDTO(EmsUIDTO emsHeadDO, CiEmsDTO dto, int Eu_sourcemd, delegateBeforeSave OnBeforeSaveEms = null)
 {
     //保存前进行患者状态校验
     judgePatEntStatus(emsHeadDO.PatInfo);
     model.SaveCiDTO(emsHeadDO, dto, Eu_sourcemd);
     dto.Id_dept_ns = emsHeadDO.PatInfo.Id_dep_nur;
     //校验频次、剂量、剂量单位
     if (!LogicEx.GetInstance().validateBeforeSaveCiEmsDto(emsHeadDO, dto))
     {
         return(null);
     }
     //设置医保信息 后台获取医保目录类型的方法已经被注释掉了,前台在调用浪费时间
     // LogicEx.GetInstance().setHpInfo(dto, emsHeadDO.PatInfo.Id_hp);
     //if (emsHeadDO.IsNEW && LogicEx.GetInstance().validateEmsUIDTO(dto))
     //{
     //    List<string> errorList = LogicEx.GetInstance().validateFreqAndUnitmed(dto);
     //    if (errorList.Count > 0)
     //    {
     //        string strErr = "";
     //        errorList.ForEach(
     //            p => { strErr += string.Format("{0}.{1}\n", errorList.IndexOf(p) + 1, p); });
     //        string errInfo = " 验证失败,操作取消!\n" + strErr;
     //        this.ShowInfo(errInfo, "提示:");
     //        return null;
     //    }
     //}
     if (OnBeforeSaveEms != null)
     {
         OnBeforeSaveEms(dto);
     }
     return(ordMaintainService.SaveCiEmsDTO(dto, CiEnContextUtil.GetCiEnContext(emsHeadDO.PatInfo, EmsAppModeEnum.IVEMSAPPMODE)));
 }
コード例 #5
0
        public override void EditEms(CiEmsDTO ems)
        {
            base.EditEms(ems);

            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,
                                                                   "id_mm", this.uiEmsDTO.PatInfo.Id_dep_nur, this.uiEmsDTO.PatInfo.Id_dep_phy);

            idDepMps = wf.Id_mp_depts;

            orCiEmsToUiEms.EditApop(uiEmsDTO, ems);

            this.uiEmsDTO.Status           = DOStatus.NEW;
            this.uiEmsDTO.Emsapop.Status   = DOStatus.NEW;
            this.uiEmsDTO.Emsapop.Dt_creat = ems.Dt_begin;

            // 附加手术信息转换
            this.OpAppendItem2OpexInfo();

            tableDatasource.Add(uiEmsDTO.Emsapop);
        }
コード例 #6
0
        public override CiEmsDTO Save2CiEmsDTO(bool forceUpdate)
        {
            EmsOrDrug ems = uiEmsDTO.Emsdrugs.EmsOrDrugList[0];

            this.uiEmsDTO.Emsdrugs.Id_srv         = ems.Id_srv;
            this.uiEmsDTO.Emsdrugs.Name_srv       = ems.Name_srv;
            this.uiEmsDTO.Emsdrugs.Quan_med       = ems.Quan_med;
            this.uiEmsDTO.Emsdrugs.Id_unit_med    = ems.Id_unit_med;
            this.uiEmsDTO.Emsdrugs.Id_freq        = ems.Id_freq;
            this.uiEmsDTO.Emsdrugs.Name_freq      = ems.Name_freq;
            this.uiEmsDTO.Emsdrugs.Sd_frequnitct  = ems.Sd_frequnitct;
            this.uiEmsDTO.Emsdrugs.Freqct         = ems.Freqct;
            this.uiEmsDTO.Emsdrugs.Use_days       = ems.Use_days;
            this.uiEmsDTO.Emsdrugs.Quan_cur       = ems.Quan_cur;
            this.uiEmsDTO.Emsdrugs.Id_unit_sale   = ems.Id_unit_sale;
            this.uiEmsDTO.Emsdrugs.Name_unit_sale = ems.Name_unit_sale;
            this.uiEmsDTO.Emsdrugs.Id_dep         = ems.Id_mp_dep;
            this.uiEmsDTO.Emsdrugs.Name_dep       = ems.Name_mp_dep;
            this.uiEmsDTO.Emsdrugs.Price          = ems.Price;
            this.uiEmsDTO.Emsdrugs.Totalprice     = ems.Totalprice.ToString();
            this.uiEmsDTO.Emsdrugs.Note_or        = ems.Note_or;
            this.uiEmsDTO.Emsdrugs.Fg_treat       = ems.Fg_treat;
            ciEmsDTO.Id_srv    = ems.Id_srv;
            ciEmsDTO.Fg_urgent = ems.Fg_urgent;
            ciEmsDTO.Times_cur = this.uiEmsDTO.Emsdrugs.Times_cur;
            CiEmsDTO ciemsDTO = base.Save2CiEmsDTO(forceUpdate); //

            ciemsDTO.Fg_urgent = ems.Fg_urgent;
            ciemsDTO.Times_cur = this.uiEmsDTO.Emsdrugs.Times_cur;//总的次数
            return(ciemsDTO);
        }
コード例 #7
0
ファイル: EmsConsViewModel.cs プロジェクト: fhis/order.client
        public override void EditEms(CiEmsDTO ems)
        {
            base.EditEms(ems);

            orCiEmsToUiEms.EditCons(uiEmsDTO, ems);
            this.uiEmsDTO.Status = DOStatus.NEW;

            this.tableDataSource.Clear();

            // 如模型为空  第一次创建
            IMedsrvMDOCrudService service = XapServiceMgr.find <IMedsrvMDOCrudService>();
            MedSrvDO medSrcDO             = service.findById(ems.Id_srv);

            uiEmsDTO.Emsapcons.Name_srv = medSrcDO.Name;

            MedSrvConsDO srvcons = this.logicEx.GetCons(this.uiEmsDTO.MedSrvDO.Id_srv);

            if (srvcons != null)
            {
                uiEmsDTO.Emsapcons.Fg_deps  = srvcons.Fg_deps;
                uiEmsDTO.Emsapcons.Fg_inorg = srvcons.Fg_inorg;
            }
            if (uiEmsDTO.Emsapcons.EmsConsAssistItem.Count > 0)
            {
                uiEmsDTO.Emsapcons.Id_dep_emp      = uiEmsDTO.Emsapcons.EmsConsAssistItem[0].Id_dep_emp;
                uiEmsDTO.Emsapcons.Name_dep_emp    = uiEmsDTO.Emsapcons.EmsConsAssistItem[0].Name_dep_emp;
                uiEmsDTO.Emsapcons.Id_emp_doctor   = uiEmsDTO.Emsapcons.EmsConsAssistItem[0].Id_emp_doctor;
                uiEmsDTO.Emsapcons.Name_emp_doctor = uiEmsDTO.Emsapcons.EmsConsAssistItem[0].Name_emp_doctor;
            }

            this.tableDataSource.Add(uiEmsDTO.Emsapcons);
        }
コード例 #8
0
ファイル: BaseEmsView.cs プロジェクト: fhis/order.client
        public virtual CiEmsDTO Save2CiEmsDTO(bool forceUpdate)
        {
            this.UnRegFormEvent_DataChanged();
            CiEmsDTO dto = model.Save2CiEmsDTO(forceUpdate);

            this.RegFormEvent_DataChanged();
            return(dto);
        }
コード例 #9
0
ファイル: EmsApbtViewModel.cs プロジェクト: fhis/order.client
 public override void EditEms(CiEmsDTO ems)
 {
     base.EditEms(ems);
     this.uiEmsDTO.Id_srvof     = ems.Id_srvof;
     this.uiEmsDTO.Funcclassstr = ems.Funcclassstr;
     this.uiEmsDTO.Status       = DOStatus.NEW;
     HandleEditLogic(ems);
 }
コード例 #10
0
        public CiOrderDO SaveCiEmsDTO(CiEmsDTO ems, CiEnContextDTO ciEnContextDTO)
        {
            object[] param = new object[] { ems, ciEnContextDTO };
            si.url = url_r;
            CiOrderDO rtn = si.invoke <CiOrderDO>("SaveCiEmsDTO", param.ToArray());

            return(rtn);
        }
コード例 #11
0
        public virtual void EditEms(CiEmsDTO ems)
        {
            this.ciEmsDTO          = ems;
            this.uiEmsDTO.MedSrvDO = XapServiceMgr.find <IMedsrvMDOCrudService>().findById(ems.Id_srv);

            // 处理分拣费用项目
            HandleExpenseItems(ems);
        }
コード例 #12
0
        /// <summary>
        /// 医嘱保存
        /// </summary>
        /// <param name="ciEmsDTO"></param>
        /// <param name="CiEnContext"></param>
        /// <returns></returns>
        public CiOrderTransMissionDTO SaveCiEmsDTONew(CiEmsDTO ciEmsDTO, CiEnContextDTO CiEnContext)
        {
            object[] param = new object[] { ciEmsDTO, CiEnContext };
            si.url = url_r;
            CiOrderTransMissionDTO rtn = si.invoke <CiOrderTransMissionDTO>("SaveCiEmsDTONew", param.ToArray());

            return(rtn);
        }
コード例 #13
0
ファイル: EmsLisViewModel.cs プロジェクト: fhis/order.client
        public override void EditEms(CiEmsDTO ems)
        {
            base.EditEms(ems);


            orCiEmsToUiEms.EditEmsLab(this.uiEmsDTO, ems);
            this.uiEmsDTO.Status = DOStatus.NEW;
            this.uiEmsDTO.Emsaplab.EmsOrDrugList.Clear();//


            EmsOrDrug item = new EmsOrDrug();

            item.Status   = DOStatus.NEW;
            item.Id_orsrv = this.uiEmsDTO.Emsaplab.Id_orsrv;

            item.Id_srv   = this.uiEmsDTO.Emsaplab.Id_srv;
            item.Name_srv = this.uiEmsDTO.Emsaplab.Name_srv;
            // 频次
            item.Id_freq       = ems.Id_freq;
            item.Name_freq     = ems.Name_freq;
            item.Freqct        = this.uiEmsDTO.MedSrvDO.Freqct;
            item.Sd_frequnitct = this.uiEmsDTO.MedSrvDO.Sd_frequnitct;

            item.Price = (uiEmsDTO.Emsaplab.Price == null ? 0 : uiEmsDTO.Emsaplab.Price);

            item.Fg_urgent = this.uiEmsDTO.Emsaplab.Fg_urgent;
            item.Use_days  = uiEmsDTO.Emsaplab.Use_days;

            // 剂量
            item.Quan_med      = uiEmsDTO.Emsaplab.Quan_med;
            item.Id_unit_med   = uiEmsDTO.Emsaplab.Id_unit_med;
            item.Name_unit_med = uiEmsDTO.Emsaplab.Name_unit_med;
            // 执行科室
            item.Id_mp_dep   = uiEmsDTO.Emsaplab.Id_mp_dep;
            item.Name_mp_dep = uiEmsDTO.Emsaplab.Name_mp_dep;

            // 总量
            item.Quan_cur       = (ems.Times_cur == null ? 0 : ems.Times_cur);
            item.Id_unit_sale   = item.Id_unit_med;
            item.Name_unit_sale = item.Name_unit_med;

            // 总价
            item.Totalprice = item.Price * item.Quan_cur;
            //申请单号
            item.No_applyform = this.uiEmsDTO.Emsaplab.No_applyobs;
            item.Fg_setradio  = uiEmsDTO.MedSrvDO.Fg_setradio;
            this.uiEmsDTO.Emsaplab.EmsOrDrugList.Add(item);

            this.uiEmsDTO.MedSrvDO = XapServiceMgr.find <IMedsrvMDOCrudService>().findById(ems.Id_srv);
            item.Fg_setradio       = this.uiEmsDTO.MedSrvDO.Fg_setradio == FBoolean.True;
            if (this.uiEmsDTO.MedSrvDO.Fg_setradio == FBoolean.True)
            {
                foreach (EmsObsLap o in this.uiEmsDTO.Emsaplab.EmsOrObsList)
                {
                    o.Fg_chk = FBoolean.False;
                }
            }
        }
コード例 #14
0
 public void ClearContext()
 {
     if (this.tableDataSource != null)
     {
         this.tableDataSource.Clear();
     }
     this.emsViewModel = null;
     this.emsDto       = null;
     this.SetNullQryBuffer();
 }
コード例 #15
0
 public void SetClearFeeSrv(bool isClear)
 {
     if (this.GetEmsView() != null && this.GetEmsView().GetViewModel() != null)
     {
         CiEmsDTO emsDto = this.GetEmsView().GetViewModel().getCiEmsDTO();
         if (null != emsDto)
         {
             emsDto.Fg_prisrvhandled = !isClear;
         }
     }
 }
コード例 #16
0
ファイル: OrdExpenseView.cs プロジェクト: fhis/order.client
        public OrdExpenseView SetEmsContext(object vm, CiEmsDTO sm)
        {
            if (sm == null)
            {
                this.SetNeedRefresh((int)EuRefreshState.InitState);
                return(this);
            }
            this.GetModel().SetEmsViewModel(vm).SetEmsSaveModel(sm);

            return(this);
        }
コード例 #17
0
        /// <summary>
        /// 编辑医嘱内容时候需要将 医嘱内容转化为医嘱项目
        /// </summary>
        public virtual void EditOrder(CiOrderDO ciOrderDO)
        {
            FMap fmap = this.ciOrdQryService.getCiEmsDTO(new string[] { ciOrderDO.Id_or });

            this.ciEmsDTO = fmap[ciOrderDO.Id_or] as CiEmsDTO;
            this.ciEmsDTO.SetUpdated();
            this.uiEmsDTO.Status   = DOStatus.UPDATED;
            this.uiEmsDTO.MedSrvDO = XapServiceMgr.find <IMedsrvMDOCrudService>().findById(ciEmsDTO.Id_srv);
            // 处理分拣费用项目
            HandleExpenseItems(ciEmsDTO);
        }
コード例 #18
0
ファイル: EmsApbtViewModel.cs プロジェクト: fhis/order.client
        protected override void OnBeforeCallServiceSave(CiEmsDTO ems)
        {
            base.OnBeforeCallServiceSave(ems);
            // 在院执行标志
            ems.Fg_mp_in = true;

            ems.Emssrvs.Cast <CiEmsSrvDTO>().Where(srv => srv.Eu_sourcemd == (int)OrSrvSourceFromEnum.PHYSIAN).ToList().ForEach(srv =>
            {
                srv.Quan_total_medu = 0;
            });
        }
コード例 #19
0
ファイル: EmsApbtViewModel.cs プロジェクト: fhis/order.client
        protected void HandleEditLogic(CiEmsDTO ems)
        {
            string unitname = "";

            var srvCommon = (CiEmsSrvDTO)ems.Emssrvs[0];

            var service = XapServiceMgr.find <IMedsrvMDOCrudService>();

            ////查询用血对应的服务
            //MedSrvDO medSrcDO = service.findById(Apbu_Srv_ID);
            uiEmsDTO.MedSrvDO = service.findById(ems.Id_srv);

            if (uiEmsDTO.Emsapbt.BtLabItem.Count == 0)
            {
                LoadIndicatorData();
            }
            orCiEmsToUiEms.EditApbt(uiEmsDTO, ems, ref unitname);
            this.uiEmsDTO.Status = DOStatus.NEW;

            uiEmsDTO.Emsapbt.Dt_create = ems.Dt_begin;

            this.uiEmsDTO.Emsapbt.Id_mp_dep   = srvCommon.Id_dep;
            this.uiEmsDTO.Emsapbt.Name_mp_dep = srvCommon.Name_dep;
            tableDatasource = new XapDataList <EmsBtItemDO>();
            tableDatasource.Add(uiEmsDTO.Emsapbt);

            if (ems.Id_or != null)
            {
                CiorderAggDO ciagg = orService.findById(ems.Id_or);
                this.ciOrder = ciagg.getParentDO();
                OrdApBtDO[] btdos = btService.find("id_or='" + ciOrder.Id_or + "'", null, FBoolean.False);
                OrdApBtDO   btdo  = btdos[0];
                uiEmsDTO.CiordubDTO               = new CiordubDTO();
                uiEmsDTO.CiordubDTO.Id_or_rel     = ciOrder.Id_or;
                uiEmsDTO.CiordubDTO.Applyform     = btdo.No_applyform;
                uiEmsDTO.CiordubDTO.Orsrvname     = ciagg.getOrdSrvDO()[0].Name;
                uiEmsDTO.CiordubDTO.Id_srv        = ciOrder.Id_srv;
                uiEmsDTO.CiordubDTO.Quan_medu     = ciagg.getOrdSrvDO()[0].Quan_medu;
                uiEmsDTO.CiordubDTO.Id_unit       = ciagg.getOrdSrvDO()[0].Id_medu;
                uiEmsDTO.CiordubDTO.Dt_bt_pl      = Convert.ToDateTime(btdo.Dt_bt_pl);
                uiEmsDTO.CiordubDTO.Num_margin_bu = btdo.Num_margin_bu;
                uiEmsDTO.CiordubDTO.Id_emp_sign   = ciOrder.Id_emp_sign;
                uiEmsDTO.CiordubDTO.Name_emp_sign = ciOrder.Emp_sign_name;
                //uiEmsDTO.CiordubDTO.Id_route = medSrcDO.Id_route;
                //uiEmsDTO.CiordubDTO.Name_route = medSrcDO.Route_name;
                uiEmsDTO.CiordubDTO.Quan_medu_ub = uiEmsDTO.CiordubDTO.Quan_medu;
                uiEmsDTO.CiordubDTO.Name_unit    = uiEmsDTO.MedSrvDO.Med_name;
                uiEmsDTO.CiordubDTO.Id_unit      = uiEmsDTO.MedSrvDO.Id_unit_med;
            }
            CiorappbtAggDO agg = ems.Orapplysheet[((int)EmsType.BT).ToString()] as CiorappbtAggDO;

            agg.Status = DOStatus.UPDATED;
            agg.getParentDO().Status = DOStatus.UPDATED;
        }
コード例 #20
0
        public override CiEmsDTO Save2CiEmsDTO(bool forceUpdate)
        {
            // 需要将临时存储在列表数据模型中的数据取出来,放置到检验结构中
            EmsOrDrug drug = uiEmsDTO.Emsapobs.EmsOrDrugList.ElementAt(0);

            // 剂量
            uiEmsDTO.Emsapobs.Id_unit_med   = drug.Id_unit_med;
            uiEmsDTO.Emsapobs.Name_unit_med = drug.Name_unit_med;
            uiEmsDTO.Emsapobs.Quan_med      = drug.Quan_med;

            // 使用天数
            uiEmsDTO.Emsapobs.Use_days = drug.Use_days;

            // 总量
            uiEmsDTO.Emsapobs.Quan_cur       = drug.Quan_cur;
            uiEmsDTO.Emsapobs.Id_unit_sale   = drug.Id_unit_sale;
            uiEmsDTO.Emsapobs.Name_unit_sale = drug.Name_unit_sale;
            /////////添加检验、检查、诊疗多剂量多次执行,杨敬本20171111
            //频次
            uiEmsDTO.Emsapobs.Id_freq       = drug.Id_freq;
            uiEmsDTO.Emsapobs.Name_freq     = drug.Name_freq;
            uiEmsDTO.Emsapobs.Sd_frequnitct = drug.Sd_frequnitct;
            uiEmsDTO.Emsapobs.Freqct        = drug.Freqct;
            /////////添加检验、检查、诊疗多剂量多次执行,杨敬本20171111

            // 加急
            uiEmsDTO.Emsapobs.Fg_urgent = drug.Fg_urgent;

            // 价格
            uiEmsDTO.Emsapobs.Price = drug.Price;

            // 执行科室
            uiEmsDTO.Emsapobs.Id_mp_dep   = drug.Id_mp_dep;
            uiEmsDTO.Emsapobs.Name_mp_dep = drug.Name_mp_dep;
            XapDataList <EmsObsLap> hasItems = new XapDataList <EmsObsLap>();

            foreach (EmsObsLap item in this.uiEmsDTO.Emsapobs.EmsOrObsList)
            {
                if (item.Fg_chk != null && item.Fg_chk.Value)
                {
                    hasItems.Add(item);
                }
            }
            // 暂存
            XapDataList <EmsObsLap> allItems = this.uiEmsDTO.Emsapobs.EmsOrObsList;

            this.uiEmsDTO.Emsapobs.EmsOrObsList = hasItems;
            CiEmsDTO ciEmsDTO = base.Save2CiEmsDTO(forceUpdate);

            this.uiEmsDTO.Emsapobs.EmsOrObsList = allItems;
            return(ciEmsDTO);
        }
コード例 #21
0
        public void loadcard(EmsUIDTO emsHeadDO, CiEmsDTO emsdto)
        {
            this.emsUIDTO = emsHeadDO;
            this.ciemsDto = emsdto;
            if (this.emsUIDTO.CiordubDTO != null)
            {
                this._model.CiordubDto = this.emsUIDTO.CiordubDTO;
                if (!string.IsNullOrEmpty(this.ciemsDto.Id_or))
                {
                    CiordubDTO ubDto = this._model.getOrderUBDto(this.ciemsDto.Id_or);
                    if (ubDto != null)
                    {
                        this._model.CiordubDto.Quan_medu = ubDto.Quan_medu;
                    }
                }
                if (this.emsUIDTO.CiordubDTO.Id_apbu != null)
                {
                    this.LoadData();
                    if (this.ciemsDto.Sd_su_or != null && this.ciemsDto.Sd_su_or == "0")
                    {
                        this.xapFormControl.SetEditPolicy(true);
                    }
                    else
                    {
                        OrdApBtDO apbtdo = this._model.getOrDerBtDto(this.emsUIDTO.CiordubDTO.Id_or_rel);
                        if (apbtdo != null)
                        {
                            this._model.CiordubDto.Applyform     = apbtdo.No_applyform;
                            this._model.CiordubDto.Num_margin_bu = apbtdo.Num_margin_bu;
                        }
                        this.xapFormControl.SetEditPolicy(false);
                    }
                }
                else
                {
                    this.LoadData();
                    this.xapFormControl.SetEditPolicy(false);
                }
                //if (ems.Id_or != null || ems.Id_or != "")
                //{
                //    this._model.getOrderUBDto(ems.Id_or);
                //    this._model.CiordubDto.Name_route = this._model.getRotName(this._model.CiordubDto.Id_route);

                //}
            }
            else
            {
                this._model.CiordubDto = null;
                this.LoadData();
                this.xapFormControl.SetEditPolicy(false);
            }
        }
コード例 #22
0
ファイル: OrderApobsView.cs プロジェクト: fhis/order.client
        public override void OnRefreshData(ciordems.d.EmsUIDTO headDo, object e)
        {
            if (headDo != null)
            {
                CiHeadDo = headDo;
                CiEmsDto = e as CiEmsDTO;
            }

            if (this.Created)
            {
                this.LoadData();
            }
        }
コード例 #23
0
ファイル: OrdApBuGridView.cs プロジェクト: fhis/order.client
 public void LoadGrid(EmsUIDTO ems, CiEmsDTO emsdto)
 {
     this.uidto  = ems;
     this.emsdto = emsdto;
     if (emsdto.Sd_su_or == null || emsdto.Sd_su_or == "0")
     {
         ControlSizeChanged(new Size(this.Size.Width, 100));
     }
     else
     {
         ControlSizeChanged(new Size(0, 0));
     }
     this.LoadData();
 }
コード例 #24
0
        /// <summary>
        /// 将所有的医嘱以及医嘱关联的医疗单整合成费用清单数据集合
        /// </summary>
        /// <param name="szOrders"></param>
        /// <param name="szEmses"></param>
        /// <returns></returns>
        private List <CiOrdFeeSrvDTO> OrdFeeBillListFrom(CiOrderDO[] szOrders, CiEmsDTO[] szEmses, FMap blsrvFMap)
        {
            List <CiOrdFeeSrvDTO> OrdFeeBillList = new List <CiOrdFeeSrvDTO>();

            foreach (CiOrderDO ord in szOrders)
            {
                CiEmsDTO ems = szEmses.ToList().FirstOrDefault(e => e.Id_or.Equals(ord.Id_or));
                if (null != ems)
                {
                    OrdFeeBillList.AddRange(OrdFeeBillListFrom(ord, ems, blsrvFMap));
                    idor2EmsDTOMap.Add(ord.Id_or, ems);
                    idor2OrderDOMap.Add(ord.Id_or, ord);
                }
            }
            return(OrdFeeBillList);
        }
コード例 #25
0
        /// <summary>
        /// 初始化操作,做一些对象的实例化,以及常量赋值等操作
        /// </summary>
        public override void Init()
        {
            this.ordMaintainService           = XapServiceMgr.find <ICiOrdMaintainService>();
            this.ciOrdQryService              = XapServiceMgr.find <ICiOrdQryService>();
            this.cidiagQryService             = XapServiceMgr.find <ICidiagQryService>();
            this.ciOrdMedicalInsuranceService = XapServiceMgr.find <ICiOrdMedicalInsuranceService>();

            this.uiEmsDTO = this.logicEx.CreatEmsIntance();
            this.ciEmsDTO = this.logicEx.CreatEmsDTO();

            // 初始化数据绑定对象上下文
            this.orDataBing.patDo = this.ent4BannerDTO;
            // 初始化UI数据模型集合中患者就诊信息对象
            this.uiEmsDTO.PatInfo = this.ent4BannerDTO;
            uiEmsDTO.EmsType      = EmsType.COMMONDRUG;
        }
コード例 #26
0
        public override void EditEms(CiEmsDTO ems)
        {
            base.EditEms(ems);
            orCiEmsToUiEms.EditDrug(ems, this.uiEmsDTO);
            this.uiEmsDTO.Status = DOStatus.NEW;

            foreach (EmsOrDrug item in this.uiEmsDTO.Emsdrugs.EmsOrDrugList)
            {
                if (String.IsNullOrEmpty(this.uiEmsDTO.Emsdrugs.Id_route))
                {
                    this.uiEmsDTO.Emsdrugs.Name_route = null;
                }
                if (String.IsNullOrEmpty(this.uiEmsDTO.Emsdrugs.Id_freq))
                {
                    this.uiEmsDTO.Emsdrugs.Name_freq = null;
                    this.uiEmsDTO.Emsdrugs.Freqct    = null;
                }
                this.fillSameInfoForEmsOrDrug(item, this.uiEmsDTO.Emsdrugs);

                // 计算 明细总金额
                item.Totalprice = item.Quan_cur * item.Price;
            }
            if (this.uiEmsDTO.Emsdrugs.EmsOrDrugList != null && this.uiEmsDTO.Emsdrugs.EmsOrDrugList.Count > 0 && this.uiEmsDTO.Emsdrugs.EmsOrDrugList[0].Id_route != "")
            {
                id_dosages = this.logicEx.getDrugRouteOfDoSages(this.uiEmsDTO.Emsdrugs.EmsOrDrugList[0].Id_route);
            }

            // 物质流向
            OrWfDeptInfoDTO wf = new GetDeptMpImp().GetDept_mp_ids(this.GetEnt4BannerDTO().Code_entp, this.GetEnt4BannerDTO().Id_entp, ems.Sd_srvtp, ems.Id_srvca, ems.Id_srv, ems.Id_route, "id_mm", this.GetEnt4BannerDTO().Id_dep_nur, this.GetEnt4BannerDTO().Id_dep_phy);

            this.uiEmsDTO.Emsdrugs.Str_mp_dep_ids = wf == null ? "" : wf.Id_mp_depts;
            if (this.uiEmsDTO.Emsdrugs.Id_dep == null)
            {
                this.uiEmsDTO.Emsdrugs.Id_dep   = wf == null ? "" : wf.Firstid_mp_dept;
                this.uiEmsDTO.Emsdrugs.Name_dep = wf == null ? "" : wf.Firstname_mp_dept;
            }
            if (null != wf)
            {
                foreach (EmsOrDrug drug in uiEmsDTO.Emsdrugs.EmsOrDrugList)
                {
                    //皮试判断逻辑
                    AssToolEx.CheckTestSkinSrv(null, drug, this.GetEnt4BannerDTO());
                    drug.Id_dep_wh = wf.Id_dept_wh;
                }
            }
        }
コード例 #27
0
ファイル: OpOrderCardView.cs プロジェクト: fhis/order.client
        /// <summary>
        /// 保存CI, 并切换到下一个CI
        /// </summary>
        public void ClearCurrentEms()
        {
            bool deleateflag  = false;
            int  deleateindex = -1;

            //emsDO = null;// 不能在这里面,因为会影响草药
            if (currentEmsControl != null)
            {
                splitContainer1.RemoveRender(currentEmsControl);
                for (int index = 0; index < emsIndexAndButtonArea.IndexRenderList.Count; index++)
                {
                    if (deleateflag)
                    {
                        if (index == deleateindex)
                        {
                            emsIndexAndButtonArea.IndexRenderList[index].Crossflag = false;
                            emsIndexAndButtonArea.IndexRenderList[index].Editflag  = true;
                            this.emsDO = emsIndexAndButtonArea.IndexRenderList[index].Ci.EmsHeadDO;
                            this.dto   = emsIndexAndButtonArea.IndexRenderList[index].Ci.CiEmsDTO;
                            //this.splitContainer1.Panel1.Controls.Add(render.Ci);
                            emsIndexAndButtonArea.IndexRenderList[index].Ci.Dock  = DockStyle.None;
                            emsIndexAndButtonArea.IndexRenderList[index].Location = TMPrender.Location;
                            TMPrender         = emsIndexAndButtonArea.IndexRenderList[index];
                            currentEmsControl = emsIndexAndButtonArea.IndexRenderList[index].Ci;
                            this.splitContainer1.AddControl(emsIndexAndButtonArea.IndexRenderList[index].Ci, xap.cli.sdk.controls.ControlPosition.Center);
                        }
                        else
                        {
                            emsIndexAndButtonArea.IndexRenderList[index].Location = new Point(emsIndexAndButtonArea.IndexRenderList[index - 1].Location.X + 40, emsIndexAndButtonArea.IndexRenderList[index - 1].Location.Y);
                        }
                        emsIndexAndButtonArea.IndexRenderList[index].Invalidate();
                    }
                    else if (emsIndexAndButtonArea.IndexRenderList[index].Editflag)
                    {
                        this.emsList.Remove(emsIndexAndButtonArea.IndexRenderList[index].ID);
                        emsIndexAndButtonArea.xapScrollBarPanel1.RemoveRender(emsIndexAndButtonArea.IndexRenderList[index]);
                        TMPrender = emsIndexAndButtonArea.IndexRenderList[index];
                        emsIndexAndButtonArea.IndexRenderList.Remove(emsIndexAndButtonArea.IndexRenderList[index]);
                        deleateflag  = true;
                        deleateindex = index--;
                    }
                }
                emsIndexAndButtonArea.xapScrollBarPanel1.Invalidate();
            }
            GC.Collect();
        }
コード例 #28
0
        public override void EditEms(CiEmsDTO ems)
        {
            base.EditEms(ems);

            orCiEmsToUiEms.EditCommon(this.ciEmsDTO, uiEmsDTO);
            this.uiEmsDTO.Status = DOStatus.NEW;
            EmsOrDrug drug = new EmsOrDrug();

            drug.Id_srv   = this.ciEmsDTO.Id_srv;
            drug.Name_srv = this.ciEmsDTO.Name;
            CiEmsSrvDTO emssrv = this.ciEmsDTO.Emssrvs[0] as CiEmsSrvDTO;

            drug.Id_unit_med   = emssrv.Id_unit_med;
            drug.Name_unit_med = emssrv.Name_unit_med;
            drug.Id_freq       = emssrv.Id_freq;
            drug.Name_freq     = emssrv.Name_freq;
            drug.Sd_frequnitct = emssrv.Sd_frequnitct;
            drug.Freqct        = emssrv.Freqct;
            drug.Id_mp_dep     = emssrv.Id_dep;
            drug.Name_mp_dep   = emssrv.Name_dep;
            drug.Note_or       = ciEmsDTO.Note;
            drug.Fg_treat      = emssrv.Fg_indic;
            drug.Use_days      = this.ciEmsDTO.Days_or;
            drug.Quan_med      = (emssrv.Quan_med == null ? 1 : emssrv.Quan_med);
            drug.Quan_cur      = (emssrv.Quan_cur == null ? this.logicEx.getNotDrugTotal(drug.Quan_med.ToDouble(), drug.Id_freq, drug.Freqct.Value, drug.Use_days.Value) : emssrv.Quan_cur);;
            drug.Price         = emssrv.Price;
            drug.Totalprice    = drug.Price * drug.Quan_cur;
            drug.Fg_bl         = emssrv.Fg_bl;
            drug.Id_srvtp      = ciEmsDTO.Id_srvtp;
            drug.Sd_srvtp      = ciEmsDTO.Sd_srvtp;
            drug.Eu_sourcemd   = emssrv.Eu_sourcemd;
            uiEmsDTO.Emsdrugs.EmsOrDrugList.Add(drug);
            //执行科室
            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)
            {
                strMpDepFilter = wf.Id_mp_depts;
            }
        }
コード例 #29
0
ファイル: OpOrderCardView.cs プロジェクト: fhis/order.client
        /// <summary>
        /// 关闭某个医疗单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void orCom_deleteevent(object sender, EventArgs e)
        {
            //处理
            List <XRoundRender> list         = new List <XRoundRender>();
            XRoundRender        activeRender = null;

            foreach (XRoundRender render in  emsIndexAndButtonArea.IndexRenderList)
            {
                if (!render.Editflag)
                {
                    list.Add(render);
                }
                else
                {
                    activeRender = render;
                    emsIndexAndButtonArea.xapScrollBarPanel1.RemoveRender(render); //只有处于编辑状态的是激活的,删除的也是这个
                }
            }
            //按钮区已删除,处理上边对应的view区域
            if (activeRender != null)
            {
                XRoundRender nextRender = GetNextActiveRender(activeRender);
                if (nextRender == null)
                {
                    emsDO = null;
                    this.splitContainer1.RemoveRender(this.EmsIndexAndButtonArea); //清除“确认”、“取消”按钮
                    this.tabNaviControl.CanShowForm = false;
                    this.ClearEmsList();                                           //清空数据
                    this.tabNaviControl.TabNavigationForm.Close();                 //关闭右缩面板
                }
                else
                {
                    nextRender.Editflag = true;
                    this.emsDO          = nextRender.Ci.EmsHeadDO;
                    this.dto            = nextRender.Ci.CiEmsDTO;
                    nextRender.Ci.Dock  = DockStyle.None;
                    TMPrender           = nextRender;
                    currentEmsControl   = nextRender.Ci;
                    orderItemView.SetTabText(currentEmsControl.SheetName);
                    this.splitContainer1.AddControl(nextRender.Ci, xap.cli.sdk.controls.ControlPosition.Center);
                }
            }
            emsIndexAndButtonArea.IndexRenderList = list; //zzj,最好能直接删除,不要这样直接替换,能够节约内存
            emsIndexAndButtonArea.xapScrollBarPanel1.Invalidate();
        }
コード例 #30
0
        /// <summary>
        /// 保存之前处理
        /// </summary>
        /// <param name="ems"></param>
        protected override void OnBeforeCallServiceSave(CiEmsDTO ems)
        {
            base.OnBeforeCallServiceSave(ems);

            ems.Fg_mp_in    = true;
            ems.Times_mp_in = ems.Times_cur;

            //ems.Dt_begin = this.uiEmsDTO.Emsappathgy.Dt_begin_ui;
            //ems.Dt_end = this.uiEmsDTO.Emsappathgy.Dt_end_ui;

            if (ems.Emssrvs != null)
            {
                ems.Emssrvs.Cast <CiEmsSrvDTO>().Where(srv => srv.Eu_sourcemd == (int)OrSrvSourceFromEnum.PHYSIAN).ToList().ForEach(srv =>
                {
                    srv.Quan_total_medu = ems.Times_mp_in * srv.Quan_med;
                });
            }
        }