Пример #1
0
        public override void ProcessMessage()
        {
            string where = "";
            if (!string.IsNullOrEmpty(InObject.YSDM))
            {
                where = " and YSGH='" + InObject.YSDM + "'";
            }
            #region sql查询
            var listbqxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.BASE00014, where));

            if (listbqxx.Count == 0)
            {
                throw new Exception(string.Format("无医生排班信息!"));
            }
            else
            {
                OutObject = new ZD_YISHENGPBXX_OUT();

                foreach (var bqxx in listbqxx)
                {
                    var pbxx = new PAIBANXX();
                    pbxx.JLXH   = bqxx.Get("JLXH");
                    pbxx.XQ     = bqxx.Get("XQ");
                    pbxx.KSMC   = bqxx.Get("KSMC");
                    pbxx.KSDM   = bqxx.Get("KSDM");
                    pbxx.MZLBMC = bqxx.Get("MZLBMC");
                    pbxx.SWXH   = bqxx.Get("SWJSH");
                    pbxx.SWZGH  = bqxx.Get("SWZGXH");
                    pbxx.XWXH   = bqxx.Get("XWJSH");
                    pbxx.XWZGH  = bqxx.Get("XWZGXH");
                    pbxx.YSGH   = bqxx.Get("YSGH");
                    pbxx.YSXM   = bqxx.Get("YSXM");
                    pbxx.SWYYXH = bqxx.Get("SWYYXH");
                    pbxx.XWYYXH = bqxx.Get("XWYYXH");
                    pbxx.YYF    = bqxx.Get("YYF");
                    pbxx.YSMS   = bqxx.Get("YSMS");
                    OutObject.PAIBANXX.Add(pbxx);
                }
            }
            #endregion
        }
