コード例 #1
0
ファイル: BaseEmsFormView.cs プロジェクト: fhis/order.client
        protected override void OnXapFormControl_ModelFilled(object sender, EventArgs e)
        {
            object emsObj = this.GetViewModel().GetEmsUIDTO();

            if (emsObj != null)
            {
                EmsUIDTO emsUiDto = emsObj as EmsUIDTO;
                if (emsUiDto.PatInfo != null)
                {
                    if (isHideSelfpay(emsUiDto.PatInfo))
                    {
                        if (this.GetXapFormControl().GetUserRender(FORM_CARD_PAGECODE, "fg_selfpay") != null)
                        {
                            (this.GetXapFormControl().GetUserRender(FORM_CARD_PAGECODE, "fg_selfpay") as
                             XLabelBaseUserRender).Visible = false;
                        }
                    }
                    else
                    {
                        //医保共享验证
                        CiEnContextDTO ciEnContextDto = CiEnContextUtil.GetCiEnContext(emsUiDto.PatInfo, EmsAppModeEnum.SVEMSAPPMODE, this.Context);//诊断是否保外的
                        if (ciEnContextDto.Eu_hpbeyond == HpBeyondEnum.HPEXTERNALDIAG)
                        {
                            if (this.GetXapFormControl().GetUserRender(FORM_CARD_PAGECODE, "fg_selfpay") != null)
                            {
                                (this.GetXapFormControl().GetUserRender(FORM_CARD_PAGECODE, "fg_selfpay") as
                                 XLabelBaseUserRender).Checked = true;
                                (this.GetXapFormControl().GetUserRender(FORM_CARD_PAGECODE, "fg_selfpay") as
                                 XLabelBaseUserRender).Enabled = false;
                            }
                        }
                    }
                }
            }
        }
コード例 #2
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);
        }
コード例 #3
0
        /// <summary>
        /// 设置环境参数的保外诊断相关属性
        /// </summary>
        /// <param name="conetxtDTO"></param>
        /// <param name="ciDiagItems"></param>
        public static void SetHpCiDiagItem(CiEnContextDTO conetxtDTO, CiDiagItemDO[] ciDiagItems)
        {
            if (conetxtDTO.Fg_hpfundpay != FBoolean.True || ciDiagItems == null || ciDiagItems.Length == 0)
            {
                return;
            }

            // 保外诊断集合
            StringBuilder builder = new StringBuilder();

            foreach (CiDiagItemDO ciDiagItem in ciDiagItems)
            {
                // 存在保外诊断时,将conetxtDTO保外诊断属性设置为1,并拼接保外诊断id
                if (ciDiagItem.Eu_hpbeyond == HpBeyondEnum.HPEXTERNALDIAG)
                {
                    conetxtDTO.Eu_hpbeyond = HpBeyondEnum.HPEXTERNALDIAG;
                    builder.Append("," + ciDiagItem.Id_didef);
                }
            }

            // 基本医保判断结果数据信息
            // 添加基本医保判断结果属性
            // 第一位 医保就诊为1 非医保就诊为0
            // 第二位 黑白名单: 白名单为0 黑名单为 1 非医保就诊时为9
            // 第三位 是否为保外诊断:保外诊断 0 保内诊断 1 非医保就诊时为 9
            conetxtDTO.Bhpjudgerst = (conetxtDTO.Fg_hpfundpay == FBoolean.True ? "1" : "0") + conetxtDTO.Eu_inhpbbr + conetxtDTO.Eu_hpbeyond;
            // 设置保外诊断id_didef拼接串
            if (builder.Length > 0)
            {
                conetxtDTO.Des_bhpjudgerst = builder.Remove(0, 1).ToString();
            }
        }
コード例 #4
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);
            }
        }
