Exemplo n.º 1
0
        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 函数
        }
Exemplo n.º 2
0
        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 函数
        }