Esempio n. 1
0
        public void upstatus(string blh, string f_brlb, string sqxh, string debug)
        {
            string upmzsqd = "update dzbl_jcsqd set jsbz='1' where jcid='" + sqxh + "'";
            string upzysqd = "update zybl_zyyz_jcsqd set jsbz='1' where jcid='" + sqxh + "'";

            OdbcCommand cmd = new OdbcCommand();

            try
            {
                cmd.Connection = cn;
                cn.Open();
                if (f_brlb == "住院")
                {
                    cmd.CommandText = upzysqd;
                    int k = cmd.ExecuteNonQuery();
                    aa.ExecuteSQL("update t_jcxx set f_hxbz='1' where f_blh='" + blh + "'");
                    if (k > 1)
                    {
                        if (debug == "1")
                        {
                            log.WriteMyLog(blh + "在HIS中回写标志成功!");
                        }
                    }
                }
                if (f_brlb == "门诊")
                {
                    cmd.CommandText = upmzsqd;
                    int k = cmd.ExecuteNonQuery();
                    aa.ExecuteSQL("update t_jcxx set f_hxbz='1' where f_blh='" + blh + "'");
                    if (k > 1)
                    {
                        if (debug == "1")
                        {
                            log.WriteMyLog(blh + "在HIS中回写标志成功!");
                        }
                    }
                }
                cn.Close();
            }
            catch (Exception ee2)
            {
                MessageBox.Show("执行数据库异常:" + ee2.Message);
            }
        }
Esempio n. 2
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");
        }
Esempio n. 3
0
        private void btnImport_Click(object sender, EventArgs e)
        {
            var importList = reportImages.Where(o => o.IsUpload).ToList();

            var imgBlh = (from o in reportImages group o by o.Blh into g select g.Key).ToList();

            //获取图像目录,如果没有则设置为yyyyMM,并更新jcxx
            foreach (string blh in imgBlh)
            {
                var dtJcxxMl = aa.GetDataTable($" select f_txml from t_jcxx where f_blh='{blh}' ", "dt1");
                if (dtJcxxMl.Rows.Count == 0)
                {
                    MessageBox.Show($"分子诊断戏中未找到病理号为:[{blh}]的患者,本次导入被终止,请检查病人信息!");
                    return;
                }
                var txml = dtJcxxMl.Rows[0][0].ToString();

                //如果图像目录为空 设置为年月,并更新jcxx
                if (string.IsNullOrEmpty(txml.Trim()))
                {
                    txml = DateTime.Now.ToString("yyyyMM");
                    aa.ExecuteSQL($" update t_jcxx set f_txml = '{txml}',F_SFCT='是' where f_blh='{blh}' ");
                }

                //txml赋值给对象
                reportImages.Where(o => o.Blh == blh).ForEach(o => o.Txml = txml);

                //FTP尝试新建文件夹
                string errMakeDir = "";
//                var ftp = GetFtp();
//                ftp.Makedir(txml+ "/" + blh + "/", out errMakeDir);

                string sqlDel = $" delete t_tx where f_blh='{blh}' and f_txsm='二代测序上传' ";
                //清空t_tx历史数据
                aa.ExecuteSQL(sqlDel);
            }


            //开始上传图片
            foreach (ReportImage reportImage in importList)
            {
                //上传文件
                string errUpload = "";
                var    ftp       = GetFtp();
                ftp.Makedir(reportImage.Txml, out errUpload);
                ftp.Makedir(reportImage.Txml + "\\" + reportImage.Blh, out errUpload);
                ftp.Upload(reportImage.FileFullName, reportImage.Blh, reportImage.Txml, out errUpload);

                if (errUpload != "OK")
                {
                    MessageBox.Show($"上传图片发生错误,终止上传,文件名{reportImage.FileFullName},错误信息:" + errUpload);
                    return;
                }

                //先清空二代测序图片,再插入t_tx

                #region sql

                string sql =
                    $@"INSERT INTO [dbo].[T_TX]
                       ([F_BLH]
                       ,[F_TXM]
                       ,[F_TXSM]
                       ,[F_SFDY]
                       ,[F_TXLB])
                 VALUES
                       ('{reportImage
                        .Blh}'
                       ,'{reportImage.FileSafeName}'
                       ,'二代测序上传'
                       ,'1'
                       ,'' )";

                #endregion
                aa.ExecuteSQL(sql);
            }

            //上传成功后删除本地图片
            reportImages.ForEach(o => File.Delete(o.FileFullName));

            MessageBox.Show("上传成功!");

            //刷新待上传列表
            GetImages();
        }
