Exemple #1
0
        private int check(CiOrderDO[] szOrder, ref String id_or)
        {
            // 如果当前为空医疗单,则直接返回True
            if (GetSelectedEmsView().IsEmptyEmsViewType())
            {
                return(2);
            }
            // 获取医疗单对象
            CiOrderDO ord = GetSelectedEmsView().GetEmsView().GetOrderObj();

            // 获取医疗单的CiOrderDO对象,如果为空或者该Order并没有在医疗单中打开,则返回正常签署
            if (ord == null || szOrder.Count(o => o.Id_or.Equals(ord.Id_or)) == 0)
            {
                return(1);
            }
            id_or = ord.Id_or;
            return(0);
        }
Exemple #2
0
        public XOrderResultData getCheckXOrderResultData(CiOrderDO ciorderdo, XOrderResultData resultData = null)
        {
            resultData       = resultData == null ? new XOrderResultData() : resultData;
            resultData.Value = "0";
            resultData.Type  = "3";
            if (ciorderdo.Sd_srvtp == null || (!ciorderdo.Sd_srvtp.Substring(0, 2).Equals("02") && !ciorderdo.Sd_srvtp.Substring(0, 2).Equals("03")))
            {
                return(resultData);
            }
            string str = "";

            if (!string.IsNullOrEmpty(ciorderdo.Sd_srvtp))
            {
                if (ciorderdo.Sd_srvtp.Substring(0, 2).Equals("02"))
                {
                    str = "检查-";
                }
                else if (ciorderdo.Sd_srvtp.Substring(0, 2).Equals("03"))
                {
                    str = "检验-";
                }

                if (string.IsNullOrEmpty(ciorderdo.Sd_orrsttp) || ciorderdo.Sd_orrsttp.Equals("4"))
                {
                    resultData.ImagePath = "\\res\\image\\checkresult\\检查-未出.png";
                    resultData.ValueText = str + "未出";
                    resultData.Value     = "0";
                }
                else if (ciorderdo.Sd_orrsttp.Equals("0") || ciorderdo.Sd_orrsttp.Equals("1") || ciorderdo.Sd_orrsttp.Equals("3"))
                {
                    resultData.ImagePath = "\\res\\image\\checkresult\\检查-初出.png";
                    resultData.ValueText = str + "初出";
                    resultData.Value     = "1";
                }
                else if (ciorderdo.Sd_orrsttp.Equals("2"))
                {
                    resultData.ImagePath = "\\res\\image\\checkresult\\检查-已出.png";
                    resultData.ValueText = str + "已出";
                    resultData.Value     = "1";
                }
            }

            return(resultData);
        }
Exemple #3
0
        /// <summary>
        /// 编辑医嘱
        /// </summary>
        /// <param name="ciOrderDO"></param>
        public override void EditOrder(CiOrderDO ciOrderDO)
        {
            EmsRstDTO[] rsts = LoadRemote(ciOrderDO.Id_or);
            EmsRstDTO   rst  = rsts[0];

            if (rst != null)
            {
                uiEmsDTO.Emsdrugs.deSerializeJson((rst.Document[0] as EmsDrugItemDO).serializeJson());
                //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString));
                //uiEmsDTO.Emsdrugs.deSerializeJson(utf8Str);

                if (rst.Extension != null && rst.Extension.Keys.Contains("CiEmsDTO"))
                {
                    this.ciEmsDTO = rst.Extension["CiEmsDTO"] as CiEmsDTO;
                }
                if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO"))
                {
                    this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO;
                }
                if (rst.Extension != null && rst.Extension.Keys.Contains("MpDepFilter"))
                {
                    // strMpDepFilter = rst.EmsExtension["MpDepFilter"] as String;
                }

                if (this.uiEmsDTO.Emsdrugs.EmsOrDrugListEx != null)
                {
                    if (null == this.uiEmsDTO.Emsdrugs.EmsOrDrugList)
                    {
                        this.uiEmsDTO.Emsdrugs.EmsOrDrugList = new XapDataList <EmsOrDrug>();
                    }
                    this.uiEmsDTO.Emsdrugs.EmsOrDrugList.Clear();
                    this.uiEmsDTO.Emsdrugs.EmsOrDrugListEx.Cast <EmsOrDrug>().ToList().ForEach(o =>
                    {
                        this.uiEmsDTO.Emsdrugs.EmsOrDrugList.Add(o);
                    });
                }
                this.uiEmsDTO.Emsdrugs.EmsOrDrug.Clear();
                this.uiEmsDTO.Emsdrugs.EmsOrDrug.Add(this.uiEmsDTO.Emsdrugs.EmsOrDrugList.FirstOrDefault());

                this.ciEmsDTO.SetUpdated();
                this.uiEmsDTO.Status = DOStatus.UPDATED;
                HandleExpenseItems(ciEmsDTO);
            }
        }
Exemple #4
0
        private void mutilCheckedEventArgs(object sender, MutilCheckedEventArgs e)
        {
            XMultiSelectCheckBox checkbox = sender as XMultiSelectCheckBox;

            if (checkbox == null || checkbox.Row == null)
            {
                return;
            }
            CiOrderDO datasource = checkbox.Row.DataSource as CiOrderDO;

            if (e.Checked)
            {
                ordSelectedContainer.add(datasource.Id_or);
            }
            else
            {
                ordSelectedContainer.remove(datasource.Id_or);
            }
        }
        private void cell_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            XOrderResultCell cell = sender as XOrderResultCell;

            if (cell != null)
            {
                CiOrderDO ciOrderDO = cell.DataSource as CiOrderDO;
                if (string.IsNullOrEmpty(((sender as XOrderResultCell).ActiveObject as XOrderResultRender).Value) || ((sender as XOrderResultCell).ActiveObject as XOrderResultRender).Value.Equals("0"))
                {
                    return;
                }
                int type = Convert.ToInt32(((sender as XOrderResultCell).ActiveObject as XOrderResultRender).Type);
                if (ciOrderDO.Sd_srvtp.Substring(0, 2).Equals("02") || ciOrderDO.Sd_srvtp.Substring(0, 2).Equals("03"))
                {
                    string dia   = "";
                    string title = "";
                    if (ciOrderDO.Sd_srvtp.Substring(0, 2).Equals("02"))
                    {
                        dia   = "ris";
                        title = "检查报告";
                    }
                    else if (ciOrderDO.Sd_srvtp.Substring(0, 2).Equals("03"))
                    {
                        dia   = "lis";
                        title = "检验报告";
                    }
                    CliTestView TestView = new CliTestView();
                    var         lab      = new CiRptLabView();
                    lab.setlabdto(ciOrderDO.Id_or, dia, TestView);

                    TestView.DataView = lab;
                    TestView.Text     = title;
                    TestView.Size     = new Size(800, 675);
                    TestView.cliTestControl.AddRender(TestView.DataView);
                    TestView.ShowDialog();
                }
                else
                {
                    OrReport orReport = new OrReport(sender as XOrderResultCell, ciOrderDO, 1);
                    orReport.ShowDialog();
                }
            }
        }
        /// <summary>
        /// 医嘱表格数据显示时的处理事件,这里主要用于处理医嘱显示内容
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tabControl_DataDisplay(Object sender, XDataDisplayEventArgs e)
        {
            CiOrderDO ciorder = e.Object as CiOrderDO;
            string    id_or   = ciorder.Id_or;

            var row = sender as XDataRow;

            if (row != null)
            {
                foreach (UserRender render in row.UserRenderList)
                {
                    if (render is DoctorOrderCard)
                    {
                        var card = render as DoctorOrderCard;
                        card.DoctorOrderConfig = this.doctorOrderConfig;
                    }
                }
            }

            // 设置最后一列显示价格
            XCellRender priceCell = (row.ColumnCellDict["customercolumn_price"] as XCellRender);

            if (priceCell.Visible == true) // 住院不可见
            {
                FDouble pri = ciOrdViewModel.PriMap[id_or] as FDouble;
                priceCell.Value = pri;
            }

            XCellRender cell = row.ColumnCellDict["customercolumn_报告查看"] as XCellRender;


            if (ciOrdViewModel.OrdStatusMap.Keys.Contains(id_or))
            {
                DoctorOrderCard contentOrCell = row.ColumnCellDict["Content_or"] as DoctorOrderCard;
                row.Enabled             = false;
                row.TooltipText         = ciOrdViewModel.OrdStatusMap[id_or] as string;
                contentOrCell.ForeColor = Color.Red;
                row.UserForeColor       = Color.Red;
            }


            this.setCellContent(cell, ciorder);
        }
