Exemplo n.º 1
0
        public override void ProcessMessage()
        {
            string jiuZhenKH = InObject.patientid;

            if (string.IsNullOrEmpty(jiuZhenKH))
            {
                throw new Exception("患者编号不能为空");
            }

            string sqlBingRenID = "select bingrenid from gy_bingrenxx where jiuzhenkh ='{0}'";
            string bingRenID    = (string)DBVisitor.ExecuteScalar(string.Format(sqlBingRenID, jiuZhenKH));

            string errChuFang = string.Empty;

            foreach (var item in InObject.orderinfo)
            {
                string orderno = item.orderno;
                if (string.IsNullOrEmpty(orderno))
                {
                    errChuFang += "," + jiuZhenKH;
                    continue;
                }
                string sqlPYWC = "update mz_chufang1 set peiyaobz = 1 where chufangid = '{0}' and bingrenid = '{1}'";
                DBVisitor.ExecuteNonQuery(string.Format(sqlPYWC, orderno, jiuZhenKH));
            }
            if (!string.IsNullOrEmpty(errChuFang))
            {
                errChuFang = errChuFang.Trim(',');
                throw new Exception("以下病人的处方id获取失败请检查数据:" + errChuFang);
            }
        }
Exemplo n.º 2
0
        public override void ProcessMessage()
        {
            if (string.IsNullOrEmpty(InObject.pharmacyid) || !InObject.pharmacyid.Contains('*'))
            {
                throw new Exception("传入参数格式错误");
            }
            string chuFangHM = InObject.pharmacyid.Split('*')[1]; //处方id 多个时使用#分割
            string bingRenID = InObject.pharmacyid.Split('*')[0]; //病人id

            string pharmacyid = string.Empty;                     //药房id
            string winno      = string.Empty;                     //窗口id

            #region 入参判断
            if (string.IsNullOrEmpty(chuFangHM))
            {
                throw new Exception("处方号码不能为空");
            }
            if (string.IsNullOrEmpty(bingRenID))
            {
                throw new Exception("病人id不能为空");
            }
            #endregion

            string sqlCKXX = "select a.chufangid, a.chuangkouid chuangkouid,b.yingyongid yaofangid from mz_chufang1 a ,my_chuangkou b where a.chuangkouid = b.chuangkouid and a.chufangid in(select max(chufangid) from mz_chufang1 where chufanghm in('{0}') group by chufanghm)  and a.bingrenid = '{1}' ";

            DataTable dtCKXX = DBVisitor.ExecuteTable(string.Format(sqlCKXX, chuFangHM, bingRenID));

            if (dtCKXX.Rows.Count > 0)
            {
                pharmacyid          = dtCKXX.Rows[0]["yaofangid"].ToString();
                winno               = dtCKXX.Rows[0]["chuangkouid"].ToString();
                InObject.pharmacyid = pharmacyid;
                InObject.winno      = winno;
                InObject.orderno    = dtCKXX.Rows[0]["chufangid"].ToString();
                string sqlJiuZhenKH = "select jiuzhenkh from gy_bingrenxx where bingrenid ='{0}'";
                InObject.patientid = (string)DBVisitor.ExecuteScalar(string.Format(sqlJiuZhenKH, bingRenID));
                //InObject.patientid = bingRenID;
                OutObject = Unity.runService <DISP_PREPARE_IN, DISP_PREPARE_OUT>(InObject);
                if (OutObject.ResultCode == "0")
                {
                    if (OutObject.Result.state == "2")
                    {
                        OutObject.ResultContent = "已配药完成";
                        string sqlPYBZ = "update mz_chufang1 set peiyaobz = 1 where chufangid = '{0}'";
                        DBVisitor.ExecuteNonQuery(string.Format(sqlPYBZ, InObject.orderno));
                    }
                    else
                    {
                        //OutObject.ResultContent = "正在配药中,请稍后!";
                    }
                }
            }
            else
            {
                throw new Exception("未找到相应的处方信息");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 判断科室可挂号性别
        /// </summary>
        /// <param name="keShiDM"></param>
        /// <param name="zhenJianHM"></param>
        /// <returns></returns>
        public static Boolean shiFouKeGHXingBie(string keShiDM, string zhenJianHM)
        {
            string xingBiePd = ConfigurationManager.AppSettings["XingBiePD"];

            if (string.IsNullOrEmpty(xingBiePd) || xingBiePd == "0")
            {
                return(true);
            }
            else
            {
                string sqlBuf  = "select canshuzhi from gy_canshu where canshuid like '挂号_挂号科室与性别排斥' and yingyongid = '00'";
                string canShuZ = DBVisitor.ExecuteScalar(sqlBuf).ToString();
                int    xingBie = getXingBie(zhenJianHM);
                if (xingBie == 1)//男
                {
                    string nanXingKS = canShuZ.Split('|')[0].ToString();
                    if (string.IsNullOrEmpty(nanXingKS) || nanXingKS == "*")
                    {
                        return(true);
                    }
                    foreach (string item in nanXingKS.Split('^'))
                    {
                        if (keShiDM == item)
                        {
                            return(false);
                        }
                    }
                }
                else  //女
                {
                    string nvXingKS = canShuZ.Split('|')[1].ToString();
                    if (string.IsNullOrEmpty(nvXingKS) || nvXingKS == "*")
                    {
                        return(true);
                    }
                    foreach (string item in nvXingKS.Split('^'))
                    {
                        if (keShiDM == item)
                        {
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }
Exemplo n.º 4
0
        public override void ProcessMessage()
        {
            string chuFangHM = InObject.pharmacyid.Split('*')[1]; //处方id 多个时使用|分割
            string bingRenID = InObject.pharmacyid.Split('*')[0]; //病人id

            #region 基本入参判断
            if (string.IsNullOrEmpty(chuFangHM))
            {
                throw new Exception("处方号码不能为空");
            }
            if (string.IsNullOrEmpty(bingRenID))
            {
                throw new Exception("病人ID不能为空");
            }
            #endregion

            string    sqlCFXX = "select a.chufangid, b.yingyongid yaofangid,a.zhidanren fayaoyaoshi,a.chuangkouid fayaochuangkou from mz_chufang1 a ,my_chuangkou b where a.chuangkouid = b.chuangkouid and a.chufangid in(select max(chufangid) from mz_chufang1 where chufanghm in('{0}') group by chufanghm)  and  bingrenid = '{1}' ";
            DataTable dtCFXX  = DBVisitor.ExecuteTable(string.Format(sqlCFXX, chuFangHM, bingRenID));

            if (dtCFXX.Rows.Count > 0)
            {
                InObject.pharmacyid = dtCFXX.Rows[0]["yaofangid"].ToString();
                InObject.winno      = dtCFXX.Rows[0]["fayaochuangkou"].ToString();
                InObject.dispoper   = dtCFXX.Rows[0]["fayaoyaoshi"].ToString();
                patientid pattemp      = new patientid();
                string    sqlJiuZhenKH = "select jiuzhenkh from gy_bingrenxx where bingrenid ='{0}'";
                pattemp.pid = (string)DBVisitor.ExecuteScalar(string.Format(sqlJiuZhenKH, bingRenID));
                //pattemp.pid = bingRenID;
                pattemp.orderno = dtCFXX.Rows[0]["chufangid"].ToString();
                InObject.patientidlist.Add(pattemp);

                OutObject = Unity.runService <DISP_FINISH_IN, DISP_FINISH_OUT>(InObject);
            }
            else
            {
                throw new Exception("未找到相关的处方信息!");
            }
        }
Exemplo n.º 5
0
        public override void ProcessMessage()
        {
            if (InObject.YUYUERQ == null)
            {
                throw new Exception(string.Format("预约日期不能为空!"));
            }
            if (InObject.YUYUESJ == null)
            {
                throw new Exception(string.Format("预约时间不能为空!"));
            }
            //if (InObject.JIANCHAXMDM == null || InObject.JIANCHAXMDM == "")
            //{
            //    throw new Exception(string.Format("检查项目不能为空!"));
            //}
            if (InObject.BINGRENLX == null || InObject.BINGRENLX < 1 || InObject.BINGRENLX > 3)
            {
                throw new Exception(string.Format("病人类型代码不对!"));
            }
            if (InObject.YEWULY == null)
            {
                InObject.YEWULY = InObject.BINGRENLX.ToString();
            }
            var jcsbdm = InObject.JIANCHASBDM.ToString();
            var yyrq   = InObject.YUYUERQ.ToString();
            var yysj   = InObject.YUYUESJ.ToString();
            var yyh    = "";

            //不能预约以前的日期
            if (string.Compare(yyrq, DateTime.Now.ToString("yyyy-MM-dd")) < 0)
            {
                throw new Exception(string.Format("预约日期必须大于等于今天!"));
            }

            if (System.Configuration.ConfigurationManager.AppSettings["JianChaJKMS"] == "1")
            {
                HISYY_Submit resource = new HISYY_Submit();
                var          yysqdbh  = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00018)).Items["YYSQDBH"].ToString();
                //检查
                if (InObject.YEWULY == "1")
                {
                    #region 调用包,判断入参是否正确
                    var jyjcdxx = "";
                    var jyjcmx  = "";
                    var zdmx    = "";
                    var jcxmdm  = "";
                    int i       = 0;
                    if (InObject.JIANCHALB.Count < 1)
                    {
                        throw new Exception(string.Format("检查项目不能为空!"));
                    }
                    #region 检查单信息
                    jyjcdxx += InObject.JIUZHENKLX + "|";                       //	就诊卡类型
                    jyjcdxx += InObject.JIUZHENKH + "|";                        //	就诊卡号
                    jyjcdxx += InObject.SHENQINGYSGH + "|";                     //	送检医生
                    jyjcdxx += InObject.SHENQINGYYDM + "|";                     //	送检科室
                    jyjcdxx += InObject.YUYUESF + "|";                          //	收费识别
                    jyjcdxx += InObject.BINGQINGMS + "|";                       //	病情描述
                    jyjcdxx += InObject.ZHENDUAN + "|";                         //	诊断
                    jyjcdxx += InObject.BINGRENTZ + "|";                        //	病人体征
                    jyjcdxx += InObject.QITAJC + "|";                           //	其它检查
                    jyjcdxx += InObject.BINGRENZS + "|";                        //	病人主诉
                    jyjcdxx += InObject.YEWULY + "|";                           //	检查来源
                    jyjcdxx += InObject.BINGRENXM + "|";                        //	病人姓名
                    jyjcdxx += InObject.SHENFENZH + "|";                        //	病人身份证号
                    jyjcdxx += "0" + "|";                                       //	接收方式
                    jyjcdxx += "|";                                             //	检查申请单号
                    jyjcdxx += InObject.YUYUERQ + " " + InObject.YUYUESJ + "|"; //	检查日期
                    jyjcdxx += InObject.BINGRENXB + "|";                        //	病人性别
                    jyjcdxx += InObject.BINGRENNL;                              //	病人年龄
                    #endregion
                    #region 检验检查明细
                    foreach (var item in InObject.JIANCHALB)
                    {
                        if (i == 0)
                        {
                            jcxmdm = item.JIANCHAXMBH;
                        }
                        else
                        {
                            jcxmdm += "," + item.JIANCHAXMBH;
                        }
                        ++i;
                        jyjcmx += item.JIANCHAXMBH + "|"; //	检查项目编号
                        jyjcmx += item.JIANCHAXMMC + "|"; //	检查项目名称
                        jyjcmx += item.JIANCHAFLBM + "|"; //	检查分类编码
                        jyjcmx += item.JIANCHASTBW + "|"; //	检查身体部位
                        jyjcmx += item.JIANCHAFXDM + "|"; //	检查方向代码
                        jyjcmx += item.JIANCHAZYDM + "|"; //	检查肢位代码
                        jyjcmx += item.JIANCHATS + "^";   //	检查提示
                    }
                    #endregion
                    #region 疾病明细
                    foreach (var item in InObject.ZHENDUANLB)
                    {
                        zdmx += item.ICD10 + "|";      //	ICD10
                        zdmx += item.ZHENDUANMC + "^"; //	诊断名称
                    }
                    #endregion
                    #region 调用包
                    var jianchakd = SqlLoad.GetProcedure(SQ.P_FSD00030);
                    jianchakd["ywlx"]    = 1;
                    jianchakd["jyjcdxx"] = jyjcdxx;
                    jianchakd["jyjcmx"]  = jyjcmx;
                    jianchakd["zdmx"]    = zdmx;
                    jianchakd["jylx"]    = 1;
                    jianchakd["errno"]   = -1;
                    jianchakd["errmsg"]  = string.Empty.PadRight(1024);
                    jianchakd["outdata"] = string.Empty.PadRight(1024);
                    DBVisitor.ExecuteProcedure(jianchakd);

                    if (jianchakd["errno"].ToString() != "0")
                    {
                        throw new Exception("更新库存失败:" + jianchakd["errmsg"]);
                    }
                    #endregion
                    #endregion

                    if (InObject.YEWULX == "2")
                    {
                        resource.AdmissionSource = "10";
                    }
                    else
                    {
                        resource.AdmissionSource = "50";
                    }
                    resource.HospitalCode = InObject.BASEINFO.JIGOUDM;
                    resource.HospitalName = "余杭三院";
                    resource.PatientName  = InObject.BINGRENXM;
                    resource.IdNumber     = InObject.SHENFENZH;
                    resource.RequestNo    = yysqdbh;
                    if (InObject.YEWULY == "2")
                    {
                        resource.AdmissionID = InObject.BINGRENZYH;
                    }
                    else
                    {
                        resource.AdmissionID = InObject.BINGRENMZH;
                    }
                    resource.ExaminePartTime   = InObject.XIANGMUHS;
                    resource.PatientSex        = InObject.BINGRENXB.ToString();
                    resource.PatientBorn       = InObject.BINGRENCSRQ;
                    resource.PatientAge        = InObject.BINGRENNL;
                    resource.PatientTel        = InObject.BINGRENLXDH;
                    resource.PatientAddress    = InObject.BINGRENLXDZ;
                    resource.PatientCard       = InObject.BINGRENKH;
                    resource.InPatientAreaName = InObject.BINGRENBQMC;
                    resource.InPatientAreaCode = InObject.BINGRENBQDM;
                    resource.BedNum            = InObject.BINGRENCWH;
                    resource.DeviceCode        = InObject.JIANCHASBDM.ToString();
                    resource.DeviceName        = InObject.JIANCHASBMC;
                    var codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, jcxmdm));
                    foreach (var code in codes)
                    {
                        resource.StudiesExamine.Add(new StudiesExamine()
                        {
                            ExamineCode  = code["LBXH"].ToString(),
                            ExamineName  = Unity.encodeString(code["LBMC"].ToString()),
                            Numbers      = "1",
                            ExaminePrice = DBVisitor.ExecuteScalar(SqlLoad.GetFormat(SQ.FSD00029, code["LBXH"].ToString())).ToString()
                        });
                    }
                    resource.ExamineFY  = resource.StudiesExamine.Sum <StudiesExamine>(group => { return(Convert.ToDecimal(group.ExaminePrice)); }).ToString();
                    resource.ReceiptNum = InObject.BINGRENFPH;
                    codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, jcxmdm));
                    resource.ZxDepartmentId   = codes[0]["JCKS"].ToString();
                    resource.ZxDepartmentName = codes[0]["KSMC"].ToString();
                    resource.Sqrq             = InObject.BASEINFO.CAOZUORQ;
                    resource.BespeakDateTime  = InObject.YUYUERQ + " " + InObject.YUYUESJ;
                    resource.JZ = "0"; // InObject.JIZHEN;
                    resource.ZQ = "0"; //InObject.ZENGQIANG;
                    resource.LS = "0"; //InObject.LINSHI;
                    resource.PF = "1";

                    ///调用WEBSERVICE
                    string url = System.Configuration.ConfigurationManager.AppSettings["LAIDAURL"];
                    string xml = XMLHandle.EntitytoXML <HISYY_Submit>(resource);
                    HISYY_Submit_Result result = XMLHandle.XMLtoEntity <HISYY_Submit_Result>(WSServer.Call <HISYY_Submit>(url, xml).ToString());

                    if (result.Success == "False")
                    {
                        throw new Exception("预约失败,错误原因:" + result.Message);
                    }

                    var tran = DBVisitor.Connection.BeginTransaction();
                    try
                    {
                        #region 先插入到临时表
                        var ID     = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00024, " seq_sxzz_jianchad.nextval "));
                        var xh     = "";
                        var JCSQDH = result.JCH;
                        int k      = 0;
                        if (ID == null)
                        {
                            throw new Exception(string.Format("检查单序列获取失败!"));
                        }
                        else
                        {
                            xh = ID.Items["MAXID"].ToString();
                        }
                        //var SQDH = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00023, " SEQ_GY_YXSQD_SQDH.NEXTVAL "));
                        //if (SQDH == null)
                        //{
                        //    throw new Exception(string.Format("申请单号获取失败!"));
                        //}
                        //else
                        //{
                        //    JCSQDH = SQDH.Items["MAXID"].ToString();
                        //}
                        //插入检查单信息
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00022,
                                                                    xh, "", InObject.BINGRENMZH, InObject.BINGRENXM,
                                                                    InObject.SHENFENZH, InObject.SHENQINGYSGH, InObject.JIANCHAKSDM, 0,
                                                                    InObject.BINGQINGMS, InObject.ZHENDUAN, InObject.BINGRENTZ, InObject.QITAJC,
                                                                    InObject.BINGRENZS, InObject.YEWULX, 0, JCSQDH, InObject.YUYUERQ,
                                                                    InObject.BINGRENXB, InObject.BINGRENNL), tran);
                        //插入检查明细
                        foreach (var item in InObject.JIANCHALB)
                        {
                            ++k;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00023,
                                                                        xh, k, item.JIANCHAXMBH,
                                                                        item.JIANCHAXMMC, item.JIANCHAFLBM, item.JIANCHASTBW,
                                                                        item.JIANCHAFXDM, item.JIANCHAZYDM, item.JIANCHATS), tran);
                        }
                        k = 0;
                        //插入诊断明细
                        foreach (var item in InObject.ZHENDUANLB)
                        {
                            ++k;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00025,
                                                                        xh, k, item.ICD10, item.ZHENDUANMC), tran);
                        }


                        #endregion

                        var listyylsh = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00017));
                        var yysqlsh   = listyylsh.Items["YYSQLSH"].ToString();

                        //插入预约申请信息fdsyy_sq
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00011,
                                                                    "申请单",                 //预约申请单名称
                                                                    InObject.YUYUEZT,      //预约申请单状态(0未确认,1已确认,9作废)
                                                                    InObject.JIANCHAKSDM,  //检查科室代码
                                                                    InObject.JIANCHAKSMC,  //检查科室名称
                                                                    InObject.BINGRENFPH,   //病人发票号
                                                                    InObject.BINGRENLX,    //病人类型
                                                                    InObject.BINGRENLXMC,  //病人类型名称
                                                                    InObject.BINGRENKH,    //病人卡号
                                                                    InObject.BINGRENMZH,   //病人门诊号
                                                                    InObject.BINGRENZYH,   //病人住院号
                                                                    InObject.BINGRENBQDM,  //病人病区代码
                                                                    InObject.BINGRENBQMC,  //病人病区名称
                                                                    InObject.BINGRENCWH,   //病人床位号
                                                                    InObject.BINGRENXM,    //病人姓名
                                                                    InObject.BINGRENXB,    //病人性别
                                                                    InObject.BINGRENNL,    //病人年龄
                                                                    InObject.BINGRENCSRQ,  //病人出生日期
                                                                    InObject.BINGRENLXDZ,  //病人联系地址
                                                                    InObject.BINGRENLXDH,  //病人联系电话
                                                                    InObject.SHENQINGYSGH, //申请医生工号
                                                                    InObject.SHENQINGYSMC, //申请医生姓名
                                                                    "",                    //申请科室代码
                                                                    "",                    //申请科室名称
                                                                    InObject.SHENQINGYYDM, //申请医院代码
                                                                    InObject.SHENQINGYYMC, //申请医院名称
                                                                    result.JCH,            //检查号
                                                                    InObject.YUYUERQ,      //检查日期
                                                                    InObject.YUYUESJ,      //检查时间

                                                                    jcxmdm,                //InObject.JIANCHAXMDM,//检查项目代码
                                                                    InObject.JIANCHAXMMC,  //检查项目名称

                                                                    InObject.JIANCHAXMLX,  //检查项目类型
                                                                    InObject.JIANCHABWDM,  //检查部位代码
                                                                    InObject.JIANCHABWMC,  //检查部位名称
                                                                    InObject.JIANCHASBDM,  //检查设备代码
                                                                    InObject.JIANCHASBMC,  //检查设备名称
                                                                    InObject.JIANCHASBDD,  //检查设备地点
                                                                    result.YYH,            //预约号
                                                                    InObject.SHENFENZH,    //身份证号
                                                                    InObject.YUYUESF,      //预约收费(0未收费,1已收费)
                                                                    InObject.JIANCHASQDBH, //检查申请单编号
                                                                    InObject.YINGXIANGFX,
                                                                    "",                    //影像方向
                                                                    yysqlsh,               //预约申请流水号
                                                                    yysqdbh,               //预约申请单编号
                                                                    InObject.XIANGMUHS,    //详细安排时间
                                                                    InObject.YEWULY,
                                                                    InObject.YEWULX,
                                                                    InObject.ZENGQIANG,
                                                                    InObject.JIZHEN,
                                                                    InObject.LINSHI
                                                                    ), tran);//业务来源
                        tran.Commit();

                        OutObject            = new SHEBEIYY_OUT();
                        OutObject.YUYUERQ    = InObject.YUYUERQ;
                        OutObject.YUYUESJ    = InObject.YUYUESJ;
                        OutObject.YUYUEH     = result.YYH;
                        OutObject.JIANCHAH   = result.JCH;
                        OutObject.YUYUESQDBH = yysqdbh;
                    }
                    catch (Exception ex)
                    {
                        tran.Rollback();
                        throw ex;
                    }
                }
                //检验
                else
                {
                }
            }
            else
            {
                #region 市二
                if (InObject.JIANCHAXMDM == null || InObject.JIANCHAXMDM == "")
                {
                    throw new Exception(string.Format("检查项目不能为空!"));
                }
                var listjcsb = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00007, jcsbdm));
                if (listjcsb == null)
                {
                    throw new Exception(string.Format("未找到预约设备:设备编号[{0}]", jcsbdm));
                }
                if (listjcsb.Items.Count == 0)//判断有无该设备
                {
                    throw new Exception(string.Format("未找到预约设备:设备编号[{0}]", jcsbdm));
                }
                else
                {
                    if (listjcsb.Items["JCSBZT"].ToString() != "0")//设备是否可用
                    {
                        throw new Exception(string.Format("预约设备故障或者已停用:设备编号[{0}]", jcsbdm));
                    }
                    else
                    {
                        if (listjcsb.Items["SBYYBZ"].ToString() != "0")//设备是否可预约
                        {
                            throw new Exception(string.Format("预约设备为不可预约状态:设备编号[{0}]", jcsbdm));
                        }
                        else
                        {
                            //获取设备某天预约排班信息
                            var listsbyyxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00002, jcsbdm, yyrq, yysj, 0));
                            if (listsbyyxx == null)
                            {
                                throw new Exception(string.Format("未找到预约号信息!"));
                            }
                            //取得预约类型,再去取预约号及状态
                            var jcyylx = int.Parse(listsbyyxx.Items["JCYYLX"].ToString());
                            var yyhxx  = int.Parse(listsbyyxx.Items["YYHXX"].ToString());
                            var yyzs   = int.Parse(listsbyyxx.Items["YYZS"].ToString());
                            var kyys   = int.Parse(listsbyyxx.Items["KYYS"].ToString());
                            var xcyls  = int.Parse(listsbyyxx.Items["XCYLS"].ToString());
                            var yyys   = int.Parse(listsbyyxx.Items["YYYS"].ToString());
                            int xcyy   = 0;//现场预约值为2,则检索所有数据
                            var zykyys = int.Parse(listsbyyxx.Items["ZYKYYS"].ToString());
                            var zyyyys = int.Parse(listsbyyxx.Items["ZYYYYS"].ToString());
                            var mzkyys = int.Parse(listsbyyxx.Items["MZKYYS"].ToString());
                            var mzyyys = int.Parse(listsbyyxx.Items["MZYYYS"].ToString());
                            var sqkyys = int.Parse(listsbyyxx.Items["SQKYYS"].ToString());
                            var sqyyys = int.Parse(listsbyyxx.Items["SQYYYS"].ToString());
                            var tran   = DBVisitor.Connection.BeginTransaction();
                            var yysjd  = listsbyyxx.Items["KSSJ"].ToString() + "-" + listsbyyxx.Items["JSSJ"].ToString();
                            if (string.Compare(listsbyyxx.Items["PBRQ"].ToString(), DateTime.Now.ToString("yyyy-MM-dd")) == 0)
                            {
                                xcyy = 2;
                            }
                            if (xcyy == 0)//非现场预约,则判断门诊住院预约的比例值
                            {
                                if (InObject.BINGRENLX == 2)
                                {
                                    if (InObject.YEWULY == "3")
                                    {
                                        if (sqkyys <= sqyyys)
                                        {
                                            throw new Exception(string.Format("当前社区可预约数已预约完,不能再预约!"));
                                        }
                                        ++sqyyys;
                                    }
                                    else
                                    {
                                        if (zykyys <= zyyyys)
                                        {
                                            throw new Exception(string.Format("当前住院可预约数已预约完,不能再预约!"));
                                        }
                                        ++zyyyys;
                                    }
                                }
                                else
                                {
                                    if (InObject.YEWULY == "3")
                                    {
                                        if (sqkyys <= sqyyys)
                                        {
                                            throw new Exception(string.Format("当前社区可预约数已预约完,不能再预约!"));
                                        }
                                        ++sqyyys;
                                    }
                                    else
                                    {
                                        if (mzkyys <= mzyyys)
                                        {
                                            throw new Exception(string.Format("当前门诊可预约数已预约完,不能再预约!"));
                                        }
                                        ++mzyyys;
                                    }
                                }
                            }
                            if (jcyylx == 1)//有预约号模式
                            {
                                if (InObject.YUYUEH == null || InObject.YUYUEH == "")
                                {
                                    throw new Exception(string.Format("预约号不能为空!"));
                                }
                                yyh = InObject.YUYUEH.ToString();
                                var listsbyyhxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00010, yyhxx, yyh));
                                if (listsbyyhxx == null)
                                {
                                    throw new Exception(string.Format("未找到预约号:预约号:[{0}]!", yyh));
                                }
                                if (listsbyyhxx.Items["YYZT"].ToString() == "1")
                                {
                                    throw new Exception(string.Format("该预约号已被预约:预约号:[{0}]!", yyh));
                                }
                                else
                                {
                                    try
                                    {
                                        if (InObject.YEWULY == "3")
                                        {
                                            //更新预约排班表 社区
                                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00021, yyhxx, yyys + 1, sqyyys), tran);
                                        }
                                        else if (InObject.BINGRENLX == 2)
                                        {
                                            //更新预约排班表 住院
                                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                        }
                                        else
                                        {
                                            //更新预约排班表 门诊
                                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00020, yyhxx, yyys + 1, mzyyys), tran);
                                        }
                                        //更新预约排班表
                                        //DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                        //更新预约号状态
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00009, yyhxx, yyh, 1), tran);
                                        //tran.Commit();
                                    }
                                    catch (Exception ex)
                                    {
                                        tran.Rollback();
                                        throw ex;
                                    }
                                }
                            }
                            else//无预约号模式
                            {
                                try
                                {
                                    //取得当前预约信息未预约的最小号码
                                    var listsbyyhxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00013, yyhxx, xcyy));
                                    if (listsbyyhxx == null)
                                    {
                                        throw new Exception(string.Format("预约已满!"));
                                    }
                                    yyh = listsbyyhxx.Items["YYH"].ToString();
                                    if (InObject.YEWULY == "3")
                                    {
                                        //更新预约排班表 社区
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00021, yyhxx, yyys + 1, sqyyys), tran);
                                    }
                                    else if (InObject.BINGRENLX == 2)
                                    {
                                        //更新预约排班表 住院
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                    }
                                    else
                                    {
                                        //更新预约排班表 门诊
                                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00020, yyhxx, yyys + 1, mzyyys), tran);
                                    }
                                    //更新预约排班表
                                    //DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, yyhxx, yyys + 1, zyyyys), tran);
                                    //更新预约号状态
                                    DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00009, yyhxx, yyh, 1), tran);
                                    //tran.Commit();
                                }
                                catch (Exception ex)
                                {
                                    tran.Rollback();
                                    throw ex;
                                }
                            }
                            try
                            {
                                var listyylsh   = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00017));
                                var yysqlsh     = listyylsh.Items["YYSQLSH"].ToString();
                                var listyysqdbh = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00018));
                                var yysqdbh     = listyysqdbh.Items["YYSQDBH"].ToString();
                                //插入预约申请信息fdsyy_sq
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00011,
                                                                            "申请单",                 //预约申请单名称
                                                                            InObject.YUYUEZT,      //预约申请单状态(0未确认,1已确认,9作废)
                                                                            InObject.JIANCHAKSDM,  //检查科室代码
                                                                            InObject.JIANCHAKSMC,  //检查科室名称
                                                                            InObject.BINGRENFPH,   //病人发票号
                                                                            InObject.BINGRENLX,    //病人类型
                                                                            InObject.BINGRENLXMC,  //病人类型名称
                                                                            InObject.BINGRENKH,    //病人卡号
                                                                            InObject.BINGRENMZH,   //病人门诊号
                                                                            InObject.BINGRENZYH,   //病人住院号
                                                                            InObject.BINGRENBQDM,  //病人病区代码
                                                                            InObject.BINGRENBQMC,  //病人病区名称
                                                                            InObject.BINGRENCWH,   //病人床位号
                                                                            InObject.BINGRENXM,    //病人姓名
                                                                            InObject.BINGRENXB,    //病人性别
                                                                            InObject.BINGRENNL,    //病人年龄
                                                                            InObject.BINGRENCSRQ,  //病人出生日期
                                                                            InObject.BINGRENLXDZ,  //病人联系地址
                                                                            InObject.BINGRENLXDH,  //病人联系电话
                                                                            InObject.SHENQINGYSGH, //申请医生工号
                                                                            InObject.SHENQINGYSMC, //申请医生姓名
                                                                            "",                    //申请科室代码
                                                                            "",                    //申请科室名称
                                                                            InObject.SHENQINGYYDM, //申请医院代码
                                                                            InObject.SHENQINGYYMC, //申请医院名称
                                                                            "",                    //检查号
                                                                            InObject.YUYUERQ,      //检查日期
                                                                            InObject.YUYUESJ,      //检查时间
                                                                            InObject.JIANCHAXMDM,  //检查项目代码
                                                                            InObject.JIANCHAXMMC,  //检查项目名称
                                                                            InObject.JIANCHAXMLX,  //检查项目类型
                                                                            InObject.JIANCHABWDM,  //检查部位代码
                                                                            InObject.JIANCHABWMC,  //检查部位名称
                                                                            InObject.JIANCHASBDM,  //检查设备代码
                                                                            InObject.JIANCHASBMC,  //检查设备名称
                                                                            InObject.JIANCHASBDD,  //检查设备地点
                                                                            yyh,                   //预约号
                                                                            InObject.SHENFENZH,    //身份证号
                                                                            InObject.YUYUESF,      //预约收费(0未收费,1已收费)
                                                                            InObject.JIANCHASQDBH, //检查申请单编号
                                                                            InObject.YINGXIANGFX,
                                                                            yysjd,                 //影像方向
                                                                            yysqlsh,               //预约申请流水号
                                                                            yysqdbh,               //预约申请单编号
                                                                            InObject.XIANGXIAPSJ,  //详细安排时间
                                                                            InObject.YEWULY,
                                                                            1,
                                                                            0,
                                                                            0,
                                                                            0), tran);//业务来源
                                tran.Commit();
                                OutObject            = new SHEBEIYY_OUT();
                                OutObject.YUYUERQ    = yyrq;
                                OutObject.YUYUESJ    = yysj;
                                OutObject.YUYUEH     = yyh;
                                OutObject.YUYUESQDBH = yysqdbh;
                            }
                            catch (Exception ex)
                            {
                                tran.Rollback();
                                throw ex;
                            }
                        }
                    }
                }
                #endregion
            }
        }
