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); } }
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 } }