Exemple #1
0
        public override void ProcessMessage()
        {
            string jianChaXMDM = InObject.JIANCHAXMDM;  //检查项目代码
            string yuYueRQ     = InObject.YUYUERQ;      //预约日期
            string yuYueSJ     = InObject.YUYUESJ;      //预约时间
            string chaXunLX    = InObject.CHAXUNLX;     //查询类型
            string yeWuLY      = InObject.YEWULY;       //业务来源
            string yeWuLX      = InObject.YEWULX;       //业务类型
            string jiChuSJLY   = InObject.JICHUSJLY;    //基础数据来源

            #region 基础数据判断
            if (string.IsNullOrEmpty(jianChaXMDM))
            {
                throw new Exception("检查项目代码不能为空!");
            }

            if (string.IsNullOrEmpty(yuYueRQ))
            {
                throw new Exception("预约日期不能为空!");
            }
            else if (Convert.ToDateTime(yuYueRQ) < DateTime.Now.Date)
            {
                throw new Exception("预约日期必须大于等于当前日期!");
            }

            if (string.IsNullOrEmpty(chaXunLX))
            {
                throw new Exception("查询类型不能为空!");
            }

            if (string.IsNullOrEmpty(yeWuLY))
            {
                throw new Exception("业务来源不能为空!");
            }
            if (string.IsNullOrEmpty(yeWuLX))
            {
                throw new Exception("业务类型不能为空!");
            }

            #endregion

            var resource = new HISYY_GetResource();
            resource.HospitalCode = ConfigurationManager.AppSettings["HospitalCode_Fck"].ToString();
            resource.HospitalName = ConfigurationManager.AppSettings["HospitalName_Fck"].ToString();
            //ht     SQL语句更改测试用
            //string jcxmSql = string.Format("select a.*,b.keshimc from GY_JIANCHAXM a,gy_keshi b where b.keshiid=a.zhixingks and a.zuofeibz=0 and a.jianchaxmid in({0})", jianchaxmDm);
            //string jcxmSql = string.Format("select A.*,B.DAIMAID,D.KESHIMC from GY_JIANCHAXM A, GY_JIANCHABW B, GY_JIANCHAXMBWDY C,  gy_keshi D    WHERE A.JIANCHAXMID = C.JIANCHAXMID   AND B.DAIMAID = C.JIANCHABWID  AND D.keshiid=a.zhixingks and d.yuanquid = 3 and a.zuofeibz = 0 and b.ZuoFeiBZ = 0 and b.daimaid in({0})", jianchaxmDm);

            string jcxmSql = @"select * from v_jianchaxmbwxx where DAIMAID IN({0}) AND YUANQUMC = '{1}' ";
            jcxmSql = string.Format(jcxmSql, jianChaXMDM, ConfigurationManager.AppSettings["HospitalName_Fck"].ToString());

            DataTable jcxmDt = DBVisitor.ExecuteTable(jcxmSql);

            //ht 没有对应检查项目返回
            if (jcxmDt.Rows.Count < 1)
            {
                throw new Exception("找不到检查项目: " + jianChaXMDM);
            }

            for (int i = 0; i < jcxmDt.Rows.Count; i++)
            {
                resource.BespeakExamine.Add(new BespeakExamine()
                {
                    //HT  更改CODE取值
                    //ExamineCode = jcxmDt.Rows[i]["JIANCHAXMID"].ToString(),
                    ExamineCode = jcxmDt.Rows[i]["DAIMAID"].ToString(),
                    ExamineName = XMLHandle.encodeString(jcxmDt.Rows[i]["DAIMAMC"].ToString())
                });
            }
            resource.BespeakDate = yuYueRQ.Replace("-", string.Empty);
            if (yeWuLX == "2")
            {
                resource.AdmissionSource = "10";
            }
            else
            {
                resource.AdmissionSource = "50";
            }
            resource.StudiesDepartMentCode = jcxmDt.Rows[0]["zhixingks"].ToString(); //科室代码
            resource.StudiesDepartMentName = jcxmDt.Rows[0]["keshimc"].ToString();   //科室名称
            //resource.IsJZ = jiZhen;
            //resource.IsZQ = zengQiang;
            //resource.IsLS = LinShi;

            //调用莱达WebService------------------------------------------------------------
            string url    = System.Configuration.ConfigurationManager.AppSettings["LaiDa_Url"];
            string xml    = XMLHandle.EntitytoXML <HISYY_GetResource>(resource);
            string outxml = WSServer.Call <HISYY_GetResource>(url, xml).ToString();//调用莱达webservice
            HISYY_GetResource_Result result = XMLHandle.XMLtoEntity <HISYY_GetResource_Result>(outxml);
            //------------------------------------------------------------------------------
            if (result.Success == "False")
            {
                throw new Exception("取号源信息失败,错误原因:" + result.Message);
            }
            OutObject = new SHEBEIYYZTCX_OUT();
            string[] separators = { ",", " " };
            foreach (var time in result.BespeakDatePart.Split(separators, StringSplitOptions.RemoveEmptyEntries))
            {
                SHEBEIYYXX temp = new SHEBEIYYXX();

                temp.JIANCHASBDM = result.DeviceCode;
                temp.JIANCHASBMC = result.DeviceName;
                temp.JIANCHASBDD = result.DeviceLocation;
                temp.YUYUERQ     = yuYueRQ;
                temp.YUYUEKSSJ   = time.Split('-')[0];
                temp.YUYUEJSSJ   = time.Split('-')[1];
                temp.JIANCHAYYLX = "1";
                temp.XIANGMUHS   = result.ExaminePartTime;
                OutObject.SHEBEIYYXXXX.Add(temp);
            }
        }