Exemplo n.º 6
0
        public override void ProcessMessage()
        {
            OutObject = new GUAHAOYY_OUT();
            string yuyueLx      = InObject.YUYUELX;
            string jiuzhenkLx   = InObject.JIUZHENKLX;                           //就诊卡类型
            string jiuzhenKh    = InObject.JIUZHENKH;                            //就诊卡号
            string zhengjianLx  = InObject.ZHENGJIANLX;                          //证件类型
            string zhengjianHm  = InObject.ZHENGJIANHM;                          //证件号码
            string xingMing     = InObject.XINGMING;                             //姓名
            string yizhoupbId   = InObject.YIZHOUPBID;                           //一周排班id;
            string dangtianpbId = InObject.DANGTIANPBID;                         //当天排班id
            string riQi         = InObject.RIQI;                                 //日期
            string guahaoBc     = InObject.GUAHAOBC;                             //挂号班次
            string guahaoLb     = InObject.GUAHAOLB;                             //挂号类别
            string keshiDm      = InObject.KESHIDM;                              //科室代码
            string yishengDm    = InObject.YISHENGDM;                            //医生代码
            string guahaoXh     = InObject.GUAHAOXH;                             //挂号序号
            string yuyueLy      = InObject.YUYUELY;                              //预约来源
            string lianxiDh     = InObject.LIANXIDH;                             //手机号码
            string bingrenId    = InObject.BINGRENID;                            //病人ID
            string xingBie      = InObject.XINGBIE;                              //性别
            string FenYuanDM    = InObject.BASEINFO.FENYUANDM;                   //分院代码
            string beiZhu       = InObject.BEIZHU;                               //备注

            string czygh     = ConfigurationManager.AppSettings["JRCaoZuoYGH"];  //接入操作员工号
            string yuYueCZFS = ConfigurationManager.AppSettings["GUAHAOYYCZFS"]; //挂号预约处理方式

            if (!string.IsNullOrEmpty(yuYueCZFS) && yuYueCZFS == "1")
            {
                #region  兴悦城业务处理
                #region 基本入参判断
                //if (string.IsNullOrEmpty(zhengjianHm)) {
                //    throw new Exception("证件号码不能为空!");
                //}
                if (string.IsNullOrEmpty(beiZhu))
                {
                    beiZhu = string.Empty;
                }

                if (string.IsNullOrEmpty(xingMing))
                {
                    throw new Exception("姓名不能为空!");
                }

                if (string.IsNullOrEmpty(xingBie))
                {
                    throw new Exception("性别不能为空!");
                }

                if (string.IsNullOrEmpty(lianxiDh))
                {
                    throw new Exception("联系电话不能为空!");
                }

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

                if (string.IsNullOrEmpty(xingBie))
                {
                    xingBie = "0";
                }

                if (string.IsNullOrEmpty(yuyueLx))
                {
                    yuyueLx = ConfigurationManager.AppSettings["GuaHaoYYLX"];//预约类型
                }
                #endregion

                string sXingBie = string.Empty;
                switch (xingBie)
                {
                case "0":
                    sXingBie = "未知";
                    break;

                case "1":
                    sXingBie = "男";
                    break;

                case "2":
                    sXingBie = "女";
                    break;

                default:
                    sXingBie = "其它";
                    break;
                }

                string chuShenRQ = "null";
                if (!string.IsNullOrEmpty(zhengjianHm))
                {
                    chuShenRQ = string.Format("to_date('{0}','yyyy-mm-dd')", zhengjianHm.Substring(6, 8).Insert(4, "-").Insert(7, "-"));
                }

                string    houzhensj   = "select kaishisj,jieshusj from v_mz_houzhensj where paibanid = '{0}' and (shangxiawbz = '{1}') and (qishighxh>= '{2}' and jieshughxh <= '{2}')";
                DataTable dtHouZhensj = DBVisitor.ExecuteTable(string.Format(houzhensj, dangtianpbId, guahaoBc == "1" ? "0" : "1", guahaoXh));
                string    kaishisj    = string.Empty;
                string    jieshusj    = string.Empty;
                if (dtHouZhensj != null && dtHouZhensj.Rows.Count > 0)
                {
                    kaishisj = dtHouZhensj.Rows[0]["kaishisj"].ToString();
                    jieshusj = dtHouZhensj.Rows[0]["jieshusj"].ToString();
                }

                string PaiBanHYXX = @"select * from v_mz_guahaoyyxh_qbhy where paibanid = '{0}' and guahaoyyxh = '{1}' and shangxiawbz = '{2}'and yuanquid = '{3}' ";

                DataTable dtPBHYXX = DBVisitor.ExecuteTable(string.Format(PaiBanHYXX, dangtianpbId, guahaoXh, guahaoBc == "1" ? "0" : "1", FenYuanDM));
                if (dtPBHYXX == null || dtPBHYXX.Rows.Count <= 0)
                {
                    throw new Exception("未找到有效的号源信息!");
                }

                //号源占用判断
                DataTable dtYYYXX = DBVisitor.ExecuteTable(string.Format("select * from v_mz_guahaoyyxh_yshyh where paibanid = '{0}' and guahaoyyxh = '{1}' and shangxiawbz = '{2}' and yuanquid = '{3}' ", dangtianpbId, guahaoXh, ((guahaoBc == "1") ? 0 : 1), FenYuanDM));
                if (dtYYYXX.Rows.Count > 0)
                {
                    throw new Exception("该时间段已被预约,请选择其它时间段!");
                }

                string quHaoMM = DBVisitor.ExecuteScalar("select LPAD(seq_gy_jiuzhenyy.nextval,10,'0') from dual").ToString();

                string bingrenid = DBVisitor.ExecuteScalar(string.Format("select nvl(bingrenid,'') from gy_bingrenxx where xingming = '{0}' and xingbie = '{1}' and  jiatingdh = '{2}' ", xingMing, sXingBie, lianxiDh)).ToString();

                string insertYYXX = @"insert into gy_jiuzhenyy (jiuzhenyyid,yuyuesj,yisehngid,keshiid,xingming,
                                            shuruma1,shuruma2,shuruma3,xingbie,chushengrq,dianhua,
                                            yuyuerq,jiuzhenbz,jiluren,jieshusj,zuofeibz,yuyuely,beizhu,bingrenid,chuzhenbz )
                                            values( '{0}','{1}','{2}','{3}','{4}',
                                            fun_gy_getshuruma1('{4}',50),fun_gy_getshuruma2('{4}',50),fun_gy_getshuruma3('{4}',50),'{5}',{6},'{7}',
                                            to_date('{8}','yyyy-mm-dd'),'0','{9}','{10}','0','{11}','{12}','{13}',{14} )";
                DBVisitor.ExecuteNonQuery(string.Format(insertYYXX, quHaoMM, kaishisj, yishengDm, keshiDm,
                                                        xingMing, sXingBie, chuShenRQ, lianxiDh, riQi, InObject.BASEINFO.CAOZUOYDM, jieshusj, yuyueLx, beiZhu,
                                                        bingrenid, string.IsNullOrEmpty(bingrenid)?1:0));
                OutObject.GUAHAOXH  = guahaoXh;
                OutObject.JIUZHENSJ = Unity.getJiuZhenSJD(yishengDm, keshiDm.ToString(), guahaoXh, yuyueLx, ((guahaoBc == "1") ? 0 : 1), guahaoLb, riQi);
                OutObject.QUHAOMM   = quHaoMM;
                #endregion
            }
            else
            {
                #region 标准his4业务处理

                #region 基本入参判断
                if (string.IsNullOrEmpty(InObject.BASEINFO.CAOZUOYDM))
                {
                    throw new Exception("非法操作员,无法进行预约操作!");
                }
                if (!string.IsNullOrEmpty(czygh) && !czygh.Contains("^" + InObject.BASEINFO.CAOZUOYDM + "^"))
                {
                    throw new Exception("非法操作员,无法进行预约操作!");
                }


                //预约类型
                if (string.IsNullOrEmpty(yuyueLx))
                {
                    yuyueLx = ConfigurationManager.AppSettings["GuaHaoYYLX"];//预约类型
                }

                //性别
                if (string.IsNullOrEmpty(xingBie))
                {
                    xingBie = "未知";
                }
                else if (xingBie == "1")
                {
                    xingBie = "男";
                }
                else if (xingBie == "2")
                {
                    xingBie = "女";
                }
                else if (xingBie == "9")
                {
                    xingBie = "其他";
                }
                else
                {
                    xingBie = "";
                }

                if (!string.IsNullOrEmpty(zhengjianHm))
                {
                    zhengjianHm = zhengjianHm.ToUpper();
                }

                //姓名
                if (string.IsNullOrEmpty(xingMing))
                {
                    throw new Exception("姓名不能为空!");
                }
                //就诊卡号
                if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengjianHm) && string.IsNullOrEmpty(bingrenId))
                {
                    throw new Exception("就诊卡号和证件号码不能同时为空!");
                }

                //排班id
                if (string.IsNullOrEmpty(dangtianpbId))
                {
                    throw new Exception("排班信息获取失败,请重新尝试挂号!");
                }
                //预约日期
                if (string.IsNullOrEmpty(riQi))
                {
                    throw new Exception("预约日期获取失败,请重新尝试挂号!");
                }
                //挂号班次
                if (string.IsNullOrEmpty(guahaoBc))
                {
                    throw new Exception("挂号班次获取失败,请重新尝试挂号!");
                }
                //挂号类别
                if (string.IsNullOrEmpty(guahaoLb))
                {
                    throw new Exception("挂号类别获取失败,请重新尝试挂号!");
                }
                //科室代码
                if (string.IsNullOrEmpty(keshiDm))
                {
                    throw new Exception("科室信息获取失败,请重新尝试挂号!");
                }
                //挂号序号
                if (string.IsNullOrEmpty(guahaoXh))
                {
                    throw new Exception("预约挂号序号获取失败,请重新尝试挂号!");
                }
                //联系电话
                if (string.IsNullOrEmpty(lianxiDh))
                {
                    throw new Exception("联系电话获取失败,请重新尝试挂号!");
                }

                if (string.IsNullOrEmpty(yishengDm))
                {
                    yishengDm = "*";
                }

                if (string.IsNullOrEmpty(yuyueLy))
                {
                    yuyueLy = ConfigurationManager.AppSettings["GuaHaoYYLY"];
                    if (string.IsNullOrEmpty(yuyueLy))
                    {
                        yuyueLy = "7";
                    }
                }
                #endregion



                string chushengrq  = "";
                string xuexing     = "";
                string hunyin      = "";
                string zhiye       = "";
                string guoji       = "";
                string minzu       = "";
                string jiwangshi   = "";
                string guominshi   = "";
                string jiatingdz   = "";
                string lianxirdh   = "";
                string lianxiren   = "";
                string dianhua     = "";
                string houzhenkssj = "";
                string houzhenjssj = "";
                if (!string.IsNullOrEmpty(jiuzhenKh) || !string.IsNullOrEmpty(zhengjianHm) || !string.IsNullOrEmpty(bingrenId))
                {
                    //获取病人个人信息
                    StringBuilder sbSql = new StringBuilder("select a.jiuzhenkh,a.shenfenzh,xingbie, to_char(a.chushengrq,'yyyy-mm-dd') chushengrq,a.bingrenid, a.xuexing,a.hunyin,");
                    sbSql.Append(" a.zhiye,a.guoji,a.minzu,a.jiwangshi,a.guominshi,a.jiatingdz,a.lianxirdh,a.lianxiren,a.dianhua,a.lianxidh ");
                    sbSql.Append("from gy_v_bingrenxx a where ((a.jiuzhenkh is not null and  a.jiuzhenkh = '" + jiuzhenKh + "') or (a.yibaokh is not null and   a.yibaokh = '" + jiuzhenKh + "') or  (a.bingrenid is not null and a.bingrenid ='" + bingrenId + "') or (a.shenfenzh is not null and a.shenfenzh = '" + zhengjianHm + "'))   order by a.yibaokh asc, a.xiugaisj desc ");
                    DataTable dt = DBVisitor.ExecuteTable(sbSql.ToString());
                    if (dt.Rows.Count > 0)
                    {
                        jiuzhenKh   = dt.Rows[0]["jiuzhenkh"].ToString();
                        bingrenId   = dt.Rows[0]["bingrenid"].ToString();
                        zhengjianHm = dt.Rows[0]["shenfenzh"].ToString();
                        chushengrq  = dt.Rows[0]["chushengrq"].ToString();
                        xuexing     = dt.Rows[0]["xuexing"].ToString();
                        hunyin      = dt.Rows[0]["hunyin"].ToString();
                        zhiye       = dt.Rows[0]["zhiye"].ToString();
                        guoji       = dt.Rows[0]["guoji"].ToString();
                        minzu       = dt.Rows[0]["minzu"].ToString();
                        jiwangshi   = dt.Rows[0]["jiwangshi"].ToString();
                        guominshi   = dt.Rows[0]["guominshi"].ToString();
                        jiatingdz   = dt.Rows[0]["jiatingdz"].ToString();
                        lianxirdh   = dt.Rows[0]["lianxirdh"].ToString();
                        lianxiren   = dt.Rows[0]["lianxiren"].ToString();
                        dianhua     = dt.Rows[0]["dianhua"].ToString();
                        xingBie     = dt.Rows[0]["xingbie"].ToString();
                        if (string.IsNullOrEmpty(lianxiDh))
                        {
                            lianxiDh = string.IsNullOrEmpty(dianhua) ? dt.Rows[0]["lianxidh"].ToString() : dianhua;
                        }
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(zhengjianHm))
                        {
                            throw new Exception("证件号码不能为空!");
                        }
                    }
                }

                if (bingrenId == "null" || bingrenId == "Null" || bingrenId == "NULL")
                {
                    bingrenId = string.Empty;
                }

                #region 科室可预约年龄判断
                if (!Unity.shiFouKeGHNianLin(keshiDm, zhengjianHm))
                {
                    throw new Exception("年龄条件不符合,不能在本科室挂号/预约!");
                }
                #endregion
                #region 科室可预约性别判断
                if (!Unity.shiFouKeGHXingBie(keshiDm, zhengjianHm))
                {
                    throw new Exception("性别条件不符合,不能在本科室挂号/预约!");
                }
                #endregion

                #region 获取候诊时间
                string guaHaoHYMS = ConfigurationManager.AppSettings["GuaHaoYMS"];//挂号号源模式
                if (!string.IsNullOrEmpty(guaHaoHYMS) && guaHaoHYMS == "1")
                {
                }
                else
                {
                    OutObject.JIUZHENSJ = Unity.getJiuZhenSJD(yishengDm, keshiDm.ToString(), guahaoXh, yuyueLx, ((guahaoBc == "1") ? 0 : 1), guahaoLb, riQi);
                }
                if (OutObject.JIUZHENSJ.Contains("-"))
                {
                    houzhenkssj = OutObject.JIUZHENSJ.Split('-')[0];
                    houzhenjssj = OutObject.JIUZHENSJ.Split('-')[1];
                }
                #endregion


                //拼装交易字符串(2014-07-08,参考来源:his4.GHPKG.P_GH_BOOK)
                string jiaoyiZfc = bingrenId;                                    //外部病人ID为空
                jiaoyiZfc += "|" + jiuzhenKh;                                    //就诊卡号
                jiaoyiZfc += "|";                                                //医保卡号
                jiaoyiZfc += "|" + xingMing;                                     //姓名
                jiaoyiZfc += "|" + xingBie;                                      //性别
                jiaoyiZfc += "|" + zhengjianHm;                                  //证件号码
                jiaoyiZfc += "|" + chushengrq;                                   //出身日期
                jiaoyiZfc += "|" + xuexing;                                      //血型
                jiaoyiZfc += "|" + hunyin.Replace('|', '-');                     //婚姻状况
                jiaoyiZfc += "|" + zhiye;                                        //职业
                jiaoyiZfc += "|" + guoji;                                        //国籍
                jiaoyiZfc += "|" + minzu;                                        //民族
                jiaoyiZfc += "|" + jiwangshi;                                    //既往史
                jiaoyiZfc += "|" + guominshi;                                    //过敏史
                jiaoyiZfc += "|" + jiatingdz;                                    //家庭地址为空
                jiaoyiZfc += "|" + lianxiDh;                                     //联系电话
                jiaoyiZfc += "|" + lianxiren;                                    //联系人
                jiaoyiZfc += "|" + lianxiDh;                                     //联系电话
                jiaoyiZfc += "|" + (guahaoBc == "1" ? "S" : "X") + dangtianpbId; //排版ID
                jiaoyiZfc += "|2";                                               //排班模式
                jiaoyiZfc += "|" + riQi;                                         //就诊日期
                jiaoyiZfc += "|" + yuyueLx;                                      //预约类型
                jiaoyiZfc += "|" + yuyueLy;                                      //记录来源
                jiaoyiZfc += "|" + guahaoXh;                                     //预约挂号就诊序号
                jiaoyiZfc += "|";
                jiaoyiZfc += "|";
                jiaoyiZfc += "|" + InObject.BASEINFO.CAOZUOYDM;
                jiaoyiZfc += "|" + String.Empty; //yuyuehao 取号密码字段
                jiaoyiZfc += "|" + lianxiDh;     //家庭电话
                jiaoyiZfc += "|";                //单位电话
                jiaoyiZfc += "|" + houzhenkssj;  //候诊开始时间
                jiaoyiZfc += "|" + houzhenjssj;  //候诊结束时间

                //提交预约号-------------------------------------------------------------------------------------------
                OracleParameter[] paramJiaoYi = new OracleParameter[3];
                paramJiaoYi[0]           = new OracleParameter("PRM_JIAOYIZFC", OracleType.VarChar);
                paramJiaoYi[0].Value     = jiaoyiZfc;
                paramJiaoYi[0].Direction = ParameterDirection.Input;
                paramJiaoYi[1]           = new OracleParameter("PRM_APPCODE", OracleType.Number);
                paramJiaoYi[1].Value     = null;
                paramJiaoYi[1].Direction = ParameterDirection.Output;
                paramJiaoYi[2]           = new OracleParameter("PRM_DATABUFFER", OracleType.VarChar);
                paramJiaoYi[2].Value     = null;
                paramJiaoYi[2].Size      = 2000;
                paramJiaoYi[2].Direction = ParameterDirection.Output;

                log.InfoFormat("{0}", "执行存储过程:PKG_MZ_YUYUE.PRC_GY_TIJIAOYUYUEXX \r\nPRM_JIAOYIZFC:" + jiaoyiZfc + "\r\n");

                string        returnValue = string.Empty;
                DbTransaction transaction = null;
                DbConnection  conn        = DBVisitor.Connection;
                try
                {
                    transaction = conn.BeginTransaction();
                    DBVisitor.ExecuteProcedure("PKG_MZ_YUYUE.PRC_GY_TIJIAOYUYUEXX", paramJiaoYi, transaction);
                }
                catch (Exception ex)
                {
                    if (transaction != null)
                    {
                        transaction.Rollback();
                        conn.Close();
                    }
                    throw new Exception(ex.Message);
                }
                //--------------------------------------------------------------------------------------------------
                //String filePath = System.Environment.CurrentDirectory; //取当前系统路径
                string errMsg = string.Empty;
                returnValue = paramJiaoYi[2].Value.ToString();
                if (!returnValue.Contains("|"))
                {
                    transaction.Rollback();
                    conn.Close();
                    throw new Exception(returnValue);
                }

                if (returnValue.Length > 3 && returnValue.Substring(0, 3).ToUpper() == "ERR")//获取信息错误
                {
                    errMsg = returnValue.Substring(returnValue.IndexOf('|') + 1);
                    transaction.Rollback();
                    conn.Close();
                    throw new Exception(errMsg);
                }
                else
                {
                    string yuYueHao = string.Empty;
                    if (returnValue.Contains("|"))
                    {
                        yuYueHao = returnValue.Split('|')[1];
                        //此处需要处理返回成功的xml
                        OutObject.QUHAOMM  = yuYueHao;
                        OutObject.GUAHAOXH = guahaoXh;

                        transaction.Commit();
                        conn.Close();
                    }
                    else
                    {
                        transaction.Rollback();
                        conn.Close();
                        throw new Exception("存储过程返回值格式有误!");
                    }
                }
                #endregion
            }
        }
