void radioGroup_ValueTextChanged(object sender, EventArgs e) { XRadioboxGroup radioBox = (sender as XRadioboxGroup); bool hpTreatAllSelect = true; if (radioBox.ValueText == ReportCodeDict.HP_TREAT_ALL_SELECT) { hpTreatAllSelect = true; } else { hpTreatAllSelect = false; } RowCollectionBase rows = gridView.DataTable.Rows; if (rows != null) { List <XDataRow> rowsList = rows.DataRowList; foreach (XDataRow row in rowsList) { OrdSrvDO orSrvDO = row.RowDataSource as OrdSrvDO; // 丙类的服务项目自费,非自费单选按钮状态设置为不可操作 if (orSrvDO.Sd_hpsrvtp == HpDicCodeConst.SD_HPSRVTP_CLASS_C) { continue; } XCheckboxGroup cell = row.ColumnCellDict["Eu_hpdoctorjudge"] as XCheckboxGroup; cell.checFirst.Checked = hpTreatAllSelect; cell.checSecond.Checked = !hpTreatAllSelect; orSrvDO.Eu_hpdoctorjudge = hpTreatAllSelect == true ? 1 : 2; } } }
public string GetOrdDes(OrdSrvDO srvDo) { string des = srvDo.Name + "" + srvDo.Quan_medu + "" + srvDo.Medu_name; des += "\n" + srvDo.Route_name + "" + srvDo.Freq_name; return(des); }
protected override EmsOrDrug EmsOrDrugWithOrdSrvDO(OrdSrvDO ordSrv, int useDays = 1, ordsrvmm.d.OrdSrvMmDO srvMm = null) { EmsOrDrug tmpDrug = base.EmsOrDrugWithOrdSrvDO(ordSrv, useDays, srvMm); tmpDrug.Quan_cur = 1; tmpDrug.Totalprice = tmpDrug.Quan_cur * tmpDrug.Price; return(tmpDrug); }
/// <summary> /// 根据id值查找临床医嘱AggDO数据 /// </summary> /// <param name="id"></param> /// <returns></returns> public OrdSrvDO findById(String id) { #region "缓存处理" if (ch.IsCached("findById")) { return(ch.findById(id)); } #endregion List <object> param = new List <object>(); param.Add(id); si.url = url_r; OrdSrvDO rtn = si.invoke <OrdSrvDO>("findById", param.ToArray()); return(rtn); }
/// <summary> /// /// </summary> /// <param name="emsHeadDO"></param> /// <param name="srvList"></param> public void SetOpORSrv(EmsUIDTO emsHeadDO, List <OrdSrvDO> srvList) { OrdSrvDO srv = new OrdSrvDO(); if (agg.getOrdSrvDO() != null) { OrdSrvDO srvtmp = agg.getOrdSrvDO().FirstOrDefault(p => p.Id_orsrv == emsHeadDO.Emsapbt.Id_orsrv); if (srvtmp != null) { srv = srvtmp; srv.Status = DOStatus.UPDATED; } } orDataBing.SaveOpOrSrvDataBing(emsHeadDO, srv); srvList.Add(srv); }
public void SetCiORSrv(CiorderAggDO agg, EmsUIDTO emsHeadDO, List <OrdSrvDO> srvList) { int i = 1; //emsHeadDO.Emsaplab.EmsOrObsList emsHeadDO.Emsaplab.EmsOrObsList.ToList().ForEach(p => { //把检查的项目 对照成服务 OrdSrvDO srv = new OrdSrvDO(); if (emsHeadDO.Status == DOStatus.UPDATED) { //srv = agg.getOrdSrvDO()[emsHeadDO.Emsdrugs.EmsOrDrugList.IndexOf(p)]; //srv = agg.getOrdSrvDO().First(x => x.Id_orsrv == p.Id_orsrv);//找到数据库已经存在的 if (srv == null)//数据库找不到 可能是修改时候 新增了 药品 { srv = new OrdSrvDO(); } } srv.Id_pat = emsHeadDO.PatInfo.Id_pat; //患者 srv.Id_entp = emsHeadDO.PatInfo.Id_entp; //就诊类型 srv.Code_entp = emsHeadDO.PatInfo.Code_entp; //就诊类型编码 srv.Id_en = emsHeadDO.PatInfo.Id_ent; //就诊 srv.Sortno = i; //TODO: 顺序应该是机制生成的 srv.Id_srvtp = emsHeadDO.MedSrvDO.Id_srvtp; // 服务类型 srv.Sd_srvtp = emsHeadDO.MedSrvDO.Sd_srvtp; //服务类型编码 srv.Id_srv = emsHeadDO.MedSrvDO.Id_srv; //服务项目 srv.Name = emsHeadDO.Emsaplab.Name_srv; //服务项目名称 srv.Name = p.Name_srv; //agg.getParentDO().Content_or = LogicEx.GetInstance().GetOrDes(emsHeadDO); agg.getParentDO().Dt_entry = emsHeadDO.Emsaplab.Dt_plan;//每条检查 不同的属性再进行独立赋值 srv.Name = p.Name_srv; agg.getParentDO().Dt_entry = emsHeadDO.Emsaplab.Dt_plan; agg.getParentDO().Dt_stop = CommonExtentions.NowTime(this); agg.getParentDO().Dt_effe = CommonExtentions.NowTime(this); //agg.getParentDO().Content_or = emsHeadDO.Emsaplab.Name_samptp; //待完善 srvList.Add(srv); i++; }); }
/// <summary> /// 检查的 ci_or_srv 的数据 /// </summary> /// <param name="agg"></param> /// <param name="status"></param> /// <param name="emsHeadDO"></param> /// <param name="srvList"></param> public void SetCiORSrv(CiorderAggDO agg, EmsUIDTO emsHeadDO, List <OrdSrvDO> srvList) { int i = 1; XapDataList <EmsObsLap> list = emsHeadDO.Emsapobs.EmsOrObsList; foreach (EmsObsLap p in list) { //把检查的项目 对照成服务 OrdSrvDO srv = new OrdSrvDO(); if (emsHeadDO.Status == DOStatus.UPDATED) { //srv = agg.getOrdSrvDO()[emsHeadDO.Emsdrugs.EmsOrDrugList.IndexOf(p)]; srv = agg.getOrdSrvDO().FirstOrDefault(x => x.Id_orsrv == p.Id_srv); //找到数据库已经存在的 } if (srv == null) //数据库找不到 可能是修改时候 新增了 药品 { srv = new OrdSrvDO(); } srv.Id_pat = emsHeadDO.PatInfo.Id_pat; //患者 srv.Id_entp = emsHeadDO.PatInfo.Id_entp; //就诊类型 srv.Code_entp = emsHeadDO.PatInfo.Code_entp; //就诊类型编码 srv.Id_en = emsHeadDO.PatInfo.Id_ent; //就诊 srv.Sortno = i; //TODO: 顺序应该是机制生成的 srv.Id_srvtp = emsHeadDO.MedSrvDO.Id_srvtp; // 服务类型 srv.Sd_srvtp = emsHeadDO.MedSrvDO.Sd_srvtp; //服务类型编码 srv.Id_srv = emsHeadDO.MedSrvDO.Id_srv; //服务项目 srv.Name = emsHeadDO.Emsapobs.Name_srv; //服务项目名称 srv.Name = p.Name_srv; agg.getParentDO().Dt_entry = emsHeadDO.Emsapobs.Dt_plan; //每条检查 不同的属性再进行独立赋值 srv.Name = p.Name_srv; agg.getParentDO().Dt_entry = emsHeadDO.Emsapobs.Dt_plan; agg.getParentDO().Dt_stop = emsHeadDO.Emsapobs.Dt_plan; agg.getParentDO().Dt_effe = emsHeadDO.Emsapobs.Dt_plan; //agg.getParentDO().Content_or = cof.GetOrDes(emsHeadDO, emsType); //待完善 srvList.Add(srv); i++; } }
/// <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); }
public void CreatPres(string id_pat) { //TODO:执行之前 只针对未设置处方的,只生成新的处方,不进行修改,暂时只是按照 分类进行分方,并没有对每个方子里的条数 进行限制 OrdSrvDO[] orderSrvs = modelSrv.GetSrvs(id_pat);//代表已经获取该患者的所有医嘱服务 参数 患者id //分组 医嘱服务 var v = from c in orderSrvs group c by new { SD_SRVTP = c.Sd_srvtp } into s select new { SD_SRVTP = s.Select(p => p.Sd_srvtp).First(), ordSrvCount = s.Select(p => p.Sd_srvtp).Count() }; v.ToList().ForEach(p => { OrdSrvDO srvtem = orderSrvs.First(t => t.Sd_srvtp == p.SD_SRVTP); string ci_code = "PRES" + CommonExtentions.NowTime(this).Year + CommonExtentions.NowTime(this).Month + CommonExtentions.NowTime(this).Day + CommonExtentions.NowTime(this).Hour + CommonExtentions.NowTime(this).Minute + CommonExtentions.NowTime(this).Second + CommonExtentions.NowTime(this).Millisecond + ran.Next(0, 100);//code 生成机制 CiPresDO ci = new CiPresDO() { //-此为处方所有字段,用到那个 解开注释加哪个 Id_pati = srvtem.Id_pat, Id_entp = srvtem.Id_entp, // "0001AA10000000004O80",//TODO: 临时数据, Code_entp = srvtem.Code_entp, // "01", Id_en = srvtem.Id_en, //"0001AA1000000001OM3N",//TODO: 临时数据, Id_di = "患者的诊断", //患者诊断, //Id_diitm, //Str_id_di, //Str_name_di, Id_srvtp = srvtem.Id_srvtp, Sd_srvtp = p.SD_SRVTP, //服务类型编码, Id_prestp = "01", //TODO:处方类型 后面改正 Sd_prestp = p.SD_SRVTP, Code = ci_code, Name = srvtem.Id_pat + "处方", Id_dep_or = UserManager.getInstance().CurrentDept.Id_dep, //开立科室 Id_emp_or = UserManager.getInstance().CurrentUser.Id_user, //开立医生 Dt_entry = CommonExtentions.NowTime(this), //开立日期 //Fg_bb, //No_bb, //Id_bb, Id_route = srvtem.Id_route,//用法, Id_routedes = srvtem.Id_routedes, //Id_boil, //Id_boildes, //Fg_charge, Fg_dispense = false,//发药标识, //Id_backtp, //Sd_backtp, //Fg_back, //Id_emp, //Fg_prn, //Fg_prn_add, //Id_pres_rel_add, Id_su_bl = "1", //TODO:记账状态 先假数据 Sd_su_bl = "1", //记账状态, //Fg_makeup, Createdby = UserManager.getInstance().CurrentUser.Createdby, Createdtime = UserManager.getInstance().CurrentUser.Createdtime, Modifiedby = UserManager.getInstance().CurrentUser.Modifiedby, Modifiedtime = UserManager.getInstance().CurrentUser.Modifiedtime, //Ds, //Sv }; string id_pres = Save(ci)[0].Id_pres; orderSrvs.ToList().ForEach(x => { if (x.Sd_srvtp == p.SD_SRVTP) { x.Id_pres = id_pres; x.Status = DOStatus.UPDATED; } }); }); //所有的医嘱单已经生成完毕 更新srv modelSrv.Save(orderSrvs); }
void tabControl_DataDisplay(Object sender, XDataDisplayEventArgs e) { XDataRow row = sender as XDataRow; OrdSrvDO orSrvDO = row.RowDataSource as OrdSrvDO; orSrvDO.Eu_hpdoctorjudge = 0; if (orSrvDO.Indicitemid == null) { orSrvDO.Indicitemid = orSrvDO.Sd_srvtp; } GetSysParamDTO sysParamDto = SysParamUtils.getSysParam().SYS_PARAM_IsAdmintHpIndicJudgeFeeItemUnDrugOR; //0两个都不选,1:first选择,2:second选择 if (row != null && row.ColumnCellDict.ContainsKey("Eu_hpdoctorjudge")) { XCheckboxGroup cell = row.ColumnCellDict["Eu_hpdoctorjudge"] as XCheckboxGroup; // 如果医保目录为丙类的不允许编辑 cell.Enabled = orSrvDO.Sd_hpsrvtp != HpDicCodeConst.SD_HPSRVTP_CLASS_C; if (cell.Enabled) { if (sysParamDto.OrgParam != null && sysParamDto.OrgParam.Equals("true")) { cell.Enabled = this.getCanEdit(); } else { if (this.orderType != null && (this.orderType.StartsWith("02") || this.orderType.StartsWith("03"))) { cell.Enabled = false; } else { cell.Enabled = this.getCanEdit(); } } } //cell.checFirst.Text = "符合-医保 全选"; //cell.checSecond.Text = "不符合-自费 全选"; cell.checFirst.Text = "符合-医保"; cell.checSecond.Text = "不符合-自费"; //待判断 if (orSrvDO.Fg_hpindicjudged == (int)HpIndicJudgeEnum.WAITINGJUDGE) { if (orSrvDO.Fg_indic != null) { //if (orSrvDO.Fg_indic == true) //{ // cell.checFirst.ForeColor = Color.Red; //} //else { // cell.checSecond.ForeColor = Color.Red; //} } orSrvDO.Eu_hpdoctorjudge = 0; }//已判断 else { if (orSrvDO.Fg_indic == null) { // 两个都不选中,该值会设置适应,非适应都不选中 orSrvDO.Eu_hpdoctorjudge = 0; //cell.checFirst.Checked = false; //cell.checSecond.Checked = false; } else { bool firChecked = FBoolean.True == orSrvDO.Fg_indic && FBoolean.False == orSrvDO.Fg_selfpay; //bool secChecked = FBoolean.False == orSrvDO.Fg_indic || FBoolean.True == orSrvDO.Fg_selfpay; if (firChecked) { // 两个都不选中,该值会设置适应症选中 orSrvDO.Eu_hpdoctorjudge = 1; } else { // 两个都不选中,该值会设置非适应症选中 orSrvDO.Eu_hpdoctorjudge = 2; } } } } }
/// <summary> /// /// </summary> /// <param name="drug"></param> /// <param name="ordSrv"></param> /// <param name="useDays"></param> /// <param name="srvMm"></param> /// <returns></returns> protected virtual EmsOrDrug EmsOrDrugWithOrdSrvDO(OrdSrvDO ordSrv, int useDays = 1, OrdSrvMmDO srvMm = null) { EmsOrDrug drug = new EmsOrDrug(); drug.Code_mm = (srvMm != null ? srvMm.Code_mm : null); drug.Code_srv = ordSrv.Code_srv; drug.Des = ordSrv.Note_srv; drug.Id_srv_src = ordSrv.Id_srv_src; // 服务所属来源 drug.Id_boil = ordSrv.Id_boil; drug.Name_boil = ordSrv.Boil_name; drug.Id_routedes = ordSrv.Id_routedes; drug.Name_routedes = ordSrv.Routedes_name; drug.Priby = ordSrv.Priby; drug.Id_pri = ordSrv.Id_primd; // drug.Fact_count drug.Factor_cb = (srvMm != null ? srvMm.Factor : null); drug.Factor_mb = (srvMm != null ? srvMm.Factor_mb : null); //drug.Fg_anti = ordSrv.Fg_anti; drug.Fg_bl = ordSrv.Fg_bl; // drug.Fg_chk = ordSrv drug.Fg_ctm = ordSrv.Fg_selfsrv; //自定义服务 drug.Fg_dose_anoma = ordSrv.Fg_dose_anoma; drug.Fg_mm = ordSrv.Fg_mm; drug.Fg_otc = (srvMm != null ? srvMm.Fg_otc : null); // drug.Fg_pois = drug.Fg_propc = ordSrv.Fg_propc; drug.Fg_self = ordSrv.Fg_self; drug.Fg_selfpay = ordSrv.Fg_selfpay; drug.Fg_skintest = ordSrv.Fg_skintest; drug.Fg_treat = ordSrv.Fg_indic; // drug.Fg_urgent = ordSrv drug.Fg_or = ordSrv.Fg_or; drug.Fg_bl = ordSrv.Fg_bl; drug.Eu_sourcemd = ordSrv.Eu_sourcemd; drug.Freqct = (ordSrv.Freqct == null ? 1 : ordSrv.Freqct); // drug.Hpdes = ordSrv drug.Id_anti = (srvMm != null ? srvMm.Id_anti : null); drug.Id_antipsy = (srvMm != null ? srvMm.Id_antipsy : null); drug.Id_boildes = ordSrv.Id_boildes; drug.Id_dosage = (srvMm != null ? srvMm.Id_dosage : null); // drug.Id_emsordrug = ordSrv drug.Id_freq = ordSrv.Id_freq; drug.Sd_frequnitct = ordSrv.Sd_frequnitct; // drug.Id_freqtime = ordSrv drug.Id_hp = ordSrv.Id_hp; drug.Id_hpsrvtp = ordSrv.Id_hpsrvtp; drug.Sd_hpsrvtp = ordSrv.Sd_hpsrvtp; drug.Limit = ordSrv.Des_hplimit; //判断医生是否已经处理医保信息的标识 drug.Fg_hpindicjudged = ordSrv.Fg_hpindicjudged; drug.Id_mm = (srvMm != null ? srvMm.Id_mm : null); drug.Id_mmtp = (srvMm != null ? srvMm.Id_mmtp : null); drug.Id_mp_dep = ordSrv.Id_dep_mp; drug.Id_or_rel = ordSrv.Id_or_rel; drug.Id_orsrv = ordSrv.Id_orsrv; drug.Id_pharm = (srvMm != null ? srvMm.Id_pharm : null); drug.Id_pois = (srvMm != null ? srvMm.Id_pois : null); drug.Id_pri = ordSrv.Id_primd; drug.Id_reltp = ordSrv.Id_reltp; drug.Id_route = ordSrv.Id_route; drug.Id_skintest_skip_reason = ordSrv.Id_skintest_skip_reason; drug.Id_srv = ordSrv.Id_srv; drug.Id_srvca = ordSrv.Id_srvca; drug.Id_srvmm = (srvMm != null ? srvMm.Id_orsrvmm : null); // drug.Id_srvskin = drug.Id_srvtp = ordSrv.Id_srvtp; drug.Id_pgku_cur = (srvMm != null ? srvMm.Id_pgku_cur : ordSrv.Id_medu); drug.Id_unit_base = (srvMm != null ? srvMm.Id_pgku_base : null); drug.Id_unit_med = ordSrv.Id_medu; drug.Id_unit_sale = (srvMm != null ? srvMm.Id_pgku_cur : ordSrv.Id_medu); drug.Id_val = (srvMm != null ? srvMm.Id_val : null); drug.Name_boildes = ordSrv.Boil_name; drug.Name_freq = ordSrv.Freq_name; // drug.Name_freqtime = ordSrv // drug.Name_hp = ordSrv.n drug.Name_hpsrvtp = ordSrv.Name_hpsrvtp; drug.Name_mm = (srvMm != null ? srvMm.Name_mm : null); // drug.Name_mmtp = drug.Name_mp_dep = ordSrv.Dep_mp_name; drug.Name_pgku_cur = (srvMm != null ? srvMm.Name_pgku_cur : ordSrv.Medu_name); drug.Name_unit_sale = (srvMm != null ? srvMm.Name_pgku_cur : ordSrv.Medu_name); // 零售单位 = 总量单位 = 剂量单位 drug.Name_route = ordSrv.Route_name; drug.Name_srv = ordSrv.Name; drug.Name_unit_base = (srvMm != null ? srvMm.Name_pgku_base : null); drug.Name_unit_med = ordSrv.Medu_name; // drug.Note_ext = ordSrv drug.Note_or = ordSrv.Note_srv; //当服务是物品时,单价应该从物品的do中取得 if (srvMm != null) { drug.Price = srvMm.Price_pgku_cur; } else { drug.Price = ordSrv.Pri; } // drug.Pycode = ordSrv drug.Use_days = useDays; if (srvMm != null && srvMm.Quan_den_base != null) { drug.Quan_base = (srvMm != null ? srvMm.Quan_num_base / srvMm.Quan_den_base : null); // 单次数量 } drug.Quan_med = (ordSrv.Quan_medu == null ? 1 : ordSrv.Quan_medu); if (ordSrv.Fg_mm != null && ordSrv.Fg_mm.Value && !ordSrv.Sd_srvtp.Equals(BdSrvDictCodeConst.SD_SRVTP_BLOODPROD_BLOODPROD_USEBLOOD)) { drug.Quan_cur = srvMm == null?null:srvMm.Quan_cur; } else { drug.Quan_cur = ordSrv.Quan_total_medu; } drug.Totalprice = (drug.Quan_cur == null ? 0 : drug.Quan_cur) * (drug.Price == null ? 0 : drug.Price); drug.Sd_anti = (srvMm != null ? srvMm.Sd_anti : null); drug.Sd_antipsy = (srvMm != null ? srvMm.Sd_antipsy : null); drug.Sd_dosage = (srvMm != null ? srvMm.Sd_dosage : null); drug.Sd_frequnitct = ordSrv.Sd_frequnitct; // drug.Sd_mmbind_ip = ordSrv drug.Sd_mmtp = (srvMm != null ? srvMm.Sd_mmtp : null); // drug.Sd_mupkgutp = ordSrv drug.Sd_pharm = (srvMm != null ? srvMm.Sd_pharm : null); drug.Sd_pois = (srvMm != null ? srvMm.Sd_pois : null); drug.Sd_reltp = ordSrv.Sd_reltp; drug.Sd_skintest_skip_reason = ordSrv.Sd_skintest_skip_reason; drug.Sd_srvtp = ordSrv.Sd_srvtp; drug.Sd_val = (srvMm != null ? srvMm.Sd_val : null); drug.Sortno = ordSrv.Sortno; drug.Spec_mm = (srvMm != null ? srvMm.Spec : null); // drug.Str_unit_pkg_ids = ordSrv drug.Sv = ordSrv.Sv; // drug.Vender = ordSrv return(drug); }
/// <summary> /// 将 OrdSrvDO 列表数据转化为 EmsOrDrug 数据 /// </summary> /// <param name="orAggDO"></param> /// <param name="tmpCacheSrv"></param> /// <returns></returns> protected virtual EmsOrDrug[] ToEmsOrDrugs(CiorderAggDO orAggDO, Dictionary <String, object> tmpCacheSrv = null, FMap srvMmMap = null, FMap blsrvFMap = null) { List <EmsOrDrug> szDrugs = new List <EmsOrDrug>(); // 处理附加项 for (int i = 0; i < orAggDO.ChildrenList.Count; ++i) { for (int index = 0; index < orAggDO.ChildrenList[i].Count; ++index) { OrdSrvDO obj = orAggDO.ChildrenList[i][index] as OrdSrvDO; // 获取医嘱医疗单相关信息 object ordSrvItem = null; // 过滤 Fg_bl = false 的项目 //if (obj.Fg_bl == null || obj.Fg_bl == false) //{ // continue; //} if (obj.Status == DOStatus.DELETED) { continue; } // 检阅 EmsOrDrug 内容,可以根据医疗单数据进行修正 EmsOrDrug drug = HandleEmsOrDrug( // 根据医嘱服务创建 UI EmsOrDrug 对象以及数据 EmsOrDrugWithOrdSrvDO( obj, orAggDO.getParentDO().Days_or != null ? orAggDO.getParentDO().Days_or.Value : 1, (srvMmMap != null && srvMmMap.Keys.Contains(obj.Id_srv)) ? srvMmMap[obj.Id_srv] as OrdSrvMmDO : null ), ordSrvItem ); //费用注意信息 if (blsrvFMap != null && blsrvFMap.Keys.Count != 0) { if (blsrvFMap.Keys.Contains(obj.Id_srv)) { drug.Des = (blsrvFMap[obj.Id_srv] as MedSrvDO).Des; } } // 计算总量和总金额 if (drug.Fg_mm != null && drug.Fg_mm.Value) { if (drug.Quan_cur == null) { GetLogicEx().GetDrugTotal(drug, null, ent4BannerDTO.Code_entp, true); } ////药品的总价=总量*单价 //if (drug.Quan_cur!=null&&drug.Price!=null) // drug.Totalprice = drug.Quan_cur * drug.Price; } else { drug.Quan_cur = obj.Quan_total_medu; if (drug.Quan_cur != null && drug.Price != null) { drug.Totalprice = drug.Quan_cur * drug.Price; } } //只有没有执行科室的时候才查询 if (string.IsNullOrEmpty(drug.Id_mp_dep) || string.IsNullOrEmpty(drug.Name_mp_dep)) { // 计算执行科室 CalculateDeptMp(drug); } szDrugs.Add(drug); } } return(szDrugs.ToArray()); }