public static string rtn_CallInterface(string format, string serverName, string msgBody, string callOperator, string WebUrl, string debug) { string certificate = ZGQClass.getSZ_String("JK_ZGQ", "certificate", "5lYdPpiVdi0CxHKEhy3kqbzNlsXgNKZb"); //集成平台地址 xm1yweb.WSInterface wsif = new LGHISJKZGQ.xm1yweb.WSInterface(); // XMDYYY_WEB.WSInterface wsif = new LGHISJKZGQ.XMDYYY_WEB.WSInterface(); string msgHeader = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><serverName>" + serverName.Trim() + "</serverName>" + "<format>" + format + "</format><callOperator>" + callOperator.Trim() + "</callOperator><certificate>" + certificate + "</certificate></root>"; if (debug == "1") { log.WriteMyLog("入参:msgHeader:" + msgHeader + "\r\nmsgBody" + msgBody); } try { if (WebUrl.Trim() != "") { wsif.Url = WebUrl; } string rtn = wsif.CallInterface(msgHeader, msgBody); if (debug == "1") { log.WriteMyLog("返回:" + rtn); } return(rtn); } catch (Exception ee) { MessageBox.Show("连接webservice异常:" + ee.Message); return("-1"); } }
public static string ptxml(string Sslbx, string Ssbz, string Debug) { string exp = ""; string WSURL = f.ReadString(Sslbx, "WSURL", "").Replace("\0", "").Trim(); //获取sz.ini中设置的webservicesurl Debug = f.ReadString(Sslbx, "debug", "").Replace("\0", "").Trim();; string isFY = f.ReadString(Sslbx, "isFY", "1").Replace("\0", "").Trim(); if (Sslbx != "") { string rtn_XML = ""; if (Sslbx == "取消申请") { #region string yhbh = f.ReadString("yh", "yhbh", "").Replace("\0", "").Trim(); string yhmc = f.ReadString("yh", "yhmc", "").Replace("\0", "").Trim(); odbcdb aa = new odbcdb("DSN=pathnet;UID=pathnet;PWD=4s3c2a1p", "", ""); DataTable jcxx = new DataTable(); jcxx = aa.GetDataTable("select * from T_JCXX where F_BLH='" + Ssbz + "'", "jcxx"); if (jcxx == null) { MessageBox.Show("病理数据库设置有问题!"); return("0"); } if (jcxx.Rows.Count < 1) { MessageBox.Show("此病理号不存在!"); return("0"); } if (jcxx.Rows[0]["F_YZID"].ToString().Trim() == "") { MessageBox.Show("此病例无医嘱号无法取消申请!"); return("0"); } string [] yzids = jcxx.Rows[0]["F_YZID"].ToString().Split('^'); string Request_XML = ""; foreach (string yzid in yzids) { if (yzid.Trim() != "") { Request_XML = Request_XML + "<ModifyStauts>" + "<Status>U</Status>" + "<Rowid>" + yzid + "</Rowid>" + "<StudyNo>" + Ssbz + "</StudyNo>" + "<ExeUser>" + yhbh + "@" + yhmc + "</ExeUser>" + "<RBDate>" + DateTime.Today.ToString("yyyy-MM-dd") + "</RBDate>" + "<RBTime>" + DateTime.Now.ToString("HH:mm:ss") + "</RBTime>" + "<RBLoc>病理科</RBLoc>" + "</ModifyStauts>"; } } if (Request_XML == "") { MessageBox.Show("此病例无医嘱号无法取消申请!"); return("0"); } Request_XML = "<Request><ModifyStatuses>" + Request_XML + "</ModifyStatuses></Request>"; if (Debug == "1") { log.WriteMyLog(Request_XML); } string Response_XML = ""; try { xy2yWebService.XYEPACS xy2yweb = new LGHISJKZGQ.xy2yWebService.XYEPACS(); if (WSURL.Trim() != "") { xy2yweb.Url = WSURL; } Response_XML = xy2yweb.ModifyStatus(Request_XML); } catch (Exception ee1) { MessageBox.Show(ee1.Message); log.WriteMyLog(ee1.Message); return("0"); } XmlNode xmlok_DATA = null; XmlDocument xd2 = new XmlDocument(); try { xd2.LoadXml(Response_XML); xmlok_DATA = xd2.SelectSingleNode("/Response"); } catch (Exception xmlok_e) { log.WriteMyLog(rtn_XML); MessageBox.Show("解析XML异常:" + xmlok_e.Message); return("0"); } if (xmlok_DATA["ResultCode"].InnerText.Trim() != "0") { MessageBox.Show("获取数据失败:" + xmlok_DATA["ErrorMsg"].InnerText.Trim()); return("0"); } #endregion } if (Sslbx == "卡号" || Sslbx == "住院号" || Sslbx == "病人ID") { string yhbh = f.ReadString("yh", "yhbh", "").Replace("\0", "").Trim(); string yhmc = f.ReadString("yh", "yhmc", "").Replace("\0", "").Trim(); string DepCode = f.ReadString(Sslbx, "DepCode", "2310000").Replace("\0", "").Trim(); if (yhbh == "") { yhbh = "0783"; } string kh = ""; string zyh = ""; string brid = ""; string Inpatient = "N"; if (Sslbx == "卡号") { kh = Ssbz.Trim().Replace("\0", "").Trim(); } if (Sslbx == "住院号") { zyh = Ssbz.Trim(); Inpatient = "Y"; } if (Sslbx == "病人ID") { brid = Ssbz.Trim(); } string Request_XML = "<Request>" + "<StartDate>" + DateTime.Today.AddDays(-10).ToString("yyyy-MM-dd") + "</StartDate>" + "<EndDate>" + DateTime.Today.ToString("yyyy-MM-dd") + "</EndDate>" + "<CardNo>" + kh + "</CardNo>" + "<PatNo>" + brid + "</PatNo>" + "<UserId>" + yhbh + "</UserId>" + "<DepCode>" + DepCode + "</DepCode>" + "<Inpatient>" + Inpatient + "</Inpatient>" + "<WardCode></WardCode>" + "<InpatientNo>" + zyh + "</InpatientNo>" + "</Request>"; if (Debug == "1") { log.WriteMyLog(Request_XML); } string Response_XML = ""; try { xy2yWebService.XYEPACS xy2yweb = new LGHISJKZGQ.xy2yWebService.XYEPACS(); if (WSURL.Trim() != "") { xy2yweb.Url = WSURL; } Response_XML = xy2yweb.RegInfo(Request_XML); } catch (Exception ee1) { MessageBox.Show("获取数据异常:" + ee1.Message); log.WriteMyLog(ee1.Message); return("0"); } if (Response_XML == "") { MessageBox.Show("WebService返回为空,获取数据失败!"); return("0"); } if (Debug == "1") { log.WriteMyLog(Response_XML); } try { XmlNode xmlok_DATA = null; XmlDocument xd2 = new XmlDocument(); try { xd2.LoadXml(Response_XML); xmlok_DATA = xd2.SelectSingleNode("/Response"); } catch (Exception xmlok_e) { log.WriteMyLog(rtn_XML); MessageBox.Show("解析XML异常:" + xmlok_e.Message); return("0"); } if (xmlok_DATA["ResultCode"].InnerText.Trim() != "0") { MessageBox.Show("获取数据失败:" + xmlok_DATA["ErrorMsg"].InnerText.Trim()); return("0"); } XmlNode xn2 = xd2.SelectSingleNode("/Response/FindOrds/FindOrd"); DataTable dt_sqd = ZGQClass.DT_SQD(); DataRow dr = dt_sqd.NewRow(); dt_sqd.Rows.Add(dr); //PatInfo 病人信息 dr["F_XM"] = xn2["PatInfo"]["Name"].InnerText.Trim(); dr["F_BRBH"] = xn2["PatInfo"]["PatNo"].InnerText.Trim(); dr["F_XB"] = xn2["PatInfo"]["Sex"].InnerText.Trim().Split('@')[1]; dr["F_NL"] = xn2["PatInfo"]["Age"].InnerText.Trim(); dr["F_HY"] = xn2["PatInfo"]["Marry"].InnerText.Trim(); dr["F_DZ"] = xn2["PatInfo"]["Address"].InnerText.Trim(); dr["F_DH"] = "^" + xn2["PatInfo"]["Telephone"].InnerText.Trim(); try { dr["F_SFZH"] = xn2["PatInfo"]["IDCard"].InnerText.Trim(); } catch { dr["F_SFZH"] = ""; } dr["F_MZ"] = xn2["PatInfo"]["Nation"].InnerText.Trim(); dr["F_ZYH"] = xn2["PatInfo"]["InpatientNo"].InnerText.Trim(); dr["F_SJDW"] = "本院";// xn2["PatInfo"]["Hospital"].InnerText.Trim(); //AdmInfo/AdmRecord 科室信息 dr["F_MZH"] = xn2["AdmInfo"]["AdmRecord"]["AdmDR"].InnerText.Trim(); dr["F_BRLB"] = xn2["AdmInfo"]["AdmRecord"]["AdmType"].InnerText.Trim().Split('@')[1]; dr["F_SJKS"] = xn2["AdmInfo"]["AdmRecord"]["Ward"].InnerText.Trim().Split('@')[1];// xn2["AdmInfo"]["AdmRecord"]["Loc"].InnerText.Trim().Split('@')[1]; dr["F_SJYS"] = xn2["AdmInfo"]["AdmRecord"]["Doctor"].InnerText.Trim().Split('@')[1]; dr["F_CH"] = xn2["AdmInfo"]["AdmRecord"]["BedNo"].InnerText.Trim(); dr["F_BQ"] = xn2["AdmInfo"]["AdmRecord"]["Ward"].InnerText.Trim().Split('@')[1]; dr["F_LCZD"] = xn2["AdmInfo"]["AdmRecord"]["ClinicDiagnose"].InnerText.Trim(); dr["F_LCZL"] = xn2["AdmInfo"]["AdmRecord"]["OperationInfo"].InnerText.Trim(); //// AdmInfo/AdmRecord/HISOrders/Order收费信息 循环 DataTable dt_yzxx = new DataTable(); DataColumn OrdRowid = new DataColumn("OrdRowid"); dt_yzxx.Columns.Add(OrdRowid); DataColumn OrdName = new DataColumn("OrdName"); dt_yzxx.Columns.Add(OrdName); DataColumn OrdNum = new DataColumn("OrdNum"); dt_yzxx.Columns.Add(OrdNum); DataColumn ItemPrice = new DataColumn("ItemPrice"); dt_yzxx.Columns.Add(ItemPrice); DataColumn BillStatus = new DataColumn("BillStatus"); dt_yzxx.Columns.Add(BillStatus); DataColumn ApplyDate = new DataColumn("ApplyDate"); dt_yzxx.Columns.Add(ApplyDate); DataColumn AppTime = new DataColumn("AppTime"); dt_yzxx.Columns.Add(AppTime); DataColumn OrdStatus = new DataColumn("OrdStatus"); dt_yzxx.Columns.Add(OrdStatus); DataColumn OrdLoc = new DataColumn("OrdLoc"); dt_yzxx.Columns.Add(OrdLoc); DataColumn RisBody = new DataColumn("RisBody"); dt_yzxx.Columns.Add(RisBody); DataColumn UpdateUser = new DataColumn("UpdateUser"); dt_yzxx.Columns.Add(UpdateUser); XmlDocument p1 = new XmlDocument(); p1.LoadXml(xn2["AdmInfo"]["AdmRecord"]["HISOrders"].OuterXml); //医嘱信息 XmlNodeList ppplist2 = p1.SelectNodes("/HISOrders/Order"); foreach (XmlNode xn3 in ppplist2) { DataRow dr_yzxx = dt_yzxx.NewRow(); dt_yzxx.Rows.Add(dr_yzxx); dr_yzxx["OrdRowid"] = xn3["OrdRowid"].InnerText.Trim(); dr_yzxx["OrdName"] = xn3["OrdName"].InnerText.Trim(); dr_yzxx["OrdNum"] = xn3["OrdNum"].InnerText.Trim(); dr_yzxx["ItemPrice"] = xn3["ItemPrice"].InnerText.Trim(); dr_yzxx["BillStatus"] = xn3["BillStatus"].InnerText.Trim(); dr_yzxx["ApplyDate"] = xn3["ApplyDate"].InnerText.Trim(); dr_yzxx["AppTime"] = xn3["AppTime"].InnerText.Trim(); dr_yzxx["OrdStatus"] = xn3["OrdStatus"].InnerText.Trim(); dr_yzxx["OrdLoc"] = xn3["OrdLoc"].InnerText.Trim(); dr_yzxx["RisBody"] = xn3["RisBody"].InnerText.Trim(); dr_yzxx["UpdateUser"] = xn3["UpdateUser"].InnerText.Trim(); if (dr["F_YZID"].ToString().Trim() == "") { dr["F_YZID"] = xn3["OrdRowid"].InnerText.Trim(); } else { dr["F_YZID"] = dr["F_YZID"] + "^" + xn3["OrdRowid"].InnerText.Trim(); } } if (isFY == "1") { xy2yShowFY xy = new xy2yShowFY(dt_yzxx); xy.ShowDialog(); } //-返回xml---------------------------------------------------- string xml = "<?xml version=" + (char)34 + "1.0" + (char)34 + " encoding=" + (char)34 + "gbk" + (char)34 + "?>"; xml = xml + "<LOGENE>"; xml = xml + "<row "; try { xml = xml + "病人编号=" + (char)34 + dt_sqd.Rows[0]["F_BRBH"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "病人编号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "就诊ID=" + (char)34 + dt_sqd.Rows[0]["F_YZID"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "就诊ID=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "申请序号=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "申请序号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "门诊号=" + (char)34 + kh.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "门诊号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "住院号=" + (char)34 + dt_sqd.Rows[0]["F_ZYh"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "住院号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "姓名=" + (char)34 + dt_sqd.Rows[0]["F_XM"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "姓名=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "性别=" + (char)34 + dt_sqd.Rows[0]["F_XB"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "性别=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "年龄=" + (char)34 + dt_sqd.Rows[0]["F_NL"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "年龄=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "婚姻=" + (char)34 + dt_sqd.Rows[0]["F_HY"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "婚姻=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "地址=" + (char)34 + dt_sqd.Rows[0]["F_DZ"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "地址=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "电话=" + (char)34 + dt_sqd.Rows[0]["F_DH"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "电话=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "病区=" + (char)34 + dt_sqd.Rows[0]["F_BQ"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "病区=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "床号=" + (char)34 + dt_sqd.Rows[0]["F_CH"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "床号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "身份证号=" + (char)34 + dt_sqd.Rows[0]["F_SFZH"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "身份证号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "民族=" + (char)34 + dt_sqd.Rows[0]["F_MZ"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "民族=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- xml = xml + "职业=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- try { if (dt_sqd.Rows[0]["F_brlb"].ToString().Trim() == "住院") { xml = xml + "送检科室=" + (char)34 + dt_sqd.Rows[0]["F_SJKS"].ToString().Trim() + (char)34 + " "; } else { xml = xml + "送检科室=" + (char)34 + "门诊" + (char)34 + " "; } } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "送检科室=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "送检医生=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "送检医生=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- xml = xml + "收费=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- xml = xml + "标本名称=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- xml = xml + "送检医院=" + (char)34 + "本院" + (char)34 + " "; //---------------------------------------------------------- xml = xml + "医嘱项目=" + (char)34 + dt_sqd.Rows[0]["F_MZH"].ToString().Trim() + (char)34 + " "; //---------------------------------------------------------- xml = xml + "备用1=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- xml = xml + "备用2=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- try { xml = xml + "费别=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "费别=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "病人类别=" + (char)34 + dt_sqd.Rows[0]["F_brlb"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "病人类别=" + (char)34 + "" + (char)34 + " "; } xml = xml + "/>"; //---------------------------------------------------------- try { xml = xml + "<临床病史><![CDATA[" + dt_sqd.Rows[0]["F_LCZL"].ToString().Trim() + "]]></临床病史>"; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "<临床病史><![CDATA[" + "" + "]]></临床病史>"; } //---------------------------------------------------------- try { xml = xml + "<临床诊断><![CDATA[" + dt_sqd.Rows[0]["F_LCZD"].ToString().Trim() + "]]></临床诊断>"; } catch (Exception ee) { exp = exp + ee.Message.ToString(); xml = xml + "<临床诊断><![CDATA[" + "" + "]]></临床诊断>"; } xml = xml + "</LOGENE>"; if (Debug == "1") { log.WriteMyLog(xml); } if (exp.Trim() != "") { log.WriteMyLog(exp.Trim()); } return(xml); } catch (Exception e) { MessageBox.Show("提取信息出错,请重新操作"); log.WriteMyLog("xml解析错误---" + e.Message.ToString()); return("0"); } } else { MessageBox.Show("无此" + Sslbx); return("0"); } } return("0"); }
public static string ptxml(string Sslbx, string Ssbz, string Debug) { if (Sslbx != "") { string err = ""; string tqbblb = ZGQClass.getSZ_String(Sslbx, "tqbblb", "1"); string yhmc = f.ReadString("yh", "yhmc", "").Replace("\0", "").Trim(); string odbcsql = ZGQClass.getSZ_String(Sslbx, "odbcsql", "Data Source=ORCL_100;User ID=jk_ycxd;Password=123"); string Sslbx1 = Sslbx; if (Sslbx == "申请单号" || Sslbx == "标本条码号") { OracleDB_ZGQ oracledb = new OracleDB_ZGQ(); string sqdh = ""; if (Sslbx == "标本条码号") { //通过标本条码号获取申请单号 DataTable dt_bblb = new DataTable(); dt_bblb = oracledb.Oracle_DataAdapter(odbcsql, "select * from portal_his.emr_jcsq_blmx where tmh='" + Ssbz + "'", ref err); if (dt_bblb == null) { MessageBox.Show("查询此标本条码号的记录异常:" + err.Trim()); log.WriteMyLog("查询此标本条码号的记录异常:" + err.Trim() + "\r\n" + "select * from portal_his.emr_jcsq_blmx where tmh='" + Ssbz + "'"); return("0"); } if (dt_bblb.Rows.Count > 0) { sqdh = dt_bblb.Rows[0]["sqdh"].ToString().Trim(); } else { MessageBox.Show("未查询到此标本条码号的记录" + err.Trim()); log.WriteMyLog("未查询到此标本条码号的记录" + err.Trim() + "\r\n" + "select * from portal_his.emr_jcsq_blmx where tmh='" + Ssbz + "'"); return("0"); } } if (Sslbx == "申请单号") { sqdh = Ssbz; } err = ""; DataTable dt_sqd = new DataTable(); string sql_sqd = "select emr_jcsq.*,ksmc from portal_his.emr_jcsq,portal_his.gy_ksdm where portal_his.emr_jcsq.kdks = portal_his.gy_ksdm.ksdm and sqdh='" + sqdh + "'"; dt_sqd = oracledb.Oracle_DataAdapter(odbcsql, sql_sqd, ref err); if (dt_sqd == null) { MessageBox.Show("查询申请单的记录异常:" + err.Trim() + ""); log.WriteMyLog("查询申请单的记录异常:" + err.Trim() + "\r\n" + sql_sqd); return("0"); } if (dt_sqd.Rows.Count <= 0) { MessageBox.Show("未查询到申请单的记录" + err.Trim()); log.WriteMyLog("未查询到申请单的记录" + err.Trim() + "\r\n" + sql_sqd); return("0"); } string exp = ""; //-返回xml---------------------------------------------------- try { string xml = "<?xml version=" + (char)34 + "1.0" + (char)34 + " encoding=" + (char)34 + "gbk" + (char)34 + "?>"; xml = xml + "<LOGENE>"; xml = xml + "<row "; try { xml = xml + "病人编号=" + (char)34 + dt_sqd.Rows[0]["BRID"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "病人编号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- xml = xml + "就诊ID=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- try { xml = xml + "申请序号=" + (char)34 + dt_sqd.Rows[0]["sqdh"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "申请序号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- string brlb = dt_sqd.Rows[0]["jzlx"].ToString().Trim(); if (brlb == "1") { brlb = "门诊"; } if (brlb == "2") { brlb = "住院"; } try { if (brlb != "住院") { xml = xml + "门诊号=" + (char)34 + dt_sqd.Rows[0]["patientid"].ToString().Trim() + (char)34 + " "; } else { xml = xml + "门诊号=" + (char)34 + "" + (char)34 + " "; } } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "门诊号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { if (brlb == "住院") { xml = xml + "住院号=" + (char)34 + dt_sqd.Rows[0]["patientid"].ToString().Trim() + (char)34 + " "; } else { xml = xml + "住院号=" + (char)34 + "" + (char)34 + " "; } } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "住院号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "姓名=" + (char)34 + dt_sqd.Rows[0]["brxm"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "姓名=" + (char)34 + "" + (char)34 + " "; } //----------------------------------------------------------1男2女 try { string xb = dt_sqd.Rows[0]["brxb"].ToString().Trim(); if (xb == "1") { xb = "男"; } else if (xb == "2") { xb = "女"; } else { xb = ""; } xml = xml + "性别=" + (char)34 + xb + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "性别=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "年龄=" + (char)34 + dt_sqd.Rows[0]["brnl"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "年龄=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "婚姻=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "婚姻=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "地址=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "地址=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "电话=" + (char)34 + dt_sqd.Rows[0]["lxdh"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "电话=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "病区=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "病区=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "床号=" + (char)34 + dt_sqd.Rows[0]["brch"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "床号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "身份证号=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "身份证号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "民族=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "民族=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "职业=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "职业=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "送检科室=" + (char)34 + dt_sqd.Rows[0]["KSMC"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "送检科室=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "送检医生=" + (char)34 + dt_sqd.Rows[0]["sjys"].ToString().Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "送检医生=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- xml = xml + "收费=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- /////////////////////////// string BBLB_XML = ""; string bbmc = ""; if (tqbblb == "1") { //通过申请单号获取标本明细 err = ""; DataTable dt_bblb = new DataTable(); dt_bblb = oracledb.Oracle_DataAdapter(odbcsql, "select * from portal_his.emr_jcsq_blmx where sqdh='" + dt_sqd.Rows[0]["sqdh"].ToString().Trim() + "'", ref err); if (dt_bblb == null) { MessageBox.Show("查询此申请单标本明细的记录异常:" + err.Trim()); log.WriteMyLog("查询此申请单标本明细的记录异常:" + err.Trim() + "\r\n" + "select * from portal_his.emr_jcsq_blmx where sqdh='" + dt_sqd.Rows[0]["sqdh"].ToString().Trim() + "'"); tqbblb = "0"; } else { if (dt_bblb.Rows.Count > 0) { BBLB_XML = "<BBLB>"; try { for (int x = 0; x < dt_bblb.Rows.Count; x++) { try { BBLB_XML = BBLB_XML + "<row "; BBLB_XML = BBLB_XML + "F_BBXH=" + (char)34 + dt_bblb.Rows[x]["plxh"].ToString().Trim() + (char)34 + " "; BBLB_XML = BBLB_XML + "F_BBTMH=" + (char)34 + dt_bblb.Rows[x]["tmh"].ToString().Trim() + (char)34 + " "; BBLB_XML = BBLB_XML + "F_BBMC=" + (char)34 + dt_bblb.Rows[x]["bbmc"].ToString().Trim() + (char)34 + " "; BBLB_XML = BBLB_XML + "F_CQBW=" + (char)34 + dt_bblb.Rows[x]["bbbw"].ToString().Trim() + (char)34 + " "; BBLB_XML = BBLB_XML + "F_BZ=" + (char)34 + "" + (char)34 + " "; BBLB_XML = BBLB_XML + "F_LTSJ=" + (char)34 + dt_bblb.Rows[x]["bbsl"].ToString().Trim() + (char)34 + " "; BBLB_XML = BBLB_XML + "F_GDSJ=" + (char)34 + "" + (char)34 + " "; BBLB_XML = BBLB_XML + "F_JSSJ=" + (char)34 + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + (char)34 + " "; BBLB_XML = BBLB_XML + "F_JSY=" + (char)34 + yhmc + (char)34 + " "; BBLB_XML = BBLB_XML + "F_BBZT=" + (char)34 + "" + (char)34 + " "; BBLB_XML = BBLB_XML + "F_BBPJ=" + (char)34 + "" + (char)34 + " "; BBLB_XML = BBLB_XML + "F_PJR=" + (char)34 + "" + (char)34 + " "; BBLB_XML = BBLB_XML + "F_PJSJ=" + (char)34 + "" + (char)34 + " "; BBLB_XML = BBLB_XML + "/>"; bbmc = bbmc + " " + dt_bblb.Rows[x]["bbmc"].ToString().Trim(); } catch (Exception eee) { MessageBox.Show("解析标本列表信息异常:" + eee.Message); tqbblb = "0"; break; } } } catch (Exception e3) { MessageBox.Show("获取标本名称异常:" + e3.Message); tqbblb = "0"; } BBLB_XML = BBLB_XML + "</BBLB>"; } else { MessageBox.Show("此申请单无标本条码信息" + err.Trim()); log.WriteMyLog("此申请单无标本条码信息" + err.Trim() + "\r\n" + "select * from portal_his.emr_jcsq_blmx where sqdh='" + dt_sqd.Rows[0]["sqdh"].ToString().Trim() + "'"); tqbblb = "0"; } } } xml = xml + "标本名称=" + (char)34 + bbmc.Trim() + (char)34 + " "; //---------------------------------------------------------- xml = xml + "送检医院=" + (char)34 + "本院" + (char)34 + " "; //---------------------------------------------------------- xml = xml + "医嘱项目=" + (char)34 + dt_sqd.Rows[0]["sqxm"].ToString().Trim() + (char)34 + " "; //---------------------------------------------------------- xml = xml + "备用1=" + (char)34 + (char)34 + " "; //---------------------------------------------------------- try { xml = xml + "备用2=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee4) { log.WriteMyLog(ee4.Message); xml = xml + "备用2=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "费别=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "费别=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "病人类别=" + (char)34 + brlb + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "病人类别=" + (char)34 + "" + (char)34 + " "; } xml = xml + "/>"; //---------------------------------------------------------- string bszy = "病史摘要:" + dt_sqd.Rows[0]["bszy"].ToString().Trim() + "\r\n"; string zyjcjg = "主要检查结果:" + dt_sqd.Rows[0]["zyjcjg"].ToString().Trim() + "\r\n"; string ssjl = "手术记录及内镜所见" + dt_sqd.Rows[0]["ssjl"].ToString().Trim() + "\r\n"; try { xml = xml + "<临床病史><![CDATA[" + bszy + zyjcjg + ssjl + "]]></临床病史>";//.Replace("\"", """) } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "<临床病史><![CDATA[" + "" + "]]></临床病史>"; } //---------------------------------------------------------- try { xml = xml + "<临床诊断><![CDATA[" + dt_sqd.Rows[0]["jbmc"].ToString().Trim() + "]]></临床诊断>"; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "<临床诊断><![CDATA[" + "" + "]]></临床诊断>"; } if (tqbblb == "1") { xml = xml + BBLB_XML; } xml = xml + "</LOGENE>"; if (Debug == "1" && exp.Trim() != "") { log.WriteMyLog(exp.Trim()); log.WriteMyLog(xml); } return(xml); } catch (Exception e2) { MessageBox.Show("程序异常:" + e2.Message); return("0"); } } else { MessageBox.Show("无此识别号:" + Sslbx1); return("0"); } } else { MessageBox.Show("识别号不能为空:" + Sslbx); return("0"); } }
private void button3_Click(object sender, EventArgs e) { StringReader xmlstr = null; XmlTextReader xmread = null; xmlstr = new StringReader(textBox4.Text); xmread = new XmlTextReader(xmlstr); XmlDocument readxml2 = new XmlDocument(); try { readxml2.Load(xmread); } catch (Exception e2) { log.WriteMyLog("读XML失败:" + e2.Message.ToString()); return; } XmlNamespaceManager nsMgr = new XmlNamespaceManager(readxml2.NameTable); nsMgr.AddNamespace("ns", "http://chas.hit.com/transport/integration/common/msg"); XmlNode xmlok_DATA = null; // XmlDocument xd2 = new XmlDocument(); try { xmlok_DATA = readxml2.SelectSingleNode("/ns:QueryPatientResponse/ns:respHeader", nsMgr); } catch (Exception xmlok_e) { MessageBox.Show("提取基本信息失败:解析DATA异常:" + xmlok_e.Message); return; } MessageBox.Show("1"); string ResultCode = xmlok_DATA["respCode"].InnerText.Trim(); MessageBox.Show("1"); string ErrorMsg = xmlok_DATA["respMessage"].InnerText.Trim(); MessageBox.Show(ErrorMsg); if (ResultCode != "000000") { MessageBox.Show("提取基本信息失败::" + ErrorMsg); return; } MessageBox.Show("3"); xmlok_DATA = readxml2.SelectSingleNode("/ns:QueryPatientResponse/ns:patient", nsMgr); if (xmlok_DATA["name"].InnerText == "") { MessageBox.Show("提取基本信息失败:info为空"); return; } MessageBox.Show("4"); string exp = ""; //-返回xml---------------------------------------------------- string xml = "<?xml version=" + (char)34 + "1.0" + (char)34 + " encoding=" + (char)34 + "gbk" + (char)34 + "?>"; xml = xml + "<LOGENE>"; xml = xml + "<row "; try { xml = xml + "病人编号=" + (char)34 + xmlok_DATA["encounterNo"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { xml = xml + "病人编号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "就诊ID=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "就诊ID=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "申请序号=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "申请序号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "门诊号=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "门诊号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "住院号=" + (char)34 + xmlok_DATA["patientNo"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "住院号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "姓名=" + (char)34 + xmlok_DATA["name"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "姓名=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "性别=" + (char)34 + xmlok_DATA["sexName"].InnerText.Trim() + (char)34 + " "; } catch { xml = xml + "性别=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "年龄=" + (char)34 + ZGQClass.CsrqToAge(xmlok_DATA["birthday"].InnerText.Trim()) + (char)34 + " "; } catch { xml = xml + "年龄=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "婚姻=" + (char)34 + "" + (char)34 + " "; } catch { xml = xml + "婚姻=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "地址=" + (char)34 + xmlok_DATA["phone"].InnerText.Trim() + "^" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "地址=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "电话=" + (char)34 + xmlok_DATA["address"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "电话=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "病区=" + (char)34 + xmlok_DATA["wardName"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "病区=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "床号=" + (char)34 + xmlok_DATA["bedName"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "床号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "身份证号=" + (char)34 + xmlok_DATA["idCardNo"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "身份证号=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "民族=" + (char)34 + "" + (char)34 + " "; } catch { xml = xml + "民族=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "职业=" + (char)34 + "" + (char)34 + " "; } catch { xml = xml + "职业=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "送检科室=" + (char)34 + xmlok_DATA["departmentName"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "送检科室=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { xml = xml + "送检医生=" + (char)34 + xmlok_DATA["chargeDoctorName"].InnerText.Trim() + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "送检医生=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- xml = xml + "收费=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- xml = xml + "标本名称=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- try { xml = xml + "送检医院=" + (char)34 + xmlok_DATA["hospitalName"].InnerText.Trim() + (char)34 + " "; } catch { xml = xml + "送检医院=" + (char)34 + "广东省中医院" + (char)34 + " "; } //---------------------------------------------------------- xml = xml + "医嘱项目=" + (char)34 + "" + (char)34 + " "; //---------------------------------------------------------- xml = xml + "备用1=" + (char)34 + (char)34 + " "; //---------------------------------------------------------- xml = xml + "备用2=" + (char)34 + (char)34 + " "; //---------------------------------------------------------- try { xml = xml + "费别=" + (char)34 + "" + (char)34 + " "; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "费别=" + (char)34 + "" + (char)34 + " "; } //---------------------------------------------------------- try { string brlb = xmlok_DATA["chargeDoctorName"].InnerText.Trim(); if (brlb == "ECTY.IP.0000") { brlb = "住院"; } else if (brlb == "ECTY.OP.0000") { brlb = "门诊"; } else if (brlb == "ECTY.HLC.0000") { brlb = "体检"; } else if (brlb == "ECTY.AEU.0000") { brlb = "急诊"; } else { brlb = "住院"; } xml = xml + "病人类别=" + (char)34 + brlb + (char)34 + " "; } catch { xml = xml + "病人类别=" + (char)34 + "住院" + (char)34 + " "; } xml = xml + "/>"; //---------------------------------------------------------- try { xml = xml + "<临床病史><![CDATA[" + "" + "]]></临床病史>"; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "<临床病史><![CDATA[" + "" + "]]></临床病史>"; } //---------------------------------------------------------- try { xml = xml + "<临床诊断><![CDATA[" + "" + "]]></临床诊断>"; } catch (Exception ee) { exp = exp + ee.ToString(); xml = xml + "<临床诊断><![CDATA[" + "" + "]]></临床诊断>"; } xml = xml + "</LOGENE>"; MessageBox.Show(xml); return; // XmlNode xmlok_DATA = null; XmlDocument xd2 = new XmlDocument(); try { xd2.LoadXml(textBox4.Text.Trim()); xmlok_DATA = xd2.SelectSingleNode("/Response"); } catch (Exception xmlok_e) { MessageBox.Show("解析XML异常:" + xmlok_e.Message); return; } if (xmlok_DATA["ResultCode"].InnerText.Trim() != "0") { MessageBox.Show("获取数据失败:" + xmlok_DATA["ErrorMsg"].InnerText.Trim()); return; } XmlNodeList xnl = xd2.SelectNodes("/Response/FindOrds/FindOrd"); foreach (XmlNode xn2 in xnl) { //PatInfo 病人信息 MessageBox.Show(xn2["PatInfo"]["Name"].InnerText); //AdmInfo/AdmRecord 科室信息 MessageBox.Show(xn2["AdmInfo"]["AdmRecord"]["AdmDR"].InnerText); //AdmInfo/AdmRecord/HISOrders/Order收费信息 循环 XmlNodeList xnl2 = xn2.SelectNodes("/AdmInfo/AdmRecord/HISOrders/Order"); //AdmInfo/AdmRecord/HISOrders/Order收费信息 循环 XmlDocument p1 = new XmlDocument(); p1.LoadXml(xn2["AdmInfo"]["AdmRecord"]["HISOrders"].OuterXml); //医嘱信息 XmlNodeList ppplist2 = p1.SelectNodes("/HISOrders/Order"); foreach (XmlNode xn3 in ppplist2) { MessageBox.Show(xn3["OrdName"].InnerText); } } }
private static string jxhl7(string rtn_msg, string Ssbz, string Sslbx, string isbrxx, string WebUrl, string debug, string BBXml, string BBmc) { string yh = f.ReadString("yh", "yhmc", "0"); int xh = 0; PT_XML px = new PT_XML(); readhl7 r7 = new readhl7(); int count = 0; try { r7.Adt01(rtn_msg, ref count); if (r7.MSA[1].Trim() == "AA") { try { if (count > 1) { DataTable dt = new DataTable(); DataColumn dc0 = new DataColumn("序号"); dt.Columns.Add(dc0); DataColumn dc1 = new DataColumn("申请序号"); dt.Columns.Add(dc1); DataColumn dc2 = new DataColumn("姓名"); dt.Columns.Add(dc2); DataColumn dc3 = new DataColumn("病人类别"); dt.Columns.Add(dc3); DataColumn dc4 = new DataColumn("送检科室"); dt.Columns.Add(dc4); DataColumn dc5 = new DataColumn("送检医生"); dt.Columns.Add(dc5); DataColumn dc6 = new DataColumn("医嘱项目"); dt.Columns.Add(dc6); DataColumn dc7 = new DataColumn("费用"); dt.Columns.Add(dc7); DataColumn dc8 = new DataColumn("标本名称"); dt.Columns.Add(dc8); for (int x = 0; x < count; x++) { DataRow dr1 = dt.NewRow(); dt.Rows.Add(dr1); dt.Rows[x][0] = x; //申请序号 dt.Rows[x][1] = r7.ORC[x, 2].Trim(); //姓名 dt.Rows[x][2] = r7.PID[5].Split('^')[0].Trim(); //病人类型 dt.Rows[x][3] = r7.QRF[4].Trim(); if (dt.Rows[x][3].ToString() == "I") { dt.Rows[x][3] = "住院"; } else { dt.Rows[x][3] = "门诊"; } //科室 dt.Rows[x][4] = r7.ORC[xh, 13].Trim().Split('^')[0]; //医生 dt.Rows[x][5] = r7.ORC[x, 12].Trim(); //项目 dt.Rows[x][6] = r7.OBR[x, 4].Trim(); //费用 dt.Rows[x][7] = r7.OBR[x, 23].Trim(); //标本名称 string bbmc = r7.OBR[x, 15].Trim(); if (bbmc.Trim() == "^") { bbmc = ""; } dt.Rows[x][8] = bbmc; } Frm_FJSFYBJY ffj = new Frm_FJSFYBJY(dt, "30^80^80^40^120^100^250^70^150"); ffj.ShowDialog(); if (ffj.xh == "") { MessageBox.Show("未选择病人检查记录"); return("0"); } xh = int.Parse(ffj.xh); } px.myDictionary["姓名"] = r7.PID[5].Split('^')[0].Trim(); string xb = r7.PID[8].Trim(); if (xb == "F") { xb = "女"; } else if (xb.Trim() == "M") { xb = "男"; } else { xb = "女"; } px.myDictionary["性别"] = xb; string brlb = r7.QRF[4].Trim(); if (brlb == "I") { brlb = "住院"; } else { brlb = "门诊"; } px.myDictionary["病人类别"] = brlb; px.myDictionary["出生日期"] = r7.PID[7].Trim(); if (r7.PID[13].Trim() != "") { px.myDictionary["地址"] = r7.PID[11].Trim(); } if (r7.PID[11].Trim() != "") { px.myDictionary["电话"] = "^" + r7.PID[13].Trim(); } string hy = r7.PID[15].Trim(); switch (hy) { case "D": hy = "离婚"; break; case "M": hy = "已婚"; break; case "W": hy = "丧偶"; break; case "V": hy = "未婚"; break; default: hy = ""; break; } px.myDictionary["婚姻"] = hy; foreach (string pid3 in r7.PID[3].Trim().Split('~')) { try { //身份证号 if (pid3.Split('^')[4] == "PN") { px.myDictionary["身份证号"] = pid3.Split('^')[0].Trim(); } } catch { } try { //PI patientid if (pid3.Split('^')[4] == "PI") { px.myDictionary["病人编号"] = pid3.Split('^')[0].Trim(); } } catch { } try { //病案号 if (pid3.Split('^')[4] == "MR") { px.myDictionary["民族"] = pid3.Split('^')[0].Trim(); } } catch { } try { //医保号 if (pid3.Split('^')[4] == "VN") { px.myDictionary["就诊ID"] = pid3.Split('^')[0].Trim(); } } catch { } } if (px.myDictionary["民族"].Trim() == "") { px.myDictionary["民族"] = px.myDictionary["就诊ID"].Substring(0, px.myDictionary["就诊ID"].Length - 3); } string bah = px.myDictionary["民族"]; if (brlb == "门诊") { px.myDictionary["门诊号"] = bah; } if (brlb == "住院") { px.myDictionary["住院号"] = bah; } px.myDictionary["床号"] = r7.NTE[3].Trim(); px.myDictionary["送检科室"] = r7.ORC[xh, 13].Trim().Split('^')[0]; px.myDictionary["病区"] = r7.ORC[xh, 13].Trim().Split('^')[0]; px.myDictionary["申请序号"] = r7.ORC[xh, 2].Trim(); px.myDictionary["送检医生"] = r7.ORC[xh, 12].Trim().Split('^')[1].Trim(); string sqx = r7.OBR[0, 2].Trim(); px.myDictionary["医嘱项目"] = r7.OBR[xh, 4].Trim(); string bbmc1 = r7.OBR[xh, 15].Trim(); if (bbmc1.Trim() == "^") { bbmc1 = ""; } px.myDictionary["标本名称"] = bbmc1; px.myDictionary["收费"] = "";// r7.OBR[xh, 23].Trim(); //try //{ // px.myDictionary["临床病史"] = r7.OBR[xh, 46].Trim().Split('~')[1].Replace("2^", "").Trim(); //} //catch //{ // px.myDictionary["临床病史"] = ""; //} foreach (string lczd in r7.OBR[xh, 46].Trim().Split('~')) { //lczd try { if (lczd.Split('^')[0] == "6") { px.myDictionary["临床诊断"] = lczd.Split('^')[1]; } } catch { } //主诉 try { if (lczd.Split('^')[0] == "1") { px.myDictionary["临床病史"] = px.myDictionary["临床病史"] + lczd.Split('^')[1]; } } catch { } // 病史 try { if (lczd.Split('^')[0] == "2") { px.myDictionary["临床病史"] = px.myDictionary["临床病史"] + lczd.Split('^')[1]; } } catch { } } if (px.myDictionary["年龄"].Trim() == "") { px.myDictionary["年龄"] = ZGQClass.CsrqToAge(px.myDictionary["出生日期"]); } string exep = ""; // MessageBox.Show(px.rtn_XML(ref exep)); //获取标本列表 if (BBXml.Trim() == "") { if (tqbblb == "1") { string applyNo = ""; string patientId = ""; string visitNo = ""; string visitType = ""; string examItemCode = ""; string examItemName = ""; BBXml = GetBbxx(px.myDictionary["申请序号"].Trim(), "", WebUrl, debug, ref applyNo, ref patientId, ref visitNo, ref visitType, ref examItemCode, ref examItemName, ref BBmc); } } if (BBmc != "") { px.myDictionary["标本名称"] = BBmc; } return(px.rtn_XML(BBXml, ref exep)); } catch (Exception e2) { MessageBox.Show(e2.Message); return("0"); } } else { //取基本信息 if (isbrxx == "1") { if (debug == "1") { log.WriteMyLog("未取得申请单信息,提取病人基本信息"); } if (Sslbx.Trim() == "住院号" || Sslbx.Trim() == "就诊号") { string rtn_msg2 = ""; if (Sslbx.Trim() == "住院号") { //if (isbrxx.Trim() != "1") //{ // MessageBox.Show(r7.MSA[1].Trim() + "|" + r7.MSA[3].Trim()); // return "0"; //} string XML2 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><visitNo></visitNo><inpNo>" + Ssbz + "</inpNo><patientId></patientId><wardCode></wardCode><deptCode></deptCode></root>"; rtn_msg2 = rtn_CallInterface("XML", "GetPatientInHospital", XML2, "", WebUrl, debug); } else { //if (isbrxx.Trim() != "1") //{ // MessageBox.Show(r7.MSA[1].Trim() + "|" + r7.MSA[3].Trim()); // return "0"; //} string XML2 = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><icCardNo>" + Ssbz + "</icCardNo><executeDept></executeDept></root>"; rtn_msg2 = rtn_CallInterface("XML", "GetDispPatientInfo", XML2, "", WebUrl, debug); } if (rtn_msg2 == "") { return("0"); } readhl7 rr7 = new readhl7(); int xy = 0; rr7.Adt01(rtn_msg2, ref xy); if (rr7.MSA[1].Trim() != "AA") { MessageBox.Show(rr7.MSA[3].Trim()); return("0"); } else { XmlNode xmlok = null; XmlDocument xd = new XmlDocument(); try { xd.LoadXml(rtn_msg2); xmlok = xd.SelectSingleNode("/root/patients"); if (xmlok.InnerXml.Trim() != "") { DataSet ds1 = new DataSet(); StringReader sr = new StringReader(xmlok.InnerXml); XmlReader xr = new XmlTextReader(sr); ds1.ReadXml(xr); px.myDictionary["姓名"] = ds1.Tables[0].Rows[0]["patientName"].ToString().Trim(); string xb = ds1.Tables[0].Rows[0]["patientSex"].ToString().Trim(); if (xb == "1") { xb = "女"; } else if (xb.Trim() == "0") { xb = "男"; } else { xb = ""; } px.myDictionary["性别"] = xb; if (Sslbx.Trim() == "住院号") { px.myDictionary["病人类别"] = "住院"; px.myDictionary["就诊ID"] = ds1.Tables[0].Rows[0]["visitCount"].ToString().Trim(); px.myDictionary["住院号"] = ds1.Tables[0].Rows[0]["visitNo"].ToString().Trim(); px.myDictionary["床号"] = ds1.Tables[0].Rows[0]["bedCode"].ToString().Trim(); px.myDictionary["病区"] = ds1.Tables[0].Rows[0]["wardName"].ToString().Trim(); } else { px.myDictionary["病人类别"] = "门诊"; px.myDictionary["门诊号"] = ds1.Tables[0].Rows[0]["icCardNo"].ToString().Trim(); px.myDictionary["病区"] = ds1.Tables[0].Rows[0]["deptName"].ToString().Trim(); } if (ds1.Tables[0].Rows[0]["patientAge"].ToString().Trim() != "") { try { px.myDictionary["年龄"] = ds1.Tables[0].Rows[0]["patientAge"].ToString().Trim() + ds1.Tables[0].Rows[0]["ageUnit"].ToString().Trim(); } catch { px.myDictionary["年龄"] = ds1.Tables[0].Rows[0]["patientAge"].ToString().Trim(); } } px.myDictionary["地址"] = "电话:" + ds1.Tables[0].Rows[0]["telephone"].ToString().Trim(); px.myDictionary["电话"] = "^地址:"; px.myDictionary["病人编号"] = ds1.Tables[0].Rows[0]["patientId"].ToString().Trim(); px.myDictionary["送检科室"] = ds1.Tables[0].Rows[0]["deptName"].ToString().Trim(); px.myDictionary["申请序号"] = ""; px.myDictionary["送检医生"] = ds1.Tables[0].Rows[0]["doctorInCharge"].ToString().Trim().Split('/')[0].Trim(); px.myDictionary["费别"] = ds1.Tables[0].Rows[0]["rateTypeName"].ToString().Trim(); try { px.myDictionary["临床诊断"] = ds1.Tables[0].Rows[0]["diagnosisname"].ToString().Trim(); } catch { px.myDictionary["临床诊断"] = ""; } string exep = ""; return(px.rtn_XML(ref exep)); } else { MessageBox.Show("未能查询到病人记录"); return("0"); } } catch (Exception ee) { MessageBox.Show("XML解析错误:" + ee.Message); log.WriteMyLog(rtn_msg2 + "--" + ee.Message); return("0"); } } } } else { MessageBox.Show(r7.MSA[1].Trim() + "|" + r7.MSA[3].Trim()); } return("0"); } } catch (Exception ee) { MessageBox.Show(ee.Message); return("0"); } }
public static string ptxml(string Sslbx, string Ssbz, string debug) { if (Sslbx.Trim() == "") { MessageBox.Show("无此" + Sslbx); return("0"); } #region 获取SZ或T_SZ配置 string xtdm = f.ReadString(Sslbx, "xtdm", "2060000").Replace("\0", "").Trim(); string WebUrl = f.ReadString(Sslbx, "WebUrl", "http://223.220.200.45:1506/services/WSInterface?wsdl").Replace("\0", "").Trim(); debug = f.ReadString(Sslbx, "debug", "").Replace("\0", "").Trim(); string certificate = f.ReadString(Sslbx, "certificate", "ZmmJ9RMCKAUxFsiwl/08iiA3J17G0OpI").Replace("\0", "").Trim(); #endregion #region 提取基本信息 string OSQ = ""; if (Sslbx == "卡号") { if (Ssbz.Length > 19) { try { Ssbz = Ssbz.Substring(9, 10); } catch { log.WriteMyLog("截取卡号异常Substring(9, 10):" + Ssbz); } } if (debug == "1") { log.WriteMyLog("卡号:" + Ssbz); } string rtn = SP_SELECT.ptxml2(Sslbx, Ssbz, debug, ""); if (rtn != "0") { return(rtn); } if (debug == "1") { log.WriteMyLog("未查询到申请单记录,获取基本信息"); } OSQ = "<root><patientId></patientId><visitNo>" + Ssbz + "</visitNo></root>"; } else if (Sslbx == "门诊号") { string rtn = SP_SELECT.ptxml2(Sslbx, Ssbz, debug, ""); if (rtn != "0") { return(rtn); } if (debug == "1") { log.WriteMyLog("未查询到申请单记录,获取基本信息"); } OSQ = "<root><patientId></patientId><visitNo>" + Ssbz + "</visitNo></root>"; } else if (Sslbx == "住院号") { string rtn = SP_SELECT.ptxml2(Sslbx, Ssbz, debug, ""); if (rtn != "0") { return(rtn); } if (debug == "1") { log.WriteMyLog("未查询到申请单记录,获取基本信息"); } OSQ = "<root><patientId></patientId><visitNo>" + Ssbz + "</visitNo></root>"; } else { MessageBox.Show("无此识别类型" + Sslbx); return("0"); } aydefyweb.WSInterface ayd2yy = new LGHISJKZGQ.aydefyweb.WSInterface(); if (WebUrl.Trim() != "") { ayd2yy.Url = WebUrl; } string msgHeader = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><serverName>GetPatientBaseInfoIndex</serverName>" + "<format>xml</format><callOperator></callOperator><certificate>" + certificate + "</certificate></root>"; if (debug == "1") { log.WriteMyLog("入参:msgHeader:" + msgHeader + "\r\nmsgBody" + OSQ); } try { string rtn = ""; try { rtn = ayd2yy.CallInterface(msgHeader, OSQ); } catch (Exception e1) { MessageBox.Show("连接webservice异常:" + e1.Message); return("0"); } if (debug == "1") { log.WriteMyLog("返回:" + rtn); } if (rtn == "<?xml version=\"1.0\" encoding=\"utf-8\"?><root/>") { MessageBox.Show("未查询到病人信息"); return("0"); } PT_XML px = new PT_XML(); XmlNode xmlok = null; XmlDocument xd = new XmlDocument(); try { xd.LoadXml(rtn); xmlok = xd.SelectSingleNode("/root/patients/patient"); } catch { MessageBox.Show("未查询到病人信息"); return("0"); } px.myDictionary["姓名"] = xmlok["patientName"].InnerText; string xb = xmlok["patientSex"].InnerText; if (xb == "1") { xb = "女"; } else if (xb.Trim() == "0") { xb = "男"; } else { xb = ""; } px.myDictionary["性别"] = xb; if (Sslbx.Trim() == "住院号") { px.myDictionary["病人类别"] = "住院"; px.myDictionary["住院号"] = xmlok["visitNo"].InnerText; try { px.myDictionary["送检科室"] = xmlok["admissionDept"].InnerText; } catch { } px.myDictionary["就诊ID"] = xmlok["visitNum"].InnerText; } else { px.myDictionary["病人类别"] = "门诊"; px.myDictionary["门诊号"] = xmlok["visitNo"].InnerText; try { px.myDictionary["送检科室"] = xmlok["cureDept"].InnerText; } catch { } if (Sslbx.Trim() == "卡号") { px.myDictionary["就诊ID"] = Ssbz; } } px.myDictionary["年龄"] = ZGQClass.CsrqToAge(xmlok["patientBirthdate"].InnerText); px.myDictionary["地址"] = xmlok["commPostCode"].InnerText; px.myDictionary["电话"] = xmlok["telephone"].InnerText; px.myDictionary["病人编号"] = xmlok["patientId"].InnerText; px.myDictionary["申请序号"] = ""; px.myDictionary["送检医生"] = ""; px.myDictionary["费别"] = ""; px.myDictionary["临床诊断"] = ""; px.myDictionary["民族"] = ""; px.myDictionary["身份证号"] = xmlok["identityNo"].InnerText; string exep = ""; return(px.rtn_XML(ref exep)); } catch (Exception ee) { MessageBox.Show(ee.Message); return("0"); } #endregion }
//获取门诊病人基本信息 private static string getmzbrxx(string fid, string putcmsg, string debug, int ljfs) { if (debug == "1") { log.WriteMyLog("入参:" + putcmsg); } string getcmsg = ""; string err_msg = ""; bool rtn = false; if (ljfs == 0) { try { rtn = MQ(fid, putcmsg, debug, ref getcmsg); } catch (Exception e1) { MessageBox.Show(e1.Message); return("0"); } } else { EHSBMQWeb.Service ehsb = new LGHISJKZGQ.EHSBMQWeb.Service(); if (weburl.Trim() != "") { ehsb.Url = weburl; } try { rtn = ehsb.GETMQ(fid, putcmsg, ref getcmsg, ref err_msg); } catch (Exception e1) { MessageBox.Show(e1.Message); return("0"); } } if (!rtn) { MessageBox.Show(err_msg); return("0"); } if (debug == "1") { log.WriteMyLog("返回:" + getcmsg); } if (getcmsg.Trim() == "") { MessageBox.Show("提取失败,返回为空"); return("0"); } string RetCon = ""; string RetCode = ""; string bobys = ""; XmlNode xmlok = null; XmlNodeList xmlNL = null; XmlDocument xd = new XmlDocument(); try { xd.LoadXml(getcmsg); xmlok = xd.SelectSingleNode("/ESBEntry/RetInfo"); RetCon = xmlok["RetCon"].InnerText; RetCode = xmlok["RetCode"].InnerText; if (RetCode != "1") { MessageBox.Show(RetCon); return("0"); } xmlNL = xd.SelectNodes("/ESBEntry/MsgInfo/Msg"); foreach (XmlNode xn in xmlNL) { XmlNode xmlok_DATA = null; try { xd.LoadXml(xn.InnerText); xmlok_DATA = xd.SelectSingleNode("/body"); } catch { } bobys = bobys + xmlok_DATA.InnerXml; } } catch (Exception e1) { MessageBox.Show("提取信息异常,解析返回值异常:" + e1.Message); return("0"); } //转成dataset XmlNode xmlok_DATA2 = null; try { xd.LoadXml("<body>" + bobys + "</body>"); xmlok_DATA2 = xd.SelectSingleNode("/body"); } catch (Exception xmlok_e) { MessageBox.Show("解析DATA异常:" + xmlok_e.Message); return("0"); } if (xmlok_DATA2.InnerXml.Trim() == "") { MessageBox.Show("未找到对应的记录!"); return("0"); } DataSet ds1 = new DataSet(); try { StringReader sr = new StringReader(xmlok_DATA2.OuterXml); XmlReader xr = new XmlTextReader(sr); ds1.ReadXml(xr); } catch (Exception eee) { MessageBox.Show("XML转dataset异常:" + eee.Message); return("0"); } if (ds1.Tables[0].Rows.Count <= 0) { MessageBox.Show("未查询到此病人信息"); return("0"); } int xh = 0; string xml = "<?xml version=" + (char)34 + "1.0" + (char)34 + " encoding=" + (char)34 + "gbk" + (char)34 + "?>"; xml = xml + "<LOGENE>"; xml = xml + "<row "; xml = xml + "病人编号=" + (char)34 + ds1.Tables[0].Rows[xh]["SICK_ID"].ToString().Trim() + (char)34 + " "; xml = xml + "就诊ID=" + (char)34 + ds1.Tables[0].Rows[xh]["IC_CARD_ID"].ToString().Trim() + (char)34 + " "; xml = xml + "申请序号=" + (char)34 + "" + (char)34 + " "; xml = xml + "门诊号=" + (char)34 + ds1.Tables[0].Rows[xh]["IC_CARD_ID"].ToString().Trim() + (char)34 + " "; xml = xml + "住院号=" + (char)34 + "" + (char)34 + " "; xml = xml + "病区=" + (char)34 + "" + (char)34 + " "; xml = xml + "床号=" + (char)34 + "" + (char)34 + " "; xml = xml + "姓名=" + (char)34 + ds1.Tables[0].Rows[xh]["NAME"].ToString().Trim() + (char)34 + " "; string xb = ds1.Tables[0].Rows[xh]["SEX"].ToString().Trim(); if (xb == "0") { xb = "男"; } else if (xb == "1") { xb = "女"; } else { xb = ""; } xml = xml + "性别=" + (char)34 + xb + (char)34 + " "; string nl = ZGQClass.CsrqToAge(ds1.Tables[0].Rows[xh]["BIRTHDATE"].ToString().Trim()); xml = xml + "年龄=" + (char)34 + nl + (char)34 + " "; xml = xml + "婚姻=" + (char)34 + "" + (char)34 + " "; xml = xml + "地址=" + (char)34 + ds1.Tables[0].Rows[xh]["COMMUNICATE_ADDRESS"].ToString().Trim() + (char)34 + " "; xml = xml + "电话=" + (char)34 + ds1.Tables[0].Rows[xh]["FAMILY_PHONE"].ToString().Trim() + (char)34 + " "; xml = xml + "身份证号=" + (char)34 + ds1.Tables[0].Rows[xh]["ID_CARD_NO"].ToString().Trim() + (char)34 + " "; xml = xml + "民族=" + (char)34 + ds1.Tables[0].Rows[xh]["NATION"].ToString().Trim() + (char)34 + " "; xml = xml + "职业=" + (char)34 + ds1.Tables[0].Rows[xh]["PROFESSION"].ToString().Trim() + (char)34 + " "; xml = xml + "送检科室=" + (char)34 + "" + (char)34 + " "; xml = xml + "送检医生=" + (char)34 + "" + (char)34 + " "; xml = xml + "收费=" + (char)34 + (char)34 + " "; xml = xml + "标本名称=" + (char)34 + (char)34 + " "; xml = xml + "送检医院=" + (char)34 + "本院" + (char)34 + " "; xml = xml + "医嘱项目=" + (char)34 + "" + (char)34 + " "; xml = xml + "备用1=" + (char)34 + (char)34 + " "; xml = xml + "备用2=" + (char)34 + (char)34 + " "; xml = xml + "费别=" + (char)34 + ds1.Tables[0].Rows[xh]["RATE_TYPE"].ToString().Trim() + (char)34 + " "; xml = xml + "病人类别=" + (char)34 + "门诊" + (char)34 + " "; xml = xml + "/>"; xml = xml + "<临床病史><![CDATA[" + "" + "]]></临床病史>"; xml = xml + "<临床诊断><![CDATA[" + "" + "]]></临床诊断>"; xml = xml + "</LOGENE>"; return(xml); }
//获取病人基本信息 private static string getzybrxx(string fid, string putcmsg, string debug, ref PT_XML pt, int ljfs) { if (debug == "1") { log.WriteMyLog("入参:" + putcmsg); } string getcmsg = ""; string err_msg = ""; bool rtn = false; if (ljfs == 0) { try { rtn = MQ(fid, putcmsg, debug, ref getcmsg); } catch (Exception e1) { MessageBox.Show(e1.Message); return("0"); } } else { EHSBMQWeb.Service ehsb = new LGHISJKZGQ.EHSBMQWeb.Service(); if (weburl.Trim() != "") { ehsb.Url = weburl; } try { rtn = ehsb.GETMQ(fid, putcmsg, ref getcmsg, ref err_msg); } catch (Exception e1) { MessageBox.Show(e1.Message); return("0"); } } if (!rtn) { MessageBox.Show(err_msg); return("0"); } if (debug == "1") { log.WriteMyLog("返回:" + getcmsg); } if (getcmsg.Trim() == "") { MessageBox.Show("提取失败,返回为空"); return("0"); } string RetCon = ""; string Msg = ""; string RetCode = ""; XmlNode xmlok = null; XmlNode xmlok_msg = null; XmlDocument xd = new XmlDocument(); try { xd.LoadXml(getcmsg); xmlok = xd.SelectSingleNode("/ESBEntry/RetInfo"); xmlok_msg = xd.SelectSingleNode("/ESBEntry/MsgInfo"); RetCon = xmlok["RetCon"].InnerText; RetCode = xmlok["RetCode"].InnerText; Msg = xmlok_msg["Msg"].InnerText; } catch (Exception e1) { MessageBox.Show("提取住院信息异常,解析返回值异常:" + e1.Message); return("0"); } if (RetCode != "1") { MessageBox.Show(RetCon); return("0"); } StringReader xmlstr = null; XmlTextReader xmread = null; xmlstr = new StringReader(Msg); xmread = new XmlTextReader(xmlstr); XmlDocument readxml2 = new XmlDocument(); try { readxml2.Load(xmread); } catch (Exception e2) { MessageBox.Show("读XML失败:" + e2.Message); return("0"); } XmlNamespaceManager nsMgr = new XmlNamespaceManager(readxml2.NameTable); nsMgr.AddNamespace("ns", "urn:hl7-org:v3"); XmlNode ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:id", nsMgr); //////姓名 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:patient/ns:name", nsMgr); pt.myDictionary["姓名"] = ppp.InnerText; } catch { } //性别 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:patient/ns:administrativeGenderCode", nsMgr); pt.myDictionary["性别"] = ppp.Attributes["displayName"].Value; } catch { } //出身日期 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:patient/ns:birthTime", nsMgr); pt.myDictionary["出生日期"] = ppp.Attributes["value"].Value; } catch { } ///婚姻\ try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:patient/ns:maritalStatusCode", nsMgr); pt.myDictionary["婚姻"] = ppp.Attributes["displayName"].Value; } catch { } //民族 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:patient/ns:ethnicGroupCode", nsMgr); pt.myDictionary["民族"] = ppp.Attributes["displayName"].Value; } catch { } //////电话 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:telecom", nsMgr); pt.myDictionary["电话"] = ppp.Attributes["value"].Value; } catch { } //地址 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:addr/ns:state", nsMgr); pt.myDictionary["地址"] = ppp.InnerText; } catch { } //身份证 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:patient/ns:id", nsMgr); pt.myDictionary["身份证号"] = ppp.Attributes["extension"].InnerText; } catch { } //年龄 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:patient/ns:age", nsMgr); pt.myDictionary["年龄"] = ppp.Attributes["value"].InnerText + ppp.Attributes["unit"].InnerText; } catch { } //病区 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:componentOf/ns:encompassingEncounter/ns:location/ns:healthCareFacility/ns:serviceProviderOrganization/ns:asOrganizationPartOf/ns:wholeOrganization/ns:asOrganizationPartOf/ns:wholeOrganization/ns:name", nsMgr); pt.myDictionary["病区"] = ppp.InnerText; } catch { } //科室 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:componentOf/ns:encompassingEncounter/ns:location/ns:healthCareFacility/ns:serviceProviderOrganization/ns:asOrganizationPartOf/ns:wholeOrganization/ns:asOrganizationPartOf/ns:wholeOrganization/ns:asOrganizationPartOf/ns:wholeOrganization/ns:name", nsMgr); pt.myDictionary["送检科室"] = ppp.InnerText; } catch { } //医生 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:author/ns:assignedAuthor/ns:assignedPerson/ns:name", nsMgr); pt.myDictionary["送检医生"] = ppp.InnerText; } catch { } //床号 try { ppp = readxml2.SelectSingleNode("/ns:ClinicalDocument/ns:componentOf/ns:encompassingEncounter/ns:location/ns:healthCareFacility/ns:serviceProviderOrganization/ns:asOrganizationPartOf/ns:wholeOrganization/ns:id", nsMgr); pt.myDictionary["床号"] = ppp.Attributes["extension"].Value; } catch { } try { XmlNodeList ppplist = readxml2.SelectNodes("/ns:ClinicalDocument/ns:recordTarget/ns:patientRole/ns:id", nsMgr); foreach (XmlNode ppp2 in ppplist) { if (ppp2.Attributes["root"].Value == "2.16.156.10011.1.12") { pt.myDictionary["住院号"] = ppp2.Attributes["extension"].Value.ToString(); } if (ppp2.Attributes["root"].Value == "2.16.156.10011.1.19") { //就诊卡号 pt.myDictionary["就诊ID"] = ppp2.Attributes["extension"].Value.ToString(); } //if (ppp2.Attributes["root"].Value == "2.16.156.10011.1.13") //{ // //病案号 // pt.myDictionary["病人编号"] = + ppp2.Attributes["extension"].Value.ToString(); //} if (ppp2.Attributes["root"].Value == "2.16.156.10011.1.100") { //padid pt.myDictionary["病人编号"] = ppp2.Attributes["extension"].Value.ToString(); } //if (ppp2.Attributes["root"].Value == "2.16.156.10011.1.13") //{ // //门诊号 // pt.myDictionary["门诊号"]=ppp2.Attributes["extension"].Value.ToString(); //} } //ppplist = readxml2.SelectNodes("/ns:ClinicalDocument/ns:component/ns:structuredBody/ns:component/ns:section/ns:entry/ns:observation", nsMgr); //foreach (XmlNode ppp2 in ppplist) //{ // //住院次数 // if (ppp2["code"].Attributes["code"].Value.ToString() == "DE02.10.090.00") // { // pt.myDictionary["就诊ID"] = ppp2["value"].Attributes["value"].Value.ToString(); // break; // } //} } catch { } string xb = pt.myDictionary["性别"].Trim(); if (xb == "1") { xb = "男"; } else if (xb == "2") { xb = "女"; } pt.myDictionary["性别"] = xb; pt.myDictionary["病人类别"] = "住院"; if (pt.myDictionary["年龄"].Trim() == "") { pt.myDictionary["年龄"] = ZGQClass.CsrqToAge(pt.myDictionary["出生日期"]); } if (pt.myDictionary["姓名"].Trim() == "") { MessageBox.Show("提取数据错误"); return("0"); } string ex = ""; string xml = pt.rtn_XML(ref ex); if (ex.Trim() != "") { log.WriteMyLog(ex); } return(xml); }