Exemplo n.º 7
0
        public override void ProcessMessage()
        {
            OutObject = new RENYUANXX_OUT();
            int  JIUZHENKCD   = Convert.ToInt32(ConfigurationManager.AppSettings["JIUZHENKCD"]);   //就诊卡默认长度
            char JIUZHENKTCZF = string.IsNullOrEmpty(ConfigurationManager.AppSettings["JIUZHENKTCZF"]) ? '0' :
                                ConfigurationManager.AppSettings["JIUZHENKTCZF"].ToCharArray()[0]; //就诊卡填充字符
            string jiuzhenkLx  = InObject.JIUZHENKLX;                                              //就诊卡类型
            string jiuzhenKh   = InObject.JIUZHENKH;                                               //就诊卡号
            string bingrenLb   = InObject.BINGRENLB;                                               //病人类别
            string yibaokLx    = InObject.YIBAOKLX;                                                //医保卡类型
            string yibaokMm    = InObject.YIBAOKMM;                                                //医保卡密码
            string yibaokXx    = InObject.YIBAOKXX;                                                //医保卡信息
            string yiliaoLb    = InObject.YILIAOLB;                                                //医疗类别
            string jiesuanLb   = InObject.JIESUANLB;                                               //结算类别
            string jiuzhenRq   = InObject.JIUZHENRQ;                                               //就诊日期
            string qianfeiKz   = InObject.QIANFEIKZ;                                               //欠费控制
            string yinhangKh   = InObject.YINHANGKH;                                               //银行卡号
            string caozuoyDm   = InObject.BASEINFO.CAOZUOYDM;                                      //操作员工号
            string zhengJianHm = InObject.ZHENGJIANHM;                                             //证件号码
            string bingRenId   = InObject.BINGRENID;                                               //病人ID

            #region 基本入参判断
            //就诊卡号
            if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengJianHm) && string.IsNullOrEmpty(bingRenId))
            {
                throw new Exception("就诊卡号和证件号不能同时为空");
            }

            if (string.IsNullOrEmpty(jiuzhenKh))
            {
                jiuzhenKh = string.Empty;
            }

            //病人类别
            //if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(bingrenLb))
            //{
            //    throw new Exception("病人类别获取失败");
            //}

            //医疗类别
            //if (string.IsNullOrEmpty(yiliaoLb))
            //{
            //    throw new Exception("医疗类别获取失败");
            //}

            //结算类别
            //if (string.IsNullOrEmpty(jiesuanLb))
            //{
            //    throw new Exception("结算类别获取失败");
            //}
            #endregion

            #region 获取病人信息
            StringBuilder sbSql = new StringBuilder("select a.bingrenid,a.jiuzhenkh,a.feiyonglb bingrenlb,a.feiyongxz bingrenxz,a.yibaokh, ");
            sbSql.Append("a.gerenbh,a.binganhao binglibh,a.xingming,a.xingbie,a.minzu,to_char(a.chushengrq,'yyyy-mm-dd') chushengrq, ");
            sbSql.Append("'1' zhengjianlx,a.shenfenzh zhengjianhm,'' danweilx,'' danweibh,a.gongzuodw danweimc, ");
            sbSql.Append("a.jiatingdz jiatingzz,'' renyuanlb,nvl(b.qimoje,0) dangnianzhye,nvl(b.qimoje,0) linianzhye,a.teshubz teshubzbz, ");
            sbSql.Append("'' teshubzspbh,a.yibaobrxx,'' tishixx,a.youhuilb daiyulb,'' canbaoxzdm,'' teshudylb,");
            sbSql.Append("'' qianfeije,'' hisbrxx, lianxidh,'' qianyuebz,nvl(a.zijinzhqybz,0) kaihuzt,");
            sbSql.Append("''xunizh,'' guahaohmd,nvl(b.qimoje,0) zhanghuye,b.jiaoyimm jiaoyimm ,empiid ");
            sbSql.Append("from gy_v_bingrenxx a ,gy_zijinzh b where a.bingrenid = b.bingrenid(+) ");

            #region 就诊卡自动长度补全
            if (JIUZHENKCD > 0)
            {
                if (jiuzhenKh.Length < JIUZHENKCD)
                {
                    jiuzhenKh = jiuzhenKh.PadLeft(JIUZHENKCD, JIUZHENKTCZF);
                }
            }
            #endregion

            sbSql.Append(" and (a.jiuzhenkh='" + jiuzhenKh + "' or a.yibaokh='" + jiuzhenKh.TrimStart('0') + "' or nvl(a.shenfenzh,'*') = '" + zhengJianHm + "'  or a.bingrenid = '" + bingRenId + "' ) ");


            if (!string.IsNullOrEmpty(yinhangKh) && yinhangKh != "-1")
            {
                sbSql.Append(" and a.YILIANMA='" + yinhangKh + "' ");//银行卡号过滤
            }
            sbSql.Append(" order by a.yibaokh asc, a.xiugaisj desc ");
            #endregion
            #region 错误执行及错误判断
            DataTable dt = new DataTable();
            try
            {
                dt = DBVisitor.ExecuteTable(sbSql.ToString());
                if (dt.Rows.Count <= 0)//返回数据空
                {
                    throw new Exception("该卡未建档,请前往人工服务台建档!");
                }
                else
                {
                    OutObject.BINGRENID   = dt.Rows[0]["BINGRENID"].ToString();                                                        //病人ID
                    OutObject.JIUZHENKH   = dt.Rows[0]["JIUZHENKH"].ToString();                                                        //就诊卡号
                    OutObject.BINGRENLB   = dt.Rows[0]["BINGRENLB"].ToString();                                                        //病人类别
                    OutObject.BINGRENXZ   = dt.Rows[0]["BINGRENXZ"].ToString();                                                        //病人性质
                    OutObject.YIBAOKH     = dt.Rows[0]["YIBAOKH"].ToString();                                                          //医保卡号
                    OutObject.GERENBH     = dt.Rows[0]["GERENBH"].ToString();                                                          //个人编号
                    OutObject.BINGLIBH    = dt.Rows[0]["BINGLIBH"].ToString();                                                         //病历本号
                    OutObject.XINGMING    = dt.Rows[0]["XINGMING"].ToString();                                                         //姓名
                    OutObject.XINGBIE     = dt.Rows[0]["XINGBIE"].ToString();                                                          //性别
                    OutObject.MINZU       = dt.Rows[0]["MINZU"].ToString();                                                            //民族
                    OutObject.CHUSHENGRQ  = dt.Rows[0]["CHUSHENGRQ"].ToString();                                                       //出生日期
                    OutObject.ZHENGJIANLX = dt.Rows[0]["ZHENGJIANLX"].ToString();                                                      //证件类别
                    OutObject.ZHENGJIANHM = dt.Rows[0]["ZHENGJIANHM"].ToString();                                                      //证件号码
                    OutObject.DANWEILX    = dt.Rows[0]["DANWEILX"].ToString();                                                         //单位类型
                    OutObject.DANWEIBH    = dt.Rows[0]["DANWEIBH"].ToString();                                                         //单位编号
                    OutObject.DANWEIMC    = dt.Rows[0]["DANWEIMC"].ToString().Replace("<", "(").Replace(">", ")");                     //单位名称

                    OutObject.JIATINGZZ    = dt.Rows[0]["JIATINGZZ"].ToString().Replace("<", "(").Replace(">", ")");                   //家庭住址
                    OutObject.RENYUANLB    = dt.Rows[0]["RENYUANLB"].ToString();                                                       //人员类别
                    OutObject.DANGNIANZHYE = dt.Rows[0]["DANGNIANZHYE"].ToString();                                                    //当年账户余额
                    OutObject.LINIANZHYE   = dt.Rows[0]["LINIANZHYE"].ToString();                                                      //历年账户余额
                    OutObject.TESHUBZBZ    = dt.Rows[0]["TESHUBZBZ"].ToString();                                                       //特殊病种标识
                    OutObject.TESHUBZSPBH  = dt.Rows[0]["TESHUBZSPBH"].ToString();                                                     //特殊病种审批编号
                    OutObject.YIBAOBRXX    = dt.Rows[0]["YIBAOBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //医保病人信息
                    OutObject.TISHIXX      = dt.Rows[0]["TISHIXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|");   //提示信息
                    OutObject.DAIYULB      = dt.Rows[0]["DAIYULB"].ToString();                                                         //待遇类别
                    OutObject.CANBAOXZDM   = dt.Rows[0]["CANBAOXZDM"].ToString();                                                      //参保性质代码
                    OutObject.TESHUDYLB    = dt.Rows[0]["TESHUDYLB"].ToString();                                                       //特殊待遇类别
                    OutObject.HISBRXX      = dt.Rows[0]["HISBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|");   //his病人信息
                    OutObject.LIANXIDH     = dt.Rows[0]["LIANXIDH"].ToString();                                                        //联系电话
                    OutObject.QIANYUEBZ    = dt.Rows[0]["QIANYUEBZ"].ToString();                                                       //签约标识
                    OutObject.KAIHUZT      = dt.Rows[0]["KAIHUZT"].ToString();                                                         //开户状态
                    OutObject.XUNIZH       = dt.Rows[0]["XUNIZH"].ToString();                                                          //虚拟账户
                    OutObject.GUAHAOHMD    = dt.Rows[0]["GUAHAOHMD"].ToString();                                                       //挂号黑名单
                    OutObject.ZHANGHUYE    = dt.Rows[0]["ZHANGHUYE"].ToString();                                                       //挂号黑名单
                    OutObject.JIAOYIMM     = dt.Rows[0]["JIAOYIMM"].ToString();                                                        //院内账户交易密码
                    OutObject.EMPIID       = dt.Rows[0]["EMPIID"].ToString();                                                          //实名制认证
                    //医保类型名称
                    OutObject.YIBAOBXLX = DBVisitor.ExecuteScalar(string.Format("select a.yewujh from yb_baoxianlb a,gy_feiyonglb b where a.yibaoid(+)=b.yibaoid and b.leibieid = {0} ", OutObject.BINGRENLB)).ToString();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            #endregion
        }
Exemplo n.º 8
0
        public override void ProcessMessage()
        {
            string jiuzhenkLx    = InObject.JIUZHENKLX;         //就诊卡类型
            string jiuzhenKh     = InObject.JIUZHENKH;          //就诊卡号
            string bingrenLb     = InObject.BINGRENLB;          //病人类别
            string yibaokLx      = InObject.YIBAOKLX;           //医保卡类型
            string yibaokXx      = InObject.YIBAOKXX;           //医保卡信息
            string yibaokh       = InObject.YIBAOKH;            //医保卡号
            string gerenBh       = InObject.GERENBH;            //个人编号
            string bingliBh      = InObject.BINGLIBH;           //病历本号
            string xingMing      = InObject.XINGMING;           //姓名
            string xingBie       = InObject.XINGBIE;            //性别
            string minZu         = InObject.MINZU;              //民族
            string chushengRq    = InObject.CHUSHENGRQ;         //出生日期 YYYT-MM-DD
            string zhengjianLx   = InObject.ZHENGJIANLX;        //证件类型
            string zhengjianHm   = InObject.ZHENGJIANHM;        //证件号码
            string danweiLx      = InObject.DANWEILX;           //单位类型
            string danweiBh      = InObject.DANWEIBH;           //单位编号
            string danweiMc      = InObject.DANWEIMC;           //单位名称
            string jiatingZz     = InObject.JIATINGZZ;          //家庭住址
            string renyuanLb     = InObject.RENYUANLB;          //人员类别
            string lianxiDh      = InObject.LIANXIDH;           //联系电话
            string yinhangKh     = InObject.YINHANGKH;          //银行卡号
            string qianyueBz     = InObject.QIANYUEBZ;          //签约标识
            string yiliaoLb      = InObject.YILIAOLB;           //医疗类别
            string jiesuanLb     = InObject.JIESUANLB;          //结算类别
            string yibaokMm      = InObject.YIBAOKMM;           //医保卡密码
            string photo         = InObject.PHOTO;              //照片 二进制码流
            string shifouYk      = InObject.SHIFOUYK;           //是否有卡
            string bangdingYhk   = InObject.BANGDINGYHK;        //绑定银行卡
            string zhongduansbXx = InObject.ZHONGDUANSBXX;      //终端识别信息
            string bingrenXz     = InObject.BINGRENXZ;          //病人性质
            string chongzhiJe    = InObject.CHONGZHIJE;         //充值金额
            string zhifuFs       = InObject.ZHIFUFS;            //支付方式
            string jiandangRen   = InObject.BASEINFO.CAOZUOYDM; //建档人工号
            string caozuoRq      = InObject.BASEINFO.CAOZUORQ;  //操作日期
            string empiId        = InObject.EMPIID;             //实名制认证标识

            OutObject = new RENYUANZC_OUT();

            int  JIUZHENKCD   = Convert.ToInt32(ConfigurationManager.AppSettings["JIUZHENKCD"]);   //就诊卡默认长度
            char JIUZHENKTCZF = string.IsNullOrEmpty(ConfigurationManager.AppSettings["JIUZHENKTCZF"]) ? '0' :
                                ConfigurationManager.AppSettings["JIUZHENKTCZF"].ToCharArray()[0]; //就诊卡填充字符

            #region 基本入参判断
            if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(yibaokh))
            {
                throw new Exception("就诊卡号和医保卡号不能同时为空!");
            }

            if (string.IsNullOrEmpty(jiuzhenKh))
            {
                jiuzhenKh = yibaokh;
            }

            if (string.IsNullOrEmpty(zhengjianHm))
            {
                throw new Exception("证件号码不能为空!");
            }

            if (string.IsNullOrEmpty(xingMing))
            {
                throw new Exception("病人姓名不能为空!");
            }
            if (string.IsNullOrEmpty(xingBie))
            {
                throw new Exception("病人性别不能为空!");
            }

            if (string.IsNullOrEmpty(chushengRq))
            {
                throw new Exception("出生日期不能为空!");
            }

            if (string.IsNullOrEmpty(jiatingZz))
            {
                throw new Exception("家庭住址不能为空!");
            }
            if (string.IsNullOrEmpty(lianxiDh))
            {
                throw new Exception("联系电话不能为空!");
            }
            #endregion

            #region 检查档案状态


            StringBuilder sbSql = new StringBuilder("select a.bingrenid,a.jiuzhenkh ,a.xingming ");
            sbSql.Append("from gy_v_bingrenxx a ,gy_zijinzh b where a.bingrenid = b.bingrenid(+) ");

            #region 就诊卡自动长度补全
            if (JIUZHENKCD > 0)
            {
                if (jiuzhenKh.Length < JIUZHENKCD)
                {
                    jiuzhenKh = jiuzhenKh.PadLeft(JIUZHENKCD, JIUZHENKTCZF);
                }
            }
            #endregion
            sbSql.Append(" and (a.jiuzhenkh='" + jiuzhenKh + "' or a.yibaokh='" + yibaokh + "' or nvl(a.shenfenzh,'*') = '" + zhengjianHm + "' ) ");
            sbSql.Append(" order by a.yibaokh asc, a.xiugaisj desc ");
            #endregion

            DataTable dtRenYuanXX = DBVisitor.ExecuteTable(sbSql.ToString());
            if (dtRenYuanXX == null || dtRenYuanXX.Rows.Count <= 0)
            {
                #region 建档

                string sqlStr     = "select FUN_GY_GETORDER('1', 'GY_BINGRENXX', 10) as bingrenid from dual ";
                string bingrenId  = DBVisitor.ExecuteScalar(sqlStr).ToString();
                string shoukuanRq = Convert.ToDateTime(caozuoRq).ToString("yyyy-MM-dd HH:mm:ss");
                string jiaoyanMa  = Unity.GetMD5(bingrenId + Convert.ToSingle(chongzhiJe).ToString("f4") + shoukuanRq + "1" + jiandangRen).ToLower();

                //医保卡信息特殊处理
                if (!string.IsNullOrEmpty(yibaokXx) && yibaokXx.Contains('$'))
                {
                    yibaokXx = yibaokXx.Replace('$', '&');
                }

                #region 医保病人需要转化获取所需的性质ID
                //联众医保yibaobrxz不填,要在包里取//add by renj
                //if (bingrenLb != "1")
                //{
                //    string sqlYb = string.Format("select xingzhiid from gy_feiyongxz where feiyonglb='{0}' and yibaobrxz='{1}'", bingrenLb, bingrenXz);
                //    bingrenXz = new DBServer().GetCurrData(sqlYb);
                //}
                #endregion
                #region 性别信息转换
                if (xingBie == "0")
                {
                    xingBie = "未知";
                }
                else if (xingBie == "1")
                {
                    xingBie = "男";
                }
                else if (xingBie == "2")
                {
                    xingBie = "女";
                }
                else
                {
                    xingBie = "其他";
                }
                #endregion

                #region 入参信息拼装
                //病人性质? 建档人?
                //数据库包中有建档自动开启电子账户功能 可通过注释包语句进行该功能的关闭
                string tradeMsgList = jiuzhenkLx + "|" + jiuzhenKh + "|" + bingrenLb + "|" + yibaokLx + "|" + yibaokXx + "|" + yibaokh + "|"
                                      + gerenBh + "|" + bingliBh + "|" + xingMing + "|" + xingBie + "|" + minZu + "|" + chushengRq + "|"
                                      + zhengjianLx + "|" + zhengjianHm + "|" + danweiLx + "|" + danweiBh + "|" + danweiMc + "|" + jiatingZz + "|"
                                      + renyuanLb + "|" + lianxiDh + "|" + yinhangKh + "|" + qianyueBz + "|" + yiliaoLb + "|" + jiesuanLb + "|"
                                      + yibaokMm + "|" + photo + "|" + shifouYk + "|" + bangdingYhk + "|" + zhongduansbXx + "|" + jiandangRen + "|"
                                      + chongzhiJe + "|" + bingrenId + "|" + zhifuFs + "|" + shoukuanRq + "|" + jiaoyanMa + "|" + bingrenXz + "|";

                //LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "建档交易入参:" + tradeMsgList);//交易入参日志
                #endregion

                OracleParameter[] paramJiaoYi = new OracleParameter[3];
                paramJiaoYi[0]           = new OracleParameter("PRM_MSG", OracleType.VarChar);
                paramJiaoYi[0].Value     = tradeMsgList;
                paramJiaoYi[0].Direction = ParameterDirection.Input;
                paramJiaoYi[1]           = new OracleParameter("PRM_APPCODE", OracleType.Number);
                paramJiaoYi[1].Value     = null;
                paramJiaoYi[1].Direction = ParameterDirection.Output;
                paramJiaoYi[2]           = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar);
                paramJiaoYi[2].Value     = null;
                paramJiaoYi[2].Size      = 2000;
                paramJiaoYi[2].Direction = ParameterDirection.Output;

                string        returnValue = string.Empty;
                DbTransaction transaction = null;
                DbConnection  conn        = DBVisitor.Connection;
                try
                {
                    transaction = conn.BeginTransaction();
                    DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_BINGRENJD", paramJiaoYi, transaction);
                }
                catch (Exception ex)
                {
                    if (transaction != null)
                    {
                        transaction.Rollback();
                        //transaction.Connection.Close();
                    }
                    throw new Exception(ex.Message);
                }
                returnValue = paramJiaoYi[1].Value.ToString();
                string returnMsg = paramJiaoYi[2].Value.ToString();
                string zhanghuId = string.Empty;
                if (returnValue == "1")//建档及生成虚拟账户成功
                {
                    transaction.Commit();
                    //transaction.Connection.Close();
                    //zhanghuId = returnMsg.Split('|')[1];//账户ID
                    //此处需要处理返回成功的xml
                    OutObject.JIUZHENKH = jiuzhenKh;
                    OutObject.BINGRENID = bingrenId;
                    //OutObject.XUNIZH = zhanghuId;
                }
                else
                {
                    transaction.Rollback();
                    //transaction.Connection.Close();
                    throw new Exception(returnMsg);
                }
                #endregion
            }
            else
            {
                if (InObject.XINGMING != dtRenYuanXX.Rows[0]["xingming"].ToString())
                {
                    throw new Exception("该卡号和病人姓名不匹配,请核查!");
                }

                OutObject.JIUZHENKH = dtRenYuanXX.Rows[0]["jiuzhenkh"].ToString();
                OutObject.BINGRENID = dtRenYuanXX.Rows[0]["bingrenid"].ToString();
            }

            if (!string.IsNullOrEmpty(OutObject.BINGRENID) && !string.IsNullOrEmpty(empiId))
            {
                DBVisitor.ExecuteNonQuery(string.Format(" update gy_bingrenxx set empiid ='{0}' where bingrenid = '{1}' ", empiId, OutObject.BINGRENID));
            }
        }
Exemplo n.º 9
0
        public override void ProcessMessage()
        {
            string bingrenZYId = InObject.BINGRENZYID; //病人ID
            string kaishiRq    = InObject.KAISHIRQ;    //开始日期
            string jieshuRq    = InObject.JIESHURQ;    //结束日期
            string jiaoyiMm    = InObject.JIAOYANMM;   //交易密码
            string tongjiFs    = InObject.TONGJIFS;    //统计方式
            string tongJiFL    = InObject.TONGJIFL;    //统计分类

            OutObject = new ZHUYUANFYMX_OUT();

            #region 基本入参判断
            if (string.IsNullOrEmpty(bingrenZYId))
            {
                throw new Exception("病人ID不能为空");
            }

            //if (string.IsNullOrEmpty(jiaoyiMm)) {
            //    throw new Exception("交易密码不能为空");
            //}

            if (string.IsNullOrEmpty(kaishiRq))
            {
                string sqlRYRQ = "select to_char(ruyuanrq,'yyyy-mm-dd') from zy_bingrenxx where bingrenzyid = '{0}'";
                kaishiRq = DBVisitor.ExecuteScalar(string.Format(sqlRYRQ, bingrenZYId)).ToString();
            }

            if (string.IsNullOrEmpty(jieshuRq))
            {
                string sqlJSRQ = "select to_char(sysdate,'yyyy-mm-dd') from dual";
                jieshuRq = DBVisitor.ExecuteScalar(sqlJSRQ).ToString();
            }

            if (string.IsNullOrEmpty(tongjiFs))
            {
                tongjiFs = "2";
            }
            else if (tongjiFs != "1" && tongjiFs != "2")
            {
                throw new Exception("统计方式必须为:1:日清单;2:汇总清单,请选择正确的统计方式");
            }
            #endregion


            if (tongjiFs == "1")
            {
                if (string.IsNullOrEmpty(kaishiRq))
                {
                    throw new Exception("请确认需查询日期!");
                }

                StringBuilder sbSql = new StringBuilder("SELECT to_char(a.jifeirq,'yyyy-mm-dd') jifeirq,b.hesuanxmmc as feiyonglx,a.xiangmuid as xiangmuxh, ");
                sbSql.Append("a.xiangmuid as xiangmucddm,a.xiangmumc, b.hesuanxmid as xiangmugl,b.hesuanxmmc as xiangmuglmc,a.yaopingg as xiangmugg,'' xiangmujx, ");
                sbSql.Append("a.jijiadw xiangmudw,'' xiangmucdmc,to_char(a.jiesuanjia,'FM9999999999999990.0099') as danjia,a.shuliang,to_char(round(a.jiesuanje,2),'FM9999999999999990.00') as jine,a.yibaodj, ");
                sbSql.Append("a.yibaozfbl,a.xianjia as xiangmuxj,a.zifeije,a.zilije,a.kaidanks as kaidanksdm,a.kaidanksmc, ");
                sbSql.Append("a.kaidanys as kaidanysdm,a.kaidanysxm ");
                sbSql.Append("FROM ZY_FEIYONG1 a,gy_hesuanxm b,zy_bingrenxx c,gy_xiangmulx d ");
                sbSql.Append("WHERE b.hesuanxmid(+)=a.hesuanxm and c.BINGRENZYID = a.bingrenzyid and d.daimaid(+) = a.xiangmulx ");
                sbSql.Append(" and a.shuliang > 0 and a.feiyongid not in (select yuanfeiyid from zy_feiyong1 where bingrenzyid = '" + bingrenZYId + "' and shuliang < 0) ");
                sbSql.Append("and  (c.bingrenzyid='" + bingrenZYId + "' or a.MUQINZYID ='" + bingrenZYId + "') ");
                sbSql.Append("and a.jifeirq>=to_date('" + kaishiRq + " 00:00:00','yyyy-mm-dd hh24:mi:ss') ");
                sbSql.Append("and a.jifeirq<=to_date('" + kaishiRq + " 23:59:59','yyyy-mm-dd hh24:mi:ss') ");
                sbSql.Append(" order by a.hesuanxm,a.jifeirq desc ");
                DataTable dtFYXX = DBVisitor.ExecuteTable(sbSql.ToString());

                if (dtFYXX.Rows.Count > 0)
                {
                    OutObject.FEIYONGMXTS = dtFYXX.Rows.Count.ToString();//费用明细条数

                    for (int i = 0; i < dtFYXX.Rows.Count; i++)
                    {
                        FEIYONGXX_ZY zyFyxx = new FEIYONGXX_ZY();
                        zyFyxx.JIFEIRQ     = dtFYXX.Rows[i]["JIFEIRQ"].ToString();     //计费日期
                        zyFyxx.FEIYONGLX   = dtFYXX.Rows[i]["FEIYONGLX"].ToString();   //费用类型
                        zyFyxx.XIANGMUXH   = dtFYXX.Rows[i]["XIANGMUXH"].ToString();   //项目序号
                        zyFyxx.XIANGMUCDDM = dtFYXX.Rows[i]["XIANGMUCDDM"].ToString(); //项目产品代码
                        zyFyxx.XIANGMUMC   = dtFYXX.Rows[i]["XIANGMUMC"].ToString();   //项目名称
                        zyFyxx.XIANGMUGL   = dtFYXX.Rows[i]["XIANGMUGL"].ToString();   //项目归类
                        zyFyxx.XIANGMUGLMC = dtFYXX.Rows[i]["XIANGMUGLMC"].ToString(); //项目归类名称
                        zyFyxx.XIANGMUGG   = dtFYXX.Rows[i]["XIANGMUGG"].ToString();   //项目规格
                        zyFyxx.XIANGMUJX   = dtFYXX.Rows[i]["XIANGMUJX"].ToString();   //项目剂型
                        zyFyxx.XIANGMUDW   = dtFYXX.Rows[i]["XIANGMUDW"].ToString();   //项目单位
                        zyFyxx.XIANGMUCDMC = dtFYXX.Rows[i]["XIANGMUCDMC"].ToString(); //项目产地名称
                        zyFyxx.DANJIA      = dtFYXX.Rows[i]["DANJIA"].ToString();      //单价
                        zyFyxx.SHULIANG    = dtFYXX.Rows[i]["SHULIANG"].ToString();    //数量
                        zyFyxx.JINE        = dtFYXX.Rows[i]["JINE"].ToString();        //金额
                        zyFyxx.YIBAODJ     = dtFYXX.Rows[i]["YIBAODJ"].ToString();     //医保等级
                        zyFyxx.YIBAOZFBL   = dtFYXX.Rows[i]["YIBAOZFBL"].ToString();   //医保自负比例
                        zyFyxx.XIANGMUXJ   = dtFYXX.Rows[i]["XIANGMUXJ"].ToString();   //项目限价
                        zyFyxx.ZIFEIJE     = dtFYXX.Rows[i]["ZIFEIJE"].ToString();     //自费金额
                        zyFyxx.ZILIJE      = dtFYXX.Rows[i]["ZILIJE"].ToString();      //自理金额
                        zyFyxx.KAIDANKSDM  = dtFYXX.Rows[i]["KAIDANKSDM"].ToString();  //开单科室代码
                        zyFyxx.KAIDANKSMC  = dtFYXX.Rows[i]["KAIDANKSMC"].ToString();  //开单科室名称
                        zyFyxx.KAIDANYSDM  = dtFYXX.Rows[i]["KAIDANYSDM"].ToString();  //开单医生代码
                        zyFyxx.KAIDANYSXM  = dtFYXX.Rows[i]["KAIDANYSXM"].ToString();  //开单医生姓名

                        OutObject.FEIYONGMX_ZY.Add(zyFyxx);
                    }
                }
            }
            else if (tongjiFs == "2")
            {
                StringBuilder sbSql = new StringBuilder("SELECT to_char(a.jifeirq,'yyyy-mm-dd') jifeirq,b.hesuanxmmc as feiyonglx,a.xiangmuid as xiangmuxh, ");
                sbSql.Append("a.xiangmuid as xiangmucddm,a.xiangmumc, b.hesuanxmid as xiangmugl,b.hesuanxmmc as xiangmuglmc,a.yaopingg as xiangmugg,'' xiangmujx, ");
                sbSql.Append("a.jijiadw xiangmudw,'' xiangmucdmc,to_char(a.jiesuanjia,'FM9999999999999990.0099') as danjia,a.shuliang,to_char(round(a.jiesuanje,2),'FM9999999999999990.00') as jine,a.yibaodj, ");
                sbSql.Append("a.yibaozfbl,a.xianjia as xiangmuxj,a.zifeije,a.zilije,a.kaidanks as kaidanksdm,a.kaidanksmc, ");
                sbSql.Append("a.kaidanys as kaidanysdm,a.kaidanysxm ");
                sbSql.Append("FROM ZY_FEIYONG1 a,gy_hesuanxm b,zy_bingrenxx c,gy_xiangmulx d ");
                sbSql.Append("WHERE b.hesuanxmid(+)=a.hesuanxm and c.BINGRENZYID = a.bingrenzyid and d.daimaid(+) = a.xiangmulx ");
                sbSql.Append(" and a.shuliang > 0 and a.feiyongid not in (select yuanfeiyid from zy_feiyong1 where bingrenzyid = '" + bingrenZYId + "' and shuliang < 0) ");
                sbSql.Append("and c.bingrenzyid='" + bingrenZYId + "' ");

                if (kaishiRq != string.Empty)
                {
                    sbSql.Append("and a.jifeirq>=to_date('" + kaishiRq + " 00:00:00','yyyy-mm-dd hh24:mi:ss') ");
                }
                if (jieshuRq != string.Empty)
                {
                    sbSql.Append("and a.jifeirq<=to_date('" + jieshuRq + " 23:59:59','yyyy-mm-dd hh24:mi:ss') ");
                }
                //if (jiaoyiMm != string.Empty)
                //    sbSql.Append("and substr(c.shenfenzh,length(c.shenfenzh)-5,6)='" + jiaoyiMm + "' ");
                if (!string.IsNullOrEmpty(tongJiFL))
                {
                    sbSql.Append(" and a.hesuanxm = '" + tongJiFL + "'  ");
                }

                sbSql.Append(" order by jifeirq desc ");

                DataTable dtFYXX = DBVisitor.ExecuteTable(sbSql.ToString());
                if (dtFYXX.Rows.Count > 0)
                {
                    OutObject.FEIYONGMXTS = dtFYXX.Rows.Count.ToString();//费用明细条数

                    for (int i = 0; i < dtFYXX.Rows.Count; i++)
                    {
                        FEIYONGXX_ZY zyFyxx = new FEIYONGXX_ZY();
                        zyFyxx.JIFEIRQ     = dtFYXX.Rows[i]["JIFEIRQ"].ToString();     //计费日期
                        zyFyxx.FEIYONGLX   = dtFYXX.Rows[i]["FEIYONGLX"].ToString();   //费用类型
                        zyFyxx.XIANGMUXH   = dtFYXX.Rows[i]["XIANGMUXH"].ToString();   //项目序号
                        zyFyxx.XIANGMUCDDM = dtFYXX.Rows[i]["XIANGMUCDDM"].ToString(); //项目产品代码
                        zyFyxx.XIANGMUMC   = dtFYXX.Rows[i]["XIANGMUMC"].ToString();   //项目名称
                        zyFyxx.XIANGMUGL   = dtFYXX.Rows[i]["XIANGMUGL"].ToString();   //项目归类
                        zyFyxx.XIANGMUGLMC = dtFYXX.Rows[i]["XIANGMUGLMC"].ToString(); //项目归类名称
                        zyFyxx.XIANGMUGG   = dtFYXX.Rows[i]["XIANGMUGG"].ToString();   //项目规格
                        zyFyxx.XIANGMUJX   = dtFYXX.Rows[i]["XIANGMUJX"].ToString();   //项目剂型
                        zyFyxx.XIANGMUDW   = dtFYXX.Rows[i]["XIANGMUDW"].ToString();   //项目单位
                        zyFyxx.XIANGMUCDMC = dtFYXX.Rows[i]["XIANGMUCDMC"].ToString(); //项目产地名称
                        zyFyxx.DANJIA      = dtFYXX.Rows[i]["DANJIA"].ToString();      //单价
                        zyFyxx.SHULIANG    = dtFYXX.Rows[i]["SHULIANG"].ToString();    //数量
                        zyFyxx.JINE        = dtFYXX.Rows[i]["JINE"].ToString();        //金额
                        zyFyxx.YIBAODJ     = dtFYXX.Rows[i]["YIBAODJ"].ToString();     //医保等级
                        zyFyxx.YIBAOZFBL   = dtFYXX.Rows[i]["YIBAOZFBL"].ToString();   //医保自负比例
                        zyFyxx.XIANGMUXJ   = dtFYXX.Rows[i]["XIANGMUXJ"].ToString();   //项目限价
                        zyFyxx.ZIFEIJE     = dtFYXX.Rows[i]["ZIFEIJE"].ToString();     //自费金额
                        zyFyxx.ZILIJE      = dtFYXX.Rows[i]["ZILIJE"].ToString();      //自理金额
                        zyFyxx.KAIDANKSDM  = dtFYXX.Rows[i]["KAIDANKSDM"].ToString();  //开单科室代码
                        zyFyxx.KAIDANKSMC  = dtFYXX.Rows[i]["KAIDANKSMC"].ToString();  //开单科室名称
                        zyFyxx.KAIDANYSDM  = dtFYXX.Rows[i]["KAIDANYSDM"].ToString();  //开单医生代码
                        zyFyxx.KAIDANYSXM  = dtFYXX.Rows[i]["KAIDANYSXM"].ToString();  //开单医生姓名

                        OutObject.FEIYONGMX_ZY.Add(zyFyxx);
                    }
                }
            }
        }