コード例 #5
0
        /// <summary>
        /// 根据就诊信息费用清单数据
        /// </summary>
        /// <returns></returns>
        public bool newLoad()
        {
            if (this.GetEnt4BannerDTO() == null)
            {
                return(false);
            }
            FeeListLoadDTO feeListLoadDTO = new FeeListLoadDTO();
            CiEnContextDTO ciEnContextDTO = BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO;

            if (ciEnContextDTO == null)
            {
                return(false);
            }
            feeListLoadDTO.EnContext = ciEnContextDTO;
            FeeListRstDTO feeListRstDTO = iCiFeeListMainService.load(feeListLoadDTO);
            FArrayList    feeList       = feeListRstDTO.Document as FArrayList;

            if (null != feeList && feeList.Count > 0)
            {
                this.tableDatasource = feeList.Cast <CiOrdFeeSrvDTO>().ToArray(); // 控件不支持,不应该直接改写对象
            }
            else
            {
                //this.errorMsgString = "获取费用清单数据失败";
                tableDatasource.Clear();
            }
            return(false);
        }
コード例 #6
0
        /// <summary>
        /// 处理参照过滤逻辑
        /// </summary>
        /// <param name="filedName"></param>
        /// <param name="sbm"></param>
        /// <returns></returns>
        public override string OnRefFilterData(string filedName, StringObjectMap sbm)
        {
            string whereString = "";

            if (filedName.Equals("Name_srv"))
            {
                if (!sbm.ContainsKey("code_entp"))
                {
                    sbm.Add("code_entp", "00");
                }
                if (!sbm.ContainsKey("id_pripat"))
                {
                    sbm.Add("id_pripat", this.ent4BannerDTO.Id_pripat);
                }
                CiEnContextDTO ciEnContextDTO = BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO;
                string         id_hp          = ciEnContextDTO.Id_hp_default;
                if (!string.IsNullOrEmpty(id_hp))
                {
                    if (!sbm.ContainsKey("id_hp"))
                    {
                        sbm.Add("id_hp", id_hp);
                    }
                }
                return(string.Format(" Sd_srvtp ='{0}' and quan_med is not null", strSd_srvtp));
            }
            else if (filedName.Equals("Name_mp_dep") && !string.IsNullOrWhiteSpace(strMpDepFilter))
            {
                whereString = string.Format("id_dep in ({0})", strMpDepFilter);
            }
            else
            {
                whereString = base.OnRefFilterData(filedName, sbm);
            }
            return("");
        }
コード例 #7
0
ファイル: DrugUtils.cs プロジェクト: fhis/order.client
        /// <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));
        }
コード例 #8
0
        /// <summary>
        /// 根据医嘱获取对应的医嘱模板拷贝对象
        /// </summary>
        /// <param name="ordIds">医嘱id集合</param>
        /// <returns></returns>
        public MoreEmsParamDTO GetMoreEmsParam(string[] ordIds)
        {
            // 获取当前上下文就诊环境,需要包含医嘱来源、医疗单类型属性
            CiEnContextDTO ciEnContext = CiEnContextUtil.GetCiEnContext(bannerDTO, EmsAppModeEnum.SVEMSAPPMODE, OrSourceFromEnum.IIHPATIPASTHELPER, context);

            return(ciOrdQryService.getHistoryMoreEmsParam(ordIds, ciEnContext));
        }
コード例 #9
0
        /// <summary>
        /// 费用页签加载时,判断适应症和自费标识
        /// </summary>
        /// <param name="drug"></param>
        /// <param name="ordDrug"></param>
        /// <returns></returns>
        public static CiEmsSrvDTO HandleCiEmsSrvDTOHPInfo(CiEmsSrvDTO ciemssrvdto)
        {
            //非医保或者保外诊断时
            CiEnContextDTO ciEnContextDTO = BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO;
            bool           isHpEnable     = false;

            //是否启用医保标志
            if (BaseEmsView.BaseEmsInfoContext.ContainsKey("isMedicalInsuranceEnable"))
            {
                isHpEnable = (bool)BaseEmsView.BaseEmsInfoContext["isMedicalInsuranceEnable"];
            }
            int opMedInsuranceAuditHandel = 99;

            if (BaseEmsView.BaseEmsInfoContext.ContainsKey("opMedInsuranceAuditHandel"))
            {
                opMedInsuranceAuditHandel = (int)BaseEmsView.BaseEmsInfoContext["opMedInsuranceAuditHandel"];
            }

            if (!string.IsNullOrEmpty(ciEnContextDTO.Id_hp) &&
                true == ciEnContextDTO.Fg_hpfundpay && HpBeyondEnum.HPDIAG.Equals(ciEnContextDTO.Eu_hpbeyond) /*保内诊断*/ && isHpEnable && opMedInsuranceAuditHandel == 0)
            {
            }
            else
            {
                ciemssrvdto.Fg_selfpay = true;  //自费
                ciemssrvdto.Fg_treat   = false; //非医保适应症
            }
            return(ciemssrvdto);
        }
