Пример #1
0
        /// <summary>
        /// 改变时候触发
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        /// <remarks>创建人员(日期): ★刘腾飞★(100202 18:16)</remarks>
        public static void OnChangedForXinDianTu(object source, FileSystemEventArgs e)
        {
            //if (e.ChangeType == WatcherChangeTypes.Changed)
            //{
            // List<string> orderIdList = new List<string>();
            try
            {
                //1.由于客户机器首次读取时乱码,故先修改该文件后再读取内容
                //m_watcherAoup.EnableRaisingEvents = false;
                try
                {
                    File.SetLastWriteTime(e.FullPath, DateTime.Now);    //修改txt文件的时间
                    #region 心电图
                    XmlDocument doc = new XmlDocument();
                    doc.Load(e.FullPath);
                    XmlNode xNode = doc.SelectSingleNode("zqecg/base/time");
                    string  time  = xNode.InnerText;
                    time = DateTime.Parse(time).ToString("yyyyMMddHHmmss");
                    XmlNode   id              = doc.SelectSingleNode("zqecg/patient/id");
                    string    ids             = id.InnerText;
                    XmlNode   baseline_drift  = doc.SelectSingleNode("zqecg/record/baseline_drift");
                    string    baseline_drifts = baseline_drift.InnerText;
                    XmlNode   myoelectricity  = doc.SelectSingleNode("zqecg/record/myoelectricity");
                    string    myoelectricitys = myoelectricity.InnerText;
                    XmlNode   frequency       = doc.SelectSingleNode("zqecg/record/frequency");
                    string    frequencys      = frequency.InnerText;
                    XmlNode   hr              = doc.SelectSingleNode("zqecg/measure/hr");
                    string    hrs             = hr.InnerText;
                    XmlNode   pr              = doc.SelectSingleNode("zqecg/measure/pr");
                    string    prs             = pr.InnerText;
                    XmlNode   qrs             = doc.SelectSingleNode("zqecg/measure/qrs");
                    string    qrss            = qrs.InnerText;
                    XmlNode   qt_             = doc.SelectSingleNode("zqecg/measure/qt_");
                    string    qt_s            = qt_.InnerText;
                    XmlNode   qtc             = doc.SelectSingleNode("zqecg/measure/qtc");
                    string    qtcs            = qtc.InnerText;
                    XmlNode   p_              = doc.SelectSingleNode("zqecg/measure/p_");
                    string    p_s             = p_.InnerText;
                    XmlNode   qrs_            = doc.SelectSingleNode("zqecg/measure/qrs_");
                    string    qrs_s           = qrs_.InnerText;
                    XmlNode   t           = doc.SelectSingleNode("zqecg/measure/t");
                    string    ts          = t.InnerText;
                    XmlNode   rv5         = doc.SelectSingleNode("zqecg/measure/rv5");
                    string    rv5s        = rv5.InnerText;
                    XmlNode   sv1         = doc.SelectSingleNode("zqecg/measure/sv1");
                    string    sv1s        = sv1.InnerText;
                    XmlNode   diagnosis   = doc.SelectSingleNode("zqecg/result/diagnosis");
                    string    diagnosiss  = diagnosis.InnerText;
                    XmlNode   advicetext  = doc.SelectSingleNode("zqecg/result/advicetext");
                    string    advicetexts = advicetext.InnerText;
                    jkInfoDao jkInfoDao   = new jkInfoDao();
                    DataTable data        = jkInfoDao.selectjkInfoBybarcode(ids);
                    if (data != null && data.Rows.Count > 0)
                    {
                        string    aichive_no = data.Rows[0]["aichive_no"].ToString();
                        string    barcode    = data.Rows[0]["bar_code"].ToString();
                        string    id_number  = data.Rows[0]["id_number"].ToString();
                        DataTable dtnum      = jkInfoDao.queryChongfuXdtData(aichive_no, barcode);
                        advicetexts = advicetexts.Replace("在不知道病人的性别/年龄情况下做的诊断结论", "").Replace("---", "").Replace("***", "").Replace("~", "");
                        string           issql  = "";
                        MySqlParameter[] args   = null;
                        string           imgurl = id_number + "_" + time + ".jpg";
                        if (dtnum.Rows.Count < 1)
                        {
                            issql = "insert into zkhw_tj_xdt(id,aichive_no,id_number,bar_code,XdtResult,XdtDesc,XdtDoctor,PR,QRS,QT,QTc,hr,p,pqrs,t,rv5,sv1,baseline_drift,myoelectricity,frequency,createtime,imageUrl) values(@id,@aichive_no,@id_number,@bar_code,@XdtResult,@XdtDesc,@XdtDoctor,@PR,@QRS,@QT,@QTc,@hr,@p,@pqrs,@t,@rv5,@sv1,@baseline_drift,@myoelectricity,@frequency,@createtime,@imageUrl)";
                            args  = new MySqlParameter[] {
                                new MySqlParameter("@id", Result.GetNewId()),
                                new MySqlParameter("@aichive_no", data.Rows[0]["aichive_no"].ToString()),
                                new MySqlParameter("@id_number", data.Rows[0]["id_number"].ToString()),
                                new MySqlParameter("@bar_code", data.Rows[0]["bar_code"].ToString()),
                                new MySqlParameter("@XdtResult", diagnosiss),
                                new MySqlParameter("@XdtDesc", advicetexts),
                                new MySqlParameter("@XdtDoctor", basicInfoSettings.xdt),
                                new MySqlParameter("@PR", prs),
                                new MySqlParameter("@QRS", qrss),
                                new MySqlParameter("@QT", qt_s),
                                new MySqlParameter("@QTc", qtcs),
                                new MySqlParameter("@hr", hrs),
                                new MySqlParameter("@p", p_s),
                                new MySqlParameter("@pqrs", qrs_s),
                                new MySqlParameter("@t", ts),
                                new MySqlParameter("@rv5", rv5s),
                                new MySqlParameter("@sv1", sv1s),
                                new MySqlParameter("@baseline_drift", baseline_drifts),
                                new MySqlParameter("@myoelectricity", myoelectricitys),
                                new MySqlParameter("@frequency", frequencys),
                                new MySqlParameter("@createtime", time),
                                new MySqlParameter("@imageUrl", imgurl)
                            };
                        }
                        else
                        {
                            string issql1 = "update zkhw_tj_xdt set XdtResult='" + diagnosiss + "',XdtDesc='" + advicetexts + "',PR='" + prs + "',QRS='" + qrss + "',QT='" + qt_s + "',QTc='" + qtcs + "',hr='" + hrs + "',p='" + p_s + "',pqrs='" + qrs_s + "',t='" + ts + "',rv5='" + rv5s + "',sv1='" + sv1s + "',baseline_drift='" + baseline_drifts + "',myoelectricity='" + myoelectricitys + "',frequency='" + frequencys + "',createtime='" + time + "',imageUrl='" + imgurl + "' where aichive_no = '" + aichive_no + "' and bar_code='" + barcode + "'";
                            DbHelperMySQL.ExecuteSql(issql1);
                        }
                        string   pName = e.FullPath.Replace("xml", "jpg");
                        FileInfo inf   = new FileInfo(pName);
                        try
                        {
                            if (File.Exists(str + "\\xdtImg\\" + imgurl))
                            {
                                File.Delete(str + "\\xdtImg\\" + imgurl);
                                GC.Collect();
                            }
                        }
                        catch {
                            using (System.IO.StreamWriter sw = new System.IO.StreamWriter(Application.StartupPath + "/log.txt", true))
                            {
                                sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ") + "\r\n" + "心电2次上传删除报错:" + imgurl);
                            }
                        }
                        inf.MoveTo(str + "\\xdtImg\\" + imgurl);
                        //inf.CopyTo(str + "\\xdtImg\\" + data.Rows[0]["aichive_no"].ToString() + "_" + ids + ".jpg");
                        string hxpl = (Int32.Parse(hrs) / 4).ToString().Trim();//计算呼吸频率
                        if (advicetexts.IndexOf("正常") > -1)
                        {
                            int    run        = DbHelperMySQL.ExecuteSql($"update physical_examination_record set cardiogram='1',cardiogram_img='{imgurl}',base_heartbeat='{hrs}',base_respiratory='{hxpl} ',examination_heart_rate='{hrs}' where aichive_no='{data.Rows[0]["aichive_no"].ToString()}'and bar_code= '{data.Rows[0]["bar_code"].ToString()}'");
                            string istruedgbc = "update zkhw_tj_bgdc set XinDian='1' where aichive_no = '" + aichive_no + "' and bar_code='" + barcode + "'";
                            DbHelperMySQL.ExecuteSql(istruedgbc);
                        }
                        else
                        {
                            if (advicetexts.Length >= 50)//限制健康体检表心电图检查结果长度50
                            {
                                advicetexts = advicetexts.Replace("异常心电图", "").Replace("窦性心律", "");
                            }
                            int    run      = DbHelperMySQL.ExecuteSql($"update physical_examination_record set cardiogram='2',cardiogram_memo='{advicetexts}',cardiogram_img='{imgurl}',base_heartbeat='{hrs}',base_respiratory='{hxpl} ',examination_heart_rate='{hrs}' where aichive_no='{data.Rows[0]["aichive_no"].ToString()}'and bar_code= '{data.Rows[0]["bar_code"].ToString()}'");
                            string issqdgbc = "update zkhw_tj_bgdc set XinDian='3' where aichive_no = '" + aichive_no + "' and bar_code='" + barcode + "'";
                            DbHelperMySQL.ExecuteSql(issqdgbc);
                        }

                        if (issql != "")
                        {
                            int rue = DbHelperMySQL.ExecuteSql(issql, args);
                        }
                    }
                    #endregion
                }
                catch (Exception ex)
                {
                    // RegisterAoupTrackLog("文件被占用!正在请求重试 ... ");
                    MessageBox.Show(ex.StackTrace);
                    //进程阻塞2秒钟
                }
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.StackTrace);
            }
            //}
        }