Esempio n. 4
0
        public static string ptxml(string Sslbx, string Ssbz, string Debug)
        {
            if (Sslbx != "")
            {
                //************************************************
                //-------撤销申请单----
                //************************************************
                if (Sslbx == "撤销申请单")
                {
                    //dbbase.odbcdb aa = new dbbase.odbcdb("DSN=pathnet-his;UID=pathnet;PWD=4s3c2a1p", "", "");
                    xyfyyyweb.DHCPisXiangYaOne xyfy = new xyfyyyweb.DHCPisXiangYaOne();
                    string pathweburl = f.ReadString("SF", "webservicesurl", "");
                    if (pathweburl.Trim() != "")
                    {
                        xyfy.Url = pathweburl;
                    }

                    string T_exam_bill_items_sql = f.ReadString("SF", "V_exam_bill_items", "");

                    string yh = f.ReadString("yh", "yhmc", "").Replace("\0", "");

                    //if (yh.Length > 3 && yh.Length % 2 != 1)
                    //    yh = yh.Substring(0, yh.Length / 2);
                    //else
                    //    yh = "";

                    string Operator = yh;
                    string Status   = "301"; //:取消申请单301
                    try
                    {
                        //判断申请单信息表中是否有该条记录
                        DataTable sqdxx = new DBdata().select_sql("select * from  Examapply  where  CheckFlow='" + Ssbz.Trim() + "'  and  (jszt='已发送' or  jszt='已执行'  or  jszt='已作废')");
                        if (sqdxx.Rows.Count <= 0)
                        {
                            MessageBox.Show("病理申请单信息表中,无此申请号信息,请确认!!!");
                            return("0");
                        }

                        if (sqdxx.Rows[0]["jszt"].ToString().Trim() == "已作废")
                        {
                            MessageBox.Show("此申请单已作废!!!");
                            return("0");
                        }



                        dbbase.odbcdb aa      = new dbbase.odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", "");
                        DataTable     dt_jxcc = aa.GetDataTable("select * from   T_JCXX where F_SQXH='" + Ssbz.Trim() + "'", "jcxx");
                        if (dt_jxcc.Rows.Count > 0)
                        {
                            MessageBox.Show("此申请号在病理系统中已登记,请先取消登记再撤销!!!\n" + "姓名:" + dt_jxcc.Rows[0]["F_xm"].ToString() + "\n病理号:" + dt_jxcc.Rows[0]["F_BLH"].ToString());
                            return("0");
                        }



                        //判断此申请单是门诊还是住院

                        string brlb = sqdxx.Rows[0]["InOrOut"].ToString();

                        if (sqdxx.Rows[0]["kdxt"].ToString() == "PIS")
                        {
                            //内镜系统开申请单
                            DBdata db = new DBdata();

                            // 查询收费记录,有收费项目的不能撤销
                            string EXAM_NO = "";
                            try
                            {
                                string exam_appoints_id_str = "select *  from emr.exam_appoints_id where CHECK_FLOW='" + Ssbz.Trim() + "' ";
                                if (brlb == "门诊")
                                {
                                    exam_appoints_id_str = "select *  from mzemr.exam_appoints_id where CHECK_FLOW='" + Ssbz.Trim() + "' ";
                                }
                                DataTable exam_appoints_id = db.select_orcl(exam_appoints_id_str, "获取EXAM_NO号");
                                if (exam_appoints_id.Rows.Count > 0)
                                {
                                    EXAM_NO = exam_appoints_id.Rows[0]["EXAM_NO"].ToString().Trim();
                                }
                                else
                                {
                                    MessageBox.Show("撤销失败,不存在EXAM_NO号!"); return("0");
                                }
                            }
                            catch
                            {
                                MessageBox.Show("撤销失败,抛出异常"); return("0");
                            }


                            DataTable dt_sfmx = db.select_orcl("select * from exam.exam_bill_items  where  exam_no='" + EXAM_NO + "' " + T_exam_bill_items_sql + "   and  Performed_By='90' ", "获取收费明细");
                            if (dt_sfmx.Rows.Count > 0)
                            {
                                MessageBox.Show("此申请单为内镜开单系统所开,撤销申请时须退出所有的收费项目!");
                                return  "0";
                            }
                            else
                            {
                                int x = db.Execute_sql("delete  Examapply   where CheckFlow='" + Ssbz.Trim().Trim() + "'  and (jszt='已发送' or jszt='已接收') ");
                                if (x > 0)
                                {
                                    MessageBox.Show("撤销申请单完成");
                                }
                                else
                                {
                                    MessageBox.Show("撤销申请单失败");
                                }
                                return  "0";
                            }
                        }
                        else
                        {
                            //正常开单
                            string funName = "ExamStatus";
                            if (brlb == "住院")
                            {
                                funName = "ExamStatusIp";
                            }

                            string ExamStatus_XML = "<Request><ExamStatus>"
                                                    + "<CheckFlow>" + Ssbz + "</CheckFlow>"
                                                    + "<ExamGroup></ExamGroup><ScheduledDate></ScheduledDate><Note></Note>"
                                                    + "<Operator>" + Operator + "</Operator>"
                                                    + "<OperatorDate>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</OperatorDate><Status>" + Status + "</Status>"
                                                    + "<Notice></Notice><ExamAddress></ExamAddress></ExamStatus></Request>";



                            string rtn_Status = "";
                            //**********************************
                            //---执行撤销命令---------------
                            try
                            {
                                rtn_Status = xyfy.DhcService(funName, ExamStatus_XML);
                            }
                            catch (Exception e)
                            {
                                log.WriteMyLog("撤销申请状态错误," + e.ToString());
                                MessageBox.Show("撤销申请状态错误,可能是网络连接问题");
                                return("0");
                            }
                            //**********************************
                            //-----解析返回值xml-------------
                            //**********************************
                            if (rtn_Status.Trim() == "")
                            {
                                MessageBox.Show("撤销申请失败,返回值为空");
                                log.WriteMyLog("撤销申请错误,返回值为空");
                                return("0");
                            }
                            //------
                            try
                            {
                                XmlDataDocument xd = new XmlDataDocument();
                                xd.LoadXml(rtn_Status);
                                XmlNode xn = xd.SelectSingleNode("/Response");

                                if (xn.FirstChild["Returncode"].InnerText.ToString() == "-1")
                                {
                                    MessageBox.Show("撤销申请单失败!");
                                    return("0");
                                }


                                try
                                {
                                    int tn = new DBdata().Execute_sql("update  Examapply set  jszt='已作废'  where  CheckFlow='" + Ssbz + "'  and  (jszt='已发送' or  jszt='已接收')");
                                    //if (=0)
                                    MessageBox.Show("撤销申请单成功!");
                                    return("0");
                                }
                                catch
                                {
                                    MessageBox.Show("病理申请单信息表中数据删除失败,抛出异常");
                                    return("0");
                                }
                            }
                            catch (Exception xml_e)
                            {
                                MessageBox.Show("撤销申请失败,解析XML错误");
                                log.WriteMyLog("撤销申请错误,解析XML错误" + xml_e.ToString());
                                return("0");
                            }
                        }
                    }
                    catch (Exception eee)
                    {
                        MessageBox.Show("程序异常");
                        log.WriteMyLog("程序异常" + eee.ToString());
                        return("0");
                    }

                    //------
                }
                //************************************************
                //-------提取申请单信息,并判断是否要确认费用----
                //************************************************

                if (Sslbx == "申请单")
                {
                    DataTable dt_Examapply = new DataTable();

                    DBdata db = new DBdata();
                    //-------提取申请单信息-----------------

                    dbbase.odbcdb aa      = new dbbase.odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", "");
                    DataTable     dt_jcxx = aa.GetDataTable("select * from   T_JCXX where F_SQXH='" + Ssbz.Trim() + "'", "jcxx");
                    try
                    {
                        dt_Examapply = db.select_sql("select * from Examapply where  CheckFlow='" + Ssbz.Trim() + "'  and  (jszt='已发送' or jszt='已执行' or jszt='已作废')");
                    }
                    catch (Exception ee_examapply)
                    {
                        MessageBox.Show("获取申请单信息异常,数据库连接失败!");
                        log.WriteMyLog("获取申请单信息异常" + ee_examapply.ToString());
                        return("0");
                    }

                    try
                    {
                        if (dt_Examapply.Rows.Count < 1)
                        {
                            MessageBox.Show("未找到该申请单信息");
                            log.WriteMyLog("未找到该申请单信息,获取表中行数为0");
                            return("0");
                        }
                    }
                    catch (Exception sd)
                    {
                        MessageBox.Show(sd.ToString());
                    }


                    if (dt_Examapply.Rows[0]["jszt"].ToString().Trim() == "已作废")
                    {
                        MessageBox.Show("该申请单已作废,不能提取信息。\n" + "姓名:" + dt_Examapply.Rows[0]["NAME"].ToString().Trim() + "\n申请号:" + dt_Examapply.Rows[0]["CHECKFLOW"].ToString().Trim() + "\n" + "ID:" + dt_Examapply.Rows[0]["PATIENTID"].ToString().Trim());

                        return("0");
                    }


                    if (dt_jcxx.Rows.Count > 0)
                    {
                        if (MessageBox.Show("此病人已登记,请勿重复登记,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.No)
                        {
                            return("0");
                        }
                    }


                    //-------------------------------
                    //------判断住院病人是否计费----------------------
                    string rmb = dt_Examapply.Rows[0]["sfje"].ToString();

                    if (dt_Examapply.Rows[0]["jfbj"].ToString().Trim() != "1" && dt_Examapply.Rows[0]["INOROUT"].ToString().Trim() == "住院")
                    {
                        if (MessageBox.Show("此住院病人还未计费,是否现在计费", "收费信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                        {
                            frm_sfjk sf = new frm_sfjk(Ssbz, "0");
                            sf.ShowDialog();
                            rmb = sf.F_sfje.ToString();
                            if (rmb == "" || rmb == "0")
                            {
                                return("0");
                            }
                        }
                        else
                        {
                            MessageBox.Show("该住院病人未确认费用,不能登记");
                            return("0");
                        }
                    }

                    //------判断门诊病人是否已自动划价----------------------
                    if (dt_Examapply.Rows[0]["zdhj"].ToString().Trim() != "1" && dt_Examapply.Rows[0]["INOROUT"].ToString().Trim() == "门诊")
                    {
                        if (MessageBox.Show("此门诊病人还未划价,可能还未交费,请确认!\n是否现在进行划价", "收费信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1) == DialogResult.Yes)
                        {
                            frm_sfjk sf = new frm_sfjk(Ssbz, "0");
                            sf.ShowDialog();
                            rmb = sf.F_sfje.ToString();
                            if (rmb == "" || rmb == "0")
                            {
                                return("0");
                            }
                        }
                        else
                        {
                            MessageBox.Show("该门诊病人未划价未收费,不能登记");
                            return("0");
                        }
                    }

                    //门诊---判断是否收费
                    if (dt_Examapply.Rows[0]["INOROUT"].ToString() == "门诊")
                    {
                        DBdata db2 = new DBdata();
                        try
                        {
                            DataTable dt_exam_no = db2.select_orcl(" select exam_no  from mzemr.exam_appoints_id where CHECK_FLOW='" + dt_Examapply.Rows[0]["CHECKFLOW"].ToString().Trim() + "'", "获取exam_no");
                            if (dt_exam_no.Rows.Count > 0)
                            {
                                DataTable dt_exam_appoints_id = db2.select_orcl("select billing_attr,item_name from  exam.exam_bill_items where ordered_by='90' and performed_by='90' and exam_no='" + dt_exam_no.Rows[0]["exam_no"].ToString().Trim() + "' ", "获取收费明细");
                                if (dt_exam_appoints_id.Rows.Count > 0)
                                {
                                    for (int i = 0; i < dt_exam_appoints_id.Rows.Count; i++)
                                    {
                                        if (dt_exam_appoints_id.Rows[i]["billing_attr"].ToString() == "0")
                                        {
                                            MessageBox.Show("该病人还有收费项目未收费,不能提取信息:" + dt_exam_appoints_id.Rows[i]["item_name"].ToString());

                                            if (MessageBox.Show("是否查看收费项目", "收费信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                                            {
                                                frm_sfjk sf = new frm_sfjk(Ssbz, "0");
                                                sf.ShowDialog();
                                                rmb = sf.F_sfje.ToString();
                                                if (rmb == "" || rmb == "0")
                                                {
                                                    return("0");
                                                }
                                                db2.Execute_sql("update Examapply set  sfje='" + rmb + "'  where  CheckFlow='" + Ssbz.Trim() + "'");
                                                MessageBox.Show("病人有项目未交费,先交费再登记!");
                                                return("0");
                                            }
                                            else
                                            {
                                                return("0");
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("该病人没有收费项目明细,不能提取信息");
                                    if (MessageBox.Show("是否查看收费项目", "收费信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                                    {
                                        frm_sfjk sf = new frm_sfjk(Ssbz, "0");
                                        sf.ShowDialog();
                                        rmb = sf.F_sfje.ToString();
                                        if (rmb == "" || rmb == "0")
                                        {
                                            return("0");
                                        }
                                        db2.Execute_sql("update Examapply set  sfje='" + rmb + "'  where  CheckFlow='" + Ssbz.Trim() + "'");
                                        MessageBox.Show("病人有项目未交费,先交费再登记!");
                                        return("0");
                                    }
                                    else
                                    {
                                        return("0");
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("程序获取exam_no失败,不能提取信息");
                                return("0");
                            }
                        }
                        catch (Exception ee)
                        {
                            MessageBox.Show("程序异常,异常信息:" + ee.ToString());
                            return("0");
                        }
                    }
                    ///////////////////////////////////////////////////////////////
                    //合并申请号
                    string sfhb = f.ReadString("申请单", "sfhb", "0").Replace("\0", "");
                    if (sfhb.Trim() == "1")
                    {
                        try
                        {
                            string sss = "select * from Examapply  where jszt='已执行' and   PatientID='" + dt_Examapply.Rows[0]["PatientID"].ToString() + "' and visitid='" + dt_Examapply.Rows[0]["visitid"].ToString() + "' and  inorout='" + dt_Examapply.Rows[0]["inorout"].ToString() + "' and name='" + dt_Examapply.Rows[0]["name"].ToString() + "' and deptcode='" + dt_Examapply.Rows[0]["deptcode"].ToString() + "'and  deptname='" + dt_Examapply.Rows[0]["deptname"].ToString() + "'";// and  indate>='" + DateTime.Parse(dt_Examapply.Rows[0]["indate"].ToString()).AddDays(-1).ToString() + "' and indate<='" + DateTime.Parse(dt_Examapply.Rows[0]["indate"].ToString()).AddDays(1).ToString() + "'";

                            DataTable dt2 = db.select_sql(sss);

                            if (dt2.Rows.Count > 0)
                            {
                                if (dt2.Rows[0]["checkflow"].ToString().Trim() != Ssbz.Trim())
                                {
                                    if (MessageBox.Show("病人:" + dt_Examapply.Rows[0]["name"].ToString() + ",可能已送过标本组织,需要合并到之前的病理号吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                                    {
                                        string blh_2 = "";
                                        for (int i = 0; i < dt2.Rows.Count; i++)
                                        {
                                            if (dt2.Rows[i]["checkflow"].ToString().Trim() != Ssbz.Trim())
                                            {
                                                DataTable dt_sqxx = aa.GetDataTable("select F_BLH,F_SQXH2 from   T_JCXX where F_SQXH='" + dt2.Rows[i]["checkflow"].ToString().Trim() + "'  and F_BGZT<>'已审核'", "sqxx");
                                                if (dt_sqxx.Rows.Count > 0)
                                                {
                                                    for (int y = 0; y < dt_sqxx.Rows.Count; y++)
                                                    {
                                                        if (dt_sqxx.Rows[y]["F_sqxh2"].ToString().Trim() == Ssbz.Trim())
                                                        {
                                                            MessageBox.Show("此病人申请号已经合并过,不能再合并,合并病理号" + dt_sqxx.Rows[y]["F_blh"].ToString().Trim());
                                                            return("0");
                                                        }
                                                        blh_2 = blh_2 + "^" + dt_sqxx.Rows[y]["F_BLH"].ToString().Trim();
                                                    }
                                                }
                                            }
                                        }
                                        //////////////////////
                                        if (blh_2.Trim().TrimStart('^').Trim() == "" || blh_2.Trim() == "")
                                        {
                                            MessageBox.Show("未查到病理号,不能合并");
                                            return("0");
                                        }
                                        xyxxshowblh ff = new xyxxshowblh(blh_2.Trim().TrimStart('^'));
                                        ff.ShowDialog();
                                        string getblh = ff.getblh;

                                        if (getblh.Trim() == "")
                                        {
                                            MessageBox.Show("病理号为空,不能合并");
                                            return("0");
                                        }
                                        else
                                        {//合并
                                            DataTable dt_bl = aa.GetDataTable("select *  from   T_JCXX where F_BLH='" + getblh.Trim() + "'", "sqxx");
                                            if (dt_bl.Rows.Count <= 0)
                                            {
                                                MessageBox.Show("获取病理号" + getblh.Trim() + "信息错误,不能合并");
                                                return("0");
                                            }

                                            decimal je_2 = decimal.Parse(dt_bl.Rows[0]["F_SF"].ToString()) + decimal.Parse(rmb);

                                            if ((aa.ExecuteSQL("update  T_JCXX  set F_SQXH2='" + Ssbz.Trim() + "',F_SF='" + je_2.ToString() + "' where  F_BLH='" + getblh.Trim() + "'")) <= 0)
                                            {
                                                MessageBox.Show("不能合并,合并错误");
                                            }
                                            else
                                            {
                                                db.Execute_sql("update Examapply   set jszt='已执行'  where   CheckFlow='" + Ssbz.Trim() + "'  and jszt<>'已执行' ");
                                                MessageBox.Show("合并完成,病理号:" + getblh.Trim());
                                            }
                                            return("0");
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception ee3)
                        {
                            MessageBox.Show("不能合并,合并异常" + ee3.ToString());
                            return("0");
                        }
                    }

                    ///////////////////////////////////////////////////////////////////
                    //---------------------------------------------
                    string bbmc = dt_Examapply.Rows[0]["bb1"].ToString().Trim() + "(" + dt_Examapply.Rows[0]["bw1"].ToString().Trim() + ")";
                    if (dt_Examapply.Rows[0]["bb2"].ToString().Trim() != "" || dt_Examapply.Rows[0]["bb2"].ToString().Trim() != "")
                    {
                        bbmc = bbmc + "," + dt_Examapply.Rows[0]["bb2"].ToString().Trim() + "(" + dt_Examapply.Rows[0]["bw2"].ToString().Trim() + ")";
                    }
                    if (dt_Examapply.Rows[0]["bb3"].ToString().Trim() != "" || dt_Examapply.Rows[0]["bb3"].ToString().Trim() != "")
                    {
                        bbmc = bbmc + "," + dt_Examapply.Rows[0]["bb3"].ToString().Trim() + "(" + dt_Examapply.Rows[0]["bw3"].ToString().Trim() + ")";
                    }
                    if (dt_Examapply.Rows[0]["bb4"].ToString().Trim() != "" || dt_Examapply.Rows[0]["bb4"].ToString().Trim() != "")
                    {
                        bbmc = bbmc + "," + dt_Examapply.Rows[0]["bb4"].ToString().Trim() + "(" + dt_Examapply.Rows[0]["bw4"].ToString().Trim() + ")";
                    }



                    //---------xml------------------------
                    string xml = "<?xml version=" + (char)34 + "1.0" + (char)34 + " encoding=" + (char)34 + "gbk" + (char)34 + "?>";
                    try
                    {
                        xml = xml + "<LOGENE>";
                        xml = xml + "<row ";
                        xml = xml + "病人编号=" + (char)34 + dt_Examapply.Rows[0]["PATIENTID"].ToString() + (char)34 + " ";
                        xml = xml + "就诊ID=" + (char)34 + dt_Examapply.Rows[0]["VISITID"].ToString() + (char)34 + " ";
                        xml = xml + "申请序号=" + (char)34 + dt_Examapply.Rows[0]["CHECKFLOW"].ToString() + (char)34 + " ";
                        xml = xml + "门诊号=" + (char)34 + dt_Examapply.Rows[0]["VISITNO"].ToString() + (char)34 + " ";
                        xml = xml + "住院号=" + (char)34 + dt_Examapply.Rows[0]["INPNO"].ToString() + (char)34 + " ";
                        xml = xml + "姓名=" + (char)34 + dt_Examapply.Rows[0]["NAME"].ToString() + (char)34 + " ";
                        xml = xml + "性别=" + (char)34 + dt_Examapply.Rows[0]["SEX"].ToString() + (char)34 + " ";
                        xml = xml + "年龄=" + (char)34 + dt_Examapply.Rows[0]["AGE"].ToString() + (char)34 + " ";

                        xml = xml + "婚姻=" + (char)34 + "" + (char)34 + " ";
                        xml = xml + "地址=" + (char)34 + dt_Examapply.Rows[0]["ADDRESS"].ToString() + (char)34 + "   ";
                        xml = xml + "电话=" + (char)34 + dt_Examapply.Rows[0]["PHONE"].ToString() + (char)34 + " ";
                        xml = xml + "病区=" + (char)34 + dt_Examapply.Rows[0]["DEPTNAME"].ToString() + (char)34 + " ";
                        xml = xml + "床号=" + (char)34 + dt_Examapply.Rows[0]["BEDNO"].ToString() + (char)34 + " ";
                        xml = xml + "身份证号=" + (char)34 + "" + (char)34 + " ";
                        xml = xml + "民族=" + (char)34 + "汉族" + (char)34 + " ";
                        xml = xml + "职业=" + (char)34 + dt_Examapply.Rows[0]["DATEOFBIRTH"].ToString() + (char)34 + " ";
                        if (dt_Examapply.Rows[0]["KDXT"].ToString() == "PIS")
                        {
                            xml = xml + "送检科室=" + (char)34 + dt_Examapply.Rows[0]["reqdept"].ToString() + (char)34 + " ";
                        }
                        else
                        {
                            xml = xml + "送检科室=" + (char)34 + dt_Examapply.Rows[0]["DEPTNAME"].ToString() + (char)34 + " ";
                        }
                        xml = xml + "送检医生=" + (char)34 + dt_Examapply.Rows[0]["REQPHYSICIAN"].ToString() + (char)34 + " ";
                        //if (dt_Examapply.Rows[0]["sfje"].ToString().Trim() != "")
                        //    rmb = dt_Examapply.Rows[0]["sfje"].ToString();
                        xml = xml + "收费=" + (char)34 + rmb + (char)34 + " ";
                        xml = xml + "标本名称=" + (char)34 + bbmc.Replace("()", "").ToString() + (char)34 + " ";
                        xml = xml + "送检医院=" + (char)34 + "本院" + (char)34 + " ";
                        xml = xml + "医嘱项目=" + (char)34 + dt_Examapply.Rows[0]["EXAMITEM"].ToString() + (char)34 + " ";
                        xml = xml + "备用1=" + (char)34 + "" + (char)34 + " ";
                        xml = xml + "备用2=" + (char)34 + "" + (char)34 + " ";
                        xml = xml + "费别=" + (char)34 + dt_Examapply.Rows[0]["Identitys"].ToString() + (char)34 + " ";
                        xml = xml + "病人类别=" + (char)34 + dt_Examapply.Rows[0]["INOROUT"].ToString() + (char)34 + " ";
                        xml = xml + "/>";
                        string mcyj = dt_Examapply.Rows[0]["mcyj"].ToString().Trim();
                        if (mcyj != "")
                        {
                            mcyj = "末次月经:" + mcyj;
                        }
                        xml = xml + "<临床病史><![CDATA[" + mcyj + "  " + dt_Examapply.Rows[0]["ClinSYMP"].ToString() + "]]></临床病史>";
                        xml = xml + "<临床诊断><![CDATA[" + dt_Examapply.Rows[0]["CLINDIAG"].ToString() + "]]></临床诊断>";
                        xml = xml + "</LOGENE>";
                        return(xml);
                    }
                    catch (Exception rtn_xml_e)
                    {
                        MessageBox.Show("拼接XML异常" + rtn_xml_e.ToString());
                        return("0");
                    }
                }
                if (Sslbx == "查询申请表")
                {
                    string path = f.ReadString("查询申请表", "exepath", "");
                    if (path.Trim() == "")
                    {
                        path = "D:\\pathqc\\xy1ysqcx.exe";
                    }
                    Process.Start(path);
                    return("0");
                }

                return("0");
            }
            return("0");
        }
Esempio n. 5
0
        public static void messagemain(string msg, string hl7server, string hl7port, ref byte[] ack)
        {
            HL7.readhl7 adtread = new HL7.readhl7();
            string[]    aaa     = adtread.Adt01(msg);
            // netStream = client.GetStream();
            string hfdm = "";


            hfdm = "ORR^O02";
            //回复消息
            byte[] by2 = System.Text.Encoding.UTF8.GetBytes(adtread.MSH[0].ToString() + "|" + adtread.MSH[1].ToString() + "|BL||EMR||" + adtread.MSH[6].ToString() + "||" + hfdm + "|ACK" + adtread.MSH[9].ToString() + "|" + adtread.MSH[10].ToString() + "|" + adtread.MSH[11].ToString() + "||||||utf-8\r" + "MSA|AA|" + adtread.MSH[9].ToString() + "|0|||\r");
            byte[] by3 = new byte[by2.Length + 3];
            by3[0] = 11;
            Array.Copy(by2, 0, by3, 1, by2.Length);
            by3[by3.Length - 2] = 28;
            by3[by3.Length - 1] = 13;
            ack = by3;
            try
            {
                //删除申请单
                if (adtread.MSH[8] == "ORM^O01" && adtread.ORC[1] == "CA")
                {
                    //aa.ExecuteSQL("delete from T_HL7_SQD where F_sqxh='" + adtread.ORC[4].ToString().Trim() + "'");
                    aa.ExecuteSQL("delete from T_HL7_SQD where F_yzid='" + adtread.OBR[45].Replace(@"\r", "").Split('^')[3] + "'");
                    aa.ExecuteSQL("delete from T_hl7_bblb where F_yzid='" + adtread.OBR[45].Replace(@"\r", "").Split('^')[3] + "'");

                    return;
                }

                //存档1 ORM^O01
                if (adtread.MSH[8] == "ORM^O01" && adtread.ORC[1] == "NW")
                {
                    string[] fields = new string[42];
                    fields[0]  = "F_brid";
                    fields[1]  = "F_brxm";
                    fields[2]  = "F_brsr";
                    fields[3]  = "F_brxb";
                    fields[4]  = "F_brdz";
                    fields[5]  = "F_brdh";
                    fields[6]  = "F_brly";
                    fields[7]  = "F_bqxx";
                    fields[8]  = "F_ksxx";
                    fields[9]  = "F_zzys";
                    fields[10] = "F_zyh";
                    fields[11] = "F_jzsj";
                    fields[12] = "F_brlb";
                    fields[13] = "F_xm";
                    fields[14] = "F_xb";
                    fields[15] = "F_nl";
                    fields[16] = "F_bq";
                    fields[17] = "F_ch";
                    fields[18] = "F_messageid";
                    fields[19] = "F_mzh";
                    fields[20] = "F_sqxh";
                    fields[21] = "F_yzid";

                    fields[22] = "F_sqsj";
                    fields[23] = "F_sjys";
                    fields[24] = "F_sjks";
                    fields[25] = "F_zxks";

                    fields[26] = "F_yzxm";
                    fields[27] = "F_sldw";
                    fields[28] = "F_je";
                    fields[29] = "F_fph";
                    fields[30] = "F_hjsf";
                    fields[31] = "F_PID";
                    fields[32] = "F_PV1";
                    fields[33] = "F_ORC";
                    fields[34] = "F_OBR";
                    fields[35] = "F_barcode";
                    fields[36] = "F_bbmc";
                    fields[37] = "F_lczd";
                    fields[38] = "F_MzhOrZyh";
                    fields[39] = "F_FB";
                    fields[40] = "F_rysj";
                    fields[41] = "F_lczl";
                    string[] values = new string[42];


                    ////PID
                    values[0] = adtread.PID[3].Split('^')[0];
                    values[1] = adtread.PID[5];
                    values[2] = adtread.PID[7];
                    values[3] = adtread.PID[8];
                    values[4] = adtread.PID[11];
                    values[5] = adtread.PID[13];

                    //PV1
                    values[6] = adtread.PV1[2];
                    values[7] = adtread.PV1[3];
                    //
                    values[38] = adtread.PV1[19];
                    values[39] = adtread.PV1[20];
                    values[40] = adtread.PV1[44];

                    //OBR
                    values[8] = adtread.OBR[18] + "|" + adtread.OBR[19];

                    string bbmc  = adtread.OBR[39];
                    int    start = bbmc.IndexOf("送检标本#");

                    if (bbmc.IndexOf("送检标本#") > 0)
                    {
                        bbmc = bbmc.Substring(start + 5);
                        if (bbmc.IndexOf("$$") > 0)
                        {
                            bbmc = bbmc.Substring(0, bbmc.IndexOf("$$"));
                        }
                        else
                        {
                            bbmc = "";
                        }
                    }
                    else
                    {
                        bbmc = "";
                    }
                    string[] bblb = bbmc.Split(';');

                    bbmc = bblb[0];
                    //bbmc = adtread.OBR[27].Substring(adtread.OBR[27].IndexOf("送检标本#") + 5, adtread.OBR[27].IndexOf("送检标本#").ToString().Length - adtread.OBR[27].IndexOf("送检标本#").ToString().Length);

                    string barcode = "";


                    if (bbmc.Split('/').Length >= 3)
                    {
                        barcode    = bbmc.Split('/')[2];
                        bbmc       = bbmc.Split('/')[0] + "/" + bbmc.Split('/')[1];
                        values[35] = barcode;
                        values[36] = bbmc;
                    }
                    else
                    {
                        values[35] = "";
                        values[36] = bbmc;
                    }
                    //MessageBox.Show("1");
                    /////zgq---bbmc-lczd-lczl
                    //string NTE = adtread.NTE[3];
                    //MessageBox.Show(NTE);
                    //string [] nte_1 = NTE.Replace("$$", "$").Split('$');
                    //MessageBox.Show(nte_1[0]);
                    //string lczd_1 = nte_1[0].Split('#')[1].ToString();
                    //MessageBox.Show("7");
                    //string bbmc_1 = nte_1[1].Split('#')[1].ToString() + ";" + nte_1[0].Split('#')[2].ToString() + ";" + nte_1[0].Split('#')[3].ToString();
                    ////string cqbw_1 = nte_1[1].Split('#')[1].ToString() + ";" + nte_1[0].Split('#')[2].ToString() + ";" + nte_1[0].Split('#')[3].ToString();
                    //string lczl_1 = nte_1[1].Split('#')[4].ToString();
                    //MessageBox.Show("9");
                    //bbmc_1 = bbmc_1.Replace(";;", ";");
                    //values[36] = bbmc_1;
                    //values[37] = lczd_1;
                    //values[41] = lczl_1;
                    values[41] = "";
                    values[9]  = "";
                    //住院号
                    if (adtread.PV1[2].Trim() == "I")
                    {
                        values[38] = adtread.PV1[19];
                    }
                    else
                    {
                        values[10] = "";
                    }
                    //门诊号
                    if (adtread.PV1[2].Trim() == "O" || adtread.PV1[2].Trim() == "P")
                    {
                        values[19] = adtread.PV1[19];
                    }
                    else
                    {
                        values[19] = "";
                    }

                    values[11] = "";


                    if (adtread.PV1[2].Trim() == "I")
                    {
                        values[12] = "住院";
                    }
                    if (adtread.PV1[2].Trim() == "O")
                    {
                        values[12] = "门诊";
                    }
                    if (adtread.PV1[2].Trim() == "P")
                    {
                        values[12] = "体检";
                    }
                    if (adtread.PV1[2].Trim() == "E")
                    {
                        values[12] = "急诊";
                    }


                    //values[15] = "住院";

                    values[13] = adtread.PID[5];
                    if (adtread.PID[5].IndexOf('^') > -1)
                    {
                        values[13] = adtread.PID[5].Substring(0, adtread.PID[5].IndexOf('^'));
                    }


                    values[14] = "其他";
                    if (adtread.PID[8].Trim() == "M")
                    {
                        values[14] = "男";
                    }
                    if (adtread.PID[8].Trim() == "F")
                    {
                        values[14] = "女";
                    }

                    try
                    {
                        DateTime tm1 = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd"));
                        DateTime tm2 = Convert.ToDateTime(adtread.PID[7].Substring(0, 4) + "-" + adtread.PID[7].Substring(4, 2) + "-" + adtread.PID[7].Substring(6, 2));
                        values[15] = datediff(tm1, tm2);
                    }
                    catch
                    {
                        values[15] = "0岁";
                    }



                    values[16] = "";
                    values[17] = "";
                    if (adtread.PV1[3].IndexOf('^') > -1)
                    {
                        try
                        {
                            values[16] = adtread.PV1[3].Split('^')[0];
                            values[17] = adtread.PV1[3].Split('^')[2];
                        }
                        catch
                        { }
                    }

                    values[18] = adtread.MSH[9];

                    //ORC
                    values[20] = adtread.ORC[2];
                    values[21] = adtread.ORC[4];//收费小序号
                    //  values[21] = adtread.OBR[45].Replace(@"\r", "").Split('^')[3];

                    values[22] = adtread.OBR[6];
                    values[23] = adtread.ORC[12];
                    values[24] = adtread.OBR[18] + "|" + adtread.OBR[19];
                    values[25] = adtread.OBR[20] + "|" + adtread.OBR[21];

                    values[26] = adtread.OBR[4];
                    values[27] = adtread.OBR[9];

                    values[28] = adtread.OBR[23];
                    values[29] = adtread.OBR[46].Replace(@"\r", "");
                    values[30] = adtread.OBR[45].Replace(@"\r", "");
                    try
                    {
                        //NTE
                        string nte = adtread.OBR[3];
                        values[37] = nte.Split('$')[0].Split('#')[1].ToString();
                    }
                    catch
                    {
                        values[37] = "";
                    }
                    string pid = "";
                    for (int i = 0; i < adtread.PID.Length; i++)
                    {
                        pid = pid + adtread.PID[i].ToString() + "|";
                    }

                    pid = pid.Replace(@"\r", "");
                    string pv1 = "";
                    for (int j = 0; j < adtread.PV1.Length; j++)
                    {
                        pv1 = pv1 + adtread.PV1[j].ToString() + "|";
                    }
                    string orc = "";
                    for (int ii = 0; ii < adtread.ORC.Length; ii++)
                    {
                        orc = orc + adtread.ORC[ii].ToString() + "|";
                    }
                    orc = orc.Replace(@"\r", "");
                    string obr = "";
                    // LGZGQClass.log.WriteMyLog(adtread.OBR.Length.ToString());
                    for (int jj = 0; jj < adtread.OBR.Length; jj++)
                    {
                        // LGZGQClass.log.WriteMyLog(jj.ToString()+" "+adtread.OBR[jj].ToString());
                        obr = obr + adtread.OBR[jj].ToString() + "|";
                    }

                    pv1        = pv1.Replace(@"\r", "");
                    values[31] = pid;
                    values[32] = pv1;
                    values[33] = orc;
                    values[34] = obr;


                    DataTable hl7check = aa.GetDataTable("select * from T_HL7_SQD where F_messageid='" + adtread.MSH[9] + "'", "checkhl7");

                    if (hl7check.Rows.Count > 0)
                    {
                        log.WriteMyLog("重发消息" + adtread.MSH[9] + ",不处理!");
                        //MessageBox.Show("重发消息");
                    }
                    else
                    {
                        aa.insertsql("T_HL7_SQD", ref fields, ref values);

                        string[] bbfds = new string[6];
                        string[] bbvas = new string[6];
                        bbfds[0] = "F_tmh";
                        bbfds[1] = "F_bbmc";
                        bbfds[2] = "F_bbbw";
                        bbfds[3] = "F_sl";

                        bbfds[4] = "F_sqdh";
                        bbfds[5] = "F_yzid";

                        bbvas[4] = values[20];
                        bbvas[5] = values[21];

                        for (int i = 0; i < bblb.Length; i++)
                        {
                            bbvas[0] = bblb[i].Split('/')[2];
                            bbvas[1] = bblb[i].Split('/')[1];
                            bbvas[2] = bblb[i].Split('/')[0];
                            bbvas[3] = bblb[i].Split('/')[3];
                            aa.insertsql("T_hl7_bblb", ref bbfds, ref bbvas);
                        }
                    }
                    //hl7sub.sendack(ref by3, hl7server,hl7port);
                    //netStream.Write(by3, 0, by3.Length);
                    //netStream.Flush();
                    // LGZGQClass.log.WriteMyLog("send to server " + f.ReadString("HL7", "Server", "") + ":" + f.ReadInteger("HL7", "Port", 8000).ToString() + " message:" + System.Text.Encoding.Default.GetString(by3, 0, by3.Length));
                }
            }
            catch (Exception ex)
            {
                hfdm = "ORR^O02";
                //回复消息
                by2    = System.Text.Encoding.UTF8.GetBytes(adtread.MSH[0].ToString() + "|" + adtread.MSH[1].ToString() + "|BL||EMR||" + adtread.MSH[6].ToString() + "||" + hfdm + "|ACK" + adtread.MSH[9].ToString() + "|" + adtread.MSH[10].ToString() + "|" + adtread.MSH[11].ToString() + "||||||utf-8\r" + "MSA|AE|ACK2" + adtread.MSH[9].ToString() + "|" + ex.Message.ToString() + "||\r");
                by3    = new byte[by2.Length + 3];
                by3[0] = 11;
                Array.Copy(by2, 0, by3, 1, by2.Length);
                by3[by3.Length - 2] = 28;
                by3[by3.Length - 1] = 13;
                ack = by3;
            }


            //if (adtread.MSH[8] == "ACK")
            //{
            //    string[] fields = new string[3];
            //    fields[0] = "F_messageid";
            //    fields[1] = "F_zt";
            //    fields[2] = "F_bz";
            //    string[] values = new string[3];
            //    string messagetype = adtread.MSA[2];
            //    values[0] = "";
            //    if (messagetype.IndexOf("IP") > 0)
            //    {
            //        values[0] = messagetype.Substring(0, messagetype.IndexOf("IP"));
            //    }
            //    if (messagetype.IndexOf("BG") > 0)
            //    {
            //        values[0] = messagetype.Substring(0, messagetype.IndexOf("BG"));
            //    }
            //    if (messagetype.IndexOf("AA") > 0)
            //    {
            //        values[0] = messagetype.Substring(0, messagetype.IndexOf("AA"));
            //         LGZGQClass.log.WriteMyLog(messagetype+"检查完成ACK消息,不处理!");
            //        return;

            //    }
            //    if (messagetype.IndexOf("CM") > 0)
            //    {
            //        values[0] = messagetype.Substring(0, messagetype.IndexOf("CM"));
            //         LGZGQClass.log.WriteMyLog(messagetype + "报告审核ACK消息,不处理!");
            //        return;

            //    }
            //    if (messagetype.IndexOf("OC") > 0)
            //    {
            //        values[0] = messagetype.Substring(0, messagetype.IndexOf("OC"));
            //         LGZGQClass.log.WriteMyLog(messagetype + "取消检查ACK消息,不处理!");
            //        return;

            //    }
            //    if (adtread.MSA[1] == "AA")
            //    {
            //        values[1] = "发送完成";
            //        values[2] = "";
            //    }
            //    else
            //    {
            //        values[1] = "发送失败";
            //        values[2] = "HIS错误";
            //    }

            //    dbbase.sqldb aa = new sqldb(System.Windows.Forms.Application.StartupPath, "sqlserver2");
            //    if (values[0] == "")
            //    {
            //         LGZGQClass.log.WriteMyLog(adtread.MSA[2] + " HIS错误消息,不处理!");
            //    }
            //    else
            //    {
            //        if (aa.updatesql("T_jcxx2", ref fields, ref values, "F_messageid='" + values[0] + "'"))
            //        { }
            //        else
            //        {
            //             LGZGQClass.log.WriteMyLog(adtread.MSA[2] + "更新失败!");
            //        }
            //    }
            //}
        }
Esempio n. 6
0
        public void pathtohis(string blh, string debug)
        {
            string CZY   = f.ReadString("yh", "yhmc", "").Replace("\0", "").Trim();
            string CZYGH = f.ReadString("yh", "yhbh", "").Replace("\0", "").Trim();
            int    ljfs  = f.ReadInteger("savetohis", "ljfs", 1);

            debug = f.ReadString("savetohis", "debug", "").Replace("\0", "").Trim();

            string msg   = f.ReadString("savetohis", "msg", "").Replace("\0", "").Trim();
            string wsurl = f.ReadString("savetohis", "wsurl", "").Replace("\0", "").Trim();



            DataTable bljc = new DataTable();

            bljc = aa.GetDataTable("select * from T_jcxx where F_blh='" + blh + "'", "bljc");
            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("无申请序号(单据号),不处理!");
                ZgqClass.BGHJ(blh, CZY, "保存", "无申请序号(单据号),不处理!", "ZGQJK", "");
                return;
            }



            string constr = f.ReadString("savetohis", "odbcsql", "Data Source=192.168.4.5;Initial Catalog=ESDB;User Id=sa;Password=abc123!;");

            SqlDB  db     = new SqlDB();
            string errmsg = "";

            try
            {
                if (bljc.Rows[0]["F_HISBJ"].ToString() == "" || bljc.Rows[0]["F_HISBJ"].ToString() == null)
                {
                    string sql1 = "update pacs_resulto_temp set flag=1  where detail_id='" + bljc.Rows[0]["F_SQXH"].ToString() + "'";

                    int x = db.ExecuteNonQuery(constr, sql1, ref errmsg);
                    if (x > 0)
                    {
                        aa.ExecuteSQL("update T_JCXX set F_HISBJ='1'  where F_blh='" + blh + "'");
                        if (debug == "1")
                        {
                            MessageBox.Show("ToHIS:回写状态成功");
                        }
                    }
                    else
                    {
                        log.WriteMyLog("ToHIS:回写状态失败:" + errmsg + "\r\n" + sql1);
                        if (debug == "1")
                        {
                            MessageBox.Show("ToHIS:回写状态失败");
                        }
                    }
                }
            }
            catch
            {
                log.WriteMyLog("ToHIS:回写状态异常");
            }
            if (bljc.Rows[0]["F_BGZT"].ToString() == "已审核")
            {
                string sql = "update pacs_resulto_temp set flag=2,report_no='" + blh + "',check_ok='" + bljc.Rows[0]["F_RYSJ"].ToString() + "',check_result='" + bljc.Rows[0]["F_BLZD"].ToString() + "',execute_date='" + bljc.Rows[0]["F_BGRQ"].ToString() + "',doctor='" + bljc.Rows[0]["F_SHYS"].ToString() + "',check_date='" + bljc.Rows[0]["F_SPARE5"].ToString() + "',check_doctor='" + bljc.Rows[0]["F_SHYS"].ToString() + "'";
                sql = sql + "  where detail_id='" + bljc.Rows[0]["F_SQXH"].ToString() + "'";

                if (debug == "1")
                {
                    log.WriteMyLog(sql);
                }

                int x = db.ExecuteNonQuery(constr, sql, ref errmsg);
                log.WriteMyLog("返回:" + x.ToString() + "---" + errmsg);
                if (x > 0)
                {
                    aa.ExecuteSQL("update T_JCXX set F_HISBJ='2' where F_blh='" + blh + "'");
                    if (debug == "1")
                    {
                        MessageBox.Show("ToHIS:回写报告成功");
                    }
                }
                else
                {
                    log.WriteMyLog("ToHIS:回写报告失败:" + errmsg + "\r\n" + sql);
                    if (debug == "1")
                    {
                        MessageBox.Show("ToHIS:回写报告失败");
                    }
                }
                //   return;
            }
            else
            if (bljc.Rows[0]["F_BGZT"].ToString() == "已写报告" && bljc.Rows[0]["F_HISBJ"].ToString() == "2")
            {
                string sql1 = "update pacs_resulto_temp set flag=-1,report_no='" + blh + "',check_ok='',check_result='',execute_date='',doctor='',check_date='',check_doctor='' "
                              + "  where detail_id='" + bljc.Rows[0]["F_SQXH"].ToString() + "'";

                int x = db.ExecuteNonQuery(constr, sql1, ref errmsg);
                if (x > 0)
                {
                    aa.ExecuteSQL("update T_JCXX set F_HISBJ='-1' where F_blh='" + blh + "'");
                    if (debug == "1")
                    {
                        MessageBox.Show("ToHIS:回收报告成功");
                    }
                }
                else
                {
                    log.WriteMyLog("ToHIS:回收报告失败:" + errmsg + "\r\n" + sql1);
                    if (debug == "1")
                    {
                        MessageBox.Show("ToHIS:回收报告失败");
                    }
                }
            }
            else
            {
                log.WriteMyLog("ToHIS:" + bljc.Rows[0]["F_BGZT"].ToString() + ",不处理");
            }
            //tohis
            //    tohis(blh, bljc,debug);
            //topacs
            // topacs(blh, bljc,debug,bglx,bgxh,dz);
        }
Esempio n. 7
0
File: hszxyy.cs Progetto: ewin66/-
        private void button1_Click(object sender, EventArgs e)
        {
            if (txtContent.Text.Trim() == "")
            {
                MessageBox.Show("没有内容可发送");
                return;
            }
            if (txtPhoneNumber.Text.Trim() == "")
            {
                MessageBox.Show("请输入电话号码");
                return;
            }
            if (txtPhoneNumber.Text.Trim().Length != 11)
            {
                MessageBox.Show("电话号码长度有误");
                return;
            }
            //try
            //{
            //    int dh = Convert.ToInt32(textBox7.Text.Trim());
            //}
            //catch
            //{
            //    MessageBox.Show("电话号码有误");
            //    return;
            //}
            if (F_blh == "")
            {
                MessageBox.Show("无法发送");
                return;
            }

            if (bgys != ysmc && shys != ysmc)
            {
                MessageBox.Show("非报告医生或审核医生,无法发送");
                return;
            }
            SMSService fswjz = new SMSService();
            string     url   = f.ReadString("wjz", "url", "");

            if (url != "")
            {
                fswjz.Url = url;
            }
            string msgid = Guid.NewGuid().ToString();
            string ss    = fswjz.SendSMS(msgid, txtPhoneNumber.Text, txtContent.Text.Trim(), "B55E51E062EC377E42C7FF0BC0149B57C4BC3E4224F5631148A3852C64DA398E");

            if (ss.ToLower() == "ok")
            {
                aa.ExecuteSQL("update T_jcxx set F_yl6='" + DateTime.Now.ToString("yyyyMMddHHmmss") + " '+'" + txtPhoneNumber.Text + " " + txtContent.Text.Trim() + " " + msgid + "' where F_blh='" + F_blh + "'");

                //记录到数据库
                InsertCrisisRecord(msgid);
                //推送到平台
                CrisisReportService crs = new CrisisReportService();
                crs.Url = f.ReadString("hszxyy", "wjzurl", "http://172.16.80.174:8081/CrisisReportService.asmx");
                crs.ReportCrisis(F_blh, txtContent.Text);

                writebg(txtContent.Text.Trim(), F_blh, "发送危急值", "危急值");
                MessageBox.Show("危机值消息发送完成");
                btnSend.Enabled = false;
            }
            else
            {
                MessageBox.Show(ss);
            }
        }
Esempio n. 8
0
        /// <summary>
        /// 生成PDF文件并上传表
        /// </summary>
        /// <param name="cgbcbd"></param>
        /// <param name="sqlcmd"></param>
        private void scpdf(string F_blh, string cgbcbd, SqlCommand sqlcmd, string bgxh, string debug, DataTable jcxx, SqlConnection sqlcon, dbbase.odbcdb aa)
        {
            #region    生成pdf读入二进制流
            string pdfname = "";

            try
            {
                string    message = "";
                ZgqPDFJPG zgq     = new ZgqPDFJPG();
                bool      isrtn   = zgq.CreatePDF(F_blh, cgbcbd, bgxh, ZgqPDFJPG.Type.PDF, ref message, ref pdfname);

                if (!isrtn)
                {
                    log.WriteMyLog(F_blh + "^" + cgbcbd + "^" + bgxh + ",生成PDF失败:" + message);
                    aa.ExecuteSQL("update T_jcxx_fs_sm set F_bz='生成PDF失败:" + message + "'  where F_blh='" + F_blh + "' and F_BGLX='" + cgbcbd.ToLower() + "' and F_BGXH='" + bgxh + "' and F_BGZT='已审核'");
                    return;
                }

                //二进制串
                if (!File.Exists(pdfname))
                {
                    log.WriteMyLog("未查询到pdf文件" + pdfname);
                    aa.ExecuteSQL("update T_jcxx_fs_sm set F_bz='未查询到pdf文件" + pdfname + "'  where F_blh='" + F_blh + "' and F_BGLX='" + cgbcbd.ToLower() + "' and F_BGXH='" + bgxh + "' and F_BGZT='已审核'");

                    return;
                }

                FileStream fs = null;
                try
                {
                    fs = new FileStream(pdfname, FileMode.Open, FileAccess.Read);
                    Byte[] image = new Byte[fs.Length];
                    fs.Read(image, 0, image.Length);
                    fs.Close();

                    //2016-03-11
                    string insertsql = "insert into BLBGPDF(blh,bglx,bgxh,patientid,pdf,sdrq,patientname,bbmc,hospitalid,blk)values(@blh,@bglx,@bgxh,@patientid,@pdf,@sdrq,@patientname,@bbmc,@hospitalid,@blk)";
                    try
                    {
                        if (debug == "1")
                        {
                            log.WriteMyLog(insertsql);
                        }
                        sqlcmd.CommandText = insertsql;
                        sqlcmd.Parameters.Add("@blh", SqlDbType.VarChar);
                        sqlcmd.Parameters.Add("@bglx", SqlDbType.VarChar);
                        sqlcmd.Parameters.Add("@bgxh", SqlDbType.VarChar);
                        sqlcmd.Parameters.Add("@patientid", SqlDbType.VarChar);
                        sqlcmd.Parameters.Add("@pdf", SqlDbType.Binary);

                        sqlcmd.Parameters.Add("@sdrq", SqlDbType.VarChar);
                        sqlcmd.Parameters.Add("@patientname", SqlDbType.NVarChar);
                        sqlcmd.Parameters.Add("@bbmc", SqlDbType.NVarChar);
                        sqlcmd.Parameters.Add("@hospitalid", SqlDbType.VarChar);
                        sqlcmd.Parameters.Add("@blk", SqlDbType.NVarChar);


                        sqlcmd.Parameters["@blh"].Value       = F_blh;
                        sqlcmd.Parameters["@bglx"].Value      = cgbcbd;
                        sqlcmd.Parameters["@bgxh"].Value      = bgxh;
                        sqlcmd.Parameters["@patientid"].Value = jcxx.Rows[0]["F_MZH"].ToString().Trim() + jcxx.Rows[0]["F_ZYH"].ToString().Trim();
                        sqlcmd.Parameters["@pdf"].Value       = image;

                        sqlcmd.Parameters["@sdrq"].Value        = jcxx.Rows[0]["F_SDRQ"].ToString().Trim();
                        sqlcmd.Parameters["@patientname"].Value = jcxx.Rows[0]["F_XM"].ToString().Trim();
                        sqlcmd.Parameters["@BBMC"].Value        = jcxx.Rows[0]["F_BBMC"].ToString().Trim();
                        if (jcxx.Rows[0]["F_BLK"].ToString().Trim().Contains("路桥"))
                        {
                            sqlcmd.Parameters["@hospitalid"].Value = "5760003";
                        }
                        else
                        {
                            sqlcmd.Parameters["@hospitalid"].Value = szz(aa, "hospitalid").Trim();
                        }
                        sqlcmd.Parameters["@blk"].Value = jcxx.Rows[0]["F_BLK"].ToString().Trim();


                        int count = sqlcmd.ExecuteNonQuery();//执行存储过程

                        if (count > 0)
                        {
                            aa.ExecuteSQL("update T_jcxx_fs_sm set F_bz='',F_ISPDF='true',F_fszt='已处理',f_fssj='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "'  where F_blh='" + F_blh + "' and F_BGLX='" + cgbcbd + "' and F_BGXH='" + bgxh + "' and F_BGZT='已审核'");

                            if (debug == "1")
                            {
                                log.WriteMyLog(F_blh + "PDF报告上传成功!");
                            }
                            if (cgbcbd == "cg" && (jcxx.Rows[0]["F_ZYH"].ToString().Trim() != "" || jcxx.Rows[0]["F_brlb"].ToString().Trim() == "住院"))
                            {
                                aa.ExecuteSQL("update t_jcxx set f_sfdy='是' where f_blh='" + F_blh + "'");
                                aa.ExecuteSQL("insert into t_bghj(f_blh,f_rq,f_czy,f_wz,f_dz,f_nr,f_exemc,f_ctmc)values('" + F_blh + "','" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "','" + f.ReadString("yh", "yhmc", "").ToString().Trim() + "','" + System.Net.Dns.GetHostName() + "','打印','" + cgbcbd + "报告" + bgxh + "发送到临床','RPT','打印或批量打印')");
                            }
                            if (cgbcbd == "bc" && (jcxx.Rows[0]["F_ZYH"].ToString().Trim() != "" || jcxx.Rows[0]["F_brlb"].ToString().Trim() == "住院"))
                            {
                                aa.ExecuteSQL("update t_bcbg set f_bc_dyzt='是' where  f_blh='" + F_blh + "' and f_bc_bgxh='" + bgxh + "'");
                                aa.ExecuteSQL("insert into t_bghj(f_blh,f_rq,f_czy,f_wz,f_dz,f_nr,f_exemc,f_ctmc)values('" + F_blh + "','" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "','" + f.ReadString("yh", "yhmc", "").ToString().Trim() + "','" + System.Net.Dns.GetHostName() + "','打印','" + cgbcbd + "报告" + bgxh + "发送到临床','RPT','打印或批量打印')");
                            }
                            if (cgbcbd == "bd" && (jcxx.Rows[0]["F_ZYH"].ToString().Trim() != "" || jcxx.Rows[0]["F_brlb"].ToString().Trim() == "住院"))
                            {
                                aa.ExecuteSQL("update t_bdbg set f_bd_dyzt='是' where  f_blh='" + F_blh + "' and f_bd_bgxh='" + bgxh + "'");
                                aa.ExecuteSQL("insert into t_bghj(f_blh,f_rq,f_czy,f_wz,f_dz,f_nr,f_exemc,f_ctmc)values('" + F_blh + "','" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "','" + f.ReadString("yh", "yhmc", "").ToString().Trim() + "','" + System.Net.Dns.GetHostName() + "','打印','" + cgbcbd + "报告" + bgxh + "发送到临床','RPT','打印或批量打印')");
                            }
                        }

                        else
                        {
                            log.WriteMyLog(F_blh + "回传PDF文件不成功!");
                            aa.ExecuteSQL("update T_jcxx_fs_sm set F_bz='回传PDF文件不成功'  where F_blh='" + F_blh + "' and F_BGLX='" + cgbcbd + "' and F_BGXH='" + bgxh + "' and F_BGZT='已审核'");
                        }
                    }
                    catch (Exception e)
                    {
                        log.WriteMyLog("回写数据异常:" + e.Message.ToString());
                        aa.ExecuteSQL("update T_jcxx_fs_sm set F_bz='回写数据异常:" + e.Message.ToString() + "'  where F_blh='" + F_blh + "' and F_BGLX='" + cgbcbd + "' and F_BGXH='" + bgxh + "' and F_BGZT='已审核'");
                    }
                }
                catch (Exception e2)
                {
                    log.WriteMyLog("读取PDF异常:" + e2.Message.ToString());
                    aa.ExecuteSQL("update T_jcxx_fs_sm set F_bz='读取PDF异常:" + e2.Message.ToString() + "'  where F_blh='" + F_blh + "' and F_BGLX='" + cgbcbd + "' and F_BGXH='" + bgxh + "' and F_BGZT='已审核'");
                }
                finally
                {
                    fs.Close();
                }


                if (szz(aa, "scpdf") == "1")
                {
                    if (System.IO.Directory.Exists(@"c:\temp\" + F_blh))
                    {
                        System.IO.Directory.Delete(@"c:\temp\" + F_blh, true);
                    }
                }
            }
            catch (Exception e3)
            {
                log.WriteMyLog("接口程序异常:" + e3.Message.ToString());
                aa.ExecuteSQL("update T_jcxx_fs_sm set F_bz='接口程序异常:" + e3.Message.ToString() + "'  where F_blh='" + F_blh + "' and F_BGLX='" + cgbcbd + "' and F_BGXH='" + bgxh + "' and F_BGZT='已审核'");

                return;
            }

            #endregion
        }
Esempio n. 9
0
        public void sxeyy_hx(string F_blh)
        {
            DataTable jcxx = new DataTable();
            DataTable bltx = new DataTable();
            string    xml_check;  //更新检查状态
            string    xml_report; //更新报告状态

            try
            {
                jcxx = aa.GetDataTable("select * from T_jcxx where F_blh='" + F_blh + "'", "jcxx");
                bltx = aa.GetDataTable("select * from t_tx where F_blh='" + F_blh + "'", "bltx");
            }
            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;
            }
            #region  获取系统设置表中msg即写日志开关及webservice地址链接
            string    msg  = null;
            DataTable T_SZ = new DataTable();
            T_SZ = aa.GetDataTable("select F_SZZ,F_XL from T_SZ where F_DL='JK' and (F_XL='JK_MSG' or F_XL='JK_WebServicesURL')", "T_SZ");
            string URL = null;

            for (int y = 0; y < T_SZ.Rows.Count; y++)
            {
                if (T_SZ.Rows[y]["F_XL"].ToString().Trim() == "JK_MSG")
                {
                    msg = T_SZ.Rows[0]["F_SZZ"].ToString().Trim();
                }
                if (T_SZ.Rows[y]["F_XL"].ToString().Trim() == "JK_WebServicesURL")
                {
                    URL = T_SZ.Rows[y]["F_SZZ"].ToString().Trim();
                }
            }
            if (URL == "")
            {
                URL = "http://168.192.8.10:8080/WebService/services/MatrixService?wsdl";
            }
            #endregion
            if (jcxx.Rows.Count > 0)
            {
                #region 报告状态未审核
                if (jcxx.Rows[0]["F_BGZT"].ToString() != "已审核")
                {
                    xml_check = update_xmlcheck(jcxx, jcxx.Rows[0]["F_sqxh"].ToString().Trim(), F_blh, "SC", jcxx.Rows[0]["F_BLK"].ToString().Trim());
                    if (jcxx.Rows[0]["F_HXBZ"].ToString().Trim() == "" && jcxx.Rows[0]["F_SQXH"].ToString().Trim() != "")     //HXBZ 1-表示已更新状态   2-报告已传过
                    {
                        ///此处增加webservice执行xml,更改状态
                        if (ExcuteWebservice("JCZT", xml_check, URL) == "1")
                        {
                            aa.ExecuteSQL("update t_jcxx set f_hxbz='1' where f_blh='" + F_blh + "'");
                            if (msg == "1")
                            {
                                log.WriteMyLog(F_blh + "更改检查状态成功!");
                            }
                        }
                        else
                        {
                            log.WriteMyLog(F_blh + "更改检查状态失败!");
                        }
                    }


                    else if (jcxx.Rows[0]["F_HXBZ"].ToString().Trim() == "2")//2表示已经回写过诊断,此处要更新为空的状态
                    {
                        xml_report = update_xmlreportnoapply(jcxx, "C", bltx);


                        //此处增加更新报告诊断置为空状态
                        if (ExcuteWebservice("BG", xml_report, URL) == "1")
                        {
                            if (msg == "1")
                            {
                                log.WriteMyLog(F_blh + "清空报告内容成功!");
                            }
                        }
                        else
                        {
                            log.WriteMyLog(F_blh + "清空报告内容失败!");
                        }
                    }
                    if (msg == "1")
                    {
                        log.WriteMyLog(F_blh + "回写标志为空或者已经更改过检查状态!");
                    }
                }
                #endregion

                #region 报告状态已审核
                if (jcxx.Rows[0]["F_BGZT"].ToString() == "已审核")
                {
                    if (jcxx.Rows[0]["F_sqxh"].ToString().Trim() != "")
                    {
                        //先更新检查状态为检查完成--上传报告--hxbz改为2已上传报告


                        //此处增加webservice执行xml,更改状态
                        if (jcxx.Rows[0]["F_HXBZ"].ToString().Trim() != "2")
                        {
                            xml_check = update_xmlcheck(jcxx, jcxx.Rows[0]["F_sqxh"].ToString().Trim(), F_blh, "CM", jcxx.Rows[0]["F_BLK"].ToString().Trim());
                            if (ExcuteWebservice("JCZT", xml_check, URL) == "1")
                            {
                                if (msg == "1")
                                {
                                    log.WriteMyLog(F_blh + "更改检查状态成功,改为CM检查完成!");
                                }
                            }
                            else
                            {
                                log.WriteMyLog(F_blh + "更改检查状态失败!");
                            }
                        }
                    }
                    if (msg == "1")
                    {
                        log.WriteMyLog(F_blh + "开始执行报告xml拼写并回传!");
                    }

                    xml_report = update_xmlreportnoapply(jcxx, "F", bltx);
                    if (ExcuteWebservice("BG", xml_report, URL) == "1")
                    {
                        aa.ExecuteSQL("update t_jcxx set f_hxbz='2' where f_blh='" + F_blh + "'");
                        if (msg == "1")
                        {
                            log.WriteMyLog(F_blh + "更新报告成功!");
                        }
                    }
                    else
                    {
                        log.WriteMyLog(F_blh + "更新报告失败!");
                    }
                }
                #endregion
            }
        }
Esempio n. 10
0
        public void pathtohis(string blh, string yymc)
        {
            string bglx = "cg";
            string bgxh = "0";
            //安全校验凭证,凭证既是接口的检验码,也是调用方的身份标识,由集成平台提供给LIS、PACS.
            string certificate = "7pzOrESsiv8VnB6RD2FXmndLaJCYpiY7";

            blhgy = blh;
            string msg   = f.ReadString("savetohis", "msg", "");
            string debug = f.ReadString("savetohis", "debug", "");

            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_brlb"].ToString().Trim() == "体检" && bljc.Rows[0]["F_sqxh"].ToString().Trim() == "")
            {
                pathtoTJ(blh, bglx, bgxh, bljc, debug);
                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;
        }
Esempio n. 11
0
        private void btnResend_Click(object sender, EventArgs e)
        {
            if (_lstJcxx == null)
            {
                return;
            }

            var    startTime    = DateTime.Now;
            double usedSeconds  = 0;
            double totalSeconds = 0;


            foreach (var jcxx in _lstJcxx)
            {
                var dateSpan   = (DateTime.Now - startTime);
                var lefSeconds = dateSpan.TotalSeconds / (Convert.ToDouble(_lstJcxx.IndexOf(jcxx))) *
                                 (_lstJcxx.Count - Convert.ToDouble(_lstJcxx.IndexOf(jcxx)));
                var leftMinutes = lefSeconds / 60;


                lblStatus.Text = $"正在上传:{_lstJcxx.IndexOf(jcxx)}/{_lstJcxx.Count} " +
                                 $"已耗时:{(int)dateSpan.TotalHours}小时{dateSpan.Minutes}分{dateSpan.Seconds}秒 " +
                                 $"剩余时间:{(int)(leftMinutes/60)}小时{(int)(leftMinutes%60)}分{(int)lefSeconds%60}秒 ";
                Application.DoEvents();

                var args = $"{jcxx.F_BLH}^cg^1^old^save";
                try
                {
                    var failed = SendPisResult.Program.CallSendResultPlus(args);
                    if (failed)
                    {
                        throw new Exception($"病理号={jcxx.F_BLH}");
                    }
                    jcxx.状态 = "上传成功";
                }
                catch (Exception exception)
                {
                    jcxx.状态   = "上传失败";
                    jcxx.失败原因 = exception + "\r\n" + exception.InnerException;
                }
                finally
                {
                    string insertLog = $@"INSERT INTO [dbo].[T_BGCC_LOG]
                                           ([F_BLK]
                                           ,[F_BLH]
                                           ,[F_XM]
                                           ,[F_NL]
                                           ,[F_XB]
                                           ,[F_SCZY]
                                           ,[F_SBYY]
                                           ,[F_SCSJ])
                                          VALUES
                                           ('{jcxx.F_BLK}'
                                           ,'{jcxx.F_BLH}'
                                           ,'{jcxx.F_XM}'
                                           ,'{jcxx.F_NL}'
                                           ,'{jcxx.F_XB}'
                                           ,'{jcxx.上传状态}'
                                           ,'{jcxx.上传失败原因}'
                                           ,'{DateTime.Now}')";
                    aa.ExecuteSQL(insertLog);

                    progressBar1.Value = (int)(Convert.ToDouble(_lstJcxx.IndexOf(jcxx)) * 100 / _lstJcxx.Count);
                }
            }
            lblStatus.Text = "上传完成!";
            MessageBox.Show("重传完成!");
        }
Esempio n. 12
0
        public string ca(string yhxx)
        {
            string msg = f.ReadString("CA", "msg", "");
            //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/szqm");


            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].ToLower();
                type   = getyhxx[4];
                yhm    = getyhxx[5];
                yhmc   = getyhxx[6];
                yhbh   = getyhxx[7];
                yhmm   = getyhxx[8];
            }

            if (type == "SH")
            {
                return(calz(yhmc));
            }
            if (type == "QZ")
            {
                return(caqm(yhxx));
            }
            if (type == "QXSH")
            {
                return("1");
            }

            if (type == "QXQZ")
            {
                string sqlstring = "";
                if (bglx == "bc")
                {
                    sqlstring = "update T_bcbg set F_qzid=' ' where F_blh='" + getblh + "' and F_bc_bgxh='" + bgxh + "'";
                }
                else if (bglx == "bd")
                {
                    sqlstring = "update T_bdbg set F_qzid=' ' where F_blh='" + getblh + "' and F_bd_bgxh='" + bgxh + "'";
                }
                else
                {
                    sqlstring = "update T_jcxx set F_qzid=' ' where F_blh='" + getblh + "'";
                }
                aa.ExecuteSQL(sqlstring);
                return("1");
            }
            return("1");
        }