public override void ProcessMessage() { string jiuZhenKH = InObject.patientid; if (string.IsNullOrEmpty(jiuZhenKH)) { throw new Exception("患者编号不能为空"); } string sqlBingRenID = "select bingrenid from gy_bingrenxx where jiuzhenkh ='{0}'"; string bingRenID = (string)DBVisitor.ExecuteScalar(string.Format(sqlBingRenID, jiuZhenKH)); string errChuFang = string.Empty; foreach (var item in InObject.orderinfo) { string orderno = item.orderno; if (string.IsNullOrEmpty(orderno)) { errChuFang += "," + jiuZhenKH; continue; } string sqlPYWC = "update mz_chufang1 set peiyaobz = 1 where chufangid = '{0}' and bingrenid = '{1}'"; DBVisitor.ExecuteNonQuery(string.Format(sqlPYWC, orderno, jiuZhenKH)); } if (!string.IsNullOrEmpty(errChuFang)) { errChuFang = errChuFang.Trim(','); throw new Exception("以下病人的处方id获取失败请检查数据:" + errChuFang); } }
public override void ProcessMessage() { if (string.IsNullOrEmpty(InObject.pharmacyid) || !InObject.pharmacyid.Contains('*')) { throw new Exception("传入参数格式错误"); } string chuFangHM = InObject.pharmacyid.Split('*')[1]; //处方id 多个时使用#分割 string bingRenID = InObject.pharmacyid.Split('*')[0]; //病人id string pharmacyid = string.Empty; //药房id string winno = string.Empty; //窗口id #region 入参判断 if (string.IsNullOrEmpty(chuFangHM)) { throw new Exception("处方号码不能为空"); } if (string.IsNullOrEmpty(bingRenID)) { throw new Exception("病人id不能为空"); } #endregion string sqlCKXX = "select a.chufangid, a.chuangkouid chuangkouid,b.yingyongid yaofangid from mz_chufang1 a ,my_chuangkou b where a.chuangkouid = b.chuangkouid and a.chufangid in(select max(chufangid) from mz_chufang1 where chufanghm in('{0}') group by chufanghm) and a.bingrenid = '{1}' "; DataTable dtCKXX = DBVisitor.ExecuteTable(string.Format(sqlCKXX, chuFangHM, bingRenID)); if (dtCKXX.Rows.Count > 0) { pharmacyid = dtCKXX.Rows[0]["yaofangid"].ToString(); winno = dtCKXX.Rows[0]["chuangkouid"].ToString(); InObject.pharmacyid = pharmacyid; InObject.winno = winno; InObject.orderno = dtCKXX.Rows[0]["chufangid"].ToString(); string sqlJiuZhenKH = "select jiuzhenkh from gy_bingrenxx where bingrenid ='{0}'"; InObject.patientid = (string)DBVisitor.ExecuteScalar(string.Format(sqlJiuZhenKH, bingRenID)); //InObject.patientid = bingRenID; OutObject = Unity.runService <DISP_PREPARE_IN, DISP_PREPARE_OUT>(InObject); if (OutObject.ResultCode == "0") { if (OutObject.Result.state == "2") { OutObject.ResultContent = "已配药完成"; string sqlPYBZ = "update mz_chufang1 set peiyaobz = 1 where chufangid = '{0}'"; DBVisitor.ExecuteNonQuery(string.Format(sqlPYBZ, InObject.orderno)); } else { //OutObject.ResultContent = "正在配药中,请稍后!"; } } } else { throw new Exception("未找到相应的处方信息"); } }
/// <summary> /// 判断科室可挂号性别 /// </summary> /// <param name="keShiDM"></param> /// <param name="zhenJianHM"></param> /// <returns></returns> public static Boolean shiFouKeGHXingBie(string keShiDM, string zhenJianHM) { string xingBiePd = ConfigurationManager.AppSettings["XingBiePD"]; if (string.IsNullOrEmpty(xingBiePd) || xingBiePd == "0") { return(true); } else { string sqlBuf = "select canshuzhi from gy_canshu where canshuid like '挂号_挂号科室与性别排斥' and yingyongid = '00'"; string canShuZ = DBVisitor.ExecuteScalar(sqlBuf).ToString(); int xingBie = getXingBie(zhenJianHM); if (xingBie == 1)//男 { string nanXingKS = canShuZ.Split('|')[0].ToString(); if (string.IsNullOrEmpty(nanXingKS) || nanXingKS == "*") { return(true); } foreach (string item in nanXingKS.Split('^')) { if (keShiDM == item) { return(false); } } } else //女 { string nvXingKS = canShuZ.Split('|')[1].ToString(); if (string.IsNullOrEmpty(nvXingKS) || nvXingKS == "*") { return(true); } foreach (string item in nvXingKS.Split('^')) { if (keShiDM == item) { return(false); } } } } return(true); }
public override void ProcessMessage() { string chuFangHM = InObject.pharmacyid.Split('*')[1]; //处方id 多个时使用|分割 string bingRenID = InObject.pharmacyid.Split('*')[0]; //病人id #region 基本入参判断 if (string.IsNullOrEmpty(chuFangHM)) { throw new Exception("处方号码不能为空"); } if (string.IsNullOrEmpty(bingRenID)) { throw new Exception("病人ID不能为空"); } #endregion string sqlCFXX = "select a.chufangid, b.yingyongid yaofangid,a.zhidanren fayaoyaoshi,a.chuangkouid fayaochuangkou from mz_chufang1 a ,my_chuangkou b where a.chuangkouid = b.chuangkouid and a.chufangid in(select max(chufangid) from mz_chufang1 where chufanghm in('{0}') group by chufanghm) and bingrenid = '{1}' "; DataTable dtCFXX = DBVisitor.ExecuteTable(string.Format(sqlCFXX, chuFangHM, bingRenID)); if (dtCFXX.Rows.Count > 0) { InObject.pharmacyid = dtCFXX.Rows[0]["yaofangid"].ToString(); InObject.winno = dtCFXX.Rows[0]["fayaochuangkou"].ToString(); InObject.dispoper = dtCFXX.Rows[0]["fayaoyaoshi"].ToString(); patientid pattemp = new patientid(); string sqlJiuZhenKH = "select jiuzhenkh from gy_bingrenxx where bingrenid ='{0}'"; pattemp.pid = (string)DBVisitor.ExecuteScalar(string.Format(sqlJiuZhenKH, bingRenID)); //pattemp.pid = bingRenID; pattemp.orderno = dtCFXX.Rows[0]["chufangid"].ToString(); InObject.patientidlist.Add(pattemp); OutObject = Unity.runService <DISP_FINISH_IN, DISP_FINISH_OUT>(InObject); } else { throw new Exception("未找到相关的处方信息!"); } }
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 } }
public override void ProcessMessage() { OutObject = new GUAHAOYY_OUT(); string yuyueLx = InObject.YUYUELX; string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型 string jiuzhenKh = InObject.JIUZHENKH; //就诊卡号 string zhengjianLx = InObject.ZHENGJIANLX; //证件类型 string zhengjianHm = InObject.ZHENGJIANHM; //证件号码 string xingMing = InObject.XINGMING; //姓名 string yizhoupbId = InObject.YIZHOUPBID; //一周排班id; string dangtianpbId = InObject.DANGTIANPBID; //当天排班id string riQi = InObject.RIQI; //日期 string guahaoBc = InObject.GUAHAOBC; //挂号班次 string guahaoLb = InObject.GUAHAOLB; //挂号类别 string keshiDm = InObject.KESHIDM; //科室代码 string yishengDm = InObject.YISHENGDM; //医生代码 string guahaoXh = InObject.GUAHAOXH; //挂号序号 string yuyueLy = InObject.YUYUELY; //预约来源 string lianxiDh = InObject.LIANXIDH; //手机号码 string bingrenId = InObject.BINGRENID; //病人ID string xingBie = InObject.XINGBIE; //性别 string FenYuanDM = InObject.BASEINFO.FENYUANDM; //分院代码 string beiZhu = InObject.BEIZHU; //备注 string czygh = ConfigurationManager.AppSettings["JRCaoZuoYGH"]; //接入操作员工号 string yuYueCZFS = ConfigurationManager.AppSettings["GUAHAOYYCZFS"]; //挂号预约处理方式 if (!string.IsNullOrEmpty(yuYueCZFS) && yuYueCZFS == "1") { #region 兴悦城业务处理 #region 基本入参判断 //if (string.IsNullOrEmpty(zhengjianHm)) { // throw new Exception("证件号码不能为空!"); //} if (string.IsNullOrEmpty(beiZhu)) { beiZhu = string.Empty; } if (string.IsNullOrEmpty(xingMing)) { throw new Exception("姓名不能为空!"); } if (string.IsNullOrEmpty(xingBie)) { throw new Exception("性别不能为空!"); } if (string.IsNullOrEmpty(lianxiDh)) { throw new Exception("联系电话不能为空!"); } if (string.IsNullOrEmpty(guahaoBc)) { throw new Exception("挂号班次不能为空!请传入1 上午,2 下午!"); } else if (guahaoBc != "1" && guahaoBc != "2") { throw new Exception("挂号班次不能为空!请传入1 上午,2 下午!"); } if (string.IsNullOrEmpty(xingBie)) { xingBie = "0"; } if (string.IsNullOrEmpty(yuyueLx)) { yuyueLx = ConfigurationManager.AppSettings["GuaHaoYYLX"];//预约类型 } #endregion string sXingBie = string.Empty; switch (xingBie) { case "0": sXingBie = "未知"; break; case "1": sXingBie = "男"; break; case "2": sXingBie = "女"; break; default: sXingBie = "其它"; break; } string chuShenRQ = "null"; if (!string.IsNullOrEmpty(zhengjianHm)) { chuShenRQ = string.Format("to_date('{0}','yyyy-mm-dd')", zhengjianHm.Substring(6, 8).Insert(4, "-").Insert(7, "-")); } string houzhensj = "select kaishisj,jieshusj from v_mz_houzhensj where paibanid = '{0}' and (shangxiawbz = '{1}') and (qishighxh>= '{2}' and jieshughxh <= '{2}')"; DataTable dtHouZhensj = DBVisitor.ExecuteTable(string.Format(houzhensj, dangtianpbId, guahaoBc == "1" ? "0" : "1", guahaoXh)); string kaishisj = string.Empty; string jieshusj = string.Empty; if (dtHouZhensj != null && dtHouZhensj.Rows.Count > 0) { kaishisj = dtHouZhensj.Rows[0]["kaishisj"].ToString(); jieshusj = dtHouZhensj.Rows[0]["jieshusj"].ToString(); } string PaiBanHYXX = @"select * from v_mz_guahaoyyxh_qbhy where paibanid = '{0}' and guahaoyyxh = '{1}' and shangxiawbz = '{2}'and yuanquid = '{3}' "; DataTable dtPBHYXX = DBVisitor.ExecuteTable(string.Format(PaiBanHYXX, dangtianpbId, guahaoXh, guahaoBc == "1" ? "0" : "1", FenYuanDM)); if (dtPBHYXX == null || dtPBHYXX.Rows.Count <= 0) { throw new Exception("未找到有效的号源信息!"); } //号源占用判断 DataTable dtYYYXX = DBVisitor.ExecuteTable(string.Format("select * from v_mz_guahaoyyxh_yshyh where paibanid = '{0}' and guahaoyyxh = '{1}' and shangxiawbz = '{2}' and yuanquid = '{3}' ", dangtianpbId, guahaoXh, ((guahaoBc == "1") ? 0 : 1), FenYuanDM)); if (dtYYYXX.Rows.Count > 0) { throw new Exception("该时间段已被预约,请选择其它时间段!"); } string quHaoMM = DBVisitor.ExecuteScalar("select LPAD(seq_gy_jiuzhenyy.nextval,10,'0') from dual").ToString(); string bingrenid = DBVisitor.ExecuteScalar(string.Format("select nvl(bingrenid,'') from gy_bingrenxx where xingming = '{0}' and xingbie = '{1}' and jiatingdh = '{2}' ", xingMing, sXingBie, lianxiDh)).ToString(); string insertYYXX = @"insert into gy_jiuzhenyy (jiuzhenyyid,yuyuesj,yisehngid,keshiid,xingming, shuruma1,shuruma2,shuruma3,xingbie,chushengrq,dianhua, yuyuerq,jiuzhenbz,jiluren,jieshusj,zuofeibz,yuyuely,beizhu,bingrenid,chuzhenbz ) values( '{0}','{1}','{2}','{3}','{4}', fun_gy_getshuruma1('{4}',50),fun_gy_getshuruma2('{4}',50),fun_gy_getshuruma3('{4}',50),'{5}',{6},'{7}', to_date('{8}','yyyy-mm-dd'),'0','{9}','{10}','0','{11}','{12}','{13}',{14} )"; DBVisitor.ExecuteNonQuery(string.Format(insertYYXX, quHaoMM, kaishisj, yishengDm, keshiDm, xingMing, sXingBie, chuShenRQ, lianxiDh, riQi, InObject.BASEINFO.CAOZUOYDM, jieshusj, yuyueLx, beiZhu, bingrenid, string.IsNullOrEmpty(bingrenid)?1:0)); OutObject.GUAHAOXH = guahaoXh; OutObject.JIUZHENSJ = Unity.getJiuZhenSJD(yishengDm, keshiDm.ToString(), guahaoXh, yuyueLx, ((guahaoBc == "1") ? 0 : 1), guahaoLb, riQi); OutObject.QUHAOMM = quHaoMM; #endregion } else { #region 标准his4业务处理 #region 基本入参判断 if (string.IsNullOrEmpty(InObject.BASEINFO.CAOZUOYDM)) { throw new Exception("非法操作员,无法进行预约操作!"); } if (!string.IsNullOrEmpty(czygh) && !czygh.Contains("^" + InObject.BASEINFO.CAOZUOYDM + "^")) { throw new Exception("非法操作员,无法进行预约操作!"); } //预约类型 if (string.IsNullOrEmpty(yuyueLx)) { yuyueLx = ConfigurationManager.AppSettings["GuaHaoYYLX"];//预约类型 } //性别 if (string.IsNullOrEmpty(xingBie)) { xingBie = "未知"; } else if (xingBie == "1") { xingBie = "男"; } else if (xingBie == "2") { xingBie = "女"; } else if (xingBie == "9") { xingBie = "其他"; } else { xingBie = ""; } if (!string.IsNullOrEmpty(zhengjianHm)) { zhengjianHm = zhengjianHm.ToUpper(); } //姓名 if (string.IsNullOrEmpty(xingMing)) { throw new Exception("姓名不能为空!"); } //就诊卡号 if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengjianHm) && string.IsNullOrEmpty(bingrenId)) { throw new Exception("就诊卡号和证件号码不能同时为空!"); } //排班id if (string.IsNullOrEmpty(dangtianpbId)) { throw new Exception("排班信息获取失败,请重新尝试挂号!"); } //预约日期 if (string.IsNullOrEmpty(riQi)) { throw new Exception("预约日期获取失败,请重新尝试挂号!"); } //挂号班次 if (string.IsNullOrEmpty(guahaoBc)) { throw new Exception("挂号班次获取失败,请重新尝试挂号!"); } //挂号类别 if (string.IsNullOrEmpty(guahaoLb)) { throw new Exception("挂号类别获取失败,请重新尝试挂号!"); } //科室代码 if (string.IsNullOrEmpty(keshiDm)) { throw new Exception("科室信息获取失败,请重新尝试挂号!"); } //挂号序号 if (string.IsNullOrEmpty(guahaoXh)) { throw new Exception("预约挂号序号获取失败,请重新尝试挂号!"); } //联系电话 if (string.IsNullOrEmpty(lianxiDh)) { throw new Exception("联系电话获取失败,请重新尝试挂号!"); } if (string.IsNullOrEmpty(yishengDm)) { yishengDm = "*"; } if (string.IsNullOrEmpty(yuyueLy)) { yuyueLy = ConfigurationManager.AppSettings["GuaHaoYYLY"]; if (string.IsNullOrEmpty(yuyueLy)) { yuyueLy = "7"; } } #endregion string chushengrq = ""; string xuexing = ""; string hunyin = ""; string zhiye = ""; string guoji = ""; string minzu = ""; string jiwangshi = ""; string guominshi = ""; string jiatingdz = ""; string lianxirdh = ""; string lianxiren = ""; string dianhua = ""; string houzhenkssj = ""; string houzhenjssj = ""; if (!string.IsNullOrEmpty(jiuzhenKh) || !string.IsNullOrEmpty(zhengjianHm) || !string.IsNullOrEmpty(bingrenId)) { //获取病人个人信息 StringBuilder sbSql = new StringBuilder("select a.jiuzhenkh,a.shenfenzh,xingbie, to_char(a.chushengrq,'yyyy-mm-dd') chushengrq,a.bingrenid, a.xuexing,a.hunyin,"); sbSql.Append(" a.zhiye,a.guoji,a.minzu,a.jiwangshi,a.guominshi,a.jiatingdz,a.lianxirdh,a.lianxiren,a.dianhua,a.lianxidh "); sbSql.Append("from gy_v_bingrenxx a where ((a.jiuzhenkh is not null and a.jiuzhenkh = '" + jiuzhenKh + "') or (a.yibaokh is not null and a.yibaokh = '" + jiuzhenKh + "') or (a.bingrenid is not null and a.bingrenid ='" + bingrenId + "') or (a.shenfenzh is not null and a.shenfenzh = '" + zhengjianHm + "')) order by a.yibaokh asc, a.xiugaisj desc "); DataTable dt = DBVisitor.ExecuteTable(sbSql.ToString()); if (dt.Rows.Count > 0) { jiuzhenKh = dt.Rows[0]["jiuzhenkh"].ToString(); bingrenId = dt.Rows[0]["bingrenid"].ToString(); zhengjianHm = dt.Rows[0]["shenfenzh"].ToString(); chushengrq = dt.Rows[0]["chushengrq"].ToString(); xuexing = dt.Rows[0]["xuexing"].ToString(); hunyin = dt.Rows[0]["hunyin"].ToString(); zhiye = dt.Rows[0]["zhiye"].ToString(); guoji = dt.Rows[0]["guoji"].ToString(); minzu = dt.Rows[0]["minzu"].ToString(); jiwangshi = dt.Rows[0]["jiwangshi"].ToString(); guominshi = dt.Rows[0]["guominshi"].ToString(); jiatingdz = dt.Rows[0]["jiatingdz"].ToString(); lianxirdh = dt.Rows[0]["lianxirdh"].ToString(); lianxiren = dt.Rows[0]["lianxiren"].ToString(); dianhua = dt.Rows[0]["dianhua"].ToString(); xingBie = dt.Rows[0]["xingbie"].ToString(); if (string.IsNullOrEmpty(lianxiDh)) { lianxiDh = string.IsNullOrEmpty(dianhua) ? dt.Rows[0]["lianxidh"].ToString() : dianhua; } } else { if (string.IsNullOrEmpty(zhengjianHm)) { throw new Exception("证件号码不能为空!"); } } } if (bingrenId == "null" || bingrenId == "Null" || bingrenId == "NULL") { bingrenId = string.Empty; } #region 科室可预约年龄判断 if (!Unity.shiFouKeGHNianLin(keshiDm, zhengjianHm)) { throw new Exception("年龄条件不符合,不能在本科室挂号/预约!"); } #endregion #region 科室可预约性别判断 if (!Unity.shiFouKeGHXingBie(keshiDm, zhengjianHm)) { throw new Exception("性别条件不符合,不能在本科室挂号/预约!"); } #endregion #region 获取候诊时间 string guaHaoHYMS = ConfigurationManager.AppSettings["GuaHaoYMS"];//挂号号源模式 if (!string.IsNullOrEmpty(guaHaoHYMS) && guaHaoHYMS == "1") { } else { OutObject.JIUZHENSJ = Unity.getJiuZhenSJD(yishengDm, keshiDm.ToString(), guahaoXh, yuyueLx, ((guahaoBc == "1") ? 0 : 1), guahaoLb, riQi); } if (OutObject.JIUZHENSJ.Contains("-")) { houzhenkssj = OutObject.JIUZHENSJ.Split('-')[0]; houzhenjssj = OutObject.JIUZHENSJ.Split('-')[1]; } #endregion //拼装交易字符串(2014-07-08,参考来源:his4.GHPKG.P_GH_BOOK) string jiaoyiZfc = bingrenId; //外部病人ID为空 jiaoyiZfc += "|" + jiuzhenKh; //就诊卡号 jiaoyiZfc += "|"; //医保卡号 jiaoyiZfc += "|" + xingMing; //姓名 jiaoyiZfc += "|" + xingBie; //性别 jiaoyiZfc += "|" + zhengjianHm; //证件号码 jiaoyiZfc += "|" + chushengrq; //出身日期 jiaoyiZfc += "|" + xuexing; //血型 jiaoyiZfc += "|" + hunyin.Replace('|', '-'); //婚姻状况 jiaoyiZfc += "|" + zhiye; //职业 jiaoyiZfc += "|" + guoji; //国籍 jiaoyiZfc += "|" + minzu; //民族 jiaoyiZfc += "|" + jiwangshi; //既往史 jiaoyiZfc += "|" + guominshi; //过敏史 jiaoyiZfc += "|" + jiatingdz; //家庭地址为空 jiaoyiZfc += "|" + lianxiDh; //联系电话 jiaoyiZfc += "|" + lianxiren; //联系人 jiaoyiZfc += "|" + lianxiDh; //联系电话 jiaoyiZfc += "|" + (guahaoBc == "1" ? "S" : "X") + dangtianpbId; //排版ID jiaoyiZfc += "|2"; //排班模式 jiaoyiZfc += "|" + riQi; //就诊日期 jiaoyiZfc += "|" + yuyueLx; //预约类型 jiaoyiZfc += "|" + yuyueLy; //记录来源 jiaoyiZfc += "|" + guahaoXh; //预约挂号就诊序号 jiaoyiZfc += "|"; jiaoyiZfc += "|"; jiaoyiZfc += "|" + InObject.BASEINFO.CAOZUOYDM; jiaoyiZfc += "|" + String.Empty; //yuyuehao 取号密码字段 jiaoyiZfc += "|" + lianxiDh; //家庭电话 jiaoyiZfc += "|"; //单位电话 jiaoyiZfc += "|" + houzhenkssj; //候诊开始时间 jiaoyiZfc += "|" + houzhenjssj; //候诊结束时间 //提交预约号------------------------------------------------------------------------------------------- OracleParameter[] paramJiaoYi = new OracleParameter[3]; paramJiaoYi[0] = new OracleParameter("PRM_JIAOYIZFC", OracleType.VarChar); paramJiaoYi[0].Value = jiaoyiZfc; paramJiaoYi[0].Direction = ParameterDirection.Input; paramJiaoYi[1] = new OracleParameter("PRM_APPCODE", OracleType.Number); paramJiaoYi[1].Value = null; paramJiaoYi[1].Direction = ParameterDirection.Output; paramJiaoYi[2] = new OracleParameter("PRM_DATABUFFER", OracleType.VarChar); paramJiaoYi[2].Value = null; paramJiaoYi[2].Size = 2000; paramJiaoYi[2].Direction = ParameterDirection.Output; log.InfoFormat("{0}", "执行存储过程:PKG_MZ_YUYUE.PRC_GY_TIJIAOYUYUEXX \r\nPRM_JIAOYIZFC:" + jiaoyiZfc + "\r\n"); string returnValue = string.Empty; DbTransaction transaction = null; DbConnection conn = DBVisitor.Connection; try { transaction = conn.BeginTransaction(); DBVisitor.ExecuteProcedure("PKG_MZ_YUYUE.PRC_GY_TIJIAOYUYUEXX", paramJiaoYi, transaction); } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); conn.Close(); } throw new Exception(ex.Message); } //-------------------------------------------------------------------------------------------------- //String filePath = System.Environment.CurrentDirectory; //取当前系统路径 string errMsg = string.Empty; returnValue = paramJiaoYi[2].Value.ToString(); if (!returnValue.Contains("|")) { transaction.Rollback(); conn.Close(); throw new Exception(returnValue); } if (returnValue.Length > 3 && returnValue.Substring(0, 3).ToUpper() == "ERR")//获取信息错误 { errMsg = returnValue.Substring(returnValue.IndexOf('|') + 1); transaction.Rollback(); conn.Close(); throw new Exception(errMsg); } else { string yuYueHao = string.Empty; if (returnValue.Contains("|")) { yuYueHao = returnValue.Split('|')[1]; //此处需要处理返回成功的xml OutObject.QUHAOMM = yuYueHao; OutObject.GUAHAOXH = guahaoXh; transaction.Commit(); conn.Close(); } else { transaction.Rollback(); conn.Close(); throw new Exception("存储过程返回值格式有误!"); } } #endregion } }
public override void ProcessMessage() { OutObject = new RENYUANXX_OUT(); int JIUZHENKCD = Convert.ToInt32(ConfigurationManager.AppSettings["JIUZHENKCD"]); //就诊卡默认长度 char JIUZHENKTCZF = string.IsNullOrEmpty(ConfigurationManager.AppSettings["JIUZHENKTCZF"]) ? '0' : ConfigurationManager.AppSettings["JIUZHENKTCZF"].ToCharArray()[0]; //就诊卡填充字符 string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型 string jiuzhenKh = InObject.JIUZHENKH; //就诊卡号 string bingrenLb = InObject.BINGRENLB; //病人类别 string yibaokLx = InObject.YIBAOKLX; //医保卡类型 string yibaokMm = InObject.YIBAOKMM; //医保卡密码 string yibaokXx = InObject.YIBAOKXX; //医保卡信息 string yiliaoLb = InObject.YILIAOLB; //医疗类别 string jiesuanLb = InObject.JIESUANLB; //结算类别 string jiuzhenRq = InObject.JIUZHENRQ; //就诊日期 string qianfeiKz = InObject.QIANFEIKZ; //欠费控制 string yinhangKh = InObject.YINHANGKH; //银行卡号 string caozuoyDm = InObject.BASEINFO.CAOZUOYDM; //操作员工号 string zhengJianHm = InObject.ZHENGJIANHM; //证件号码 string bingRenId = InObject.BINGRENID; //病人ID #region 基本入参判断 //就诊卡号 if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengJianHm) && string.IsNullOrEmpty(bingRenId)) { throw new Exception("就诊卡号和证件号不能同时为空"); } if (string.IsNullOrEmpty(jiuzhenKh)) { jiuzhenKh = string.Empty; } //病人类别 //if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(bingrenLb)) //{ // throw new Exception("病人类别获取失败"); //} //医疗类别 //if (string.IsNullOrEmpty(yiliaoLb)) //{ // throw new Exception("医疗类别获取失败"); //} //结算类别 //if (string.IsNullOrEmpty(jiesuanLb)) //{ // throw new Exception("结算类别获取失败"); //} #endregion #region 获取病人信息 StringBuilder sbSql = new StringBuilder("select a.bingrenid,a.jiuzhenkh,a.feiyonglb bingrenlb,a.feiyongxz bingrenxz,a.yibaokh, "); sbSql.Append("a.gerenbh,a.binganhao binglibh,a.xingming,a.xingbie,a.minzu,to_char(a.chushengrq,'yyyy-mm-dd') chushengrq, "); sbSql.Append("'1' zhengjianlx,a.shenfenzh zhengjianhm,'' danweilx,'' danweibh,a.gongzuodw danweimc, "); sbSql.Append("a.jiatingdz jiatingzz,'' renyuanlb,nvl(b.qimoje,0) dangnianzhye,nvl(b.qimoje,0) linianzhye,a.teshubz teshubzbz, "); sbSql.Append("'' teshubzspbh,a.yibaobrxx,'' tishixx,a.youhuilb daiyulb,'' canbaoxzdm,'' teshudylb,"); sbSql.Append("'' qianfeije,'' hisbrxx, lianxidh,'' qianyuebz,nvl(a.zijinzhqybz,0) kaihuzt,"); sbSql.Append("''xunizh,'' guahaohmd,nvl(b.qimoje,0) zhanghuye,b.jiaoyimm jiaoyimm ,empiid "); sbSql.Append("from gy_v_bingrenxx a ,gy_zijinzh b where a.bingrenid = b.bingrenid(+) "); #region 就诊卡自动长度补全 if (JIUZHENKCD > 0) { if (jiuzhenKh.Length < JIUZHENKCD) { jiuzhenKh = jiuzhenKh.PadLeft(JIUZHENKCD, JIUZHENKTCZF); } } #endregion sbSql.Append(" and (a.jiuzhenkh='" + jiuzhenKh + "' or a.yibaokh='" + jiuzhenKh.TrimStart('0') + "' or nvl(a.shenfenzh,'*') = '" + zhengJianHm + "' or a.bingrenid = '" + bingRenId + "' ) "); if (!string.IsNullOrEmpty(yinhangKh) && yinhangKh != "-1") { sbSql.Append(" and a.YILIANMA='" + yinhangKh + "' ");//银行卡号过滤 } sbSql.Append(" order by a.yibaokh asc, a.xiugaisj desc "); #endregion #region 错误执行及错误判断 DataTable dt = new DataTable(); try { dt = DBVisitor.ExecuteTable(sbSql.ToString()); if (dt.Rows.Count <= 0)//返回数据空 { throw new Exception("该卡未建档,请前往人工服务台建档!"); } else { OutObject.BINGRENID = dt.Rows[0]["BINGRENID"].ToString(); //病人ID OutObject.JIUZHENKH = dt.Rows[0]["JIUZHENKH"].ToString(); //就诊卡号 OutObject.BINGRENLB = dt.Rows[0]["BINGRENLB"].ToString(); //病人类别 OutObject.BINGRENXZ = dt.Rows[0]["BINGRENXZ"].ToString(); //病人性质 OutObject.YIBAOKH = dt.Rows[0]["YIBAOKH"].ToString(); //医保卡号 OutObject.GERENBH = dt.Rows[0]["GERENBH"].ToString(); //个人编号 OutObject.BINGLIBH = dt.Rows[0]["BINGLIBH"].ToString(); //病历本号 OutObject.XINGMING = dt.Rows[0]["XINGMING"].ToString(); //姓名 OutObject.XINGBIE = dt.Rows[0]["XINGBIE"].ToString(); //性别 OutObject.MINZU = dt.Rows[0]["MINZU"].ToString(); //民族 OutObject.CHUSHENGRQ = dt.Rows[0]["CHUSHENGRQ"].ToString(); //出生日期 OutObject.ZHENGJIANLX = dt.Rows[0]["ZHENGJIANLX"].ToString(); //证件类别 OutObject.ZHENGJIANHM = dt.Rows[0]["ZHENGJIANHM"].ToString(); //证件号码 OutObject.DANWEILX = dt.Rows[0]["DANWEILX"].ToString(); //单位类型 OutObject.DANWEIBH = dt.Rows[0]["DANWEIBH"].ToString(); //单位编号 OutObject.DANWEIMC = dt.Rows[0]["DANWEIMC"].ToString().Replace("<", "(").Replace(">", ")"); //单位名称 OutObject.JIATINGZZ = dt.Rows[0]["JIATINGZZ"].ToString().Replace("<", "(").Replace(">", ")"); //家庭住址 OutObject.RENYUANLB = dt.Rows[0]["RENYUANLB"].ToString(); //人员类别 OutObject.DANGNIANZHYE = dt.Rows[0]["DANGNIANZHYE"].ToString(); //当年账户余额 OutObject.LINIANZHYE = dt.Rows[0]["LINIANZHYE"].ToString(); //历年账户余额 OutObject.TESHUBZBZ = dt.Rows[0]["TESHUBZBZ"].ToString(); //特殊病种标识 OutObject.TESHUBZSPBH = dt.Rows[0]["TESHUBZSPBH"].ToString(); //特殊病种审批编号 OutObject.YIBAOBRXX = dt.Rows[0]["YIBAOBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //医保病人信息 OutObject.TISHIXX = dt.Rows[0]["TISHIXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //提示信息 OutObject.DAIYULB = dt.Rows[0]["DAIYULB"].ToString(); //待遇类别 OutObject.CANBAOXZDM = dt.Rows[0]["CANBAOXZDM"].ToString(); //参保性质代码 OutObject.TESHUDYLB = dt.Rows[0]["TESHUDYLB"].ToString(); //特殊待遇类别 OutObject.HISBRXX = dt.Rows[0]["HISBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //his病人信息 OutObject.LIANXIDH = dt.Rows[0]["LIANXIDH"].ToString(); //联系电话 OutObject.QIANYUEBZ = dt.Rows[0]["QIANYUEBZ"].ToString(); //签约标识 OutObject.KAIHUZT = dt.Rows[0]["KAIHUZT"].ToString(); //开户状态 OutObject.XUNIZH = dt.Rows[0]["XUNIZH"].ToString(); //虚拟账户 OutObject.GUAHAOHMD = dt.Rows[0]["GUAHAOHMD"].ToString(); //挂号黑名单 OutObject.ZHANGHUYE = dt.Rows[0]["ZHANGHUYE"].ToString(); //挂号黑名单 OutObject.JIAOYIMM = dt.Rows[0]["JIAOYIMM"].ToString(); //院内账户交易密码 OutObject.EMPIID = dt.Rows[0]["EMPIID"].ToString(); //实名制认证 //医保类型名称 OutObject.YIBAOBXLX = DBVisitor.ExecuteScalar(string.Format("select a.yewujh from yb_baoxianlb a,gy_feiyonglb b where a.yibaoid(+)=b.yibaoid and b.leibieid = {0} ", OutObject.BINGRENLB)).ToString(); } } catch (Exception ex) { throw new Exception(ex.Message); } #endregion }
public override void ProcessMessage() { string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型 string jiuzhenKh = InObject.JIUZHENKH; //就诊卡号 string bingrenLb = InObject.BINGRENLB; //病人类别 string yibaokLx = InObject.YIBAOKLX; //医保卡类型 string yibaokXx = InObject.YIBAOKXX; //医保卡信息 string yibaokh = InObject.YIBAOKH; //医保卡号 string gerenBh = InObject.GERENBH; //个人编号 string bingliBh = InObject.BINGLIBH; //病历本号 string xingMing = InObject.XINGMING; //姓名 string xingBie = InObject.XINGBIE; //性别 string minZu = InObject.MINZU; //民族 string chushengRq = InObject.CHUSHENGRQ; //出生日期 YYYT-MM-DD string zhengjianLx = InObject.ZHENGJIANLX; //证件类型 string zhengjianHm = InObject.ZHENGJIANHM; //证件号码 string danweiLx = InObject.DANWEILX; //单位类型 string danweiBh = InObject.DANWEIBH; //单位编号 string danweiMc = InObject.DANWEIMC; //单位名称 string jiatingZz = InObject.JIATINGZZ; //家庭住址 string renyuanLb = InObject.RENYUANLB; //人员类别 string lianxiDh = InObject.LIANXIDH; //联系电话 string yinhangKh = InObject.YINHANGKH; //银行卡号 string qianyueBz = InObject.QIANYUEBZ; //签约标识 string yiliaoLb = InObject.YILIAOLB; //医疗类别 string jiesuanLb = InObject.JIESUANLB; //结算类别 string yibaokMm = InObject.YIBAOKMM; //医保卡密码 string photo = InObject.PHOTO; //照片 二进制码流 string shifouYk = InObject.SHIFOUYK; //是否有卡 string bangdingYhk = InObject.BANGDINGYHK; //绑定银行卡 string zhongduansbXx = InObject.ZHONGDUANSBXX; //终端识别信息 string bingrenXz = InObject.BINGRENXZ; //病人性质 string chongzhiJe = InObject.CHONGZHIJE; //充值金额 string zhifuFs = InObject.ZHIFUFS; //支付方式 string jiandangRen = InObject.BASEINFO.CAOZUOYDM; //建档人工号 string caozuoRq = InObject.BASEINFO.CAOZUORQ; //操作日期 string empiId = InObject.EMPIID; //实名制认证标识 OutObject = new RENYUANZC_OUT(); int JIUZHENKCD = Convert.ToInt32(ConfigurationManager.AppSettings["JIUZHENKCD"]); //就诊卡默认长度 char JIUZHENKTCZF = string.IsNullOrEmpty(ConfigurationManager.AppSettings["JIUZHENKTCZF"]) ? '0' : ConfigurationManager.AppSettings["JIUZHENKTCZF"].ToCharArray()[0]; //就诊卡填充字符 #region 基本入参判断 if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(yibaokh)) { throw new Exception("就诊卡号和医保卡号不能同时为空!"); } if (string.IsNullOrEmpty(jiuzhenKh)) { jiuzhenKh = yibaokh; } if (string.IsNullOrEmpty(zhengjianHm)) { throw new Exception("证件号码不能为空!"); } if (string.IsNullOrEmpty(xingMing)) { throw new Exception("病人姓名不能为空!"); } if (string.IsNullOrEmpty(xingBie)) { throw new Exception("病人性别不能为空!"); } if (string.IsNullOrEmpty(chushengRq)) { throw new Exception("出生日期不能为空!"); } if (string.IsNullOrEmpty(jiatingZz)) { throw new Exception("家庭住址不能为空!"); } if (string.IsNullOrEmpty(lianxiDh)) { throw new Exception("联系电话不能为空!"); } #endregion #region 检查档案状态 StringBuilder sbSql = new StringBuilder("select a.bingrenid,a.jiuzhenkh ,a.xingming "); sbSql.Append("from gy_v_bingrenxx a ,gy_zijinzh b where a.bingrenid = b.bingrenid(+) "); #region 就诊卡自动长度补全 if (JIUZHENKCD > 0) { if (jiuzhenKh.Length < JIUZHENKCD) { jiuzhenKh = jiuzhenKh.PadLeft(JIUZHENKCD, JIUZHENKTCZF); } } #endregion sbSql.Append(" and (a.jiuzhenkh='" + jiuzhenKh + "' or a.yibaokh='" + yibaokh + "' or nvl(a.shenfenzh,'*') = '" + zhengjianHm + "' ) "); sbSql.Append(" order by a.yibaokh asc, a.xiugaisj desc "); #endregion DataTable dtRenYuanXX = DBVisitor.ExecuteTable(sbSql.ToString()); if (dtRenYuanXX == null || dtRenYuanXX.Rows.Count <= 0) { #region 建档 string sqlStr = "select FUN_GY_GETORDER('1', 'GY_BINGRENXX', 10) as bingrenid from dual "; string bingrenId = DBVisitor.ExecuteScalar(sqlStr).ToString(); string shoukuanRq = Convert.ToDateTime(caozuoRq).ToString("yyyy-MM-dd HH:mm:ss"); string jiaoyanMa = Unity.GetMD5(bingrenId + Convert.ToSingle(chongzhiJe).ToString("f4") + shoukuanRq + "1" + jiandangRen).ToLower(); //医保卡信息特殊处理 if (!string.IsNullOrEmpty(yibaokXx) && yibaokXx.Contains('$')) { yibaokXx = yibaokXx.Replace('$', '&'); } #region 医保病人需要转化获取所需的性质ID //联众医保yibaobrxz不填,要在包里取//add by renj //if (bingrenLb != "1") //{ // string sqlYb = string.Format("select xingzhiid from gy_feiyongxz where feiyonglb='{0}' and yibaobrxz='{1}'", bingrenLb, bingrenXz); // bingrenXz = new DBServer().GetCurrData(sqlYb); //} #endregion #region 性别信息转换 if (xingBie == "0") { xingBie = "未知"; } else if (xingBie == "1") { xingBie = "男"; } else if (xingBie == "2") { xingBie = "女"; } else { xingBie = "其他"; } #endregion #region 入参信息拼装 //病人性质? 建档人? //数据库包中有建档自动开启电子账户功能 可通过注释包语句进行该功能的关闭 string tradeMsgList = jiuzhenkLx + "|" + jiuzhenKh + "|" + bingrenLb + "|" + yibaokLx + "|" + yibaokXx + "|" + yibaokh + "|" + gerenBh + "|" + bingliBh + "|" + xingMing + "|" + xingBie + "|" + minZu + "|" + chushengRq + "|" + zhengjianLx + "|" + zhengjianHm + "|" + danweiLx + "|" + danweiBh + "|" + danweiMc + "|" + jiatingZz + "|" + renyuanLb + "|" + lianxiDh + "|" + yinhangKh + "|" + qianyueBz + "|" + yiliaoLb + "|" + jiesuanLb + "|" + yibaokMm + "|" + photo + "|" + shifouYk + "|" + bangdingYhk + "|" + zhongduansbXx + "|" + jiandangRen + "|" + chongzhiJe + "|" + bingrenId + "|" + zhifuFs + "|" + shoukuanRq + "|" + jiaoyanMa + "|" + bingrenXz + "|"; //LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "建档交易入参:" + tradeMsgList);//交易入参日志 #endregion OracleParameter[] paramJiaoYi = new OracleParameter[3]; paramJiaoYi[0] = new OracleParameter("PRM_MSG", OracleType.VarChar); paramJiaoYi[0].Value = tradeMsgList; paramJiaoYi[0].Direction = ParameterDirection.Input; paramJiaoYi[1] = new OracleParameter("PRM_APPCODE", OracleType.Number); paramJiaoYi[1].Value = null; paramJiaoYi[1].Direction = ParameterDirection.Output; paramJiaoYi[2] = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar); paramJiaoYi[2].Value = null; paramJiaoYi[2].Size = 2000; paramJiaoYi[2].Direction = ParameterDirection.Output; string returnValue = string.Empty; DbTransaction transaction = null; DbConnection conn = DBVisitor.Connection; try { transaction = conn.BeginTransaction(); DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_BINGRENJD", paramJiaoYi, transaction); } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); //transaction.Connection.Close(); } throw new Exception(ex.Message); } returnValue = paramJiaoYi[1].Value.ToString(); string returnMsg = paramJiaoYi[2].Value.ToString(); string zhanghuId = string.Empty; if (returnValue == "1")//建档及生成虚拟账户成功 { transaction.Commit(); //transaction.Connection.Close(); //zhanghuId = returnMsg.Split('|')[1];//账户ID //此处需要处理返回成功的xml OutObject.JIUZHENKH = jiuzhenKh; OutObject.BINGRENID = bingrenId; //OutObject.XUNIZH = zhanghuId; } else { transaction.Rollback(); //transaction.Connection.Close(); throw new Exception(returnMsg); } #endregion } else { if (InObject.XINGMING != dtRenYuanXX.Rows[0]["xingming"].ToString()) { throw new Exception("该卡号和病人姓名不匹配,请核查!"); } OutObject.JIUZHENKH = dtRenYuanXX.Rows[0]["jiuzhenkh"].ToString(); OutObject.BINGRENID = dtRenYuanXX.Rows[0]["bingrenid"].ToString(); } if (!string.IsNullOrEmpty(OutObject.BINGRENID) && !string.IsNullOrEmpty(empiId)) { DBVisitor.ExecuteNonQuery(string.Format(" update gy_bingrenxx set empiid ='{0}' where bingrenid = '{1}' ", empiId, OutObject.BINGRENID)); } }
public override void ProcessMessage() { string bingrenZYId = InObject.BINGRENZYID; //病人ID string kaishiRq = InObject.KAISHIRQ; //开始日期 string jieshuRq = InObject.JIESHURQ; //结束日期 string jiaoyiMm = InObject.JIAOYANMM; //交易密码 string tongjiFs = InObject.TONGJIFS; //统计方式 string tongJiFL = InObject.TONGJIFL; //统计分类 OutObject = new ZHUYUANFYMX_OUT(); #region 基本入参判断 if (string.IsNullOrEmpty(bingrenZYId)) { throw new Exception("病人ID不能为空"); } //if (string.IsNullOrEmpty(jiaoyiMm)) { // throw new Exception("交易密码不能为空"); //} if (string.IsNullOrEmpty(kaishiRq)) { string sqlRYRQ = "select to_char(ruyuanrq,'yyyy-mm-dd') from zy_bingrenxx where bingrenzyid = '{0}'"; kaishiRq = DBVisitor.ExecuteScalar(string.Format(sqlRYRQ, bingrenZYId)).ToString(); } if (string.IsNullOrEmpty(jieshuRq)) { string sqlJSRQ = "select to_char(sysdate,'yyyy-mm-dd') from dual"; jieshuRq = DBVisitor.ExecuteScalar(sqlJSRQ).ToString(); } if (string.IsNullOrEmpty(tongjiFs)) { tongjiFs = "2"; } else if (tongjiFs != "1" && tongjiFs != "2") { throw new Exception("统计方式必须为:1:日清单;2:汇总清单,请选择正确的统计方式"); } #endregion if (tongjiFs == "1") { if (string.IsNullOrEmpty(kaishiRq)) { throw new Exception("请确认需查询日期!"); } StringBuilder sbSql = new StringBuilder("SELECT to_char(a.jifeirq,'yyyy-mm-dd') jifeirq,b.hesuanxmmc as feiyonglx,a.xiangmuid as xiangmuxh, "); sbSql.Append("a.xiangmuid as xiangmucddm,a.xiangmumc, b.hesuanxmid as xiangmugl,b.hesuanxmmc as xiangmuglmc,a.yaopingg as xiangmugg,'' xiangmujx, "); sbSql.Append("a.jijiadw xiangmudw,'' xiangmucdmc,to_char(a.jiesuanjia,'FM9999999999999990.0099') as danjia,a.shuliang,to_char(round(a.jiesuanje,2),'FM9999999999999990.00') as jine,a.yibaodj, "); sbSql.Append("a.yibaozfbl,a.xianjia as xiangmuxj,a.zifeije,a.zilije,a.kaidanks as kaidanksdm,a.kaidanksmc, "); sbSql.Append("a.kaidanys as kaidanysdm,a.kaidanysxm "); sbSql.Append("FROM ZY_FEIYONG1 a,gy_hesuanxm b,zy_bingrenxx c,gy_xiangmulx d "); sbSql.Append("WHERE b.hesuanxmid(+)=a.hesuanxm and c.BINGRENZYID = a.bingrenzyid and d.daimaid(+) = a.xiangmulx "); sbSql.Append(" and a.shuliang > 0 and a.feiyongid not in (select yuanfeiyid from zy_feiyong1 where bingrenzyid = '" + bingrenZYId + "' and shuliang < 0) "); sbSql.Append("and (c.bingrenzyid='" + bingrenZYId + "' or a.MUQINZYID ='" + bingrenZYId + "') "); sbSql.Append("and a.jifeirq>=to_date('" + kaishiRq + " 00:00:00','yyyy-mm-dd hh24:mi:ss') "); sbSql.Append("and a.jifeirq<=to_date('" + kaishiRq + " 23:59:59','yyyy-mm-dd hh24:mi:ss') "); sbSql.Append(" order by a.hesuanxm,a.jifeirq desc "); DataTable dtFYXX = DBVisitor.ExecuteTable(sbSql.ToString()); if (dtFYXX.Rows.Count > 0) { OutObject.FEIYONGMXTS = dtFYXX.Rows.Count.ToString();//费用明细条数 for (int i = 0; i < dtFYXX.Rows.Count; i++) { FEIYONGXX_ZY zyFyxx = new FEIYONGXX_ZY(); zyFyxx.JIFEIRQ = dtFYXX.Rows[i]["JIFEIRQ"].ToString(); //计费日期 zyFyxx.FEIYONGLX = dtFYXX.Rows[i]["FEIYONGLX"].ToString(); //费用类型 zyFyxx.XIANGMUXH = dtFYXX.Rows[i]["XIANGMUXH"].ToString(); //项目序号 zyFyxx.XIANGMUCDDM = dtFYXX.Rows[i]["XIANGMUCDDM"].ToString(); //项目产品代码 zyFyxx.XIANGMUMC = dtFYXX.Rows[i]["XIANGMUMC"].ToString(); //项目名称 zyFyxx.XIANGMUGL = dtFYXX.Rows[i]["XIANGMUGL"].ToString(); //项目归类 zyFyxx.XIANGMUGLMC = dtFYXX.Rows[i]["XIANGMUGLMC"].ToString(); //项目归类名称 zyFyxx.XIANGMUGG = dtFYXX.Rows[i]["XIANGMUGG"].ToString(); //项目规格 zyFyxx.XIANGMUJX = dtFYXX.Rows[i]["XIANGMUJX"].ToString(); //项目剂型 zyFyxx.XIANGMUDW = dtFYXX.Rows[i]["XIANGMUDW"].ToString(); //项目单位 zyFyxx.XIANGMUCDMC = dtFYXX.Rows[i]["XIANGMUCDMC"].ToString(); //项目产地名称 zyFyxx.DANJIA = dtFYXX.Rows[i]["DANJIA"].ToString(); //单价 zyFyxx.SHULIANG = dtFYXX.Rows[i]["SHULIANG"].ToString(); //数量 zyFyxx.JINE = dtFYXX.Rows[i]["JINE"].ToString(); //金额 zyFyxx.YIBAODJ = dtFYXX.Rows[i]["YIBAODJ"].ToString(); //医保等级 zyFyxx.YIBAOZFBL = dtFYXX.Rows[i]["YIBAOZFBL"].ToString(); //医保自负比例 zyFyxx.XIANGMUXJ = dtFYXX.Rows[i]["XIANGMUXJ"].ToString(); //项目限价 zyFyxx.ZIFEIJE = dtFYXX.Rows[i]["ZIFEIJE"].ToString(); //自费金额 zyFyxx.ZILIJE = dtFYXX.Rows[i]["ZILIJE"].ToString(); //自理金额 zyFyxx.KAIDANKSDM = dtFYXX.Rows[i]["KAIDANKSDM"].ToString(); //开单科室代码 zyFyxx.KAIDANKSMC = dtFYXX.Rows[i]["KAIDANKSMC"].ToString(); //开单科室名称 zyFyxx.KAIDANYSDM = dtFYXX.Rows[i]["KAIDANYSDM"].ToString(); //开单医生代码 zyFyxx.KAIDANYSXM = dtFYXX.Rows[i]["KAIDANYSXM"].ToString(); //开单医生姓名 OutObject.FEIYONGMX_ZY.Add(zyFyxx); } } } else if (tongjiFs == "2") { StringBuilder sbSql = new StringBuilder("SELECT to_char(a.jifeirq,'yyyy-mm-dd') jifeirq,b.hesuanxmmc as feiyonglx,a.xiangmuid as xiangmuxh, "); sbSql.Append("a.xiangmuid as xiangmucddm,a.xiangmumc, b.hesuanxmid as xiangmugl,b.hesuanxmmc as xiangmuglmc,a.yaopingg as xiangmugg,'' xiangmujx, "); sbSql.Append("a.jijiadw xiangmudw,'' xiangmucdmc,to_char(a.jiesuanjia,'FM9999999999999990.0099') as danjia,a.shuliang,to_char(round(a.jiesuanje,2),'FM9999999999999990.00') as jine,a.yibaodj, "); sbSql.Append("a.yibaozfbl,a.xianjia as xiangmuxj,a.zifeije,a.zilije,a.kaidanks as kaidanksdm,a.kaidanksmc, "); sbSql.Append("a.kaidanys as kaidanysdm,a.kaidanysxm "); sbSql.Append("FROM ZY_FEIYONG1 a,gy_hesuanxm b,zy_bingrenxx c,gy_xiangmulx d "); sbSql.Append("WHERE b.hesuanxmid(+)=a.hesuanxm and c.BINGRENZYID = a.bingrenzyid and d.daimaid(+) = a.xiangmulx "); sbSql.Append(" and a.shuliang > 0 and a.feiyongid not in (select yuanfeiyid from zy_feiyong1 where bingrenzyid = '" + bingrenZYId + "' and shuliang < 0) "); sbSql.Append("and c.bingrenzyid='" + bingrenZYId + "' "); if (kaishiRq != string.Empty) { sbSql.Append("and a.jifeirq>=to_date('" + kaishiRq + " 00:00:00','yyyy-mm-dd hh24:mi:ss') "); } if (jieshuRq != string.Empty) { sbSql.Append("and a.jifeirq<=to_date('" + jieshuRq + " 23:59:59','yyyy-mm-dd hh24:mi:ss') "); } //if (jiaoyiMm != string.Empty) // sbSql.Append("and substr(c.shenfenzh,length(c.shenfenzh)-5,6)='" + jiaoyiMm + "' "); if (!string.IsNullOrEmpty(tongJiFL)) { sbSql.Append(" and a.hesuanxm = '" + tongJiFL + "' "); } sbSql.Append(" order by jifeirq desc "); DataTable dtFYXX = DBVisitor.ExecuteTable(sbSql.ToString()); if (dtFYXX.Rows.Count > 0) { OutObject.FEIYONGMXTS = dtFYXX.Rows.Count.ToString();//费用明细条数 for (int i = 0; i < dtFYXX.Rows.Count; i++) { FEIYONGXX_ZY zyFyxx = new FEIYONGXX_ZY(); zyFyxx.JIFEIRQ = dtFYXX.Rows[i]["JIFEIRQ"].ToString(); //计费日期 zyFyxx.FEIYONGLX = dtFYXX.Rows[i]["FEIYONGLX"].ToString(); //费用类型 zyFyxx.XIANGMUXH = dtFYXX.Rows[i]["XIANGMUXH"].ToString(); //项目序号 zyFyxx.XIANGMUCDDM = dtFYXX.Rows[i]["XIANGMUCDDM"].ToString(); //项目产品代码 zyFyxx.XIANGMUMC = dtFYXX.Rows[i]["XIANGMUMC"].ToString(); //项目名称 zyFyxx.XIANGMUGL = dtFYXX.Rows[i]["XIANGMUGL"].ToString(); //项目归类 zyFyxx.XIANGMUGLMC = dtFYXX.Rows[i]["XIANGMUGLMC"].ToString(); //项目归类名称 zyFyxx.XIANGMUGG = dtFYXX.Rows[i]["XIANGMUGG"].ToString(); //项目规格 zyFyxx.XIANGMUJX = dtFYXX.Rows[i]["XIANGMUJX"].ToString(); //项目剂型 zyFyxx.XIANGMUDW = dtFYXX.Rows[i]["XIANGMUDW"].ToString(); //项目单位 zyFyxx.XIANGMUCDMC = dtFYXX.Rows[i]["XIANGMUCDMC"].ToString(); //项目产地名称 zyFyxx.DANJIA = dtFYXX.Rows[i]["DANJIA"].ToString(); //单价 zyFyxx.SHULIANG = dtFYXX.Rows[i]["SHULIANG"].ToString(); //数量 zyFyxx.JINE = dtFYXX.Rows[i]["JINE"].ToString(); //金额 zyFyxx.YIBAODJ = dtFYXX.Rows[i]["YIBAODJ"].ToString(); //医保等级 zyFyxx.YIBAOZFBL = dtFYXX.Rows[i]["YIBAOZFBL"].ToString(); //医保自负比例 zyFyxx.XIANGMUXJ = dtFYXX.Rows[i]["XIANGMUXJ"].ToString(); //项目限价 zyFyxx.ZIFEIJE = dtFYXX.Rows[i]["ZIFEIJE"].ToString(); //自费金额 zyFyxx.ZILIJE = dtFYXX.Rows[i]["ZILIJE"].ToString(); //自理金额 zyFyxx.KAIDANKSDM = dtFYXX.Rows[i]["KAIDANKSDM"].ToString(); //开单科室代码 zyFyxx.KAIDANKSMC = dtFYXX.Rows[i]["KAIDANKSMC"].ToString(); //开单科室名称 zyFyxx.KAIDANYSDM = dtFYXX.Rows[i]["KAIDANYSDM"].ToString(); //开单医生代码 zyFyxx.KAIDANYSXM = dtFYXX.Rows[i]["KAIDANYSXM"].ToString(); //开单医生姓名 OutObject.FEIYONGMX_ZY.Add(zyFyxx); } } } }
public override void ProcessMessage() { string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型 string jiuzhenKh = InObject.JIUZHENKH; //就诊卡号 string bingrenLb = InObject.BINGRENLB; //病人类别 string bingrenXz = InObject.BINGRENXZ; //病人性质 string yibaokLx = InObject.YIBAOKLX; //医保卡类型 string yibaokMm = InObject.YIBAOKMM; //医保卡密码 string yibaokXx = InObject.YIBAOKXX; //医保卡信息 string yibaobrXx = InObject.YIBAOBRXX; //医保病人信息 string yiliaoLb = InObject.YILIAOLB; //医疗类别 string jiesuanLb = InObject.JIESUANLB; //结算类别 string jiesuanId = InObject.JIESUANID; //结算ID string hisbrXx = InObject.HISBRXX; //his病人信息 //string zhifuLx = BaseCommon.GetNoteValue(tradeMsg, tradeType, "ZHIFULX"); string zhifuJe = InObject.ZONGJE; //总金额 //string yinhangkXx = BaseCommon.GetNoteValue(tradeMsg, tradeType, "YINHANGKXX"); string caozuoyDm = InObject.BASEINFO.CAOZUOYDM; string caozuoyXm = InObject.BASEINFO.CAOZUOYXM; string caozuoRq = InObject.BASEINFO.CAOZUORQ; string jiaoyiLsh = InObject.BASEINFO.ZHONGDUANLSH;//终端流水号即交易流水号?? #region 基础入参判断 //就诊卡号 if (string.IsNullOrEmpty(jiuzhenKh)) { throw new Exception("就诊卡号获取失败"); } //就诊卡类型 if (string.IsNullOrEmpty(jiuzhenkLx)) { throw new Exception("就诊卡类型获取失败"); } //病人类别 if (string.IsNullOrEmpty(bingrenLb)) { throw new Exception("病人类别获取失败"); } //病人性质 if (string.IsNullOrEmpty(bingrenXz)) { throw new Exception("病人性质获取失败"); } #endregion string bingrenId = DBVisitor.ExecuteScalar(string.Format("select bingrenid from gy_bingrenxx where jiuzhenkh='{0}'", jiuzhenKh)).ToString(); string fapiaoId = string.Empty; string zhifuLx = string.Empty; string zhifuFs = "1"; //支付方式? string jiesuanIds = jiesuanId; //结算单字符串? string yhjiaoyiLsh = string.Empty; string yibaojsId = string.Empty; string yinhangkXx = string.Empty; string jiaoyiMsg = bingrenId + "|" + caozuoyDm + "|" + zhifuFs + "|" + jiesuanIds + "|" + zhifuJe + "|" + jiaoyiLsh + "|" + fapiaoId + "|" + caozuoRq + "|" + jiuzhenKh + "|" + zhifuLx + "|" + yinhangkXx + "|" + yibaojsId + "|"; //门诊收费------------------------------------------------------------------------------------------- OracleParameter[] paramJiaoYi = new OracleParameter[3]; paramJiaoYi[0] = new OracleParameter("PRM_MSG", OracleType.VarChar); paramJiaoYi[0].Value = jiaoyiMsg; paramJiaoYi[0].Direction = ParameterDirection.Input; paramJiaoYi[1] = new OracleParameter("PRM_APPCODE", OracleType.Number); paramJiaoYi[1].Value = null; paramJiaoYi[1].Direction = ParameterDirection.Output; paramJiaoYi[2] = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar); paramJiaoYi[2].Value = null; paramJiaoYi[2].Size = 2000; paramJiaoYi[2].Direction = ParameterDirection.Output; log.InfoFormat("{0}", "执行存储过程:PKG_GY_YINYIJK.PRC_SHOUFEIJS \r\nPRM_MSG:" + jiaoyiMsg + "\r\n"); DbTransaction transaction = null; DbConnection conn = DBVisitor.Connection; try { transaction = conn.BeginTransaction(); DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_SHOUFEIJS", paramJiaoYi, transaction); } catch (Exception ex) { if (transaction != null) { transaction.Rollback();//回滚 conn.Close(); } throw new Exception(ex.Message); } //-------------------------------------------------------------------------------------- string returnValue = paramJiaoYi[1].Value.ToString(); string returnMsg = paramJiaoYi[2].Value.ToString(); //LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "门诊收费存储过程返回值:" + returnValue + "|" + returnMsg); if (returnValue == "1") //交易成功 { transaction.Commit(); //提交 conn.Close(); string[] list = returnMsg.Split('|'); DataTable dtTarget = new DataTable(); dtTarget.Columns.Add("SHIFUJE", Type.GetType("System.String")); dtTarget.Columns.Add("TIAOXINGM", Type.GetType("System.String")); dtTarget.Columns.Add("QUYAOCK", Type.GetType("System.String")); dtTarget.Columns.Add("BINGRENID", Type.GetType("System.String")); DataRow nRow = dtTarget.NewRow(); nRow["SHIFUJE"] = list[0];; nRow["TIAOXINGM"] = list[1]; nRow["QUYAOCK"] = list[2]; nRow["BINGRENID"] = bingrenId; dtTarget.Rows.Add(nRow); } else { transaction.Rollback();//回滚 conn.Close(); throw new Exception(returnMsg); } }
public override void ProcessMessage() { string bingrenId = InObject.BINGRENID; //病人ID string zhifuLx = InObject.ZHIFUMX[0].ZHIFULX; //支付类型 string zhifuSm = InObject.ZHIFUMX[0].ZHIFUSM; //支付说明 string zhifuJe = InObject.ZHIFUMX[0].ZHIFUJE;; //支付金额 string yinhangKh = InObject.ZHIFUMX[0].YINHANGKH; //银行卡号 string yinhangMm = InObject.ZHIFUMX[0].YINHANGMM; //银行密码 string zhongduanBh = InObject.ZHIFUMX[0].ZHONGDUANBH; //终端编号 string ShanghuH = InObject.ZHIFUMX[0].SHANGHUH; //商户号 string yinhangkXx = InObject.ZHIFUMX[0].YINHANGKXX; //银行卡信息 string piaojuHm = InObject.ZHIFUMX[0].PIAOJUHM; //票据号码 string shoukuanRen = InObject.BASEINFO.CAOZUOYDM; //收款人 string shoukuanRq = InObject.BASEINFO.CAOZUORQ; //收款日期 #region 基本入参判断 if (string.IsNullOrEmpty(bingrenId)) { throw new Exception("病人唯一号不能为空"); } if (string.IsNullOrEmpty(zhifuLx)) { throw new Exception("支付类型不能为空"); } if (string.IsNullOrEmpty(zhifuJe)) { throw new Exception("支付金额不能为空"); } try { zhifuJe = Convert.ToDecimal(zhifuJe).ToString(); } catch (Exception ex) { throw new Exception(ex.Message); } #endregion //通过bingrenID获取病人住院ID string brSql = "select bingrenzyid from zy_bingrenxx where bingrenid='{0}' and zaiyuanzt in('0','1') "; string bingrenZyId = (string)DBVisitor.ExecuteScalar(string.Format(brSql, bingrenId)); //拼装交易字符串 string jiaoyiZfc = bingrenZyId + "|" + shoukuanRen + "|" + zhifuJe + "|" + zhifuLx + "|" //病人住院ID|收款人|交款金额|支付方式 + shoukuanRq + "|" + zhongduanBh + "|" + yinhangKh + "|" + "" + "|" + "0" + "|"; //交易日期|银行交易流水号|卡号|交易类型|重发标志 OracleParameter[] paramJiaoYi = new OracleParameter[3]; paramJiaoYi[0] = new OracleParameter("PRM_MSG", OracleType.VarChar); paramJiaoYi[0].Value = jiaoyiZfc; paramJiaoYi[0].Direction = ParameterDirection.Input; paramJiaoYi[1] = new OracleParameter("PRM_APPCODE", OracleType.Number); paramJiaoYi[1].Value = null; paramJiaoYi[1].Direction = ParameterDirection.Output; paramJiaoYi[2] = new OracleParameter("PRM_DATABUFFER", OracleType.VarChar); paramJiaoYi[2].Value = null; paramJiaoYi[2].Size = 2000; paramJiaoYi[2].Direction = ParameterDirection.Output; string returnValue = string.Empty; DbTransaction transaction = null; DbConnection conn = DBVisitor.Connection; try { transaction = conn.BeginTransaction(); DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_ZY_YuJiaoKUAN", paramJiaoYi, transaction); } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); conn.Close(); } throw new Exception(ex.Message); } //-------------------------------------------------------------------------------------------------- returnValue = paramJiaoYi[1].Value.ToString(); string returnMsg = paramJiaoYi[2].Value.ToString(); if (returnValue != "1") { if (transaction != null) { transaction.Rollback(); conn.Close(); } throw new Exception(returnMsg); } else { //交易成功 if (transaction != null) { transaction.Commit(); conn.Close(); } } }
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 //--------------------------------------------------------------------------------------------- }
public override void ProcessMessage() { OutObject = new PAIDUIJHCX_OUT(); string keShiDM = InObject.KESHIID; string paiDuiJHLSJL = ConfigurationManager.AppSettings["PaiDuiJHLSJL"];//排队叫号是否获取历史队列记录 //KESHIID 不为空时 获取科室名称信息,进行队列检索 //检索队列为科室类别的数据,是否有可以匹配的内容 //检索队列为医生类别的数据,是否有可以匹配的内容 //获取队列号 //获取队列当前就诊号码(当前就诊号或最后一个就诊号) //KESHIID 为空时 获取所有的队列的信息 //获取队列号 列表 //循环获取队列当前就诊循环 if (string.IsNullOrEmpty(paiDuiJHLSJL)) { paiDuiJHLSJL = "0"; } if (!string.IsNullOrEmpty(keShiDM)) { //科室信息 KESHIXX ksxx = new KESHIXX(); string keShiXXSql = "select keshimc,keshiid from v_gy_keshi where keshiid = {0}"; DataTable dtKSXX = DBVisitor.ExecuteTable(string.Format(keShiXXSql, keShiDM));//科室信息 if (dtKSXX.Rows.Count > 0) { ksxx.KESHIDM = dtKSXX.Rows[0]["keshiid"].ToString(); ksxx.KESHIMC = dtKSXX.Rows[0]["keshimc"].ToString(); } //队列 string duiLieKSSql = "select distinct duilieid from jh_duiliexx where to_char(xitongsj,'yyyy-mm-dd') = '{0}' " + " and zuofeibz = 0 and duiliebh != 'DBA' and ((duilielbid = '01' and duiliebh ='{1}') or (duilielbid='02' and fuduilm ='{2}'))"; DataTable dtDuiLieKS = DBVisitor.ExecuteTable(string.Format(duiLieKSSql, DateTime.Now.ToString("yyyy-MM-dd"), keShiDM, ksxx.KESHIMC)); for (int i = 0; i < dtDuiLieKS.Rows.Count; i++) { //队列详细信息 string duiLieID = dtDuiLieKS.Rows[i]["duilieid"].ToString(); string paiDuiXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_paiduidl where duilieid = '{0}' and zhuangtaiid = '06' "; DataTable dtPaiDuiXX = DBVisitor.ExecuteTable(string.Format(paiDuiXXSql, duiLieID)); if (dtPaiDuiXX.Rows.Count > 0) { PAIDUIJHXX pdjhxx = new PAIDUIJHXX(); string duiliexx = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'"; DataTable duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID)); if (duiliexxtb.Rows.Count > 0)//就诊位置 { pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString(); } else { pdjhxx.SUOZAIZJ = ""; } pdjhxx.PAIDUIID = dtPaiDuiXX.Rows[0]["duilieid"].ToString(); //排队队列唯一编号 pdjhxx.DANGQIANHM = dtPaiDuiXX.Rows[0]["yewuxh"].ToString(); //业务序号(挂号序号) string GuaHaoId = (dtPaiDuiXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID pdjhxx.SHANGXIAWBZ = dtPaiDuiXX.Rows[0]["shangxiawbz"].ToString(); pdjhxx.KESHIDM = ksxx.KESHIDM; //科室代码 pdjhxx.YISHENGDM = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", ksxx.KESHIDM)).ToString(); if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*") { pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString(); } OutObject.PAIDUIJHMX.Add(pdjhxx); } else { if (paiDuiJHLSJL == "0") { //结束队列信息 string paiDuiJSXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_jieshudl where duilieid = '{0}'"; DataTable dtPaiDuiJSXX = DBVisitor.ExecuteTable(string.Format(paiDuiJSXXSql, duiLieID)); if (dtPaiDuiJSXX.Rows.Count > 0) { PAIDUIJHXX pdjhxx = new PAIDUIJHXX(); string duiliexx = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'"; DataTable duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID)); if (duiliexxtb.Rows.Count > 0)//就诊位置 { pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString(); } else { pdjhxx.SUOZAIZJ = ""; } pdjhxx.PAIDUIID = dtPaiDuiJSXX.Rows[0]["duilieid"].ToString(); //排队队列唯一编号 pdjhxx.DANGQIANHM = dtPaiDuiJSXX.Rows[0]["yewuxh"].ToString(); //业务序号(挂号序号) string GuaHaoId = (dtPaiDuiJSXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID pdjhxx.SHANGXIAWBZ = dtPaiDuiJSXX.Rows[0]["shangxiawbz"].ToString(); pdjhxx.KESHIDM = ksxx.KESHIDM; pdjhxx.YISHENGDM = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", ksxx.KESHIDM)).ToString(); if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*") { pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString(); } OutObject.PAIDUIJHMX.Add(pdjhxx); } } } } } else { string duiLieKSSql = "select distinct duilieid from ( select duilieid ,ruduisj as riqi from jh_paiduidl union all select duilieid ,chuduisj as riqi from jh_jieshudl ) where to_char(riqi,'yyyy-mm-dd') = '{0}'"; DataTable dtDuiLieXX = DBVisitor.ExecuteTable(string.Format(duiLieKSSql, DateTime.Now.ToString("yyyy-MM-dd"))); for (int i = 0; i < dtDuiLieXX.Rows.Count; i++) { //队列详细信息 string duiLieID = dtDuiLieXX.Rows[i]["duilieid"].ToString(); string paiDuiXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_paiduidl where duilieid = '{0}' and zhuangtaiid = '06' "; DataTable dtPaiDuiXX = DBVisitor.ExecuteTable(string.Format(paiDuiXXSql, duiLieID)); if (dtPaiDuiXX.Rows.Count > 0) { PAIDUIJHXX pdjhxx = new PAIDUIJHXX(); string duiliexx = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'"; DataTable duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID)); if (duiliexxtb.Rows.Count > 0)//就诊位置 { pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString(); } else { pdjhxx.SUOZAIZJ = ""; } pdjhxx.PAIDUIID = dtPaiDuiXX.Rows[0]["duilieid"].ToString(); //排队队列唯一编号 pdjhxx.DANGQIANHM = dtPaiDuiXX.Rows[0]["yewuxh"].ToString(); //业务序号(挂号序号) string GuaHaoId = (dtPaiDuiXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID pdjhxx.SHANGXIAWBZ = dtPaiDuiXX.Rows[0]["shangxiawbz"].ToString(); pdjhxx.KESHIDM = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.YISHENGDM = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString(); if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*") { pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString(); } OutObject.PAIDUIJHMX.Add(pdjhxx); } else { if (paiDuiJHLSJL == "0") { //结束队列信息 string paiDuiJSXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_jieshudl where duilieid = '{0}' "; DataTable dtPaiDuiJSXX = DBVisitor.ExecuteTable(string.Format(paiDuiJSXXSql, duiLieID)); if (dtPaiDuiJSXX.Rows.Count > 0) { PAIDUIJHXX pdjhxx = new PAIDUIJHXX(); string duiliexx = "select * from gy_weizhi a ,jh_duiliexx b where a.weizhiid=b.suozaizj and b.duilieid= '{0}'"; DataTable duiliexxtb = DBVisitor.ExecuteTable(string.Format(duiliexx, duiLieID)); if (duiliexxtb.Rows.Count > 0)//就诊位置 { pdjhxx.SUOZAIZJ = duiliexxtb.Rows[0]["bieming"].ToString(); } else { pdjhxx.SUOZAIZJ = ""; } pdjhxx.PAIDUIID = dtPaiDuiJSXX.Rows[0]["duilieid"].ToString(); //排队队列唯一编号 pdjhxx.DANGQIANHM = dtPaiDuiJSXX.Rows[0]["yewuxh"].ToString(); //业务序号(挂号序号) string GuaHaoId = (dtPaiDuiJSXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString(); //获取挂号ID pdjhxx.SHANGXIAWBZ = dtPaiDuiJSXX.Rows[0]["shangxiawbz"].ToString(); pdjhxx.KESHIDM = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.YISHENGDM = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString(); if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*") { pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString(); } OutObject.PAIDUIJHMX.Add(pdjhxx); } } } } } }
public override void ProcessMessage() { OutObject = new GUAHAOXXCX_OUT(); string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型 string jiuzhenKh = InObject.JIUZHENKH; //就诊卡号 string zhengjianLx = InObject.ZHENGJIANLX; //证件类型 string zhengjianHm = InObject.ZHENGJIANHM; //证件号码 string xingMing = InObject.XINGMING; //姓名 string riQi = InObject.RIQI; //日期 string guahaoBc = InObject.GUAHAOBC; //挂号班次 string keshiDm = InObject.KESHIDM; //科室代码 string yishengDm = InObject.YISHENGDM; //医生代码 string bingRenId = InObject.BINGRENID; //病人ID string yuanQuID = InObject.BASEINFO.FENYUANDM; //院区ID #region 基本入参判断 //就诊卡号 if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengjianHm)) { throw new Exception("就诊卡号获取失败,请重新尝试!"); } //日期 if (string.IsNullOrEmpty(riQi)) { throw new Exception("日期获取失败,请重新尝试!"); } //挂号班次 //if (string.IsNullOrEmpty(guahaoBc)) //{ // throw new Exception("挂号班次获取失败,请重新尝试!"); //} //科室代码 if (string.IsNullOrEmpty(keshiDm)) { keshiDm = "*"; } //医生代码 if (string.IsNullOrEmpty(yishengDm)) { yishengDm = "*"; } #endregion #region 基础信息查询语句 if (string.IsNullOrEmpty(bingRenId) && !string.IsNullOrEmpty(jiuzhenKh)) { bingRenId = DBVisitor.ExecuteScalar("select bingrenid from gy_bingrenxx where jiuzhenkh='" + jiuzhenKh + "' or shenfenzh = '" + zhengjianHm + "'").ToString(); } StringBuilder sbSql = new StringBuilder(); sbSql.Append(" select guahaoid ,guahaolb,guahaoks keshidm,guahaoksmc keshimc,guahaoys yishengdm,to_char(guahaorq,'yyyy-mm-dd') riqi, "); sbSql.Append(" decode(shangxiawbz,0,1,1,2) guahaobc,guahaoxh,nvl(yuyuebz,0) shifouyy,yuyueid from mz_guahao1 where nvl(zuofeibz,0) = 0 "); sbSql.Append(" and yuanquid ='" + yuanQuID + "' "); sbSql.Append(" and (bingrenid='" + bingRenId + "') "); sbSql.Append(" and (nvl(guahaoks,'*') = '" + keshiDm + "' or '*' = '" + keshiDm + "') and (nvl(guahaoys,'*') = '" + yishengDm + "' or '*' = '" + yishengDm + "') "); //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + sbSql.ToString(), messageId); if (!string.IsNullOrEmpty(riQi)) { sbSql.Append(" and to_char(guahaorq,'yyyy-mm-dd') = '" + riQi + "' "); } #endregion #region 基础信息拼装 DataTable dt = DBVisitor.ExecuteTable(sbSql.ToString()); if (dt.Rows.Count <= 0) { throw new Exception("未找到挂号记录!"); } else { for (int i = 0; i < dt.Rows.Count; i++) { GUAHAOXX ghxx = new GUAHAOXX(); ghxx.GUAHAOID = dt.Rows[i]["GUAHAOID"].ToString(); ghxx.GUAHAOLB = dt.Rows[i]["GUAHAOLB"].ToString(); ghxx.KESHIDM = dt.Rows[i]["KESHIDM"].ToString(); ghxx.KESHIMC = dt.Rows[i]["KESHIMC"].ToString(); ghxx.YISHENGDM = dt.Rows[i]["YISHENGDM"].ToString(); ghxx.RIQI = dt.Rows[i]["RIQI"].ToString(); ghxx.GUAHAOBC = dt.Rows[i]["GUAHAOBC"].ToString(); ghxx.GUAHAOXH = dt.Rows[i]["GUAHAOXH"].ToString(); ghxx.SHIFOUYY = dt.Rows[i]["SHIFOUYY"].ToString(); //获取医生姓名 if (!string.IsNullOrEmpty(ghxx.YISHENGDM)) { DataTable dtYs = DBVisitor.ExecuteTable("select xm from gy_zgxx where zgid ='" + ghxx.YISHENGDM + "' "); //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + ghxx.YISHENGDM + ":医生信息:" + "select xm from gy_zgxx where zgid ='" + ghxx.YISHENGDM + "' ", messageId); if (dtYs.Rows.Count > 0) { ghxx.YISHENGXM = dtYs.Rows[0]["XM"].ToString(); } } //诊间 就诊信息 DataTable dtJZ = DBVisitor.ExecuteTable("select to_char(a.jiuzhenrq,'yyyy-mm-dd hh24:mm:dd') jiuzhensj,b.weizhism weizhi,decode(a.jiuzhenzt,0,0,1) jiuzhenbs from zj_jiuzhenxx a, gy_keshi b where a.guahaoks = b.keshiid and a.guahaoid ='" + ghxx.GUAHAOID + "'"); //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + ghxx.YISHENGDM + ":诊间信息:" + "select to_char(a.jiuzhenrq,'yyyy-mm-dd hh24:mm:dd') jiuzhensj,b.weizhism weizhi,decode(a.jiuzhenzt,0,0,1) jiuzhenbs from zj_jiuzhenxx a, gy_keshi b where a.guahaoks = b.keshiid and a.guahaoid ='" + ghxx.GUAHAOID + "'", messageId); if (dt.Rows.Count > 0) { ghxx.JIUZHENSJ = dtJZ.Rows[0]["JIUZHENSJ"].ToString(); ghxx.JIUZHENDD = dtJZ.Rows[0]["WEIZHI"].ToString(); ghxx.JIUZHENBS = dtJZ.Rows[0]["JIUZHENBS"].ToString(); } //预约信息 if (!string.IsNullOrEmpty(ghxx.SHIFOUYY) && ghxx.SHIFOUYY != "0") { DataTable dtYY = DBVisitor.ExecuteTable(" select yuyuehao,yuyuely from mz_guahaoyy where yuyueid ='" + dt.Rows[i]["YUYUEID"].ToString() + "' "); //WcfCommon.writeLog(WcfCommon.LOGTYPE_SQLLOG, OutObject.GetType().Name.ToString(), "挂号信息查询:" + dt.Rows[i]["YUYUEID"].ToString() + ":预约信息:" + " select yuyuehao,yuyuely from mz_guahaoyy where yuyueid ='" + dt.Rows[i]["YUYUEID"].ToString() + "' ", messageId); if (dtYY.Rows.Count > 0) { ghxx.QUHAOMM = dtYY.Rows[0]["YUYUEHAO"].ToString(); ghxx.YUYUELY = dtYY.Rows[0]["YUYUELY"].ToString(); } } OutObject.GUAHAOXXLB.Add(ghxx); } } #endregion if (OutObject.GUAHAOXXLB.Count <= 0) { throw new Exception("未找到相关的挂号信息!"); } }
public override void ProcessMessage() { OutObject = new HUANZHEJHCX_OUT(); string BingRenID = InObject.BINGRENID; //病人编号不为空时,获取病人所在队列的信息 //获取指定队列号 //获取当前就诊号码 //获取病人队列号码 if (!string.IsNullOrEmpty(BingRenID)) { DataTable dt = DBVisitor.ExecuteTable(string.Format("select duilieid from jh_paiduidl where bingrenid={0} " + " union all select duilieid from jh_jieshudl where bingrenid={0} ", BingRenID)); if (dt.Rows.Count > 0) { for (int dl = 0; dl < dt.Rows.Count; dl++) { PAIDUIJHXX pdjhxx = new PAIDUIJHXX(); #region 取病人队列信息 string duiLieSql = "select duilieid,yewuxh,zhuangtaiid from jh_paiduidl where bingrenid = {0}"; DataTable dtDuiLie = DBVisitor.ExecuteTable(string.Format(duiLieSql, BingRenID)); if (dtDuiLie.Rows.Count > 0) { for (int i = 0; i < dtDuiLie.Rows.Count; i++) { pdjhxx.PAIDUIID = dtDuiLie.Rows[i]["duilieid"].ToString(); pdjhxx.BINGRENXH = dtDuiLie.Rows[i]["yewuxh"].ToString(); string ztxx = dtDuiLie.Rows[i]["zhuangtaiid"].ToString(); if (ztxx == "06") { pdjhxx.BINGRENZT = "就诊中"; } else if (ztxx == "02") { pdjhxx.BINGRENZT = "已过号"; } else { pdjhxx.BINGRENZT = "等待就诊"; } } } else { string jieShuDuiLieSql = "select duilieid,yewuxh,zhuangtaiid from jh_jieshudl where bingrenid = {0}"; DataTable jieShuDuiLie = DBVisitor.ExecuteTable(string.Format(jieShuDuiLieSql, BingRenID)); for (int i = 0; i < jieShuDuiLie.Rows.Count; i++) { pdjhxx.PAIDUIID = jieShuDuiLie.Rows[i]["duilieid"].ToString(); pdjhxx.BINGRENXH = jieShuDuiLie.Rows[i]["yewuxh"].ToString(); pdjhxx.BINGRENZT = "已就诊"; } } #endregion #region 取队列信息 string duiLieID = pdjhxx.PAIDUIID; string paiDuiXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_paiduidl where duilieid = '{0}' and zhuangtaiid = '06' "; DataTable dtPaiDuiXX = DBVisitor.ExecuteTable(string.Format(paiDuiXXSql, duiLieID)); if (dtPaiDuiXX.Rows.Count > 0) { pdjhxx.PAIDUIID = dtPaiDuiXX.Rows[0]["duilieid"].ToString(); pdjhxx.DANGQIANHM = dtPaiDuiXX.Rows[0]["yewuxh"].ToString(); string GuaHaoId = (dtPaiDuiXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString();//获取挂号ID pdjhxx.SHANGXIAWBZ = dtPaiDuiXX.Rows[0]["shangxiawbz"].ToString(); pdjhxx.KESHIDM = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.YISHENGDM = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString(); if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*") { pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString(); } } else { //结束队列信息 string paiDuiJSXXSql = "select distinct duilieid,yewuid,yewuxh,decode(shangxiawbz,0,1,1,2,shangxiawbz) as shangxiawbz from jh_jieshudl where duilieid = '{0}' "; DataTable dtPaiDuiJSXX = DBVisitor.ExecuteTable(string.Format(paiDuiJSXXSql, duiLieID)); if (dtPaiDuiJSXX.Rows.Count > 0) { pdjhxx.PAIDUIID = dtPaiDuiJSXX.Rows[0]["duilieid"].ToString(); pdjhxx.DANGQIANHM = dtPaiDuiJSXX.Rows[0]["yewuxh"].ToString(); string GuaHaoId = (dtPaiDuiJSXX.Rows[0]["yewuid"].ToString()).Split('|')[1].ToString();//获取挂号ID pdjhxx.SHANGXIAWBZ = dtPaiDuiJSXX.Rows[0]["shangxiawbz"].ToString(); pdjhxx.KESHIDM = DBVisitor.ExecuteScalar(string.Format("select guahaoks from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.YISHENGDM = DBVisitor.ExecuteScalar(string.Format("select guahaoys from mz_guahao1 where guahaoid = '{0}'", GuaHaoId)).ToString(); pdjhxx.KESHIMC = DBVisitor.ExecuteScalar(string.Format("select keshimc from v_gy_keshi where keshiid ='{0}'", pdjhxx.KESHIDM)).ToString(); if (!string.IsNullOrEmpty(pdjhxx.YISHENGDM) && pdjhxx.YISHENGDM != "*") { pdjhxx.YISHENGMC = DBVisitor.ExecuteScalar(string.Format("select zhigongxm from v_gy_zhigongxx where zhigongid = '{0}'", pdjhxx.YISHENGDM)).ToString(); } } } #endregion OutObject.HUANZHEJHMX.Add(pdjhxx); } } else { throw new Exception("未找到病人的排队信息!"); } } }
public override void ProcessMessage() { OutObject = new JIESHOUSZSQ_OUT(); string jiuzhenKh = InObject.JIUZHENKH; string jiuzhenkLx = InObject.JIUZHENKLX; int JIUZHENKCD = Convert.ToInt32(ConfigurationManager.AppSettings["JIUZHENKCD"]);//就诊卡默认长度 #region 基本入参判断 if (InObject.YEWULX == null || InObject.YEWULX == "") { throw new Exception(string.Format("业务类型不能为空!")); } if (InObject.BINGRENXM == null || InObject.BINGRENXM == "") { throw new Exception(string.Format("病人姓名不能为空!")); } if (InObject.BINGRENXB == null || InObject.BINGRENXB == "") { throw new Exception(string.Format("病人性别不能为空!")); } if (InObject.BINGRENCSRQ == null || InObject.BINGRENCSRQ == "") { throw new Exception(string.Format("病人出生日期不能为空!")); } if (InObject.BINGRENSFZH == null || InObject.BINGRENSFZH == "") { throw new Exception(string.Format("病人身份证号不能为空!")); } if (InObject.BINGRENLXDH == null || InObject.BINGRENLXDH == "") { throw new Exception(string.Format("病人联系电话不能为空!")); } if (InObject.BINGRENLXDZ == null || InObject.BINGRENLXDZ == "") { throw new Exception(string.Format("病人联系地址不能为空!")); } if (InObject.SHENQINGJGDM == null || InObject.SHENQINGJGDM == "") { throw new Exception(string.Format("申请机构代码不能为空!")); } if (InObject.SHENQINGJGMC == null || InObject.SHENQINGJGMC == "") { throw new Exception(string.Format("申请机构名称不能为空!")); } if (InObject.SHENQINGYS == null || InObject.SHENQINGYS == "") { throw new Exception(string.Format("申请医生不能为空!")); } if (InObject.SHENQINGYSDH == null || InObject.SHENQINGYSDH == "") { throw new Exception(string.Format("申请医生电话不能为空!")); } if (InObject.SHENQINGRQ == null || InObject.SHENQINGRQ == "") { throw new Exception(string.Format("申请日期不能为空!")); } if (InObject.BINQINGMS == null || InObject.BINQINGMS == "") { throw new Exception(string.Format("病情描述不能为空!")); } if (InObject.ZHUANZHENZYSX == null || InObject.ZHUANZHENZYSX == "") { throw new Exception(string.Format("转诊注意事项不能为空!")); } #endregion if (JIUZHENKCD > 0) { if (jiuzhenKh.Length < JIUZHENKCD) { jiuzhenKh = jiuzhenKh.PadLeft(JIUZHENKCD, '0'); } } //转诊申请单号 var zzsqdbh = DBVisitor.ExecuteScalar(SqlLoad.GetFormat("select seq_sxzz_zzsqd.nextval zzsqd from dual")).ToString(); var tran = DBVisitor.Connection.BeginTransaction(); try { #region//申请单信息 DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00007, zzsqdbh, InObject.JIUZHENKLX, InObject.JIUZHENKH, InObject.YEWULX, InObject.BINGRENXM, InObject.BINGRENXB, InObject.BINGRENCSRQ, InObject.BINGRENNL, InObject.BINGRENSFZH, InObject.BINGRENLXDH, InObject.BINGRENLXDZ, InObject.BINGRENFYLB, InObject.SHENQINGJGDM, InObject.SHENQINGJGMC, InObject.SHENQINGJGLXDH, InObject.SHENQINGYS, InObject.SHENQINGYSDH, InObject.SHENQINGRQ, InObject.ZHUANZHENYY, InObject.BINQINGMS, InObject.ZHUANZHENZYSX, InObject.ZHUANZHENDH, InObject.SZJSLXR, InObject.SZJSLXRDH, InObject.ZHUANRUKSDM, InObject.ZHUANRUKSMC), tran); //申请单状态 //DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00077, zzsqdbh), tran); #endregion #region //门诊处方信息 foreach (var item in InObject.CHUFANGMX) { int i = 0; if (item.CHUFANGXXMX.Count > 0) { if (string.IsNullOrEmpty(item.CHUFANGID)) { throw new Exception(string.Format("处方ID不能为空!")); } /*zzsqdh,cfid,cfly,cflx,kfrq,bz*/ DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00008, zzsqdbh, item.CHUFANGID, item.CHUFANGLY, item.CHUFANGLX, item.KAIFANGRQ, item.BEIZHU), tran); foreach (var itemmx in item.CHUFANGXXMX) { if (string.IsNullOrEmpty(itemmx.XIANGMUMC)) { throw new Exception(string.Format("药品项目名称不能为空!")); } //门诊处方明细 /*xh,cfid,fylx,xmmc,yptym,ypspm, * cdmc,ypgg,dw,sl,pl,gytj, * yyts,dcyl,yldw,psjg,zcyts, * fyrq*/ ++i; DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00009, i, item.CHUFANGID, itemmx.FEIYONGLX, itemmx.XIANGMUMC, itemmx.YAOPINTYM, itemmx.YAOPINSPM, itemmx.CHANGDIMC, itemmx.YAOPINGG, itemmx.DANGWEI, itemmx.SHULIANG, itemmx.PINLV, itemmx.GEIYAOTJ, itemmx.YONGYAOTS, itemmx.DANCIYL, itemmx.YONGLIANGDW, itemmx.PISHIJG, itemmx.ZHONGCHAOYTS, itemmx.FAYAORQ, zzsqdbh), tran); } } } #endregion #region//检验处方信息 foreach (var item in InObject.JIANYANMX) { int i = 0; if (item.JIANYANXXMX.Count > 0) { if (string.IsNullOrEmpty(item.JIANYANID)) { throw new Exception(string.Format("检验ID不能为空!")); } /*zzsqdh,jyid,xmmc,kdrq,bz,jyjg, * jcff,wjzbz,jczd,jcrq,yblxmc,ybh, * shys,jyrq*/ DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00010, zzsqdbh, item.JIANYANID, item.XIANGMUMC, item.KAIDANRQ, item.BEIZHU, item.JIANYANJG, item.JIANCEFF, item.WEIJIZBZ, item.JIANCHAZD, item.JIANCHARQ, item.YANGBENLXMC, item.YANGBENGH, item.SHENGHEYS, item.JIANYANRQ), tran); foreach (var itemmx in item.JIANYANXXMX) { if (string.IsNullOrEmpty(itemmx.XIANGMUMC)) { throw new Exception(string.Format("检验项目名称不能为空!")); } //检验处方明细 /*xh,jyid,xmmc,jyz,dyxh,dx, * fw,dw*/ ++i; DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00011, i, item.JIANYANID, itemmx.XIANGMUMC, itemmx.JIANYANZ, itemmx.DAYINXH, itemmx.DINGXING, itemmx.FANWEI, itemmx.DANWEI, zzsqdbh), tran); } } } #endregion #region 检查信息 foreach (var item in InObject.JIANCHAMX) { /*zzsqdh,jcid,jclxmc,kdrq,xmmc,yxsj, * zdjg,bz,bgdz,kdys*/ if (string.IsNullOrEmpty(item.JIANCHAID)) { throw new Exception(string.Format("检查ID不能为空!")); } DBVisitor.ExecuteNonQuery(SqlLoad.GetFormat(SQ.HIS00012, zzsqdbh, item.JIANCHAID, item.JIANCHALX, item.KAIDANRQ, item.XIANGMUMC, item.YIXIANGSJ, item.ZHENDUAMJG, item.BEIZHU, item.BAOGAODZ, item.KAIDANYS), tran); } #endregion #region//住院医嘱信息 foreach (var item in InObject.ZHUYUANYZMX) { /*zzsqdh,yzid,yzlx,yzmc,yzzh,kssj, * jssj,ycsl,yldw,zxrq,pl,yzlb, * kdys,fyzid,psjg,gytj*/ if (string.IsNullOrEmpty(item.YIZHUXH)) { throw new Exception(string.Format("医嘱序号不能为空!")); } string sql = SqlLoad.GetFormat(SQ.HIS00013, zzsqdbh, item.YIZHUXH, item.YIZHULX, item.YIZHUMC, item.YIZHUZH, item.KAISHISJ, item.TINGZHISJ, item.YICISL, item.YONGLIANGDW, item.ZHIXINGRQ, item.PINGLV, item.YIZHULB, item.KAIDANYS, item.FUYIZXH, item.PISHIJG, item.GEIYAOTJ); DBVisitor.ExecuteNonQuery(sql, tran); } #endregion tran.Commit(); OutObject = new JIESHOUSZSQ_OUT(); OutObject.ZHUANZHENDH = zzsqdbh; } catch (Exception ex) { tran.Rollback(); throw ex; } }
public override void ProcessMessage() { OutObject = new ZHUYUANFYXX_OUT(); string bingRenZYID = InObject.BINGRENZYID; //病人id string zaiYuanZT = InObject.ZAIYUANZT; //在院状态 if (string.IsNullOrEmpty(bingRenZYID)) { throw new Exception("病人住院ID不能为空!"); } StringBuilder zhuYuanBRXXSQL = new StringBuilder(); zhuYuanBRXXSQL.Append(" select * from zy_bingrenxx where bingrenZYid = '{0}' "); if (!string.IsNullOrEmpty(zaiYuanZT)) { if (zaiYuanZT == "0") { zhuYuanBRXXSQL.Append(" and zaiyuanzt = 0 "); } else { zhuYuanBRXXSQL.Append(" and zaiyuanzt != 0 "); } } zhuYuanBRXXSQL.Append(" order by ruyuanrq desc "); DataTable dtZhuYuanBRXX = DBVisitor.ExecuteTable(string.Format(zhuYuanBRXXSQL.ToString(), bingRenZYID)); if (dtZhuYuanBRXX.Rows.Count <= 0) { throw new Exception("未找到病人住院信息!"); } //string bingRenZYID = dtZhuYuanBRXX.Rows[0]["bingrenzyid"].ToString();//病人住院id OutObject.BINGRENZYID = bingRenZYID; #region 结算信息 //基本费用信息 string sqlZhuYuanJSXX = " select feiyonghj,zifeije,zilije,zifuje from zy_jiesuan1 where jiesuanid in (select jiesuanid from zy_jiesuan1 where bingrenzyid = '{0}' ) "; //预交款信息 string sqlZhuYanYJK = " select trim(to_char(nvl(sum(jiaokuanje),0),'999999999.99')) from zy_yujiaokuan where bingrenzyid = '{0}' "; DataTable dtZhuYuanJSXX = DBVisitor.ExecuteTable(string.Format(sqlZhuYuanJSXX, bingRenZYID)); if (dtZhuYuanJSXX.Rows.Count > 0) { OutObject.JIESUANJG.FEIYONGZE = dtZhuYuanJSXX.Rows[0]["feiyonghj"].ToString(); //费用合计 OutObject.JIESUANJG.ZILIJE = dtZhuYuanJSXX.Rows[0]["zilije"].ToString(); //自理金额 OutObject.JIESUANJG.ZIFUJE = dtZhuYuanJSXX.Rows[0]["zifuje"].ToString(); //自负金额 OutObject.JIESUANJG.ZIFEIJE = dtZhuYuanJSXX.Rows[0]["zifeije"].ToString(); //自费金额 } else { OutObject.JIESUANJG.FEIYONGZE = "0.00"; //费用合计 OutObject.JIESUANJG.ZILIJE = "0.00"; //自理金额 OutObject.JIESUANJG.ZIFUJE = "0.00"; //自负金额 OutObject.JIESUANJG.ZIFEIJE = "0.00"; //自费金额 } OutObject.JIESUANJG.YUJIAOKZE = DBVisitor.ExecuteScalar(string.Format(sqlZhuYanYJK, bingRenZYID)).ToString();//住院预交款总额 #endregion #region 详细结算结果 #endregion #region 费用支付明细 #endregion #region 费用归并 string sqlFeiYongGB = "select trim(to_Char(sum(a.jiesuanjia * a.shuliang),'999999999999999999.99')) je , b.hesuanxmid as xiangmugl ,b.hesuanxmmc as xiangmuglmc " + " FROM ZY_FEIYONG1 a,gy_hesuanxm b,zy_bingrenxx c " + " WHERE b.hesuanxmid(+)=a.hesuanxm and c.BINGRENZYID = a.bingrenzyid " + " and a.shuliang > 0 and a.feiyongid not in (select yuanfeiyid from zy_feiyong1 where bingrenzyid = '{0}' and shuliang < 0) " + " and c.bingrenzyid = '{0}' group by b.hesuanxmid,b.hesuanxmmc order by b.hesuanxmid "; DataTable dtFeiYongGB = DBVisitor.ExecuteTable(string.Format(sqlFeiYongGB, bingRenZYID));//费用归并信息检索 for (int i = 0; i < dtFeiYongGB.Rows.Count; i++) { FEIYONGGLXX fyglxx = new FEIYONGGLXX(); fyglxx.JINE = dtFeiYongGB.Rows[i]["je"].ToString(); fyglxx.XIANGMUGL = dtFeiYongGB.Rows[i]["xiangmugl"].ToString(); fyglxx.XIANGMUGLMC = dtFeiYongGB.Rows[i]["xiangmuglmc"].ToString(); OutObject.FEIYONGGLMX.Add(fyglxx); } #endregion #region 预交款信息 string sqlYuJiaoKuan = "select to_char(a.jiaokuanrq,'yyyy-mm-dd') riqi,a.jiaokuanje,b.ZHIFUMC from zy_yujiaokuan a,gy_zhifufs b where a.zhifufs = b.zhifufsid and bingrenzyid = {0} "; DataTable dtYuJiaoKuan = DBVisitor.ExecuteTable(string.Format(sqlYuJiaoKuan, bingRenZYID)); for (int i = 0; i < dtYuJiaoKuan.Rows.Count; i++) { YUJIAOKXX yjkxx = new YUJIAOKXX(); yjkxx.JIAOKUANRQ = dtYuJiaoKuan.Rows[i]["riqi"].ToString(); yjkxx.JIAOKUANJE = dtYuJiaoKuan.Rows[i]["jiaokuanje"].ToString(); yjkxx.ZHIFULX = dtYuJiaoKuan.Rows[i]["zhifumc"].ToString(); OutObject.YUJIAOKMX.Add(yjkxx); } #endregion }
public override void ProcessMessage() { //modify by 沈报 --控制医院的参数 string KZYY = System.Configuration.ConfigurationManager.AppSettings["YYKZ"]; OutObject = new ZHUYUANRYXX_OUT(); string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型 string jiuzhenKh = InObject.JIUZHENKH; //就诊卡号 string bingquDm = InObject.BINGQUDM; //病区代码 string chuangweiH = InObject.CHUANGWEIH; //床位号 string bingrenLb = InObject.BINGRENLB; //病人类别 string yibaokLx = InObject.YIBAOKLX; //医保卡类型 string yibaokMm = InObject.YIBAOKMM; //医保卡密码 string yibaokXx = InObject.YIBAOKXX; //医保卡信息 string yiliaoLb = InObject.YILIAOLB; //医疗类别 string jiesuanLb = InObject.JIESUANLB; //结算类别 string jiuzhenRq = InObject.JIUZHENRQ; //就诊日期 string qianfeiKz = InObject.QIANFEIKZ; //欠费控制 string zhengjianLx = InObject.ZHENGJIANLX; //诊间类型 string zhengjianHm = InObject.ZHENGJIANHM; //证件号码 string zaiyuanZt = InObject.ZAIYUANZT; //在院状态 string zhuyuanHao = InObject.ZHUYUANHAO; //住院号 string yuanQuId = InObject.BASEINFO.FENYUANDM; //分院代码 #region 基本入参判断 if (string.IsNullOrEmpty(jiuzhenKh) && string.IsNullOrEmpty(zhengjianHm) && string.IsNullOrEmpty(zhuyuanHao)) { throw new Exception("就诊卡号,住院号和证件号码不能同时为空!"); } #endregion StringBuilder sqlZYBRXX; if (KZYY == "000001") { sqlZYBRXX = new StringBuilder("select a.jiuzhenkh,a.feiyonglb bingrenlb,a.feiyongxz bingrenxz,a.yibaokh, ") .Append("a.gerenbh,a.zhuyuanhao binglibh,a.xingming,a.xingbie,a.minzu,to_char(a.chushengrq,'yyyy-mm-dd') chushengrq, ") .Append("'1' zhengjianlx,a.shenfenzh zhengjianhm,'' danweilx,a.danweiyb danweibh, ") .Append("a.gongzuodw danweimc,a.jiatingdz jiatingzz,''renyuanlb,a.danbaoje dangnianzhye, ") .Append("a.danbaoje linianzhye,a.teshubzbz,a.teshubzbm teshubzspbh,a.yibaobrxx, ") .Append("'' tishixx,a.yibaoyllb teshudylb,''qianfeije,''hisbrxx,a.lianxirdh lianxidh, ") .Append("a.shenhebz qianyuebz,a.dangqianbq,a.dangqianks,a.zhuzhiys zhuzhiyisheng, ") .Append("a.dangqiancw chuangweih,to_char(a.ruyuanrq,'yyyy-mm-dd')ruyuanrq, ") .Append("to_char(a.chuyuanrq,'yyyy-mm-dd') chuyuanrq,a.bingrenid,a.zaiyuanzt, ") .Append("a.dangqianbqmc bingqumc,a.binganhao binganh ,b.xingzhimc bingrenxzmc ") //modify by xiaobao 2017/3/22 加了个费用总额的字段 .Append(" ,a.ruyuanzddm, a.ruyuanzdmc ,a.bingrenzyid ,a.zhuyuanhao ,a.yuanquid,c.FEIYONGZE ") .Append("from v_zy_bingrenxx a ,gy_feiyongxz b ,V_BINGRENFYZE c where a.feiyongxz = b.xingzhiid and a.bingrenzyid=c.bingrenzyid and ((a.jiuzhenkh = '{0}' or a.yibaokh = '{0}') or (a.shenfenzh = '{1}') or a.zhuyuanhao = '{2}') and a.yuanquid = '{3}'"); } else { sqlZYBRXX = new StringBuilder("select a.jiuzhenkh,a.feiyonglb bingrenlb,a.feiyongxz bingrenxz,a.yibaokh, ") .Append("a.gerenbh,a.zhuyuanhao binglibh,a.xingming,a.xingbie,a.minzu,to_char(a.chushengrq,'yyyy-mm-dd') chushengrq, ") .Append("'1' zhengjianlx,a.shenfenzh zhengjianhm,'' danweilx,a.danweiyb danweibh, ") .Append("a.gongzuodw danweimc,a.jiatingdz jiatingzz,''renyuanlb,a.danbaoje dangnianzhye, ") .Append("a.danbaoje linianzhye,a.teshubzbz,a.teshubzbm teshubzspbh,a.yibaobrxx, ") .Append("'' tishixx,a.yibaoyllb teshudylb,''qianfeije,''hisbrxx,a.lianxirdh lianxidh, ") .Append("a.shenhebz qianyuebz,a.dangqianbq,a.dangqianks,a.zhuzhiys zhuzhiyisheng, ") .Append("a.dangqiancw chuangweih,to_char(a.ruyuanrq,'yyyy-mm-dd')ruyuanrq, ") .Append("to_char(a.chuyuanrq,'yyyy-mm-dd') chuyuanrq,a.bingrenid,a.zaiyuanzt, ") .Append("a.dangqianbqmc bingqumc,a.binganhao binganh ,b.xingzhimc bingrenxzmc ") .Append(" ,a.ruyuanzddm, a.ruyuanzdmc ,a.bingrenzyid ,a.zhuyuanhao ,a.yuanquid ") .Append("from v_zy_bingrenxx a ,gy_feiyongxz b where a.feiyongxz = b.xingzhiid and ((a.jiuzhenkh = '{0}' or a.yibaokh = '{0}') or (a.shenfenzh = '{1}') or a.zhuyuanhao = '{2}') and a.yuanquid = '{3}'"); } if (!string.IsNullOrEmpty(zaiyuanZt) && zaiyuanZt == "0") { sqlZYBRXX.Append(" and zaiyuanzt = 0 "); } else if (!string.IsNullOrEmpty(zaiyuanZt) && zaiyuanZt == "1") { sqlZYBRXX.Append(" and zaiyuanzt != 0 "); } DataTable dtZYBRXX = DBVisitor.ExecuteTable(string.Format(sqlZYBRXX.ToString(), jiuzhenKh, zhengjianHm, zhuyuanHao, yuanQuId)); if (dtZYBRXX.Rows.Count <= 0) { if (!string.IsNullOrEmpty(zaiyuanZt) && zaiyuanZt == "0") { throw new Exception("未找到在院病人信息!"); } throw new Exception("未找到相关住院病人信息!"); } else { for (int i = 0; i < dtZYBRXX.Rows.Count; i++) { #region 拼装住院人员信息 ZHUYUANXX zyxx = new ZHUYUANXX(); zyxx.JIUZHENKH = dtZYBRXX.Rows[i]["JIUZHENKH"].ToString(); //就诊卡号 zyxx.BINGRENLB = dtZYBRXX.Rows[i]["BINGRENLB"].ToString(); //病人类别 zyxx.BINGRENXZ = dtZYBRXX.Rows[i]["BINGRENXZ"].ToString(); //病人性质 zyxx.YIBAOKH = dtZYBRXX.Rows[i]["YIBAOKH"].ToString(); //医保卡号 zyxx.GERENBH = dtZYBRXX.Rows[i]["GERENBH"].ToString(); //个人编号 zyxx.BINGLIBH = dtZYBRXX.Rows[i]["BINGLIBH"].ToString(); //病历本号 zyxx.XINGMING = dtZYBRXX.Rows[i]["XINGMING"].ToString(); //姓名 zyxx.XINGBIE = dtZYBRXX.Rows[i]["XINGBIE"].ToString(); //性别 zyxx.MINZU = dtZYBRXX.Rows[i]["MINZU"].ToString(); //民族 zyxx.CHUSHENGRQ = dtZYBRXX.Rows[i]["CHUSHENGRQ"].ToString(); //出生日期 zyxx.ZHENGJIANLX = dtZYBRXX.Rows[i]["ZHENGJIANLX"].ToString(); //证件类型 zyxx.ZHENGJIANHM = dtZYBRXX.Rows[i]["ZHENGJIANHM"].ToString(); //证件号码 zyxx.DANWEILX = dtZYBRXX.Rows[i]["DANWEILX"].ToString(); //单位类型 zyxx.DANWEIBH = dtZYBRXX.Rows[i]["DANWEIBH"].ToString(); //单位编号 zyxx.DANWEIMC = dtZYBRXX.Rows[i]["DANWEIMC"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //单位名称 zyxx.JIATINGZZ = dtZYBRXX.Rows[i]["JIATINGZZ"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //家庭地址 zyxx.RENYUANLB = dtZYBRXX.Rows[i]["RENYUANLB"].ToString(); //人员类别 zyxx.DANGNIANZHYE = dtZYBRXX.Rows[i]["DANGNIANZHYE"].ToString(); //当年帐户余额 zyxx.LINIANZHYE = dtZYBRXX.Rows[i]["LINIANZHYE"].ToString(); //历年帐户余额 zyxx.TESHUBZBZ = dtZYBRXX.Rows[i]["TESHUBZBZ"].ToString(); //特殊病种标志 zyxx.TESHUBZSPBH = dtZYBRXX.Rows[i]["TESHUBZSPBH"].ToString(); //特殊病种审批编号 zyxx.YIBAOBRXX = dtZYBRXX.Rows[i]["YIBAOBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //医保病人信息 zyxx.TISHIXX = dtZYBRXX.Rows[i]["TISHIXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //提示信息 //zyxx.DAIYULB = dtZYBRXX.Rows[i]["DAIYULB"].ToString();//待遇类别 //zyxx.CANBAOXZDM = dtZYBRXX.Rows[i]["CANBAOXZDM"].ToString();//参保行政代码 zyxx.TESHUDYLB = dtZYBRXX.Rows[i]["TESHUDYLB"].ToString(); //特殊待遇类别 zyxx.QIANFEIJE = dtZYBRXX.Rows[i]["QIANFEIJE"].ToString(); //欠费金额 zyxx.HISBRXX = dtZYBRXX.Rows[i]["HISBRXX"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //HIS病人信息 zyxx.LIANXIDH = dtZYBRXX.Rows[i]["LIANXIDH"].ToString(); //联系电话 zyxx.QIANYUEBZ = dtZYBRXX.Rows[i]["QIANYUEBZ"].ToString(); //签约标志 zyxx.DANGQIANBQ = dtZYBRXX.Rows[i]["DANGQIANBQ"].ToString(); //当前病区 zyxx.DANGQIANKS = dtZYBRXX.Rows[i]["DANGQIANKS"].ToString(); //当前科室 zyxx.ZHUZHIYISHENG = dtZYBRXX.Rows[i]["ZHUZHIYISHENG"].ToString(); //主治医生 zyxx.CHUANGWEIH = dtZYBRXX.Rows[i]["CHUANGWEIH"].ToString(); //床位号 zyxx.RUYUANRQ = dtZYBRXX.Rows[i]["RUYUANRQ"].ToString(); //入院日期 zyxx.CHUYUANRQ = dtZYBRXX.Rows[i]["CHUYUANRQ"].ToString(); //出院日期 zyxx.BINGRENID = dtZYBRXX.Rows[i]["BINGRENID"].ToString(); //病人唯一号 zyxx.ZAIYUANZT = dtZYBRXX.Rows[i]["ZAIYUANZT"].ToString(); //在院状态 zyxx.BINGQUMC = dtZYBRXX.Rows[i]["BINGQUMC"].ToString().Replace("<", "(").Replace(">", ")").Replace("&", "|"); //病区名称 zyxx.BINGANH = dtZYBRXX.Rows[i]["BINGANH"].ToString(); //病案号 zyxx.BINGRENXZMC = dtZYBRXX.Rows[i]["BINGRENXZMC"].ToString(); //病人性质名称 zyxx.BINGRENZYID = dtZYBRXX.Rows[i]["BINGRENZYID"].ToString(); //病人住院id zyxx.ZHUYUANHAO = dtZYBRXX.Rows[i]["zhuyuanhao"].ToString(); //住院号 zyxx.YUANQUID = dtZYBRXX.Rows[i]["yuanquid"].ToString(); //院区id if (KZYY == "000001") { zyxx.FEIYONGZE = dtZYBRXX.Rows[i]["FEIYONGZE"].ToString();//住院费用总额; } OutObject.ZHUYUANRYMX.Add(zyxx); #endregion #region 特殊病种信息 if (zyxx.TESHUBZBZ == "1") { BINGZHONGXX bzxx = new BINGZHONGXX(); bzxx.JIBINGDM = dtZYBRXX.Rows[i]["ruyuanzddm"].ToString(); //疾病代码 bzxx.JIBINGMC = dtZYBRXX.Rows[i]["ruyuanzdmc"].ToString(); //疾病名称 string sqlICD = "select ICD10 AS ICD from gy_jibingdm where zhuyuansy =1 and zuofeibz = 0 and jibingid = '{0}' "; bzxx.JIBINGICD = (string)DBVisitor.ExecuteScalar(string.Format(sqlICD, bzxx.JIBINGDM)); OutObject.TESHUBZXX.Add(bzxx); } #endregion } } }
public override void ProcessMessage() { this.OutObject = new GUAHAOCL_OUT(); string jiuzhenkLx = InObject.JIUZHENKLX; //就诊卡类型 string jiuzhenKh = InObject.JIUZHENKH; //就诊卡号 string bingrenLb = InObject.BINGRENLB; //病人类别 "BINGRENLB"); string bingrenXz = InObject.BINGRENXZ; // "BINGRENXZ"); string yibaokLx = InObject.YIBAOKLX; // "YIBAOKLX"); string yibaokMm = InObject.YIBAOKMM; // "YIBAOKMM"); string yibaoXx = InObject.YIBAOKXX; // "YIBAOKXX"); string yibaobrXx = InObject.YIBAOBRXX; // "YIBAOBRXX"); string yiliaoLb = InObject.YILIAOLB; // "YILIAOLB"); string jiesuanLb = InObject.JIESUANLB; // "JIESUANLB"); string yizhoupbId = InObject.YIZHOUPBID; // "YIZHOUPBID"); string dangtianpbId = InObject.DANGTIANPBID; // "DANGTIANPBID"); string riQi = InObject.RIQI; // "RIQI"); string guahaoBc = InObject.GUAHAOBC; // "GUAHAOBC"); string guahaoLb = InObject.GUAHAOLB; // "GUAHAOLB"); string keshiDm = InObject.KESHIDM; // "KESHIDM"); string yishengDm = InObject.YISHENGDM; // "YISHENGDM"); string guahaoXh = InObject.GUAHAOXH; // "GUAHAOXH"); string guahaoId = InObject.GUAHAOID; // "GUAHAOID"); string daishouFy = InObject.DAISHOUFY; // "DAISHOUFY"); string yuyueLy = InObject.YUYUELY; // "YUYUELY"); string binglibH = InObject.BINGLIBH; // "BINGLIBH"); string hisbrXx = InObject.HISBRXX; // "HISBRXX"); string jiesuanId = InObject.JIESUANID; // "JIESUANID"); string caozuoyDm = InObject.BASEINFO.CAOZUOYDM; // "CAOZUOYDM"); string caozuoyXm = InObject.BASEINFO.CAOZUOYXM; // "CAOZUOYXM"); string caozuoRq = InObject.BASEINFO.CAOZUORQ; // "CAOZUORQ"); string fenyuanDm = InObject.BASEINFO.FENYUANDM; // "FENYUANDM"); string jiaoyiLsh = InObject.BASEINFO.ZHONGDUANLSH; // "ZHONGDUANLSH");//终端流水号即交易流水号?? #region 基本入参判断 if (string.IsNullOrEmpty(caozuoRq)) { caozuoRq = DateTime.Now.ToString("yyyy-MM-dd"); } if (string.IsNullOrEmpty(jiuzhenKh)) { throw new Exception("就诊卡号获取失败!"); } if (string.IsNullOrEmpty(dangtianpbId)) { throw new Exception("挂号排班编号获取失败!"); } if (string.IsNullOrEmpty(guahaoBc)) { throw new Exception("挂号班次获取失败!"); } if (string.IsNullOrEmpty(daishouFy)) { daishouFy = "0"; } #endregion if (daishouFy == "0") { if (InObject.ZHIFUMX.Count <= 0) { throw new Exception("支付明细不能为空!"); } if (string.IsNullOrEmpty(InObject.ZHIFUMX[0].ZHIFULX)) { throw new Exception("支付类型不能为空!"); } if (string.IsNullOrEmpty(InObject.ZHIFUMX[0].ZHIFUJE)) { throw new Exception("支付金额不能为空!"); } if (string.IsNullOrEmpty(InObject.ZHIFUMX[0].YINHANGKH)) { throw new Exception("支付帐号不能为空!"); } if (InObject.ZHIFUMX[0].ZHIFULX != "7") { throw new Exception("暂时不支持该支付类型!"); } string ZHIFFS = "1"; switch (InObject.ZHIFUMX[0].ZHIFULX) { case "7": ZHIFFS = "19"; break; default: ZHIFFS = "1"; break; } string brxxSql = "select bingrenid from gy_bingrenxx where jiuzhenkh='" + jiuzhenKh + "'"; string bingrenId = DBVisitor.ExecuteScalar(brxxSql).ToString(); string jiaoyiMsg = bingrenId + "|" + dangtianpbId + "|" + caozuoyDm + "|" + caozuoyXm + "|" + (guahaoBc == "1" ? "0" : "1") + "|" + caozuoRq + "|" + jiaoyiLsh + "|" + jiuzhenKh + "|" + "1" + "|" + string.Empty + "|" + string.Empty + "|" + ZHIFFS + "|"; //挂号支付------------------------------------------------------------------------------------------- OracleParameter[] paramJiaoYi = new OracleParameter[3]; paramJiaoYi[0] = new OracleParameter("PRM_MSG", OracleType.VarChar); paramJiaoYi[0].Value = jiaoyiMsg; paramJiaoYi[0].Direction = ParameterDirection.Input; paramJiaoYi[1] = new OracleParameter("PRM_APPCODE", OracleType.Number); paramJiaoYi[1].Value = 0; paramJiaoYi[1].Direction = ParameterDirection.Output; paramJiaoYi[2] = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar); paramJiaoYi[2].Value = null; paramJiaoYi[2].Size = 2000; paramJiaoYi[2].Direction = ParameterDirection.Output; log.InfoFormat("{0}", "执行存储过程:PKG_GY_YINYIJK.PRC_GUAHAOZF \r\nPRM_MSG:" + jiaoyiMsg + "\r\n"); string returnValue = string.Empty; DbTransaction transaction = null; DbConnection conn = DBVisitor.Connection; try { transaction = conn.BeginTransaction(); DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_GUAHAOZF", paramJiaoYi, transaction); } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); conn.Close(); } throw new Exception(ex.Message); } returnValue = paramJiaoYi[1].Value.ToString(); string returnMsg = paramJiaoYi[2].Value.ToString(); // LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "挂号支付存储过程返回值:" + returnValue + "|" + returnMsg); if (returnValue == "1")//交易成功 { try { #region 诊疗费用信息 string ZhenLiaoXMSql = "select * from gy_shoufeixm where shoufeixmid in " + "( select zhenliaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )"; DataTable dtZhenLiaoMX = DBVisitor.ExecuteTable(string.Format(ZhenLiaoXMSql, dangtianpbId)); for (int i = 0; i < dtZhenLiaoMX.Rows.Count; i++) { FEIYONGXX fyxx = new FEIYONGXX(); fyxx.XIANGMUXH = dtZhenLiaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID fyxx.XIANGMUMC = dtZhenLiaoMX.Rows[i]["shoufeixmmc"].ToString(); fyxx.XIANGMUGL = dtZhenLiaoMX.Rows[i]["xiangmulx"].ToString(); fyxx.DANJIA = dtZhenLiaoMX.Rows[i]["danjia1"].ToString();// fyxx.SHULIANG = "1"; fyxx.JINE = dtZhenLiaoMX.Rows[i]["danjia1"].ToString(); OutObject.FEIYONGMX.Add(fyxx); OutObject.ZHENLIAOFEI = fyxx.DANJIA; } #endregion #region 挂号费用信息 string GuaHaoXMSql = "select * from gy_shoufeixm where shoufeixmid in " + "( select guahaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )"; DataTable dtGuaHaoMX = DBVisitor.ExecuteTable(string.Format(GuaHaoXMSql, dangtianpbId)); for (int i = 0; i < dtGuaHaoMX.Rows.Count; i++) { FEIYONGXX fyxx = new FEIYONGXX(); fyxx.XIANGMUXH = dtGuaHaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID fyxx.XIANGMUMC = dtGuaHaoMX.Rows[i]["shoufeixmmc"].ToString(); fyxx.XIANGMUGL = dtGuaHaoMX.Rows[i]["xiangmulx"].ToString(); fyxx.DANJIA = dtGuaHaoMX.Rows[i]["danjia1"].ToString();// fyxx.SHULIANG = "1"; fyxx.JINE = dtGuaHaoMX.Rows[i]["danjia1"].ToString(); OutObject.FEIYONGMX.Add(fyxx); OutObject.GUAHAOFEI = fyxx.DANJIA; } #endregion double fyze = 0.0; for (int i = 0; i < OutObject.FEIYONGMX.Count; i++) { fyze += Convert.ToDouble(OutObject.FEIYONGMX[i].JINE); } if (fyze != double.Parse(InObject.ZHIFUMX[0].ZHIFUJE)) { throw new Exception("支付金额:" + InObject.ZHIFUMX[0].ZHIFUJE + "与实际金额:" + fyze + "不符!"); } string[] list = returnMsg.Split('|'); OutObject.GUAHAOID = list[8];//挂号ID OutObject.GUAHAOXH = list[0]; OutObject.JIUZHENSJ = list[2]; OutObject.JIUZHENDD = list[1]; OutObject.YIJIID = list[5]; OutObject.JIESUANJG.FEIYONGZE = (Convert.ToDouble(list[6]) + Convert.ToDouble(list[7])).ToString(); // string[] yiJiSpl = list[5].ToString().Split('^'); if (ConfigurationManager.AppSettings["XianShiHZSJ"] == "1") //显示候诊时间 { OutObject.HOUZHENSJ = getJiuZhenSJD(yishengDm, keshiDm, list[0], "", Convert.ToInt32((guahaoBc == "1" ? "0" : "1")), guahaoLb, DateTime.Now.ToString()); //候诊时间 } OutObject.JIESUANJG.FEIYONGZE = fyze.ToString(); transaction.Commit();//提交 conn.Close(); } catch (Exception er) { transaction.Rollback();//回滚 conn.Close(); throw new Exception(er.Message.ToString()); } } else { transaction.Rollback();//回滚 conn.Close(); throw new Exception(returnMsg); } } //代收模式 else { string brxxSql = "select bingrenid from gy_bingrenxx where jiuzhenkh='" + jiuzhenKh + "'"; string bingrenId = DBVisitor.ExecuteScalar(brxxSql).ToString(); string jiaoyiMsg = bingrenId + "|" + dangtianpbId + "|" + caozuoyDm + "|" + caozuoyXm + "|" + (guahaoBc == "1" ? "0" : "1") + "|" + caozuoRq + "|" + jiaoyiLsh + "|" + jiuzhenKh + "|" + "1" + "|" + string.Empty + "|" + string.Empty + "|";//交易类型默认为1 //挂号支付------------------------------------------------------------------------------------------- OracleParameter[] paramJiaoYi = new OracleParameter[3]; paramJiaoYi[0] = new OracleParameter("PRM_MSG", OracleType.VarChar); paramJiaoYi[0].Value = jiaoyiMsg; paramJiaoYi[0].Direction = ParameterDirection.Input; paramJiaoYi[1] = new OracleParameter("PRM_APPCODE", OracleType.Number); paramJiaoYi[1].Value = 0; paramJiaoYi[1].Direction = ParameterDirection.Output; paramJiaoYi[2] = new OracleParameter("PRM_OUTBUFFER", OracleType.VarChar); paramJiaoYi[2].Value = null; paramJiaoYi[2].Size = 2000; paramJiaoYi[2].Direction = ParameterDirection.Output; string returnValue = string.Empty; DbTransaction transaction = null; DbConnection conn = DBVisitor.Connection; try { transaction = conn.BeginTransaction(); DBVisitor.ExecuteProcedure("PKG_GY_YINYIJK.PRC_GUAHAOZFDS", paramJiaoYi, transaction); } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); conn.Close(); } throw new Exception(ex.Message); } //-------------------------------------------------------------------------------------------------- returnValue = paramJiaoYi[1].Value.ToString(); string returnMsg = paramJiaoYi[2].Value.ToString(); //LogHelper.WriteLog(typeof(GG_JiaoYiBLL), "挂号支付存储过程返回值:" + returnValue + "|" + returnMsg); if (returnValue == "1") //交易成功 { transaction.Commit(); //提交 conn.Close(); string[] list = returnMsg.Split('|'); OutObject.GUAHAOID = list[8];//挂号ID OutObject.GUAHAOXH = list[0]; OutObject.JIUZHENSJ = list[2]; OutObject.JIUZHENDD = list[1]; OutObject.YIJIID = list[5]; OutObject.JIESUANJG.FEIYONGZE = (Convert.ToDouble(list[6]) + Convert.ToDouble(list[7])).ToString(); string[] yiJiSpl = list[5].ToString().Split('^'); #region 诊疗费用信息 string ZhenLiaoXMSql = "select * from gy_shoufeixm where shoufeixmid in " + "( select zhenliaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )"; DataTable dtZhenLiaoMX = DBVisitor.ExecuteTable(string.Format(ZhenLiaoXMSql, dangtianpbId)); for (int i = 0; i < dtZhenLiaoMX.Rows.Count; i++) { FEIYONGXX fyxx = new FEIYONGXX(); fyxx.XIANGMUXH = dtZhenLiaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID fyxx.XIANGMUMC = dtZhenLiaoMX.Rows[i]["shoufeixmmc"].ToString(); fyxx.XIANGMUGL = dtZhenLiaoMX.Rows[i]["xiangmulx"].ToString(); fyxx.DANJIA = dtZhenLiaoMX.Rows[i]["danjia1"].ToString();// fyxx.SHULIANG = "1"; fyxx.JINE = dtZhenLiaoMX.Rows[i]["danjia1"].ToString(); OutObject.FEIYONGMX.Add(fyxx); OutObject.ZHENLIAOFEI = fyxx.DANJIA; } #endregion #region 挂号费用信息 string GuaHaoXMSql = "select * from gy_shoufeixm where shoufeixmid in " + "( select guahaofxm from mz_v_guahaopb_ex_zzj where paibanid = '{0}' )"; DataTable dtGuaHaoMX = DBVisitor.ExecuteTable(string.Format(GuaHaoXMSql, dangtianpbId)); for (int i = 0; i < dtGuaHaoMX.Rows.Count; i++) { FEIYONGXX fyxx = new FEIYONGXX(); fyxx.XIANGMUXH = dtGuaHaoMX.Rows[i]["shoufeixmid"].ToString();//收费项目ID fyxx.XIANGMUMC = dtGuaHaoMX.Rows[i]["shoufeixmmc"].ToString(); fyxx.XIANGMUGL = dtGuaHaoMX.Rows[i]["xiangmulx"].ToString(); fyxx.DANJIA = dtGuaHaoMX.Rows[i]["danjia1"].ToString();// fyxx.SHULIANG = "1"; fyxx.JINE = dtGuaHaoMX.Rows[i]["danjia1"].ToString(); OutObject.FEIYONGMX.Add(fyxx); OutObject.GUAHAOFEI = fyxx.DANJIA; } #endregion double fyze = 0.0; for (int i = 0; i < OutObject.FEIYONGMX.Count; i++) { fyze += Convert.ToDouble(OutObject.FEIYONGMX[i].JINE); } OutObject.JIESUANJG.FEIYONGZE = fyze.ToString(); } else { transaction.Rollback();//回滚 conn.Close(); throw new Exception(returnMsg); } } }
public override void ProcessMessage() { OutObject = new JIANYANJGCX_OUT(); string tiaoMaH = InObject.JIANYANTM; //检验条码 string JianYanJGHQMS = ConfigurationManager.AppSettings["JianYanJGHQMS"]; //检验结果获取模式 #region 基本入参判断 if (string.IsNullOrEmpty(JianYanJGHQMS)) { JianYanJGHQMS = "0"; } if (string.IsNullOrEmpty(tiaoMaH)) { throw new Exception("检验条码号获取失败!"); } #endregion #region 检验是否存在 if (JianYanJGHQMS == "1") //嘉善县第一人民医院使用 { //条码信息转换 string sqlTiaoMaXXZH = "select doctadviseno from l_patientinfo where listmh = '{0}' or doctadviseno = '{0}'"; string tiaoMaXX = DBVisitor.ExecuteScalar(string.Format(sqlTiaoMaXXZH, tiaoMaH)).ToString(); if (string.IsNullOrEmpty(tiaoMaXX)) { throw new Exception("该检验还未出报告,请耐心等待"); } else { tiaoMaH = tiaoMaXX; } } string sqlJCSQD = "select kaidanks,kaidanys,kaidanysxm,kaidanksmc,jianyanxmid,jianyanxmmc,yangbenlx,yangbenlxmc,caijiren,caijirxm,to_char(caijirq,'yyyy-mm-dd hh24:mi:dd') caijisj,jieshouren,jieshourxm,to_char(jieshourq,'yyyy-mm-dd hh24:mi:dd') jieshousj,shenhebz,SHENHEREN,SHENHERXM,to_char(SHENHERQ,'yyyy-mm-dd hh24:mi:ss') as SHENHERQ from yj_jianyansqd a where a.tiaoma='{0}' "; DataTable dtJCSQD = DBVisitor.ExecuteTable(string.Format(sqlJCSQD, tiaoMaH)); if (dtJCSQD.Rows.Count <= 0) { throw new Exception("未找到该检验申请单"); } OutObject.KAIDANKSDM = dtJCSQD.Rows[0]["kaidanks"].ToString(); //开单科室代码 OutObject.KAIDANYSDM = dtJCSQD.Rows[0]["kaidanys"].ToString(); //开单医生代码 OutObject.KAIDANYSXM = dtJCSQD.Rows[0]["kaidanysxm"].ToString(); //开单医生姓名 OutObject.KAIDANKSMC = dtJCSQD.Rows[0]["kaidanksmc"].ToString(); //开单科室名称 OutObject.JIANYANXMDM = dtJCSQD.Rows[0]["jianyanxmid"].ToString(); //检验项目代码 OutObject.JIANYANXMMC = dtJCSQD.Rows[0]["jianyanxmmc"].ToString(); //检验项目名称 OutObject.YANGBENLX = dtJCSQD.Rows[0]["yangbenlx"].ToString(); //样本类型 OutObject.YANGBENLXMC = dtJCSQD.Rows[0]["yangbenlxmc"].ToString(); //样本类型名称 OutObject.CAIJISJ = dtJCSQD.Rows[0]["caijisj"].ToString(); //采集时间 OutObject.JIESHOUSJ = dtJCSQD.Rows[0]["jieshousj"].ToString(); //接收时间 string shenHeBz = dtJCSQD.Rows[0]["shenhebz"].ToString(); //审核标识 OutObject.SHENHEBZ = dtJCSQD.Rows[0]["SHENHEBZ"].ToString(); //审核标识 OutObject.SHENHEREN = dtJCSQD.Rows[0]["SHENHEREN"].ToString(); //审核人 OutObject.SHENHERXM = dtJCSQD.Rows[0]["SHENHERXM"].ToString(); //审核人姓名 OutObject.SHENHERQ = dtJCSQD.Rows[0]["SHENHERQ"].ToString(); //审核日期 #endregion #region 检验是否已出报告 string sqlJCBG = ""; sqlJCBG = "select sampleno,sampletype ,to_char(checktime,'yyyy-mm-dd hh24:mi:ss') baogaosj from l_patientinfo where doctadviseno = '{0}'"; DataTable dtJCBG = DBVisitor.ExecuteTable(string.Format(sqlJCBG, tiaoMaH)); if (dtJCBG.Rows.Count <= 0) //|| shenHeBz == "0" { throw new Exception("该检验还未出报告,请耐心等待"); } if (shenHeBz == "0" && ConfigurationManager.AppSettings["SHENHEHCBG"] == "1") { throw new Exception("该检验还未出报告,请耐心等待"); } string sampleNo = dtJCBG.Rows[0]["sampleno"].ToString(); //样本号 OutObject.BAOGAOSJ = dtJCBG.Rows[0]["baogaosj"].ToString(); //报告时间 //string sampleTypeCode = dtJCBG.Rows[0]["sampletype"].ToString();//样本类型代码 //string sampleType = "";//样本类型 //string sqlYBLX = "select YANGBENMC from gy_yangbenlx where shuruma1 = '{0}' "; //if (string.IsNullOrEmpty(sampleTypeCode)) //{ // DataTable dtYBLX = DBVisitor.ExecuteTable(string.Format(sqlYBLX, sampleTypeCode.ToUpper())); // if (dtYBLX.Rows.Count > 0) // { // sampleType = dtYBLX.Rows[0]["YANGBENMC"].ToString(); // } //} #endregion #region 获取检验结果 string sqlJYJGMX = "select b.chinesename,a.testid,a.testresult,a.resultflag,a.unit,a.reflo,a.refhi,A.HINT from l_testresult a,l_testdescribe b where a.testid = b.testid and a.sampleno = '{0}' "; DataTable dtJYJGMX = DBVisitor.ExecuteTable(string.Format(sqlJYJGMX, sampleNo)); for (int i = 0; i < dtJYJGMX.Rows.Count; i++) { JIANYANJGXX jyjgxx = new JIANYANJGXX(); jyjgxx.JIEGUOXMDM = dtJYJGMX.Rows[i]["testid"].ToString().Replace("<", "<").Replace(">", ">"); //结果项目代码 jyjgxx.JIEGUOXMMC = dtJYJGMX.Rows[i]["chinesename"].ToString().Replace("<", "<").Replace(">", ">"); //结果项目名称 jyjgxx.JIEGUOZHI = dtJYJGMX.Rows[i]["testresult"].ToString().Replace("<", "<").Replace(">", ">"); //结果值 jyjgxx.MIAOSHUDW = dtJYJGMX.Rows[i]["unit"].ToString().Replace("<", "<").Replace(">", ">"); //单位 jyjgxx.CANKAOZSX = dtJYJGMX.Rows[i]["refhi"].ToString().Replace("<", "<").Replace(">", ">"); //上限 jyjgxx.CANKAOZXX = dtJYJGMX.Rows[i]["reflo"].ToString().Replace("<", "<").Replace(">", ">"); //下限 if (string.IsNullOrEmpty(jyjgxx.CANKAOZSX)) //嘉善人民医院检验结果上下限存放在下限字段中,添加特别处理 { if (!string.IsNullOrEmpty(jyjgxx.CANKAOZXX)) { if (jyjgxx.CANKAOZXX.Contains("-")) { jyjgxx.CANKAOZSX = jyjgxx.CANKAOZXX.Split('-')[1].ToString(); jyjgxx.CANKAOZXX = jyjgxx.CANKAOZXX.Split('-')[0].ToString(); } } } string resultFlag = dtJYJGMX.Rows[i]["resultflag"].ToString();//细菌检验结果标识 if (!string.IsNullOrEmpty(resultFlag)) { if (resultFlag.ToUpper() == "AAAAAA" || resultFlag.ToUpper() == "ABAAAA" || resultFlag.ToUpper() == "ACAAAA") { jyjgxx.JIEGUO = jyjgxx.JIEGUOZHI; } else if (resultFlag.ToUpper() == "AAA" || resultFlag.ToUpper() == "ABA" || resultFlag.ToUpper() == "ACA" || resultFlag.ToUpper() == "ADA") { jyjgxx.JIEGUO = "正常"; } else if (resultFlag.ToUpper() == "BAA" || resultFlag.ToUpper() == "BBA" || resultFlag.ToUpper() == "BCA" || resultFlag.ToUpper() == "BDA") { jyjgxx.JIEGUO = "偏高"; } else if (resultFlag.ToUpper() == "CAA" || resultFlag.ToUpper() == "CBA" || resultFlag.ToUpper() == "CCA" || resultFlag.ToUpper() == "CDA") { jyjgxx.JIEGUO = "偏低"; } else { #region 细菌培养 if (!string.IsNullOrEmpty(resultFlag) && resultFlag == "AA") { } else if (!string.IsNullOrEmpty(resultFlag) && resultFlag[0] == 'A') { continue; } if (string.IsNullOrEmpty(jyjgxx.JIEGUOZHI)) { if (resultFlag[0] == 'N') { jyjgxx.JIEGUOZHI = jyjgxx.JIEGUOXMMC + ";"; } if (resultFlag[0] == 'B') { string sqlJYJGXJMX = "select b.chinesename,a.testid,a.testresult,a.resultflag,a.unit,a.reflo,a.refhi,A.HINT from l_testresult a,l_testdescribe b where a.testid = b.testid and a.sampleno = '{0}' and resultFlag = 'B" + resultFlag[1].ToString() + "'"; DataTable dtJYJGXJMX = DBVisitor.ExecuteTable(string.Format(sqlJYJGXJMX, sampleNo)); for (int j = 0; j < dtJYJGXJMX.Rows.Count; j++) { jyjgxx.JIEGUOZHI = dtJYJGXJMX.Rows[j]["chinesename"].ToString() + ":" + dtJYJGXJMX.Rows[j]["HINT"].ToString(); if (dtJYJGXJMX.Rows[j]["HINT"].ToString() == "阳性") { string sqlJYJGYWMX = "select b.chinesename,a.testid,a.testresult,a.resultflag,a.unit,a.reflo,a.refhi,A.HINT from l_testresult a,l_testdescribe b where a.testid = b.testid and a.sampleno = '{0}' and resultFlag = 'A" + resultFlag[1].ToString() + "'"; DataTable dtJYJGYWMX = DBVisitor.ExecuteTable(string.Format(sqlJYJGYWMX, sampleNo)); for (int z = 0; z < dtJYJGYWMX.Rows.Count; z++) { JIANYANJGXX jyjgxxym = new JIANYANJGXX(); jyjgxxym.JIEGUOXMDM = dtJYJGYWMX.Rows[z]["testid"].ToString(); //药敏测试代码 jyjgxxym.JIEGUOXMMC = jyjgxx.JIEGUOXMMC + "[药敏]" + dtJYJGYWMX.Rows[z]["chinesename"].ToString(); string naiYaoXDM = dtJYJGYWMX.Rows[z]["HINT"].ToString(); //耐药性代码 switch (naiYaoXDM) { case "R": jyjgxxym.JIEGUOZHI += "R|耐药"; break; case "S": jyjgxxym.JIEGUOZHI += "S|敏感"; break; case "I": jyjgxxym.JIEGUOZHI += "I|中介"; break; } OutObject.JIANYANJGMX.Add(jyjgxxym); } } } } } #endregion } } OutObject.JIANYANJGMX.Add(jyjgxx); } #endregion if (OutObject.JIANYANJGMX.Count <= 0) { throw new Exception("该检验还未出报告,请耐心等待"); } }
public override void ProcessMessage() { string chuFangHM = InObject.pharmacyid.Split('*')[1]; //处方id 多个时使用|分割 string bingRenID = InObject.pharmacyid.Split('*')[0]; //病人id #region 基本入参判断 if (string.IsNullOrEmpty(chuFangHM)) { throw new Exception("处方ID不能为空"); } if (string.IsNullOrEmpty(bingRenID)) { throw new Exception("病人ID不能为空"); } #endregion chuFangHM = chuFangHM.Replace("#", "','"); string sqlChuFang = "select chufangid,chufanghm,to_char(kaidanrq,'yyyy-mm-dd') kaidanrq,chuangkouid,bingrenxm from mz_chufang1 where bingrenid ='{0}' and chufangid in(select max(chufangid) from mz_chufang1 where chufanghm in('{1}') group by chufanghm) "; DataTable dtChuFang = DBVisitor.ExecuteTable(string.Format(sqlChuFang, bingRenID, chuFangHM)); string name = string.Empty; string shiBaiCF = string.Empty;//发送失败的处方号码 if (dtChuFang.Rows.Count > 0) { name = dtChuFang.Rows[0]["bingrenxm"].ToString(); for (int i = 0; i < dtChuFang.Rows.Count; i++) { DISP_START_IN SCtemp = new DISP_START_IN(); HKC.Schemas.Start.order dtemp = new HKC.Schemas.Start.order(); string no = dtChuFang.Rows[i]["chufangid"].ToString(); string odate = dtChuFang.Rows[i]["kaidanrq"].ToString(); string winno = dtChuFang.Rows[i]["chuangkouid"].ToString(); string sqlJiuZhenKH = "select jiuzhenkh from gy_bingrenxx where bingrenid ='{0}'"; SCtemp.pid = (string)DBVisitor.ExecuteScalar(string.Format(sqlJiuZhenKH, bingRenID)); SCtemp.name = name; SCtemp.codekey = InObject.codekey; dtemp.no = no; dtemp.odate = odate; dtemp.winno = winno; SCtemp.orderinfo.Add(dtemp); string yfid = "select yingyongid from my_chuangkou where chuangkouid = '{0}' "; DataTable dtYFID = DBVisitor.ExecuteTable(string.Format(yfid, winno)); if (dtYFID.Rows.Count > 0) { SCtemp.pharmacyid = dtYFID.Rows[0]["yingyongid"].ToString(); } else { //获取药房id失败 shiBaiCF += "," + no; continue; } DISP_START_OUT outTemp = Unity.runService <DISP_START_IN, DISP_START_OUT>(SCtemp); //上传失败 if (outTemp.ResultCode != "0") { shiBaiCF += "," + no; continue; } } if (!string.IsNullOrEmpty(shiBaiCF)) { //返回失败的处方号码 throw new Exception("处方号为:" + shiBaiCF.Trim(',').ToString() + "的处方上传失败!"); } } else { throw new Exception("未找到相关的处方信息"); } }