Exemplo n.º 10
0
        public override void ProcessMessage()
        {
            string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型
            string jiuzhenKh  = InObject.JIUZHENKH;  //就诊卡号
            string bingrenLb  = InObject.BINGRENLB;  //病人类别
            string bingrenXz  = InObject.BINGRENXZ;  //病人性质
            string yibaokLx   = InObject.YIBAOKLX;   //医保卡类型
            string yibaokMm   = InObject.YIBAOKMM;   //医保卡密码
            string yibaokXx   = InObject.YIBAOKXX;   //医保卡信息
            string yibaobrXx  = InObject.YIBAOBRXX;  //医保病人信息
            string yiliaoLb   = InObject.YILIAOLB;   //医疗类别
            string jiesuanLb  = InObject.JIESUANLB;  //结算类别
            string jiesuanId  = InObject.JIESUANID;  //结算ID
            string hisbrXx    = InObject.HISBRXX;    //his病人信息
            //string zhifuLx = BaseCommon.GetNoteValue(tradeMsg, tradeType, "ZHIFULX");
            string zhifuJe = InObject.ZONGJE;        //总金额
            //string yinhangkXx = BaseCommon.GetNoteValue(tradeMsg, tradeType, "YINHANGKXX");
            string caozuoyDm = InObject.BASEINFO.CAOZUOYDM;
            string caozuoyXm = InObject.BASEINFO.CAOZUOYXM;
            string caozuoRq  = InObject.BASEINFO.CAOZUORQ;
            string jiaoyiLsh = InObject.BASEINFO.ZHONGDUANLSH;//终端流水号即交易流水号??

            #region 基础入参判断

            //就诊卡号
            if (string.IsNullOrEmpty(jiuzhenKh))
            {
                throw new Exception("就诊卡号获取失败");
            }

            //就诊卡类型
            if (string.IsNullOrEmpty(jiuzhenkLx))
            {
                throw new Exception("就诊卡类型获取失败");
            }

            //病人类别
            if (string.IsNullOrEmpty(bingrenLb))
            {
                throw new Exception("病人类别获取失败");
            }

            //病人性质
            if (string.IsNullOrEmpty(bingrenXz))
            {
                throw new Exception("病人性质获取失败");
            }
            #endregion

            string bingrenId   = DBVisitor.ExecuteScalar(string.Format("select bingrenid from gy_bingrenxx where jiuzhenkh='{0}'", jiuzhenKh)).ToString();
            string fapiaoId    = string.Empty;
            string zhifuLx     = string.Empty;
            string zhifuFs     = "1";       //支付方式?
            string jiesuanIds  = jiesuanId; //结算单字符串?
            string yhjiaoyiLsh = string.Empty;
            string yibaojsId   = string.Empty;
            string yinhangkXx  = string.Empty;
            string jiaoyiMsg   = bingrenId + "|" + caozuoyDm + "|" + zhifuFs + "|"
                                 + jiesuanIds + "|" + zhifuJe + "|" + jiaoyiLsh + "|" + fapiaoId + "|"
                                 + caozuoRq + "|" + jiuzhenKh + "|" + zhifuLx + "|" + yinhangkXx + "|" + yibaojsId + "|";

            //门诊收费-------------------------------------------------------------------------------------------

            OracleParameter[] paramJiaoYi = new OracleParameter[3];
            paramJiaoYi[0]           = new OracleParameter("PRM_MSG", OracleType.VarChar);
            paramJiaoYi[0].Value     = jiaoyiMsg;
            paramJiaoYi[0].Direction = ParameterDirection.Input;
            paramJiaoYi[1]           = new OracleParameter("PRM_APPCODE", OracleType.Number);
            paramJiaoYi[1].Value     = null;
            paramJiaoYi[1].Direction = ParameterDirection.Output;
            paramJiaoYi[2]           = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar);
            paramJiaoYi[2].Value     = null;
            paramJiaoYi[2].Size      = 2000;
            paramJiaoYi[2].Direction = ParameterDirection.Output;

            log.InfoFormat("{0}", "执行存储过程:PKG_GY_YINYIJK.PRC_SHOUFEIJS \r\nPRM_MSG:" + jiaoyiMsg + "\r\n");

            DbTransaction transaction = null;
            DbConnection  conn        = DBVisitor.Connection;
            try
            {
                transaction = conn.BeginTransaction();
                DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_SHOUFEIJS", paramJiaoYi, transaction);
            }
            catch (Exception ex)
            {
                if (transaction != null)
                {
                    transaction.Rollback();//回滚
                    conn.Close();
                }
                throw new Exception(ex.Message);
            }
            //--------------------------------------------------------------------------------------
            string returnValue = paramJiaoYi[1].Value.ToString();
            string returnMsg   = paramJiaoYi[2].Value.ToString();
            //LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "门诊收费存储过程返回值:" + returnValue + "|" + returnMsg);
            if (returnValue == "1")   //交易成功
            {
                transaction.Commit(); //提交
                conn.Close();
                string[]  list     = returnMsg.Split('|');
                DataTable dtTarget = new DataTable();
                dtTarget.Columns.Add("SHIFUJE", Type.GetType("System.String"));
                dtTarget.Columns.Add("TIAOXINGM", Type.GetType("System.String"));
                dtTarget.Columns.Add("QUYAOCK", Type.GetType("System.String"));
                dtTarget.Columns.Add("BINGRENID", Type.GetType("System.String"));
                DataRow nRow = dtTarget.NewRow();
                nRow["SHIFUJE"]   = list[0];;
                nRow["TIAOXINGM"] = list[1];
                nRow["QUYAOCK"]   = list[2];
                nRow["BINGRENID"] = bingrenId;
                dtTarget.Rows.Add(nRow);
            }
            else
            {
                transaction.Rollback();//回滚
                conn.Close();
                throw new Exception(returnMsg);
            }
        }
Exemplo n.º 11
0
        public override void ProcessMessage()
        {
            string bingrenId   = InObject.BINGRENID;              //病人ID
            string zhifuLx     = InObject.ZHIFUMX[0].ZHIFULX;     //支付类型
            string zhifuSm     = InObject.ZHIFUMX[0].ZHIFUSM;     //支付说明
            string zhifuJe     = InObject.ZHIFUMX[0].ZHIFUJE;;    //支付金额
            string yinhangKh   = InObject.ZHIFUMX[0].YINHANGKH;   //银行卡号
            string yinhangMm   = InObject.ZHIFUMX[0].YINHANGMM;   //银行密码
            string zhongduanBh = InObject.ZHIFUMX[0].ZHONGDUANBH; //终端编号
            string ShanghuH    = InObject.ZHIFUMX[0].SHANGHUH;    //商户号
            string yinhangkXx  = InObject.ZHIFUMX[0].YINHANGKXX;  //银行卡信息
            string piaojuHm    = InObject.ZHIFUMX[0].PIAOJUHM;    //票据号码
            string shoukuanRen = InObject.BASEINFO.CAOZUOYDM;     //收款人
            string shoukuanRq  = InObject.BASEINFO.CAOZUORQ;      //收款日期

            #region 基本入参判断
            if (string.IsNullOrEmpty(bingrenId))
            {
                throw new Exception("病人唯一号不能为空");
            }

            if (string.IsNullOrEmpty(zhifuLx))
            {
                throw new Exception("支付类型不能为空");
            }

            if (string.IsNullOrEmpty(zhifuJe))
            {
                throw new Exception("支付金额不能为空");
            }

            try {
                zhifuJe = Convert.ToDecimal(zhifuJe).ToString();
            }
            catch (Exception ex) {
                throw new Exception(ex.Message);
            }
            #endregion
            //通过bingrenID获取病人住院ID
            string brSql       = "select bingrenzyid from zy_bingrenxx where bingrenid='{0}' and zaiyuanzt in('0','1') ";
            string bingrenZyId = (string)DBVisitor.ExecuteScalar(string.Format(brSql, bingrenId));
            //拼装交易字符串
            string jiaoyiZfc = bingrenZyId + "|" + shoukuanRen + "|" + zhifuJe + "|" + zhifuLx + "|"            //病人住院ID|收款人|交款金额|支付方式
                               + shoukuanRq + "|" + zhongduanBh + "|" + yinhangKh + "|" + "" + "|" + "0" + "|"; //交易日期|银行交易流水号|卡号|交易类型|重发标志


            OracleParameter[] paramJiaoYi = new OracleParameter[3];
            paramJiaoYi[0]           = new OracleParameter("PRM_MSG", OracleType.VarChar);
            paramJiaoYi[0].Value     = jiaoyiZfc;
            paramJiaoYi[0].Direction = ParameterDirection.Input;
            paramJiaoYi[1]           = new OracleParameter("PRM_APPCODE", OracleType.Number);
            paramJiaoYi[1].Value     = null;
            paramJiaoYi[1].Direction = ParameterDirection.Output;
            paramJiaoYi[2]           = new OracleParameter("PRM_DATABUFFER", OracleType.VarChar);
            paramJiaoYi[2].Value     = null;
            paramJiaoYi[2].Size      = 2000;
            paramJiaoYi[2].Direction = ParameterDirection.Output;

            string        returnValue = string.Empty;
            DbTransaction transaction = null;
            DbConnection  conn        = DBVisitor.Connection;
            try
            {
                transaction = conn.BeginTransaction();
                DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_ZY_YuJiaoKUAN", paramJiaoYi, transaction);
            }
            catch (Exception ex)
            {
                if (transaction != null)
                {
                    transaction.Rollback();
                    conn.Close();
                }
                throw new Exception(ex.Message);
            }
            //--------------------------------------------------------------------------------------------------
            returnValue = paramJiaoYi[1].Value.ToString();
            string returnMsg = paramJiaoYi[2].Value.ToString();
            if (returnValue != "1")
            {
                if (transaction != null)
                {
                    transaction.Rollback();
                    conn.Close();
                }
                throw new Exception(returnMsg);
            }
            else
            {
                //交易成功
                if (transaction != null)
                {
                    transaction.Commit();
                    conn.Close();
                }
            }
        }