Пример #2
0
        public override void ProcessMessage()
        {
            OutObject = new YIYUANPAIBANXX_OUT();
            string guaHaoFS  = InObject.GUAHAOFS;  //1 挂号 2 预约
            string riQi      = InObject.RIQI;      //日期
            string guaHaoBC  = InObject.GUAHAOBC;  //挂号班次 0 全天 1上午 2下午
            string keShiDM   = InObject.KESHIDM;   //科室代码
            string yiShengDM = InObject.YISHENGDM; //医生代码
            string guaHaoLB  = InObject.GUAHAOLB;  //挂号类别
            string yuYueLX   = InObject.YUYUELX;   //预约类型

            #region 基本入参判断
            if (string.IsNullOrEmpty(guaHaoFS))
            {
                throw new Exception("挂号方式不能为空!");
            }
            else if (guaHaoFS != "1" && guaHaoFS != "2")
            {
                throw new Exception("请传入正确的挂号方式,1 当天挂号 2 挂号预约!");
            }

            if (string.IsNullOrEmpty(guaHaoBC))
            {
                throw new Exception("挂号班次不能为空!");
            }
            else if (guaHaoBC != "0" && guaHaoBC != "1" && guaHaoBC != "2")
            {
                throw new Exception("请传入正确的挂号班次,0 全天 1 上午 2 下午");
            }

            if (guaHaoFS == "2" && string.IsNullOrEmpty(yuYueLX))
            {
                yuYueLX = ConfigurationManager.AppSettings["GuaHaoYYLX"];
            }

            if (guaHaoFS == "1" && string.IsNullOrEmpty(riQi))
            {
                riQi = DateTime.Now.ToString("yyyy-MM-dd");
            }
            #endregion
            StringBuilder sqlPaiBanXX = new StringBuilder();
            if (guaHaoFS == "1")
            {
                #region 当天挂号
                if (guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" select * from ( ");
                }
                if (guaHaoBC == "1" || guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" select A.PAIBANID,to_Char(A.RIQI,'yyyy-mm-dd') as PAIBANRQ,a.GUAHAOLB,1 as GUAHAOBC,A.KESHIID,C.keshimc,NVL(A.WEIZHI,C.weizhism) as JIUZHENDD, ");
                    sqlPaiBanXX.Append(" c.keshizl as KESHIJS,nvl(a.YISHENGID,'*') as YISHENGDM,nvl(d.zhigongxm,'普通') as YISHENGXM , e.daimamc as YISHENGZC,a.ZHENLIAOFXM,a.GUAHAOFXM, ");
                    sqlPaiBanXX.Append(" NVL(a.SHANGWUXH,0) AS HAOYUANZS,NVL(a.SHANGWUXH,0)-NVL(a.SHANGWUYGH,0) AS SHENGYUHY ,'' as YUYUELX ");
                    sqlPaiBanXX.Append(" from mz_v_guahaopb_ex_zzj a ,v_gy_keshi c,v_gy_zhigongxx d , ");
                    sqlPaiBanXX.Append(" (select * from gy_daima where daimalb='0072') e  ");
                    sqlPaiBanXX.Append(" where a.keshiid=c.keshiid and d.zhigongid(+) = a.YISHENGID and e.daimaid(+) = d.zhicheng  ");

                    sqlPaiBanXX.Append(" and to_char(a.riqi,'yyyy-mm-dd')='" + riQi + "' ");
                    sqlPaiBanXX.Append("  and a.shangwuxh > 0 ");
                    if (!string.IsNullOrEmpty(keShiDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.keshiid,'*') = '" + keShiDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(yiShengDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.yishengid,'*') = '" + yiShengDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(guaHaoLB) && guaHaoLB != "0")
                    {
                        sqlPaiBanXX.Append(" and a.guahaolb = " + guaHaoLB + " ");
                    }
                }
                if (guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" union all ");
                }
                if (guaHaoBC == "2" || guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" select A.PAIBANID,to_Char(A.RIQI,'yyyy-mm-dd') as PAIBANRQ,a.GUAHAOLB,2 as GUAHAOBC,A.KESHIID,C.keshimc,NVL(A.WEIZHI,C.weizhism) as JIUZHENDD, ");
                    sqlPaiBanXX.Append(" c.keshizl as KESHIJS,nvl(a.YISHENGID,'*') as YISHENGDM,nvl(d.zhigongxm,'普通') as YISHENGXM , e.daimamc as YISHENGZC,a.ZHENLIAOFXM,a.GUAHAOFXM, ");
                    sqlPaiBanXX.Append(" NVL(a.XIAWUXH,0) AS HAOYUANZS,NVL(a.XIAWUXH,0)-NVL(a.XIAWUYGH,0) AS SHENGYUHY, '' as YUYUELX ");
                    sqlPaiBanXX.Append(" from mz_v_guahaopb_ex_zzj a ,v_gy_keshi c,v_gy_zhigongxx d , ");
                    sqlPaiBanXX.Append(" (select * from gy_daima where daimalb='0072') e  ");
                    sqlPaiBanXX.Append(" where a.keshiid=c.keshiid and d.zhigongid(+) = a.YISHENGID and e.daimaid(+) = d.zhicheng  ");

                    sqlPaiBanXX.Append(" and to_char(a.riqi,'yyyy-mm-dd')='" + riQi + "' ");
                    sqlPaiBanXX.Append("  and a.xiawuxh > 0 ");

                    if (!string.IsNullOrEmpty(keShiDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.keshiid,'*') = '" + keShiDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(yiShengDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.yishengid,'*') = '" + yiShengDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(guaHaoLB) && guaHaoLB != "0")
                    {
                        sqlPaiBanXX.Append(" and a.guahaolb = " + guaHaoLB + " ");
                    }
                }
                if (guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" ) ");
                }
                #endregion
            }

            if (guaHaoFS == "2")
            {
                #region 预约挂号
                if (guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" select * from ( ");
                }
                if (guaHaoBC == "1" || guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" select A.PAIBANID,to_Char(A.RIQI,'yyyy-mm-dd') as PAIBANRQ,a.GUAHAOLB,1 as GUAHAOBC,A.KESHIID,C.keshimc,NVL(A.WEIZHI,C.weizhism) as JIUZHENDD, ");
                    sqlPaiBanXX.Append(" c.keshizl as KESHIJS,nvl(a.YISHENGID,'*') as YISHENGDM,nvl(d.zhigongxm,'普通') as YISHENGXM , e.daimamc as YISHENGZC,a.ZHENLIAOFXM,a.GUAHAOFXM, ");
                    sqlPaiBanXX.Append(" NVL(f.shangwuyyxh,0) AS HAOYUANZS,NVL(f.shangwuyyxh,0)-NVL(f.shangwuyyyh,0) AS SHENGYUHY ,f.yuyuelx as YUYUELX ");
                    sqlPaiBanXX.Append(" from mz_v_guahaopb_ex_zzj a ,v_gy_keshi c,v_gy_zhigongxx d , ");
                    sqlPaiBanXX.Append(" (select * from gy_daima where daimalb='0072') e ,v_mz_guahaoyyxh f  ");
                    sqlPaiBanXX.Append(" where a.keshiid=c.keshiid and d.zhigongid(+) = a.YISHENGID and e.daimaid(+) = d.zhicheng and a.PAIBANID = f.paibanid  ");

                    if (string.IsNullOrEmpty(riQi))
                    {
                        //挂号预约可预约当天号源 0 不启用 1 启用
                        if (ConfigurationManager.AppSettings["GuaHaoYYDTHY"] == "1")
                        {
                            sqlPaiBanXX.Append(" and a.riqi >= trunc(sysdate) ");
                        }
                        else
                        {
                            sqlPaiBanXX.Append(" and a.riqi > trunc(sysdate) ");
                        }
                    }
                    else
                    {
                        sqlPaiBanXX.Append(" and to_char(a.riqi,'yyyy-mm-dd')='" + riQi + "' ");
                    }
                    sqlPaiBanXX.Append(" and f.yuyuelx in (" + yuYueLX + ") ");
                    sqlPaiBanXX.Append("  and a.shangwuxh > 0 and f.shangwuyyxh > 0 ");
                    if (!string.IsNullOrEmpty(keShiDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.keshiid,'*') = '" + keShiDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(yiShengDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.yishengid,'*') = '" + yiShengDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(guaHaoLB) && guaHaoLB != "0")
                    {
                        sqlPaiBanXX.Append(" and a.guahaolb = " + guaHaoLB + " ");
                    }
                }
                if (guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" union all ");
                }
                if (guaHaoBC == "2" || guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" select A.PAIBANID,to_Char(A.RIQI,'yyyy-mm-dd') as PAIBANRQ,a.GUAHAOLB,2 as GUAHAOBC,A.KESHIID,C.keshimc,NVL(A.WEIZHI,C.weizhism) as JIUZHENDD, ");
                    sqlPaiBanXX.Append(" c.keshizl as KESHIJS,nvl(a.YISHENGID,'*') as YISHENGDM,nvl(d.zhigongxm,'普通') as YISHENGXM , e.daimamc as YISHENGZC,a.ZHENLIAOFXM,a.GUAHAOFXM, ");
                    sqlPaiBanXX.Append(" NVL(f.xiawuyyxh,0) AS HAOYUANZS,NVL(f.xiawuyyxh,0)-NVL(f.xiawuyyyh,0) AS SHENGYUHY ,f.yuyuelx as YUYUELX ");
                    sqlPaiBanXX.Append(" from mz_v_guahaopb_ex_zzj a ,v_gy_keshi c,v_gy_zhigongxx d , ");
                    sqlPaiBanXX.Append(" (select * from gy_daima where daimalb='0072') e ,v_mz_guahaoyyxh f  ");
                    sqlPaiBanXX.Append(" where a.keshiid=c.keshiid and d.zhigongid(+) = a.YISHENGID and e.daimaid(+) = d.zhicheng and a.PAIBANID = f.paibanid  ");

                    if (string.IsNullOrEmpty(riQi))
                    {
                        sqlPaiBanXX.Append(" and a.riqi > sysdate ");
                    }
                    else
                    {
                        sqlPaiBanXX.Append(" and to_char(a.riqi,'yyyy-mm-dd')='" + riQi + "' ");
                    }
                    sqlPaiBanXX.Append(" and f.yuyuelx in (" + yuYueLX + ") ");
                    sqlPaiBanXX.Append("  and a.xiawuxh > 0  and f.xiawuyyxh > 0 ");
                    if (!string.IsNullOrEmpty(keShiDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.keshiid,'*') = '" + keShiDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(yiShengDM))
                    {
                        sqlPaiBanXX.Append(" and nvl(a.yishengid,'*') = '" + yiShengDM + "' ");
                    }
                    if (!string.IsNullOrEmpty(guaHaoLB) && guaHaoLB != "0")
                    {
                        sqlPaiBanXX.Append(" and a.guahaolb = " + guaHaoLB + " ");
                    }
                }
                if (guaHaoBC == "0")
                {
                    sqlPaiBanXX.Append(" ) ");
                }
                sqlPaiBanXX.Append(" order by paibanrq,paibanid,guahaobc ");
                #endregion
            }

            DataTable dtPaiBanXX = DBVisitor.ExecuteTable(sqlPaiBanXX.ToString());

            for (int i = 0; i < dtPaiBanXX.Rows.Count; i++)
            {
                PAIBANXX pbxx = new PAIBANXX();
                pbxx.PAIBANID  = dtPaiBanXX.Rows[i]["PAIBANID"].ToString();  //排班ID
                pbxx.PAIBANRQ  = dtPaiBanXX.Rows[i]["PAIBANRQ"].ToString();  //排班日期
                pbxx.GUAHAOLB  = dtPaiBanXX.Rows[i]["GUAHAOLB"].ToString();  //挂号类别
                pbxx.GUAHAOBC  = dtPaiBanXX.Rows[i]["GUAHAOBC"].ToString();  //挂号班次
                pbxx.KESHIDM   = dtPaiBanXX.Rows[i]["KESHIID"].ToString();   //科室代码
                pbxx.KESHIMC   = dtPaiBanXX.Rows[i]["keshimc"].ToString();   //科室名称
                pbxx.JIUZHENDD = dtPaiBanXX.Rows[i]["JIUZHENDD"].ToString(); //就诊地点(科室位置)
                pbxx.KESHIJS   = dtPaiBanXX.Rows[i]["KESHIJS"].ToString();   //科室介绍
                pbxx.YISHENGDM = dtPaiBanXX.Rows[i]["YISHENGDM"].ToString(); //医生代码
                pbxx.YISHENGXM = dtPaiBanXX.Rows[i]["YISHENGXM"].ToString(); //医生姓名
                pbxx.YISHENGZC = dtPaiBanXX.Rows[i]["YISHENGZC"].ToString(); //医生职称
                string zlfxm = dtPaiBanXX.Rows[i]["ZHENLIAOFXM"].ToString(); //诊疗费
                pbxx.ZHENLIAOF = Unity.GetXiangMuFY(zlfxm);
                string ghfxm = dtPaiBanXX.Rows[i]["GUAHAOFXM"].ToString();   //挂号费
                pbxx.GUAHAOF   = Unity.GetXiangMuFY(ghfxm);
                pbxx.HAOYUANZS = dtPaiBanXX.Rows[i]["HAOYUANZS"].ToString(); //号源总数
                pbxx.SHENGYUHY = dtPaiBanXX.Rows[i]["SHENGYUHY"].ToString(); //剩余号源
                if (Convert.ToInt32(pbxx.HAOYUANZS) <= 0)
                {
                    pbxx.SHENGYUHY = "-1";
                }

                pbxx.HAOYUANZS = Convert.ToInt32(pbxx.HAOYUANZS) < 0 ? "0" : pbxx.HAOYUANZS;
                pbxx.SHENGYUHY = Convert.ToInt32(pbxx.SHENGYUHY) < 0 ? "0" : pbxx.SHENGYUHY;
                pbxx.GUAHAOFS  = guaHaoFS;
                pbxx.YUYUELX   = dtPaiBanXX.Rows[i]["YUYUELX"].ToString();//预约类型
                OutObject.PAIBANMX.Add(pbxx);
            }

            if (OutObject.PAIBANMX.Count <= 0)
            {
                throw new Exception("未找到排班信息!");
            }
        }