Beispiel #1
0
        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("未找到相关诊疗信息!");
            }
        }
Beispiel #2
0
        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
        }