コード例 #10
0
        /// <summary>
        /// 获取特殊病提示消息
        /// </summary>
        /// <param name="ctx">患者就诊环境</param>
        /// <param name="drugList">EmsOrDrug对象集合</param>
        /// <returns>特殊病诊断提示信息</returns>
        public string GetSpecialDiseaseJudgeRst(CiEnContextDTO ctx, List <EmsOrDrug> drugList)
        {
            FMap mmMap = new FMap();

            // 非特殊病患者,直接返回空串
            if (!CiEnContextUtil.IsHpSpecillPat(ctx.Ent4BannerDTO))
            {
                return("");
            }

            foreach (EmsOrDrug drug in drugList)
            {
                if (drug.Fg_selfpay == FBoolean.True)
                {
                    continue;
                }
                mmMap.Add(drug.Id_mm, drug.Name_srv + "[" + drug.Name_mm + "]");
            }
            if (mmMap.Count == 0)
            {
                return("");
            }

            string specialMsg = this.ciOrdMedicalInsuranceService.GetSpecialDiseaseJudgeRst(ctx, mmMap);

            if (!string.IsNullOrEmpty(specialMsg))
            {
                specialMsg += "请录入!";
            }

            return(specialMsg);
        }
コード例 #11
0
        /// <summary>
        /// 分析医嘱用药的合理情况
        /// </summary>
        /// <param name="ent4BannerDTO">banner数据</param>
        /// <param name="ciords">待校验用药合理性的医嘱</param>
        /// <param name="msg">验证结果的提示信息</param>
        /// <returns>验证状态 0 无问题,1 一般问题, 2 严重问题</returns>
        public override int AnalysisPresResult(CiEnContextDTO ctxDTO, CiOrderDO[] ciords, out string msg)
        {
            drugMonitor.BeginNewPres();
            msg = "";
            if (ciords == null || ciords.Length == 0)
            {
                return(DaTongConstant.RS_NOT_VERIFIED);
            }

            List <CiOrderDO> ciordList = new List <CiOrderDO>();
            List <string>    idOrList  = new List <string>();

            // 遍历医嘱,只需要校验药品的医嘱
            foreach (CiOrderDO ciorder in ciords)
            {
                if (ciorder.Sd_srvtp.StartsWith(BdSrvDictCodeConst.SD_SRVTP_DRUG)) // 药品的进行检查
                {
                    ciordList.Add(ciorder);
                    idOrList.Add(ciorder.Id_or);
                }
            }

            // 如果不存在药品,返回不需要验证
            if (ciordList.Count == 0)
            {
                return(DaTongConstant.RS_NOT_VERIFIED);
            }

            PresInfo presInfo = GetPresInfo(ctxDTO, idOrList);

            // 进行处方分析
            return(drugMonitor.AnalysisPres(presInfo, out msg));
        }
