Ejemplo n.º 1
0
        // ปุ่มเช็กสิทธิ
        private async void button12_Click(object sender, EventArgs e)
        {
            label2.Text         = "ระบบกำลังตรวจสอบสิทธิ กรุณารอสักครู่...";
            pictureBox1.Visible = true;
            Refresh();

            string         textBoxTest  = textBox1.Text;
            string         hosPtRight   = "";
            string         idcard       = "";
            responseOpcard resultOpcard = new responseOpcard();

            // ตรวจสอบข้อมูลเบื้องต้นจาก HN และเลขบัตรประชาชน
            // ถ้าเป็น hn จะมีขีดกลาง
            if (Regex.IsMatch(textBoxTest, "-", RegexOptions.IgnoreCase))
            {
                Console.WriteLine($"Manual ค้นหาจาก HN {smConfig.searchOpcardUrl}");
                // ตรวจสอบ HN
                string testOpcard = await Task.Run(() => searchFromSmByHn(smConfig.searchOpcardUrl, textBoxTest));

                if (!string.IsNullOrEmpty(testOpcard))
                {
                    resultOpcard = JsonConvert.DeserializeObject <responseOpcard>(testOpcard);
                    if (resultOpcard.opcardStatus == "n")
                    {
                        label2.Text         = resultOpcard.errorMsg;
                        pictureBox1.Visible = false;
                        return;
                    }
                    idcard     = resultOpcard.idcard;
                    hosPtRight = resultOpcard.hosPtRight;
                }
            }
            else
            {
                Console.WriteLine($"Manual ค้นหาจาก idcard {smConfig.searchOpcardUrl}");
                if (textBoxTest.Length != 13)
                {
                    label2.Text         = "หมายเลขบัตรประชาชนไม่ครบ13หลัก\nกรุณาตรวจสอบหมายเลขบัตรของท่านอีกครั้ง";
                    pictureBox1.Visible = false;
                    this.ActiveControl  = textBox1;
                    return;
                }

                string testOpcard = await Task.Run(() => searchFromSm(smConfig.searchOpcardUrl, textBoxTest));

                if (!string.IsNullOrEmpty(testOpcard))
                {
                    resultOpcard = JsonConvert.DeserializeObject <responseOpcard>(testOpcard);
                    if (resultOpcard.opcardStatus == "n")
                    {
                        label2.Text         = resultOpcard.errorMsg;
                        pictureBox1.Visible = false;
                        return;
                    }
                    idcard     = resultOpcard.idcard;
                    hosPtRight = resultOpcard.hosPtRight;
                }
            }
            Console.WriteLine(idcard);
            string moreTxt = "";

            if (resultOpcard.PtRightMain != resultOpcard.PtRightSub)
            {
                label2.Text         = "แจ้งเตือน! : สิทธิหลักและสิทธิรองไม่ตรงกัน กรุณาติดต่อห้องทะเบียนเพื่อทบทวนสิทธิ\n";
                pictureBox1.Visible = false;
                return;
            }

            // ดึง Token จากเครื่องแม่
            Console.WriteLine("ตรวจสอบ Token จากเครื่องห้องทะเบียน");
            // ดึง Token จากเครื่องแม่
            string nhsoContent = await Task.Run(() => LoadRegisterToken($"http://{smConfig.ipUc}/getvalue.php"));

            if (string.IsNullOrEmpty(nhsoContent))
            {
                nhsoContent = await Task.Run(() => LoadRegisterToken($"http://{smConfig.ipUc2}/getvalue.php"));

                if (string.IsNullOrEmpty(nhsoContent))
                {
                    nhsoContent = await Task.Run(() => LoadRegisterToken($"http://{smConfig.ipUc3}/getvalue.php"));
                }
            }

            if (String.IsNullOrEmpty(nhsoContent))
            {
                label2.Text         = "กรุณาติดต่อห้องทะเบียน เพื่อทำการขอรหัส Authentication";
                pictureBox1.Visible = false;
                return;
            }

            string[] nhso        = nhsoContent.Split('#');
            string   staffIdCard = nhso[0];
            string   nhsoToken   = nhso[1];

            // ดึงข้อมูลสิทธิการรักษาจาก สปสช
            try
            {
                Console.WriteLine("ทำการเชื่อมต่อกับ WebService สปสช");
                UCWSTokenP1Client soapClient = new UCWSTokenP1Client();
                pt = new nhsoDataSetC1();
                pt = soapClient.searchCurrentByPID(staffIdCard, nhsoToken, idcard);
                if (pt == null || pt.ws_status == "NHSO-00003")
                {
                    label2.Text         = "TOKEN หมดอายุการใช้งาน ติดต่อทะเบียนเพื่อเปิดใช้ UcAuthentication อีกครั้ง";
                    pictureBox1.Visible = false;
                    return;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                label2.Text         = "ไม่สามารถติดต่อกับ WebService สปสช ได้";
                pictureBox1.Visible = false;
                return;
            }

            // ถ้า maininscl เป็นค่าว่างแสดงว่าไม่มีสิทธิอะไรเลย ให้สงสัยก่อนว่าเป็นเงินสด
            // ถ้ามี new_maininscl แสดงว่ามีสิทธิใหม่เกิดขึ้น เช่น หมดสิทธิ ปกส. แล้วไปใช้ 30บาท หรืออื่นๆ
            if (String.IsNullOrEmpty(pt.maininscl) || !String.IsNullOrEmpty(pt.new_maininscl))
            {
                label2.Text         = "สิทธิหลักของท่านมีการเปลี่ยนแปลง กรุณาติดต่อห้องทะเบียน\nเพื่อทำการตรวจสอบสิทธิ";
                pictureBox1.Visible = false;
                return;
            }

            if ((!String.IsNullOrEmpty(pt.hmain) && pt.hmain != "11512") || (!String.IsNullOrEmpty(pt.new_hmain) && pt.new_hmain != "11512"))
            {
                moreTxt = "แจ้งเตือน! : สถานพยาบาลหลักของท่านไม่ใช่ โรงพยาบาลค่ายสุรศักดิ์มนตรี ท่านจะได้สิทธิเป็นเงินสด";
            }

            Console.WriteLine($"ค้นหาการนัด {smConfig.searchAppointUrl} {idcard}");
            responseAppoint result = new responseAppoint();
            // ตรวจสอบการนัดหมาย
            string content = await Task.Run(() => searchFromSm(smConfig.searchAppointUrl, idcard));

            Console.WriteLine(content);
            string appointContent = "";
            int    appointCount   = 0;
            string appointStatus  = "";

            if (!string.IsNullOrEmpty(content))
            {
                result        = JsonConvert.DeserializeObject <responseAppoint>(content);
                appointStatus = result.appointStatus;
                if (appointStatus == "y")
                {
                    appointContent = result.appointContent;
                    appointCount   = int.Parse(result.appointCount);
                    appoint        = result.appoint;
                }
                else
                {
                    label2.Text         = result.errorMsg;
                    pictureBox1.Visible = false;
                    return;
                }
            }

            //
            string maininscl     = "";
            string maininsclCode = "";

            if (!String.IsNullOrEmpty(pt.maininscl))
            {
                maininsclCode = pt.maininscl;
                maininscl     = $"( { pt.maininscl } ) { pt.maininscl_name }";
            }
            else if (!String.IsNullOrEmpty(pt.new_maininscl))
            {
                maininsclCode = pt.new_maininscl;
                maininscl     = $"( { pt.new_maininscl } ) { pt.new_maininscl_name }";
            }

            string subinscl = "";

            if (!String.IsNullOrEmpty(pt.subinscl))
            {
                subinscl = $"( { pt.subinscl } ) { pt.subinscl_name }";
            }
            else if (!String.IsNullOrEmpty(pt.new_subinscl))
            {
                subinscl = $"( { pt.new_subinscl } ) { pt.new_subinscl_name }";
            }

            string hmain = "";

            if (!String.IsNullOrEmpty(pt.hmain))
            {
                hmain = $"( { pt.hmain } ) { pt.hmain_name }";
            }
            else if (!String.IsNullOrEmpty(pt.new_hmain))
            {
                hmain = $"( { pt.new_hmain } ) { pt.new_hmain_name }";
            }

            Bitmap origin = (Bitmap)Image.FromFile("Images/avatar.png");
            Bitmap Photo1 = new Bitmap(origin, new Size(160, 200));
            Form2  frm    = new Form2();

            frm.fullname = pt.fname + " " + pt.lname;
            frm.idcard   = idcard;

            frm.mainInSclName = maininscl;
            frm.subInSclName  = subinscl;
            frm.hMainName     = hmain;
            frm.personImage   = Photo1;
            frm.ptRight       = maininsclCode;
            frm.hn            = resultOpcard.hn;
            frm.ptname        = resultOpcard.ptname;

            frm.appointStatus  = appointStatus;
            frm.appointContent = appointContent;
            frm.appointCount   = appointCount;
            frm.appoint        = appoint;

            frm.moreTxt = moreTxt;

            frm.hosPtRight = hosPtRight;
            label2.Text    = "";
            frm.ShowDialog();

            this.Close();
        }
Ejemplo n.º 2
0
        public async void UcwsNhso(string idcard, Bitmap Photo1)
        {
            Console.WriteLine("ตรวจสอบ Token จากเครื่องห้องทะเบียน");

            // ดึง Token จากเครื่องแม่
            string nhsoContent = await Task.Run(() => LoadRegisterToken($"http://{smConfig.ipUc}/getvalue.php"));

            if (string.IsNullOrEmpty(nhsoContent))
            {
                nhsoContent = await Task.Run(() => LoadRegisterToken($"http://{smConfig.ipUc2}/getvalue.php"));

                if (string.IsNullOrEmpty(nhsoContent))
                {
                    nhsoContent = await Task.Run(() => LoadRegisterToken($"http://{smConfig.ipUc3}/getvalue.php"));
                }
            }

            if (String.IsNullOrEmpty(nhsoContent))
            {
                label1SetText("กรุณาติดต่อห้องทะเบียน เพื่อทำการขอรหัส Authentication");
                pictureBox1Status(false);
                return;
            }

            string[] nhso        = nhsoContent.Split('#');
            string   staffIdCard = nhso[0];
            string   nhsoToken   = nhso[1];

            // ดึงข้อมูลสิทธิการรักษาจาก สปสช
            try
            {
                Console.WriteLine("ทำการเชื่อมต่อกับ WebService สปสช");
                UCWSTokenP1Client soapClient = new UCWSTokenP1Client();
                pt = new nhsoDataSetC1();
                pt = soapClient.searchCurrentByPID(staffIdCard, nhsoToken, idcard);
                if (pt.ws_status == "NHSO-00003")
                {
                    label1SetText("TOKEN หมดอายุการใช้งาน ติดต่อทะเบียนเพื่อเปิดใช้ UcAuthentication อีกครั้ง");
                    pictureBox1Status(false);
                    return;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                label1SetText("ไม่สามารถติดต่อกับ WebService สปสช ได้");
                pictureBox1Status(false);
                return;
            }


            string moreTxt = "";

            // ถ้า maininscl เป็นค่าว่างแสดงว่าไม่มีสิทธิอะไรเลย ให้สงสัยก่อนว่าเป็นเงินสด
            // ถ้ามี new_maininscl แสดงว่ามีสิทธิใหม่เกิดขึ้น เช่น หมดสิทธิ ปกส. แล้วไปใช้ 30บาท หรืออื่นๆ
            if (String.IsNullOrEmpty(pt.maininscl) || !String.IsNullOrEmpty(pt.new_maininscl))
            {
                label1SetText("รหัสสิทธิหลักของท่านมีการเปลี่ยนแปลง\nกรุณาติดต่อห้องทะเบียน เพื่อทำการทบทวนสิทธิอีกครั้ง");
                pictureBox1Status(false);
                return;
            }

            // แจ้งเตือน
            if ((!String.IsNullOrEmpty(pt.hmain) && pt.hmain != "11512") || (!String.IsNullOrEmpty(pt.new_hmain) && pt.new_hmain != "11512"))
            {
                moreTxt += "แจ้งเตือน! : สถานพยาบาลหลักของท่านไม่ใช่ โรงพยาบาลค่ายสุรศักดิ์มนตรี ท่านจะได้สิทธิเป็นเงินสด \n";
            }

            // ตรวจสอบ HN
            string testOpcard = await Task.Run(() => searchFromSm(smConfig.searchOpcardUrl, idcard));

            responseOpcard resultOpcard = JsonConvert.DeserializeObject <responseOpcard>(testOpcard);

            if (resultOpcard.opcardStatus == "n")
            {
                label1SetText(resultOpcard.errorMsg);
                pictureBox1Status(false);
                return;
            }

            if (resultOpcard.PtRightMain != resultOpcard.PtRightSub)
            {
                label1SetText("แจ้งเตือน! : สิทธิหลัก และสิทธิรอง ไม่ตรงกัน กรุณาติดต่อห้องทะเบียนเพื่อทบทวนสิทธิ");
                pictureBox1Status(false);
                return;
            }
            // ตรวจสิทธิหลักสิทธิรอง

            // ตรวจสอบการนัดหมาย
            Console.WriteLine($"ค้นหาการนัด {smConfig.searchAppointUrl} {idcard}");
            string content = await Task.Run(() => searchFromSm(smConfig.searchAppointUrl, idcard));

            Console.WriteLine(content);
            string appointContent = "";
            int    appointCount   = 0;
            string appointStatus  = "";

            if (!string.IsNullOrEmpty(content))
            {
                responseAppoint result = JsonConvert.DeserializeObject <responseAppoint>(content);
                appointStatus = result.appointStatus;
                if (appointStatus == "y")
                {
                    appointContent = result.appointContent;
                    appointCount   = int.Parse(result.appointCount);
                    appoint        = result.appoint;
                }
                else
                {
                    label1SetText(result.errorMsg);
                    pictureBox1Status(false);
                    return;
                }
            }
            pictureBox1Status(false);

            string maininscl     = "";
            string maininsclCode = "";

            if (!String.IsNullOrEmpty(pt.maininscl))
            {
                maininsclCode = pt.maininscl;
                maininscl     = $"( { pt.maininscl } ) { pt.maininscl_name }";
            }
            else if (!String.IsNullOrEmpty(pt.new_maininscl))
            {
                maininsclCode = pt.new_maininscl;
                maininscl     = $"( { pt.new_maininscl } ) { pt.new_maininscl_name }";
            }

            string subinscl = "";

            if (!String.IsNullOrEmpty(pt.subinscl))
            {
                subinscl = $"( { pt.subinscl } ) { pt.subinscl_name }";
            }
            else if (!String.IsNullOrEmpty(pt.new_subinscl))
            {
                subinscl = $"( { pt.new_subinscl } ) { pt.new_subinscl_name }";
            }

            string hmain = "";

            if (!String.IsNullOrEmpty(pt.hmain))
            {
                hmain = $"( { pt.hmain } ) { pt.hmain_name }";
            }
            else if (!String.IsNullOrEmpty(pt.new_hmain))
            {
                hmain = $"( { pt.new_hmain } ) { pt.new_hmain_name }";
            }

            Form2 frm = new Form2();

            frm.fullname = pt.fname + " " + pt.lname;
            frm.idcard   = idcard;

            frm.mainInSclName = maininscl;
            frm.subInSclName  = subinscl;
            frm.hMainName     = hmain;
            frm.personImage   = Photo1;
            frm.ptRight       = maininsclCode;

            frm.hn     = resultOpcard.hn;
            frm.ptname = resultOpcard.ptname;

            frm.appointStatus  = appointStatus;
            frm.appointContent = appointContent;
            frm.appointCount   = appointCount;
            frm.appoint        = appoint;
            frm.hosPtRight     = resultOpcard.hosPtRight;
            frm.moreTxt        = moreTxt;
            frm.ShowDialog();

            label1SetText("");
        }