public static string getSZ_String(string Section, string Ident, string Default) { string T_szvalue = ""; string szvalue = ""; szvalue = f.ReadString(Section, Ident, "").Replace("\0", "").Trim(); if (szvalue.Trim() == "") { try { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable DT_sz = new DataTable(); DT_sz = aa.GetDataTable("select top 1 F_SZZ from T_SZ where F_XL='" + Ident + "' and F_DL='" + Section + "'", "sz"); if (DT_sz.Rows.Count <= 0) { return(Default); } else { T_szvalue = DT_sz.Rows[0]["F_SZZ"].ToString().Trim(); return(T_szvalue); } } catch (Exception e1) { return(Default); } } else { return(szvalue); } }
public string getymh(string yhmc)//通过医生名称 获取医生编码 { if (yhmc != "") { try { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable bljc = new DataTable(); bljc = aa.GetDataTable("select F_yhm from T_yh where F_yhmc='" + yhmc + "'", "blxx"); try { decimal xx = decimal.Parse(bljc.Rows[0]["F_YHM"].ToString().Trim()); return(xx.ToString()); } catch { return(""); } } catch (Exception ee) { log.WriteMyLog("转换医生工号出错!原因:" + ee.ToString()); return(""); } } return(""); }
private DataTable GetYh() { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); string sql = "select f_yhm,f_yhmc,F_ID,f_yhmm,f_yhbh from t_yh order by F_ID"; return(aa.GetDataTable(sql, "yh")); }
public void pathtohis(string blh, string yymc) { string msg = f.ReadString("savetohis", "msg", ""); dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable bljc = new DataTable(); bljc = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "blxx"); if (bljc == null) { MessageBox.Show("病理数据库设置有问题!"); log.WriteMyLog("病理数据库设置有问题!"); return; } if (bljc.Rows.Count < 1) { MessageBox.Show("病理号有错误!"); log.WriteMyLog("病理号有错误!"); return; } string bgzt = bljc.Rows[0]["F_BGZT"].ToString().Trim(); if (bgzt == "已审核") { } }
public static DataTable GetTable(string strSql) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataSet ds = aa.GetDataSet(strSql.ToString(), "dt1"); if (ds.Tables.Count > 0) { return(ds.Tables[0]); } return(new DataTable()); }
private void BGHJ(string blh, string err_nr, string F_CTMC) { try { string yhmc = f.ReadString("yh", "yhmc", "-").Replace("/0", ""); dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); aa.ExecuteSQL("insert into T_BGHJ(F_BLH,F_RQ,F_CZY,F_WZ,F_DZ,F_NR,F_EXEMC,F_CTMC) values('" + blh + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + yhmc + "','','接口','" + err_nr + "','RPT','" + "主界面" + F_CTMC + "') "); } catch { } }
/// <summary> /// 报告痕迹 /// </summary> /// <param name="blh">病理号</param> /// <param name="yhmc">用户名称</param> /// <param name="DZ">动作</param> /// <param name="NR">内容</param> /// <param name="EXEMC">EXE名称</param> /// <param name="CTMC">界面名称</param> public static void BGHJ(string blh, string yhmc, string DZ, string NR, string EXEMC, string CTMC) { try { IPAddress addr = new IPAddress(Dns.GetHostByName(Dns.GetHostName()).AddressList[0].Address); dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); aa.ExecuteSQL("insert into T_BGHJ(F_BLH,F_RQ,F_CZY,F_WZ,F_DZ,F_NR,F_EXEMC,F_CTMC) values('" + blh + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm") + "','" + yhmc + "','机器名:" + Dns.GetHostName().Trim() + ",IP 地址:" + addr.ToString() + "',','" + DZ + "','" + NR + "','" + EXEMC + "','" + CTMC + "') "); } catch { } }
/// <summary> /// 根据where条件查询jcxx,where条件要以and开头 /// </summary> /// <param name="sqlWhere"></param> /// <returns></returns> public List <T_JCXX> GetBySqlWhere(string sqlWhere) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); string sql = " select * from T_JCXX where 1=1 " + sqlWhere; var dt = aa.GetDataTable(sql, "dt1"); var lstJcxx = new List <T_JCXX>(); foreach (DataRow row in dt.Rows) { lstJcxx.Add(DataRowToModel(row)); } return(lstJcxx); }
/// <summary> /// 得到一个对象实体 /// </summary> public static T_YH GetModel(int F_ID) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 F_ID,F_YHM,F_YHMC,F_YHBH,F_YHQX,F_YHMM,F_DLSJ,F_SFZX,F_ZXWZ,F_ZXSC,F_DXYS,F_SFZH,F_DHHM,F_FJH,F_CXTS,F_DXFPYS,F_YH_BY1,F_YH_BY2 from T_YH "); strSql.Append($" where F_ID='{F_ID}'"); DataTable dt = aa.GetDataTable(strSql.ToString(), "dt1"); if (dt.Rows.Count > 0) { return(T_YH.DataRowToModel(dt.Rows[0])); } return(null); }
private static DataTable GetYHXX(string CertUID) { DataTable Dt_Yhxx = new DataTable(); if (CertUID.Trim() != "") { try { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); Dt_Yhxx = aa.GetDataTable("select top 1 * from T_YH where F_YH_BY2='" + CertUID + "' ", "YHXX"); } catch (Exception e1) { MessageBox.Show(e1.Message); } } return(Dt_Yhxx); }
private void CancelHisReq(string ssbz) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); var dtJcxx = aa.GetDataTable($"select f_yzid from t_jcxx where f_sqxh= '{ssbz}'", "t1"); if (dtJcxx == null) { return; } var yzId = dtJcxx.Rows[0][0].ToString(); var success = zlInterface.CancelRequest(Convert.ToInt32(yzId), 0); if (!success) { log.WriteMyLog("HIS取消登记申请单失败:" + zlInterface.GetLastError()); } }
public string getysgh(string ysmc) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable yh = new DataTable(); try { yh = aa.GetDataTable("select * from T_YH where F_YHMC='" + ysmc.Trim() + "'", "yh"); if (yh.Rows.Count > 0) { return(yh.Rows[0]["F_YHM"].ToString()); } return(""); } catch { return(""); } }
/// <summary> /// 得到一个对象实体 /// </summary> public static T_JCXX GetModel(string F_BLH) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 * from T_JCXX "); strSql.Append($" where F_BLH= '{F_BLH}' "); DataSet ds = aa.GetDataSet(strSql.ToString(), "dt1"); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
public static List <T_JCXX> GetBySqlWhere(string sqlWhere, string sqlOrderColumns = "") { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); var list = new List <T_JCXX>(); var sql = $"select * from t_jcxx t where {sqlWhere} "; if (string.IsNullOrEmpty(sqlOrderColumns) == false) { sql += " order by " + sqlOrderColumns; } var dt = aa.GetDataTable(sql, "dt1"); foreach (DataRow row in dt.Rows) { list.Add(DataRowToModel(row)); } return(list); }
public void GetXmlTest() { var aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); var bggs = "测序"; var blh = "1709187413-2"; var dtTbsReport = aa.GetDataTable($" select * from t_tbs_bg t where t.f_blh='{blh}' ", "table1"); if (dtTbsReport == null || dtTbsReport.Rows.Count == 0) { Assert.Fail("没有找到tbs报告"); } var tbs = T_TBS_BG.DataRowToModel(dtTbsReport.Rows[0]); var r = new StructReport(); var xml = r.GetXml(tbs, bggs); Console.WriteLine(xml); }
public string getyygh(string ysxm) { try { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable bljc = new DataTable(); bljc = aa.GetDataTable("select top 1 F_YHBH from T_YH where F_yhmc='" + ysxm + "'", "bljc"); if (bljc.Rows.Count > 0) { return(bljc.Rows[0][0].ToString()); } else { return("0000"); } } catch { return("0000"); } }
public string getyhgh(string yhmc) { try { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable dt_yh = aa.GetDataTable("select top 1 F_YHBH from T_YH where F_YHMC='" + yhmc + "'", "yh"); if (dt_yh.Rows.Count > 0) { return(dt_yh.Rows[0]["F_YHBH"].ToString()); } else { return(""); } } catch { return(""); } }
/// <summary> /// 获得前几行数据 /// </summary> public static List <T_YH> GetList(string strWhere) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); StringBuilder strSql = new StringBuilder(); strSql.Append("select "); strSql.Append(" F_ID,F_YHM,F_YHMC,F_YHBH,F_YHQX,F_YHMM,F_DLSJ,F_SFZX,F_ZXWZ,F_ZXSC,F_DXYS,F_SFZH,F_DHHM,F_FJH,F_CXTS,F_DXFPYS,F_YH_BY1,F_YH_BY2 "); strSql.Append(" FROM T_YH "); if (strWhere.Trim() != "") { strSql.Append(" where " + strWhere); } var dt = aa.GetDataTable(strSql.ToString(), "dt"); var listYh = new List <T_YH>(); foreach (DataRow dtRow in dt.Rows) { listYh.Add(T_YH.DataRowToModel(dtRow)); } return(listYh); }
/// <summary> /// 得到一个对象实体 /// </summary> public T_TX GetModel(int F_ID) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 "); strSql.Append(" F_ID,F_BLH,F_TXM,F_TXSM,F_SFDY,F_TXLB "); strSql.Append(" from T_TX "); strSql.Append(" where F_ID=" + F_ID + ""); T_TX model = new T_TX(); DataSet ds = aa.GetDataSet(strSql.ToString(), "dt1"); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }
/// <summary> /// 获得数据列表 /// </summary> public List <T_TX> GetList(string strWhere) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); StringBuilder strSql = new StringBuilder(); strSql.Append("select F_ID,F_BLH,F_TXM,F_TXSM,F_SFDY,F_TXLB "); strSql.Append(" FROM T_TX t "); if (strWhere.Trim() != "") { strSql.Append(" where " + strWhere); } DataSet ds = aa.GetDataSet(strSql.ToString(), "dt1"); List <T_TX> txList = new List <T_TX>(); foreach (DataRow row in ds.Tables[0].Rows) { txList.Add(DataRowToModel(row)); } return(txList); }
public static void downtx(string ftp_blh, string txml, odbcdb aa, ref string txlbs, ref string localpath) { //Çå¿Õc:\temp_srĿ¼ if (!System.IO.Directory.Exists(@"c:\temp\" + ftp_blh)) { System.IO.Directory.CreateDirectory(@"c:\temp\" + ftp_blh); } else { try { System.IO.Directory.Delete(@"c:\temp\" + ftp_blh, true); System.IO.Directory.CreateDirectory(@"c:\temp\" + ftp_blh); } catch (Exception e1) { MessageBox.Show(e1.Message.ToString()); } } localpath = @"c:\temp\" + ftp_blh; //ÏÂÔØFTP²ÎÊý string ftpserver = f.ReadString("ftp", "ftpip", "").Replace("\0", ""); string ftpuser = f.ReadString("ftp", "user", "ftpuser").Replace("\0", ""); string ftppwd = f.ReadString("ftp", "pwd", "ftp").Replace("\0", ""); string ftplocal = f.ReadString("ftp", "ftplocal", "c:\\temp\\").Replace("\0", ""); string ftpremotepath = f.ReadString("ftp", "ftpremotepath", "pathimages").Replace("\0", ""); string ftps = f.ReadString("ftp", "ftp", "").Replace("\0", ""); string txpath = f.ReadString("txpath", "txpath", "").Replace("\0", ""); FtpWeb fw = new FtpWeb(ftpserver, ftpremotepath, ftpuser, ftppwd); //¹²ÏíĿ¼ string gxml = f.ReadString("txpath", "txpath", "").Replace("\0", ""); string gxuid = f.ReadString("txpath", "username", "").Replace("\0", ""); string gxpwd = f.ReadString("txpath", "password", "").Replace("\0", ""); DataTable txlb = aa.GetDataTable("select * from T_tx where F_blh='" + ftp_blh + "' and F_sfdy='1'", "txlb"); string txm = ""; if (ftps == "1")//FTPÏÂÔØ·½Ê½ { for (int i = 0; i < txlb.Rows.Count; i++) { txm = txlb.Rows[i]["F_txm"].ToString().Trim(); string ftpstatus = ""; try { fw.Download(localpath, txml + "/" + txlb.Rows[i]["F_txm"].ToString().Trim(), txlb.Rows[i]["F_txm"].ToString().Trim(), out ftpstatus); if (ftpstatus == "Error") { log.WriteMyLog("FTPÏÂÔØͼÏñ³ö´í£¡"); localpath = ""; return; } else { if (f.ReadInteger("TX", "ZOOM", 0) == 1) { int picx = f.ReadInteger("TX", "picx", 320); int picy = f.ReadInteger("TX", "picy", 240); try { prreport.txzoom(localpath + "/" + txlb.Rows[i]["F_txm"].ToString().Trim(), localpath + "/" + txlb.Rows[i]["F_txm"].ToString().Trim(), picx, picy); } catch (Exception ee2) { log.WriteMyLog("ѹËõͼÏñÒì³££º" + ee2.Message); } } txlbs = txlbs + "<Image INDEX=" + (char)34 + (i + 1).ToString() + (char)34 + ">" + localpath + "\\" + txlb.Rows[i]["F_txm"].ToString().Trim() + "</Image>"; } } catch { log.WriteMyLog("FTPÏÂÔØͼÏñ³ö´í£¡"); } } } else //¹²ÏíÏÂÔØ·½Ê½ { if (txpath == "") { log.WriteMyLog("sz.ini txpathͼÏñĿ¼δÉèÖÃ"); return; } for (int i = 0; i < txlb.Rows.Count; i++) { txm = txlb.Rows[i]["F_txm"].ToString().Trim(); try { try { File.Copy(txpath + txml + "\\" + txlb.Rows[i]["F_txm"].ToString().Trim(), localpath + "\\" + txlb.Rows[i]["F_txm"].ToString().Trim(), true); if (f.ReadInteger("TX", "ZOOM", 0) == 1) { int picx = f.ReadInteger("TX", "picx", 320); int picy = f.ReadInteger("TX", "picy", 240); try { prreport.txzoom(localpath + "/" + txlb.Rows[i]["F_txm"].ToString().Trim(), localpath + "/" + txlb.Rows[i]["F_txm"].ToString().Trim(), picx, picy); } catch (Exception ee2) { log.WriteMyLog("ѹËõͼÏñÒì³££º" + ee2.Message); } } txlbs = txlbs + "<Image INDEX=" + (char)34 + (i + 1).ToString() + (char)34 + ">" + localpath + "\\" + txlb.Rows[i]["F_txm"].ToString().Trim() + "</Image>"; } catch { } } catch { log.WriteMyLog("¹²ÏíĿ¼²»´æÔÚ£¡"); localpath = ""; return; } } } }
public void pathtohis(string blh, string yymc) { string pathweburl = f.ReadString("savetohis", "webservicesurl", ""); blhgy = blh; string msg = f.ReadString("savetohis", "msg", ""); string patid = ""; dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable bljc = new DataTable(); bljc = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "blxx"); if (bljc == null) { MessageBox.Show("病理数据库设置有问题!"); log.WriteMyLog("病理数据库设置有问题!"); return; } if (bljc.Rows.Count < 1) { MessageBox.Show("病理号有错误!"); log.WriteMyLog("病理号有错误!"); return; } if (bljc.Rows[0]["F_sqxh"].ToString().Trim() == "") { log.WriteMyLog("无申请序号(单据号),不处理!"); return; } if (bljc.Rows[0]["F_bgzt"].ToString().Trim() == "已登记" || bljc.Rows[0]["F_bgzt"].ToString().Trim() == "已取材") { if (bljc.Rows[0]["F_brlb"].ToString().Trim() == "住院") { patid = bljc.Rows[0]["F_zyh"].ToString().Trim(); if (MessageBox.Show("是否确认收费", "确认收费", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { //------------------收费确认----------------------- string msgSF = ""; try { nbyzd2yyWEB.PisServiceLJ nbyz2yweb = new PathHISZGQJK.nbyzd2yyWEB.PisServiceLJ(); if (pathweburl != "") { nbyz2yweb.Url = pathweburl; } msgSF = nbyz2yweb.AddFee(bljc.Rows[0]["F_sqxh"].ToString().Trim(), decimal.Parse("2009"), "2"); } catch { MessageBox.Show("收费确认失败!"); } if (msgSF == "0") { MessageBox.Show("收费确认成功!"); } } } //---------------------判断此病人是否已登记------------------------------- DataTable brxx_1 = new DataTable(); brxx_1 = aa.GetDataTable("select F_BLH,F_XM,F_SQXH from T_jcxx where F_SQXH='" + bljc.Rows[0]["F_sqxh"].ToString().Trim() + "'", "blxx"); if (brxx_1.Rows.Count > 1) { MessageBox.Show("此病人" + brxx_1.Rows[0]["F_xm"].ToString() + "-申请号" + brxx_1.Rows[0]["F_sqxh"].ToString() + "-病理号" + brxx_1.Rows[0]["F_blh"].ToString() + " 已登记过,请查看是否重复登记!!!"); } } //if (bljc.Rows[0]["F_brlb"].ToString().Trim() == "门诊") patid = bljc.Rows[0]["F_mzh"].ToString().Trim(); //if (patid == "") //{ // LGZGQClass.log.WriteMyLog("非住院病人,不处理!"); // return; //} //回传xml //DataTable jcxm = aa.GetDataTable("select * from T_whtjyy_jcxm where CheckFlow='" + bljc.Rows[0]["F_sqxh"].ToString().Trim() + "'", "jcxm"); string inxml = ""; inxml = inxml + "<?xml version='1.0' encoding='GB2312'?>"; inxml = inxml + "<REPORTINFO>"; inxml = inxml + "<ITEM>"; inxml = inxml + "<SQDBH>" + decimal.Parse(bljc.Rows[0]["F_sqxh"].ToString().Trim()) + "</SQDBH>"; string zt = bljc.Rows[0]["F_bgzt"].ToString().Trim(); if (zt == "已审核") { zt = "13"; } else { if (zt == "已写报告") { zt = "11"; } else { zt = "7"; } } inxml = inxml + "<ZT>" + zt + "</ZT>"; string jsybm = getymh(bljc.Rows[0]["F_jsy"].ToString().Trim()); inxml = inxml + "<JSRY>" + jsybm + "</JSRY>"; inxml = inxml + "<JSSJ>" + DateTime.Parse(bljc.Rows[0]["F_sdrq"].ToString().Trim()).ToString("yyyyMMddHHMMss") + "</JSSJ>"; string bgys = getymh(bljc.Rows[0]["F_bgys"].ToString().Trim()); inxml = inxml + "<BGRY>" + bgys + "</BGRY>"; string bgsj = bljc.Rows[0]["F_bgrq"].ToString().Trim(); if (bgsj != "") { bgsj = DateTime.Parse(bgsj).ToString("yyyyMMddHHMMss"); } inxml = inxml + "<BGSJ>" + bgsj + "</BGSJ>"; string shys = getymh(bljc.Rows[0]["F_shys"].ToString().Trim()); inxml = inxml + "<SHRY>" + shys + "</SHRY>"; string shsj = bljc.Rows[0]["F_SPARE5"].ToString().Trim(); if (shsj != "") { shsj = DateTime.Parse(shsj).ToString("yyyyMMddHHMMss"); } inxml = inxml + "<SHSJ>" + shsj + "</SHSJ>"; inxml = inxml + "<CXRY>" + "" + "</CXRY>"; inxml = inxml + "<CXSJ>" + "" + "</CXSJ>"; inxml = inxml + "<JCSJ>" + bljc.Rows[0]["F_rysj"].ToString().Trim() + "</JCSJ>"; string JCJL = ""; if (zt == "13") { JCJL = bljc.Rows[0]["F_blzd"].ToString().Trim(); } inxml = inxml + "<JCJL>" + JCJL + "</JCJL>"; string f0brbh = bljc.Rows[0]["F_brbh"].ToString().Trim(); inxml = inxml + "<WEBURL>http://192.168.10.201/pathwebrpt/index_p.asp?sick_id=" + f0brbh + "</WEBURL>"; inxml = inxml + "<JCH>" + bljc.Rows[0]["F_blh"].ToString().Trim() + "</JCH>"; inxml = inxml + "</ITEM>"; inxml = inxml + "</REPORTINFO>"; if (msg == "1") { log.WriteMyLog("回传的xml数据:" + inxml); MessageBox.Show(inxml); } string sqxh = bljc.Rows[0]["F_sqxh"].ToString().Trim(); string outxml = ""; try { nbyzd2yyWEB.PisServiceLJ nbyz2yweb = new PathHISZGQJK.nbyzd2yyWEB.PisServiceLJ(); if (pathweburl != "") { nbyz2yweb.Url = pathweburl; } outxml = nbyz2yweb.SetPISReportInfo(decimal.Parse(sqxh), inxml); } catch (Exception ee) { if (msg == "1") { MessageBox.Show("回传失败!调用HIS接口出错:" + ee.ToString()); } log.WriteMyLog("回传失败!调用HIS接口出错:" + ee.ToString()); return; } if (outxml == "") { if (msg == "1") { MessageBox.Show("回传成功!"); } } else { log.WriteMyLog("回传失败!原因:" + outxml); if (msg == "1") { MessageBox.Show("回传报告失败!" + outxml); } } }
public string ca(string yhxx) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); ////-------获取sz中设置的参数--------------------- string debug = f.ReadString("CA", "debug", "").Replace("\0", "").Trim(); string msg = f.ReadString("CA", "message", "1").Replace("\0", "").Trim(); string getblh = ""; string type = ""; string type2 = ""; string yhm = ""; string yhmc = ""; string yhbh = ""; string yhmm = ""; string bglx = ""; string bgxh = ""; #region CA登陆 if (ZGQClass.GetSZ("CA", "ca", "").Replace("\0", "").Trim() == "1") { if (yhxx == "") { return(Login()); } } #endregion string[] getyhxx = yhxx.Split('^'); if (getyhxx.Length == 5) { type = getyhxx[0]; yhm = getyhxx[1]; yhmc = getyhxx[3]; yhbh = getyhxx[2]; yhmm = getyhxx[4]; } else { type2 = getyhxx[0]; getblh = getyhxx[1]; bgxh = getyhxx[2]; bglx = getyhxx[3].ToLower(); type = getyhxx[4]; yhm = getyhxx[5]; yhmc = getyhxx[6]; yhbh = getyhxx[7]; yhmm = getyhxx[8]; } #region 审核前验证KEY if (type == "SH") { return(YZKEY(msg, yhmc, yhbh)); } #endregion string blbh = getblh + bglx + bgxh; #region 审核后执行,数字签名 if (type == "QZ") { if (debug == "1") { MessageBox.Show("审核签字"); } string yw = ""; string isb64yw = f.ReadString("CA", "b64yw", "0").Replace("\0", "").Trim(); bool WithTSA = false; //带时间戳签名 if ((f.ReadString("ca", "WithTSA", "0").Trim().Replace("\0", "").Trim()) == "1") { WithTSA = true; //签名值包含原文 } bool havcount = false; bool isVerify = false; //网关验证 if ((f.ReadString("ca", "isVerify", "0").Trim().Replace("\0", "").Trim()) == "1") { isVerify = true; } string usapurl = f.ReadString("ca", "usapurl", "").Trim().Replace("\0", "").Trim(); //网关地址 string svrcertb64 = f.ReadString("ca", "svrcertb64", "1").Trim().Replace("\0", "").Trim(); //网关证书 string b64SignVal = ""; SecuInter.X509Certificate oCert = null; DataTable dt_jcxx = new DataTable(); DataTable dt_bc = new DataTable(); DataTable dt_bd = new DataTable(); try { #region 原文 dt_jcxx = aa.GetDataTable("select * from T_JCXX where F_BLH='" + getblh + "'", "cgbg"); if (dt_jcxx == null) { if (msg == "1") { MessageBox.Show("连接数据库异常"); } return("0"); } if (dt_jcxx.Rows.Count <= 0) { if (msg == "1") { MessageBox.Show("T_JCXX查询数据异常"); } return("0"); } if (bglx == "cg") { if (dt_jcxx.Rows[0]["F_BGZT"].ToString() != "已审核") { if (msg == "1") { MessageBox.Show("报告未审核"); } return("0"); } yw = "病理号:" + dt_jcxx.Rows[0]["f_blh"].ToString() + "&常规报告&&性别:" + dt_jcxx.Rows[0]["F_XB"].ToString() + "&年龄:" + dt_jcxx.Rows[0]["F_nl"].ToString() + "&住院号:" + dt_jcxx.Rows[0]["F_zyh"].ToString() + "&门诊号:" + dt_jcxx.Rows[0]["F_mzh"].ToString() + "&身份证号:" + dt_jcxx.Rows[0]["F_SFZH"].ToString() + "&科室:" + dt_jcxx.Rows[0]["F_sjks"].ToString() + "&病理诊断:" + dt_jcxx.Rows[0]["F_blzd"].ToString() + "&报告医生:" + dt_jcxx.Rows[0]["F_bgys"].ToString() + "&复诊医生:" + dt_jcxx.Rows[0]["F_FZYS"].ToString() + "&审核医生:" + dt_jcxx.Rows[0]["F_SHYS"].ToString() + "&报告日期:" + dt_jcxx.Rows[0]["F_bgrq"].ToString() + "&审核日期:" + dt_jcxx.Rows[0]["F_spare5"].ToString(); } //// 补充审核 if (bglx == "bc") { dt_bc = aa.GetDataTable( "select * from T_BCBG where F_BLH='" + getblh + "' and F_BC_BGZT='已审核'and F_BC_BGXH='" + bgxh + "'", "bcbg"); if (dt_bc == null) { if (msg == "1") { MessageBox.Show("连接数据库异常"); } return("0"); } if (dt_bc.Rows.Count <= 0) { if (msg == "1") { MessageBox.Show("T_BCBG查询数据异常"); } return("0"); } yw = "病理号:" + dt_jcxx.Rows[0]["f_blh"].ToString() + "&补充报告:" + bgxh + "&性别:" + dt_jcxx.Rows[0]["F_XB"].ToString() + "&年龄:" + dt_jcxx.Rows[0]["F_nl"].ToString() + "&住院号:" + dt_jcxx.Rows[0]["F_zyh"].ToString() + "&门诊号:" + dt_jcxx.Rows[0]["F_mzh"].ToString() + "&身份证号:" + dt_jcxx.Rows[0]["F_SFZH"].ToString() + "&科室:" + dt_jcxx.Rows[0]["F_sjks"].ToString() + "&病理诊断:" + dt_bc.Rows[0]["F_BCZD"].ToString() + "&报告医生:" + dt_bc.Rows[0]["F_bc_bgys"].ToString() + "&复诊医生:" + dt_bc.Rows[0]["F_bc_FZYS"].ToString() + "&审核医生:" + dt_bc.Rows[0]["F_bc_SHYS"].ToString() + "&报告日期:" + dt_bc.Rows[0]["F_bc_bgrq"].ToString() + "&审核日期:" + dt_bc.Rows[0]["F_bc_spare5"].ToString(); } ///// 小冰冻审核 if (bglx == "bd") { dt_bd = aa.GetDataTable( "select * from T_BDBG where F_BLH='" + getblh + "' and F_BD_BGZT='已审核' and F_BD_BGXH='" + bgxh + "'", "bcbg"); if (dt_bd == null) { if (msg == "1") { MessageBox.Show("连接数据库异常"); } return("0"); } if (dt_bd.Rows.Count <= 0) { if (msg == "1") { MessageBox.Show("T_BDBG查询数据异常"); } return("0"); } yw = "病理号:" + dt_jcxx.Rows[0]["f_blh"].ToString() + "&冰冻报告:" + bgxh + "&性别:" + dt_jcxx.Rows[0]["F_XB"].ToString() + "&年龄:" + dt_jcxx.Rows[0]["F_nl"].ToString() + "&住院号:" + dt_jcxx.Rows[0]["F_zyh"].ToString() + "&门诊号:" + dt_jcxx.Rows[0]["F_mzh"].ToString() + "&身份证号:" + dt_jcxx.Rows[0]["F_SFZH"].ToString() + "&科室:" + dt_jcxx.Rows[0]["F_sjks"].ToString() + "&病理诊断:" + dt_bd.Rows[0]["F_BdZD"].ToString() + "&报告医生:" + dt_bd.Rows[0]["F_bd_bgys"].ToString() + "&复诊医生:" + dt_bd.Rows[0]["F_bd_FZYS"].ToString() + "&审核医生:" + dt_bd.Rows[0]["F_bd_SHYS"].ToString() + "&报告日期:" + dt_bd.Rows[0]["F_bd_bgrq"].ToString(); } if (yw.Trim() == "") { if (msg == "1") { MessageBox.Show("数字签名内容为空"); } return("0"); } #endregion if (isb64yw == "1") { yw = changebase64(yw); } #region 签名 try { ////签名 if (WithTSA) { b64SignVal = NETCAPKIv4.signPKCS7WithTSA(yw, usapurl, havcount); //时间戳签名 } else { b64SignVal = NETCAPKIv4.signNETCA(yw, havcount, userPwd); //不带时间戳签名 } } catch (Exception ee1) { if (msg == "1") { MessageBox.Show("签名失败:" + ee1.Message); } return("0"); } if (b64SignVal == "") { if (msg == "1") { MessageBox.Show("签名失败"); } return("0"); } #endregion #region 验签 try { string signTime = ""; oCert = NETCAPKIv4.verifyPKCS7(yw, b64SignVal, true, ref signTime); } catch (Exception ee2) { if (msg == "1") { MessageBox.Show("验签失败:" + ee2.Message); } return("0"); } if (oCert == null) { if (msg == "1") { MessageBox.Show("验签失败"); } return("0"); } #endregion // #region 验证证书 // // if (isVerify) // { // try // { // bool bFlag = NETCAPKIv4.VerifyCert(usapurl, svrcertb64, 1, oCert); //再验证证书 // if (!bFlag) // { // MessageBox.Show("签名证书验证失败"); // return "0"; // } // } // catch (Exception ee3) // { // if (msg == "1") // MessageBox.Show("签名证书验证失败:" + ee3.Message); // return "0"; // } // } // // #endregion // 签字 } catch (Exception ex) { MessageBox.Show("签名异常:" + ex.Message); return("0"); } #region 签名完成,写数据库 string errmsg = ""; int x = aa.ExecuteSQL( "insert into T_SZQM(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_CZY,F_YW,F_SignCert,F_SignData,F_QZRQ) values('" + blbh + "','" + getblh + "','" + bglx + "','" + bgxh + "','" + yhmc + "','" + yw + "','" + oCert.ToString() + "','" + b64SignVal.ToString() + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "')"); if (debug == "1") { if (x >= 1) { MessageBox.Show("写入T_CAXX完成"); } else { MessageBox.Show("写入T_CAXX失败:" + errmsg); } } #endregion if (f.ReadString("ca", "hqkeytp", "0").Trim().Replace("\0", "").Trim() == "1") { #region 获取签字图片 string szqmlj = ZGQClass.GetSZ("view", "szqmlj", @"\\127.0.0.1\pathqc\rpt-szqm\YSBMP\"); try { IPDFSign iPDFSign = new PDFSign(); //选择证书 iPDFSign.SelectCert("netca", 0); IUtilTool iUtilTool = new UtilTool(); //传入选中的签名证书的base64编码 string CertBase64 = iPDFSign.SignCertBase64Encode; if (CertBase64.Trim() == "") { if (msg == "1") { MessageBox.Show("获取签名证书的base64编码失败"); } return("0"); } try { //log.WriteMyLog("CertBase64:"+CertBase64); byte[] image = iUtilTool.GetImageFromDevicByCert(CertBase64); try { MemoryStream memoryStream = new MemoryStream(image, 0, image.Length); memoryStream.Write(image, 0, image.Length); //转成图片 Image ii = Image.FromStream(memoryStream); log.WriteMyLog("szqmlj:" + szqmlj); ii.Save(szqmlj + yhmc + ".bmp", System.Drawing.Imaging.ImageFormat.Bmp); } catch (Exception ee4) { if (msg == "1") { MessageBox.Show("保存签名图片失败:" + ee4.Message); } return("0"); } string pdfszqz = ZGQClass.GetSZ("CA", "pdfszqz", "1"); if (pdfszqz == "1") { #region 生成pdf string blh = getblh; try { if (bglx == "") { bglx = "cg"; } if (bgxh == "") { bgxh = "1"; } string bgzt = ""; string filename = dt_jcxx.Rows[0]["F_SPARE5"].ToString(); if (bglx.ToLower() == "bd") { bgzt = dt_bd.Rows[0]["F_BD_BGZT"].ToString(); filename = dt_bd.Rows[0]["F_BD_bgrq"].ToString(); } if (bglx.ToLower() == "bc") { bgzt = dt_bc.Rows[0]["F_BC_BGZT"].ToString(); filename = dt_bc.Rows[0]["F_Bc_SPARE5"].ToString(); } if (bglx.ToLower() == "cg") { bgzt = dt_jcxx.Rows[0]["F_BGZT"].ToString(); filename = dt_jcxx.Rows[0]["F_SPARE5"].ToString(); } if (bgzt == "已审核") { try { filename = blh.Trim() + "_" + bglx.ToLower() + "_" + bgxh + "_" + DateTime.Parse(filename.Trim()).ToString("yyyyMMddHHmmss") + ".pdf"; } catch { filename = blh.Trim() + "_" + bglx.ToLower() + "_" + bgxh + ".pdf"; } string ml = DateTime.Parse(dt_jcxx.Rows[0]["F_SDRQ"].ToString()).ToString("yyyyMM"); string pdfpath = ""; string rptpath = ZGQClass.GetSZ("ca", "rptpath", "rpt").Replace("\0", "").Trim(); string scpdffs = f.ReadString("ca", "scpdffs", "1").Replace("\0", "").Trim(); ZGQ_PDFJPG zgq = new ZGQ_PDFJPG(); string message = ""; string filePath = ""; //生成PDF string ErrMsg = ""; // log.WriteMyLog("filename="+filename); bool pdf1 = zgq.CreatePDFJPG(blh, bglx, bgxh, ref filename, rptpath, ZGQ_PDFJPG.type.PDF, ref ErrMsg); log.WriteMyLog("filename=" + filename); if (!pdf1) { MessageBox.Show("生成PDF失败,请重新审核\r\n" + ErrMsg); DeleteTempFile(blh); return("0"); } if (!File.Exists(filename)) { MessageBox.Show("生成PDF失败,请重新审核"); DeleteTempFile(blh); return("0"); } filePath = filename; if (zgq.UpPDF(blh, filename, ml, 0, ref errmsg, ref pdfpath)) { if (debug == "1") { log.WriteMyLog("上传PDF成功"); } filename = filePath.Substring(filePath.LastIndexOf('\\') + 1); ZGQClass.BGHJ(blh, "上传PDF", "审核", "上传PDF成功:" + ml + "\\" + filename, "ZGQJK", "上传PDF"); aa.ExecuteSQL("delete T_BG_PDF where F_BLBH='" + blbh + "'"); aa.ExecuteSQL( "insert into T_BG_PDF(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_ML,F_FILENAME,F_FilePath,F_PDFLX) values('" + blbh + "','" + blh + "','" + bglx + "','" + bgxh + "','" + ml + "\\" + blh + "','" + filename + "','" + pdfpath + "','')"); } else { MessageBox.Show("上传签字PDF失败,请重新审核\r\n" + errmsg); ZGQClass.BGHJ(blh, "上传PDF", "审核", "上传PDF失败:" + errmsg, "ZGQJK", "上传PDF"); } //上传pdf iPDFSign.SetImage(image); iPDFSign.RenderMode = 3; iPDFSign.SrcFileName = filePath; string szqm_filename = filePath.Replace(".pdf", "_szqm.pdf"); iPDFSign.DestFileName = szqm_filename; int xPos = int.Parse(ZGQClass.GetSZ("ca", "xPos", "350").Replace("\0", "").Trim()); int yPos = int.Parse(ZGQClass.GetSZ("ca", "yPos", "100").Replace("\0", "").Trim()); int width = int.Parse(ZGQClass.GetSZ("ca", "width", "80").Replace("\0", "").Trim()); int height = int.Parse(ZGQClass.GetSZ("ca", "height", "40").Replace("\0", "").Trim()); iPDFSign.SignPosition(1, xPos, yPos, width, height); if (File.Exists(szqm_filename)) { //上传签字的pdf if (zgq.UpPDF(blh, szqm_filename, ml, 0, ref errmsg, ref pdfpath)) { if (debug == "1") { log.WriteMyLog("上传签字PDF成功"); } szqm_filename = szqm_filename.Substring(szqm_filename.LastIndexOf('\\') + 1); ZGQClass.BGHJ(blh, "上传PDF", "审核", "上传签字PDF成功:" + ml + "\\" + szqm_filename, "ZGQJK", "上传PDF"); aa.ExecuteSQL("delete T_BG_PDF_CA where F_BLBH='" + blbh + "'"); log.WriteMyLog("insert into T_BG_PDF_CA(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_ML,F_FILENAME,F_FilePath,F_PDFLX) values('" + blbh + "','" + blh + "','" + bglx + "','" + bgxh + "','" + ml + "\\" + blh + "','" + szqm_filename + "','" + pdfpath + "','szqm')"); aa.ExecuteSQL( "insert into T_BG_PDF_CA(F_BLBH,F_BLH,F_BGLX,F_BGXH,F_ML,F_FILENAME,F_FilePath,F_PDFLX) values('" + blbh + "','" + blh + "','" + bglx + "','" + bgxh + "','" + ml + "\\" + blh + "','" + szqm_filename + "','" + pdfpath + "','szqm')"); } else { MessageBox.Show("上传签字PDF失败,请重新审核\r\n" + errmsg); ZGQClass.BGHJ(blh, "上传签字PDF", "审核", "上传PDF失败:" + errmsg, "ZGQJK", "上传PDF"); } } else { MessageBox.Show("PDF签字失败,请重新审核"); } DeleteTempFile(blh); return("1"); } else { MessageBox.Show("报告未审核"); return("0"); } } catch (Exception ee10) { MessageBox.Show("生成PDF异常,请重新审核\r\n" + ee10.Message); DeleteTempFile(blh); return("0"); } #endregion } } catch (Exception ee5) { MessageBox.Show("获取签名图像异常,请重新审核\r\n" + ee5.Message); return("0"); } } catch (Exception ee6) { MessageBox.Show("获取签名证书失败,请重新审核\r\n" + ee6.Message); return("0"); } #endregion } if (debug == "1") { MessageBox.Show("签字完成"); } return("1"); } #endregion #region 取消审核 if (type == "QXSH") { if (f.ReadString("ca", "qxshyz", "0").Trim().Replace("\0", "").Trim() == "1") { return(YZKEY(msg, yhmc, yhbh)); } return("1"); } #endregion #region 取消签字 if (type == "QXQZ") //&& (bglx == "BC" || bglx == "BD") { aa.ExecuteSQL("delete from T_SZQM where F_BLBH='" + blbh + "' "); aa.ExecuteSQL("delete from T_BG_PDF where F_BLBH='" + blbh + "' "); return("1"); } #endregion return("1"); }
public void BMPTOJPG(string F_blh, ref string jpgname, string rptpath) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable jcxx = new DataTable(); try { jcxx = aa.GetDataTable("select * from T_jcxx where F_blh='" + F_blh + "'", "jcxx"); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); return; } //Çå¿Õc:\tempĿ¼ if (!System.IO.Directory.Exists(@"c:\temp\" + F_blh)) { System.IO.Directory.CreateDirectory(@"c:\temp\" + F_blh); } else { try { System.IO.Directory.Delete(@"c:\temp\" + F_blh, true); System.IO.Directory.CreateDirectory(@"c:\temp\" + F_blh); } catch { } } DataTable txlb = aa.GetDataTable("select * from T_tx where F_blh='" + F_blh + "' and F_sfdy='1'", "txlb"); string txlbs = ""; string localpath = ""; downtx(F_blh, jcxx.Rows[0]["F_txml"].ToString().Trim(), aa, ref txlbs, ref localpath); if (localpath == "") { jpgname = ""; return; } string sbmp = ""; string stxsm = ""; string sJPGNAME = localpath + "\\" + F_blh + ".jpg"; string rptpath2 = "rpt"; if (rptpath.Trim() != "") rptpath2 = rptpath; string sBGGSName = Application.StartupPath.ToString() + "\\" + rptpath2 + "\\" + jcxx.Rows[0]["F_bggs"].ToString().Trim() + "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; string inibglj = f.ReadString("dybg", "dybglj", "").Replace("\0", ""); if (inibglj != "") { sBGGSName = inibglj + "\\" + rptpath2 + "\\" + jcxx.Rows[0]["F_bggs"].ToString().Trim() + "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; } for (int i = 0; i < txlb.Rows.Count; i++) { stxsm = stxsm + txlb.Rows[i]["F_txsm"].ToString().Trim() + ","; sbmp = sbmp + localpath + "\\" + txlb.Rows[i]["F_txm"].ToString().Trim() + ","; } if (f.ReadInteger("rpt", "szqm", 0) == 1) { string bmppath = f.ReadString("mdbmp", "ysbmp", "d:\\pathqc\\rpt\\ysbmp").Replace("\0", ""); stxsm = stxsm + " ,"; sbmp = sbmp + bmppath + "\\" + jcxx.Rows[0]["F_shys"].ToString().Trim() + ".bmp,"; sBGGSName = Application.StartupPath.ToString() + "\\rpt-szqm\\" + jcxx.Rows[0]["F_bggs"].ToString().Trim() + "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; if (inibglj != "") { sBGGSName = inibglj + "\\rpt-szqm\\" + jcxx.Rows[0]["F_bggs"].ToString().Trim() + "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; } } bggs = jcxx.Rows[0]["F_bggs"].ToString().Trim() + "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; string sSQL_DY = "SELECT * FROM T_JCXX,T_TBS_BG WHERE T_JCXX.F_BLH *= T_TBS_BG.F_BLH AND T_JCXX.F_BLH = '" + F_blh + "'"; prreport pr = new prreport(); pr.printjpg(sSQL_DY, IntPtr.Zero, sbmp, stxsm, sBGGSName, sJPGNAME,""); jpgname = sJPGNAME.Replace(".", "_1."); }
public void CAQM(string blh, string bglx, string bgxh, string msg, string debug, string dz) { bglx = bglx.ToLower(); if (bglx == "") { bglx = "cg"; } if (bgxh == "") { bgxh = "1"; } string blbh = blh + bglx + bgxh; if (bglx == "cg") { blbh = blh; } try { string yhmc = f.ReadString("yh", "yhmc", "").Replace("\0", ""); string yhbh = f.ReadString("yh", "yhbh", "").Replace("\0", ""); string CAQZ = f.ReadString("savetohis", "CAQZ", "1").Replace("\0", ""); debug = f.ReadString("savetohis", "debug", ""); dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable bljc = new DataTable(); bljc = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "blxx"); string logname = "PATHHISZGQJK"; if (bljc == null) { log.WriteMyLog("病理数据库设置有问题!", logname); return; } if (bljc.Rows.Count < 1) { log.WriteMyLog("病理号有错误", logname); return; } string bgzt = bljc.Rows[0]["F_BGZT"].ToString().Trim(); DataTable dt_bc = new DataTable(); if (bglx == "bc") { try { dt_bc = aa.GetDataTable("select * from T_bcbg where F_blh='" + blh + "' and F_bc_bgxh='" + bgxh + "'", "bc"); if (dt_bc.Rows.Count >= 0) { bgzt = dt_bc.Rows[0]["F_BC_BGZT"].ToString().Trim(); } } catch { } } DataTable dt_bd = new DataTable(); if (bglx == "bd") { try { dt_bd = aa.GetDataTable("select * from T_bdbg where F_blh='" + blh + "' and F_bd_bgxh='" + bgxh + "'", "bd"); if (dt_bc.Rows.Count >= 0) { bgzt = dt_bd.Rows[0]["F_BD_BGZT"].ToString().Trim(); } } catch { } } if (dz == "qxsh") { bgzt = "取消审核"; } //CA if (bgzt == "已审核" && CAQZ == "1") { XJCAClassKlmy xjca = new XJCAClassKlmy(); xjca.CaQZ(blh, bglx, bgxh, debug, bljc, yhmc, bgzt); } } catch { } }
public string CaQZ(string blh, string bglx, string bgxh, string debug, DataTable dt_cg, string yhmc, string bgzt) { string msg = f.ReadString("savetohis", "camsg", "0").Replace("\0", ""); string logname = "CAZGQJK"; dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); string blbh = blh; if (bglx == "bc" || bglx == "bd") { blbh = blh + bglx + bgxh; } try { if (debug == "1") { log.WriteMyLog("开始签字。。。", logname); } DataTable dt_bd = new DataTable(); DataTable dt_bc = new DataTable(); //补充审核 string sql_str = ""; if (bglx == "bc") { sql_str = "select * from T_BCBG where F_BLH='" + blh + "' and F_BC_BGZT='已审核' and F_BC_BGXH='" + bgxh + "'"; dt_bc = aa.GetDataTable(sql_str, "bcbg"); if (dt_bc.Rows.Count <= 0) { log.WriteMyLog("未查询到此补充报告" + blbh, logname); return("0"); } } //小冰冻审核 if (bglx == "bd") { sql_str = "select * from T_BDBG where F_BLH='" + blh + "' and F_BD_BGZT='已审核' and F_BD_BGXH='" + bgxh + "'"; dt_bd = aa.GetDataTable(sql_str, "bdbg"); if (dt_bd.Rows.Count <= 0) { log.WriteMyLog("未查询到此冰冻报告" + blbh, logname); return("0"); } } string TimeSign_XML = ""; //时间戳服务地址 string yztime = f.ReadString("CA", "yztime", "0"); if (yztime == "1") { string timeip = f.ReadString("CA", "timeip_web", "http://172.20.89.23:8080/xjcaTimestamp/services/sign"); string hash = blbh + "^" + dt_cg.Rows[0]["F_XM"].ToString().Trim() + "^" + dt_cg.Rows[0]["F_NL"].ToString().Trim() + "^" + dt_cg.Rows[0]["F_XM"].ToString().Trim() + "^" + dt_cg.Rows[0]["F_BRBH"].ToString().Trim() + "^" + dt_cg.Rows[0]["F_SQXH"].ToString().Trim() + "^" + dt_cg.Rows[0]["F_ZYH"].ToString().Trim() + "^" + dt_cg.Rows[0]["F_MZH"].ToString().Trim() + "^" + dt_cg.Rows[0]["F_SFZH"].ToString().Trim(); if (debug == "1") { log.WriteMyLog("验证时间戳:" + blbh + "\n" + hash, logname); } //返回值时间戳xml(TimeSign_XML)需要写人数据库 StringBuilder md5 = new StringBuilder(Getmd5(hash)); try { TimeSign_XML = XJCA_TimeSign(timeip, blbh, md5); } catch (Exception ee2) { if (msg == "1") { MessageBox.Show("CA签名:时间戳验证失败:" + ee2.Message); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "时间戳验证失败:" + ee2.Message, "ZGQJK", "CA签名"); log.WriteMyLog("CA签名:时间戳验证失败:" + ee2.Message, logname); return("0"); } if (debug == "1") { log.WriteMyLog("CA签名:TimeSign_XML:" + TimeSign_XML, logname); } if (debug == "1") { log.WriteMyLog("CA签名:时间戳完成", logname); } } //签章---------------------------------- if (debug == "1") { log.WriteMyLog("CA签名:开始签章。。。", logname); } //签章原文 string xmlstr = ""; string bgwy = ""; if (bglx == "cg" || bglx == "") { xmlstr = xmlstr + "<F_BLZD><![CDATA[" + dt_cg.Rows[0]["F_BLZD"].ToString() + "]]></F_BLZD>"; xmlstr = xmlstr + "<F_BGYS>" + dt_cg.Rows[0]["F_BGYS"].ToString() + "</F_BGYS>"; xmlstr = xmlstr + "<F_SHYS>" + dt_cg.Rows[0]["F_SHYS"].ToString() + "</F_SHYS>"; xmlstr = xmlstr + "<F_BGRQ>" + dt_cg.Rows[0]["F_BGRQ"].ToString() + "</F_BGRQ>"; xmlstr = xmlstr + "<F_SPARE5>" + dt_cg.Rows[0]["F_spare5"].ToString() + "</F_SPARE5>"; xmlstr = xmlstr + "<F_BGLX>" + "cg1" + "</F_BGLX>"; } if (bglx == "bc" && dt_bc.Rows.Count > 0) { xmlstr = xmlstr + "<F_BLZD><![CDATA[" + dt_bc.Rows[0]["F_BCZD"].ToString() + "]]></F_BLZD>"; xmlstr = xmlstr + "<F_BGYS>" + dt_bc.Rows[0]["F_BC_BGYS"].ToString() + "</F_BGYS>"; xmlstr = xmlstr + "<F_SHYS>" + dt_bc.Rows[0]["F_BC_SHYS"].ToString() + "</F_SHYS>"; xmlstr = xmlstr + "<F_BGRQ>" + dt_bc.Rows[0]["F_BC_BGRQ"].ToString() + "</F_BGRQ>"; xmlstr = xmlstr + "<F_SPARE5>" + dt_bc.Rows[0]["F_BC_spare5"].ToString() + "</F_SPARE5>"; xmlstr = xmlstr + "<F_BGLX>" + "bc" + bgxh + "</F_BGLX>"; } if (bglx == "bd") { xmlstr = xmlstr + "<F_BLZD><![CDATA[" + dt_bd.Rows[0]["F_BDZD"].ToString() + "]]></F_BLZD>"; xmlstr = xmlstr + "<F_BGYS>" + dt_bd.Rows[0]["F_BD_BGYS"].ToString() + "</F_BGYS>"; xmlstr = xmlstr + "<F_SHYS>" + dt_bd.Rows[0]["F_BD_SHYS"].ToString() + "</F_SHYS>"; xmlstr = xmlstr + "<F_BGRQ>" + dt_bd.Rows[0]["F_BD_BGRQ"].ToString() + "</F_BGRQ>"; xmlstr = xmlstr + "<F_SPARE5>" + dt_bd.Rows[0]["F_BD_BGRQ"].ToString() + "</F_SPARE5>"; xmlstr = xmlstr + "<F_BGLX>" + "bd" + dt_bd.Rows[0]["F_BD_BGXH"].ToString() + "</F_BGLX>"; } if (xmlstr == "") { log.WriteMyLog("CA签名:签章数据内容为空,请重新审核", logname); if (msg == "1") { MessageBox.Show("CA签名失败:签章数据内容为空"); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "签章数据内容为空", "ZGQJK", "CA签名"); return("0"); } string bgyw = ""; bgyw = "<BL>"; bgyw = bgyw + "<F_BLBH>" + blbh + "</F_BLBH>"; bgyw = bgyw + "<F_BLH>" + blh + "</F_BLH>"; bgyw = bgyw + "<F_XM>" + blh + "</F_XM>"; bgyw = bgyw + "<F_XB>" + blh + "</F_XB>"; bgyw = bgyw + "<F_NL>" + blh + "</F_NL>"; bgyw = bgyw + "<F_ZYH>" + blh + "</F_ZYH>"; bgyw = bgyw + "<F_MZH>" + blh + "</F_MZH>"; bgyw = bgyw + "<F_SQXH>" + blh + "</F_SQXH>"; bgyw = bgyw + "<F_YZID>" + blh + "</F_YZID>"; bgyw = bgyw + "<F_BRBH>" + blh + "</F_BRBH>"; bgyw = bgyw + "<F_SFZH>" + blh + "</F_SFZH>"; bgyw = bgyw + "<F_SDRQ>" + blh + "</F_SDRQ>"; bgyw = bgyw + "<F_CH>" + blh + "</F_CH>"; bgyw = bgyw + xmlstr + "</BL>"; if (debug == "1") { log.WriteMyLog("CA签名:签章内容:" + bgyw, logname); } try { int len = 0; StringBuilder signxml = new StringBuilder(100000); bool qzrtn = XJCA_SignSeal(Getmd5(bgyw), signxml, ref len); if (debug == "1") { log.WriteMyLog("CA签名:" + signxml.ToString(), logname); } if (!qzrtn) { log.WriteMyLog("CA签名:数字签名失败,请重新审核" + qzrtn, logname); if (msg == "1") { MessageBox.Show("CA签名:数字签名失败,请重新审核" + qzrtn); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:数字签名失败" + qzrtn, "ZGQJK", "CA签名"); return("0"); } else { string sign = signxml.ToString().Trim(); if (sign == "") { log.WriteMyLog("CA签名:KEY密码验证失败:签名失败", logname); if (msg == "1") { MessageBox.Show("CA签名:KEY密码验证失败:签名失败"); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:KEY密码验证失败:签名失败", "ZGQJK", "CA签名"); return("0"); } if (sign.Split(',')[0].Trim() == "") { log.WriteMyLog("CA签名:KEY密码验证失败:签名失败", logname); if (msg == "1") { MessageBox.Show("CA签名失败:KEY密码验证失败:签名失败"); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:KEY密码验证失败:签名失败", "ZGQJK", "CA签名"); return("0"); } if (debug == "1") { log.WriteMyLog("CA签名:签字通过,解析返回值", logname); } try { // 签章返回的信息signxml 包含签章数据,证书内容,证书id,以“,”隔开,保存签章数据和证书id string[] getsignxml = signxml.ToString().Split(','); //签章数据 string signxml_str = getsignxml[0]; //证书内容 string cert = getsignxml[1]; //证书id string certID = getsignxml[2]; //将signxml,,TimeSign_XML等返回值 存入数据库------------- try { string sqlstr = "insert into T_CAXX(F_blbh,blh,RQ,KeyName,bgnr,TimeSign_XML,signxml,cert,certID) values ('" + blbh + "','" + blh + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + yhmc + "','" + bgyw + "','" + TimeSign_XML + "','" + signxml.ToString() + "','" + cert + "','" + certID + "') "; int x = SQL_ExecuteNonQuery(sqlstr); if (x <= 0) { log.WriteMyLog("CA签名:写入数据库T_SZQM失败", logname); if (msg == "1") { MessageBox.Show("CA签名:写入数据库T_SZQM失败"); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:写入数据库T_SZQM失败", "ZGQJK", "CA签名"); return("0"); } else { if (debug == "1") { log.WriteMyLog("CA签名:插入T_SZQM完成", logname); } if (bglx == "cg") { aa.ExecuteSQL("update T_JCXX set F_SZQZ='1' where F_BLH='" + blh + "'"); } if (bglx == "bc") { aa.ExecuteSQL("update T_BCBG set F_SZQZ='1' where F_BLH='" + blh + "' and F_bc_bgxh='" + bgxh + "'"); } if (bglx == "bd") { aa.ExecuteSQL("update T_BDBG set F_SZQZ='1' where F_BLH='" + blh + "' and F_bd_bgxh='" + bgxh + "'"); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:签名成功", "ZGQJK", "CA签名"); } } catch (Exception ee7) { log.WriteMyLog("CA签名:写入数据库异常:" + ee7.Message, logname); if (msg == "1") { MessageBox.Show("CA签名:写入数据库异常:" + ee7.Message); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:写入数据库异常:" + ee7.Message, "ZGQJK", "CA签名"); return("0"); } } catch (Exception ee8) { log.WriteMyLog("CA签名:解析签名数据异常:" + ee8.Message, logname); if (msg == "1") { MessageBox.Show("CA签名:解析签名数据异常:" + ee8.Message); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:解析签名数据异常:" + ee8.Message, "ZGQJK", "CA签名"); return("0"); } } log.WriteMyLog("CA签名:签名完成", logname); } catch (Exception ee9) { log.WriteMyLog("CA签名:签名异常:" + ee9.Message, logname); if (msg == "1") { MessageBox.Show("CA签名:签名异常:" + ee9.Message); } ZgqClass.BGHJ(blh, yhmc, "数字签名", "CA签名:签名异常:" + ee9.Message, "ZGQJK", "CA签名"); return("0"); } //---------------------------------------------- //----------------获取签章图片---------------------- //---------------------------------------------- string getbmpfs = f.ReadString("CA", "getbmpfs", "2").Replace("\0", "").Trim(); string upbmpfs = f.ReadString("CA", "upbmpfs", "0").Replace("\0", "").Trim(); string bmppath = ZgqClass.GetSz("view", "szqmlj", Application.StartupPath.ToString() + "\\rpt-szqm\\ysbmp").Replace("\0", ""); if (getbmpfs == "0") { goto GetEwm; } if (getbmpfs == "2") { if (File.Exists(bmppath + "\\" + yhmc + ".bmp")) { goto GetEwm; } } if (!Directory.Exists(Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\")) { Directory.CreateDirectory(Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\"); } if (debug == "1") { log.WriteMyLog("获取签章图片开始。。。", logname); } bool ss = XJCA_GetSealBMPB(Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\" + yhmc + ".bmp", 1); // XJCA_ResetDevice(); if (ss) { if (!File.Exists(Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\" + yhmc + ".bmp")) { log.WriteMyLog("获取签章图片失败" + Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\" + yhmc + ".bmp", logname); } if (debug == "1") { log.WriteMyLog("获取签章图片成功,开始上传。。", logname); } if (upbmpfs == "1") { if (debug == "1") { log.WriteMyLog("上传签名图片:" + Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\" + yhmc + ".bmp --->" + bmppath + yhmc + ".bmp", logname); } File.Copy(Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\" + yhmc + ".bmp", bmppath + yhmc + ".bmp", true); if (!File.Exists(bmppath + yhmc + ".bmp")) { log.WriteMyLog("签章图片上传失败" + bmppath + yhmc + ".bmp", logname); return("0"); } if (debug == "1") { log.WriteMyLog("签章图片上传成功", logname); } return("1"); } if (upbmpfs == "2") { ///////上传签章图片至ftp--------------------- string ftpServerIP = f.ReadString("ftp", "ftpip", ""); string ftpUserID = f.ReadString("ftp", "user", ""); string ftpPassword = f.ReadString("ftp", "pwd", ""); string ftpszqmpath = f.ReadString("ca", "ftpszqmpath", "/pathsetup/pathqc/rpt-szqm/YSBMP/"); string ftpURI = "ftp://" + ftpServerIP + "/" + ftpszqmpath + "/"; string status = ""; FtpWeb fw = new FtpWeb(ftpServerIP, ftpszqmpath, ftpUserID, ftpPassword); fw.Upload(Application.StartupPath.ToString() + "\\rpt-szqm\\YSBMP\\" + yhmc + ".bmp", "", out status); if (status == "Error") { log.WriteMyLog("CA签名:签章图片上传失败,请重新审核", logname); return("0"); } if (debug == "1") { log.WriteMyLog("签章图片上传成功", logname); } } } else { if (debug == "1") { log.WriteMyLog("签章图片获取失败,请重新审核", logname); } return("1"); } /////验章 // XJCAverify.(M_signxml, M_signxml.Length, Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\" + blbh + "EWM.BMP", 7, 3, 3, 0); GetEwm: # region 获取二维码图片 string get2wm = f.ReadString("ca", "get2wm", "0").Replace("\0", ""); if (get2wm == "1") { if (!Directory.Exists(Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\")) { Directory.CreateDirectory(Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\"); } else { DirectoryInfo dir = new DirectoryInfo(Application.StartupPath.ToString() + @"\rpt-szqm\MakePdfFile\"); foreach (FileInfo ff in dir.GetFiles("*.*")) { ff.Delete(); } } StringBuilder M_signxml = new StringBuilder(blbh, 10000); XJCA_MakePdf417ToFile(M_signxml, M_signxml.Length, Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\" + blbh + "EWM.BMP", 7, 3, 3, 0); //XJCA_ResetDevice(); if (!File.Exists(Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\" + blbh + "EWM.BMP")) { log.WriteMyLog("二维码不存在" + Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\" + blbh + "EWM.BMP", logname); return("1"); } string up2wmfs = f.ReadString("ca", "up2wmfs", "1").Replace("\0", ""); if (up2wmfs == "1") { string ewmpath = f.ReadString("ca", "ewmpath", Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile").Replace("\0", ""); if (debug == "1") { log.WriteMyLog("上传二维码图片:" + Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\" + blbh + "EWM.BMP --->" + ewmpath + "\\" + blbh + "EWM.BMP", logname); } File.Copy(Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\" + blbh + "EWM.BMP", ewmpath + "\\" + blbh + "EWM.BMP", true); if (!File.Exists(ewmpath + "\\" + blbh + "EWM.BMP")) { log.WriteMyLog("二维码图片上传失败" + ewmpath + "\\" + blbh + "EWM.BMP", logname); return("0"); } if (debug == "1") { log.WriteMyLog("二维码图片上传成功", logname); } return("1"); } if (upbmpfs == "2") { ///////上传签章图片至ftp--------------------- string ftpServerIP = f.ReadString("ftp", "ftpip", ""); string ftpUserID = f.ReadString("ftp", "user", ""); string ftpPassword = f.ReadString("ftp", "pwd", ""); string ftpewmpath = f.ReadString("ca", "ftpewmpath", "/pathimages/szqm/MakePdfFile/"); string ftpURI = "ftp://" + ftpServerIP + "/" + ftpewmpath + "/"; string status = ""; FtpWeb fw = new FtpWeb(ftpServerIP, ftpewmpath, ftpUserID, ftpPassword); fw.Upload(Application.StartupPath.ToString() + "\\rpt-szqm\\MakePdfFile\\" + blbh + "EWM.BMP", "", out status); if (status == "Error") { log.WriteMyLog("二维码图片上传失败,请重新审核!", logname); return("0"); } if (debug == "1") { log.WriteMyLog("二维码图片上传成功", logname); } } } return("1"); } catch (Exception ee1) { log.WriteMyLog(ee1.Message, logname); return("0"); } #endregion }
public void pathtohis(string blh, string debug) { dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); msg = f.ReadString("savetohis", "msg", ""); DataTable jcxx = new DataTable(); try { jcxx = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "jcxx"); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); return; } if (jcxx == null) { MessageBox.Show("病理数据库设置有问题!"); log.WriteMyLog("病理数据库设置有问题!"); return; } if (jcxx.Rows.Count < 1) { MessageBox.Show("病理号有错误!"); log.WriteMyLog("病理号有错误!"); return; } if (jcxx.Rows[0]["F_brlb"].ToString().Trim() != "体检") { //不检查审核状态 if (jcxx.Rows[0]["F_bgzt"].ToString().Trim() != "已审核") { return; } //string bgzt = dataGridView1.CurrentRow.Cells["报告状态"].Value.ToString().Trim(); if (jcxx.Rows[0]["F_brbh"].ToString().Trim() == "") { log.WriteMyLog(blh + ",无病人编号,不处理!"); return; } string brlb = ""; string brbh = ""; string brxb = ""; string zyh = ""; string yzid = ""; string shys = jcxx.Rows[0]["F_SHYS"].ToString().Trim(); string sdrq = jcxx.Rows[0]["F_sdrq"].ToString().Trim(); string bgrq = jcxx.Rows[0]["F_bgrq"].ToString().Trim(); brxb = jcxx.Rows[0]["F_xb"].ToString().Trim(); brxm = jcxx.Rows[0]["F_xm"].ToString().Trim(); brbh = jcxx.Rows[0]["F_brbh"].ToString().Trim(); // blh = jcxx.Rows[0]["F_blh"].ToString().Trim(); zyh = jcxx.Rows[0]["F_zyh"].ToString().Trim(); yzid = jcxx.Rows[0]["F_yzid"].ToString().Trim(); string his_blh = ""; if (jcxx.Rows[0]["F_brlb"].ToString().Trim() == "住院") { brlb = "1"; his_blh = jcxx.Rows[0]["F_zyh"].ToString().Trim(); //zybh = jcxx.Rows[0]["F_yzid"].ToString().Trim(); } else { if (jcxx.Rows[0]["F_brlb"].ToString().Trim() == "门诊") { brlb = "0"; his_blh = jcxx.Rows[0]["F_mzh"].ToString().Trim(); } //zybh = jcxx.Rows[0]["F_brbh"].ToString().Trim(); } bg01(brlb, brbh, blh, "1", his_blh, brxb, bgrq, yzid, sdrq, shys); } else { //------------------------------ // string msg = f.ReadString("savetohis", "msg", ""); //string odbcstr = f.ReadString("savetohis", "odbcsql", "Data Source=192.168.0.1;Initial Catalog=zonekingnet;User Id=sa;Password=zoneking;"); //获取sz.ini中设置的odbcsql string odbcstr = f.ReadString("savetohis", "odbcsql", "DSN=pathnet-tj;UID=sa;PWD=zoneking;"); //获取sz.ini中设置的odbcsql if (jcxx.Rows[0]["F_SQXH"].ToString().Trim() == "") { log.WriteMyLog("无体检号申请单号,不处理!"); return; } if (jcxx.Rows[0]["F_BGZT"].ToString().Trim() == "已审核") { string jpgname = ""; string ftpstatus = ""; mdjpg mdj = new mdjpg(); try { mdj.BMPTOJPG(blh, ref jpgname, "", ""); } catch (Exception ee) { MessageBox.Show(ee.ToString()); } if (msg == "1") { MessageBox.Show("生成jpg成功"); } //---上传jpg---------- //----------------上传签章jpg至ftp--------------------- string status = ""; string ftps = f.ReadString("ftp", "ftp", "").Replace("\0", ""); string ftpServerIP = f.ReadString("ftp", "ftpip", "").Replace("\0", ""); string ftpUserID = f.ReadString("ftp", "user", "ftpuser").Replace("\0", ""); string ftpPassword = f.ReadString("ftp", "pwd", "ftp").Replace("\0", ""); string ftplocal = f.ReadString("ftp", "ftplocal", "c:\\temp").Replace("\0", ""); string ftpRemotePath = f.ReadString("ftp", "bgjpgPath", "pathimages/bgjpg").Replace("\0", ""); string tjtxpath = f.ReadString("savetohis", "tjtxpath", "bgjpg"); string jpgpath = ""; if (ftps == "1") { FtpWeb fw = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword); string ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/"; try { //判断ftp上是否存在该jpg文件 if (fw.fileCheckExist(ftpURI, blh + "_1.jpg")) { //删除ftp上的jpg文件 fw.fileDelete(ftpURI, blh + "_1.jpg").ToString(); } //上传新生成的jpg文件 fw.Upload("C:\\temp\\" + blh + "\\" + blh + "_1.jpg", "", out status); if (status == "Error") { MessageBox.Show("报告jpg上传失败,请重新审核!"); return; } } catch { if (msg == "1") { MessageBox.Show("上传报告jpg文件异常"); } return; } } else { if (tjtxpath == "") { log.WriteMyLog("sz.ini txpath图像目录未设置"); return; } try { File.Copy(ftplocal + "\\" + blh + "\\" + blh + "_1.jpg", tjtxpath + "\\" + blh + "_1.jpg", true); } catch (Exception ee) { log.WriteMyLog("源路径:" + ftplocal + "\\" + blh + "_1.jpg" + "\n" + " 目标路径:" + tjtxpath + "\\" + blh + "_1.jpg"); log.WriteMyLog("复制文件异常!" + ee.ToString()); return; } } if (msg == "1") { MessageBox.Show("上传报告jpg文件完成"); } try { if (System.IO.Directory.Exists(@"c:\temp\" + blh)) { System.IO.Directory.Delete(@"c:\temp\" + blh, true); } } catch { log.WriteMyLog("删除临时目录" + blh + "失败"); return; } ////////////////////////////////////////////////////////// ///////回写体检数据库-T_SYN_TCT_CHECK//////////////////////////////////// string tj_blzd = jcxx.Rows[0]["F_blzd"].ToString().Trim(); string tj_jcsj = jcxx.Rows[0]["F_rysj"].ToString().Trim(); string tj_ysyj = jcxx.Rows[0]["F_BZ"].ToString().Trim(); DataTable TJ_bljc = new DataTable(); TJ_bljc = aa.GetDataTable(" select * from T_TBS_BG where F_blh='" + blh + "'", "blxx"); if (TJ_bljc.Rows.Count > 0) { if (jcxx.Rows[0]["F_blk"].ToString().Trim() == "TCT体检" || jcxx.Rows[0]["F_blk"].ToString().Trim() == "TCT") { tj_jcsj = "标本满意度:" + TJ_bljc.Rows[0]["F_TBS_BBMYD"].ToString().Trim() + "\n" + TJ_bljc.Rows[0]["f_tbs_xbl"].ToString().Trim() + "\n"; tj_jcsj = tj_jcsj + TJ_bljc.Rows[0]["F_TBS_XBXM1"].ToString().Trim() + "\n" + TJ_bljc.Rows[0]["F_TBS_XBXM2"].ToString().Trim() + "\n"; tj_jcsj = tj_jcsj + TJ_bljc.Rows[0]["F_TBS_XBXM3"].ToString().Trim() + "\n"; tj_jcsj = tj_jcsj + "病原微生物:" + TJ_bljc.Rows[0]["F_TBS_WSW6"].ToString().Trim() + "\n" + TJ_bljc.Rows[0]["F_TBS_WSW2"].ToString().Trim() + "\n" + TJ_bljc.Rows[0]["F_TBS_WSW1"].ToString().Trim() + "\n"; tj_jcsj = tj_jcsj + TJ_bljc.Rows[0]["F_TBS_WSW3"].ToString().Trim() + "\n" + TJ_bljc.Rows[0]["F_TBS_BDXM1"].ToString().Trim() + "\n"; //////////////////////////////////// tj_blzd = "诊断:" + TJ_bljc.Rows[0]["F_TBSZD"].ToString().Trim() + "\n" + "炎症程度:" + TJ_bljc.Rows[0]["F_TBS_YZCD"].ToString().Trim(); if (TJ_bljc.Rows[0]["F_TBS_BCYJ1"].ToString().Trim() != "") { tj_ysyj = tj_ysyj + "补充意见1:" + TJ_bljc.Rows[0]["F_TBS_BCYJ1"].ToString().Trim() + "\n"; } if (TJ_bljc.Rows[0]["F_TBS_BCYJ2"].ToString().Trim() != "") { tj_ysyj = tj_ysyj + "补充意见2:" + TJ_bljc.Rows[0]["F_TBS_BCYJ2"].ToString().Trim() + "\n"; } } } tj_blzd = tj_blzd + "\n" + tj_ysyj; if (msg == "1") { MessageBox.Show(tj_jcsj); MessageBox.Show(tj_blzd); } string cmdtxt = @"insert into T_SYN_TCT_CHECK(PACS_CheckID,CISID,PACSItemCode,PatientNameChinese,PatientSex,StudyType,StudyBodyPart,ClinicDiagnose,ClinicSymptom,ClinicAdvice,IMGStrings,StudyState,Check_Doc,Check_Date,Report_Doc,Report_Date,Audit_Doc,Audit_Date) values(" + "'" + jcxx.Rows[0]["F_SQXH"].ToString().Trim() + "','" + jcxx.Rows[0]["F_BRBH"].ToString().Trim() + "','" + jcxx.Rows[0]["F_YZID"].ToString().Trim() + "','" + jcxx.Rows[0]["F_XM"].ToString().Trim() + "','" + jcxx.Rows[0]["F_XB"].ToString().Trim() + "'," + "'BL','" + jcxx.Rows[0]["F_bbmc"].ToString().Trim() + "','" + tj_blzd + "','" + tj_jcsj + "','','" + @"pathimages/bgjpg/" + blh + "_1.jpg" + "',5,'" + jcxx.Rows[0]["F_BGYS"].ToString().Trim() + "','" + jcxx.Rows[0]["F_SDRQ"].ToString().Trim() + "'," + "'" + jcxx.Rows[0]["F_bgys"].ToString().Trim() + "','" + jcxx.Rows[0]["F_bgrq"].ToString().Trim() + "','" + jcxx.Rows[0]["F_shys"].ToString().Trim() + "','" + jcxx.Rows[0]["F_SPARE5"].ToString().Trim() + "')"; // int x = SQL_ExecuteNonQuery(odbcstr, cmdtxt, msg); int x = Odbc_ExecuteNonQuery(odbcstr, cmdtxt, msg); if (msg == "1") { MessageBox.Show("影响行数:" + x.ToString()); } if (x < 1) { log.WriteMyLog("回写体检接口失败。"); } else { aa.ExecuteSQL("update T_JCXX set F_SCBJ='1' where F_BLH='" + blh.Trim() + "'"); } } else { if (jcxx.Rows[0]["F_SCBJ"].ToString().Trim() == "1") { string cmdtxt = "delete from T_SYN_TCT_CHECK where PACS_CheckID='" + jcxx.Rows[0]["F_SQXH"].ToString().Trim() + "' and CISID='" + jcxx.Rows[0]["F_BRBH"].ToString().Trim() + "' and PACSItemCode='" + jcxx.Rows[0]["F_YZID"].ToString().Trim() + "'"; int x = Odbc_ExecuteNonQuery(odbcstr, cmdtxt, msg); } } } }
public void pathtohis(string blh, string yymc) { //安全校验凭证,凭证既是接口的检验码,也是调用方的身份标识,由集成平台提供给LIS、PACS. string certificate = "7pzOrESsiv8VnB6RD2FXmndLaJCYpiY7"; blhgy = blh; string msg = f.ReadString("savetohis", "msg", ""); dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable bljc = new DataTable(); bljc = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "blxx"); if (bljc == null) { MessageBox.Show("病理数据库设置有问题!"); log.WriteMyLog("病理数据库设置有问题!"); return; } if (bljc.Rows.Count < 1) { MessageBox.Show("病理号有错误!"); log.WriteMyLog("病理号有错误!"); return; } if (bljc.Rows[0]["F_sqxh"].ToString().Trim() == "") { log.WriteMyLog("无申请序号(单据号),不处理!"); return; } string visitType = ""; //// --就诊类型(1门急诊2住院 3体检) string visitNo = ""; //门诊号或住院号 string brlb = bljc.Rows[0]["F_brlb"].ToString().Trim(); if (brlb == "门诊") { visitType = "1"; visitNo = bljc.Rows[0]["F_MZH"].ToString().Trim(); } if (brlb == "住院") { visitType = "2"; visitNo = bljc.Rows[0]["F_zyh"].ToString().Trim(); } if (brlb == "体检") { visitType = "3"; } //string sqxh=bljc.Rows[0]["F_sqxh"].ToString().Trim(); string zt = bljc.Rows[0]["F_bgzt"].ToString().Trim(); //string pacsBillNo = bljc.Rows[0]["F_blh"].ToString().Trim(); string ztbm = "3"; //状态编号 int reAuditFlag = 0; //是否重复审核 if (zt == "已登记") { ztbm = "3"; } if (zt == "已取材") { ztbm = "5"; } if (zt == "已写报告") { ztbm = "6"; } int F_SFCFSH = 0; try { F_SFCFSH = int.Parse(bljc.Rows[0]["F_SFCFSH"].ToString().Trim()); } catch { } if (zt == "已审核") { ztbm = "7"; if (F_SFCFSH >= 1) { reAuditFlag = 1; } } string yhmc = f.ReadString("yh", "yhmc", "").Replace("\0", "");; string yhbh = f.ReadString("yh", "yhbh", "").Replace("\0", ""); // // 更改报告状态 //if (bljc.Rows[0]["F_sqxh"].ToString().Trim() == "") // sqxh = " "; string xmlstr = "<?xml version='1.0' encoding='UTF-8'?>"; try { xmlstr = xmlstr + "<root>"; xmlstr = xmlstr + "<visitType>" + visitType + "</visitType>"; // --就诊类型(1门急诊2住院 3体检) xmlstr = xmlstr + "<visitNo>" + bljc.Rows[0]["F_by2"].ToString().Trim() + "</visitNo>"; //--门诊挂号号/住院号/体检号/条码号 xmlstr = xmlstr + "<patientId>" + bljc.Rows[0]["F_BRBH"].ToString().Trim() + "</patientId>"; // -- 病人ID xmlstr = xmlstr + "<pacsBillNo>" + bljc.Rows[0]["F_BLH"].ToString().Trim() + "</pacsBillNo>"; //--pacs报告单号 xmlstr = xmlstr + "<hisApplyNo>" + bljc.Rows[0]["F_SQXH"].ToString().Trim() + "</hisApplyNo>"; //--his单据号 xmlstr = xmlstr + "<clinicCode></clinicCode>"; //HIS收费项目代码 xmlstr = xmlstr + "<clinicName></clinicName>"; // 项目名称 xmlstr = xmlstr + "<reportStatus>" + ztbm + "</reportStatus>"; // -- 报告状态编码 xmlstr = xmlstr + "<reAuditFlag>" + reAuditFlag + "</reAuditFlag>"; //-重复审核标志:1-标识重复审核 xmlstr = xmlstr + "<changeTime>" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "</changeTime>"; // -- 改变时间 xmlstr = xmlstr + "<changeOperator>" + yhmc + "/" + yhbh + "</changeOperator>"; // --修改操作人:姓名/工号 xmlstr = xmlstr + "</root>"; } catch { if (msg == "1") { MessageBox.Show("生成xml异常!"); } log.WriteMyLog("生成xml异常"); return; } try { klmyWeb.WSInterface klmy = new PathHISZGQJK.klmyWeb.WSInterface(); string webServicesURL = f.ReadString("savetohis", "webServicesURL", ""); if (webServicesURL.Trim() != "") { klmy.Url = webServicesURL; } string ztstr = klmy.CallInterface("UpdatePacsReportStatus", xmlstr, "", certificate); if (ztstr.Contains("error")) { if (msg == "1") { MessageBox.Show("回传报告状态失败!原因:" + ztstr); } log.WriteMyLog("回传报告状态失败!原因:" + ztstr); } else { if (msg == "1") { MessageBox.Show("回传报告状态成功!"); } } } catch (Exception e) { if (msg == "1") { MessageBox.Show("回传报告状态异常!"); } log.WriteMyLog("回传报告状态异常!原因:" + e.ToString()); return; } if (zt == "已审核") { try { aa.ExecuteSQL("update T_JCXX set F_SFCFSH='" + (F_SFCFSH + 1).ToString() + "' where F_BLH='" + blh + "'"); } catch { return; } } return; }
public string ca(string yhxx) { string webservices = ""; //-------获取sz中设置的参数--------------------- string msg = f.ReadString("CA", "msg", ""); string web = f.ReadString("CA", "webservices", ""); if (web.Trim() != "") { webservices = web; } string appid_1 = f.ReadString("CA", "appid", ""); if (web.Trim() != "") { appid = appid_1; } string getblh = ""; string type = ""; string type2 = ""; string yhm = ""; string yhmc = ""; string yhbh = ""; string yhmm = ""; string bglx = ""; string bgxh = ""; string keyname = ""; string[] getyhxx = yhxx.Split('^'); if (getyhxx.Length == 5) { type = getyhxx[0]; yhm = getyhxx[1]; yhmc = getyhxx[3]; yhbh = getyhxx[2]; yhmm = getyhxx[4]; } else { type2 = getyhxx[0]; getblh = getyhxx[1]; bgxh = getyhxx[2]; bglx = getyhxx[3]; type = getyhxx[4]; yhm = getyhxx[5]; yhmc = getyhxx[6]; yhbh = getyhxx[7]; yhmm = getyhxx[8]; } //Login_CA("SHQTYSZQZ^" + psCURBLH + "^1^CG^QXSH^" + psYHM + "^" + psYHMC + "^" + psYHBH + "^" + psYHMM) // 获取key盘信息--------------------------------------------------------------------------------------------- xjcaTechATLLib.xjcaTechATLLib xj = new xjcaTechATLLib.xjcaTechATLLib(); try { ////调控件 // MessageBox.Show(xj.XJCA_CspInstalled("HaiTai Cryptographic Service Provider for xjca").ToString()); //MessageBox.Show(xj.XJCA_CspInstalled("HaiTai Cryptographic Service Provider for xjca").ToString()); //if (xj.XJCA_CspInstalled("HaiTai Cryptographic Service Provider for xjca").ToString() == "0") //{ // MessageBox.Show("驱动未安好"); // return "0"; //} //if (xj.XJCA_KeyInsert("HaiTai Cryptographic Service Provider for xjca").ToString() == "1") //{ // MessageBox.Show("key未插入"); // return "0"; //} //调动态库 if (XJCAverify.XJCA_CspInstalled() == false) { MessageBox.Show("驱动未安好"); return("0"); } if (XJCAverify.XJCA_KeyInserted() == false) { MessageBox.Show("key未插入"); return("0"); } } catch { } //-------------验证key盘是否插入------------------------------------------------------------------------------- string dn = ""; string[] aaa_ca; try { ////调动态库 ////-----SN--- //StringBuilder sn_strB = new StringBuilder(100); //int sn_len = 0; //XJCAverify.XJCA_GetCertSN(2, sn_strB, ref sn_len); //SN = sn_strB.ToString(); ////----DN-------- //StringBuilder dn = new StringBuilder(400); //int dn_len = 0; //XJCAverify.XJCA_GetCertDN(dn, ref dn_len); //调控件 //---SN----- string KeyID = xj.XJCA_GetCertSN(); //----DN---------------- dn = xj.XJCA_GetCertDN(); if (KeyID.Trim() == "") { MessageBox.Show("证书序列号为空"); return("0"); } if (dn.Trim() == "10011") { MessageBox.Show("KEY盘未插入,请插入KEY盘!!!"); return("0"); } aaa_ca = dn.ToString().Split(','); } catch { MessageBox.Show("KEY盘未插入,请插入KEY盘!!!"); return("0"); } //---------------------------------------------- //--------------获取KEY中用户名-------------------- //---------------------------------------------- try { keyname = aaa_ca[aaa_ca.Length - 1].Substring(4); if (keyname.Contains(".")) { if (!keyname.Contains(yhmc)) { MessageBox.Show("当前操作人与KEY用户不符,不能执行此操作!!!"); return("0"); } } else { if (yhmc.Trim() != keyname) { MessageBox.Show("当前操作人与KEY用户不符,不能执行此操作!!!"); return("0"); } } } catch { MessageBox.Show("KEY盘未插入"); return("0"); } try { keyname = aaa_ca[aaa_ca.Length - 1].Substring(4); string keyYHGH = aaa_ca[1].Substring(3); string xml = xj.XJCA_CertAuth(webservice, appid, keyname); if (xml == "") { MessageBox.Show("KEY盘验证失败,可能是此KEY用户未注册!"); return("0"); } XmlNode xmlok = null; XmlDocument xd = new XmlDocument(); xd.LoadXml(xml); xmlok = xd.SelectSingleNode("/XJCA_CertAppAuth"); string bool_key = xmlok["success"].InnerText.ToString(); //---------------------------------------------- //---------------审核人是否是KEY的所有者-------------------- if (bool_key == "false") { MessageBox.Show("认证失败!!!你无权操作此软件"); return("0"); } if (keyname.Contains(".")) { keyname = keyname.Substring(0, keyname.IndexOf('.')); } if (yhmc.Trim() != keyname) { MessageBox.Show("当前操作人与KEY用户不符,不能执行此操作!!!"); return("0"); } //------------------工号验证----------------------- if (keyYHGH.Trim() != yhbh.Trim()) { MessageBox.Show("当前操作人工号与KEY用户工号不符,不能执行此操作!!!"); return("0"); } } catch { MessageBox.Show("获取KEY盘用户异常"); return("0"); } ////------------------------------------ ////----------------key密码验证--------- ////------------------------------------ if (msg == "1") { MessageBox.Show("密码验证开始"); } try { //--动态库--- StringBuilder signxml = new StringBuilder(5000); string xmlstr = "12345"; int len = 0; bool ca_yz = XJCA_SignSeal(xmlstr, signxml, ref len); if (!ca_yz) { if (msg == "1") { MessageBox.Show("验证未通过"); } return("0"); } //-控件-- //string signxml = xj.XJCA_SignStr("HaiTai Cryptographic Service Provider for xjca", xmlstr); //string[] getsignxml1 = signxml.ToString().Split(','); // string signxml_str1 = getsignxml1[0].Trim(); //if (signxml.ToString() == "" || cert1 == "" || signxml_str1 == "") //{ // MessageBox.Show("验证未通过"); // return "0"; //} } catch (Exception eeee) { log.WriteMyLog(eeee.ToString()); MessageBox.Show("验证异常1"); return("0"); } if (msg == "1") { MessageBox.Show("密码验证完成"); } //--------验证完毕---------- //-----------开始签名------------ ///////////////////////// //***********************\ ///////////////////////// if (type == "QZ") { if (msg == "1") { MessageBox.Show("开始签名。。。"); } string sql_str = "select * from T_JCXX where F_BLH='" + getblh + "' and F_BGZT='已审核'"; //补充审核 if (bglx == "BC") { sql_str = "select * from V_BCBG_SH where F_BLH='" + getblh + "' and F_BC_BGZT='已审核'and F_BC_BGXH='" + bgxh + "'"; } //小冰冻审核 if (bglx == "BD") { sql_str = "select * from V_BDBG_bfk where F_BLH='" + getblh + "' and F_BD_BGZT='已审核' and F_BD_BGXH='" + bgxh + "'"; } DataTable dtyhbh = aa.GetDataTable(sql_str, "table"); aa.Close(); if (msg == "1") { MessageBox.Show("开始时间戳。。。"); } //-----------------签章验证----------------- //---------------------------------------------- //----------------时间戳------------------------- //时间戳服务地址 string IP = "http://172.20.89.23:8080/xjcaTimestamp/services/sign"; //业务单据号 string djid = getblh + "^1^CG"; //关键内容 string hash = ""; if (bglx == "BC") { hash = dtyhbh.Rows[0]["F_bczd"].ToString().Trim(); djid = getblh + "^" + dtyhbh.Rows[0]["F_BC_BGXH"].ToString().Trim() + "^BC"; } else { if (bglx == "BD") { hash = dtyhbh.Rows[0]["F_bdzd"].ToString().Trim(); djid = getblh + "^" + dtyhbh.Rows[0]["F_BD_BGXH"].ToString().Trim() + "^BD"; } else { hash = dtyhbh.Rows[0]["F_blzd"].ToString().Trim(); djid = getblh + "^1^CG"; } } if (msg == "1") { MessageBox.Show(djid + "\n" + hash); } //返回值时间戳xml(TimeSign_XML)需要写人数据库 MessageBox.Show("1"); // StringBuilder md5 = new StringBuilder(Getmd5(hash)); // MessageBox.Show("2"); // StringBuilder TimeSign_XML = new StringBuilder(); // TimeSign_XML = XJCA_TimeSign(IP, djid, md5); string TimeSign_XML = ""; string md5 = Getmd5(hash); MessageBox.Show(md5); try { AZT_TimeSign(IP, djid, ref md5); }catch (Exception ee) { MessageBox.Show(ee.ToString()); } MessageBox.Show(md5); MessageBox.Show("3"); if (msg == "1") { // MessageBox.Show("注意:"); MessageBox.Show(TimeSign_XML.ToString()); // MessageBox.Show(md5.ToString()); } try { //------------将签名时间写入数据库 T_JCXX------------ XmlDocument TimeSign_xd = new XmlDocument(); TimeSign_xd.LoadXml(TimeSign_XML.ToString()); string TimeSign_time = TimeSign_xd.SelectSingleNode("/xjca").ChildNodes[3].InnerText.ToString(); aa.ExecuteSQL("update T_JCXX set F_YL7='" + TimeSign_time + "' where F_BLH='" + getblh + "'"); } catch (Exception des) { log.WriteMyLog("将签名时间写入数据库 T_JCXX异常"); } if (msg == "1") { MessageBox.Show("时间戳完成"); } //------------------------------------------------------ //---------------签章---------------------------------- //签章---------------------------------- if (msg == "1") { MessageBox.Show("开始签章。。。"); } int len = 40000; StringBuilder signxml = new StringBuilder(40000); //签章原文 string xmlstr = ""; if (msg == "1") { MessageBox.Show(bglx); } if (bglx == "BC") { xmlstr = "<BL><F_BLH>" + dtyhbh.Rows[0]["F_BLH"].ToString() + "</F_BLH>"; xmlstr = xmlstr + "<F_BCZD>" + dtyhbh.Rows[0]["F_BCZD"].ToString() + "</F_BCZD>"; xmlstr = xmlstr + "<F_BC_BGYS>" + dtyhbh.Rows[0]["F_BC_BGYS"].ToString() + "</F_BC_BGYS>"; xmlstr = xmlstr + "<F_BC_SHYS>" + dtyhbh.Rows[0]["F_BC_SHYS"].ToString() + "</F_BC_SHYS>"; xmlstr = xmlstr + "<F_BC_BGRQ>" + dtyhbh.Rows[0]["F_BC_BGRQ"].ToString() + "</F_BC_BGRQ>"; xmlstr = xmlstr + "<F_BC_BGXH>" + dtyhbh.Rows[0]["F_BC_BGXH"].ToString() + "</F_BC_BGXH></BL>"; } else { //小冰冻审核 if (bglx == "BD") { xmlstr = "<BL><F_BLH>" + dtyhbh.Rows[0]["F_BLH"].ToString() + "</F_BLH>"; xmlstr = xmlstr + "<F_XM>" + dtyhbh.Rows[0]["F_XM"].ToString() + "</F_XM>"; xmlstr = xmlstr + "<F_XB>" + dtyhbh.Rows[0]["F_XB"].ToString() + "</F_XB>"; xmlstr = xmlstr + "<F_NL>" + dtyhbh.Rows[0]["F_NL"].ToString() + "</F_NL>"; xmlstr = xmlstr + "<F_zyh>" + dtyhbh.Rows[0]["F_zyh"].ToString() + "</F_zyh>"; xmlstr = xmlstr + "<F_BDZD>" + dtyhbh.Rows[0]["F_BDZD"].ToString() + "</F_BDZD>"; xmlstr = xmlstr + "<F_BD_BGYS>" + dtyhbh.Rows[0]["F_BD_BGYS"].ToString() + "</F_BD_BGYS>"; xmlstr = xmlstr + "<F_BD_SHYS>" + dtyhbh.Rows[0]["F_BD_SHYS"].ToString() + "</F_BD_SHYS>"; xmlstr = xmlstr + "<F_BD_BGRQ>" + dtyhbh.Rows[0]["F_BD_BGRQ"].ToString() + "</F_BD_BGRQ>"; xmlstr = xmlstr + "<F_BD_BGXH>" + dtyhbh.Rows[0]["F_BD_BGXH"].ToString() + "</F_BD_BGXH></BL>"; } else { xmlstr = "<BL><F_BLH>" + dtyhbh.Rows[0]["F_BLH"].ToString() + "</F_BLH>"; xmlstr = xmlstr + "<F_sqxh>" + dtyhbh.Rows[0]["F_sqxh"].ToString() + "</F_sqxh>"; xmlstr = xmlstr + "<F_XM>" + dtyhbh.Rows[0]["F_XM"].ToString() + "</F_XM>"; xmlstr = xmlstr + "<F_XB>" + dtyhbh.Rows[0]["F_XB"].ToString() + "</F_XB>"; xmlstr = xmlstr + "<F_NL>" + dtyhbh.Rows[0]["F_NL"].ToString() + "</F_NL>"; xmlstr = xmlstr + "<F_zyh>" + dtyhbh.Rows[0]["F_zyh"].ToString() + "</F_zyh>"; xmlstr = xmlstr + "<F_mzh>" + dtyhbh.Rows[0]["F_mzh"].ToString() + "</F_mzh>"; xmlstr = xmlstr + "<F_ch>" + dtyhbh.Rows[0]["F_ch"].ToString() + "</F_ch>"; xmlstr = xmlstr + "<F_blzd>" + dtyhbh.Rows[0]["F_blzd"].ToString() + "</F_blzd>"; xmlstr = xmlstr + "<F_bgys>" + dtyhbh.Rows[0]["F_bgys"].ToString() + "</F_bgys>"; xmlstr = xmlstr + "<F_bgrq>" + dtyhbh.Rows[0]["F_bgrq"].ToString() + "</F_bgrq>"; xmlstr = xmlstr + "<F_shys>" + dtyhbh.Rows[0]["F_shys"].ToString() + "</F_shys>"; xmlstr = xmlstr + "<F_spare5>" + dtyhbh.Rows[0]["F_spare5"].ToString() + "</F_spare5></BL>"; } } if (xmlstr == "") { log.WriteMyLog("签章数据内容为空"); return("0"); } if (msg == "1") { MessageBox.Show("签章内容" + xmlstr); } try { //控件 // string signxml= xj.XJCA_SignStr(appid,xmlstr); // 动态库 //XJCA_SignSeal方法,signxml 返回值,签章返回的信息 包含签章数据,证书内容,证书id,以“,”隔开,保存签章数据和证书id, // XJCAverifyyfy.XJCA_SignSeal(xmlstr, signxml, len); bool ca_yz = XJCA_SignSeal(xmlstr, signxml, ref len); if (!ca_yz) { return("0"); } else { if (msg == "1") { MessageBox.Show("签章通过,解析返回值"); } try { // 签章返回的信息signxml 包含签章数据,证书内容,证书id,以“,”隔开,保存签章数据和证书id string[] getsignxml = signxml.ToString().Split(','); //签章数据 string signxml_str = getsignxml[0]; //证书内容 string cert = getsignxml[1]; //证书id string certID = getsignxml[2]; //--------将signxml,,TimeSign_XML等返回值 存入数据库------------- if (msg == "1") { MessageBox.Show("解析返回值完成,插入中间库"); } dbbase.odbcdb bb = new odbcdb("DSN=pathnet-ca;UID=pathnet;PWD=4s3c2a1p", "", ""); try { string sqlstr = "insert into T_CAXX(blh,RQ,TimeSignXML,signxml,BGNR,keyname,cert,certID,CAZT,BGLX,BGXH) values ('" + dtyhbh.Rows[0]["F_BLH"].ToString() + "','" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "','" + TimeSign_XML + "','" + signxml.ToString() + "','" + xmlstr + "','" + keyname + "','" + cert + "','" + certID + "','已验证','" + bglx + "','" + bgxh + "') "; if (msg == "1") { MessageBox.Show(sqlstr); } int x = bb.ExecuteSQL(sqlstr); bb.Close(); if (x < 1) { log.WriteMyLog("签章结果失败"); return("0"); } } catch (Exception ee) { bb.Close(); log.WriteMyLog("签章结果异常:数据库写入失败," + ee.ToString()); return("0"); } if (msg == "1") { MessageBox.Show("插入中间库完成"); } } catch { MessageBox.Show("解析返回值或写入数据异常"); return("0"); } } if (msg == "1") { MessageBox.Show("签章完成"); } } catch { if (msg == "1") { MessageBox.Show("签章异常"); } return("0"); } //---------------------------------------------- //----------------获取签章图片---------------------- //---------------------------------------------- if (msg == "1") { MessageBox.Show("获取签章图片开始。。。"); } bool ss = XJCA_GetSealBMPB("D:\\pathqc\\rpt-szqm\\YSBMP\\" + keyname + ".bmp", 1); if (ss) { if (msg == "1") { MessageBox.Show("获取签章图片完成,开始上传。。"); } //---------------------------------------------- //----------------上传签章图片至ftp--------------------- //---------------------------------------------- string ftpServerIP = f.ReadString("ftp", "ftpip", ""); string ftpUserID = f.ReadString("ftp", "user", ""); string ftpPassword = f.ReadString("ftp", "pwd", ""); string ftpRemotePath = f.ReadString("ftp", "szqmPath", "/pathimages/rpt-szqm/YSBMP/"); string ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/"; string status = ""; FtpWeb fw = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword); fw.Upload("D:\\pathqc\\rpt-szqm\\YSBMP\\" + keyname + ".bmp", "", out status); if (status == "Error") { MessageBox.Show("签章图片上传失败,请重新审核!"); return("0"); } if (msg == "1") { MessageBox.Show("签章图片上传成功"); } return("1"); } if (msg == "1") { MessageBox.Show("签章图片获取失败"); } return("0"); } if (type == "QXSH") { if (msg == "1") { MessageBox.Show("取消审核。。"); } aa.Close(); dbbase.odbcdb bb = new odbcdb("DSN=pathnet-ca;UID=pathnet;PWD=4s3c2a1p", "", ""); try { if (msg == "1") { MessageBox.Show("取消审核。。删除中间库记录开始"); } string sqlstr = "delete T_CAXX where blh='" + getblh + "' and BGLX='" + bglx.Trim() + "' and BGXH='" + bgxh + "'"; int x = bb.ExecuteSQL(sqlstr); bb.Close(); if (msg == "1") { MessageBox.Show("取消审核完成"); } return("1"); } catch (Exception eee) { bb.Close(); if (msg == "1") { MessageBox.Show("取消审核异常"); } log.WriteMyLog(eee.ToString()); return("0"); } } if (type == "QXQZ" && (bglx == "BC" || bglx == "BD")) { if (msg == "1") { MessageBox.Show("取消签字开始。。"); } aa.Close(); dbbase.odbcdb bb = new odbcdb("DSN=pathnet-ca;UID=pathnet;PWD=4s3c2a1p", "", ""); try { if (msg == "1") { MessageBox.Show("取消签字。。删除中间库记录开始"); } string sqlstr = "delete T_CAXX where blh='" + getblh + "' and BGLX='" + bglx.Trim() + "' and BGXH='" + bgxh + "'"; int x = bb.ExecuteSQL(sqlstr); bb.Close(); if (msg == "1") { MessageBox.Show("取消签字完成。。"); } return("1"); } catch (Exception eee) { bb.Close(); if (msg == "1") { MessageBox.Show("取消签字异常"); } log.WriteMyLog(eee.ToString()); return("0"); } } if (msg == "1") { MessageBox.Show("完成操作"); } aa.Close(); return("1"); }
public void pathtohis(string blh, string bglx, string bgxh, string czlb, string dz, string debug, string msg) { // MessageBox.Show(blh + "^" + bglx + "^" + bgxh + "^" + czlb + "^" + dz); if (dz != "save") { return; } string ServiceUrl = f.ReadString("savetohis", "ServiceUrl", "192.9.200.1"); dbbase.odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable bljc = new DataTable(); bljc = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "blxx"); if (bljc == null) { MessageBox.Show("病理数据库设置有问题!"); log.WriteMyLog("病理数据库设置有问题!"); return; } if (bljc.Rows.Count < 1) { MessageBox.Show("病理号有错误!"); log.WriteMyLog("病理号有错误!"); return; } if (bljc.Rows[0]["F_brbh"].ToString().Trim() == "") { log.WriteMyLog("病人编号为空不回传"); return; } string bgzt = ""; string SHRQ = ""; string bgys = ""; string shys = ""; string fzys = ""; string bgrq = ""; string blzd = ""; string rysj = ""; if (bglx == "cg") { bgzt = bljc.Rows[0]["F_BGZT"].ToString().Trim(); SHRQ = bljc.Rows[0]["F_SPARE5"].ToString().Trim(); bgys = bljc.Rows[0]["F_BGYS"].ToString().Trim(); shys = bljc.Rows[0]["F_SHYS"].ToString().Trim(); fzys = bljc.Rows[0]["F_FZYS"].ToString().Trim(); bgrq = bljc.Rows[0]["F_BGRQ"].ToString().Trim(); rysj = System.Security.SecurityElement.Escape(bljc.Rows[0]["F_rysj"].ToString().Trim()) + "\r\n" + System.Security.SecurityElement.Escape(bljc.Rows[0]["F_JXSJ"].ToString().Trim()); blzd = System.Security.SecurityElement.Escape(bljc.Rows[0]["F_BLZD"].ToString().Trim()) + "\r\n" + System.Security.SecurityElement.Escape(bljc.Rows[0]["F_TSJC"].ToString().Trim()); } if (bglx == "bd") { DataTable bdbg = new DataTable(); bdbg = aa.GetDataTable("select * from T_BDBG where F_blh='" + blh + "' and F_bd_BGXH='" + bgxh + "'", "bd"); bgzt = bdbg.Rows[0]["F_BD_BGZT"].ToString().Trim(); SHRQ = bdbg.Rows[0]["F_BD_BGRQ"].ToString().Trim(); bgys = bdbg.Rows[0]["F_bd_BGYS"].ToString().Trim(); shys = bdbg.Rows[0]["F_bd_SHYS"].ToString().Trim(); fzys = bdbg.Rows[0]["F_bd_FZYS"].ToString().Trim(); bgrq = bdbg.Rows[0]["F_bd_BGRQ"].ToString().Trim(); rysj = ""; blzd = System.Security.SecurityElement.Escape(bdbg.Rows[0]["F_BdZD"].ToString().Trim()); } if (bglx == "bc") { DataTable bcbg = new DataTable(); bcbg = aa.GetDataTable("select * from T_BcBG where F_blh='" + blh + "' and F_bc_BGXH='" + bgxh + "'", "bc"); bgzt = bcbg.Rows[0]["F_BC_BGZT"].ToString().Trim(); SHRQ = bcbg.Rows[0]["F_BC_SPARE5"].ToString().Trim(); bgys = bcbg.Rows[0]["F_bc_BGYS"].ToString().Trim(); shys = bcbg.Rows[0]["F_bc_SHYS"].ToString().Trim(); fzys = bcbg.Rows[0]["F_bc_FZYS"].ToString().Trim(); bgrq = bcbg.Rows[0]["F_bc_BGRQ"].ToString().Trim(); rysj = System.Security.SecurityElement.Escape(bcbg.Rows[0]["F_bc_JXSJ"].ToString().Trim()); blzd = System.Security.SecurityElement.Escape(bcbg.Rows[0]["F_BcZD"].ToString().Trim()) + "\r\n" + System.Security.SecurityElement.Escape(bcbg.Rows[0]["F_BC_TSJC"].ToString().Trim()); } //病理号^cg/bd/bc^bgxh^new/old^save/qxsh (同济) if (bgzt == "已审核") { //--------------------------------------- //*************************************** //---回写蓝韵pacs //*************************************** //--------------------------------------- if (debug == "1") { log.WriteMyLog("开始回写pacs"); } string xmlstr = ""; string ReprotFile = ""; //----------------------------------------------------------- string jpgname = ""; mdjpg jpgxx = new mdjpg(); try { if (bgxh == "") { bgxh = "0"; } jpgxx.BMPTOJPG(blh, ref jpgname, bglx, bgxh); //-读图片 string ftplocal = f.ReadString("ftp", "ftplocal", "c:\\temp").Replace("\0", ""); string imgPath = ftplocal + "\\" + blh + "\\" + blh + "_" + bglx + "_" + bgxh + "_1.jpg"; //图片文件所在路径 FileStream file = new FileStream(imgPath, FileMode.Open, FileAccess.Read); Byte[] imgByte = new Byte[file.Length]; //把图片转成 Byte型 二进制流 file.Read(imgByte, 0, imgByte.Length); //把二进制流读入缓冲区 file.Close(); ReprotFile = Convert.ToBase64String(imgByte); try { if (System.IO.Directory.Exists(@"c:\temp\" + blh)) { System.IO.Directory.Delete(@"c:\temp\" + blh, true); } } catch { log.WriteMyLog("回写pacs,删除报告JPG失败"); } } catch (Exception ee) { log.WriteMyLog("回写pacs,生成报告JPG失败" + ee.Message); ReprotFile = ""; } //----------------------------------------------------------------- try { xmlstr = "<?xml version='1.0' encoding='GB2312' ?><StudyInfo StationType='1'>"; xmlstr = xmlstr + "<PatientCode4></PatientCode4>"; //病人ID xmlstr = xmlstr + "<PatientID>" + bljc.Rows[0]["F_BLH"].ToString().Trim() + "</PatientID>"; xmlstr = xmlstr + "<PatientName>" + bljc.Rows[0]["F_XM"].ToString().Trim() + "</PatientName> "; xmlstr = xmlstr + "<PatientNameEn></PatientNameEn>"; xmlstr = xmlstr + "<PatientSex>" + bljc.Rows[0]["F_xb"].ToString().Trim() + "</PatientSex>"; xmlstr = xmlstr + "<DateOfBirth></DateOfBirth> "; xmlstr = xmlstr + "<Citizenship /><IDCardNumber /><Occupation />"; xmlstr = xmlstr + "<Address>" + bljc.Rows[0]["F_lxxx"].ToString().Trim() + "</Address>"; xmlstr = xmlstr + "<TelPhone /><MedicalAlert /><ContrastAllergies /> "; xmlstr = xmlstr + "<RegisteDate>" + bljc.Rows[0]["F_SDRQ"].ToString().Trim() + "</RegisteDate>"; //检查ID xmlstr = xmlstr + "<StudyID>" + blh + "_" + bglx + "_" + bgxh + "</StudyID>"; xmlstr = xmlstr + "<BedNumber>" + bljc.Rows[0]["F_CH"].ToString().Trim() + "</BedNumber>"; xmlstr = xmlstr + "<InPatientNumber>" + bljc.Rows[0]["F_zyh"].ToString().Trim() + "</InPatientNumber>"; xmlstr = xmlstr + "<ClinicSymptom>" + bljc.Rows[0]["F_lczl"].ToString().Trim() + "</ClinicSymptom>"; xmlstr = xmlstr + "<ClinicDiagnose>" + bljc.Rows[0]["F_lczd"].ToString().Trim() + "</ClinicDiagnose>"; xmlstr = xmlstr + "<RequestMemo />"; xmlstr = xmlstr + "<AppliedDoctor>" + bljc.Rows[0]["F_sjys"].ToString().Trim() + "</AppliedDoctor>"; xmlstr = xmlstr + "<AppliedDate></AppliedDate>"; xmlstr = xmlstr + "<ArrivedDate>" + bljc.Rows[0]["F_SDRQ"].ToString().Trim() + "</ArrivedDate>"; xmlstr = xmlstr + "<BodyPart>" + bljc.Rows[0]["F_bbmc"].ToString().Trim() + "</BodyPart>"; xmlstr = xmlstr + "<Modality></Modality>"; xmlstr = xmlstr + "<ScanType /><FinishTime>" + bgrq + "</FinishTime>"; xmlstr = xmlstr + "<AppliedDepartment>" + bljc.Rows[0]["F_sjks"].ToString().Trim() + "</AppliedDepartment>"; xmlstr = xmlstr + "<Technician>" + bljc.Rows[0]["F_bgys"].ToString().Trim() + "</Technician>"; xmlstr = xmlstr + "<StudyDiagnose>" + rysj + "</StudyDiagnose>"; xmlstr = xmlstr + "<StudyTechnic /><StudyStatus>已审核</StudyStatus>"; xmlstr = xmlstr + "<StudyResult>" + blzd + "</StudyResult>"; xmlstr = xmlstr + "<FirstReportTime>" + bgrq + "</FirstReportTime>"; xmlstr = xmlstr + "<FirstDoctor>" + bgys + "</FirstDoctor>"; xmlstr = xmlstr + "<SecondReportTime>" + SHRQ + "</SecondReportTime>"; xmlstr = xmlstr + "<SecondDoctor>" + shys + "</SecondDoctor> "; xmlstr = xmlstr + "<Register>" + bljc.Rows[0]["F_jsy"].ToString().Trim() + "</Register>"; xmlstr = xmlstr + "<Fee></Fee><Age>" + bljc.Rows[0]["F_NL"].ToString().Trim() + "</Age>"; xmlstr = xmlstr + "<Positive></Positive><ExamDepartment>病理科</ExamDepartment> "; xmlstr = xmlstr + "<ThirdDoctor>" + fzys + "</ThirdDoctor>"; xmlstr = xmlstr + "<ThirdReportTime /><Result1 /> <Result2 /> <Result3 /> <Result4 /> <Result5 /> <Result6 /> <Result7 /> <Result8 /> "; xmlstr = xmlstr + "<TrackTime /> <TrackResult />"; xmlstr = xmlstr + "<PositiveType>" + bljc.Rows[0]["F_YYX"].ToString().Trim() + "</PositiveType> <TrackDoctor />"; xmlstr = xmlstr + "<PatientType>" + bljc.Rows[0]["F_brlb"].ToString().Trim() + "</PatientType>"; xmlstr = xmlstr + "<StudyType>" + bljc.Rows[0]["F_BLK"].ToString().Trim() + "</StudyType>"; xmlstr = xmlstr + "<ModalityType>BL</ModalityType>"; xmlstr = xmlstr + "<IsTracked /> <Weight /> <Height /><ReportType /> <AcrIndex />"; //常规,冰冻,补充 xmlstr = xmlstr + "<StudyCode>" + "BL_" + blh + "_" + bglx + "_" + bgxh + "</StudyCode>"; if (bljc.Rows[0]["F_brlb"].ToString().Trim() == "住院") { xmlstr = xmlstr + "<HisCode1>" + bljc.Rows[0]["F_ZYH"].ToString().Trim() + "</HisCode1>"; } else { xmlstr = xmlstr + "<HisCode1>" + bljc.Rows[0]["F_MZH"].ToString().Trim() + "</HisCode1>"; } xmlstr = xmlstr + "<HisCode2>" + bljc.Rows[0]["F_sqxh"].ToString().Trim() + "</HisCode2>"; xmlstr = xmlstr + "<HisCode3>" + bljc.Rows[0]["F_brbh"].ToString().Trim() + "</HisCode3> "; xmlstr = xmlstr + "<HisCode4>" + bljc.Rows[0]["F_YZID"].ToString().Trim() + "</HisCode4>"; xmlstr = xmlstr + "<StudyUIDS><StudyUID></StudyUID></StudyUIDS>"; xmlstr = xmlstr + "<ReportFile>" + ReprotFile + "</ReportFile>"; xmlstr = xmlstr + "<TrueOfClinic>" + bljc.Rows[0]["F_SFFH"].ToString().Trim() + "</TrueOfClinic></StudyInfo>"; } catch (Exception ee) { log.WriteMyLog("回传pacs,xml生成异常:" + ee.Message); return; } string rtn = ""; try { if (debug == "1") { log.WriteMyLog(xmlstr); } if (ConnectService(ServiceUrl)) { if (UploadXmlContent(xmlstr)) { if (debug == "1") { MessageBox.Show("true"); } } else { log.WriteMyLog("回写失败,false"); if (debug == "1") { MessageBox.Show("false"); } } } else { log.WriteMyLog("连接数据库错误:" + ServiceUrl); } DisconnectService(); } catch (Exception e2) { log.WriteMyLog("回传pacs异常:" + e2.Message); return; } } return; }