コード例 #12
0
        /// <summary>
        /// 查询医保规则
        /// </summary>
        /// <param name="id_srv"></param>
        /// <param name="id_mm"></param>
        /// <param name="patinfo"></param>
        /// <returns></returns>
        public BdHpIndicationDTO[] getBdHpIndicationDTO(string[] id_srvs, string[] id_mms, Ent4BannerDTO patinfo)
        {
            if (id_srvs == null || patinfo == null || string.IsNullOrEmpty(patinfo.Id_hp) || true != patinfo.Fg_hpfundpay)
            {
                return(null);
            }
            CiEnContextDTO   contextdto = CiEnContextUtil.GetCiEnContext(patinfo);
            ICiOrdQryService service    = XapServiceMgr.find <ICiOrdQryService>();

            BdHpIndicDTO[] bdhpindic = service.getBdHpIndicationDTOs(id_srvs, id_mms, contextdto);
            if (bdhpindic != null)
            {
                BdHpIndicationDTO[] bdHpIndications = new BdHpIndicationDTO[bdhpindic.Length];
                for (int i = 0; i < bdhpindic.Length; i++)
                {
                    BdHpIndicationDTO bdHpIndication = new BdHpIndicationDTO();
                    LogicEx.GetInstance().CopyTo(bdhpindic[i], bdHpIndication);
                    bdHpIndications[i] = bdHpIndication;
                }
                return(bdHpIndications);
            }
            else
            {
                return(null);
            }
        }
コード例 #13
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
            {
            }
        }
コード例 #14
0
        /// <summary>
        /// 获取特殊病判断结果
        /// </summary>
        /// <param name="ctx">就诊环境</param>
        /// <param name="id_mms">物品id数组</param>
        /// <returns></returns>
        public FMap GetSpecialDiseaseJudgeRstMap(CiEnContextDTO ctx, string[] id_mms)
        {
            object[] param = { ctx, id_mms };
            si.url = url_r;
            FMap rtn = si.invoke <FMap>("getSpecialDiseaseJudgeRstMap", param.ToArray());

            return(rtn);
        }
コード例 #15
0
 /// <summary>
 ///  医嘱模板多医疗单
 /// </summary>
 /// <param name="envinfo"></param>
 /// <param name="ortplItemDO"></param>
 /// <returns></returns>
 public MoreEmsParamDTO getMoreEmsParamDTO(CiEnContextDTO envinfo, OrTplNItmDO[] ortplItemDO)
 {
     if (ortplItemDO == null || ortplItemDO.Length == 0)
     {
         return(null);
     }
     return(OrderQryService.getMoreEmsParamDTO(envinfo, ortplItemDO));
 }
コード例 #16
0
        /// <summary>
        /// 获取特殊病判断结果
        /// </summary>
        /// <param name="ctx">就诊环境</param>
        /// <param name="mmMap">物品对象集合key 物品id ,value 物品名称</param>
        /// <returns>医保特殊病判断结果信息</returns>
        public string GetSpecialDiseaseJudgeRst(CiEnContextDTO ctx, FMap mmMap)
        {
            object[] param = { ctx, mmMap };
            si.url = url_r;
            string rtn = si.invoke <string>("getSpecialDiseaseJudgeRst", param.ToArray());

            return(rtn);
        }
コード例 #17
0
        public ValidateRtnInfoDTO ciOrderSign(string[] id_ors, CiEnContextDTO ciEnContextDTO)
        {
            object[] param = new object[] { id_ors, ciEnContextDTO };
            si.url = url_r;
            ValidateRtnInfoDTO rtn = si.invoke <ValidateRtnInfoDTO>("ciOrderSign", param);

            return(rtn);
        }
コード例 #18
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);
        }
コード例 #19
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);
        }