Exemple #2
0
        public override void ProcessMessage()
        {
            try{
                string list_JianChaDXH = InObject.YIZHUID;//医嘱ID
                if (string.IsNullOrEmpty(list_JianChaDXH))
                {
                    throw new Exception("医技申请单号为空或传入节点有误");
                }

                string[] JianChaDanID = list_JianChaDXH.Split('|');

                for (int i = 0; i < JianChaDanID.Length; i++)
                {
                    var resource = new HISYY_Register();
                    resource.HospitalCode = ConfigurationManager.AppSettings["HospitalCode_Fck"].ToString();
                    resource.HospitalName = ConfigurationManager.AppSettings["HospitalName_Fck"].ToString();
                    string jcsqdSql = @"SELECT A.BINGRENXM,
                                   A.BINGRENSFZH,
                                   A.Shenqingdid,
                                   E.BINGRENID,
                                   A.BINGRENXB,
                                   A.CHUSHENGRQ AS CHUSHENRQ,
                                   A.BINGRENNL AS NIANLING,
                                   A.BINGRENLXDH AS LIANXIDH,
                                   A.BINGRENLXDZ AS DIZHI,
                                   E.JIUZHENKH,
                                   A.YIJISBDM AS SHEBEIDM,
                                   A.YIJISBMC AS SHEBEIMC,
                                   B.JIANCHASTBW,
                                   B.JIANCHAXMMC,
                                   F.FEIYONGHJ,
                                   H.FAPIAOHM,
                                   G.ZHIXINGKS,
                                   G.ZHIXINGKSMC,
                                   A.JIESHOURQ,
                                   A.YIJIYYRQ,
                                   A.YIJISQDH,
                                   A.YIJIYYH,
                                   A.SONGJIANKSDM,
                                   A.SONGJIANYSGH,
                                   A.YIJIXXAPSJ
                                    FROM SXZZ_JIANCHASQD A,SXZZ_JIANCHASQDMX B,GY_BINGRENXX E,  
                                         YJ_SHENQINGDAN F,MZ_YIJI1 G,MZ_FAPIAO1 H,MZ_YIJI2 I
                                WHERE A.JIANCHASQDID = B.JIANCHASQDID 
                                    AND A.BINGRENSFZH = E.SHENFENZH 
                                    AND A.Shenqingdid = F.SHENQINDANID 
                                    AND G.FAPIAOID = H.FAPIAOID
                                    AND G.YIJIID = I.YIJIID
                                    AND I.YIZHUID = F.YIZHUID
                                    AND I.YIZHUID = {0}
                                    AND ROWNUM = 1";
                    //,SXZZ_JIANCHASQDZD D  AND A.JIANCHASQDID = D.JIANCHASQDID
                    jcsqdSql = string.Format(jcsqdSql, JianChaDanID[i]);

                    DataTable jcsqdDt = DBVisitor.ExecuteTable(jcsqdSql);
                    if (jcsqdDt.Rows.Count == 0)
                    {
                        throw new Exception("HIS中检索不到相关记录:" + list_JianChaDXH);
                    }
                    foreach (DataRow dr in jcsqdDt.Rows)
                    {
                        resource.AdmissionSource   = "50";                         //病人类型
                        resource.PatientName       = dr["BINGRENXM"].ToString();
                        resource.IdNumber          = dr["BINGRENSFZH"].ToString(); //身份证号
                        resource.RequestNo         = dr["Shenqingdid"].ToString(); //申请单号
                        resource.AdmissionID       = dr["BINGRENID"].ToString();   //门诊/住院 号
                        resource.ExaminePartTime   = dr["YIJIXXAPSJ"].ToString();  //项目耗时
                        resource.PatientSex        = dr["BINGRENXB"].ToString();
                        resource.PatientBorn       = dr["CHUSHENRQ"].ToString();
                        resource.PatientAge        = dr["NIANLING"].ToString();
                        resource.PatientTel        = dr["LIANXIDH"].ToString();
                        resource.PatientAddress    = dr["DIZHI"].ToString();
                        resource.PatientCard       = dr["JIUZHENKH"].ToString(); //就诊卡号
                        resource.InPatientAreaName = "";                         //病区名称
                        resource.InPatientAreaCode = "";                         //病区代码
                        resource.BedNum            = "";                         //床号
                        resource.DeviceCode        = dr["SHEBEIDM"].ToString();  //设备代码
                        resource.DeviceName        = dr["SHEBEIMC"].ToString();  //设备名称
                        resource.StudiesExamine.Add(new StudiesExamine()
                        {
                            //HT  更改CODE取值
                            //ExamineCode = jcxmDt.Rows[i]["JIANCHAXMID"].ToString(),
                            ExamineCode  = dr["JIANCHASTBW"].ToString(),                         //检查项目代码
                            ExamineName  = XMLHandle.encodeString(dr["JIANCHAXMMC"].ToString()), //项目名称
                            Numbers      = "1",                                                  //数量
                            ExaminePrice = dr["FEIYONGHJ"].ToString()                            //单价
                        });
                        resource.ReceiptNum       = dr["FAPIAOHM"].ToString();                   //发票号码
                        resource.ZxDepartmentId   = dr["ZHIXINGKS"].ToString();                  //执行科室代码
                        resource.ZxDepartmentName = dr["ZHIXINGKSMC"].ToString();                //执行科室名称
                        resource.Sqrq             = dr["JIESHOURQ"].ToString();                  //。申请日期
                        resource.ExamineFY        = dr["FEIYONGHJ"].ToString();                  //检查费用
                        resource.YjsbCode         = "";                                          //设备代码
                        resource.BespeakDateTime  = dr["YIJIYYRQ"].ToString();                   //预约时间
                        resource.PDH = "";                                                       //排队号
                        resource.JCH = dr["YIJISQDH"].ToString();                                //检查号
                        resource.YYH = dr["YIJIYYH"].ToString();                                 //预约号
                        resource.RequestDepartmentId   = dr["SONGJIANKSDM"].ToString();          //申请科室代码
                        resource.RequestDepartmentName = "";                                     //申请科室名称
                        resource.RequestDoctorId       = dr["SONGJIANYSGH"].ToString();          //申请医生
                        resource.RequestDoctorName     = "";

                        string url = System.Configuration.ConfigurationManager.AppSettings["LaiDa_Url"];
                        string xml = XMLHandle.EntitytoXML <HISYY_Register>(resource);

                        logLaiDa.InfoFormat(this.GetType().Name + "设备登记调用莱达XML入参:" + xml);
                        //LogHelper.WriteLog(typeof(GG_ShuangXiangZzBLL), "设备预约调用莱达XML入参:" + xml);
                        string outxml = WSServer.Call <HISYY_Register>(url, xml).ToString();

                        logLaiDa.InfoFormat(this.GetType().Name + "设备预约调用莱达XML出参:" + outxml);
                        HISYY_Register_Result result = XMLHandle.XMLtoEntity <HISYY_Register_Result>(outxml);

                        if (result.Success == "False")
                        {
                            throw new Exception("预约登记失败,错误原因:" + result.Message);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Exemple #3
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;
                        }
                    }
                }
            }
        }