Exemple #7
0
        /// <summary>
        /// 保存医疗服务
        /// </summary>
        private bool HandleSaveEmsEvent(Object param = null)
        {
            // 保存的时候,是否成功(成功则返回 医嘱对象)
            //CiOrderTransMissionDTO transMissionDto =  this.GetEmsView().SaveNew();
            //if (transMissionDto.Ciorderaggdo != null)
            //{


            //}
            //CiorderAggDO aggDO = ((CiorderAggDO) transMissionDto.Ciorderaggdo[0]);
            CiOrderDO tmpOrderDo = this.GetEmsView().Save();
            List <MedicalSharingDTO> medicalSharinglist = new List <MedicalSharingDTO>();

            if (ent4BannerDTO != null && ent4BannerDTO.No_hp != null && ent4BannerDTO.Sd_hptp != null && ent4BannerDTO.Sd_hptp.StartsWith("1"))
            {
                tmpOrderDo = MedicalInfoRule(tmpOrderDo, medicalSharinglist);
            }

            if (tmpOrderDo == null)
            {
                return(false);
            }
            if (tmpOrderDo != null && tmpOrderDo.Id_or != null)
            {
                this.orderDo = tmpOrderDo;
                //TODO 弹出提示信息,需要调整成单独线程处理提示信息
                if (tmpOrderDo.Eu_hpindicjudge != (int)HpIndicJudgeEnum.SELFPAY)
                {
                    DisplayBlSrvDesTip(orderDo);
                    bool IsShowMedicalRule = medicalInfoCache.getRepeatMessageDic(orderDo.Id_or);
                    if (!IsShowMedicalRule && medicalSharinglist.Count > 0)
                    {
                        MedicalInfoRuleTemporary(medicalSharinglist);
                        medicalInfoCache.ReMoveRepeatMessageDic(orderDo.Id_or);
                    }
                    return(this.SentNotify(EventCodeType.NM_EMS_SAVESUCCESS));
                }

                return(this.SentNotify(EventCodeType.NM_EMS_SAVESUCCESS));
            }

            return(false);
        }
Exemple #8
0
        /// <summary>
        /// 查询医疗单使能编辑状态
        /// </summary>
        /// <param name="o"></param>
        /// <param name="e"></param>
        /// <returns></returns>
        private bool QureyEditEnbale(CiOrderDO o, Ent4BannerDTO e)
        {
            bool bEnable = o.Sd_su_or.Equals("0") && e.Sd_status != EnDictCodeConst.SD_ENSTATUS_OP_FINISH && LogicEx.GetInstance().isIdEmpOrEqualIdpsn(o);

            if (-1 == nOpOrValidTime)
            {
                try {
                    nOpOrValidTime = this.Context.GetOrgParam <int>(ICiOrdNSysParamConst.SYS_PARAM_OpOrValidTime);

                    bEnable &= ((o.Dt_invalid.Value - DateTime.Now).Hours <= nOpOrValidTime);
                }
                catch (XapServiceException ex) {
                    this.SetStatusMsg(ex.ErrorMsg.Message);
                    bEnable = false;
                }
            }

            return(bEnable);
        }
Exemple #9
0
        protected void OnTableGridControl_SelectedRowChanged(object sender, XSelectedRowChangedEventArgs e)
        {
            CiOrdFeeSrvDTO feeSrv = e.Data as CiOrdFeeSrvDTO;

            if (null != feeSrv && e.Selected)
            {
                CiOrderDO ord = this.model.GetOrderDO(feeSrv.Id_or);
                if (null != ord)
                {
                    if (this.model.GetEnt4BannerDTO() != null && this.model.GetEnt4BannerDTO().Sd_status == EnDictCodeConst.SD_ENSTATUS_OP_FINISH)
                    {
                        return;
                    }
                    this.SentMessage(ord.Sd_su_or.Equals("0") && LogicEx.GetInstance().isIdEmpOrEqualIdpsn(ord.Id_emp_or) ? EventCodeType.EVENT_FEEBILL_ALLOWEDIT : EventCodeType.EVENT_FEEBILL_FORBIDEDIT);
                    return;
                }
                this.SentMessage(EventCodeType.EVENT_FEEBILL_FORBIDEDIT);
            }
        }
Exemple #10
0
        /// <summary>
        /// 优化后方法
        /// </summary>
        /// <param name="ciOrderDO"></param>
        private void New_EditOrder(CiOrderDO ciOrderDO)
        {
            ICiEmsMainService emsMainService = XapServiceMgr.find <ICiEmsMainService>();

            if (null != emsMainService)
            {
                EmsLoadDTO[] emsloads = new EmsLoadDTO[1];
                var          emsload  = new EmsLoadDTO();
                emsload.Id_or     = ciOrderDO.Id_or;
                emsload.Extension = new FMap2();
                emsload.EnContext = CiEnContextUtil.GetCiEnContext(this.GetEnt4BannerDTO(), this.GetContext());
                emsload.EmsDriver = ((int)this.uiEmsDTO.EmsType).ToString();
                emsloads[0]       = emsload;
                EmsRstDTO[] rsts = emsMainService.load(emsloads);
                EmsRstDTO   rst  = rsts[0];
                if (rst != null)
                {
                    uiEmsDTO.CiordubDTO = (rst.Document[0] as CiordubDTO);
                    //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString));
                    //uiEmsDTO.CiordubDTO.deSerializeJson(utf8Str);

                    if (rst.Extension != null && rst.Extension.Keys.Contains("CiEmsDTO"))
                    {
                        this.ciEmsDTO = rst.Extension["CiEmsDTO"] as CiEmsDTO;
                    }
                    if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO"))
                    {
                        this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO;
                    }

                    tableDatasource = new XapDataList <CiordubDTO>();
                    this.tableDatasource.Add(uiEmsDTO.CiordubDTO);

                    //其他处理
                    uiEmsDTO.Id_srvof    = ciEmsDTO.Id_srvof;
                    this.ciEmsDTO.Status = DOStatus.UPDATED;
                    this.uiEmsDTO.Status = DOStatus.UPDATED;

                    HandleExpenseItems(ciEmsDTO);
                }
            }//*/
        }