コード例 #20
0
        public virtual ExpenseModel LoadEmsOrDrug(EmsOrDrug newDrug)
        {
            // if (nCurrentSelIndex >= 0 && nCurrentSelIndex < tableDataSource.Count(p=>!p.IsDELETED))
            {
                // 填充默认值
                newDrug.Use_days       = 1;
                newDrug.Id_unit_sale   = newDrug.Id_unit_med;
                newDrug.Name_unit_sale = newDrug.Name_unit_med;
                newDrug.Fg_or          = false;
                newDrug.Fg_bl          = true;
                newDrug.Eu_sourcemd    = (int)OrSrvSourceFromEnum.PHYSIANFEEADD;
                #region 计算总量和价格
                newDrug.Quan_cur = this.GetLogicEx().getNotDrugTotal(
                    newDrug.Quan_med.ToDouble(),
                    newDrug.Id_freq,
                    newDrug.Freqct == null ? 1 : newDrug.Freqct.Value,
                    newDrug.Use_days == null ? 1 : newDrug.Use_days.Value);

                newDrug.Price      = this.GetLogicEx().getSrvNotMMPri(newDrug.Id_srv, newDrug.Id_pri);
                newDrug.Totalprice = newDrug.Price * newDrug.Quan_cur;
                #endregion
                FArrayList list = new FArrayList();
                //判断是否是保外诊断
                CiEnContextDTO ciEnContextDTO = BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO;
                //保外诊断标识
                string eu_hpbeyond = ciEnContextDTO.Eu_hpbeyond;

                if (ent4BannerDTO != null && true == ent4BannerDTO.Fg_hpfundpay && HpBeyondEnum.HPDIAG.Equals(ciEnContextDTO.Eu_hpbeyond) /*保内诊断*/)
                {
                    BdHpIndicationDTO bdhpindication = HpJudgeUtil.getInstance().getBdHpIndicationDTO(newDrug.Id_srv, newDrug.Id_mm, this.ent4BannerDTO);
                    if (bdhpindication != null)
                    {
                        newDrug.Fg_treat   = bdhpindication.Fg_indic;
                        newDrug.Id_hp      = bdhpindication.Id_hp;
                        newDrug.Sd_hpsrvtp = bdhpindication.Sd_hpsrvtp;
                        newDrug.Id_hpsrvtp = bdhpindication.Id_hpsrvtp;
                        if (string.IsNullOrEmpty(bdhpindication.Id_hpsrvtp))
                        {
                            newDrug.Id_hpsrvtp = HpJudgeUtil.IdHpSrvtpFromSdHpSrvtp(bdhpindication.Sd_hpsrvtp);
                        }
                        newDrug.Name_hpsrvtp     = HpJudgeUtil.NameHpSrvtpFromSdHpSrvtp(bdhpindication.Sd_hpsrvtp);
                        newDrug.Fg_selfpay       = HpJudgeUtil.getInstance().isSelfPay(bdhpindication);
                        newDrug.Fg_hpindicjudged = HpJudgeUtil.getInstance().getFg_hpindicjudged(bdhpindication);
                        list.Add(bdhpindication);
                    }
                }
                else if (ciEnContextDTO.Fg_hpfundpay == null || !(bool)ciEnContextDTO.Fg_hpfundpay || (ciEnContextDTO.Eu_hpbeyond != null && !ciEnContextDTO.Eu_hpbeyond.Equals(HpBeyondEnum.HPDIAG)))
                {
                    newDrug.Fg_treat   = false;
                    newDrug.Fg_selfpay = true;
                }
                newDrug.BdHpIndicationDTO = list;
                #region 计算执行科室
                CalculateDeptMp(newDrug);
                #endregion
            }
            return(this);
        }
コード例 #21
0
        /// <summary>
        /// 构造临床就诊上下文信息
        /// </summary>
        /// <param name="ent4BannerDTO">当前患者的banner对象</param>
        /// <param name="emsAppModeEnum">医疗单类型:简洁版、智慧版</param>
        /// <param name="eu_orsrcmdtp">医嘱数据来源</param>
        /// <param name="context">当前上下文环境</param>
        /// <returns>CiEnContextDTO 包含医疗单类型属性</returns>
        public static CiEnContextDTO GetCiEnContext(Ent4BannerDTO ent4BannerDTO, EmsAppModeEnum emsAppModeEnum, string eu_orsrcmdtp, BaseContext context = null)
        {
            // TODO 需要增加校验枚举类型是否在枚举对象属性中 OrSourceFromEnum

            CiEnContextDTO conetxtDTO = GetCiEnContext(ent4BannerDTO, emsAppModeEnum, context);

            conetxtDTO.Eu_orsrcmdtp = eu_orsrcmdtp; // 医疗单应用场景
            return(conetxtDTO);
        }