Exemplo n.º 12
0
        public override void ProcessMessage()
        {
            string    brxxcx      = "select * from gy_bingrenxx where bingrenid = '{0}'";
            DataTable dtBingRenXX = DBVisitor.ExecuteTable(string.Format(brxxcx, InObject.BINGRENID));

            if (dtBingRenXX.Rows.Count <= 0)
            {
                throw new Exception("未找到该病人信息,无法完成预约!");
            }

            //判断入参合法性
            if (InObject.YUYUERQ == null)
            {
                throw new Exception("预约日期不能为空!");
            }
            if (InObject.YUYUESJ == null)
            {
                throw new Exception("预约时间不能为空!");
            }
            if (InObject.BINGRENLX == null || Convert.ToInt32(InObject.BINGRENLX) < 1 || Convert.ToInt32(InObject.BINGRENLX) > 3)
            {
                throw new Exception("病人类型代码不对!");
            }
            if (InObject.SHENFENZH == null || InObject.SHENFENZH == string.Empty)
            {
                throw new Exception("病人身份证号不能为空!");
            }
            if (InObject.YEWULY == null)
            {
                InObject.YEWULY = InObject.BINGRENLX.ToString();
            }
            var jcsbdm = InObject.JIANCHASBDM.ToString(); //检查设备代码
            var yyrq   = InObject.YUYUERQ.ToString();     //预约日期
            var yysj   = InObject.YUYUESJ.ToString();     //预约时间
            var yyh    = "";                              //预约号



            //不能预约以前的日期
            if (string.Compare(yyrq, DateTime.Now.ToString("yyyy-MM-dd")) < 0)
            {
                throw new Exception("预约日期必须大于等于今天!");
            }
            var          SONGJIANKS = System.Configuration.ConfigurationManager.AppSettings["SXZZ_SONGJIANKS"]; //送检科室
            var          SONGJIANYS = System.Configuration.ConfigurationManager.AppSettings["SXZZ_SONGJIANYS"]; //送检医生
            HISYY_Submit resource   = new HISYY_Submit();

            //获取预约申请单编号
            var yysqdBh = DBVisitor.ExecuteTable("select seq_fsdyy_sq_yysqdbh.nextval yysqdbh from dual");

            //返回字段定义
            OutObject = new SHEBEIYY_OUT();
            //业务类型(1检查,2检验暂时不做)
            if (InObject.YEWULX == "1")
            {
                //调用包,判断入参是否正确
                var jyjcdxx = "";
                var jyjcmx  = "";
                var zdmx    = "";
                var jcxmdm  = "";
                int i       = 0;
                if (InObject.JIANCHALB.Count < 1)
                {
                    throw new Exception("检查项目不能为空!");
                }
                //检查单信息
                jyjcdxx += InObject.JIUZHENKLX + "|";                       //	就诊卡类型
                jyjcdxx += InObject.JIUZHENKH + "|";                        //	就诊卡号
                jyjcdxx += InObject.SHENQINGYSGH + "|";                     //	送检医生
                jyjcdxx += InObject.SHENQINGYYDM + "|";                     //	送检科室
                jyjcdxx += InObject.YUYUESF + "|";                          //	收费识别
                jyjcdxx += InObject.BINGQINGMS + "|";                       //	病情描述
                jyjcdxx += InObject.ZHENDUAN + "|";                         //	诊断
                jyjcdxx += InObject.BINGRENTZ + "|";                        //	病人体征
                jyjcdxx += InObject.QITAJC + "|";                           //	其它检查
                jyjcdxx += InObject.BINGRENZS + "|";                        //	病人主诉
                jyjcdxx += InObject.YEWULY + "|";                           //	检查来源
                jyjcdxx += InObject.BINGRENXM + "|";                        //	病人姓名
                jyjcdxx += InObject.SHENFENZH + "|";                        //	病人身份证号
                jyjcdxx += "0" + "|";                                       //	接收方式
                jyjcdxx += "|";                                             //	检查申请单号
                jyjcdxx += InObject.YUYUERQ + " " + InObject.YUYUESJ + "|"; //	检查日期
                jyjcdxx += InObject.BINGRENXB + "|";                        //	病人性别
                jyjcdxx += InObject.BINGRENNL;                              //	病人年龄

                //检验检查明细
                foreach (var item in InObject.JIANCHALB)
                {
                    if (i == 0)
                    {
                        jcxmdm = item.JIANCHAXMBH;
                    }
                    else
                    {
                        jcxmdm += "," + item.JIANCHAXMBH;
                    }
                    ++i;
                    jyjcmx += item.JIANCHAXMBH + "|"; //	检查项目编号
                    jyjcmx += item.JIANCHAXMMC + "|"; //	检查项目名称
                    jyjcmx += item.JIANCHAFLBM + "|"; //	检查分类编码
                    jyjcmx += item.JIANCHASTBW + "|"; //	检查身体部位
                    jyjcmx += item.JIANCHAFXDM + "|"; //	检查方向代码
                    jyjcmx += item.JIANCHAZYDM + "|"; //	检查肢位代码
                    jyjcmx += item.JIANCHATS + "^";   //	检查提示
                }
                //疾病明细
                foreach (var item in InObject.ZHENDUANLB)
                {
                    zdmx += item.ICD10 + "|";      //	ICD10
                    zdmx += item.ZHENDUANMC + "^"; //诊断名称
                }

                #region 调用莱达接口
                if (InObject.YEWULX == "2")
                {
                    resource.AdmissionSource = "10";
                }
                else
                {
                    resource.AdmissionSource = "50";
                }
                resource.HospitalCode = InObject.SHENQINGYYDM;// InObject.BASEINFO.JIGOUDM;
                resource.HospitalName = InObject.SHENQINGYYMC;
                resource.PatientName  = InObject.BINGRENXM;
                resource.IdNumber     = InObject.SHENFENZH;
                resource.RequestNo    = "";//预约的时候传空
                if (InObject.YEWULY == "2")
                {
                    resource.AdmissionID = InObject.BINGRENZYH;
                }
                else
                {
                    resource.AdmissionID = InObject.BINGRENMZH;
                }
                resource.ExaminePartTime   = InObject.XIANGMUHS;
                resource.PatientSex        = InObject.BINGRENXB.ToString();
                resource.PatientBorn       = InObject.BINGRENCSRQ;
                resource.PatientAge        = InObject.BINGRENNL;
                resource.PatientTel        = InObject.BINGRENLXDH;
                resource.PatientAddress    = InObject.BINGRENLXDZ;
                resource.PatientCard       = InObject.BINGRENID + "|" + InObject.JIUZHENKH;
                resource.InPatientAreaName = InObject.BINGRENBQMC;
                resource.InPatientAreaCode = InObject.BINGRENBQDM;
                resource.BedNum            = InObject.BINGRENCWH;
                resource.DeviceCode        = InObject.JIANCHASBDM.ToString();
                resource.DeviceName        = InObject.JIANCHASBMC;
                //,B.DAIMAID,B.DAIMAMC,D.KESHIMC
                string jcxmSql = @"SELECT A.*,B.DAIMAID,B.DAIMAMC,D.KESHIMC FROM GY_JIANCHAXM A, GY_JIANCHABW B, GY_JIANCHAXMBWDY C,  
                            GY_KESHI D,GY_YUANQU E  WHERE A.JIANCHAXMID = C.JIANCHAXMID AND B.DAIMAID = C.JIANCHABWID  
                            AND D.KESHIID=A.ZHIXINGKS AND A.ZUOFEIBZ = 0 AND B.ZUOFEIBZ = 0 AND D.YUANQUID = E.YUANQUID
                            AND A.JIANCHAXMID IN({0}) AND B.DAIMAID = {1} AND E.YUANQUMC = '{2}'";
                jcxmSql = string.Format(jcxmSql, jcxmdm, InObject.JIANCHABWDM.ToString(), ConfigurationManager.AppSettings["HospitalName_Fck"].ToString());

                DataTable jcxmDt = DBVisitor.ExecuteTable(jcxmSql);
                foreach (DataRow dr in jcxmDt.Rows)
                {
                    resource.StudiesExamine.Add(new StudiesExamine()
                    {
                        //HT  更改CODE取值 检查厂商使用的是HIS的部位ID和部位的名称,而没有检查项目ID
                        //ExamineCode = dr["JIANCHAXMID"].ToString(),
                        ExamineCode  = dr["DAIMAID"].ToString(),
                        ExamineName  = XMLHandle.encodeString(dr["DAIMAMC"].ToString()),
                        Numbers      = "1",
                        ExaminePrice = "0"//这里默认给个0
                    });
                }
                resource.StudiesExamine   = resource.StudiesExamine.Distinct().ToList();
                resource.ExamineFY        = resource.StudiesExamine.Sum <StudiesExamine>(group => { return(Convert.ToDecimal(group.ExaminePrice)); }).ToString();
                resource.ReceiptNum       = InObject.BINGRENFPH;
                resource.ZxDepartmentId   = jcxmDt.Rows[0]["zhixingks"].ToString();
                resource.ZxDepartmentName = jcxmDt.Rows[0]["keshimc"].ToString();
                resource.Sqrq             = InObject.BASEINFO.CAOZUORQ;
                resource.BespeakDateTime  = InObject.YUYUERQ + " " + InObject.YUYUESJ;
                resource.JZ = "0"; // InObject.JIZHEN;
                resource.ZQ = "0"; //InObject.ZENGQIANG;
                resource.LS = "0"; //InObject.LINSHI;
                resource.PF = "1";

                //调用莱达WEBSERVICE---------------------------------------------------------------
                string url = System.Configuration.ConfigurationManager.AppSettings["LaiDa_Url"];
                string xml = XMLHandle.EntitytoXML <HISYY_Submit>(resource);

                //LogHelper.WriteLog(typeof(GG_ShuangXiangZzBLL), "设备预约调用莱达XML入参:" + xml);
                string outxml = WSServer.Call <HISYY_Submit>(url, xml).ToString();

                //LogHelper.WriteLog(typeof(GG_ShuangXiangZzBLL), "设备预约调用莱达XML出参:" + outxml);
                HISYY_Submit_Result result = XMLHandle.XMLtoEntity <HISYY_Submit_Result>(outxml);
                //-------------------------------------------------------------------------------
                if (result.Success == "False")
                {
                    throw new Exception("预约失败,错误原因:" + result.Message);
                }
                #endregion

                //定义数据库transaction
                var tran = DBVisitor.Connection.BeginTransaction();
                var xh   = DBVisitor.ExecuteScalar("select seq_sxzz_jianchasqd.nextval from dual").ToString();
                //保存预约数据
                try
                {
                    //先插入到临时表

                    var JCSQDH = result.JCH;
                    //var jiuzhenid = DBVisitor.ExecuteScalar("select SEQ_ZJ_JIUZHENXX.NEXTVAL from dual").ToString();
                    int k = 0;
                    //插入检查单信息
                    string insJcd = @"insert into SXZZ_JIANCHASQD(JIANCHASQDID,JIUZHENKLX,JIUZHENKH,BINGRENXM,
                                      BINGRENSFZH,SONGJIANYSGH,SONGJIANKSDM,SHOUFEIBZ,
                                      BINGQINGMS,ZHENDUANMC,BINGRENTZ,QITAJC,
                                      BINGRENZS,JIANCHALY,JIESHOUFS,JIESHOURQ,
                                      JIESHOUBZ,YIJISQDH,JIANCHARQ,BINGRENXB,BINGRENNL,
                                        JIANCHASQDZT,YIJIZXKS,YIJIZXKSMC,BINGRENLX,
                                         BINGRENLXMC,ZHUYUANHAO,SONGJIANBQDM,SONGJIANBQMC,
                                         CHAUNGWEIID,CHUSHENGRQ,BINGRENLXDZ,BINGRENLXDH,
                                        SONGJIANYSXM,SONGJIANKSMC,SONGJIANYYDM,SONGJIANYYMC,
                                        YIJISBDM,YIJISBMC,YIJISBDZ,YIJIYYH,
                                        YIJIYYSJD,YIJIXXAPSJ,YIJIYYRQ)
                                      values({0},'{1}','{2}','{3}',
                                            '{4}','{5}','{6}','{7}',
                                            '{8}','{9}','{10}','{11}',
                                            '{12}','{13}','{14}',sysdate,
                                            0,'{15}',to_date('{16}','yyyy-mm-dd'),'{17}','{18}',
                                            '{19}','{20}','{21}','{22}',
                                            '{23}','{24}','{25}','{26}',
                                            '{27}',to_date('{28}','yyyy-mm-dd'),'{29}','{30}',
                                            '{31}','{32}','{33}','{34}',
                                            '{35}','{36}','{37}','{38}',
                                            '{39}','{40}',to_date('{41}','yyyy-mm-dd hh24:mi'))";

                    DBVisitor.ExecuteNonQuery(string.Format(insJcd, xh, "", InObject.JIUZHENKH, InObject.BINGRENXM,
                                                            InObject.SHENFENZH, SONGJIANYS, SONGJIANKS, 0,
                                                            InObject.BINGQINGMS, InObject.ZHENDUAN, InObject.BINGRENTZ, InObject.QITAJC,
                                                            InObject.BINGRENZS, InObject.YEWULX, 0, JCSQDH, InObject.YUYUERQ,
                                                            InObject.BINGRENXB, InObject.BINGRENNL,
                                                            InObject.YUYUEZT,
                                                            InObject.JIANCHAKSDM,
                                                            InObject.JIANCHAKSMC,
                                                            InObject.BINGRENLX,
                                                            InObject.BINGRENLXMC,
                                                            InObject.BINGRENZYH,
                                                            InObject.BINGRENBQDM,
                                                            InObject.BINGRENBQMC,
                                                            InObject.BINGRENCWH,
                                                            InObject.BINGRENCSRQ,
                                                            InObject.BINGRENLXDZ,
                                                            InObject.BINGRENLXDH,
                                                            InObject.SHENQINGYSMC,                    //申请医生姓名
                                                            "",                                       //申请科室名称
                                                            InObject.SHENQINGYYDM,                    //申请医院代码
                                                            InObject.SHENQINGYYMC,                    //申请医院名称
                                                                                                      //InObject.YUYUESJ,//检查时间
                                                                                                      //InObject.JIANCHAXMLX,//检查项目类型
                                                            InObject.JIANCHASBDM,                     //检查设备代码
                                                            InObject.JIANCHASBMC,                     //检查设备名称
                                                            InObject.JIANCHASBDD,                     //检查设备地点
                                                            result.YYH,                               //预约号
                                                            result.PDH,                               //时间段  预约申请时间段
                                                            InObject.XIANGMUHS,                       //详细安排时间
                                                            InObject.YUYUERQ + " " + InObject.YUYUESJ //预约日期
                                                            ), tran);

                    //插入检查明细
                    foreach (var item in InObject.JIANCHALB)
                    {
                        var    mxxh    = DBVisitor.ExecuteScalar("select seq_sxzz_jianchasqdmx.nextval from dual").ToString();
                        string insJcmx = @"insert into SXZZ_JIANCHASQDMX(JIANCHASQDID,JIANCHASQDMXID,JIANCHAXMBH,
                                           JIANCHAXMMC,JIANCHAFLBM,JIANCHASTBW,
                                           JIANCHAFXDM,JIANCHAZYDM,JIANCHATS)
                                           values({0},{1},'{2}',
                                           '{3}','{4}','{5}',
                                           '{6}','{7}','{8}')";

                        DBVisitor.ExecuteNonQuery(string.Format(insJcmx, xh, mxxh, item.JIANCHAXMBH,
                                                                item.JIANCHAXMMC, item.JIANCHAFLBM, item.JIANCHASTBW,
                                                                item.JIANCHAFXDM, item.JIANCHAZYDM, item.JIANCHATS), tran);
                    }
                    k = 0;
                    //插入诊断明细
                    foreach (var item in InObject.ZHENDUANLB)
                    {
                        var zdxh = DBVisitor.ExecuteScalar("select seq_sxzz_jianchasqdzd.nextval from dual").ToString();

                        string insZdmx = @"insert into SXZZ_JIANCHASQDZD(JIANCHASQDID,JIANCHADZDID,icd10,zhenduanmc)
                                           values({0},{1},'{2}','{3}')";

                        DBVisitor.ExecuteNonQuery(string.Format(insZdmx, xh, zdxh, item.ICD10, item.ZHENDUANMC), tran);
                    }

                    tran.Commit();

                    OutObject.YUYUERQ    = InObject.YUYUERQ;
                    OutObject.YUYUESJ    = InObject.YUYUESJ;
                    OutObject.YUYUEH     = result.YYH;
                    OutObject.JIANCHAH   = result.JCH;
                    OutObject.YUYUESQDBH = xh;
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    var resource1 = new HISYY_Cancel();
                    resource1.RequestNo = "";// listyyxx.Items["YYH"].ToString();
                    resource1.YYH       = result.YYH;
                    resource1.JCH       = result.PDH;
                    string url1    = System.Configuration.ConfigurationManager.AppSettings["LaiDa_Url"];
                    string xml1    = XMLHandle.EntitytoXML <HISYY_Cancel>(resource1);
                    string outxml1 = WSServer.Call <HISYY_Cancel>(url, xml).ToString();
                    HISYY_Cancel_Result result1 = XMLHandle.XMLtoEntity <HISYY_Cancel_Result>(outxml);
                    throw new Exception(ex.Message);
                }


                var trans = DBVisitor.Connection.BeginTransaction();
                try
                {
                    //拼装交易字符串
                    //--1 病人id
                    //--2 检查项目id
                    //--3 检查部位id列表
                    //--4 临床诊断
                    //--5 院区id
                    //--6 应用id
                    //--7 操作员工号
                    //--8 中间表申请单序号
                    string jianChaBWDM = string.Empty;
                    InObject.JIANCHALB.ForEach(o => jianChaBWDM += o.JIANCHASTBW + "#");
                    jianChaBWDM = jianChaBWDM.Trim('#');
                    string jiaoyiZfc = InObject.BINGRENID;          //病人id
                    jiaoyiZfc += "|" + InObject.JIANCHAXMDM;        //检查项目id
                    jiaoyiZfc += "|" + jianChaBWDM;                 //检查部位id列表
                    jiaoyiZfc += "|" + InObject.ZHENDUAN;           //临床诊断
                    jiaoyiZfc += "|" + InObject.BASEINFO.FENYUANDM; //院区id
                    jiaoyiZfc += "|" + "2301";                      //应用id
                    jiaoyiZfc += "|" + InObject.BASEINFO.CAOZUOYDM; //操作员工号
                    jiaoyiZfc += "|" + xh;                          //中间表申请单序号

                    //提交预约号-------------------------------------------------------------------------------------------
                    OracleParameter[] paramJiaoYi = new OracleParameter[3];
                    paramJiaoYi[0]           = new OracleParameter("Prm_Msg", OracleType.VarChar);
                    paramJiaoYi[0].Value     = jiaoyiZfc;
                    paramJiaoYi[0].Direction = ParameterDirection.Input;
                    paramJiaoYi[1]           = new OracleParameter("prm_AppCode", OracleType.Number);
                    paramJiaoYi[1].Value     = null;
                    paramJiaoYi[1].Direction = ParameterDirection.Output;
                    paramJiaoYi[2]           = new OracleParameter("prm_DataBuffer", OracleType.VarChar);
                    paramJiaoYi[2].Value     = null;
                    paramJiaoYi[2].Size      = 2000;
                    paramJiaoYi[2].Direction = ParameterDirection.Output;

                    log.InfoFormat("{0}", "执行存储过程:PKG_YJ_YUYUE_YH.Prc_YJ_ShuangXiangZZJC_JieKou \r\nPRM_JIAOYIZFC:" + jiaoyiZfc + "\r\n");

                    DBVisitor.ExecuteProcedure("PKG_YJ_YUYUE_YH.Prc_YJ_ShuangXiangZZJC_JieKou", paramJiaoYi, trans);

                    if (paramJiaoYi[1].Value.ToString() != "1")
                    {
                        throw new Exception("his系统计费失败!");
                    }

                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    var resource1 = new HISYY_Cancel();
                    resource1.RequestNo = "";// listyyxx.Items["YYH"].ToString();
                    resource1.YYH       = result.YYH;
                    resource1.JCH       = result.PDH;
                    string url1    = System.Configuration.ConfigurationManager.AppSettings["LaiDa_Url"];
                    string xml1    = XMLHandle.EntitytoXML <HISYY_Cancel>(resource1);
                    string outxml1 = WSServer.Call <HISYY_Cancel>(url, xml).ToString();
                    HISYY_Cancel_Result result1 = XMLHandle.XMLtoEntity <HISYY_Cancel_Result>(outxml);
                    throw ex;
                }
            }
            //检验,暂时先不考虑----------------------------------------------------------------------------
            #region 检验设备预约
            else
            {
                //                //调用包,判断入参是否正确
                //                var jyjcdxx = "";
                //                var jyjcmx = "";
                //                var zdmx = "";
                //                var jcxmdm = "";
                //                int i = 0;
                //                if (InObject.JIANCHALB.Count < 1)
                //                {
                //                    throw new Exception(string.Format("检查项目不能为空!"));
                //                }
                //                //检查单信息
                //                jyjcdxx += InObject.JIUZHENKLX + "|";//	就诊卡类型
                //                jyjcdxx += InObject.JIUZHENKH + "|";//	就诊卡号
                //                jyjcdxx += SONGJIANKS + "|";//	送检医生
                //                jyjcdxx += SONGJIANYS + "|";//	送检科室
                //                jyjcdxx += InObject.YUYUESF + "|";//	收费识别
                //                jyjcdxx += InObject.BINGQINGMS + "|";//	病情描述
                //                jyjcdxx += InObject.ZHENDUAN + "|";//	诊断
                //                jyjcdxx += InObject.BINGRENTZ + "|";//	病人体征
                //                jyjcdxx += InObject.QITAJC + "|";//	其它检查
                //                jyjcdxx += InObject.BINGRENZS + "|";//	病人主诉
                //                jyjcdxx += InObject.YEWULY + "|";//	检查来源
                //                jyjcdxx += InObject.BINGRENXM + "|";//	病人姓名
                //                jyjcdxx += InObject.SHENFENZH + "|";//	病人身份证号
                //                jyjcdxx += "0" + "|";//	接收方式
                //                jyjcdxx += "|";//	检查申请单号
                //                jyjcdxx += InObject.YUYUERQ + " " + InObject.YUYUESJ + "|";//	检查日期
                //                jyjcdxx += InObject.BINGRENXB + "|";//	病人性别
                //                jyjcdxx += InObject.BINGRENNL;//	病人年龄

                //                //检验检查明细
                //                foreach (var item in InObject.JIANCHALB)
                //                {
                //                    if (i == 0)
                //                        jcxmdm = item.JIANCHAXMBH;
                //                    else
                //                        jcxmdm += "," + item.JIANCHAXMBH;
                //                    ++i;
                //                    jyjcmx += item.JIANCHAXMBH + "|";//	检查项目编号
                //                    jyjcmx += item.JIANCHAXMMC + "|";//	检查项目名称
                //                    jyjcmx += item.JIANCHAFLBM + "|";//	检查分类编码
                //                    jyjcmx += item.JIANCHASTBW + "|";//	检查身体部位
                //                    jyjcmx += item.JIANCHAFXDM + "|";//	检查方向代码
                //                    jyjcmx += item.JIANCHAZYDM + "|";//	检查肢位代码
                //                    jyjcmx += item.JIANCHATS + "^";//	检查提示

                //                }
                //                //疾病明细
                //                foreach (var item in InObject.ZHENDUANLB)
                //                {
                //                    zdmx += item.ICD10 + "|";//	ICD10
                //                    zdmx += item.ZHENDUANMC + "^";//	诊断名称
                //                }

                //                DBServer db = new DBServer();
                //                //调用检查开单包-------------------------------------------------------------------------------------------
                //                OracleParameter[] jiaoYi ={
                //                                new OracleParameter("ywlx",OracleDbType.VarChar,ParameterDirection.Input),
                //                                new OracleParameter("jyjcdxx",OracleDbType.VarChar,ParameterDirection.Input),
                //                                new OracleParameter("jyjcmx",OracleDbType.VarChar,ParameterDirection.Input),
                //                                new OracleParameter("zdmx",OracleDbType.VarChar,ParameterDirection.Input),
                //                                new OracleParameter("jylx",OracleDbType.VarChar,ParameterDirection.Input),
                //                                new OracleParameter("errno",OracleDbType.Integer,ParameterDirection.Output),
                //                                new OracleParameter("errmsg",OracleDbType.Integer,ParameterDirection.Output),
                //                                new OracleParameter("outdata",OracleDbType.VarChar,ParameterDirection.Output)
                //                                                };
                //                jiaoYi[0].Value = 2;
                //                jiaoYi[1].Value = jyjcdxx;
                //                jiaoYi[2].Value = jyjcmx;
                //                jiaoYi[3].Value = zdmx;
                //                jiaoYi[4].Value = 1;
                //                jiaoYi[5].Value = -1;
                //                jiaoYi[6].Value = string.Empty.PadRight(1024);
                //                jiaoYi[7].Value = string.Empty.PadRight(1024);
                //                try
                //                {
                //                    db.DbProOption("pkg_sxzz_jckd.prc_jsjcd", jiaoYi, 5);
                //                }
                //                catch (Exception ex)
                //                {
                //                    tradeOut = WcfCommon.GetXmlString(tradeHead, tradeType, tradeDetail, new DataTable(), -1, ex.Message);
                //                    return -1;
                //                }
                //                if (jiaoYi[5].Value.ToString() != "0")
                //                {
                //                    throw new Exception("更新预约信息失败:" + jiaoYi[6].Value.ToString());
                //                }

                //                OracleConnection conn = new OracleConnection(MediTrade.Common.ConfigInfo.SqlConn);
                //                OracleCommand comm = new OracleCommand();
                //                comm.Connection = conn;
                //                if (conn.State != System.Data.ConnectionState.Open)
                //                {
                //                    conn.Open();
                //                }
                //                OracleTransaction tran = conn.BeginTransaction();
                //                comm.Transaction = tran;
                //                try
                //                {
                //                    //先插入到临时表
                //                    var ID = new DBServer().GetCurrData("select seq_sxzz_jianchad.nextval from dual");
                //                    var xh = "";
                //                    var JCSQDH = "";
                //                    int k = 0;
                //                    if (ID == null)
                //                    {
                //                        throw new Exception(string.Format("检查单序列获取失败!"));
                //                    }
                //                    else
                //                    {
                //                        xh = ID.ToString();
                //                    }
                //                    var SQDH = new DBServer().GetCurrData("select SEQ_GY_YXSQD_SQDH.nextval from dual");
                //                    if (SQDH == null)
                //                    {
                //                        throw new Exception(string.Format("申请单号获取失败!"));
                //                    }
                //                    else
                //                    {
                //                        JCSQDH = SQDH.ToString();
                //                    }
                //                    //插入检查单信息
                //                    string insJcd = @"insert into sxzz_jianchad(JIANCHADXH,JIUZHENKLX,JIUZHENKH,BINGRENXM,
                //                                      BINGRENSFZH,SONGJIANYS,SONGJIANKS,SHOUFEISB,
                //                                      BINGQINGMS,ZHENDUAN,BINGRENTZ,QITAJC,
                //                                      BINGRENZS,JIANCHALY,JIESHOUFS,JIESHOURQ,
                //                                      JIESHOUBZ,JIANCHASQDH,JIANCHARQ,BINGRENXB,BINGRENNL,YYSQDBH)
                //                                      values({0},'{1}','{2}','{3}',
                //                                            '{4}','{5}','{6}','{7}',
                //                                            '{8}','{9}','{10}','{11}',
                //                                            '{12}','{13}','{14}',sysdate,
                //                                            0,'{15}','{16}','{17}','{18}','{19}')";
                //                    insJcd = string.Format(insJcd, xh, "", InObject.BINGRENMZH, InObject.BINGRENXM,
                //                                InObject.SHENFENZH, InObject.SHENQINGYSGH, InObject.JIANCHAKSDM, 0,
                //                                InObject.BINGQINGMS, InObject.ZHENDUAN, InObject.BINGRENTZ, InObject.QITAJC,
                //                                InObject.BINGRENZS, InObject.YEWULX, 0, JCSQDH, InObject.YUYUERQ,
                //                                InObject.BINGRENXB, InObject.BINGRENNL, yysqdBh);
                //                    comm.CommandText = insJcd;
                //                    comm.ExecuteNonQuery();
                //                    //插入检查明细
                //                    foreach (var item in InObject.JIANCHALB)
                //                    {
                //                        ++k;
                //                        string insJcmx = @"insert into sxzz_jianchadxm (JIANCHADXH,JIANCHADMXXH,JIANCHAXMBH,
                //                                          JIANCHAXMMC,JIANCHAFLBM,JIANCHASTBW,
                //                                          JIANCHAFXDM,JIANCHAZYDM,JIANCHATS)
                //                                          values({0},{1},'{2}',
                //                                          '{3}','{4}','{5}',
                //                                          '{6}','{7}','{8}')";
                //                        insJcmx = string.Format(insJcmx, xh, k, item.JIANCHAXMBH,
                //                            item.JIANCHAXMMC, item.JIANCHAFLBM, item.JIANCHASTBW,
                //                            item.JIANCHAFXDM, item.JIANCHAZYDM, item.JIANCHATS);
                //                        comm.CommandText = insJcmx;
                //                        comm.ExecuteNonQuery();
                //                    }
                //                    k = 0;
                //                    //插入诊断明细
                //                    foreach (var item in InObject.ZHENDUANLB)
                //                    {
                //                        ++k;
                //                        string insZdMx = @"insert into sxzz_jianchadzd (jianchadxh,jianchadzdxh,icd10,zhenduanmc)
                //                                           values({0},{1},'{2}','{3}')";
                //                        insZdMx = string.Format(insZdMx, xh, k, item.ICD10, item.ZHENDUANMC);
                //                        comm.CommandText = insZdMx;
                //                        comm.ExecuteNonQuery();
                //                    }

                //                    var yysqlsh = new DBServer().GetCurrData("select seq_fsdyy_sq_yysqlsh.nextval yysqlsh from dual");
                //                    //插入预约申请信息fdsyy_sq
                //                    string insYySqd = @"Insert into fsdyy_sq (yysqlsh,yysqdbh,yysqdmc,yysqdzt,jcksdm,jcksmc,brfph,brlx,brlxmc,brkh,brmzh,brzyh,brbqdm,brbqmc,brcwh,brxm,
                //                                        brxb,brnl,brcsrq,brlxdz,brlxdh,sqysgh,sqysmc,sqksdm,sqksmc,sqyydm,sqyymc,sqsj,jch,jcrq,jcsj,jcxmdm,jcxmmc
                //                                        ,jcxmlx,jcbwdm,jcbwmc,jcsbdm,jcsbmc,jcsbdd,yyh,sfzh,yysf,jcsqdbh,yxfx,yysjd,xxapsj,yyly,ywlx,sfzq,sfjz,sfls,yyrq,yyhxx)
                //                                        values({42}, --预约申请流水号
                //                                               {43},     --预约申请单编号
                //                                               '{0}',     --预约申请单名称
                //                                               {1},     --预约申请单状态(0未确认,1已确认,9作废)
                //                                               '{2}',     --检查科室代码
                //                                               '{3}',     --检查科室名称
                //                                               '{4}',     --病人发票号
                //                                               {5},     --病人类型
                //                                               '{6}',     --病人类型名称
                //                                               '{7}',     --病人卡号
                //                                               '{8}',     --病人门诊号
                //                                               '{9}',     --病人住院号
                //                                               '{10}',     --病人病区代码
                //                                               '{11}',     --病人病区名称
                //                                               '{12}',     --病人床位号
                //                                               '{13}',     --病人姓名
                //                                               {14},     --病人性别
                //                                               '{15}',     --病人年龄
                //                                               to_date('{16}','yyyy-MM-dd'),     --病人出生日期
                //                                               '{17}',     --病人联系地址
                //                                               '{18}',     --病人联系电话
                //                                               '{19}',     --申请医生工号
                //                                               '{20}',     --申请医生姓名
                //                                               '{21}',     --申请科室代码
                //                                               '{22}',     --申请科室名称
                //                                               '{23}',     --申请医院代码
                //                                               '{24}',     --申请医院名称
                //                                               sysdate,     --申请时间
                //                                               '{25}',     --检查号
                //                                               '{26}',     --检查日期
                //                                               '{27}',     --检查时间
                //                                               '{28}',     --检查项目代码
                //                                               '{29}',     --检查项目名称
                //                                               '{30}',     --检查项目类型
                //                                               '{31}',     --检查部位代码
                //                                               '{32}',     --检查部位名称
                //                                               '{33}',     --检查设备代码
                //                                               '{34}',     --检查设备名称
                //                                               '{35}',     --检查设备地点
                //                                               '{36}',     --预约号
                //                                               '{37}',     --身份证号
                //                                               {38},     --预约收费(0未收费,1已收费)
                //                                               '{39}',     --检查申请单编号
                //                                               '{40}',      --影像方向
                //                                               '{41}',      --预约时间段
                //                                               '{44}',      --详细安排时间
                //                                               '{45}',        --预约来源
                //                                               '{46}',       --业务类型
                //                                               '{47}',      --是否增强
                //                                               '{48}',      --是否急诊
                //                                               '{49}',      --是否临时
                //                                               to_date('{50}','yyyy-mm-dd HH24:mi:ss'),--预约日期
                //                                               '{51}')     --预约号信息";
                //                    insYySqd = string.Format(insYySqd, "申请单",//预约申请单名称
                //                       InObject.YUYUEZT,//预约申请单状态(0未确认,1已确认,9作废)
                //                       InObject.JIANCHAKSDM,//检查科室代码
                //                       InObject.JIANCHAKSMC,//检查科室名称
                //                       InObject.BINGRENFPH,//病人发票号
                //                       InObject.BINGRENLX,//病人类型
                //                       InObject.BINGRENLXMC,//病人类型名称
                //                       InObject.BINGRENKH,//病人卡号
                //                       InObject.BINGRENMZH,//病人门诊号
                //                       InObject.BINGRENZYH,//病人住院号
                //                       InObject.BINGRENBQDM,//病人病区代码
                //                       InObject.BINGRENBQMC,//病人病区名称
                //                       InObject.BINGRENCWH,//病人床位号
                //                       InObject.BINGRENXM,//病人姓名
                //                       InObject.BINGRENXB,//病人性别
                //                       InObject.BINGRENNL,//病人年龄
                //                       InObject.BINGRENCSRQ,//病人出生日期
                //                       InObject.BINGRENLXDZ,//病人联系地址
                //                       InObject.BINGRENLXDH,//病人联系电话
                //                       InObject.SHENQINGYSGH,//申请医生工号
                //                       InObject.SHENQINGYSMC,//申请医生姓名
                //                       "",//申请科室代码
                //                       "",//申请科室名称
                //                       InObject.SHENQINGYYDM,//申请医院代码
                //                       InObject.SHENQINGYYMC,//申请医院名称
                //                       JCSQDH,//检查号
                //                       InObject.YUYUERQ,//检查日期
                //                       InObject.YUYUESJ,//检查时间
                //                       jcxmdm,//InObject.JIANCHAXMDM,//检查项目代码
                //                       InObject.JIANCHAXMMC,//检查项目名称
                //                       InObject.JIANCHAXMLX,//检查项目类型
                //                       InObject.JIANCHABWDM,//检查部位代码
                //                       InObject.JIANCHABWMC,//检查部位名称
                //                       InObject.JIANCHASBDM,//检查设备代码
                //                       InObject.JIANCHASBMC,//检查设备名称
                //                       InObject.JIANCHASBDD,//检查设备地点
                //                       "",//预约号
                //                       InObject.SHENFENZH,//身份证号
                //                       InObject.YUYUESF,//预约收费(0未收费,1已收费)
                //                       InObject.JIANCHASQDBH,//检查申请单编号
                //                       InObject.YINGXIANGFX,//影像方向
                //                       "",//时间段
                //                       yysqlsh,//预约申请流水号
                //                       yysqdBh,//预约申请单编号
                //                       InObject.XIANGMUHS,//详细安排时间
                //                       InObject.YEWULY,
                //                       InObject.YEWULX,
                //                       InObject.ZENGQIANG,
                //                       InObject.JIZHEN,
                //                       InObject.LINSHI,
                //                       InObject.YUYUERQ + " " + InObject.YUYUESJ,//预约日期
                //                       0);
                //                    comm.CommandText = insYySqd;
                //                    comm.ExecuteNonQuery();

                //                    tran.Commit();
                //                    conn.Close();

                //                    OutObject = new SHEBEIYY_OUT();
                //                    //OutObject.YUYUERQ = InObject.YUYUERQ;
                //                    //OutObject.YUYUESJ = InObject.YUYUESJ;
                //                    //OutObject.YUYUEH = result.YYH;
                //                    //OutObject.JIANCHAH = result.JCH;
                //                    OutObject.YUYUESQDBH = yysqdBh;
                //                }
                //                catch (Exception ex)
                //                {
                //                    tran.Rollback();
                //                    conn.Close();
                //                    throw ex;
                //                }
            }
            #endregion
            //---------------------------------------------------------------------------------------------
        }