Exemple #11
0
        //打印   ent4bannerdto,ciordconsrptdo,ordapconsdo,ciorder
        public void ToPrint()
        {
            if (this.ent4BannerDTO == null || this.aggDo == null)
            {
                return;
            }
            List <BaseDO> lstDataSources = new List <BaseDO>();

            this.ciOrderDO = this.ciordService.findById(aggDo.getParentDO().Id_or);
            //this.rptDO = this.rptService.find(" id_id_apcons='" + aggDo.getParentDO().Id_apcons+ "'", null, null)[0];

            lstDataSources.Add(this.ent4BannerDTO);
            lstDataSources.Add(this.rptDO);
            lstDataSources.Add(this.aggDo.getParentDO());
            lstDataSources.Add(this.ciOrderDO);

            TemplAndDataLogicAssist prtLogic = new TemplAndDataLogicAssist();
            bool clearData = true;
            bool res       = prtLogic.loadPrtTempl("461020", "会诊记录打印");

            if (!res)
            {
                this.ShowAlert(prtLogic.getLastErrMsg());
                return;
            }

            res = prtLogic.loadPrtDataAsAgg(lstDataSources.ToArray(), this.aggDo.getCiordInviteConsDO(), new PrtDORowsAssist(0), clearData);
            if (!res)
            {
                this.ShowAlert(prtLogic.getLastErrMsg());
                return;
            }
            clearData = false;
            //prtLogic.loadPrtDataSingle(ent4BannerDto);
            //prtLogic.loadPrtDataAsAgg(ent4BannerDto, lstDOs.ToArray(), true);
            //prtLogic.loadPrtDataBatch(lstDOs.ToArray());
            prtLogic.doPrint(true);
            clearData = true;
            //prtLogic.doPrint(true);
        }
