Exemplo n.º 1
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.º 2
0
        public override void ProcessMessage()
        {
            //取得预约信息
            OutObject = new SHEBEIYYQX_OUT();
            if (InObject.YUYUESQDBH == null || InObject.YUYUESQDBH == "")
            {
                throw new Exception(string.Format("预约申请单编号为空!"));
            }
            var listyyxx = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00004, InObject.YUYUESQDBH.ToString()));

            if (listyyxx == null)
            {
                OutObject.OUTMSG.ERRNO  = "-2";
                OutObject.OUTMSG.ERRMSG = string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString());
                return;
                //throw new Exception(string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString()));
            }
            if (listyyxx.Items.Count == 0)
            {
                OutObject.OUTMSG.ERRNO  = "-2";
                OutObject.OUTMSG.ERRMSG = string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString());
                return;
                //throw new Exception(string.Format("找不到预约信息:申请单编号[{0}]", InObject.YUYUESQDBH.ToString()));
            }

            if (System.Configuration.ConfigurationManager.AppSettings["JianChaJKMS"] == "1")
            {
                var resource = new HISYY_Cancel();
                resource.RequestNo = listyyxx.Items["YYH"].ToString();
                resource.YYH       = "";
                resource.JCH       = "";
                string url = System.Configuration.ConfigurationManager.AppSettings["LAIDAURL"];
                string xml = XMLHandle.EntitytoXML <HISYY_Cancel>(resource);
                HISYY_Cancel_Result result = XMLHandle.XMLtoEntity <HISYY_Cancel_Result>(WSServer.Call <HISYY_GetResource>(url, xml).ToString());
                if (result.Success == "False")
                {
                    throw new Exception("取消预约失败,错误原因:" + result.Message);
                }
                var tran = DBVisitor.Connection.BeginTransaction();
                try
                {
                    DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00005, InObject.YUYUESQDBH.ToString(), 9), tran);
                    tran.Commit();
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    throw ex;
                }
            }
            else
            {
                var listyyhxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00014, listyyxx.Items["JCSBDM"].ToString(), listyyxx.Items["JCRQ"].ToString(), listyyxx.Items["JCSJ"].ToString()));
                foreach (var item in listyyhxx)
                {
                    var listyyh = DBVisitor.ExecuteModel(SqlLoad.GetFormat(SQ.FSD00010, item.Get("yyhxx").ToString(), listyyxx.Items["YYH"].ToString()));
                    var zyyyys  = int.Parse(item.Get("zyyyys"));
                    var mzyyys  = int.Parse(item.Get("mzyyys"));
                    var sqyyys  = int.Parse(item.Get("sqyyys"));
                    var yyys    = int.Parse(item.Get("yyys"));
                    var yyly    = listyyxx.Items["YYLY"].ToString();
                    if (yyly == "3")
                    {
                        --sqyyys;
                    }
                    else if (yyly == "2")
                    {
                        --zyyyys;
                    }
                    else if (yyly == "1")
                    {
                        --mzyyys;
                    }
                    else
                    {
                        if (listyyxx.Items["BRLX"].ToString() == "2")
                        {
                            --zyyyys;
                        }
                    }

                    //if (listyyxx.Items["BRLX"].ToString() == "2")
                    //{
                    //    --zyyyys;
                    //}
                    if (listyyh == null)
                    {
                        continue;
                    }
                    if (listyyh.Items.Count > 0)
                    {
                        var tran = DBVisitor.Connection.BeginTransaction();
                        try
                        {
                            //更新预约信息状态为取消
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00005, InObject.YUYUESQDBH.ToString(), 9), tran);
                            //更新预约号状态
                            DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00009, item.Get("yyhxx").ToString(), listyyxx.Items["YYH"], 0), tran);
                            //更新预约排班表
                            if (yyly == "3")
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00021, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, sqyyys), tran);
                            }
                            else if (yyly == "2")
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, zyyyys), tran);
                            }
                            else if (yyly == "1")
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00020, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, mzyyys), tran);
                            }
                            else
                            {
                                DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.FSD00008, item.Get("yyhxx").ToString(), int.Parse(item.Get("yyys")) - 1, zyyyys), tran);
                            }
                            tran.Commit();
                        }
                        catch (Exception ex)
                        {
                            tran.Rollback();
                            throw ex;
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        public override void ProcessMessage()
        {
            string yuyuesqdBh = InObject.YUYUESQDBH;
            string yewuLx     = InObject.YEWULX;
            string caozuoyDm  = InObject.BASEINFO.CAOZUOYDM;

            if (yuyuesqdBh == "" || yuyuesqdBh == "-1")
            {
                throw new Exception("预约申请单编号为空");
            }
            DataTable listyyxx = DBVisitor.ExecuteTable(string.Format("select * from sxzz_jianchasqd a where a.jianchasqdid = '{0}'", yuyuesqdBh));

            if (listyyxx.Rows.Count <= 0)
            {
                throw new Exception("找不到预约信息:申请单编号[" + yuyuesqdBh + "]");
            }
            if (yewuLx == "1")
            {
                if (listyyxx.Rows[0]["JIANCHASQDZT"].ToString() == "9")
                {
                    throw new Exception("预约申请单已取消!");
                }
                DataTable listyy = DBVisitor.ExecuteTable(string.Format("select * from sxzz_jianchasqd where jianchasqdid = '{0}'", yuyuesqdBh));
                if (listyy.Rows.Count <= 0)
                {
                    throw new Exception("未找到预约项目信息!");
                }
                if (listyy.Rows[0]["SHOUFEIBZ"].ToString() == "1" && listyy.Rows[0]["JIESHOUBZ"].ToString() == "1")
                {
                    throw new Exception("已登记不能取消!");
                }
                var resource = new HISYY_Cancel();
                resource.RequestNo = "";// listyyxx.Items["YYH"].ToString();
                resource.YYH       = listyyxx.Rows[0]["YIJIYYH"].ToString();
                resource.JCH       = listyyxx.Rows[0]["YIJISQDH"].ToString();

                //调用莱达WebService---------------------------------------------------------------
                string url    = System.Configuration.ConfigurationManager.AppSettings["LaiDa_Url"];
                string xml    = XMLHandle.EntitytoXML <HISYY_Cancel>(resource);
                string outxml = WSServer.Call <HISYY_Cancel>(url, xml).ToString();
                HISYY_Cancel_Result result = XMLHandle.XMLtoEntity <HISYY_Cancel_Result>(outxml);
                //---------------------------------------------------------------------------------
                if (result.Success == "False")
                {
                    throw new Exception("取消预约失败,错误原因:" + result.Message);
                }
                var trans = DBVisitor.Connection.BeginTransaction();

                try
                {
                    DBVisitor.ExecuteNonQuery(string.Format("update sxzz_jianchasqd a set a.jianchasqdzt = {1},quxiaogh = '{2}',quxiaorq = sysdate where a.jianchasqdid = {0}",
                                                            yuyuesqdBh, 9, caozuoyDm), trans);

                    DBVisitor.ExecuteNonQuery(string.Format("update sxzz_jianchasqd set JIESHOUBZ = '{1}',SHOUFEIBZ = '{2}' where jianchasqdid = '{0}'",
                                                            yuyuesqdBh, 0, 1), trans);

                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();

                    throw new Exception(ex.Message);
                }
            }
            else//检验的暂时不考虑
            {
                throw new Exception("检验业务建设中,敬请期待……");
            }
        }