Exemplo n.º 13
0
        public override void ProcessMessage()
        {
            OutObject = new PAIDUIJHCX_OUT();
            string keShiDM      = InObject.KESHIID;
            string paiDuiJHLSJL = ConfigurationManager.AppSettings["PaiDuiJHLSJL"];//排队叫号是否获取历史队列记录

            //KESHIID 不为空时 获取科室名称信息,进行队列检索
            //检索队列为科室类别的数据,是否有可以匹配的内容
            //检索队列为医生类别的数据,是否有可以匹配的内容
            //获取队列号
            //获取队列当前就诊号码(当前就诊号或最后一个就诊号)
            //KESHIID 为空时 获取所有的队列的信息
            //获取队列号 列表
            //循环获取队列当前就诊循环

            if (string.IsNullOrEmpty(paiDuiJHLSJL))
            {
                paiDuiJHLSJL = "0";
            }


            if (!string.IsNullOrEmpty(keShiDM))
            {
                //科室信息
                KESHIXX   ksxx       = new KESHIXX();
                string    keShiXXSql = "select keshimc,keshiid from v_gy_keshi where keshiid = {0}";
                DataTable dtKSXX     = DBVisitor.ExecuteTable(string.Format(keShiXXSql, keShiDM));//科室信息
                if (dtKSXX.Rows.Count > 0)
                {
                    ksxx.KESHIDM = dtKSXX.Rows[0]["keshiid"].ToString();
                    ksxx.KESHIMC = dtKSXX.Rows[0]["keshimc"].ToString();
                }
                //队列
                string duiLieKSSql = "select distinct duilieid from jh_duiliexx where to_char(xitongsj,'yyyy-mm-dd') = '{0}' "
                                     + " and zuofeibz = 0 and duiliebh != 'DBA' and ((duilielbid = '01' and duiliebh ='{1}') or (duilielbid='02' and fuduilm ='{2}'))";
                DataTable dtDuiLieKS = DBVisitor.ExecuteTable(string.Format(duiLieKSSql, DateTime.Now.ToString("yyyy-MM-dd"), keShiDM, ksxx.KESHIMC));
                for (int i = 0; i < dtDuiLieKS.Rows.Count; i++)
                {
                    //队列详细信息
                    string    duiLieID    = dtDuiLieKS.Rows[i]["duilieid"].ToString();
                    string    paiDuiXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz)  as shangxiawbz from jh_paiduidl where duilieid = '{0}'  and zhuangtaiid = '06' ";
                    DataTable dtPaiDuiXX  = DBVisitor.ExecuteTable(string.Format(paiDuiXXSql, duiLieID));
                    if (dtPaiDuiXX.Rows.Count > 0)
                    {
                        PAIDUIJHXX pdjhxx     = new PAIDUIJHXX();
                        string     duiliexx   = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'";
                        DataTable  duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID));
                        if (duiliexxtb.Rows.Count > 0)//就诊位置
                        {
                            pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString();
                        }
                        else
                        {
                            pdjhxx.SUOZAIZJ = "";
                        }
                        pdjhxx.PAIDUIID   = dtPaiDuiXX.Rows[0]["duilieid"].ToString();                        //排队队列唯一编号
                        pdjhxx.DANGQIANHM = dtPaiDuiXX.Rows[0]["yewuxh"].ToString();                          //业务序号(挂号序号)
                        string GuaHaoId = (dtPaiDuiXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID
                        pdjhxx.SHANGXIAWBZ = dtPaiDuiXX.Rows[0]["shangxiawbz"].ToString();
                        pdjhxx.KESHIDM     = ksxx.KESHIDM;                                                    //科室代码

                        pdjhxx.YISHENGDM = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                        pdjhxx.KESHIMC   = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", ksxx.KESHIDM)).ToString();
                        if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*")
                        {
                            pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString();
                        }
                        OutObject.PAIDUIJHMX.Add(pdjhxx);
                    }
                    else
                    {
                        if (paiDuiJHLSJL == "0")
                        {
                            //结束队列信息
                            string    paiDuiJSXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_jieshudl where duilieid = '{0}'";
                            DataTable dtPaiDuiJSXX  = DBVisitor.ExecuteTable(string.Format(paiDuiJSXXSql, duiLieID));
                            if (dtPaiDuiJSXX.Rows.Count > 0)
                            {
                                PAIDUIJHXX pdjhxx     = new PAIDUIJHXX();
                                string     duiliexx   = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'";
                                DataTable  duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID));
                                if (duiliexxtb.Rows.Count > 0)//就诊位置
                                {
                                    pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString();
                                }
                                else
                                {
                                    pdjhxx.SUOZAIZJ = "";
                                }
                                pdjhxx.PAIDUIID   = dtPaiDuiJSXX.Rows[0]["duilieid"].ToString();                        //排队队列唯一编号
                                pdjhxx.DANGQIANHM = dtPaiDuiJSXX.Rows[0]["yewuxh"].ToString();                          //业务序号(挂号序号)
                                string GuaHaoId = (dtPaiDuiJSXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID
                                pdjhxx.SHANGXIAWBZ = dtPaiDuiJSXX.Rows[0]["shangxiawbz"].ToString();
                                pdjhxx.KESHIDM     = ksxx.KESHIDM;
                                pdjhxx.YISHENGDM   = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                                pdjhxx.KESHIMC     = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", ksxx.KESHIDM)).ToString();
                                if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*")
                                {
                                    pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString();
                                }
                                OutObject.PAIDUIJHMX.Add(pdjhxx);
                            }
                        }
                    }
                }
            }
            else
            {
                string    duiLieKSSql = "select distinct duilieid from ( select duilieid ,ruduisj as riqi from jh_paiduidl union all select duilieid ,chuduisj as riqi from jh_jieshudl ) where to_char(riqi,'yyyy-mm-dd') = '{0}'";
                DataTable dtDuiLieXX  = DBVisitor.ExecuteTable(string.Format(duiLieKSSql, DateTime.Now.ToString("yyyy-MM-dd")));

                for (int i = 0; i < dtDuiLieXX.Rows.Count; i++)
                {
                    //队列详细信息
                    string    duiLieID    = dtDuiLieXX.Rows[i]["duilieid"].ToString();
                    string    paiDuiXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_paiduidl where duilieid = '{0}'  and zhuangtaiid = '06' ";
                    DataTable dtPaiDuiXX  = DBVisitor.ExecuteTable(string.Format(paiDuiXXSql, duiLieID));
                    if (dtPaiDuiXX.Rows.Count > 0)
                    {
                        PAIDUIJHXX pdjhxx     = new PAIDUIJHXX();
                        string     duiliexx   = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'";
                        DataTable  duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID));
                        if (duiliexxtb.Rows.Count > 0)//就诊位置
                        {
                            pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString();
                        }
                        else
                        {
                            pdjhxx.SUOZAIZJ = "";
                        }
                        pdjhxx.PAIDUIID   = dtPaiDuiXX.Rows[0]["duilieid"].ToString();                        //排队队列唯一编号
                        pdjhxx.DANGQIANHM = dtPaiDuiXX.Rows[0]["yewuxh"].ToString();                          //业务序号(挂号序号)
                        string GuaHaoId = (dtPaiDuiXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID
                        pdjhxx.SHANGXIAWBZ = dtPaiDuiXX.Rows[0]["shangxiawbz"].ToString();
                        pdjhxx.KESHIDM     = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                        pdjhxx.YISHENGDM   = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();

                        pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString();
                        if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*")
                        {
                            pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString();
                        }
                        OutObject.PAIDUIJHMX.Add(pdjhxx);
                    }
                    else
                    {
                        if (paiDuiJHLSJL == "0")
                        {
                            //结束队列信息
                            string    paiDuiJSXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_jieshudl where duilieid = '{0}' ";
                            DataTable dtPaiDuiJSXX  = DBVisitor.ExecuteTable(string.Format(paiDuiJSXXSql, duiLieID));
                            if (dtPaiDuiJSXX.Rows.Count > 0)
                            {
                                PAIDUIJHXX pdjhxx     = new PAIDUIJHXX();
                                string     duiliexx   = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'";
                                DataTable  duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID));
                                if (duiliexxtb.Rows.Count > 0)//就诊位置
                                {
                                    pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString();
                                }
                                else
                                {
                                    pdjhxx.SUOZAIZJ = "";
                                }
                                pdjhxx.PAIDUIID   = dtPaiDuiJSXX.Rows[0]["duilieid"].ToString();                        //排队队列唯一编号
                                pdjhxx.DANGQIANHM = dtPaiDuiJSXX.Rows[0]["yewuxh"].ToString();                          //业务序号(挂号序号)
                                string GuaHaoId = (dtPaiDuiJSXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID
                                pdjhxx.SHANGXIAWBZ = dtPaiDuiJSXX.Rows[0]["shangxiawbz"].ToString();
                                pdjhxx.KESHIDM     = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                                pdjhxx.YISHENGDM   = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();

                                pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString();
                                if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*")
                                {
                                    pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString();
                                }
                                OutObject.PAIDUIJHMX.Add(pdjhxx);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 14
0
        public override void ProcessMessage()
        {
            OutObject = new GUAHAOXXCX_OUT();
            string jiuzhenkLx  = InObject.JIUZHENKLX;         //就诊卡类型
            string jiuzhenKh   = InObject.JIUZHENKH;          //就诊卡号
            string zhengjianLx = InObject.ZHENGJIANLX;        //证件类型
            string zhengjianHm = InObject.ZHENGJIANHM;        //证件号码
            string xingMing    = InObject.XINGMING;           //姓名
            string riQi        = InObject.RIQI;               //日期
            string guahaoBc    = InObject.GUAHAOBC;           //挂号班次
            string keshiDm     = InObject.KESHIDM;            //科室代码
            string yishengDm   = InObject.YISHENGDM;          //医生代码
            string bingRenId   = InObject.BINGRENID;          //病人ID
            string yuanQuID    = InObject.BASEINFO.FENYUANDM; //院区ID

            #region 基本入参判断
            //就诊卡号
            if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengjianHm))
            {
                throw new Exception("就诊卡号获取失败,请重新尝试!");
            }
            //日期
            if (string.IsNullOrEmpty(riQi))
            {
                throw new Exception("日期获取失败,请重新尝试!");
            }
            //挂号班次
            //if (string.IsNullOrEmpty(guahaoBc))
            //{
            //    throw new Exception("挂号班次获取失败,请重新尝试!");
            //}
            //科室代码
            if (string.IsNullOrEmpty(keshiDm))
            {
                keshiDm = "*";
            }
            //医生代码
            if (string.IsNullOrEmpty(yishengDm))
            {
                yishengDm = "*";
            }

            #endregion

            #region 基础信息查询语句
            if (string.IsNullOrEmpty(bingRenId) && !string.IsNullOrEmpty(jiuzhenKh))
            {
                bingRenId = DBVisitor.ExecuteScalar("select bingrenid from gy_bingrenxx where jiuzhenkh='" + jiuzhenKh + "' or shenfenzh = '" + zhengjianHm + "'").ToString();
            }


            StringBuilder sbSql = new StringBuilder();
            sbSql.Append(" select  guahaoid ,guahaolb,guahaoks keshidm,guahaoksmc keshimc,guahaoys yishengdm,to_char(guahaorq,'yyyy-mm-dd') riqi, ");
            sbSql.Append(" decode(shangxiawbz,0,1,1,2) guahaobc,guahaoxh,nvl(yuyuebz,0) shifouyy,yuyueid  from mz_guahao1 where nvl(zuofeibz,0) = 0 ");
            sbSql.Append(" and yuanquid ='" + yuanQuID + "' ");
            sbSql.Append(" and (bingrenid='" + bingRenId + "') ");
            sbSql.Append(" and (nvl(guahaoks,'*') = '" + keshiDm + "' or '*' = '" + keshiDm + "')  and (nvl(guahaoys,'*') = '" + yishengDm + "' or '*' = '" + yishengDm + "') ");
            //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + sbSql.ToString(), messageId);
            if (!string.IsNullOrEmpty(riQi))
            {
                sbSql.Append(" and to_char(guahaorq,'yyyy-mm-dd') = '" + riQi + "' ");
            }
            #endregion

            #region 基础信息拼装
            DataTable dt = DBVisitor.ExecuteTable(sbSql.ToString());
            if (dt.Rows.Count <= 0)
            {
                throw new Exception("未找到挂号记录!");
            }
            else
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    GUAHAOXX ghxx = new GUAHAOXX();
                    ghxx.GUAHAOID  = dt.Rows[i]["GUAHAOID"].ToString();
                    ghxx.GUAHAOLB  = dt.Rows[i]["GUAHAOLB"].ToString();
                    ghxx.KESHIDM   = dt.Rows[i]["KESHIDM"].ToString();
                    ghxx.KESHIMC   = dt.Rows[i]["KESHIMC"].ToString();
                    ghxx.YISHENGDM = dt.Rows[i]["YISHENGDM"].ToString();
                    ghxx.RIQI      = dt.Rows[i]["RIQI"].ToString();
                    ghxx.GUAHAOBC  = dt.Rows[i]["GUAHAOBC"].ToString();
                    ghxx.GUAHAOXH  = dt.Rows[i]["GUAHAOXH"].ToString();
                    ghxx.SHIFOUYY  = dt.Rows[i]["SHIFOUYY"].ToString();

                    //获取医生姓名
                    if (!string.IsNullOrEmpty(ghxx.YISHENGDM))
                    {
                        DataTable dtYs = DBVisitor.ExecuteTable("select xm from gy_zgxx where zgid ='" + ghxx.YISHENGDM + "' ");
                        //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + ghxx.YISHENGDM + ":医生信息:" + "select xm from gy_zgxx where zgid ='" + ghxx.YISHENGDM + "' ", messageId);
                        if (dtYs.Rows.Count > 0)
                        {
                            ghxx.YISHENGXM = dtYs.Rows[0]["XM"].ToString();
                        }
                    }
                    //诊间 就诊信息
                    DataTable dtJZ = DBVisitor.ExecuteTable("select to_char(a.jiuzhenrq,'yyyy-mm-dd hh24:mm:dd') jiuzhensj,b.weizhism weizhi,decode(a.jiuzhenzt,0,0,1) jiuzhenbs from zj_jiuzhenxx a, gy_keshi b where a.guahaoks = b.keshiid and a.guahaoid ='" + ghxx.GUAHAOID + "'");
                    //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + ghxx.YISHENGDM + ":诊间信息:" + "select to_char(a.jiuzhenrq,'yyyy-mm-dd hh24:mm:dd') jiuzhensj,b.weizhism weizhi,decode(a.jiuzhenzt,0,0,1) jiuzhenbs from zj_jiuzhenxx a, gy_keshi b where a.guahaoks = b.keshiid and a.guahaoid ='" + ghxx.GUAHAOID + "'", messageId);
                    if (dt.Rows.Count > 0)
                    {
                        ghxx.JIUZHENSJ = dtJZ.Rows[0]["JIUZHENSJ"].ToString();
                        ghxx.JIUZHENDD = dtJZ.Rows[0]["WEIZHI"].ToString();
                        ghxx.JIUZHENBS = dtJZ.Rows[0]["JIUZHENBS"].ToString();
                    }
                    //预约信息
                    if (!string.IsNullOrEmpty(ghxx.SHIFOUYY) && ghxx.SHIFOUYY != "0")
                    {
                        DataTable dtYY = DBVisitor.ExecuteTable(" select yuyuehao,yuyuely from mz_guahaoyy where yuyueid ='" + dt.Rows[i]["YUYUEID"].ToString() + "' ");
                        //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + dt.Rows[i]["YUYUEID"].ToString() + ":预约信息:" + " select yuyuehao,yuyuely from mz_guahaoyy where yuyueid ='" + dt.Rows[i]["YUYUEID"].ToString() + "' ", messageId);
                        if (dtYY.Rows.Count > 0)
                        {
                            ghxx.QUHAOMM = dtYY.Rows[0]["YUYUEHAO"].ToString();
                            ghxx.YUYUELY = dtYY.Rows[0]["YUYUELY"].ToString();
                        }
                    }
                    OutObject.GUAHAOXXLB.Add(ghxx);
                }
            }
            #endregion

            if (OutObject.GUAHAOXXLB.Count <= 0)
            {
                throw new Exception("未找到相关的挂号信息!");
            }
        }
Exemplo n.º 15
0
        public override void ProcessMessage()
        {
            OutObject = new HUANZHEJHCX_OUT();

            string BingRenID = InObject.BINGRENID;

            //病人编号不为空时,获取病人所在队列的信息
            //获取指定队列号
            //获取当前就诊号码
            //获取病人队列号码
            if (!string.IsNullOrEmpty(BingRenID))
            {
                DataTable dt = DBVisitor.ExecuteTable(string.Format("select duilieid from jh_paiduidl where bingrenid={0} "
                                                                    + " union all select duilieid from jh_jieshudl where bingrenid={0} ", BingRenID));
                if (dt.Rows.Count > 0)
                {
                    for (int dl = 0; dl < dt.Rows.Count; dl++)
                    {
                        PAIDUIJHXX pdjhxx = new PAIDUIJHXX();
                        #region 取病人队列信息
                        string    duiLieSql = "select duilieid,yewuxh,zhuangtaiid from jh_paiduidl where bingrenid = {0}";
                        DataTable dtDuiLie  = DBVisitor.ExecuteTable(string.Format(duiLieSql, BingRenID));
                        if (dtDuiLie.Rows.Count > 0)
                        {
                            for (int i = 0; i < dtDuiLie.Rows.Count; i++)
                            {
                                pdjhxx.PAIDUIID  = dtDuiLie.Rows[i]["duilieid"].ToString();
                                pdjhxx.BINGRENXH = dtDuiLie.Rows[i]["yewuxh"].ToString();
                                string ztxx = dtDuiLie.Rows[i]["zhuangtaiid"].ToString();
                                if (ztxx == "06")
                                {
                                    pdjhxx.BINGRENZT = "就诊中";
                                }
                                else if (ztxx == "02")
                                {
                                    pdjhxx.BINGRENZT = "已过号";
                                }
                                else
                                {
                                    pdjhxx.BINGRENZT = "等待就诊";
                                }
                            }
                        }
                        else
                        {
                            string    jieShuDuiLieSql = "select duilieid,yewuxh,zhuangtaiid from jh_jieshudl where bingrenid = {0}";
                            DataTable jieShuDuiLie    = DBVisitor.ExecuteTable(string.Format(jieShuDuiLieSql, BingRenID));
                            for (int i = 0; i < jieShuDuiLie.Rows.Count; i++)
                            {
                                pdjhxx.PAIDUIID  = jieShuDuiLie.Rows[i]["duilieid"].ToString();
                                pdjhxx.BINGRENXH = jieShuDuiLie.Rows[i]["yewuxh"].ToString();
                                pdjhxx.BINGRENZT = "已就诊";
                            }
                        }
                        #endregion
                        #region 取队列信息
                        string    duiLieID    = pdjhxx.PAIDUIID;
                        string    paiDuiXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_paiduidl where duilieid = '{0}'  and zhuangtaiid = '06' ";
                        DataTable dtPaiDuiXX  = DBVisitor.ExecuteTable(string.Format(paiDuiXXSql, duiLieID));
                        if (dtPaiDuiXX.Rows.Count > 0)
                        {
                            pdjhxx.PAIDUIID   = dtPaiDuiXX.Rows[0]["duilieid"].ToString();
                            pdjhxx.DANGQIANHM = dtPaiDuiXX.Rows[0]["yewuxh"].ToString();
                            string GuaHaoId = (dtPaiDuiXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString();//获取挂号ID
                            pdjhxx.SHANGXIAWBZ = dtPaiDuiXX.Rows[0]["shangxiawbz"].ToString();
                            pdjhxx.KESHIDM     = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                            pdjhxx.YISHENGDM   = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                            pdjhxx.KESHIMC     = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString();
                            if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*")
                            {
                                pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString();
                            }
                        }
                        else
                        {
                            //结束队列信息
                            string    paiDuiJSXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_jieshudl where duilieid = '{0}' ";
                            DataTable dtPaiDuiJSXX  = DBVisitor.ExecuteTable(string.Format(paiDuiJSXXSql, duiLieID));
                            if (dtPaiDuiJSXX.Rows.Count > 0)
                            {
                                pdjhxx.PAIDUIID   = dtPaiDuiJSXX.Rows[0]["duilieid"].ToString();
                                pdjhxx.DANGQIANHM = dtPaiDuiJSXX.Rows[0]["yewuxh"].ToString();
                                string GuaHaoId = (dtPaiDuiJSXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString();//获取挂号ID
                                pdjhxx.SHANGXIAWBZ = dtPaiDuiJSXX.Rows[0]["shangxiawbz"].ToString();
                                pdjhxx.KESHIDM     = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                                pdjhxx.YISHENGDM   = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString();
                                pdjhxx.KESHIMC     = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString();
                                if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*")
                                {
                                    pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString();
                                }
                            }
                        }
                        #endregion
                        OutObject.HUANZHEJHMX.Add(pdjhxx);
                    }
                }
                else
                {
                    throw new Exception("未找到病人的排队信息!");
                }
            }
        }
Exemplo n.º 16
0
        public override void ProcessMessage()
        {
            OutObject = new JIESHOUSZSQ_OUT();
            string jiuzhenKh  = InObject.JIUZHENKH;
            string jiuzhenkLx = InObject.JIUZHENKLX;

            int JIUZHENKCD = Convert.ToInt32(ConfigurationManager.AppSettings["JIUZHENKCD"]);//就诊卡默认长度

            #region 基本入参判断
            if (InObject.YEWULX == null || InObject.YEWULX == "")
            {
                throw new Exception(string.Format("业务类型不能为空!"));
            }
            if (InObject.BINGRENXM == null || InObject.BINGRENXM == "")
            {
                throw new Exception(string.Format("病人姓名不能为空!"));
            }
            if (InObject.BINGRENXB == null || InObject.BINGRENXB == "")
            {
                throw new Exception(string.Format("病人性别不能为空!"));
            }
            if (InObject.BINGRENCSRQ == null || InObject.BINGRENCSRQ == "")
            {
                throw new Exception(string.Format("病人出生日期不能为空!"));
            }
            if (InObject.BINGRENSFZH == null || InObject.BINGRENSFZH == "")
            {
                throw new Exception(string.Format("病人身份证号不能为空!"));
            }
            if (InObject.BINGRENLXDH == null || InObject.BINGRENLXDH == "")
            {
                throw new Exception(string.Format("病人联系电话不能为空!"));
            }
            if (InObject.BINGRENLXDZ == null || InObject.BINGRENLXDZ == "")
            {
                throw new Exception(string.Format("病人联系地址不能为空!"));
            }
            if (InObject.SHENQINGJGDM == null || InObject.SHENQINGJGDM == "")
            {
                throw new Exception(string.Format("申请机构代码不能为空!"));
            }
            if (InObject.SHENQINGJGMC == null || InObject.SHENQINGJGMC == "")
            {
                throw new Exception(string.Format("申请机构名称不能为空!"));
            }
            if (InObject.SHENQINGYS == null || InObject.SHENQINGYS == "")
            {
                throw new Exception(string.Format("申请医生不能为空!"));
            }
            if (InObject.SHENQINGYSDH == null || InObject.SHENQINGYSDH == "")
            {
                throw new Exception(string.Format("申请医生电话不能为空!"));
            }
            if (InObject.SHENQINGRQ == null || InObject.SHENQINGRQ == "")
            {
                throw new Exception(string.Format("申请日期不能为空!"));
            }
            if (InObject.BINQINGMS == null || InObject.BINQINGMS == "")
            {
                throw new Exception(string.Format("病情描述不能为空!"));
            }
            if (InObject.ZHUANZHENZYSX == null || InObject.ZHUANZHENZYSX == "")
            {
                throw new Exception(string.Format("转诊注意事项不能为空!"));
            }
            #endregion

            if (JIUZHENKCD > 0)
            {
                if (jiuzhenKh.Length < JIUZHENKCD)
                {
                    jiuzhenKh = jiuzhenKh.PadLeft(JIUZHENKCD, '0');
                }
            }

            //转诊申请单号
            var zzsqdbh = DBVisitor.ExecuteScalar(SqlLoad.GetFormat("select seq_sxzz_zzsqd.nextval zzsqd from dual")).ToString();

            var tran = DBVisitor.Connection.BeginTransaction();
            try
            {
                #region//申请单信息
                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00007,
                                                            zzsqdbh, InObject.JIUZHENKLX, InObject.JIUZHENKH, InObject.YEWULX,
                                                            InObject.BINGRENXM, InObject.BINGRENXB, InObject.BINGRENCSRQ,
                                                            InObject.BINGRENNL, InObject.BINGRENSFZH, InObject.BINGRENLXDH,
                                                            InObject.BINGRENLXDZ, InObject.BINGRENFYLB, InObject.SHENQINGJGDM,
                                                            InObject.SHENQINGJGMC, InObject.SHENQINGJGLXDH, InObject.SHENQINGYS,
                                                            InObject.SHENQINGYSDH, InObject.SHENQINGRQ, InObject.ZHUANZHENYY,
                                                            InObject.BINQINGMS, InObject.ZHUANZHENZYSX, InObject.ZHUANZHENDH,
                                                            InObject.SZJSLXR, InObject.SZJSLXRDH, InObject.ZHUANRUKSDM,
                                                            InObject.ZHUANRUKSMC), tran);
                //申请单状态
                //DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00077, zzsqdbh), tran);
                #endregion
                #region //门诊处方信息
                foreach (var item in InObject.CHUFANGMX)
                {
                    int i = 0;
                    if (item.CHUFANGXXMX.Count > 0)
                    {
                        if (string.IsNullOrEmpty(item.CHUFANGID))
                        {
                            throw new Exception(string.Format("处方ID不能为空!"));
                        }
                        /*zzsqdh,cfid,cfly,cflx,kfrq,bz*/
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00008,
                                                                    zzsqdbh, item.CHUFANGID, item.CHUFANGLY, item.CHUFANGLX, item.KAIFANGRQ, item.BEIZHU), tran);
                        foreach (var itemmx in item.CHUFANGXXMX)
                        {
                            if (string.IsNullOrEmpty(itemmx.XIANGMUMC))
                            {
                                throw new Exception(string.Format("药品项目名称不能为空!"));
                            }
                            //门诊处方明细

                            /*xh,cfid,fylx,xmmc,yptym,ypspm,
                             *    cdmc,ypgg,dw,sl,pl,gytj,
                             *    yyts,dcyl,yldw,psjg,zcyts,
                             *    fyrq*/
                            ++i;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00009,
                                                                        i, item.CHUFANGID, itemmx.FEIYONGLX, itemmx.XIANGMUMC, itemmx.YAOPINTYM, itemmx.YAOPINSPM,
                                                                        itemmx.CHANGDIMC, itemmx.YAOPINGG, itemmx.DANGWEI, itemmx.SHULIANG, itemmx.PINLV, itemmx.GEIYAOTJ,
                                                                        itemmx.YONGYAOTS, itemmx.DANCIYL, itemmx.YONGLIANGDW, itemmx.PISHIJG, itemmx.ZHONGCHAOYTS,
                                                                        itemmx.FAYAORQ, zzsqdbh), tran);
                        }
                    }
                }
                #endregion
                #region//检验处方信息
                foreach (var item in InObject.JIANYANMX)
                {
                    int i = 0;
                    if (item.JIANYANXXMX.Count > 0)
                    {
                        if (string.IsNullOrEmpty(item.JIANYANID))
                        {
                            throw new Exception(string.Format("检验ID不能为空!"));
                        }

                        /*zzsqdh,jyid,xmmc,kdrq,bz,jyjg,
                         * jcff,wjzbz,jczd,jcrq,yblxmc,ybh,
                         * shys,jyrq*/
                        DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00010,
                                                                    zzsqdbh, item.JIANYANID, item.XIANGMUMC, item.KAIDANRQ, item.BEIZHU, item.JIANYANJG,
                                                                    item.JIANCEFF, item.WEIJIZBZ, item.JIANCHAZD, item.JIANCHARQ, item.YANGBENLXMC, item.YANGBENGH,
                                                                    item.SHENGHEYS, item.JIANYANRQ), tran);
                        foreach (var itemmx in item.JIANYANXXMX)
                        {
                            if (string.IsNullOrEmpty(itemmx.XIANGMUMC))
                            {
                                throw new Exception(string.Format("检验项目名称不能为空!"));
                            }
                            //检验处方明细

                            /*xh,jyid,xmmc,jyz,dyxh,dx,
                             *    fw,dw*/
                            ++i;
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00011,
                                                                        i, item.JIANYANID, itemmx.XIANGMUMC, itemmx.JIANYANZ, itemmx.DAYINXH, itemmx.DINGXING,
                                                                        itemmx.FANWEI, itemmx.DANWEI, zzsqdbh), tran);
                        }
                    }
                }
                #endregion
                #region 检查信息
                foreach (var item in InObject.JIANCHAMX)
                {
                    /*zzsqdh,jcid,jclxmc,kdrq,xmmc,yxsj,
                     * zdjg,bz,bgdz,kdys*/
                    if (string.IsNullOrEmpty(item.JIANCHAID))
                    {
                        throw new Exception(string.Format("检查ID不能为空!"));
                    }
                    DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00012,
                                                                zzsqdbh, item.JIANCHAID, item.JIANCHALX, item.KAIDANRQ, item.XIANGMUMC, item.YIXIANGSJ,
                                                                item.ZHENDUAMJG, item.BEIZHU, item.BAOGAODZ, item.KAIDANYS), tran);
                }
                #endregion
                #region//住院医嘱信息
                foreach (var item in InObject.ZHUYUANYZMX)
                {
                    /*zzsqdh,yzid,yzlx,yzmc,yzzh,kssj,
                     * jssj,ycsl,yldw,zxrq,pl,yzlb,
                     * kdys,fyzid,psjg,gytj*/
                    if (string.IsNullOrEmpty(item.YIZHUXH))
                    {
                        throw new Exception(string.Format("医嘱序号不能为空!"));
                    }
                    string sql = SqlLoad.GetFormat(SQ.HIS00013,
                                                   zzsqdbh, item.YIZHUXH, item.YIZHULX, item.YIZHUMC, item.YIZHUZH, item.KAISHISJ,
                                                   item.TINGZHISJ, item.YICISL, item.YONGLIANGDW, item.ZHIXINGRQ, item.PINGLV, item.YIZHULB,
                                                   item.KAIDANYS, item.FUYIZXH, item.PISHIJG, item.GEIYAOTJ);
                    DBVisitor.ExecuteNonQuery(sql, tran);
                }
                #endregion
                tran.Commit();
                OutObject             = new JIESHOUSZSQ_OUT();
                OutObject.ZHUANZHENDH = zzsqdbh;
            }
            catch (Exception ex)
            {
                tran.Rollback();
                throw ex;
            }
        }
