public void BMPTOJPG(string F_blh, ref string jpgname, string bglx, string bgxh) { 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 = ""; if (bgxh == "") bgxh = "0"; string sJPGNAME = localpath + "\\" +F_blh +"_"+bglx+"_"+bgxh+ ".jpg"; if(bglx=="") sJPGNAME = localpath + "\\" + F_blh + ".jpg"; string sBGGSName = Application.StartupPath.ToString() + "\\rpt\\" + jcxx.Rows[0]["F_bggs"].ToString().Trim() + "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; string bcbddytx = f.ReadString("bcbddytx", "bcbddytx", "").Replace("\0", ""); string inibglj = f.ReadString("dybg", "dybglj", "").Replace("\0", ""); if (inibglj != "") { sBGGSName = inibglj + "\\rpt\\" + 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"; } } //±¨¸æͼƬͳһÓò¡ÀíºÅ.jpg 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 + "'"; if (bglx == "bd") { string rptname="±ù¶³.frf"; if (bcbddytx=="1") rptname = "±ù¶³"+ "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; sBGGSName = Application.StartupPath.ToString() + "\\rpt\\" + rptname; sSQL_DY = "SELECT * FROM T_JCXX,T_BDBG WHERE T_JCXX.F_BLH = T_BDBG.F_BLH AND T_JCXX.F_BLH ='" + F_blh + "' and F_BD_BGXH='" + bgxh + "'"; bggs = "±ù¶³.frf"; if (inibglj != "") { sBGGSName = inibglj + "\\rpt\\" + rptname; } sJPGNAME = localpath + "\\" + F_blh.Trim() + "_bd_"+bgxh + ".jpg"; } if (bglx == "bc") { string rptname = "²¹³ä.frf"; if (bcbddytx == "1") rptname = "²¹³ä" + "-" + txlb.Rows.Count.ToString() + "ͼ.frf"; sBGGSName = Application.StartupPath.ToString() + "\\rpt\\" + rptname; if (inibglj != "") { sBGGSName = inibglj + "\\rpt\\" + rptname; } sSQL_DY = "SELECT * FROM T_JCXX,T_BCBG WHERE T_JCXX.F_BLH = T_BCBG.F_BLH AND T_JCXX.F_BLH ='" + F_blh + "' and F_BC_BGXH='" + bgxh + "'"; bggs = "²¹³ä.frf"; sJPGNAME = localpath + "\\" + F_blh.Trim() + "_bc_" + bgxh + ".jpg"; } System.Threading.Thread.Sleep(2000); prreport pr = new prreport(); //pr.printpdf(sSQL_DY, IntPtr.Zero, sbmp, stxsm, sBGGSName, sJPGNAME); pr.print(sSQL_DY, IntPtr.Zero, sbmp, stxsm, sBGGSName, sJPGNAME); // sJPGNAME = localpath + "\\" + F_blh.Trim() + ".bmp"; // pr.print(sSQL_DY, IntPtr.Zero, sbmp, stxsm, sBGGSName, sJPGNAME); jpgname = localpath + "\\" + F_blh.Trim() + "_1.jpg"; System.Threading.Thread.Sleep(2000); }
private void stzxyy() { DataTable bljc = new DataTable(); DataTable blbd = new DataTable(); string brlb = ""; bljc = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "bljc"); blbd = aa.GetDataTable("select * from T_BDBG where F_blh='" + blh + "' and F_BD_BGZT='已审核' and F_BD_BGXH='" + bgxh + "'", "blbd"); if (bljc == null) { MessageBox.Show("病理数据库设置有问题!"); return; } if (bljc.Rows.Count < 1) { MessageBox.Show("病理号有错误!"); return; } if (bglx == "cg" && dz == "save" && bljc.Rows[0]["F_bgzt"].ToString().Trim() != "已审核") { if (bljc.Rows[0]["F_BRBH"].ToString().Trim() != "" && bljc.Rows[0]["F_YZXM"].ToString().Trim().Contains("||")) { string con_str = f.ReadString("savetohis", "odbcsql", "Data Source=172.16.0.30;Initial Catalog=hisdbstzx;User Id=bl;Password=bl123;"); // MessageBox.Show(bljc.Rows[0]["F_YZXM"].ToString().Trim().Substring(bljc.Rows[0]["F_YZXM"].ToString().LastIndexOf("||")+2)); SqlConnection sqlcon = new SqlConnection(con_str); try { sqlcon.Open(); SqlCommand sqlcom = new SqlCommand(); sqlcom.Connection = sqlcon; sqlcom.CommandText = "MzInterfacePath_getinfo_Update"; sqlcom.CommandType = CommandType.StoredProcedure; sqlcom.Parameters.Add("@p_id", SqlDbType.VarChar, 12); sqlcom.Parameters["@p_id"].Value = bljc.Rows[0]["F_BRBH"].ToString().Trim(); sqlcom.Parameters.Add("@jy_sn", SqlDbType.VarChar, 12); sqlcom.Parameters["@jy_sn"].Value = bljc.Rows[0]["F_YZXM"].ToString().Trim().Substring(bljc.Rows[0]["F_YZXM"].ToString().LastIndexOf("||") + 2); sqlcom.ExecuteNonQuery(); sqlcon.Close(); } catch (Exception ee) { sqlcon.Close(); MessageBox.Show("回传his接受标记异常" + ee.ToString()); return; } } return; } if (bljc.Rows[0]["F_brlb"].ToString().Trim() == "住院") { brlb = "2"; } if (bljc.Rows[0]["F_brlb"].ToString().Trim() == "门诊") { brlb = "1"; } if (brlb == "") { log.WriteMyLog("非住院或门诊病人,不处理!"); return; } if (bglx == "bd" && dz == "save") { //冰冻审核 if (blbd == null) { MessageBox.Show("病理数据库设置有问题!"); return; } if (blbd.Rows.Count < 1) { log.WriteMyLog("没有需要上传的病理报告"); return; } //生成冰冻报告,不打图 string ftplocal = f.ReadString("ftp", "ftplocal", "c:\\temp").Replace("\0", ""); string sBGGSName = Application.StartupPath.ToString() + "\\rpt\\冰冻.frf"; string sJPGNAME = ftplocal + "\\" + blh.Trim() + "_B_" + blbd.Rows[0]["F_BD_BGXH"].ToString() + ".jpg"; string sSQL_DY = "SELECT * FROM T_JCXX,T_BDBG WHERE T_JCXX.F_BLH *= T_BDBG.F_BLH AND T_JCXX.F_BLH = '" + blh + "'"; prreport pr = new prreport(); pr.print(sSQL_DY, this.Handle, "", "", sBGGSName, sJPGNAME); Image bgjpg = Image.FromFile(ftplocal + "\\" + blh.Trim() + "_B_" + blbd.Rows[0]["F_BD_BGXH"].ToString() + "_1.jpg"); MemoryStream ms = new MemoryStream(); bgjpg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] bgbyte = ms.ToArray(); PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[] hs = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[1]; hs[0] = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType(); hs[0].Value = bgbyte; hs[0].Key = blh.Trim() + "_B_" + blbd.Rows[0]["F_BD_BGXH"].ToString() + ".jpg"; //调用生成xml字符串子程序 string xml = sdxml_BD(bljc, blbd, blh.Trim() + "_B_" + blbd.Rows[0]["F_BD_BGXH"].ToString() + ".jpg", brlb); if (xml == "") { MessageBox.Show(@"部分内容含有非法字符(<,>,@,&,\等),镜下所见和病理诊断除外,HIS写入失败!"); return; } bool sdwstrue = true; bool sdwstrue1 = true; bool sdwstrue2 = true; bool sdwstrue3 = true; int sdwsint = 0; int sdwsint1 = 0; //调用webservice try { PathHISJK.Webstzxyy.clsWcfInterface sdws = new PathHISJK.Webstzxyy.clsWcfInterface(); string url = f.ReadString("stzxyy", "weburl", ""); if (url != "") { sdws.Url = url; } sdws.EHRInterfaceBL(xml, hs, out sdwsint, out sdwstrue, out sdwsint1, out sdwstrue1, out sdwstrue2, out sdwstrue3); } catch (Exception e) { MessageBox.Show("Web服务器未打开!" + e.ToString()); return; } if (sdwsint < 1) { MessageBox.Show("HIS写入失败!" + sdwsint.ToString()); } return; //------------------------------------------------------------------ } else { if (bljc.Rows[0]["F_bgzt"].ToString().Trim() != "已审核") { return; } //下载及生成报告图片 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", ""); FtpWeb fw = new FtpWeb(ftpserver, ftpremotepath, ftpuser, ftppwd); string txml = bljc.Rows[0]["F_txml"].ToString().Trim(); DataTable txlb = aa.GetDataTable("select * from V_dytx where F_blh='" + blh + "'", "txlb"); string sbmp = ""; string stxsm = ""; string sBGGSName = Application.StartupPath.ToString() + "\\rpt\\" + bljc.Rows[0]["F_bggs"].ToString().Trim() + "-" + txlb.Rows.Count.ToString() + "图.frf"; string sJPGNAME = ftplocal + "\\" + blh.Trim() + ".jpg"; for (int i = 0; i < txlb.Rows.Count; i++) { stxsm = stxsm + txlb.Rows[i]["F_txsm"].ToString().Trim() + ","; string ftpstatus = ""; fw.Download(ftplocal, txml + "/" + txlb.Rows[i]["F_txm"].ToString().Trim(), txlb.Rows[i]["F_txm"].ToString().Trim(), out ftpstatus); if (ftpstatus == "Error") { return; } sbmp = sbmp + ftplocal + "\\" + txlb.Rows[i]["F_txm"].ToString().Trim() + ","; } //生成常规报告 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 = '" + blh + "'"; prreport pr = new prreport(); pr.print(sSQL_DY, this.Handle, sbmp, stxsm, sBGGSName, sJPGNAME); Image bgjpg = Image.FromFile(ftplocal + "\\" + blh.Trim() + "_1.jpg"); MemoryStream ms = new MemoryStream(); bgjpg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] bgbyte = ms.ToArray(); PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[] hs = null;// = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[1]; hs[0] = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType(); hs[0].Value = bgbyte; hs[0].Key = blh.Trim() + "_1.jpg"; /////// 分子病理报告单 2页 if (File.Exists(ftplocal + "\\" + blh.Trim() + "_2.jpg")) { try { log.WriteMyLog("分子病理上传多页报告"); PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[] hs2 = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[2]; hs2[0] = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType(); hs2[0].Value = bgbyte; hs2[0].Key = blh.Trim() + "_1.jpg"; Image bgjpg2 = Image.FromFile(ftplocal + "\\" + blh.Trim() + "_2.jpg"); MemoryStream ms2 = new MemoryStream(); bgjpg2.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] bgbyte2 = ms2.ToArray(); hs2[1] = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType(); hs2[1].Value = bgbyte2; hs2[1].Key = blh.Trim() + "_2.jpg"; hs = hs2; } catch (Exception ss) { MessageBox.Show(ss.ToString()); log.WriteMyLog("分子病理上传多页失败" + ss.ToString()); } } else { PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[] hs1 = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[1]; hs1[0] = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType(); hs1[0].Value = bgbyte; hs1[0].Key = blh.Trim() + "_1.jpg"; hs = hs1; } //PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[] hs = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType[1]; //hs[0] = new PathHISJK.Webstzxyy.ArrayOfKeyValueOfanyTypeanyTypeKeyValueOfanyTypeanyType(); //hs[0].Value = bgbyte; //hs[0].Key = blh.Trim() + "_1.jpg"; // hs = hs1; //调用生成xml字符串子程序 string xml = sdxml(bljc, blh.Trim() + "_1.jpg", brlb); if (xml == "") { MessageBox.Show(@"部分内容含有非法字符(<,>,@,&,\等),镜下所见和病理诊断除外,HIS写入失败!"); return; } bool sdwstrue = true; bool sdwstrue1 = true; bool sdwstrue2 = true; bool sdwstrue3 = true; int sdwsint = 0; int sdwsint1 = 0; //调用webservice try { PathHISJK.Webstzxyy.clsWcfInterface sdws = new PathHISJK.Webstzxyy.clsWcfInterface(); string url = f.ReadString("stzxyy", "weburl", ""); if (url != "") { sdws.Url = url; } sdws.EHRInterfaceBL(xml, hs, out sdwsint, out sdwstrue, out sdwsint1, out sdwstrue1, out sdwstrue2, out sdwstrue3); aa.ExecuteSQL("update T_JCXX set F_SCBJ='1' where F_BLH='" + blh + "'"); } catch (Exception e) { MessageBox.Show("Web服务器未打开!" + e.ToString()); return; } if (sdwsint < 1) { MessageBox.Show("HIS写入失败!" + sdwsint.ToString()); } return; } return; }