Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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("");
        }
Exemplo n.º 3
0
        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"));
        }
Exemplo n.º 4
0
        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 == "已审核")
            {
            }
        }
Exemplo n.º 5
0
        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());
        }
Exemplo n.º 6
0
 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
     {
     }
 }
Exemplo n.º 7
0
 /// <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
     {
     }
 }
Exemplo n.º 8
0
        /// <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);
        }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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());
            }
        }
Exemplo n.º 12
0
        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("");
            }
        }
Exemplo n.º 13
0
        /// <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);
            }
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
 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");
     }
 }
Exemplo n.º 17
0
        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("");
            }
        }
Exemplo n.º 18
0
        /// <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);
        }
Exemplo n.º 19
0
        /// <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);
            }
        }
Exemplo n.º 20
0
        /// <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);
        }
Exemplo n.º 21
0
        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;
                    }

                }

            }


        }
Exemplo n.º 22
0
        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);
                }
            }
        }
Exemplo n.º 23
0
        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");
        }
Exemplo n.º 24
0
        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.");



        }
Exemplo n.º 25
0
        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
            {
            }
        }
Exemplo n.º 26
0
        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
        }
Exemplo n.º 27
0
        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);
                    }
                }
            }
        }
Exemplo n.º 28
0
        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;
        }
Exemplo n.º 29
0
        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");
        }
Exemplo n.º 30
0
        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;
        }