Exemple #12
0
        /// <summary>
        /// 创建用血医嘱元数据
        /// </summary>
        /// <param name="id_or"></param>
        /// <returns></returns>
        CiordubDTO creatBuEmsDO(string id_or, MedSrvDO medSrcDO)
        {
            CiorderAggDO ciagg   = XapServiceMgr.find <ICiorderCrudService>().findById(id_or);
            CiOrderDO    ciOrder = ciagg.getParentDO();

            OrdApBtDO[] btdos   = XapServiceMgr.find <ICiorappbtMDOCrudService>().find("id_or='" + id_or + "'", null, FBoolean.False);
            OrdApBtDO   btdo    = btdos[0];
            OrdSrvDO    mainSrv = null;

            foreach (OrdSrvDO ordsrv in ciagg.getOrdSrvDO())
            {
                if (ordsrv.Eu_sourcemd != null && ordsrv.Eu_sourcemd == (int)OrSrvSourceFromEnum.PHYSIAN && ordsrv.Sd_srvtp == BdSrvDictCodeConst.SD_SRVTP_BLOODPROD_BLOODPROD_READYBLOOD)
                {
                    mainSrv = ordsrv;
                    break;
                }
            }
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO           = new CiordubDTO();
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_or_rel = ciOrder.Id_or;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Applyform = btdo.No_applyform;
            if (mainSrv != null)
            {
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Orsrvname = mainSrv.Name;
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Quan_medu = mainSrv.Quan_medu;
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_unit   = mainSrv.Id_medu;
                (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Name_unit = mainSrv.Medu_name;
            }

            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_srv = ciOrder.Id_srv;

            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Dt_bt_pl      = Convert.ToDateTime(btdo.Dt_bt_pl);
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Num_margin_bu = btdo.Num_margin_bu;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_emp_sign   = ciOrder.Id_emp_sign;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Name_emp_sign = ciOrder.Emp_sign_name;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_route      = medSrcDO.Id_route;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Name_route    = medSrcDO.Route_name;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Quan_medu_ub  = (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Quan_medu;
            (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO.Id_unit       = (this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).Emsapbt.Id_unit_med;
            return((this.GetViewModel().GetEmsUIDTO() as EmsUIDTO).CiordubDTO);
        }
        /// <summary>
        /// 设置单元格属性
        /// <para>设置单元格显示内容,绑定事件</para>
        /// </summary>
        /// <param name="cell"></param>
        /// <param name="ciorder"></param>
        private void setCellContent(XCellRender cell, CiOrderDO ciorder)
        {
            if (ciorder.Sd_srvtp == null)
            {
                cell.ValueText = "加载失败,缺少服务分类!";
                return;
            }

            string sd_srvtp = ciorder.Sd_srvtp.Substring(0, 2);

            List <XOrderResultData> resultList = OrReportPictureButton.GetInstance().buildOrderResultData(ciorder);

            cell.Value       = resultList;
            cell.MouseClick += new MouseEventHandler(cell_MouseClick);

            //if (cusotmCellDic.ContainsKey(sd_srvtp))
            //{
            //    cell.ValueObj = ciorder;
            //    cell.ValueText = "报告出具";
            //    cell.MouseClick += new MouseEventHandler(cell_MouseClick);
            //}
        }
Exemple #14
0
        /// <summary>
        ///     *******************************************************************保存校验
        /// </summary>
        /// <returns></returns>
        private bool validate()
        {
            bool flag2 = false;

            if (AddFeeDTOList.Count > 0)
            {
                CiOrderDO ciord = this.ordservice.findById(AddFeeDTOList[0].Id_or);
                if (ciord == null || (!(ciord.Fg_chk == FBoolean.False && ciord.Fg_sign == FBoolean.True)))
                {
                    this.ShowAlert("该医嘱已不是签署医嘱");
                    flag2 = true;
                    return(flag2);
                }
            }
            foreach (AddFeeDTO feeDto in AddFeeDTOList)
            {
                if (feeDto.Id_srv == null)
                {
                    flag2 = true;
                    this.ShowAlert("服务项目不能为空");
                    return(flag2);
                }
                if ((feeDto.Quan_med == null || feeDto.Quan_med == 0) && feeDto.Fg_mm == FBoolean.True)
                {
                    this.ShowAlert("单次数量不能为空");
                    flag2 = true;
                    return(flag2);
                    //break;
                }
                if (feeDto.Id_dep == null)
                {
                    this.ShowAlert("执行科室不能为空");
                    flag2 = true;
                    return(flag2);
                    //break;
                }
            }
            return(flag2);
        }
Exemple #15
0
        /// <summary>
        /// 获取费用项目备注信息保存后
        /// </summary>
        /// <param name="ciorder"></param>
        /// <returns></returns>
        public List <string> getBlSrvDesListAftSave(CiOrderDO ciorder)
        {
            List <string> ids = new List <string>();

            ids.Add(ciorder.Id_or);
            FMap          srvFMap = ordMaintainService.getCiOrderBlSrvDesByIdors(ids.ToArray());
            List <string> msglist = new List <string>();
            int           i       = 1;

            foreach (string id_srv in srvFMap.Keys)
            {
                MedSrvDO medsrv = srvFMap[id_srv] as MedSrvDO;
                // PO:费用备注信息提示是对收费项目提示信息,药品不需提示。控制条件bd_srv,fg_bl = Y and fg_mm =N
                if (medsrv == null || medsrv.Fg_bl == FBoolean.False || medsrv.Fg_mm == FBoolean.True)
                {
                    continue;
                }
                msglist.Add(i + "、" + medsrv.Name + ":" + medsrv.Des);
                i++;
            }
            return(msglist);
        }
Exemple #16
0
        //撤回
        protected void updateSu(string code, string id, string code_entp)
        {
            //1.取出所有UI选中的医嘱的ID值集合
            CiOrderDO[] orders = xapFormControl1.GetSelected <CiOrderDO>();
            var         ids    = new string[orders.Length];

            for (int i = 0; i < orders.Length; i++)
            {
                ids[i] = orders[i].Id_or;
            }

            //2.找到可以撤销的医嘱集合
            var backOrdList = new List <CiOrderDO>();

            //当前选中的医嘱对应的后台最新的医嘱数据集合
            CiOrderDO[] canBackOrd = viewModel.getCiOrderDOArray(ids);
            foreach (CiOrderDO ord in orders)
            {
                CiOrderDO ciOrderBack = canBackOrd.FirstOrDefault(ciorder => ciorder.Id_or == ord.Id_or);
                if (ciOrderBack.Sd_su_or == CiDictCodeConst.SD_SU_SIGN && ciOrderBack.Fg_sign == true &&
                    ciOrderBack.Fg_chk == false && ciOrderBack.Sd_su_bl == CiDictCodeConst.SD_SU_BL_NONE)
                {
                    backOrdList.Add(ord);
                }
            }

            //3.如果没有可撤销的
            if (backOrdList.Count == 0)
            {
                if (this.IsContinue("提示", "没有符合操作的数据!是否刷新列表?"))
                {
                    LoadData();
                }
                return;
            }
            viewModel.OnUpdateSu(backOrdList.ToArray(), CiDictCodeConst.SD_SU_OPEN, CiDictCodeConst.SD_SU_ID_OPEN);
            this.LoadData();
        }
Exemple #17
0
 internal void save(XapDataList <CiOrderDO> dataSource, string[] id_ors)
 {
     try
     {
         List <string> id_deletes = new List <string>();
         for (int i = dataSource.Count - 1; i >= 0; i--)
         {
             CiOrderDO ciOrderDO = dataSource[i];
             if (ciOrderDO.Eu_uncpordoctorjudge == 0)
             {
                 ciOrderDO.Eu_uncporjudge = (int)HpIndicJudgeEnum.WAITINGJUDGE;
             }
             else if (ciOrderDO.Eu_uncpordoctorjudge == 1)
             {
                 ciOrderDO.Eu_uncporjudge = (int)HpIndicJudgeEnum.JUDGED;
             }
             else if (ciOrderDO.Eu_uncpordoctorjudge == 2)
             {
                 id_deletes.Add(ciOrderDO.Id_or);
                 dataSource.Remove(ciOrderDO);
             }
         }
         ICiOrdMaintainService mainService = XapServiceMgr.find <ICiOrdMaintainService>();
         mainService.saveCporCheckReport(dataSource, id_deletes.ToArray());
         //if (id_deletes.Count > 0)
         //{
         //    mainService.relDeleteOrder(id_deletes.ToArray());
         //}
         //if (dataSource.Count > 0)
         //{
         //    ICiorderMDOCrudService orderService = XapServiceMgr.find<ICiorderMDOCrudService>();
         //    orderService.save(dataSource);
         //}
     }
     catch (Exception ex) {
         ex.Publish();
     }
 }
Exemple #18
0
        /// <summary>
        /// 费用标识
        /// </summary>
        /// <param name="ciorderdo"></param>
        /// <param name="resultData"></param>
        /// <returns></returns>
        public XOrderResultData getBLResultData(CiOrderDO ciorderdo, XOrderResultData resultData = null)
        {
            resultData      = resultData == null ? new XOrderResultData() : resultData;
            resultData.Type = "6";
            if (ciorderdo.Sd_su_bl != null)
            {
                resultData.ID_or = ciorderdo.Id_or;
                switch (ciorderdo.Sd_su_bl)
                {
                case "0":
                    resultData.ImagePath = "\\res\\image\\checkresult\\未记账.png";
                    resultData.Value     = "0";
                    resultData.ValueText = "未记账";
                    break;

                case "1":
                    resultData.ImagePath = "\\res\\image\\checkresult\\已记账.png";
                    resultData.Value     = "0";
                    resultData.ValueText = "已记账";
                    break;

                case "2":
                    resultData.ImagePath = "\\res\\image\\checkresult\\退费.png";
                    resultData.Value     = "0";
                    resultData.ValueText = "已退费";
                    break;

                default:
                    resultData.ImagePath = "\\res\\image\\checkresult\\收费异常.png";
                    resultData.Value     = "0";
                    resultData.ValueText = "收费异常";
                    break;
                }
            }
            return(resultData);
        }
Exemple #19
0
        public XOrderResultData getHpXOrderResultData(CiOrderDO ciorderdo, XOrderResultData resultData = null)
        {
            resultData      = resultData == null ? new XOrderResultData() : resultData;
            resultData.Type = "1";
            if (ciorderdo.Eu_hpindicjudge != null)
            {
                resultData.ID_or = ciorderdo.Id_or;
                switch (ciorderdo.Eu_hpindicjudge)
                {
                case (int)HpIndicJudgeEnum.NONEEDJUDGE:
                    resultData.Value     = "0";
                    resultData.ImagePath = "";
                    resultData.ValueText = "医保-不需要判断";
                    break;

                case (int)HpIndicJudgeEnum.JUDGED:
                    resultData.ImagePath = "\\res\\image\\checkresult\\医保-已判断.png";
                    resultData.Value     = "1";
                    resultData.ValueText = "医保-已判断";
                    break;

                case (int)HpIndicJudgeEnum.WAITINGJUDGE:
                    resultData.ImagePath = "\\res\\image\\checkresult\\医保-待判断.png";
                    resultData.Value     = "1";
                    resultData.ValueText = "医保-待判断";
                    break;

                case (int)HpIndicJudgeEnum.SELFPAY:
                    resultData.ImagePath = "\\res\\image\\checkresult\\自费.png";
                    resultData.Value     = "";
                    resultData.ValueText = "自费";
                    break;
                }
            }
            return(resultData);
        }
        void tabControl_DataDisplay(Object sender, XDataDisplayEventArgs e)
        {
            XDataRow row = sender as XDataRow;

            //0两个都不选,1:first选择,2:second选择
            if (row != null && row.ColumnCellDict.ContainsKey("Eu_uncpordoctorjudge"))
            {
                XCheckboxGroup cell = row.ColumnCellDict["Eu_uncpordoctorjudge"] as XCheckboxGroup;
                cell.Enabled         = this.getCanEdit();
                cell.checFirst.Text  = "确认";
                cell.checSecond.Text = "取消";
                CiOrderDO ciOrderDO = row.RowDataSource as CiOrderDO;
                ciOrderDO.Eu_uncpordoctorjudge = 0;
                if (ciOrderDO.Eu_uncporjudge != null && ciOrderDO.Eu_uncporjudge == (int)HpIndicJudgeEnum.JUDGED)
                {
                    cell.checFirst.Checked         = true;
                    ciOrderDO.Eu_uncpordoctorjudge = 1;
                }
                else
                {
                    ciOrderDO.Eu_uncpordoctorjudge = 0;
                }
            }
        }
Exemple #21
0
        public HealthCheckRepoatView(object dataList, string[] id_ors, string title, int key, CiOrderDO ciOrderDO)
            : base(dataList, id_ors, title, key)
        {
            Size s = this.Size;

            s.Width        = viewWide;
            this.orderType = ciOrderDO.Sd_srvtp;
            dataSource     = datalist as XapDataList <OrdSrvDO>;
            if (RelativeUIParam.ScreenSize == ScreenSize.Large)
            {
                s.Height = dataSource.Count * 29 + 105;
            }
            else
            {
                s.Height = dataSource.Count * 25 + 101;
            }
            this.Size = s;
        }
Exemple #22
0
        /// <summary>
        /// 获取医保审核,临床路径审核数据
        /// </summary>
        /// <param name="id_ors"></param>
        /// <returns></returns>
        public Dictionary <int, object> getReportData(string[] id_ors)
        {
            Dictionary <int, object> dataDic = new Dictionary <int, object>();

            CiorderAggDO[] ciordAggDOs = ciorderService.findByBIds(id_ors, FBoolean.False);
            FMap2          map2        = icOrdQryService.getMMName(id_ors);
            //医保审核数据
            // 医嘱列表中的适应症提示按钮弹出信息
            //1、显示需要医生干预的适应症条目。
            //2、医生干预后的也需要显示。
            //3、显示内容为费用项目
            XapDataList <OrdSrvDO> hpData = new XapDataList <OrdSrvDO>();

            foreach (CiorderAggDO aggDO in ciordAggDOs)
            {
                CiOrderDO ciOrderDO = aggDO.getParentDO();
                // 如果医保校验结果为不需要判断,不在医保审核列表显示
                if (ciOrderDO.Eu_hpindicjudge == (int)HpIndicJudgeEnum.NONEEDJUDGE)
                {
                    continue;
                }

                OrdSrvDO[] ordSrvDOs = aggDO.getOrdSrvDO();
                // 遍历服务项目获取医生判断的费用项目
                foreach (OrdSrvDO ordSrvDO in ordSrvDOs)
                {
                    // 如果是药品 并且是待判断的,才显示,非药品的不显示
                    if (ciOrderDO.Sd_srvtp.StartsWith(BdSrvTpDictCodeConst.SD_SRVTP_DRUG))
                    {
                        if (ordSrvDO.Fg_hpindicjudged != (int)HpIndicJudgeEnum.NONEEDJUDGE)
                        {
                            if (map2 != null)
                            {
                                if (map2[ordSrvDO.Id_orsrv] != null)
                                {
                                    string name     = (string)map2[ordSrvDO.Id_orsrv];
                                    string name_srv = ordSrvDO.Name;
                                    ordSrvDO.Name = name_srv + "(" + name + ")";
                                    hpData.Add(ordSrvDO);
                                }
                                else
                                {
                                    hpData.Add(ordSrvDO);
                                }
                            }
                            else
                            {
                                hpData.Add(ordSrvDO);
                            }
                        }
                    }
                    else if (ordSrvDO.Fg_bl == FBoolean.True)
                    {
                        hpData.Add(ordSrvDO);
                    }

                    // if (ordSrvDO.Fg_hpindicjudged == (int)HpIndicJudgeEnum.NONEEDJUDGE || ordSrvDO.Fg_bl == FBoolean.False) continue;
                    //if (ordSrvDO.Fg_bl != FBoolean.True) continue;
                    //hpData.Add(ordSrvDO);
                }
            }
            if (hpData.Count > 0)
            {
                dataDic.Add(ReportCodeDict.HP_REPORT_CODE, hpData);
            }
            //临床路径审核数据
            XapDataList <CiOrderDO> uncporData = new XapDataList <CiOrderDO>();

            foreach (CiorderAggDO aggDO in ciordAggDOs)
            {
                CiOrderDO ciOrderDO = aggDO.getParentDO();
                //门诊不含有临床路径
                if (BdFcDictCodeConst.SD_CODE_ENTP_OP.Equals(ciOrderDO.Code_entp))
                {
                    continue;
                }
                //临床路径的:0不判断,1待判断,2已判断
                if (ciOrderDO.Eu_uncporjudge == (int)HpIndicJudgeEnum.NONEEDJUDGE)
                {
                    continue;
                }
                uncporData.Add(ciOrderDO);
            }
            if (uncporData.Count > 0)
            {
                dataDic.Add(ReportCodeDict.UNCPOR_REPORT_CODE, uncporData);
            }
            return(dataDic);
        }
Exemple #23
0
        /// <summary>
        /// 获取医嘱状态
        /// </summary>
        /// <param name="id_or"></param>
        /// <returns></returns>
        public String GetOrdState(String id_or)
        {
            CiOrderDO ord = GetOrderDO(id_or);

            return(ord.Ord_colligate);
        }
Exemple #24
0
        /// <summary>
        /// 优化后编辑方法
        /// </summary>
        /// <param name="ord"></param>
        private void New_EditOrder(CiOrderDO ord)
        {
            ICiEmsMainService emsMainService = XapServiceMgr.find <ICiEmsMainService>();

            if (null != emsMainService)
            {
                EmsLoadDTO[] emsloads = new EmsLoadDTO[1];
                var          emsload  = new EmsLoadDTO();
                emsload.Id_or             = ord.Id_or;
                emsload.Extension         = new FMap2();
                emsload.EnContext         = CiEnContextUtil.GetCiEnContext(this.GetEnt4BannerDTO(), this.GetContext());
                emsload.EmsDriver         = ((int)this.uiEmsDTO.EmsType).ToString();
                emsload.OperateSourceFrom = IOprSourceFromConst.IOSF_EMS;
                emsloads[0] = emsload;
                EmsRstDTO[] rsts = emsMainService.load(emsloads);
                EmsRstDTO   rst  = rsts[0];
                if (rst != null)
                {
                    uiEmsDTO.Emsappathgy.deSerializeJson((rst.Document[0] as EmsPathgyItemDO).serializeJson());
                    //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString));
                    //uiEmsDTO.Emsappathgy.deSerializeJson(utf8Str);

                    if (rst.Extension != null && rst.Extension.Keys.Contains("CiEmsDTO"))
                    {
                        this.ciEmsDTO = rst.Extension["CiEmsDTO"] as CiEmsDTO;
                    }
                    if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO"))
                    {
                        this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO;
                        strSd_srvtp            = this.uiEmsDTO.MedSrvDO.Sd_srvtp;
                    }
                    if (rst.Extension != null && rst.Extension.Keys.Contains("MpDepFilter"))
                    {
                        idDepMps = rst.Extension["MpDepFilter"] as String;
                    }
                    else
                    {
                        idDepMps = "";
                    }

                    if (this.uiEmsDTO.Emsappathgy.EmsItemInpathgyList != null)
                    {
                        if (null == this.uiEmsDTO.Emsappathgy.EmsItemInpathgy)
                        {
                            this.uiEmsDTO.Emsappathgy.EmsItemInpathgy = new XapDataList <EmsItemInPathgy>();
                        }
                        this.uiEmsDTO.Emsappathgy.EmsItemInpathgy.Clear();
                        this.uiEmsDTO.Emsappathgy.EmsItemInpathgyList.Cast <EmsItemInPathgy>().ToList().ForEach(o =>
                        {
                            this.uiEmsDTO.Emsappathgy.EmsItemInpathgy.Add(o);
                        });
                    }

                    if (uiEmsDTO.Emsappathgy.EmsItemInpathgy.Count <= 0)
                    {
                        uiEmsDTO.Emsappathgy.EmsItemInpathgy.AddNew();
                        uiEmsDTO.Emsappathgy.EmsItemInpathgy[0].Sortno = 1;
                    }
                }

                this.lstEmsPathgyItemDO.Add(uiEmsDTO.Emsappathgy);

                // 其他
                this.ciEmsDTO.Status = DOStatus.UPDATED;
                this.uiEmsDTO.Status = DOStatus.UPDATED;

                // 处理分拣费用项目
                HandleExpenseItems(ciEmsDTO);
            }
        }
 public override void EditOrder(CiOrderDO ciOrderDO)
 {
     base.EditOrder(ciOrderDO);
 }
Exemple #26
0
        /// <summary>
        /// 将服务或者医嘱上的数据设置到医疗单上
        /// </summary>
        /// <param name="e">具体的一条医嘱</param>
        /// <param name="dto">患者信息</param>
        private void SetEmsFromOrdOrSrv(Object e, Ent4BannerDTO dto)
        {
            this.bannerDto        = dto;
            this.orDataBing.patDo = dto;
            this.emsDO            = cof.CreatEmsIntance();
            this.emsDO.PatInfo    = dto;

            ClearCurrentEms();

            emsIndexAndButtonArea.RenderEnabled = true;

            // 服务选择
            if (e is EmsOrSrvSc)//这是新增
            {
                status = DOStatus.NEW;
                MedSrvDO med = (e as EmsOrSrvSc).MedSrvDO;
                this.dto = cof.CreatEmsDTO();
                LoadOrderView(med.Sd_srvtp, med);
                if (emsIndexAndButtonArea != null)
                {
                    emsIndexAndButtonArea.RenderEnabled = true;
                }
            }
            else if (e is RegularOrRelSrvDO) //医嘱助手 常用模板348112
            {
                status = DOStatus.NEW;
                String   id_srv = (e as RegularOrRelSrvDO).Id_srv;
                MedSrvDO med    = this.dtoSaveViewModel.getMedSrvDO(id_srv);
                this.dto = cof.CreatEmsDTO();
                LoadOrderView(med.Sd_srvtp, med);
                if (emsIndexAndButtonArea != null)
                {
                    emsIndexAndButtonArea.RenderEnabled = true;
                }
            }
            else if (e is EntHisDiDTO)
            {
                //医嘱助手 患者既往
                status = DOStatus.NEW;
                String   id_srv = (e as RegularOrRelSrvDO).Id_srv;
                MedSrvDO med    = this.dtoSaveViewModel.getMedSrvDO(id_srv);
                this.dto = cof.CreatEmsDTO();
                LoadOrderView(med.Sd_srvtp, med);
                if (emsIndexAndButtonArea != null)
                {
                    emsIndexAndButtonArea.RenderEnabled = true;
                }
            }
            else if (e is OrTplItmDtDO)
            {
                //医嘱助手 协定处方
                status = DOStatus.NEW;
                string   id_srv = (e as OrTplItmDtDO).Id_srv;
                MedSrvDO med    = this.dtoSaveViewModel.getMedSrvDO(id_srv);
                this.dto = cof.CreatEmsDTO();
                LoadOrderView(med.Sd_srvtp, med);
                if (emsIndexAndButtonArea != null)
                {
                    emsIndexAndButtonArea.RenderEnabled = true;
                }
            }
            else if (e is SrvortplitemAggDO)
            {
                //医嘱助手 医嘱模板
                status = DOStatus.NEW;

                MedSrvDO med = new MedSrvDO();
                this.dto = cof.CreatEmsDTO();
                LoadOrderView(med.Sd_srvtp, med);

                if (emsIndexAndButtonArea != null)
                {
                    emsIndexAndButtonArea.RenderEnabled = true;
                }
            }
            else if (e is MedSrvDO)
            {
                // 医嘱助手 分类选取?
                status = DOStatus.NEW;
                MedSrvDO med = e as MedSrvDO;
                this.dto = cof.CreatEmsDTO();
                LoadOrderView(med.Sd_srvtp, med);
                if (emsIndexAndButtonArea != null)
                {
                    emsIndexAndButtonArea.RenderEnabled = true;
                }
            }

            else if (e is CiOrderDO) //已经存在要进行修改
            {
                status = DOStatus.UPDATED;
                CiOrderDO ciDO = e as CiOrderDO;
                if (orderDataFromStr == "patipast" && ciDO != null)
                {
                    ciDO.Sd_su_or = "0"; //既往数据可以编辑
                }
                ciorderDO = ciDO;
                emsDO.SetUpdated();
                CiEmsDTO ciEmsDTO = this.model.getCiEmsDTO(ciDO.Id_or);

                this.dto = ciEmsDTO;
                this.dto.SetUpdated();
                emsDO.PatInfo      = bannerDto;
                emsDO.Funcclassstr = this.dto.Funcclassstr;
                emsDO.Id_srvof     = this.dto.Id_srvof;
                MedSrvDO med = new MedSrvDO();
                med.Id_srv    = this.dto.Id_srv;
                med.Sd_srvtp  = this.dto.Sd_srvtp;
                this.dto.Name = this.dto.Name;
                LoadOrderView(ciDO.Sd_srvtp, med);
                SheetName = ciDO.Name_or;
                //viewEditState是通过患者的状态判断得到,当viewEditState为false,医疗单不可编辑;当viewEditState为True,通过医嘱的状态判断医疗单是否可编辑;
                currentEmsControl.IsReadOnly = this.viewEditState == true ? !(ciDO.Sd_su_or == "0") : this.viewEditState;
                //ci.IsReadOnly = !(ciDO.Sd_su_or == "0"); //只有开立的可以修改
                if (emsIndexAndButtonArea != null)
                {
                    if (ciDO.Sd_su_or != null && ciDO.Sd_su_or != "0")
                    {
                        emsIndexAndButtonArea.RenderEnabled = false;
                    }
                    else
                    {
                        emsIndexAndButtonArea.RenderEnabled = true;
                    }
                }
            }

            if (emsDO != null)
            {
                ciControl = new Dictionary <CiorderBaseControl, Object>();

                ////ciControl.Add(ci, cardName);
                ////ssci.Enabled = this.bEnabled;
                ////if (!this.CiFlag)
                ////{
                ////    this.splitContainer1.Panel1.Controls.Add(ci);
                ////    this.CiFlag = true;
                ////}

                //emsDO.IsOpData = false;
                //if (orderItemView != null)
                //    orderItemView.SetTabText(currentEmsControl.SheetName);
                //emsDO.PatInfo = dto;
                //currentEmsControl.OnRefreshData(emsDO, this.dto);//数据传递给 医嘱表单
                ////为医疗单传Context对象
                //currentEmsControl.Context = this.Context;
                //currentEmsControl.EmsHeadDO = emsDO;
                //currentEmsControl.CiEmsDTO = this.dto;
                //ciControl.Add(currentEmsControl, SheetName);
                //currentEmsControl.Dock = DockStyle.None;
                //this.splitContainer1.AddControl(currentEmsControl, xap.cli.sdk.controls.ControlPosition.Center);

                emsDO.IsOpData = false;
                if (orderItemView != null)
                {
                    orderItemView.SetTabText(currentEmsControl.SheetName);
                }
                emsDO.PatInfo = dto;
                currentEmsControl.OnRefreshData(emsDO, this.dto);//数据传递给 医嘱表单
                //为医疗单传Context对象
                currentEmsControl.Context   = this.Context;
                currentEmsControl.EmsHeadDO = emsDO;
                currentEmsControl.CiEmsDTO  = this.dto;
                ciControl.Add(currentEmsControl, emsDO);
                currentEmsControl.Dock = DockStyle.None;
                this.splitContainer1.AddControl(currentEmsControl, xap.cli.sdk.controls.ControlPosition.Center);
            }
            else
            {
                emsIndexAndButtonArea.RenderEnabled = false;
            }
        }
Exemple #27
0
        /// <summary>
        /// 将医嘱数据和医疗单数据整合成一组费用清单数据
        /// </summary>
        /// <param name="ord"></param>
        /// <param name="ems"></param>
        /// <returns></returns>
        private CiOrdFeeSrvDTO[] OrdFeeBillListFrom(CiOrderDO ord, CiEmsDTO ems, FMap blsrvFMap)
        {
            List <CiOrdFeeSrvDTO> OrdFeeBillList = new List <CiOrdFeeSrvDTO>();

            ems.Emssrvs.Cast <CiEmsSrvDTO>().OrderBy(p => p.Sortno).Where(srvdto => (!String.IsNullOrEmpty(srvdto.Code_srv) && !String.IsNullOrEmpty(srvdto.Name_srv)) && srvdto.Fg_bl != null && srvdto.Fg_bl.Value).ToList().ForEach(srvdto =>
            {
                CiOrdFeeSrvDTO ordFeeBill = new CiOrdFeeSrvDTO();
                ordFeeBill.deSerializeJson(srvdto.serializeJson());

                ordFeeBill.Content_or = ord.Content_or;
                ordFeeBill.Dt_effe    = ord.Dt_effe;
                ordFeeBill.setAttrVal("Ord_colligate", ord.Ord_colligate);
                ordFeeBill.Code_or = ord.Code_or;


                if (String.IsNullOrEmpty(ordFeeBill.Id_unit_sale))
                {
                    ordFeeBill.Id_unit_sale   = ordFeeBill.Id_unit_med;
                    ordFeeBill.Name_unit_sale = ordFeeBill.Name_unit_med;
                }

                if (ordFeeBill.Price == null)
                {
                    ordFeeBill.Price = FDouble.ZERO_DBL;
                }

                // 物品标志
                if (ordFeeBill.Fg_mm != null && ordFeeBill.Fg_mm.Value)
                {
                    ordFeeBill.Amt_total = ordFeeBill.Price * (ordFeeBill.Quan_cur == null ? 0 : ordFeeBill.Quan_cur);
                    //且非草药时
                    if (ordFeeBill.Sd_srvtp != null && !ordFeeBill.Sd_srvtp.StartsWith(BdSrvDictCodeConst.SD_SRVTP_HERBDRUG) && ordFeeBill.Name_mm != null)
                    {
                        ordFeeBill.Name_srv = ordFeeBill.Name_srv + "(" + ordFeeBill.Name_mm + ")";
                    }
                }
                else
                {
                    ordFeeBill.Amt_total = ordFeeBill.Price * (ordFeeBill.Quan_total_medu == null ? 0 : ordFeeBill.Quan_total_medu);
                }

                {
                    //执行科室
                    OrWfDeptInfoDTO wf = new ciorder.viewmodel.impext.GetDeptMpImp().GetDept_mp_ids(
                        this.ent4BannerDTO.Code_entp,
                        this.ent4BannerDTO.Id_entp,
                        ordFeeBill.Sd_srvtp,
                        ordFeeBill.Id_srvca,
                        ordFeeBill.Id_srv,
                        ordFeeBill.Id_route,
                        "",
                        this.ent4BannerDTO.Id_dep_nur,
                        this.ent4BannerDTO.Id_dep_phy,
                        GetOrdDeptMp(ordFeeBill.Id_or));
                    if (wf != null)
                    {
                        ordFeeBill.setAttrVal("str_id_mp_deps", wf.Id_mp_depts);
                    }
                    if (blsrvFMap.Keys.Contains(ordFeeBill.Id_srv))
                    {
                        ordFeeBill.Des_srv = (blsrvFMap[ordFeeBill.Id_srv] as MedSrvDO).Des;
                    }
                }
                ordFeeBill.Name_hp = ordFeeBill.Name_hpsrvtp;
                OrdFeeBillList.Add(ordFeeBill);
            });

            // 处理医保类型
            String[] szId_srv = OrdFeeBillList.Select(p => p.Id_srv).ToArray();
            String[] szId_mm  = OrdFeeBillList.Select(p => p.Id_mm).ToArray();

            bl.hp.bdhpindicationdto.d.BdHpIndicationDTO[] szHpIndication = HpJudgeUtil.getInstance().getBdHpIndicationDTO(szId_srv, szId_mm, this.ent4BannerDTO);
            if (null != szHpIndication)
            {
                OrdFeeBillList.ForEach(p => {
                    bl.hp.bdhpindicationdto.d.BdHpIndicationDTO dto = null;
                    if (p.Fg_mm != null && p.Fg_mm == true)
                    {
                        if ((dto = szHpIndication.FirstOrDefault(item => item.Id_mm.Equals(p.Id_mm) && item.Id_srv.Equals(p.Id_srv))) != null)
                        {
                            p.Name_hp = idHpSrvtpFromSdHpSrvtp(dto.Sd_hpsrvtp);
                        }
                    }
                    else
                    {
                        if ((dto = szHpIndication.FirstOrDefault(item => item.Id_srv.Equals(p.Id_srv))) != null)
                        {
                            p.Name_hp = idHpSrvtpFromSdHpSrvtp(dto.Sd_hpsrvtp);
                        }
                    }
                });
            }

            return(OrdFeeBillList.ToArray());
        }
Exemple #28
0
        public override void EditOrder(CiOrderDO ciOrderDO)
        {
            EmsRstDTO[] rsts = LoadRemote(ciOrderDO.Id_or);
            EmsRstDTO   rst  = rsts[0];

            if (rst != null)
            {
                uiEmsDTO.Emsaplab.deSerializeJson((rst.Document[0] as EmsObsItemDO).serializeJson());
                //String utf8Str = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(rst.DocumentString));
                //uiEmsDTO.Emsaplab.deSerializeJson(utf8Str);

                if (rst.Extension != null && rst.Extension.Keys.Contains("CiEmsDTO"))
                {
                    this.ciEmsDTO = rst.Extension["CiEmsDTO"] as CiEmsDTO;
                }
                if (rst.Extension != null && rst.Extension.Keys.Contains("MedSrvDO"))
                {
                    this.uiEmsDTO.MedSrvDO = rst.Extension["MedSrvDO"] as MedSrvDO;
                    strSd_srvtp            = this.uiEmsDTO.MedSrvDO.Sd_srvtp;
                }
                this.ciEmsDTO.Times_cur = ciOrderDO.Times_cur;

                this.ciEmsDTO.Times_mp_in = ciOrderDO.Times_mp_in;

                if (this.uiEmsDTO.Emsaplab.EmsOrObsListEx != null)
                {
                    if (null == this.uiEmsDTO.Emsaplab.EmsOrObsList)
                    {
                        this.uiEmsDTO.Emsaplab.EmsOrObsList = new XapDataList <EmsObsLap>();
                    }
                    this.uiEmsDTO.Emsaplab.EmsOrObsList.Clear();
                    this.uiEmsDTO.Emsaplab.EmsOrObsListEx.Cast <EmsObsLap>().ToList().ForEach(o =>
                    {
                        this.uiEmsDTO.Emsaplab.EmsOrObsList.Add(o);
                    });

                    this.uiEmsDTO.Emsaplab.EmsOrDrugList.Clear();    //
                }
                uiEmsDTO.Emsaplab.Use_days    = this.ciEmsDTO.Days_or;
                uiEmsDTO.Emsaplab.Dt_begin_ui = this.ciEmsDTO.Dt_begin;
                uiEmsDTO.Emsaplab.Dt_end_ui   = this.ciEmsDTO.Dt_end;
                uiEmsDTO.Emsaplab.Times_cur   = this.ciEmsDTO.Times_cur;
                uiEmsDTO.Emsaplab.Times_mp_in = this.ciEmsDTO.Times_mp_in;

                EmsOrDrug item = new EmsOrDrug();
                item.Status   = DOStatus.UPDATED;
                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       = ciEmsDTO.Id_freq;
                item.Name_freq     = ciEmsDTO.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       = (ciEmsDTO.Times_cur == null ? 0 : ciEmsDTO.Times_cur);
                item.Id_unit_sale   = item.Id_unit_med;
                item.Name_unit_sale = item.Name_unit_med;
                /////////添加检验、检查、诊疗多剂量多次执行,杨敬本20171111
                item.Quan_medu_virtual      = uiEmsDTO.Emsaplab.Quan_med;
                item.Name_unit_medu_virtual = uiEmsDTO.Emsaplab.Name_unit_med;
                /////////添加检验、检查、诊疗多剂量多次执行,杨敬本20171111

                // 总价
                item.Totalprice = item.Price * item.Quan_cur;

                //申请单号
                item.No_applyform = this.uiEmsDTO.Emsaplab.No_applyobs;

                //标本类型
                item.Id_samptp   = this.uiEmsDTO.Emsaplab.Id_samptp;
                item.Sd_samptp   = this.uiEmsDTO.Emsaplab.Sd_samptp;
                item.Name_samptp = this.uiEmsDTO.Emsaplab.Name_samptp;
                //标本采集时间
                item.Id_sampcoltime       = this.uiEmsDTO.Emsaplab.Id_sampcoltime;
                item.Name_sampcoltime     = this.uiEmsDTO.Emsaplab.Name_sampcoltime;
                item.Id_sampcollecttimetp = this.uiEmsDTO.Emsaplab.Id_sampcollecttimetp;
                item.Sd_sampcollecttimetp = this.uiEmsDTO.Emsaplab.Sd_sampcollecttimetp;
                item.Len_sampcoltime      = this.uiEmsDTO.Emsaplab.Len_sampcoltime;
                item.Id_unit_sampcoltime  = this.uiEmsDTO.Emsaplab.Id_unit_sampcoltime;

                this.uiEmsDTO.Emsaplab.EmsOrDrugList.Add(item);

                //其他处理
                uiEmsDTO.Id_srvof    = ciEmsDTO.Id_srvof;
                this.ciEmsDTO.Status = DOStatus.UPDATED;
                this.uiEmsDTO.Status = DOStatus.UPDATED;
                item.Fg_setradio     = uiEmsDTO.MedSrvDO.Fg_setradio;
                HandleExpenseItems(ciEmsDTO);
            }
        }
Exemple #29
0
 /// <summary>
 /// 获取费用项目备注信息
 /// </summary>
 /// <param name="ciord"></param>
 /// <returns></returns>
 public virtual List <string> getBlSrvDesList(CiOrderDO ciord)
 {
     return(this.model.getBlSrvDesListAftSave(ciord));
 }
Exemple #30
0
        public override void EditOrder(CiOrderDO ciOrderDO)
        {
            // Old_EditOrder(ciOrderDO);

            New_EditOrder(ciOrderDO);
        }