Exemplo n.º 17
0
        public override void ProcessMessage()
        {
            OutObject = new ZHUYUANFYXX_OUT();
            string bingRenZYID = InObject.BINGRENZYID; //病人id
            string zaiYuanZT   = InObject.ZAIYUANZT;   //在院状态

            if (string.IsNullOrEmpty(bingRenZYID))
            {
                throw new Exception("病人住院ID不能为空!");
            }


            StringBuilder zhuYuanBRXXSQL = new StringBuilder();

            zhuYuanBRXXSQL.Append(" select * from zy_bingrenxx where bingrenZYid = '{0}' ");
            if (!string.IsNullOrEmpty(zaiYuanZT))
            {
                if (zaiYuanZT == "0")
                {
                    zhuYuanBRXXSQL.Append(" and zaiyuanzt = 0 ");
                }
                else
                {
                    zhuYuanBRXXSQL.Append(" and zaiyuanzt != 0 ");
                }
            }

            zhuYuanBRXXSQL.Append(" order by ruyuanrq desc ");
            DataTable dtZhuYuanBRXX = DBVisitor.ExecuteTable(string.Format(zhuYuanBRXXSQL.ToString(), bingRenZYID));

            if (dtZhuYuanBRXX.Rows.Count <= 0)
            {
                throw new Exception("未找到病人住院信息!");
            }

            //string bingRenZYID = dtZhuYuanBRXX.Rows[0]["bingrenzyid"].ToString();//病人住院id
            OutObject.BINGRENZYID = bingRenZYID;

            #region 结算信息
            //基本费用信息
            string sqlZhuYuanJSXX = " select feiyonghj,zifeije,zilije,zifuje from zy_jiesuan1 where jiesuanid in (select jiesuanid from zy_jiesuan1 where bingrenzyid  = '{0}' ) ";
            //预交款信息
            string sqlZhuYanYJK = " select  trim(to_char(nvl(sum(jiaokuanje),0),'999999999.99'))  from zy_yujiaokuan where bingrenzyid = '{0}' ";

            DataTable dtZhuYuanJSXX = DBVisitor.ExecuteTable(string.Format(sqlZhuYuanJSXX, bingRenZYID));

            if (dtZhuYuanJSXX.Rows.Count > 0)
            {
                OutObject.JIESUANJG.FEIYONGZE = dtZhuYuanJSXX.Rows[0]["feiyonghj"].ToString(); //费用合计
                OutObject.JIESUANJG.ZILIJE    = dtZhuYuanJSXX.Rows[0]["zilije"].ToString();    //自理金额
                OutObject.JIESUANJG.ZIFUJE    = dtZhuYuanJSXX.Rows[0]["zifuje"].ToString();    //自负金额
                OutObject.JIESUANJG.ZIFEIJE   = dtZhuYuanJSXX.Rows[0]["zifeije"].ToString();   //自费金额
            }
            else
            {
                OutObject.JIESUANJG.FEIYONGZE = "0.00"; //费用合计
                OutObject.JIESUANJG.ZILIJE    = "0.00"; //自理金额
                OutObject.JIESUANJG.ZIFUJE    = "0.00"; //自负金额
                OutObject.JIESUANJG.ZIFEIJE   = "0.00"; //自费金额
            }

            OutObject.JIESUANJG.YUJIAOKZE = DBVisitor.ExecuteScalar(string.Format(sqlZhuYanYJK, bingRenZYID)).ToString();//住院预交款总额


            #endregion


            #region 详细结算结果

            #endregion

            #region 费用支付明细

            #endregion

            #region 费用归并
            string sqlFeiYongGB = "select trim(to_Char(sum(a.jiesuanjia * a.shuliang),'999999999999999999.99')) je , b.hesuanxmid as xiangmugl ,b.hesuanxmmc as xiangmuglmc "
                                  + " FROM ZY_FEIYONG1 a,gy_hesuanxm b,zy_bingrenxx c "
                                  + " WHERE b.hesuanxmid(+)=a.hesuanxm and c.BINGRENZYID = a.bingrenzyid  "
                                  + " and a.shuliang > 0 and a.feiyongid not in (select yuanfeiyid from zy_feiyong1 where bingrenzyid = '{0}' and shuliang < 0) "
                                  + " and c.bingrenzyid = '{0}'  group by b.hesuanxmid,b.hesuanxmmc order by b.hesuanxmid ";
            DataTable dtFeiYongGB = DBVisitor.ExecuteTable(string.Format(sqlFeiYongGB, bingRenZYID));//费用归并信息检索

            for (int i = 0; i < dtFeiYongGB.Rows.Count; i++)
            {
                FEIYONGGLXX fyglxx = new FEIYONGGLXX();
                fyglxx.JINE        = dtFeiYongGB.Rows[i]["je"].ToString();
                fyglxx.XIANGMUGL   = dtFeiYongGB.Rows[i]["xiangmugl"].ToString();
                fyglxx.XIANGMUGLMC = dtFeiYongGB.Rows[i]["xiangmuglmc"].ToString();
                OutObject.FEIYONGGLMX.Add(fyglxx);
            }
            #endregion

            #region 预交款信息
            string    sqlYuJiaoKuan = "select to_char(a.jiaokuanrq,'yyyy-mm-dd') riqi,a.jiaokuanje,b.ZHIFUMC from zy_yujiaokuan a,gy_zhifufs b where a.zhifufs = b.zhifufsid and  bingrenzyid = {0} ";
            DataTable dtYuJiaoKuan  = DBVisitor.ExecuteTable(string.Format(sqlYuJiaoKuan, bingRenZYID));

            for (int i = 0; i < dtYuJiaoKuan.Rows.Count; i++)
            {
                YUJIAOKXX yjkxx = new YUJIAOKXX();
                yjkxx.JIAOKUANRQ = dtYuJiaoKuan.Rows[i]["riqi"].ToString();
                yjkxx.JIAOKUANJE = dtYuJiaoKuan.Rows[i]["jiaokuanje"].ToString();
                yjkxx.ZHIFULX    = dtYuJiaoKuan.Rows[i]["zhifumc"].ToString();
                OutObject.YUJIAOKMX.Add(yjkxx);
            }
            #endregion
        }
