protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { var db = ContextPool.GetContext(); var blh = Request["blh"]; Jcxx = db.T_JCXX.SingleOrDefault(o => o.F_BLH == blh); if (Jcxx == null) { Response.Redirect("NotDataFound.aspx"); } double referenceValue = 0; var seriesName = ""; var seriesName2 = ""; if (Jcxx.F_BLK == "EBV") { seriesName = "结果值(copy/mL)"; seriesName2 = "参考值(copy/mL)"; } else if (Jcxx.F_BLK == "HBV") { seriesName = "结果值(IU/mL)"; seriesName2 = "参考值(IU/mL)"; } WebChartControl1.Series[0].Name = seriesName; WebChartControl1.Series[1].Name = seriesName2; } }
/// <summary> /// PIS系统登记申请单时触发该方法 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnAddReport(T_JCXX jcxx, ReportType reportType) { if (jcxx.F_BY1 == "his") { ReceiveReport(jcxx); } }
/// <summary> /// PIS审核报告时触发 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnCheckReport(T_JCXX jcxx, ReportType reportType) { if (jcxx.F_BY1 == "his") { SendReport(jcxx, reportType); } }
/// <summary> /// 把xml字符串保存到本地文件夹,并上传到院方平台ftp /// </summary> /// <param name="localPdfFullName">xml字符串</param> /// <param name="fileId">结果数据主表ID</param> /// <param name="jcxx"></param> public void UploadPdf(string localPdfFullName, string fileId, T_JCXX jcxx) { var fileName = fileId + ".xml"; var serverDir = $"{DateTime.Now.ToString("yyyy")}\\{DateTime.Now.ToString("MM")}\\{DateTime.Now.ToString("dd")}\\{fileId}"; var localDir = f.ReadString("ftpup", "ftplocal", @"c:\temp"); var localFileFullName = localDir + "\\" + jcxx.F_BLH + "\\" + localPdfFullName; var serverFileSafeName = fileId + ".pdf"; //新建ftp文件夹 string err = ""; FtpMakedir(serverDir, out err); if (err != "OK") { log.WriteMyLog($"在平台ftp新建文件夹失败,serverDir={serverDir}:" + err); throw new Exception($"在平台ftp新建文件夹失败,serverDir={serverDir}:" + err); } //上传到平台ftp err = ""; ftpUp.Upload(localFileFullName, serverDir, out err, serverFileSafeName); if (err != "OK") { log.WriteMyLog($"pdf上传平台ftp失败,serverFileName={serverFileSafeName}:" + err); throw new Exception($"pdf上传平台ftp失败,serverFileName={serverFileSafeName}:" + err); } log.WriteMyLog($"pdf上传平台成功"); }
/// <summary> /// PIS取消审核报告时触发 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnCancelCheckReport(T_JCXX jcxx, ReportType reportType) { if (jcxx.F_BY1 == "his") { DelReport(jcxx, reportType); } }
public void OutCheckFeeTest() { 湖南省妇幼医院_广州邦弘 f = new 湖南省妇幼医院_广州邦弘(); var jcxx = new T_JCXX(); jcxx.F_MZH = "1140345105"; f.OutCheckFee(jcxx); }
private void DelReport(T_JCXX jcxx, ReportType reportType) { var success = zlInterface.DeleteReport(Convert.ToInt32(jcxx.F_YZID.Trim())); if (!success) { throw new Exception($"删除HIS已审报告时出现错误[{jcxx.F_BLH}]:" + zlInterface.GetLastError()); } Logger.Info("HIS接口删除报告成功:" + jcxx.F_BLH); }
public void Query() { dataLayoutControl1.Validate(); T_JCXX_DAL dal = new T_JCXX_DAL(); var sqlFilter = sqlFilterBindingSource.Current as SqlFilter; var list1 = dal.GetJcxxTbsList(sqlFilter); SplashScreenManager.ShowDefaultWaitForm($"正在查询"); try { foreach (T_JCXX jcxx in list1) { SplashScreenManager.ShowDefaultWaitForm($"分析二次诊断数据 {list1.IndexOf(jcxx)}/{list1.Count}"); T_JCXX jcxxPre = dal.GetPreJcxx(jcxx); jcxx.PreJcxx = jcxxPre; } } catch (Exception exception) { MessageBox.Show(exception.ToString()); return; } finally { try { SplashScreenManager.CloseDefaultWaitForm(); } catch { } } //去掉没有上次检验的 list1 = list1.Where(o => o.PreJcxx != null && string.IsNullOrEmpty(o.PreJcxx.F_BLH) == false).ToList(); //差异值过滤 if (sqlFilter != null && sqlFilter.ValueDiff > 0) { list1 = list1.Where(o => Math.Abs(o.TBS_VALUE_DIFF) >= Math.Abs(sqlFilter.ValueDiff)).ToList(); } if (list1.Any() == false) { XtraMessageBox.Show("没有找到任何结果!"); } tJCXXBindingSource.DataSource = list1; gridView1.RefreshData(); gridView1.BestFitColumns(); }
/// <summary> /// 调用pacs接口进行门诊确费 /// </summary> /// <param name="jcxx">检查信息表</param> public void OutCheckFee(T_JCXX jcxx) { #region 入参说明 //Registeredserialnumber:挂号序号(门诊号); //Operatorid:操作者ID //Departmentid:执行科室ID //Datime:操作时间,时间格式:yyyy - MM - dd HH: mm: ss //Type:执行类型:1:确费,0:取消确费;此函数传1; #endregion string result = ""; try { log.WriteMyLog("开始门诊确费,门诊号:" + jcxx.F_MZH); var date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //调用门诊确费 HnsfyRegistrationInterface.WebService service = new HnsfyRegistrationInterface.WebService(); log.WriteMyLog("开始调用门诊确费接口,门诊号(发票号)是:" + jcxx.F_MZH); //门诊号存的就是发票号 账号:林春华 工号:4411 科室ID:1094 var returnXML = service.CheckFeeOperationByInvoicenumber(jcxx.F_MZH, "4411", "1094", date, "1"); log.WriteMyLog("门诊确费成功,返回值:\r\n" + returnXML); //解析门诊确费接口的返回值 var row = GetDataSetByXml(returnXML).Tables[0].Rows[0]; int count = Int32.Parse(row["Code"].ToString()); string msg = row["ERR_TEXT"].ToString(); //如果确费数量<0,则确费失败 if (count < 0) { throw new Exception(msg); } } catch (Exception ee) { log.WriteMyLog("门诊确费失败:" + ee.Message); throw new Exception("确费失败,因为:" + ee.Message); } }
/// <summary> /// 根据报告的收到日期和审核日期,计算报告发放的天数 /// </summary> /// <param name="jcxx"></param> /// <returns></returns> private int GetDays(T_JCXX jcxx) { DateTime bgrq; DateTime sdrq; try { bgrq = Convert.ToDateTime(jcxx.F_BGRQ).Date; sdrq = Convert.ToDateTime(jcxx.F_SDRQ).Date; } catch (Exception e) { return(0); } //收到日期不应该大于报告日期 ,如果出现这种情况,说明数据有错误 if (sdrq > bgrq) { return(-1); } int dayDiff = 0; //如果时间大于100,则显示100,更多的计算没有意义,且会让程序变慢 while (bgrq != sdrq & dayDiff <= 100) { //是否排除周六日 if (chkDisable6.Checked && sdrq.DayOfWeek == DayOfWeek.Saturday) { //排除周六 } else if (chkDisable7.Checked && sdrq.DayOfWeek == DayOfWeek.Sunday) { //排除周日 } else { dayDiff++; } sdrq = sdrq.AddDays(1); } return(dayDiff); }
private void SendReport(T_JCXX jcxx, ReportType reportType) { #region 入参 参数名 类型及说明 // lngAdviceKey Long,医嘱ID // strReportView 报告所见 // strReportAdvice 报告建议 // strReportDoctor 报告医生 // strAuditingDoctor 审核医生 #endregion var success = zlInterface.SendReport(Convert.ToInt32(jcxx.F_YZID.Trim()), jcxx.F_JXSJ, jcxx.F_BLZD, jcxx.F_BGYS); if (!success) { throw new Exception($"推送报告到HIS时出错[{jcxx.F_BLH}]:" + zlInterface.GetLastError()); } Logger.Info("HIS接口回传报告成功:" + jcxx.F_BLH); }
/// <summary> /// 如果JCXX状态为已审核,则回传结果 /// 否则若病人类型为门诊,则进行门诊确费 /// </summary> /// <param name="pathoNo">病理号</param> /// <param name="aa"></param> public void SendResult(string pathoNo) { T_JCXX jcxx = null; try { jcxx = new T_JCXX_DAL().GetModel(pathoNo); } catch (Exception e) { throw new Exception("没有找到该结果,病理号为:" + pathoNo); } if (jcxx == null) { throw new Exception("没有找到该结果,病理号为:" + pathoNo); } log.WriteMyLog("进入sendResult" + jcxx.F_SJKS); try { if (jcxx.F_BGZT == "已审核") //如果已审核,执行回传结果 { SendResult(jcxx); } else if (string.IsNullOrEmpty(jcxx.F_MZH.Trim()) == false) //如果不是已审核且科室为门诊,执行门诊确费 { log.WriteMyLog("进入OutCheckFee"); OutCheckFee(jcxx); } } catch (Exception e) { //该接口陈程要求所有报错都不弹窗,只记录log } }
/// <summary> /// 获取extid,该值在pacs中代表报告id,必填 /// </summary> /// <param name="jcxx"></param> /// <returns></returns> public string GetSqxhFormPacs(T_JCXX jcxx) { //判断是门诊还是住院 string operType = ""; if (string.IsNullOrEmpty(jcxx.F_MZH.Trim()) == false) { operType = "0"; } else if (string.IsNullOrEmpty(jcxx.F_ZYH.Trim()) == false) { operType = "1"; } string sxml = ""; try { HnsfyRegistrationInterface.WebService service = new HnsfyRegistrationInterface.WebService(); sxml = service.QuePatiengInfo("", "", "", jcxx.F_ZYH, jcxx.F_MZH, "", operType); var dt = GetDataSetByXml(sxml).Tables[0]; var f = new ApplicationSelector(); f.DataTable = dt; f.ShowDialog(); var exid = f.SelectedRow["exid"].ToString(); //log.请求患者信息成功 log.WriteMyLog("请求HIS患者信息成功,返回值:\r\n" + sxml); return(exid); } catch (Exception e) { //log.请求患者信息失败 log.WriteMyLog("查询HIS患者信息失败:" + e.Message); throw new Exception("查询HIS患者信息失败:" + e.Message); } }
private void ReceiveReport(T_JCXX jcxx) { #region 入参 参数名 类型及说明 // lngAdviceKey Long,检查或检验申请单关键值(医嘱id入参必须) // // strExeRoom String,执行间(默认空) // // lngStudyNo Long,检查号(默认空) // // strDevice String,检查设备(默认空) // // lngHeight Long,身高(默认空) // // lngWeight Long,体重(默认空) // // strStudyDoc String,检查技师(默认空) // // StrExeDate Date,执行时间(默认空) // // strExeDes String,执行说明(默认空) // // lngExecOne Long,是否分部位执行申请,0 - 成套执行;1 - 单独执行(默认0) #endregion int yzId = Convert.ToInt32(jcxx.F_YZID.Trim()); var success = zlInterface.RecevieRequest(yzId); if (!success) { var lastErr = zlInterface.GetLastError(); throw new Exception($"向HIS回发报告状态时出现错误[{jcxx.F_BLH}]:" + lastErr); } Logger.Info("HIS接口确认申请单成功:" + jcxx.F_BLH); }
public static void Send(string[] args) { Logger.Debug("接口exe被调用,入参:" + args[0]); IniFiles f = new IniFiles("sz.ini"); var blh = ""; var bglx = ""; //cg/bd/bc var reportNumber = ""; var czlb = ""; //new/old var dz = ""; //save/qxsh/dy/qxdy EditType editType; PisAction pisAction; string hospName; ReportType reportType; #region 处理入参 //处理入参 try { string[] aa = args[0].Split('^'); blh = aa[0]; bglx = aa[1].ToLower(); //cg/bd/bc reportNumber = aa[2]; czlb = aa[3].ToLower(); //new/old dz = aa[4].ToLower(); //save/qxsh/dy/qxdy reportType = ReportType.常规报告; switch (bglx) { case "cg": default: reportType = ReportType.常规报告; break; case "bd": reportType = ReportType.冰冻报告; break; case "bc": reportType = ReportType.补充报告; break; } editType = czlb == "new" ? EditType.新建 : EditType.修改; switch (dz) { case "save": if (editType == EditType.新建) { pisAction = PisAction.新登记; } else { pisAction = PisAction.保存; } break; case "qxsh": pisAction = PisAction.取消审核; break; case "dy": pisAction = PisAction.打印; break; case "qxdy": pisAction = PisAction.取消打印; break; default: pisAction = PisAction.未知; break; } hospName = f.ReadString("savetohis", "yymc", "123").Replace("\0", ""); } catch (Exception e) { Logger.Error("传入参数解析出错:" + e); MessageBox.Show("回传EXE入参错误:" + e); return; } #endregion Logger.Debug("EXE接口查询jcxx,病理号:" + blh); T_JCXX jcxx = T_JCXX_DAL.GetModel(blh); Logger.Debug("尝试获取接口实例,医院名称:" + hospName); var sender = Factory.GetSendToThirdPartyByHisName(hospName); if (sender == null) { Logger.Error("获取接口实例失败!"); } Logger.Info($"开始调用EXE接口,病理号:{blh},操作类型:{pisAction},报告状态:{jcxx.F_BGZT}"); switch (pisAction) { case PisAction.新登记: sender.OnAddReport(jcxx, reportType); break; case PisAction.保存: if (jcxx.F_BGZT == "已审核") { sender.OnCheckReport(jcxx, reportType); } else { sender.OnSaveReport(jcxx, reportType); } break; case PisAction.取消审核: sender.OnCancelCheckReport(jcxx, reportType); break; case PisAction.打印: sender.OnPrintReport(jcxx, reportType); break; case PisAction.取消打印: sender.OnCancelPrintReport(jcxx, reportType); break; default: throw new Exception("接口调用失败,无法解析PIS给的入参."); } }
/// <summary> /// PIS取消打印报告时触发 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnCancelPrintReport(T_JCXX jcxx, ReportType reportType) { Console.WriteLine("OnCancelPrintReport:" + jcxx.F_BLH); }
/// <summary> /// PIS保存报告时触发 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnSaveReport(T_JCXX jcxx, ReportType reportType) { Console.WriteLine("OnSaveReport:" + jcxx.F_BLH); }
/// <summary> /// 得到一个对象实体 /// </summary> public static T_JCXX DataRowToModel(DataRow row) { T_JCXX model = new T_JCXX(); if (row != null) { if (row["F_BLK"] != null) { model.F_BLK = row["F_BLK"].ToString(); } if (row["F_BLH"] != null) { model.F_BLH = row["F_BLH"].ToString(); } if (row["F_BRBH"] != null) { model.F_BRBH = row["F_BRBH"].ToString(); } if (row["F_SQXH"] != null) { model.F_SQXH = row["F_SQXH"].ToString(); } if (row["F_YZID"] != null) { model.F_YZID = row["F_YZID"].ToString(); } if (row["F_YZXM"] != null) { model.F_YZXM = row["F_YZXM"].ToString(); } if (row["F_STUDY_UID"] != null) { model.F_STUDY_UID = row["F_STUDY_UID"].ToString(); } if (row["F_XM"] != null) { model.F_XM = row["F_XM"].ToString(); } if (row["F_XB"] != null) { model.F_XB = row["F_XB"].ToString(); } if (row["F_NL"] != null) { model.F_NL = row["F_NL"].ToString(); } if (row["F_AGE"] != null && row["F_AGE"].ToString() != "") { model.F_AGE = (double?)decimal.Parse(row["F_AGE"].ToString()); } if (row["F_HY"] != null) { model.F_HY = row["F_HY"].ToString(); } if (row["F_MZ"] != null) { model.F_MZ = row["F_MZ"].ToString(); } if (row["F_ZY"] != null) { model.F_ZY = row["F_ZY"].ToString(); } if (row["F_SFZH"] != null) { model.F_SFZH = row["F_SFZH"].ToString(); } if (row["F_LXXX"] != null) { model.F_LXXX = row["F_LXXX"].ToString(); } if (row["F_BRLB"] != null) { model.F_BRLB = row["F_BRLB"].ToString(); } if (row["F_FB"] != null) { model.F_FB = row["F_FB"].ToString(); } if (row["F_ZYH"] != null) { model.F_ZYH = row["F_ZYH"].ToString(); } if (row["F_MZH"] != null) { model.F_MZH = row["F_MZH"].ToString(); } if (row["F_BQ"] != null) { model.F_BQ = row["F_BQ"].ToString(); } if (row["F_SJKS"] != null) { model.F_SJKS = row["F_SJKS"].ToString(); } if (row["F_CH"] != null) { model.F_CH = row["F_CH"].ToString(); } if (row["F_SJDW"] != null) { model.F_SJDW = row["F_SJDW"].ToString(); } if (row["F_SJYS"] != null) { model.F_SJYS = row["F_SJYS"].ToString(); } if (row["F_SDRQ"] != null) { model.F_SDRQ = row["F_SDRQ"].ToString(); } if (row["F_JSY"] != null) { model.F_JSY = row["F_JSY"].ToString(); } if (row["F_BBLX"] != null) { model.F_BBLX = row["F_BBLX"].ToString(); } if (row["F_BBQK"] != null) { model.F_BBQK = row["F_BBQK"].ToString(); } if (row["F_JSYY"] != null) { model.F_JSYY = row["F_JSYY"].ToString(); } if (row["F_SF"] != null && row["F_SF"].ToString() != "") { model.F_SF = (double?)decimal.Parse(row["F_SF"].ToString()); } if (row["F_BBMC"] != null) { model.F_BBMC = row["F_BBMC"].ToString(); } if (row["F_LCZD"] != null) { model.F_LCZD = row["F_LCZD"].ToString(); } if (row["F_LCZL"] != null) { model.F_LCZL = row["F_LCZL"].ToString(); } if (row["F_RYSJ"] != null) { model.F_RYSJ = row["F_RYSJ"].ToString(); } if (row["F_QCYS"] != null) { model.F_QCYS = row["F_QCYS"].ToString(); } if (row["F_QCRQ"] != null) { model.F_QCRQ = row["F_QCRQ"].ToString(); } if (row["F_JLY"] != null) { model.F_JLY = row["F_JLY"].ToString(); } if (row["F_LKZS"] != null && row["F_LKZS"].ToString() != "") { model.F_LKZS = int.Parse(row["F_LKZS"].ToString()); } if (row["F_CKZS"] != null && row["F_CKZS"].ToString() != "") { model.F_CKZS = int.Parse(row["F_CKZS"].ToString()); } if (row["F_FY"] != null) { model.F_FY = row["F_FY"].ToString(); } if (row["F_JXSJ"] != null) { model.F_JXSJ = row["F_JXSJ"].ToString(); } if (row["F_BLZD"] != null) { model.F_BLZD = row["F_BLZD"].ToString(); } if (row["F_TSJC"] != null) { model.F_TSJC = row["F_TSJC"].ToString(); } try { if (row["F_BGYS"] != null) { model.F_BGYS = row["F_BGYS"].ToString(); } } catch (Exception e) { } if (row["F_SHYS"] != null) { model.F_SHYS = row["F_SHYS"].ToString(); } if (row["F_BGRQ"] != null) { model.F_BGRQ = row["F_BGRQ"].ToString(); } if (row["F_CZYJ"] != null) { model.F_CZYJ = row["F_CZYJ"].ToString(); } if (row["F_XGYJ"] != null) { model.F_XGYJ = row["F_XGYJ"].ToString(); } if (row["F_ZDGJC"] != null) { model.F_ZDGJC = row["F_ZDGJC"].ToString(); } if (row["F_YYX"] != null) { model.F_YYX = row["F_YYX"].ToString(); } if (row["F_WFBGYY"] != null) { model.F_WFBGYY = row["F_WFBGYY"].ToString(); } if (row["F_BZ"] != null) { model.F_BZ = row["F_BZ"].ToString(); } if (row["F_BD_SFFH"] != null) { model.F_BD_SFFH = row["F_BD_SFFH"].ToString(); } if (row["F_BGZT"] != null) { model.F_BGZT = row["F_BGZT"].ToString(); } if (row["F_SFCT"] != null) { model.F_SFCT = row["F_SFCT"].ToString(); } if (row["F_SFDY"] != null) { model.F_SFDY = row["F_SFDY"].ToString(); } if (row["F_BGGS"] != null) { model.F_BGGS = row["F_BGGS"].ToString(); } if (row["F_GDZT"] != null) { model.F_GDZT = row["F_GDZT"].ToString(); } if (row["F_KNHZ"] != null && row["F_KNHZ"].ToString() != "") { model.F_KNHZ = int.Parse(row["F_KNHZ"].ToString()); } if (row["F_ZJYJ"] != null) { model.F_ZJYJ = row["F_ZJYJ"].ToString(); } if (row["F_WYYJ"] != null) { model.F_WYYJ = row["F_WYYJ"].ToString(); } if (row["F_SFZT"] != null && row["F_SFZT"].ToString() != "") { model.F_SFZT = int.Parse(row["F_SFZT"].ToString()); } if (row["F_SFJG"] != null) { model.F_SFJG = row["F_SFJG"].ToString(); } if (row["F_JBBM_CN"] != null) { model.F_JBBM_CN = row["F_JBBM_CN"].ToString(); } if (row["F_JBBM_ENG"] != null) { model.F_JBBM_ENG = row["F_JBBM_ENG"].ToString(); } if (row["F_JBMC"] != null) { model.F_JBMC = row["F_JBMC"].ToString(); } if (row["F_YBLH"] != null) { model.F_YBLH = row["F_YBLH"].ToString(); } if (row["F_SJCL"] != null) { model.F_SJCL = row["F_SJCL"].ToString(); } if (row["F_YBLZD"] != null) { model.F_YBLZD = row["F_YBLZD"].ToString(); } if (row["F_BGFSFS"] != null) { model.F_BGFSFS = row["F_BGFSFS"].ToString(); } if (row["F_SCYS"] != null) { model.F_SCYS = row["F_SCYS"].ToString(); } if (row["F_SFFH"] != null) { model.F_SFFH = row["F_SFFH"].ToString(); } if (row["F_SPARE1"] != null) { model.F_SPARE1 = row["F_SPARE1"].ToString(); } if (row["F_SPARE2"] != null) { model.F_SPARE2 = row["F_SPARE2"].ToString(); } if (row["F_SPARE3"] != null) { model.F_SPARE3 = row["F_SPARE3"].ToString(); } if (row["F_SPARE4"] != null) { model.F_SPARE4 = row["F_SPARE4"].ToString(); } if (row["F_SPARE5"] != null) { model.F_SPARE5 = row["F_SPARE5"].ToString(); } if (row["F_SPARE6"] != null) { model.F_SPARE6 = row["F_SPARE6"].ToString(); } if (row["F_SPARE7"] != null) { model.F_SPARE7 = row["F_SPARE7"].ToString(); } if (row["F_SPARE8"] != null) { model.F_SPARE8 = row["F_SPARE8"].ToString(); } if (row["F_SPARE9"] != null) { model.F_SPARE9 = row["F_SPARE9"].ToString(); } if (row["F_SPARE10"] != null) { model.F_SPARE10 = row["F_SPARE10"].ToString(); } if (row["F_BY1"] != null) { model.F_BY1 = row["F_BY1"].ToString(); } if (row["F_BY2"] != null) { model.F_BY2 = row["F_BY2"].ToString(); } if (row["F_TXML"] != null) { model.F_TXML = row["F_TXML"].ToString(); } if (row["F_ZPZT"] != null) { model.F_ZPZT = row["F_ZPZT"].ToString(); } if (row["F_MCYJ"] != null) { model.F_MCYJ = row["F_MCYJ"].ToString(); } if (row["F_SFJJ"] != null) { model.F_SFJJ = row["F_SFJJ"].ToString(); } if (row["F_TBSID"] != null && row["F_TBSID"].ToString() != "") { model.F_TBSID = int.Parse(row["F_TBSID"].ToString()); } if (row["F_TBSMC"] != null) { model.F_TBSMC = row["F_TBSMC"].ToString(); } if (row["F_QSB_DYZT"] != null) { model.F_QSB_DYZT = row["F_QSB_DYZT"].ToString(); } if (row["F_BGWZ"] != null) { model.F_BGWZ = row["F_BGWZ"].ToString(); } if (row["F_BGWZ_QRSJ"] != null) { model.F_BGWZ_QRSJ = row["F_BGWZ_QRSJ"].ToString(); } if (row["F_BGWZ_QRCZY"] != null) { model.F_BGWZ_QRCZY = row["F_BGWZ_QRCZY"].ToString(); } if (row["F_BBWZ"] != null) { model.F_BBWZ = row["F_BBWZ"].ToString(); } if (row["F_LKWZ"] != null) { model.F_LKWZ = row["F_LKWZ"].ToString(); } if (row["F_QPWZ"] != null) { model.F_QPWZ = row["F_QPWZ"].ToString(); } if (row["F_GDCZY"] != null) { model.F_GDCZY = row["F_GDCZY"].ToString(); } if (row["F_GDSJ"] != null) { model.F_GDSJ = row["F_GDSJ"].ToString(); } if (row["F_GDBZ"] != null) { model.F_GDBZ = row["F_GDBZ"].ToString(); } if (row["F_BGLRY"] != null) { model.F_BGLRY = row["F_BGLRY"].ToString(); } if (row["F_FZYS"] != null) { model.F_FZYS = row["F_FZYS"].ToString(); } if (row["F_YL1"] != null) { model.F_YL1 = row["F_YL1"].ToString(); } if (row["F_YL2"] != null) { model.F_YL2 = row["F_YL2"].ToString(); } if (row["F_YL3"] != null) { model.F_YL3 = row["F_YL3"].ToString(); } if (row["F_YL4"] != null) { model.F_YL4 = row["F_YL4"].ToString(); } if (row["F_YL5"] != null) { model.F_YL5 = row["F_YL5"].ToString(); } if (row["F_YL6"] != null) { model.F_YL6 = row["F_YL6"].ToString(); } if (row["F_YL7"] != null) { model.F_YL7 = row["F_YL7"].ToString(); } if (row["F_YL8"] != null) { model.F_YL8 = row["F_YL8"].ToString(); } if (row["F_YL9"] != null) { model.F_YL9 = row["F_YL9"].ToString(); } if (row["F_YL10"] != null) { model.F_YL10 = row["F_YL10"].ToString(); } if (row["F_ICD10_BM1"] != null) { model.F_ICD10_BM1 = row["F_ICD10_BM1"].ToString(); } if (row["F_ICD10_MC1"] != null) { model.F_ICD10_MC1 = row["F_ICD10_MC1"].ToString(); } if (row["F_BL1"] != null) { model.F_BL1 = row["F_BL1"].ToString(); } if (row["F_BL2"] != null) { model.F_BL2 = row["F_BL2"].ToString(); } if (row["F_BL3"] != null) { model.F_BL3 = row["F_BL3"].ToString(); } if (row["F_BL4"] != null) { model.F_BL4 = row["F_BL4"].ToString(); } if (row["F_BL5"] != null) { model.F_BL5 = row["F_BL5"].ToString(); } if (row["F_BL6"] != null) { model.F_BL6 = row["F_BL6"].ToString(); } if (row["F_BL7"] != null) { model.F_BL7 = row["F_BL7"].ToString(); } if (row["F_BL8"] != null) { model.F_BL8 = row["F_BL8"].ToString(); } if (row["F_BL9"] != null) { model.F_BL9 = row["F_BL9"].ToString(); } if (row["F_BL10"] != null) { model.F_BL10 = row["F_BL10"].ToString(); } if (row["F_ICD10_BM2"] != null) { model.F_ICD10_BM2 = row["F_ICD10_BM2"].ToString(); } if (row["F_ICD10_MC2"] != null) { model.F_ICD10_MC2 = row["F_ICD10_MC2"].ToString(); } try { if (row["F_FBSJ"] != null) { model.F_FBSJ = row["F_FBSJ"].ToString(); } } catch (Exception e) { } try { if (row["F_FBYS"] != null) { model.F_FBYS = row["F_FBYS"].ToString(); } } catch (Exception e) { } } return(model); }
/// <summary> /// PIS打印报告时触发 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnPrintReport(T_JCXX jcxx, ReportType reportType) { // throw new NotImplementedException(); }
/// <summary> /// PIS取消审核报告时触发 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnCancelCheckReport(T_JCXX jcxx, ReportType reportType) { DelReport(jcxx, reportType); }
/// <summary> /// PIS审核报告时触发 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnCheckReport(T_JCXX jcxx, ReportType reportType) { SendReport(jcxx, reportType); }
/// <summary> /// PIS系统登记申请单时触发该方法 /// </summary> /// <param name="jcxx"></param> /// <param name="reportType">常规,冰冻,补充</param> public void OnAddReport(T_JCXX jcxx, ReportType reportType) { ReceiveReport(jcxx); }
/// <summary> /// 调用PACS接口回传报告结果 /// </summary> /// <param name="jcxx"></param> private void SendResult(T_JCXX jcxx) { #region HIS Data Schema //< Request > //< reportdoctorname ></ reportdoctorname > 报告医生 nvarchar //< checkdoctor ></ checkdoctor > 审核医生 nvarchar //< checktime ></ checktime > 审核时间 datetime //< reporttime ></ reporttime > 报告时间 datetime //< exsee ></ exsee > 检查所见 nvarchar //< exrel ></ exrel > 检查结论 nvarchar //< extype ></ extype > 检查类型 nvarchar //< exadvis ></ exadvis > 医生建议 nvarchar //< exstatue ></ exstatue > 检查状态 nvarchar //< isJzreport ></ isJzreport > 是否为急诊报告 Int //< exsqdh ></ exsqdh > 申请单号 nvarchar //< IsDelete ></ IsDelete > 删除标志 Int //< exwjz ></ exwjz > 危急值内容 nvarchar //< reportfilepath ></ reportfilepath > 病人网页报告地址 nvarchar //< vendor ></ vendor > 科室PACS厂商名称 nvarchar //< opertype ></ opertype >执行操作类型 nvarchar //< exid ></ exid > 检查ID,院PACS提供 Int //< ImageFile > //< Path1 > 报告图像路径1 | 1 </ Path1 > //< Path2 > 报告图像路径2 | 2 </ Path2 > //< Path3 > 报告图像路径3 | 0 </ Path3 > //</ ImageFile > // 图像路径 //</ Request > #endregion //2017年3月16日 刘冬阳:申请序号exid在保存病人时已写入sqxh //获取申请序号 //jcxx.F_SQXH = GetSqxhFormPacs(jcxx); //如果没有审核时间,用报告时间代替审核时间 if (jcxx.F_SPARE5.Trim() == "") { jcxx.F_SPARE5 = jcxx.F_BGRQ; } if (string.IsNullOrEmpty(jcxx.F_SQXH.Trim())) { throw new Exception("发送结果失败,因为没有获取到extId"); } string returnXml = $@"<Request> <reportdoctorname>{jcxx.F_BGYS}</reportdoctorname> <checkdoctor>{jcxx.F_SHYS}</checkdoctor> <checktime>{Convert.ToDateTime(jcxx.F_BGRQ).ToString("yyyy-MM-dd HH:mm:ss")}</checktime> <reporttime>{Convert.ToDateTime(jcxx.F_BGRQ).ToString("yyyy-MM-dd HH:mm:ss")}</reporttime> <exsee>{jcxx.F_RYSJ}</exsee> <exrel>{jcxx.F_BLZD}</exrel> <extype>病理</extype> <exadvis></exadvis> <exstatue>已打印发布报告</exstatue> <isJzreport>0</isJzreport> <exsqdh>0</exsqdh> <IsDelete>0</IsDelete> <exwjz>{jcxx.F_BZ}</exwjz> <reportwebfilepath>http://192.168.42.158/pathwebrpt/index_y.asp?yzh={jcxx.F_SQXH}</reportwebfilepath> <vendor>无锡朗珈</vendor> <opertype></opertype> <exid>{jcxx.F_SQXH}</exid> <isPositive>{jcxx.F_YYX}</isPositive> <ImageFile> {GetImageFile(jcxx)} </ImageFile> </Request>"; log.WriteMyLog("开始调用返回结果接口,入参为:\r\n" + returnXml); try { //调用回传结果接口 string returnXML = new ServiceForward().CallService(returnXml); var row = GetDataSetByXml(returnXML).Tables[0].Rows[0]; int count = Int32.Parse(row["Iden"].ToString()); string msg = row["reltxt"].ToString(); //如果count<0则回传失败 if (count < 0) { throw new Exception(msg); } else { log.WriteMyLog("回传报告成功!"); } } catch (Exception e) { log.WriteMyLog("回传报告失败,因为:" + e.Message + "\r\n接口返回值为:" + returnXml); throw; } }
/// <summary> /// 病理图片上传到外部系统ftp,并获取病理图片xml字符串 /// </summary> /// <param name="jcxx">检查信息表</param> /// <returns></returns> public string GetImageFile(T_JCXX jcxx) { var sqlWhere = $" F_BLH='{jcxx.F_BLH}' and F_SFDY='1' "; var txList = new T_TX_DAL().GetList(sqlWhere); string imageFileString = ""; #region ftp变量声明 IniFiles f = new IniFiles("sz.ini"); string ftpserver = f.ReadString("ftp", "ftpip", "").Replace("\0", ""); string ftpuser = f.ReadString("ftp", "user", "ftpuser").Replace("\0", ""); string ftppwd = f.ReadString("ftp", "pwd", "ftp").Replace("\0", ""); string ftplocal = f.ReadString("ftp", "ftplocal", "c:\\temp").Replace("\0", ""); string ftpremotepath = f.ReadString("ftp", "ftpremotepath", "pathimages").Replace("\0", ""); string ftps = f.ReadString("ftp", "ftp", "").Replace("\0", ""); string txpath = f.ReadString("txpath", "txpath", "").Replace("\0", ""); FtpWeb fw = new FtpWeb(ftpserver, ftpremotepath, ftpuser, ftppwd); string ftpserver2 = f.ReadString("ftpup", "ftpip", "").Replace("\0", ""); string ftpuser2 = f.ReadString("ftpup", "user", "ftpuser").Replace("\0", ""); string ftppwd2 = f.ReadString("ftpup", "pwd", "ftp").Replace("\0", ""); string ftplocal2 = f.ReadString("ftpup", "ftplocal", "c:\\temp").Replace("\0", ""); string ftpremotepath2 = f.ReadString("ftpup", "ftpremotepath", "").Replace("\0", ""); string ftps2 = f.ReadString("ftp", "ftp", "").Replace("\0", ""); FtpWeb fwup = new FtpWeb(ftpserver2, ftpremotepath2, ftpuser2, ftppwd2); string ftpPath = $@"ftp:\\{ftpserver}\"; //这里要替换为本地配置文件的ftp路径 string ftpPath2 = $@"ftp:\\{ftpserver2}\"; //这里要替换为本地配置文件的ftp路径 #endregion for (int i = 0; i < txList.Count; i++) { var upFilePath = jcxx.F_TXML + "\\"; var upFileName = upFilePath + txList[i].F_TXM.Trim(); //下载图片 string ftpstatus = ""; if (!Directory.Exists(ftplocal + "\\" + upFilePath)) { Directory.CreateDirectory(ftplocal + "\\" + upFilePath); } try { fw.Download(ftplocal + "\\" + upFilePath, upFileName, txList[i].F_TXM.Trim(), out ftpstatus); if (ftpstatus == "Error") { throw new Exception("Error"); } } catch (Exception e) { log.WriteMyLog("下载ftp图片失败,病理号:" + jcxx.F_BLH + "\r\n失败原因:" + e.Message); continue; } //上传到目标ftp string ftpstatusUP = ""; try { fwup.Makedir("BL", out ftpstatusUP); fwup.Makedir("BL\\" + upFilePath, out ftpstatusUP); fwup.Upload(ftplocal + "\\" + upFileName, "BL\\" + upFilePath, out ftpstatusUP); if (ftpstatusUP == "Error") { throw new Exception("Error"); } } catch (Exception e) { log.WriteMyLog("上传ftp图片失败,病理号:" + jcxx.F_BLH + "\r\n失败原因:" + e.Message); continue; } imageFileString += $@"<Path{i + 1}> {ftpPath2 + "BL\\" + upFileName} | 1 </Path{i + 1}> "; } return(imageFileString); }
public void UploadPic(List <T_TX> txList, T_JCXX jcxx, string fileId) { var targetServerDir = $"{DateTime.Now.ToString("yyyy")}\\{DateTime.Now.ToString("MM")}\\{DateTime.Now.ToString("dd")}\\{fileId}"; var pisServerDir = jcxx.F_TXML; var localdir = $"Pics\\" + targetServerDir; for (int i = 0; i < txList.Count; i++) { var upFilePath = targetServerDir + "\\"; var serverFileFullName = pisServerDir + "\\" + txList[i].F_TXM.Trim(); var localFileFullName = localdir + "\\" + txList[i].F_TXM.Trim(); //下载图片 string ftpstatus = ""; if (!Directory.Exists(localdir)) { Directory.CreateDirectory(localdir); } try { ftpPis.Download(localdir, serverFileFullName, txList[i].F_TXM.Trim(), out ftpstatus); if (ftpstatus == "Error") { throw new Exception("下载图片失败"); } } catch (Exception e) { log.WriteMyLog("下载ftp图片失败,病理号:" + jcxx.F_BLH + "\r\n失败原因:" + e); continue; } //上传到目标ftp string ftpstatusUP = ""; try { ftpUp.Makedir("BL", out ftpstatusUP); ftpUp.Makedir("BL\\" + upFilePath, out ftpstatusUP); ftpUp.Upload(localFileFullName, targetServerDir, out ftpstatusUP); if (ftpstatusUP == "Error") { throw new Exception("Error"); } } catch (Exception e) { log.WriteMyLog("上传ftp图片失败,病理号:" + jcxx.F_BLH + "\r\n失败原因:" + e); continue; } //上传完成后删除本地图片 try { File.Delete(localFileFullName); } catch { } } }