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); } }
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"); }
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(); }
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"); }
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] + "更新失败!"); // } // } //} }
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); }
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); } }
/// <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 }
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 } }
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; }
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("重传完成!"); }
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"); }