public static string bg01(string brlb, string brbh, string blh, string Debug, string hisblh, string xb, string bgrq, string yzid, string sdrq, string shys) { func.LoadDll("hisinterface.dll"); func.LoadFun("Init"); //func.LoadFun("Initconn"); StringBuilder dllconn = new StringBuilder(""); StringBuilder S1 = new StringBuilder("JB01"); string inxml = "<?xml version=" + (char)34 + "1.0" + (char)34 + " encoding=" + (char)34 + "GB2312" + (char)34 + " standalong=" + (char)34 + "yes" + (char)34 + "?>"; inxml = inxml + "<DATAPACKET Version=" + (char)34 + "2.0" + (char)34 + ">"; inxml = inxml + "<METADATA>"; inxml = inxml + "<FIELDS>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "repno" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "32" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "reqno" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "10" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "syxh" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "10" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "patid" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "10" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "blh" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "24" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "cardno" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "32" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "hzxm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "12" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "sex" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "4" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "age" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "3" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "sjksdm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "6" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "sjksmc" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "32" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "bqdm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "6" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "bqmc" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "32" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "cwdm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "12" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "sjysdm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "6" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "sjysxm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "12" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "sjrq" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "replb" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "4" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "replbmc" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "32" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "reprq" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "xtbz" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "jcbw" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "200" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "jcysdm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "jcysxm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "jcksdm" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "jcksmc" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "pubtime" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "16" + (char)34 + "/>"; inxml = inxml + "</FIELDS>"; inxml = inxml + "<PARAMS CHANGE_LOG=" + (char)34 + "1 0 4" + (char)34 + "/>"; inxml = inxml + "</METADATA>"; inxml = inxml + "<ROWDATA>"; inxml = inxml + "<ROW RowState=" + (char)34 + "4" + (char)34 + " "; inxml = inxml + "repno=" + (char)34 + blh + (char)34 + " "; inxml = inxml + "reqno=" + (char)34 + "0" + (char)34 + " "; if (brlb == "1") { inxml = inxml + "syxh=" + (char)34 + brbh + (char)34 + " "; inxml = inxml + "patid=" + (char)34 + yzid + (char)34 + " "; inxml = inxml + "cardno=" + (char)34 + (char)34 + " "; } else { inxml = inxml + "syxh=" + (char)34 + "0" + (char)34 + " "; inxml = inxml + "patid=" + (char)34 + brbh + (char)34 + " "; inxml = inxml + "cardno=" + (char)34 + yzid + (char)34 + " "; } inxml = inxml + "blh=" + (char)34 + hisblh + (char)34 + " "; inxml = inxml + "hzxm=" + (char)34 + brxm + (char)34 + " "; inxml = inxml + "sex=" + (char)34 + xb + (char)34 + " "; inxml = inxml + "age=" + (char)34 + (char)34 + " "; inxml = inxml + "sjksdm=" + (char)34 + (char)34 + " "; inxml = inxml + "sjksmc=" + (char)34 + (char)34 + " "; inxml = inxml + "bqdm=" + (char)34 + (char)34 + " "; inxml = inxml + "bqmc=" + (char)34 + (char)34 + " "; inxml = inxml + "cwdm=" + (char)34 + (char)34 + " "; inxml = inxml + "sjysdm=" + (char)34 + (char)34 + " "; inxml = inxml + "sjysxm=" + (char)34 + (char)34 + " "; inxml = inxml + "sjrq=" + (char)34 + sdrq.Replace("-", "") + (char)34 + " "; inxml = inxml + "replb=" + (char)34 + "BL" + (char)34 + " "; inxml = inxml + "replbmc=" + (char)34 + "病理" + (char)34 + " "; inxml = inxml + "reprq=" + (char)34 + bgrq.Replace("-", "") + (char)34 + " "; inxml = inxml + "xtbz=" + (char)34 + brlb + (char)34 + " "; inxml = inxml + "jcbw=" + (char)34 + (char)34 + " "; inxml = inxml + "jcysdm=" + (char)34 + (char)34 + " "; inxml = inxml + "jcysxm=" + (char)34 + shys + (char)34 + " "; inxml = inxml + "jcksdm=" + (char)34 + (char)34 + " "; inxml = inxml + "jcksmc=" + (char)34 + (char)34 + " "; inxml = inxml + "pubtime=" + (char)34 + (char)34 + " "; inxml = inxml + "pubtime=" + (char)34 + (char)34 + "/>"; inxml = inxml + "</ROWDATA>"; inxml = inxml + "</DATAPACKET>"; StringBuilder S2 = new StringBuilder(inxml); StringBuilder S3 = new StringBuilder(65536); if (msg == "1") { log.WriteMyLog("回传信息:" + inxml); } object[] Parameters = new object[] { dllconn }; // 实参为 0 Type[] ParameterTypes = new Type[] { typeof(StringBuilder) }; // 实参类型为 int DLLWrapper.ModePass[] themode = new DLLWrapper.ModePass[] { DLLWrapper.ModePass.ByValue }; // 传送方式为值传 Type Type_Return = typeof(int); // 返回类型为 int int xx = 0; try { xx = (int)func.Invoke(Parameters, ParameterTypes, themode, Type_Return); } catch { MessageBox.Show("连接HIS数据库失败!"); if (Debug == "1") { log.WriteMyLog("连接HIS数据库失败!"); } // func.UnLoadDll(); return("0"); } if (xx == 0) { func.LoadFun("SendEmr"); Parameters = new object[] { "BG01", S2, S3 }; // 实参为 3 ParameterTypes = new Type[] { typeof(String), typeof(StringBuilder), typeof(StringBuilder) }; // 实参类型为 pchar themode = new DLLWrapper.ModePass[] { DLLWrapper.ModePass.ByValue, DLLWrapper.ModePass.ByValue, DLLWrapper.ModePass.ByValue }; // 传送方式为值传 xx = (int)func.Invoke(Parameters, ParameterTypes, themode, Type_Return); } else { MessageBox.Show("连接HIS数据库失败!"); if (Debug == "1") { log.WriteMyLog("连接HIS数据库失败!"); } //func.UnLoadDll(); return("0"); } if (xx == 0) { //func.LoadDll("UnInit"); //Parameters = new object[] { }; // 实参为 0 //ParameterTypes = new Type[] { }; // 实参类型为 pchar //themode = new DLLWrapper.ModePass[] { }; // 传送方式为值传 //func.Invoke(Parameters, ParameterTypes, themode, Type_Return); func.UnLoadDll(); return(S3.ToString()); } else { MessageBox.Show("病理号回写HIS失败!"); if (Debug == "1") { log.WriteMyLog(S3.ToString()); } func.UnLoadDll(); return("0"); } // 弹出提示框,显示调用 myfun.Invoke 方法的结果,即调用 count 函数 }
public static string jb01(string brlb, string codetype, string code, string Debug) { try { func.LoadDll("Ris_His_Interface.dll"); func.LoadFun("Init"); } catch (Exception dd) { MessageBox.Show("加载动态库出错!" + dd.ToString()); } //disdllconn uninit = (disdllconn)loaddll.InvokeMethod("UnInit", typeof(disdllconn)); StringBuilder dllconn = new StringBuilder(""); StringBuilder S1 = new StringBuilder("JB01"); string inxml = "<?xml version=" + (char)34 + "1.0" + (char)34 + " encoding=" + (char)34 + "GB2312" + (char)34 + " standalong=" + (char)34 + "yes" + (char)34 + "?>"; inxml = inxml + "<DATAPACKET Version=" + (char)34 + "2.0" + (char)34 + ">"; inxml = inxml + "<METADATA>"; inxml = inxml + "<FIELDS>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "brlb" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "10" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "codetype" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "10" + (char)34 + "/>"; inxml = inxml + "<FIELD attrname=" + (char)34 + "code" + (char)34 + " fieldtype=" + (char)34 + "string" + (char)34 + " WIDTH=" + (char)34 + "20" + (char)34 + "/>"; inxml = inxml + "</FIELDS>"; inxml = inxml + "<PARAMS CHANGE_LOG=" + (char)34 + "1 0 4" + (char)34 + "/>"; inxml = inxml + "</METADATA>"; inxml = inxml + "<ROWDATA>"; inxml = inxml + "<ROW RowState=" + (char)34 + "4" + (char)34 + " "; inxml = inxml + "brlb=" + (char)34 + brlb + (char)34 + " "; inxml = inxml + "codetype=" + (char)34 + codetype + (char)34 + " "; inxml = inxml + "code=" + (char)34 + code + (char)34 + "/>"; inxml = inxml + "</ROWDATA>"; inxml = inxml + "</DATAPACKET>"; //MessageBox.Show("传入HIS的字符串:"+inxml); StringBuilder S2 = new StringBuilder(inxml); StringBuilder S3 = new StringBuilder(65536); object[] Parameters = new object[] { dllconn }; // 实参为 0 Type[] ParameterTypes = new Type[] { typeof(StringBuilder) }; // 实参类型为 int DLLWrapper.ModePass[] themode = new DLLWrapper.ModePass[] { DLLWrapper.ModePass.ByValue }; // 传送方式为值传 Type Type_Return = typeof(int); // 返回类型为 int int xx = 0; try { xx = (int)func.Invoke(Parameters, ParameterTypes, themode, Type_Return); } catch { MessageBox.Show("连接HIS数据库失败!"); if (Debug == "1") { log.WriteMyLog("连接HIS数据库失败!"); } if (f.ReadInteger("savetohis", "unload", 1) != 0) { } else { func.UnLoadDll(); } return("0"); } if (xx == 0) { try { func.LoadFun("SendEmr"); Parameters = new object[] { "JB01", S2, S3 }; // 实参为 3 ParameterTypes = new Type[] { typeof(String), typeof(StringBuilder), typeof(StringBuilder) }; // 实参类型为 pchar themode = new DLLWrapper.ModePass[] { DLLWrapper.ModePass.ByValue, DLLWrapper.ModePass.ByValue, DLLWrapper.ModePass.ByValue }; // 传送方式为值传 xx = (int)func.Invoke(Parameters, ParameterTypes, themode, Type_Return); } catch (Exception e1) { MessageBox.Show("传入字符串格式不对!" + e1); } } else { MessageBox.Show("连接HIS数据库失败!"); if (Debug == "1") { log.WriteMyLog("连接HIS数据库失败!"); } if (f.ReadInteger("savetohis", "unload", 1) != 0) { } else { func.UnLoadDll(); } return("0"); } if (xx == 0) { //func.LoadDll("UnInit"); //Parameters = new object[] { }; // 实参为 0 //ParameterTypes = new Type[] { }; // 实参类型为 pchar //themode = new DLLWrapper.ModePass[] { }; // 传送方式为值传 //func.Invoke(Parameters, ParameterTypes, themode, Type_Return); //MessageBox.Show("1"); // uninit(); if (f.ReadInteger("savetohis", "unload", 1) != 0) { } else { func.UnLoadDll(); } //MessageBox.Show(S3.ToString()); return(S3.ToString()); } else { MessageBox.Show("未查询到病人信息!"); if (Debug == "1") { log.WriteMyLog(S3.ToString()); } // uninit(); if (f.ReadInteger("savetohis", "unload", 1) != 0) { } else { func.UnLoadDll(); } return("0"); } // 弹出提示框,显示调用 myfun.Invoke 方法的结果,即调用 count 函数 }