public override void ProcessMessage() { this.OutObject = new ZD_ZHENLIAOXX_OUT(); string xiangMuGl = InObject.XIANGMUGL; //项目归类 string shuRuMLX = InObject.SHURUMLX; //输入码类型 string shuRuM = InObject.SHURUM; //输入码 string fenYuanDM = InObject.BASEINFO.FENYUANDM; //分院代码 string MenZhenZYQY = InObject.MENZHENZYQY; #region 基础入参判断 if (string.IsNullOrEmpty(xiangMuGl)) { xiangMuGl = "0"; } if (string.IsNullOrEmpty(shuRuM)) { shuRuM = "*"; } if (string.IsNullOrEmpty(fenYuanDM) || fenYuanDM == "0") { fenYuanDM = "1"; } if (string.IsNullOrEmpty(MenZhenZYQY)) { MenZhenZYQY = "0"; } if (MenZhenZYQY != "0" && MenZhenZYQY != "1" && MenZhenZYQY != "2") { throw new Exception("门诊住院启用标识获取不正确,请确保其值为 0:全院 1:门诊 2:住院"); } #endregion string zhenLiaoXXSQL = @"select * from v_zhenliaoxx_cx where (XIANGMUGL = {0} or 0 = {0}) and (shuruma1 like '{1}%' or '*' ='{1}') and ('0' = '{2}' or ('1' = '{2}' and Menzhensy = '1') or ('2' = '{2}' and Zhuyuansy = '1')) order by XIANGMUGL , XIANGMUMC "; DataTable dtZLXX = DBVisitor.ExecuteTable(string.Format(zhenLiaoXXSQL, xiangMuGl, shuRuM, MenZhenZYQY)); if (dtZLXX.Rows.Count > 0) { for (int i = 0; i < dtZLXX.Rows.Count; i++) { ZHENLIAOXX zlxx = new ZHENLIAOXX(); zlxx.XIANGMUGL = dtZLXX.Rows[i]["XIANGMUGL"].ToString(); //项目归类 zlxx.XIANGMUXH = dtZLXX.Rows[i]["XIANGMUXH"].ToString(); //项目序号 zlxx.XIANGMUCDDM = dtZLXX.Rows[i]["XIANGMUCDDM"].ToString(); //项目产品代码 zlxx.XIANGMUMC = dtZLXX.Rows[i]["XIANGMUMC"].ToString(); //项目名称 zlxx.XIANGMUGLMC = dtZLXX.Rows[i]["XIANGMUGLMC"].ToString(); //项目归类名称 zlxx.XIANGMUGG = dtZLXX.Rows[i]["XIANGMUGG"].ToString(); //项目规格 zlxx.XIANGMUDW = dtZLXX.Rows[i]["XIANGMUDW"].ToString(); //项目单位 zlxx.DANJIA = Convert.ToDecimal(dtZLXX.Rows[i]["danjia" + fenYuanDM].ToString()).ToString("0.00"); //单价 zlxx.YIBAODJ = dtZLXX.Rows[i]["YIBAODJ"].ToString(); //医保等级 zlxx.MENZHENQY = dtZLXX.Rows[i]["Menzhensy"].ToString(); //门诊启用 zlxx.ZHUYUANQY = dtZLXX.Rows[i]["Zhuyuansy"].ToString(); //住院启用 OutObject.ZHENLIAOMX.Add(zlxx); } } else { throw new Exception("未找到相关诊疗信息!"); } }
public override void ProcessMessage() { var fygl = InObject.XIANGMUGL; var xiangMuLX = InObject.XIANGMULX.ToString(); var srmlx = InObject.SHURUMLX; var srm = InObject.SHURUM.ToUpper(); #region 查询套餐 套餐明细 if (!(string.IsNullOrEmpty(fygl)) && fygl.Trim() == "1" && (xiangMuLX == "8" || xiangMuLX == "9")) { if (xiangMuLX == "8") { string xmgl = " and sfxm=99"; if (srmlx == "0") { xmgl += " and SRM1 like '" + srm + "%'"; }//拼音码 else if (srmlx == "1") { xmgl += " and SRM2 like '" + srm + "%'"; }//五笔码 else if (srmlx == "2") { xmgl += " and YLMC like '" + srm + "%'"; }//汉字 var xmmclist = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00013, xmgl)); if (xmmclist.Count == 0) { throw new Exception(string.Format("无套餐信息!")); } else { OutObject = new ZD_ZHENLIAOXX_OUT(); foreach (var zlxx in xmmclist) { var zhenliaolb = new ZHENLIAOXX(); zhenliaolb.XIANGMUGL = zlxx.Get("SFXM").ToString(); zhenliaolb.XIANGMUXH = zlxx.Get("YLXH").ToString(); zhenliaolb.XIANGMUMC = zlxx.Get("YLMC"); zhenliaolb.XIANGMUGLMC = "诊疗套餐"; zhenliaolb.XIANGMUDW = zlxx.Get("DW"); zhenliaolb.DANJIA = zlxx.Get("DJ").ToString(); zhenliaolb.YIBAODJ = "0"; OutObject.ZHENLIAOMX.Add(zhenliaolb); } } } else if (xiangMuLX == "9") { if (string.IsNullOrEmpty(InObject.XIANGMUXH)) { throw new Exception("查询项目明细时,项目序号不能为空!"); } string xmgl = ""; if (srmlx == "0") { xmgl += " and SRM1 like '" + srm + "%'"; }//拼音码 else if (srmlx == "1") { xmgl += " and SRM2 like '" + srm + "%'"; }//五笔码 else if (srmlx == "2") { xmgl += " and YLMC like '" + srm + "%'"; }//汉字 var xmmclist = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00015, InObject.XIANGMUXH, xmgl)); if (xmmclist.Count == 0) { throw new Exception(string.Format("无套餐明细信息!")); } else { OutObject = new ZD_ZHENLIAOXX_OUT(); foreach (var zlxx in xmmclist) { var zhenliaolb = new ZHENLIAOXX(); zhenliaolb.XIANGMUGL = zlxx.Get("XIANGMUGL").ToString(); zhenliaolb.XIANGMUXH = zlxx.Get("XIANGMUXH").ToString(); zhenliaolb.XIANGMUMC = zlxx.Get("XIANGMUMC"); zhenliaolb.XIANGMUGLMC = zlxx.Get("XIANGMUGLMC"); zhenliaolb.XIANGMUDW = zlxx.Get("XIANGMUDW"); zhenliaolb.DANJIA = zlxx.Get("DANJIA").ToString(); zhenliaolb.YIBAODJ = zlxx.Get("YIBAODJ"); OutObject.ZHENLIAOMX.Add(zhenliaolb); } } } else { throw new Exception(string.Format("诊疗项目类型错误,请参见数据字典!")); } } #endregion #region sql查询 else { string xmgl = ""; if (!(string.IsNullOrEmpty(fygl)) && fygl.Trim() == "1") { fygl = "0"; switch (xiangMuLX) { case "1": xmgl = " and ylmc = '检查费' and ylxh < 100 "; break; case "2": xmgl = " and ylmc = '治疗费' and ylxh < 100 "; break; case "3": xmgl = " and ylmc = '放射费' and ylxh < 100 "; break; case "4": xmgl = " and ylmc = '手术费' and ylxh < 100 "; break; case "5": xmgl = " and ylmc = '化验费' and ylxh < 100 "; break; case "6": xmgl = " and ylmc = '输血费' and ylxh < 100 "; break; case "7": xmgl = " and ylmc = '输氧费' and ylxh < 100 "; break; case "99": xmgl = " and ylmc not in('检查费','治疗费','放射费','手术费','化验费','输血费','输氧费' ) and ylxh < 100 "; break; default: xmgl = " and ylxh < 100 "; break; } var xmmclist = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00013, xmgl)); if (xmmclist.Count == 0) { xmgl = ""; } else { var temp = ""; foreach (var item in xmmclist) { temp += "'" + item.Get("ylmc") + "',"; } xmgl = " and XIANGMUGLMC in ( " + temp.Trim(',').ToString() + " )"; } } var listzlxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00007, fygl, srmlx, srm, xmgl)); if (listzlxx.Count == 0) { throw new Exception(string.Format("无诊疗信息!")); } else { OutObject = new ZD_ZHENLIAOXX_OUT(); foreach (var zlxx in listzlxx) { var zhenliaolb = new ZHENLIAOXX(); zhenliaolb.XIANGMUGL = zlxx.Get("XIANGMUGL").ToString(); zhenliaolb.XIANGMUXH = zlxx.Get("XIANGMUXH").ToString(); zhenliaolb.XIANGMUMC = zlxx.Get("XIANGMUMC"); zhenliaolb.XIANGMUGLMC = zlxx.Get("XIANGMUGLMC"); zhenliaolb.XIANGMUDW = zlxx.Get("XIANGMUDW"); zhenliaolb.DANJIA = zlxx.Get("DANJIA").ToString(); zhenliaolb.YIBAODJ = zlxx.Get("YIBAODJ"); OutObject.ZHENLIAOMX.Add(zhenliaolb); } } } #endregion }