コード例 #22
0
        public ValidateRtnInfoDTO ciOrderSignStep1(FMap2 map, string code_entp, CiEnContextDTO ciEnContextDTO)
        {
            //throw new NotImplementedException();
            object[] param = new object[] { map, code_entp, ciEnContextDTO };
            si.url = url_r;
            ValidateRtnInfoDTO rtn = si.invoke <ValidateRtnInfoDTO>("ciOrderSignStep1", param);

            return(rtn);
        }
コード例 #23
0
        /// <summary>
        /// 获取当前就诊环境
        /// </summary>
        /// <returns></returns>
        protected virtual CiEnContextDTO GetCiEnContextParam()
        {
            // 获取当前的业务环境变量,用于助手传递到后台,医疗单类型在AssistantBtnBaseView的实现类中设置,医嘱来源属性Eu_orsrcmdtp, 在各个助手(使用处)设置
            CiEnContextDTO ciEnContext = CiEnContextUtil.GetCiEnContext(this.ent4BannerDTO, this.Context);

            this.SetCustomCiEnContext(ciEnContext);

            return(ciEnContext);
        }
コード例 #24
0
        /// <summary>
        /// 保存费用清单
        /// </summary>
        /// <param name="szSrv"></param>
        /// <returns></returns>
        public CiEmsSrvDTO[] saveOrdFeeBill(CiEmsSrvDTO[] szSrv, CiEnContextDTO ctx)
        {
            List <object> param = new List <object>();

            param.Add(szSrv);
            param.Add(ctx);
            si.url = url_r;
            return(si.invokeList <CiEmsSrvDTO>("saveOrdFeeBill", param.ToArray()));
        }
コード例 #25
0
        /// <summary>
        /// 装载费用项目信息
        /// </summary>
        /// <param name="newDrug"></param>
        /// <returns></returns>
        public virtual EmsFeebillViewModel LoadEmsFeeSrv(CiOrdFeeSrvDTO newDrug)
        {
            {
                // 填充默认值
                newDrug.setAttrVal <int>("Use_days", 1);
                newDrug.Id_unit_sale   = newDrug.Id_unit_med;
                newDrug.Name_unit_sale = newDrug.Name_unit_med;
                newDrug.Fg_or          = false;
                newDrug.Fg_bl          = true;
                newDrug.Eu_sourcemd    = (int)OrSrvSourceFromEnum.PHYSIANFEEADD;
                #region 计算总量和价格
                newDrug.Quan_total_medu = this.GetLogicEx().getNotDrugTotal(
                    newDrug.Quan_med.ToDouble(),
                    newDrug.Id_freq,
                    newDrug.Freqct == null ? 1 : newDrug.Freqct.Value,
                    newDrug.getAttrVal <int>("Use_days"));

                newDrug.Price   = this.GetLogicEx().getSrvNotMMPri(newDrug.Id_srv, newDrug.Id_primd, null, GetEnt4BannerDTO().Id_pripat);
                newDrug.Amt_cur = newDrug.Price * newDrug.Quan_cur;
                #endregion
                FArrayList list = new FArrayList();
                //判断是否是保外诊断
                CiEnContextDTO ciEnContextDTO = BaseEmsView.BaseEmsInfoContext["CiEnContextDTO"] as CiEnContextDTO;
                //保外诊断标识
                string eu_hpbeyond = ciEnContextDTO.Eu_hpbeyond;

                if (ent4BannerDTO != null && true == ent4BannerDTO.Fg_hpfundpay && HpBeyondEnum.HPDIAG.Equals(ciEnContextDTO.Eu_hpbeyond) /*保内诊断*/)
                {
                    BdHpIndicationDTO bdhpindication = HpJudgeUtil.getInstance().getBdHpIndicationDTO(newDrug.Id_srv, newDrug.Id_mm, this.ent4BannerDTO);
                    if (bdhpindication != null)
                    {
                        newDrug.Fg_treat   = bdhpindication.Fg_indic;
                        newDrug.Id_hp      = bdhpindication.Id_hp;
                        newDrug.Sd_hpsrvtp = bdhpindication.Sd_hpsrvtp;
                        newDrug.Id_hpsrvtp = bdhpindication.Id_hpsrvtp;
                        if (string.IsNullOrEmpty(bdhpindication.Id_hpsrvtp))
                        {
                            newDrug.Id_hpsrvtp = HpJudgeUtil.IdHpSrvtpFromSdHpSrvtp(bdhpindication.Sd_hpsrvtp);
                        }
                        newDrug.Name_hpsrvtp = HpJudgeUtil.NameHpSrvtpFromSdHpSrvtp(bdhpindication.Sd_hpsrvtp);
                        newDrug.Fg_selfpay   = HpJudgeUtil.getInstance().isSelfPay(bdhpindication);
                        list.Add(bdhpindication);
                    }
                }
                else if (ciEnContextDTO.Fg_hpfundpay == null || !(bool)ciEnContextDTO.Fg_hpfundpay || (ciEnContextDTO.Eu_hpbeyond != null && !ciEnContextDTO.Eu_hpbeyond.Equals(HpBeyondEnum.HPDIAG)))
                {
                    newDrug.Fg_treat   = false;
                    newDrug.Fg_selfpay = true;
                }
                newDrug.setAttrVal <FArrayList>("BdHpIndicationDTO", list);
                #region 计算执行科室
                CalculateDeptMp(newDrug);
                #endregion
            }
            return(this);
        }