Exemple #4
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
            }
        }
Exemple #5
0
        public override void ProcessMessage()
        {
            var sqlsb = "";

            OutObject = new SHEBEIYYZTCX_OUT();
            OutObject.SHEBEIYYXXXX = new List <SHEBEIYYXX>();
            var xmlIn = "";

            //var ldweb = new LaiDaWebService.WebServiceSoapClient();
            //var xmlOut = ldweb.HISYY_GetResource(xmlIn);
            if (string.Compare(InObject.YUYUERQ.ToString(), DateTime.Now.ToString("yyyy-MM-dd")) < 0)
            {
                throw new Exception(string.Format("预约日期必须大于等于今天!"));
            }
            if (InObject.JIANCHAXMDM == null || InObject.JIANCHAXMDM == "")
            {
                throw new Exception(string.Format("预约项目不能为空!"));
            }

            if (System.Configuration.ConfigurationManager.AppSettings["JianChaJKMS"] == "1")
            {
                var resource = new HISYY_GetResource();
                //var result = new HISYY_GetResource_Result();

                resource.HospitalCode = InObject.BASEINFO.JIGOUDM;
                resource.HospitalName = "杭州市第一人民医院";
                var codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, InObject.JIANCHAXMDM));
                foreach (var code in codes)
                {
                    resource.BespeakExamine.Add(new BespeakExamine()
                    {
                        ExamineCode = code["LBXH"].ToString(),
                        ExamineName = Unity.encodeString(code["LBMC"].ToString())
                    });
                }
                resource.BespeakDate = InObject.YUYUERQ.Replace("-", string.Empty);
                if (InObject.YEWULX == "2")
                {
                    resource.AdmissionSource = "10";
                }
                else
                {
                    resource.AdmissionSource = "50";
                }

                codes = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00027, InObject.JIANCHAXMDM));
                resource.StudiesDepartMentCode = codes[0]["JCKS"].ToString();
                resource.StudiesDepartMentName = codes[0]["KSMC"].ToString();

                resource.IsJZ = InObject.JIZHEN;
                resource.IsZQ = InObject.ZENGQIANG;
                resource.IsLS = InObject.LINSHI;

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

                if (result.Success == "False")
                {
                    throw new Exception("取号源信息失败,错误原因:" + result.Message);
                }
                string[] separators = { ",", " " };
                foreach (var time in result.BespeakDatePart.Split(separators, StringSplitOptions.RemoveEmptyEntries))
                {
                    var pbxx = new SHEBEIYYXX();
                    pbxx.JIANCHASBDM = result.DeviceCode;
                    pbxx.JIANCHASBMC = result.DeviceName;
                    pbxx.JIANCHASBDD = result.DeviceLocation;
                    pbxx.YUYUERQ     = InObject.YUYUERQ;
                    pbxx.YUYUEKSSJ   = time.Split('-')[0];
                    pbxx.YUYUEJSSJ   = time.Split('-')[1];
                    pbxx.JIANCHAYYLX = 1;
                    pbxx.XIANGMUHS   = Convert.ToInt16(result.ExaminePartTime);
                    OutObject.SHEBEIYYXXXX.Add(pbxx);
                }
            }
            else
            {
                #region 市2模式
                InObject.JIANCHAXMDM = InObject.JIANCHAXMDM.ToString().Replace(",", ",");
                if (InObject.JIANCHAXMDM.IndexOf(',') >= 0)
                {
                    sqlsb += " having( count(distinct a.jcxmdm) >= " + InObject.JIANCHAXMDM.Split(',').Length.ToString() + ") group by a.jcsbdm ";
                }
                //取得对应设备
                var listdysb = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00001, InObject.JIANCHAXMDM, sqlsb));

                if (listdysb.Count == 0)
                {
                    throw new Exception(string.Format("找不到项目对应的检查设备信息:项目代码[{0}]", InObject.JIANCHAXMDM));
                }
                else
                {
                    foreach (var item in listdysb)
                    {
                        var jcsbdm = item.Get("jcsbdm");
                        var sypb   = 0;
                        //取得设备当前日期和时间的排班信息--
                        //若查询类型为空或0,则查询当前日期当前时间之后的所有排班信息
                        if (InObject.CHAXUNLX == null || InObject.CHAXUNLX == "0")
                        {
                            sypb = 1;
                        }
                        var listsbpbxx = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00002, jcsbdm, InObject.YUYUERQ, InObject.YUYUESJ, sypb));
                        if (listsbpbxx.Count == 0)
                        {
                            //throw new Exception(string.Format("未找到排班信息!"));
                        }
                        else
                        {
                            foreach (var item_sb in listsbpbxx)
                            {
                                var pbxx = new SHEBEIYYXX();
                                pbxx.JIANCHASBDM = item_sb.Get("jcsbdm");
                                pbxx.JIANCHASBMC = item_sb.Get("jcsbmc");
                                pbxx.JIANCHASBDD = item_sb.Get("jcsbdd");
                                pbxx.YUYUERQ     = item_sb.Get("pbrq");
                                pbxx.YUYUEKSSJ   = item_sb.Get("kssj");
                                pbxx.YUYUEJSSJ   = item_sb.Get("jssj");
                                pbxx.YUYUEJCBW   = item_sb.Get("yyjcbw");
                                pbxx.JIANCHAYYLX = Convert.ToInt16(item_sb.Get("jcyylx"));
                                int xcyy = 0;//现场预约值为2,检索所有数据

                                if (InObject.YEWULY == "3")
                                {
                                    pbxx.YUYUEHZS = int.Parse(item_sb.Get("sqkyys"));
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("sqyyys"));
                                }
                                else if (InObject.YEWULY == "2")
                                {
                                    pbxx.YUYUEHZS = int.Parse(item_sb.Get("zykyys"));
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("zyyyys"));
                                }
                                else if (InObject.YEWULY == "1")
                                {
                                    pbxx.YUYUEHZS = int.Parse(item_sb.Get("mzkyys"));
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("mzyyys"));
                                }
                                else
                                {
                                    if (item_sb.Get("pbrq") == DateTime.Now.ToString("yyyy-MM-dd"))
                                    {
                                        pbxx.YUYUEHZS = int.Parse(item_sb.Get("yyzs"));
                                        xcyy          = 2;
                                    }
                                    else
                                    {
                                        pbxx.YUYUEHZS = int.Parse(item_sb.Get("kyys"));
                                    }
                                    pbxx.YIYUYUES = int.Parse(item_sb.Get("yyys"));
                                }
                                //当天预约,查询所有预约号
                                //非当天预约,查询可预约号(去除预留号)
                                if (pbxx.YUYUEHZS > pbxx.YIYUYUES)
                                {
                                    var listyyhxx  = DBVisitor.ExecuteModels(SqlLoad.GetFormat(SQ.FSD00003, item_sb.Get("yyhxx"), xcyy));
                                    var yyhxx_list = new List <YUYUEHXX>();

                                    foreach (var item_yyh in listyyhxx)
                                    {
                                        var yyhxx = new YUYUEHXX();
                                        yyhxx.YUYUEH  = item_yyh.Get("yyh");
                                        yyhxx.YUYUEZT = int.Parse(item_yyh.Get("yyzt"));
                                        yyhxx_list.Add(yyhxx);
                                    }
                                    pbxx.YUYUEHXXXX = yyhxx_list;
                                    //OutObject.SHEBEIYYXXXX.Add(pbxx);
                                }
                                else
                                {
                                    var yyhxx_list = new List <YUYUEHXX>();
                                    pbxx.YUYUEHXXXX = yyhxx_list;
                                }
                                OutObject.SHEBEIYYXXXX.Add(pbxx);
                            }
                        }
                    }
                }
                #endregion
            }
        }
Exemple #6
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
            //---------------------------------------------------------------------------------------------
        }
Exemple #7
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("检验业务建设中,敬请期待……");
            }
        }