Exemplo n.º 18
0
        public override void ProcessMessage()
        {    //modify   by 沈报  --控制医院的参数
            string KZYY = System.Configuration.ConfigurationManager.AppSettings["YYKZ"];

            OutObject = new ZHUYUANRYXX_OUT();
            string jiuzhenkLx  = InObject.JIUZHENKLX;         //就诊卡类型
            string jiuzhenKh   = InObject.JIUZHENKH;          //就诊卡号
            string bingquDm    = InObject.BINGQUDM;           //病区代码
            string chuangweiH  = InObject.CHUANGWEIH;         //床位号
            string bingrenLb   = InObject.BINGRENLB;          //病人类别
            string yibaokLx    = InObject.YIBAOKLX;           //医保卡类型
            string yibaokMm    = InObject.YIBAOKMM;           //医保卡密码
            string yibaokXx    = InObject.YIBAOKXX;           //医保卡信息
            string yiliaoLb    = InObject.YILIAOLB;           //医疗类别
            string jiesuanLb   = InObject.JIESUANLB;          //结算类别
            string jiuzhenRq   = InObject.JIUZHENRQ;          //就诊日期
            string qianfeiKz   = InObject.QIANFEIKZ;          //欠费控制
            string zhengjianLx = InObject.ZHENGJIANLX;        //诊间类型
            string zhengjianHm = InObject.ZHENGJIANHM;        //证件号码
            string zaiyuanZt   = InObject.ZAIYUANZT;          //在院状态
            string zhuyuanHao  = InObject.ZHUYUANHAO;         //住院号
            string yuanQuId    = InObject.BASEINFO.FENYUANDM; //分院代码

            #region 基本入参判断

            if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengjianHm) && string.IsNullOrEmpty(zhuyuanHao))
            {
                throw new Exception("就诊卡号,住院号和证件号码不能同时为空!");
            }
            #endregion
            StringBuilder sqlZYBRXX;
            if (KZYY == "000001")
            {
                sqlZYBRXX = new StringBuilder("select a.jiuzhenkh,a.feiyonglb bingrenlb,a.feiyongxz bingrenxz,a.yibaokh, ")
                            .Append("a.gerenbh,a.zhuyuanhao binglibh,a.xingming,a.xingbie,a.minzu,to_char(a.chushengrq,'yyyy-mm-dd') chushengrq, ")
                            .Append("'1' zhengjianlx,a.shenfenzh zhengjianhm,'' danweilx,a.danweiyb danweibh, ")
                            .Append("a.gongzuodw danweimc,a.jiatingdz jiatingzz,''renyuanlb,a.danbaoje dangnianzhye, ")
                            .Append("a.danbaoje linianzhye,a.teshubzbz,a.teshubzbm teshubzspbh,a.yibaobrxx, ")
                            .Append("'' tishixx,a.yibaoyllb teshudylb,''qianfeije,''hisbrxx,a.lianxirdh lianxidh, ")
                            .Append("a.shenhebz qianyuebz,a.dangqianbq,a.dangqianks,a.zhuzhiys zhuzhiyisheng, ")
                            .Append("a.dangqiancw chuangweih,to_char(a.ruyuanrq,'yyyy-mm-dd')ruyuanrq, ")
                            .Append("to_char(a.chuyuanrq,'yyyy-mm-dd') chuyuanrq,a.bingrenid,a.zaiyuanzt, ")
                            .Append("a.dangqianbqmc bingqumc,a.binganhao binganh ,b.xingzhimc bingrenxzmc ")
                            //modify by xiaobao    2017/3/22 加了个费用总额的字段
                            .Append(" ,a.ruyuanzddm, a.ruyuanzdmc ,a.bingrenzyid ,a.zhuyuanhao ,a.yuanquid,c.FEIYONGZE ")
                            .Append("from v_zy_bingrenxx a ,gy_feiyongxz b ,V_BINGRENFYZE c  where a.feiyongxz = b.xingzhiid and a.bingrenzyid=c.bingrenzyid and ((a.jiuzhenkh = '{0}' or a.yibaokh = '{0}') or (a.shenfenzh = '{1}') or a.zhuyuanhao = '{2}') and a.yuanquid = '{3}'");
            }
            else
            {
                sqlZYBRXX = new StringBuilder("select a.jiuzhenkh,a.feiyonglb bingrenlb,a.feiyongxz bingrenxz,a.yibaokh, ")
                            .Append("a.gerenbh,a.zhuyuanhao binglibh,a.xingming,a.xingbie,a.minzu,to_char(a.chushengrq,'yyyy-mm-dd') chushengrq, ")
                            .Append("'1' zhengjianlx,a.shenfenzh zhengjianhm,'' danweilx,a.danweiyb danweibh, ")
                            .Append("a.gongzuodw danweimc,a.jiatingdz jiatingzz,''renyuanlb,a.danbaoje dangnianzhye, ")
                            .Append("a.danbaoje linianzhye,a.teshubzbz,a.teshubzbm teshubzspbh,a.yibaobrxx, ")
                            .Append("'' tishixx,a.yibaoyllb teshudylb,''qianfeije,''hisbrxx,a.lianxirdh lianxidh, ")
                            .Append("a.shenhebz qianyuebz,a.dangqianbq,a.dangqianks,a.zhuzhiys zhuzhiyisheng, ")
                            .Append("a.dangqiancw chuangweih,to_char(a.ruyuanrq,'yyyy-mm-dd')ruyuanrq, ")
                            .Append("to_char(a.chuyuanrq,'yyyy-mm-dd') chuyuanrq,a.bingrenid,a.zaiyuanzt, ")
                            .Append("a.dangqianbqmc bingqumc,a.binganhao binganh ,b.xingzhimc bingrenxzmc ")
                            .Append(" ,a.ruyuanzddm, a.ruyuanzdmc ,a.bingrenzyid ,a.zhuyuanhao ,a.yuanquid ")
                            .Append("from v_zy_bingrenxx a ,gy_feiyongxz b  where a.feiyongxz = b.xingzhiid and ((a.jiuzhenkh = '{0}' or a.yibaokh = '{0}') or (a.shenfenzh = '{1}') or a.zhuyuanhao = '{2}') and a.yuanquid = '{3}'");
            }
            if (!string.IsNullOrEmpty(zaiyuanZt) && zaiyuanZt == "0")
            {
                sqlZYBRXX.Append(" and zaiyuanzt = 0 ");
            }
            else if (!string.IsNullOrEmpty(zaiyuanZt) && zaiyuanZt == "1")
            {
                sqlZYBRXX.Append(" and zaiyuanzt != 0 ");
            }

            DataTable dtZYBRXX = DBVisitor.ExecuteTable(string.Format(sqlZYBRXX.ToString(), jiuzhenKh, zhengjianHm, zhuyuanHao, yuanQuId));

            if (dtZYBRXX.Rows.Count <= 0)
            {
                if (!string.IsNullOrEmpty(zaiyuanZt) && zaiyuanZt == "0")
                {
                    throw new Exception("未找到在院病人信息!");
                }
                throw new Exception("未找到相关住院病人信息!");
            }
            else
            {
                for (int i = 0; i < dtZYBRXX.Rows.Count; i++)
                {
                    #region 拼装住院人员信息
                    ZHUYUANXX zyxx = new ZHUYUANXX();
                    zyxx.JIUZHENKH    = dtZYBRXX.Rows[i]["JIUZHENKH"].ToString();                                                       //就诊卡号
                    zyxx.BINGRENLB    = dtZYBRXX.Rows[i]["BINGRENLB"].ToString();                                                       //病人类别
                    zyxx.BINGRENXZ    = dtZYBRXX.Rows[i]["BINGRENXZ"].ToString();                                                       //病人性质
                    zyxx.YIBAOKH      = dtZYBRXX.Rows[i]["YIBAOKH"].ToString();                                                         //医保卡号
                    zyxx.GERENBH      = dtZYBRXX.Rows[i]["GERENBH"].ToString();                                                         //个人编号
                    zyxx.BINGLIBH     = dtZYBRXX.Rows[i]["BINGLIBH"].ToString();                                                        //病历本号
                    zyxx.XINGMING     = dtZYBRXX.Rows[i]["XINGMING"].ToString();                                                        //姓名
                    zyxx.XINGBIE      = dtZYBRXX.Rows[i]["XINGBIE"].ToString();                                                         //性别
                    zyxx.MINZU        = dtZYBRXX.Rows[i]["MINZU"].ToString();                                                           //民族
                    zyxx.CHUSHENGRQ   = dtZYBRXX.Rows[i]["CHUSHENGRQ"].ToString();                                                      //出生日期
                    zyxx.ZHENGJIANLX  = dtZYBRXX.Rows[i]["ZHENGJIANLX"].ToString();                                                     //证件类型
                    zyxx.ZHENGJIANHM  = dtZYBRXX.Rows[i]["ZHENGJIANHM"].ToString();                                                     //证件号码
                    zyxx.DANWEILX     = dtZYBRXX.Rows[i]["DANWEILX"].ToString();                                                        //单位类型
                    zyxx.DANWEIBH     = dtZYBRXX.Rows[i]["DANWEIBH"].ToString();                                                        //单位编号
                    zyxx.DANWEIMC     = dtZYBRXX.Rows[i]["DANWEIMC"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|");  //单位名称
                    zyxx.JIATINGZZ    = dtZYBRXX.Rows[i]["JIATINGZZ"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //家庭地址
                    zyxx.RENYUANLB    = dtZYBRXX.Rows[i]["RENYUANLB"].ToString();                                                       //人员类别
                    zyxx.DANGNIANZHYE = dtZYBRXX.Rows[i]["DANGNIANZHYE"].ToString();                                                    //当年帐户余额
                    zyxx.LINIANZHYE   = dtZYBRXX.Rows[i]["LINIANZHYE"].ToString();                                                      //历年帐户余额
                    zyxx.TESHUBZBZ    = dtZYBRXX.Rows[i]["TESHUBZBZ"].ToString();                                                       //特殊病种标志
                    zyxx.TESHUBZSPBH  = dtZYBRXX.Rows[i]["TESHUBZSPBH"].ToString();                                                     //特殊病种审批编号
                    zyxx.YIBAOBRXX    = dtZYBRXX.Rows[i]["YIBAOBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //医保病人信息
                    zyxx.TISHIXX      = dtZYBRXX.Rows[i]["TISHIXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|");   //提示信息
                    //zyxx.DAIYULB = dtZYBRXX.Rows[i]["DAIYULB"].ToString();//待遇类别
                    //zyxx.CANBAOXZDM = dtZYBRXX.Rows[i]["CANBAOXZDM"].ToString();//参保行政代码
                    zyxx.TESHUDYLB     = dtZYBRXX.Rows[i]["TESHUDYLB"].ToString();                                                      //特殊待遇类别
                    zyxx.QIANFEIJE     = dtZYBRXX.Rows[i]["QIANFEIJE"].ToString();                                                      //欠费金额
                    zyxx.HISBRXX       = dtZYBRXX.Rows[i]["HISBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|");  //HIS病人信息
                    zyxx.LIANXIDH      = dtZYBRXX.Rows[i]["LIANXIDH"].ToString();                                                       //联系电话
                    zyxx.QIANYUEBZ     = dtZYBRXX.Rows[i]["QIANYUEBZ"].ToString();                                                      //签约标志
                    zyxx.DANGQIANBQ    = dtZYBRXX.Rows[i]["DANGQIANBQ"].ToString();                                                     //当前病区
                    zyxx.DANGQIANKS    = dtZYBRXX.Rows[i]["DANGQIANKS"].ToString();                                                     //当前科室
                    zyxx.ZHUZHIYISHENG = dtZYBRXX.Rows[i]["ZHUZHIYISHENG"].ToString();                                                  //主治医生
                    zyxx.CHUANGWEIH    = dtZYBRXX.Rows[i]["CHUANGWEIH"].ToString();                                                     //床位号
                    zyxx.RUYUANRQ      = dtZYBRXX.Rows[i]["RUYUANRQ"].ToString();                                                       //入院日期
                    zyxx.CHUYUANRQ     = dtZYBRXX.Rows[i]["CHUYUANRQ"].ToString();                                                      //出院日期
                    zyxx.BINGRENID     = dtZYBRXX.Rows[i]["BINGRENID"].ToString();                                                      //病人唯一号
                    zyxx.ZAIYUANZT     = dtZYBRXX.Rows[i]["ZAIYUANZT"].ToString();                                                      //在院状态
                    zyxx.BINGQUMC      = dtZYBRXX.Rows[i]["BINGQUMC"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //病区名称
                    zyxx.BINGANH       = dtZYBRXX.Rows[i]["BINGANH"].ToString();                                                        //病案号
                    zyxx.BINGRENXZMC   = dtZYBRXX.Rows[i]["BINGRENXZMC"].ToString();                                                    //病人性质名称
                    zyxx.BINGRENZYID   = dtZYBRXX.Rows[i]["BINGRENZYID"].ToString();                                                    //病人住院id
                    zyxx.ZHUYUANHAO    = dtZYBRXX.Rows[i]["zhuyuanhao"].ToString();                                                     //住院号
                    zyxx.YUANQUID      = dtZYBRXX.Rows[i]["yuanquid"].ToString();                                                       //院区id
                    if (KZYY == "000001")
                    {
                        zyxx.FEIYONGZE = dtZYBRXX.Rows[i]["FEIYONGZE"].ToString();//住院费用总额;
                    }
                    OutObject.ZHUYUANRYMX.Add(zyxx);
                    #endregion

                    #region 特殊病种信息
                    if (zyxx.TESHUBZBZ == "1")
                    {
                        BINGZHONGXX bzxx = new BINGZHONGXX();
                        bzxx.JIBINGDM = dtZYBRXX.Rows[i]["ruyuanzddm"].ToString(); //疾病代码
                        bzxx.JIBINGMC = dtZYBRXX.Rows[i]["ruyuanzdmc"].ToString(); //疾病名称

                        string sqlICD = "select ICD10 AS ICD from gy_jibingdm where zhuyuansy =1 and zuofeibz = 0 and jibingid = '{0}' ";
                        bzxx.JIBINGICD = (string)DBVisitor.ExecuteScalar(string.Format(sqlICD, bzxx.JIBINGDM));

                        OutObject.TESHUBZXX.Add(bzxx);
                    }
                    #endregion
                }
            }
        }
Exemplo n.º 19
0
        public override void ProcessMessage()
        {
            this.OutObject = new GUAHAOCL_OUT();


            string jiuzhenkLx   = InObject.JIUZHENKLX;            //就诊卡类型
            string jiuzhenKh    = InObject.JIUZHENKH;             //就诊卡号
            string bingrenLb    = InObject.BINGRENLB;             //病人类别 "BINGRENLB");
            string bingrenXz    = InObject.BINGRENXZ;             // "BINGRENXZ");
            string yibaokLx     = InObject.YIBAOKLX;              // "YIBAOKLX");
            string yibaokMm     = InObject.YIBAOKMM;              // "YIBAOKMM");
            string yibaoXx      = InObject.YIBAOKXX;              // "YIBAOKXX");
            string yibaobrXx    = InObject.YIBAOBRXX;             // "YIBAOBRXX");
            string yiliaoLb     = InObject.YILIAOLB;              // "YILIAOLB");
            string jiesuanLb    = InObject.JIESUANLB;             // "JIESUANLB");
            string yizhoupbId   = InObject.YIZHOUPBID;            // "YIZHOUPBID");
            string dangtianpbId = InObject.DANGTIANPBID;          // "DANGTIANPBID");
            string riQi         = InObject.RIQI;                  // "RIQI");
            string guahaoBc     = InObject.GUAHAOBC;              // "GUAHAOBC");
            string guahaoLb     = InObject.GUAHAOLB;              // "GUAHAOLB");
            string keshiDm      = InObject.KESHIDM;               //     "KESHIDM");
            string yishengDm    = InObject.YISHENGDM;             // "YISHENGDM");
            string guahaoXh     = InObject.GUAHAOXH;              // "GUAHAOXH");
            string guahaoId     = InObject.GUAHAOID;              // "GUAHAOID");
            string daishouFy    = InObject.DAISHOUFY;             // "DAISHOUFY");
            string yuyueLy      = InObject.YUYUELY;               // "YUYUELY");
            string binglibH     = InObject.BINGLIBH;              // "BINGLIBH");
            string hisbrXx      = InObject.HISBRXX;               // "HISBRXX");
            string jiesuanId    = InObject.JIESUANID;             // "JIESUANID");
            string caozuoyDm    = InObject.BASEINFO.CAOZUOYDM;    // "CAOZUOYDM");
            string caozuoyXm    = InObject.BASEINFO.CAOZUOYXM;    // "CAOZUOYXM");
            string caozuoRq     = InObject.BASEINFO.CAOZUORQ;     // "CAOZUORQ");
            string fenyuanDm    = InObject.BASEINFO.FENYUANDM;    // "FENYUANDM");
            string jiaoyiLsh    = InObject.BASEINFO.ZHONGDUANLSH; // "ZHONGDUANLSH");//终端流水号即交易流水号??


            #region 基本入参判断
            if (string.IsNullOrEmpty(caozuoRq))
            {
                caozuoRq = DateTime.Now.ToString("yyyy-MM-dd");
            }
            if (string.IsNullOrEmpty(jiuzhenKh))
            {
                throw new Exception("就诊卡号获取失败!");
            }

            if (string.IsNullOrEmpty(dangtianpbId))
            {
                throw new Exception("挂号排班编号获取失败!");
            }
            if (string.IsNullOrEmpty(guahaoBc))
            {
                throw new Exception("挂号班次获取失败!");
            }
            if (string.IsNullOrEmpty(daishouFy))
            {
                daishouFy = "0";
            }
            #endregion

            if (daishouFy == "0")
            {
                if (InObject.ZHIFUMX.Count <= 0)
                {
                    throw new Exception("支付明细不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.ZHIFUMX[0].ZHIFULX))
                {
                    throw new Exception("支付类型不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.ZHIFUMX[0].ZHIFUJE))
                {
                    throw new Exception("支付金额不能为空!");
                }
                if (string.IsNullOrEmpty(InObject.ZHIFUMX[0].YINHANGKH))
                {
                    throw new Exception("支付帐号不能为空!");
                }
                if (InObject.ZHIFUMX[0].ZHIFULX != "7")
                {
                    throw new Exception("暂时不支持该支付类型!");
                }
                string ZHIFFS = "1";
                switch (InObject.ZHIFUMX[0].ZHIFULX)
                {
                case "7":
                    ZHIFFS = "19";
                    break;

                default:
                    ZHIFFS = "1";
                    break;
                }


                string brxxSql   = "select bingrenid from gy_bingrenxx where jiuzhenkh='" + jiuzhenKh + "'";
                string bingrenId = DBVisitor.ExecuteScalar(brxxSql).ToString();
                string jiaoyiMsg = bingrenId + "|" + dangtianpbId + "|" + caozuoyDm + "|" + caozuoyXm + "|" + (guahaoBc == "1" ? "0" : "1") + "|"
                                   + caozuoRq + "|" + jiaoyiLsh + "|" + jiuzhenKh + "|" + "1" + "|" + string.Empty + "|" + string.Empty + "|" + ZHIFFS + "|";
                //挂号支付-------------------------------------------------------------------------------------------
                OracleParameter[] paramJiaoYi = new OracleParameter[3];
                paramJiaoYi[0]           = new OracleParameter("PRM_MSG", OracleType.VarChar);
                paramJiaoYi[0].Value     = jiaoyiMsg;
                paramJiaoYi[0].Direction = ParameterDirection.Input;
                paramJiaoYi[1]           = new OracleParameter("PRM_APPCODE", OracleType.Number);
                paramJiaoYi[1].Value     = 0;
                paramJiaoYi[1].Direction = ParameterDirection.Output;
                paramJiaoYi[2]           = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar);
                paramJiaoYi[2].Value     = null;
                paramJiaoYi[2].Size      = 2000;
                paramJiaoYi[2].Direction = ParameterDirection.Output;

                log.InfoFormat("{0}", "执行存储过程:PKG_GY_YINYIJK.PRC_GUAHAOZF \r\nPRM_MSG:" + jiaoyiMsg + "\r\n");

                string        returnValue = string.Empty;
                DbTransaction transaction = null;
                DbConnection  conn        = DBVisitor.Connection;
                try
                {
                    transaction = conn.BeginTransaction();
                    DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_GUAHAOZF", paramJiaoYi, transaction);
                }
                catch (Exception ex)
                {
                    if (transaction != null)
                    {
                        transaction.Rollback();
                        conn.Close();
                    }
                    throw new Exception(ex.Message);
                }
                returnValue = paramJiaoYi[1].Value.ToString();
                string returnMsg = paramJiaoYi[2].Value.ToString();
                // LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "挂号支付存储过程返回值:" + returnValue + "|" + returnMsg);
                if (returnValue == "1")//交易成功
                {
                    try
                    {
                        #region 诊疗费用信息
                        string ZhenLiaoXMSql = "select * from gy_shoufeixm where shoufeixmid in "
                                               + "( select zhenliaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )";
                        DataTable dtZhenLiaoMX = DBVisitor.ExecuteTable(string.Format(ZhenLiaoXMSql, dangtianpbId));

                        for (int i = 0; i < dtZhenLiaoMX.Rows.Count; i++)
                        {
                            FEIYONGXX fyxx = new FEIYONGXX();
                            fyxx.XIANGMUXH = dtZhenLiaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID
                            fyxx.XIANGMUMC = dtZhenLiaoMX.Rows[i]["shoufeixmmc"].ToString();
                            fyxx.XIANGMUGL = dtZhenLiaoMX.Rows[i]["xiangmulx"].ToString();
                            fyxx.DANJIA    = dtZhenLiaoMX.Rows[i]["danjia1"].ToString();//
                            fyxx.SHULIANG  = "1";
                            fyxx.JINE      = dtZhenLiaoMX.Rows[i]["danjia1"].ToString();
                            OutObject.FEIYONGMX.Add(fyxx);
                            OutObject.ZHENLIAOFEI = fyxx.DANJIA;
                        }
                        #endregion

                        #region 挂号费用信息
                        string GuaHaoXMSql = "select * from gy_shoufeixm where shoufeixmid in "
                                             + "( select guahaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )";
                        DataTable dtGuaHaoMX = DBVisitor.ExecuteTable(string.Format(GuaHaoXMSql, dangtianpbId));

                        for (int i = 0; i < dtGuaHaoMX.Rows.Count; i++)
                        {
                            FEIYONGXX fyxx = new FEIYONGXX();
                            fyxx.XIANGMUXH = dtGuaHaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID
                            fyxx.XIANGMUMC = dtGuaHaoMX.Rows[i]["shoufeixmmc"].ToString();
                            fyxx.XIANGMUGL = dtGuaHaoMX.Rows[i]["xiangmulx"].ToString();
                            fyxx.DANJIA    = dtGuaHaoMX.Rows[i]["danjia1"].ToString();//
                            fyxx.SHULIANG  = "1";
                            fyxx.JINE      = dtGuaHaoMX.Rows[i]["danjia1"].ToString();
                            OutObject.FEIYONGMX.Add(fyxx);
                            OutObject.GUAHAOFEI = fyxx.DANJIA;
                        }
                        #endregion

                        double fyze = 0.0;
                        for (int i = 0; i < OutObject.FEIYONGMX.Count; i++)
                        {
                            fyze += Convert.ToDouble(OutObject.FEIYONGMX[i].JINE);
                        }
                        if (fyze != double.Parse(InObject.ZHIFUMX[0].ZHIFUJE))
                        {
                            throw new Exception("支付金额:" + InObject.ZHIFUMX[0].ZHIFUJE + "与实际金额:" + fyze + "不符!");
                        }

                        string[] list = returnMsg.Split('|');
                        OutObject.GUAHAOID            = list[8];//挂号ID
                        OutObject.GUAHAOXH            = list[0];
                        OutObject.JIUZHENSJ           = list[2];
                        OutObject.JIUZHENDD           = list[1];
                        OutObject.YIJIID              = list[5];
                        OutObject.JIESUANJG.FEIYONGZE = (Convert.ToDouble(list[6]) + Convert.ToDouble(list[7])).ToString();
                        //    string[] yiJiSpl = list[5].ToString().Split('^');

                        if (ConfigurationManager.AppSettings["XianShiHZSJ"] == "1")                                                                                                  //显示候诊时间
                        {
                            OutObject.HOUZHENSJ = getJiuZhenSJD(yishengDm, keshiDm, list[0], "", Convert.ToInt32((guahaoBc == "1" ? "0" : "1")), guahaoLb, DateTime.Now.ToString()); //候诊时间
                        }

                        OutObject.JIESUANJG.FEIYONGZE = fyze.ToString();
                        transaction.Commit();//提交
                        conn.Close();
                    }
                    catch (Exception er)
                    {
                        transaction.Rollback();//回滚
                        conn.Close();
                        throw new Exception(er.Message.ToString());
                    }
                }
                else
                {
                    transaction.Rollback();//回滚
                    conn.Close();
                    throw new Exception(returnMsg);
                }
            }
            //代收模式
            else
            {
                string brxxSql   = "select bingrenid from gy_bingrenxx where jiuzhenkh='" + jiuzhenKh + "'";
                string bingrenId = DBVisitor.ExecuteScalar(brxxSql).ToString();
                string jiaoyiMsg = bingrenId + "|" + dangtianpbId + "|" + caozuoyDm + "|" + caozuoyXm + "|" + (guahaoBc == "1" ? "0" : "1") + "|"
                                   + caozuoRq + "|" + jiaoyiLsh + "|" + jiuzhenKh + "|" + "1" + "|" + string.Empty + "|" + string.Empty + "|";//交易类型默认为1
                //挂号支付-------------------------------------------------------------------------------------------
                OracleParameter[] paramJiaoYi = new OracleParameter[3];
                paramJiaoYi[0]           = new OracleParameter("PRM_MSG", OracleType.VarChar);
                paramJiaoYi[0].Value     = jiaoyiMsg;
                paramJiaoYi[0].Direction = ParameterDirection.Input;
                paramJiaoYi[1]           = new OracleParameter("PRM_APPCODE", OracleType.Number);
                paramJiaoYi[1].Value     = 0;
                paramJiaoYi[1].Direction = ParameterDirection.Output;
                paramJiaoYi[2]           = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar);
                paramJiaoYi[2].Value     = null;
                paramJiaoYi[2].Size      = 2000;
                paramJiaoYi[2].Direction = ParameterDirection.Output;

                string        returnValue = string.Empty;
                DbTransaction transaction = null;
                DbConnection  conn        = DBVisitor.Connection;
                try
                {
                    transaction = conn.BeginTransaction();
                    DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_GUAHAOZFDS", paramJiaoYi, transaction);
                }
                catch (Exception ex)
                {
                    if (transaction != null)
                    {
                        transaction.Rollback();
                        conn.Close();
                    }
                    throw new Exception(ex.Message);
                }


                //--------------------------------------------------------------------------------------------------
                returnValue = paramJiaoYi[1].Value.ToString();
                string returnMsg = paramJiaoYi[2].Value.ToString();
                //LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "挂号支付存储过程返回值:" + returnValue + "|" + returnMsg);
                if (returnValue == "1")   //交易成功
                {
                    transaction.Commit(); //提交
                    conn.Close();
                    string[] list = returnMsg.Split('|');
                    OutObject.GUAHAOID            = list[8];//挂号ID
                    OutObject.GUAHAOXH            = list[0];
                    OutObject.JIUZHENSJ           = list[2];
                    OutObject.JIUZHENDD           = list[1];
                    OutObject.YIJIID              = list[5];
                    OutObject.JIESUANJG.FEIYONGZE = (Convert.ToDouble(list[6]) + Convert.ToDouble(list[7])).ToString();
                    string[] yiJiSpl = list[5].ToString().Split('^');

                    #region 诊疗费用信息
                    string ZhenLiaoXMSql = "select * from gy_shoufeixm where shoufeixmid in "
                                           + "( select zhenliaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )";
                    DataTable dtZhenLiaoMX = DBVisitor.ExecuteTable(string.Format(ZhenLiaoXMSql, dangtianpbId));

                    for (int i = 0; i < dtZhenLiaoMX.Rows.Count; i++)
                    {
                        FEIYONGXX fyxx = new FEIYONGXX();
                        fyxx.XIANGMUXH = dtZhenLiaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID
                        fyxx.XIANGMUMC = dtZhenLiaoMX.Rows[i]["shoufeixmmc"].ToString();
                        fyxx.XIANGMUGL = dtZhenLiaoMX.Rows[i]["xiangmulx"].ToString();
                        fyxx.DANJIA    = dtZhenLiaoMX.Rows[i]["danjia1"].ToString();//
                        fyxx.SHULIANG  = "1";
                        fyxx.JINE      = dtZhenLiaoMX.Rows[i]["danjia1"].ToString();
                        OutObject.FEIYONGMX.Add(fyxx);
                        OutObject.ZHENLIAOFEI = fyxx.DANJIA;
                    }
                    #endregion

                    #region 挂号费用信息
                    string GuaHaoXMSql = "select * from gy_shoufeixm where shoufeixmid in "
                                         + "( select guahaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )";
                    DataTable dtGuaHaoMX = DBVisitor.ExecuteTable(string.Format(GuaHaoXMSql, dangtianpbId));

                    for (int i = 0; i < dtGuaHaoMX.Rows.Count; i++)
                    {
                        FEIYONGXX fyxx = new FEIYONGXX();
                        fyxx.XIANGMUXH = dtGuaHaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID
                        fyxx.XIANGMUMC = dtGuaHaoMX.Rows[i]["shoufeixmmc"].ToString();
                        fyxx.XIANGMUGL = dtGuaHaoMX.Rows[i]["xiangmulx"].ToString();
                        fyxx.DANJIA    = dtGuaHaoMX.Rows[i]["danjia1"].ToString();//
                        fyxx.SHULIANG  = "1";
                        fyxx.JINE      = dtGuaHaoMX.Rows[i]["danjia1"].ToString();
                        OutObject.FEIYONGMX.Add(fyxx);
                        OutObject.GUAHAOFEI = fyxx.DANJIA;
                    }
                    #endregion

                    double fyze = 0.0;
                    for (int i = 0; i < OutObject.FEIYONGMX.Count; i++)
                    {
                        fyze += Convert.ToDouble(OutObject.FEIYONGMX[i].JINE);
                    }

                    OutObject.JIESUANJG.FEIYONGZE = fyze.ToString();
                }
                else
                {
                    transaction.Rollback();//回滚
                    conn.Close();
                    throw new Exception(returnMsg);
                }
            }
        }
Exemplo n.º 20
0
        public override void ProcessMessage()
        {
            OutObject = new JIANYANJGCX_OUT();
            string tiaoMaH = InObject.JIANYANTM;                                      //检验条码

            string JianYanJGHQMS = ConfigurationManager.AppSettings["JianYanJGHQMS"]; //检验结果获取模式

            #region 基本入参判断
            if (string.IsNullOrEmpty(JianYanJGHQMS))
            {
                JianYanJGHQMS = "0";
            }

            if (string.IsNullOrEmpty(tiaoMaH))
            {
                throw new Exception("检验条码号获取失败!");
            }
            #endregion

            #region 检验是否存在
            if (JianYanJGHQMS == "1") //嘉善县第一人民医院使用
            {
                //条码信息转换
                string sqlTiaoMaXXZH = "select doctadviseno  from l_patientinfo where listmh = '{0}' or doctadviseno = '{0}'";
                string tiaoMaXX      = DBVisitor.ExecuteScalar(string.Format(sqlTiaoMaXXZH, tiaoMaH)).ToString();
                if (string.IsNullOrEmpty(tiaoMaXX))
                {
                    throw new Exception("该检验还未出报告,请耐心等待");
                }
                else
                {
                    tiaoMaH = tiaoMaXX;
                }
            }

            string sqlJCSQD = "select kaidanks,kaidanys,kaidanysxm,kaidanksmc,jianyanxmid,jianyanxmmc,yangbenlx,yangbenlxmc,caijiren,caijirxm,to_char(caijirq,'yyyy-mm-dd hh24:mi:dd') caijisj,jieshouren,jieshourxm,to_char(jieshourq,'yyyy-mm-dd hh24:mi:dd') jieshousj,shenhebz,SHENHEREN,SHENHERXM,to_char(SHENHERQ,'yyyy-mm-dd hh24:mi:ss') as SHENHERQ  from yj_jianyansqd a where a.tiaoma='{0}' ";


            DataTable dtJCSQD = DBVisitor.ExecuteTable(string.Format(sqlJCSQD, tiaoMaH));

            if (dtJCSQD.Rows.Count <= 0)
            {
                throw new Exception("未找到该检验申请单");
            }

            OutObject.KAIDANKSDM  = dtJCSQD.Rows[0]["kaidanks"].ToString();    //开单科室代码
            OutObject.KAIDANYSDM  = dtJCSQD.Rows[0]["kaidanys"].ToString();    //开单医生代码
            OutObject.KAIDANYSXM  = dtJCSQD.Rows[0]["kaidanysxm"].ToString();  //开单医生姓名
            OutObject.KAIDANKSMC  = dtJCSQD.Rows[0]["kaidanksmc"].ToString();  //开单科室名称
            OutObject.JIANYANXMDM = dtJCSQD.Rows[0]["jianyanxmid"].ToString(); //检验项目代码
            OutObject.JIANYANXMMC = dtJCSQD.Rows[0]["jianyanxmmc"].ToString(); //检验项目名称
            OutObject.YANGBENLX   = dtJCSQD.Rows[0]["yangbenlx"].ToString();   //样本类型
            OutObject.YANGBENLXMC = dtJCSQD.Rows[0]["yangbenlxmc"].ToString(); //样本类型名称
            OutObject.CAIJISJ     = dtJCSQD.Rows[0]["caijisj"].ToString();     //采集时间
            OutObject.JIESHOUSJ   = dtJCSQD.Rows[0]["jieshousj"].ToString();   //接收时间
            string shenHeBz = dtJCSQD.Rows[0]["shenhebz"].ToString();          //审核标识
            OutObject.SHENHEBZ  = dtJCSQD.Rows[0]["SHENHEBZ"].ToString();      //审核标识
            OutObject.SHENHEREN = dtJCSQD.Rows[0]["SHENHEREN"].ToString();     //审核人
            OutObject.SHENHERXM = dtJCSQD.Rows[0]["SHENHERXM"].ToString();     //审核人姓名
            OutObject.SHENHERQ  = dtJCSQD.Rows[0]["SHENHERQ"].ToString();      //审核日期
            #endregion

            #region 检验是否已出报告
            string sqlJCBG = "";


            sqlJCBG = "select sampleno,sampletype ,to_char(checktime,'yyyy-mm-dd hh24:mi:ss') baogaosj  from l_patientinfo where doctadviseno = '{0}'";


            DataTable dtJCBG = DBVisitor.ExecuteTable(string.Format(sqlJCBG, tiaoMaH));

            if (dtJCBG.Rows.Count <= 0)  //|| shenHeBz == "0"
            {
                throw new Exception("该检验还未出报告,请耐心等待");
            }

            if (shenHeBz == "0" && ConfigurationManager.AppSettings["SHENHEHCBG"] == "1")
            {
                throw new Exception("该检验还未出报告,请耐心等待");
            }

            string sampleNo = dtJCBG.Rows[0]["sampleno"].ToString();    //样本号
            OutObject.BAOGAOSJ = dtJCBG.Rows[0]["baogaosj"].ToString(); //报告时间

            //string sampleTypeCode = dtJCBG.Rows[0]["sampletype"].ToString();//样本类型代码
            //string sampleType = "";//样本类型
            //string sqlYBLX = "select YANGBENMC from gy_yangbenlx where shuruma1 = '{0}' ";

            //if (string.IsNullOrEmpty(sampleTypeCode))
            //{
            //    DataTable dtYBLX = DBVisitor.ExecuteTable(string.Format(sqlYBLX, sampleTypeCode.ToUpper()));
            //    if (dtYBLX.Rows.Count > 0)
            //    {
            //        sampleType = dtYBLX.Rows[0]["YANGBENMC"].ToString();
            //    }
            //}
            #endregion

            #region 获取检验结果
            string sqlJYJGMX = "select b.chinesename,a.testid,a.testresult,a.resultflag,a.unit,a.reflo,a.refhi,A.HINT from l_testresult a,l_testdescribe b where a.testid = b.testid  and a.sampleno = '{0}' ";

            DataTable dtJYJGMX = DBVisitor.ExecuteTable(string.Format(sqlJYJGMX, sampleNo));
            for (int i = 0; i < dtJYJGMX.Rows.Count; i++)
            {
                JIANYANJGXX jyjgxx = new JIANYANJGXX();

                jyjgxx.JIEGUOXMDM = dtJYJGMX.Rows[i]["testid"].ToString().Replace("<", "<").Replace(">", ">");      //结果项目代码
                jyjgxx.JIEGUOXMMC = dtJYJGMX.Rows[i]["chinesename"].ToString().Replace("<", "<").Replace(">", ">"); //结果项目名称
                jyjgxx.JIEGUOZHI  = dtJYJGMX.Rows[i]["testresult"].ToString().Replace("<", "<").Replace(">", ">");  //结果值
                jyjgxx.MIAOSHUDW  = dtJYJGMX.Rows[i]["unit"].ToString().Replace("<", "<").Replace(">", ">");        //单位
                jyjgxx.CANKAOZSX  = dtJYJGMX.Rows[i]["refhi"].ToString().Replace("<", "<").Replace(">", ">");       //上限
                jyjgxx.CANKAOZXX  = dtJYJGMX.Rows[i]["reflo"].ToString().Replace("<", "<").Replace(">", ">");       //下限

                if (string.IsNullOrEmpty(jyjgxx.CANKAOZSX))                                                         //嘉善人民医院检验结果上下限存放在下限字段中,添加特别处理
                {
                    if (!string.IsNullOrEmpty(jyjgxx.CANKAOZXX))
                    {
                        if (jyjgxx.CANKAOZXX.Contains("-"))
                        {
                            jyjgxx.CANKAOZSX = jyjgxx.CANKAOZXX.Split('-')[1].ToString();
                            jyjgxx.CANKAOZXX = jyjgxx.CANKAOZXX.Split('-')[0].ToString();
                        }
                    }
                }

                string resultFlag = dtJYJGMX.Rows[i]["resultflag"].ToString();//细菌检验结果标识
                if (!string.IsNullOrEmpty(resultFlag))
                {
                    if (resultFlag.ToUpper() == "AAAAAA" || resultFlag.ToUpper() == "ABAAAA" || resultFlag.ToUpper() == "ACAAAA")
                    {
                        jyjgxx.JIEGUO = jyjgxx.JIEGUOZHI;
                    }
                    else if (resultFlag.ToUpper() == "AAA" || resultFlag.ToUpper() == "ABA" || resultFlag.ToUpper() == "ACA" || resultFlag.ToUpper() == "ADA")
                    {
                        jyjgxx.JIEGUO = "正常";
                    }
                    else if (resultFlag.ToUpper() == "BAA" || resultFlag.ToUpper() == "BBA" || resultFlag.ToUpper() == "BCA" || resultFlag.ToUpper() == "BDA")
                    {
                        jyjgxx.JIEGUO = "偏高";
                    }
                    else if (resultFlag.ToUpper() == "CAA" || resultFlag.ToUpper() == "CBA" || resultFlag.ToUpper() == "CCA" || resultFlag.ToUpper() == "CDA")
                    {
                        jyjgxx.JIEGUO = "偏低";
                    }
                    else
                    {
                        #region 细菌培养
                        if (!string.IsNullOrEmpty(resultFlag) && resultFlag == "AA")
                        {
                        }
                        else if (!string.IsNullOrEmpty(resultFlag) && resultFlag[0] == 'A')
                        {
                            continue;
                        }
                        if (string.IsNullOrEmpty(jyjgxx.JIEGUOZHI))
                        {
                            if (resultFlag[0] == 'N')
                            {
                                jyjgxx.JIEGUOZHI = jyjgxx.JIEGUOXMMC + ";";
                            }

                            if (resultFlag[0] == 'B')
                            {
                                string    sqlJYJGXJMX = "select b.chinesename,a.testid,a.testresult,a.resultflag,a.unit,a.reflo,a.refhi,A.HINT from l_testresult a,l_testdescribe b where a.testid = b.testid  and a.sampleno = '{0}' and  resultFlag = 'B" + resultFlag[1].ToString() + "'";
                                DataTable dtJYJGXJMX  = DBVisitor.ExecuteTable(string.Format(sqlJYJGXJMX, sampleNo));

                                for (int j = 0; j < dtJYJGXJMX.Rows.Count; j++)
                                {
                                    jyjgxx.JIEGUOZHI = dtJYJGXJMX.Rows[j]["chinesename"].ToString() + ":" + dtJYJGXJMX.Rows[j]["HINT"].ToString();
                                    if (dtJYJGXJMX.Rows[j]["HINT"].ToString() == "阳性")
                                    {
                                        string    sqlJYJGYWMX = "select b.chinesename,a.testid,a.testresult,a.resultflag,a.unit,a.reflo,a.refhi,A.HINT from l_testresult a,l_testdescribe b where a.testid = b.testid  and a.sampleno = '{0}' and  resultFlag = 'A" + resultFlag[1].ToString() + "'";
                                        DataTable dtJYJGYWMX  = DBVisitor.ExecuteTable(string.Format(sqlJYJGYWMX, sampleNo));

                                        for (int z = 0; z < dtJYJGYWMX.Rows.Count; z++)
                                        {
                                            JIANYANJGXX jyjgxxym = new JIANYANJGXX();
                                            jyjgxxym.JIEGUOXMDM = dtJYJGYWMX.Rows[z]["testid"].ToString(); //药敏测试代码
                                            jyjgxxym.JIEGUOXMMC = jyjgxx.JIEGUOXMMC + "[药敏]" + dtJYJGYWMX.Rows[z]["chinesename"].ToString();
                                            string naiYaoXDM = dtJYJGYWMX.Rows[z]["HINT"].ToString();      //耐药性代码
                                            switch (naiYaoXDM)
                                            {
                                            case "R":
                                                jyjgxxym.JIEGUOZHI += "R|耐药";
                                                break;

                                            case "S":
                                                jyjgxxym.JIEGUOZHI += "S|敏感";
                                                break;

                                            case "I":
                                                jyjgxxym.JIEGUOZHI += "I|中介";
                                                break;
                                            }
                                            OutObject.JIANYANJGMX.Add(jyjgxxym);
                                        }
                                    }
                                }
                            }
                        }
                        #endregion
                    }
                }
                OutObject.JIANYANJGMX.Add(jyjgxx);
            }
            #endregion

            if (OutObject.JIANYANJGMX.Count <= 0)
            {
                throw new Exception("该检验还未出报告,请耐心等待");
            }
        }
Exemplo n.º 21
0
        public override void ProcessMessage()
        {
            string chuFangHM = InObject.pharmacyid.Split('*')[1]; //处方id 多个时使用|分割
            string bingRenID = InObject.pharmacyid.Split('*')[0]; //病人id

            #region 基本入参判断
            if (string.IsNullOrEmpty(chuFangHM))
            {
                throw new Exception("处方ID不能为空");
            }
            if (string.IsNullOrEmpty(bingRenID))
            {
                throw new Exception("病人ID不能为空");
            }
            #endregion

            chuFangHM = chuFangHM.Replace("#", "','");

            string sqlChuFang = "select chufangid,chufanghm,to_char(kaidanrq,'yyyy-mm-dd') kaidanrq,chuangkouid,bingrenxm from mz_chufang1 where bingrenid ='{0}' and chufangid in(select max(chufangid) from mz_chufang1 where chufanghm in('{1}') group by chufanghm) ";

            DataTable dtChuFang = DBVisitor.ExecuteTable(string.Format(sqlChuFang, bingRenID, chuFangHM));

            string name     = string.Empty;
            string shiBaiCF = string.Empty;//发送失败的处方号码

            if (dtChuFang.Rows.Count > 0)
            {
                name = dtChuFang.Rows[0]["bingrenxm"].ToString();
                for (int i = 0; i < dtChuFang.Rows.Count; i++)
                {
                    DISP_START_IN           SCtemp = new DISP_START_IN();
                    HKC.Schemas.Start.order dtemp  = new HKC.Schemas.Start.order();
                    string no           = dtChuFang.Rows[i]["chufangid"].ToString();
                    string odate        = dtChuFang.Rows[i]["kaidanrq"].ToString();
                    string winno        = dtChuFang.Rows[i]["chuangkouid"].ToString();
                    string sqlJiuZhenKH = "select jiuzhenkh from gy_bingrenxx where bingrenid ='{0}'";
                    SCtemp.pid     = (string)DBVisitor.ExecuteScalar(string.Format(sqlJiuZhenKH, bingRenID));
                    SCtemp.name    = name;
                    SCtemp.codekey = InObject.codekey;
                    dtemp.no       = no;
                    dtemp.odate    = odate;
                    dtemp.winno    = winno;
                    SCtemp.orderinfo.Add(dtemp);
                    string    yfid   = "select yingyongid from my_chuangkou where chuangkouid = '{0}' ";
                    DataTable dtYFID = DBVisitor.ExecuteTable(string.Format(yfid, winno));
                    if (dtYFID.Rows.Count > 0)
                    {
                        SCtemp.pharmacyid = dtYFID.Rows[0]["yingyongid"].ToString();
                    }
                    else
                    {
                        //获取药房id失败
                        shiBaiCF += "," + no;
                        continue;
                    }

                    DISP_START_OUT outTemp = Unity.runService <DISP_START_IN, DISP_START_OUT>(SCtemp);
                    //上传失败
                    if (outTemp.ResultCode != "0")
                    {
                        shiBaiCF += "," + no;
                        continue;
                    }
                }

                if (!string.IsNullOrEmpty(shiBaiCF))
                {
                    //返回失败的处方号码
                    throw new Exception("处方号为:" + shiBaiCF.Trim(',').ToString() + "的处方上传失败!");
                }
            }
            else
            {
                throw new Exception("未找到相关的处方信息");
            }
        }