コード例 #26
0
        public FArrayList loadEms4Lis(CiEnContextDTO ctx, String id_srv)
        {
            List <object> param = new List <object>();

            param.Add(ctx);
            param.Add(id_srv);

            si.url = url_r;
            return(si.invoke <FArrayList>("loadEms4Lis", param.ToArray()));
        }
コード例 #27
0
        /// <summary>
        /// 医嘱诊断保存
        /// </summary>
        /// <param name="diDTO"></param>
        /// <returns></returns>
        public DIDTO[] SaveCiDiDtos(DIDTO[] diDTO, string des, CiEnContextDTO ciEnContextDto)
        {
            List <object> param = new List <object>();

            param.Add(diDTO);
            param.Add(des);
            param.Add(ciEnContextDto);
            si.url = url;
            DIDTO[] rtn = si.invokeList <DIDTO>("SaveCiDiDto", param.ToArray());
            return(rtn);
        }
コード例 #28
0
        public OrderTemplateRstDTO getOrTemplateCache(String[] id_ortmpls, CiEnContextDTO ctx)
        {
            List <object> param = new List <object>();

            param.Add(id_ortmpls);
            param.Add(ctx);
            si.url = url_r;
            var result = si.invoke <OrderTemplateRstDTO>("getOrTemplateCache", param.ToArray());

            return(result);
        }
コード例 #29
0
        /// <summary>
        /// 保存诊断信息
        /// </summary>
        /// <param name="id_ent">就诊id</param>
        /// <param name="itemDOList">界面选取的诊断集合</param>
        public DIDTO[] SaveCiDiagItemDOs(Ent4BannerDTO bannerDTO, List <CiDiagItemDO> itemDOList)
        {
            DIDTO[]      didtos  = null;
            List <DIDTO> listDto = this.GetDIDTOList(bannerDTO, itemDOList);

            if (listDto != null && listDto.Count > 0)
            {
                CiEnContextDTO ciEnContextDto = CiEnContextUtil.GetCiEnContext(bannerDTO, this.context);
                didtos = mainService.SaveCiDiDtos(listDto.ToArray(), "", ciEnContextDto);
            }
            return(didtos);
        }
コード例 #30
0
        /// <summary>
        /// 保存时提示信息 再次保存 TODO
        /// </summary>
        /// <param name="emstype"></param>
        /// <param name="ciEnContextDTO"></param>
        /// <returns></returns>
        public CiOrderDO  AgainSaveOrder(String emstype, CiEnContextDTO ciEnContextDTO)
        {
            object[] param = new object[] { emstype, ciEnContextDTO };
            si.url = url_r;
            CiorderAggDO rtn = si.invoke <CiorderAggDO>("AgainSaveOrder", param.ToArray());

            if (rtn != null)
            {
                return(rtn.getParentDO());
            }
            return(null);
        }