//public ActionResult Create(FormCollection collection)
 public ActionResult Create(benhnhan pa, huyetap ha)
 {
     try
     {
         PatientModels pa_model = new PatientModels();
         pa.idbn = StandString.generateBNID(8);
         pa_model.create(pa);
         benhsu bes = new benhsu();
         bes.idbn = pa.idbn;
         bes.idbs = StandString.generateBESID(8);
         BenhsuModels bes_model = new BenhsuModels();
         bes_model.insert(bes);
         HuyetapModels ha_model = new HuyetapModels();
         ha.idhuyetap = bes.idbs;
         ha.idbs      = bes.idbs;
         ha_model.insert(ha);
         return(RedirectToAction("Index"));
     }
     catch
     {
         return(View());
     }
 }
        public ActionResult Import(HttpPostedFileBase uploadFile)
        {
            StringBuilder strValidations = new StringBuilder(string.Empty);

            try
            {
                if (uploadFile.ContentLength > 0)
                {
                    //string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"),
                    //Path.GetFileName(uploadFile.FileName));
                    //uploadFile.SaveAs(filePath);

                    //ExcelDataReader works on binary excel file
                    Stream stream = uploadFile.InputStream;
                    //We need to written the Interface.
                    IExcelDataReader reader = null;
                    if (uploadFile.FileName.EndsWith(".xls"))
                    {
                        //reads the excel file with .xls extension
                        reader = ExcelReaderFactory.CreateBinaryReader(stream);
                    }
                    else if (uploadFile.FileName.EndsWith(".xlsx"))
                    {
                        //reads excel file with .xlsx extension
                        reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                    }
                    else
                    {
                        //Shows error if uploaded file is not Excel file
                        ModelState.AddModelError("File", "This file format is not supported");
                        //return View();
                    }
                    //treats the first row of excel file as Coluymn Names
                    //reader.IsFirstRowAsColumnNames = true;

                    //Adding reader data to DataSet()
                    DataSet result = reader.AsDataSet();
                    reader.Close();

                    //Standardized data

                    var table           = result.Tables[0];
                    var numrow          = table.Rows.Count;
                    var break_firstline = 0;
                    foreach (DataRow row in table.Rows)
                    {
                        if (row[table.Columns[0].ColumnName] != null && !string.IsNullOrEmpty(Convert.ToString(row[table.Columns[0].ColumnName])))
                        {
                            //break first row
                            if (break_firstline > 0)
                            {
                                //hospital
                                benhvien hp = new benhvien();
                                //patient
                                benhnhan pa = new benhnhan();
                                //benh su
                                benhsu bes = new benhsu();
                                //Huyetap
                                huyetap ha = new huyetap();
                                for (int i = 0; i < table.Columns.Count; i++)
                                {
                                    var col = row[table.Columns[i].ColumnName];
                                    if (i == 0)
                                    {
                                        //dau thoi gian
                                    }
                                    else if (i == 1)
                                    {
                                        //benh vien
                                        hp.tenbv = Convert.ToString(row[table.Columns[i].ColumnName]);
                                        hp.idbv  = StandHAModels.generateBVID(8);

                                        //check insert hospital at here
                                        //if exist

                                        //else
                                    }
                                    else if (i == 2)
                                    {
                                        //khoa
                                    }
                                    else if (i == 3)
                                    {
                                        //giuong
                                    }
                                    else if (i == 4)
                                    {
                                        //so luu tru
                                        pa.soluutru = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 5)
                                    {
                                        //ma y te
                                    }
                                    else if (i == 6)
                                    {
                                        //ma benh nhan
                                    }
                                    else if (i == 7)
                                    {
                                        //ho va ten
                                        pa.tenbn = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 8)
                                    {
                                        //sinh ngay
                                        try
                                        {
                                            DateTime d = new DateTime(int.Parse(Convert.ToString(row[table.Columns[i].ColumnName])), 1, 1);
                                            pa.ngaysinh = d;
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 9)
                                    {
                                        //gioi tinh
                                        String gender = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (gender == "nam")
                                        {
                                            pa.gioitinh = true;
                                        }
                                        else if (gender == "nu")
                                        {
                                            pa.gioitinh = false;
                                        }
                                        else
                                        {
                                            pa.gioitinh = true;
                                        }
                                    }
                                    else if (i == 10)
                                    {
                                        //nghe nghiep
                                        pa.nghenghiep = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 11)
                                    {
                                        //dan toc
                                        pa.dantoc = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 12)
                                    {
                                        //dia chi
                                        pa.diachi = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 13)
                                    {
                                        //huyen
                                    }
                                    else if (i == 14)
                                    {
                                        //thanh pho
                                    }
                                    else if (i == 15)
                                    {
                                        //tinh
                                    }
                                    else if (i == 16)
                                    {
                                        //noi lam viec
                                        pa.noilamviec = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 17)
                                    {
                                        //ngay vao vien
                                    }
                                    else if (i == 18)
                                    {
                                        //dien thoai
                                        pa.dienthoai = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 19)
                                    {
                                        //ly do vao vien
                                        ha.HA_I = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 20)
                                    {
                                        //A.Benh su
                                        ha.HA_II_A = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 21)
                                    {
                                        //Bản thân có mắc bệnh đái tháo đường không, rối loạn lipit máu, bệnh mạch vành, bệnh thận, có hút thuốc lá không
                                        string HA_II_B_1 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_II_B_1 == "co")
                                        {
                                            ha.HA_II_B_1 = true;
                                        }
                                        else if (HA_II_B_1 == "khong")
                                        {
                                            ha.HA_II_B_1 = false;
                                        }
                                    }
                                    else if (i == 22)
                                    {
                                        //* Diễn giải mục 1
                                        ha.HA_II_B_1_1 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 23)
                                    {
                                        //2. Có dùng thuốc gì? Thuốc nội tiết, thuốc cường giao cảm, salbutamol, costisol
                                        string HA_II_B_2 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_II_B_2 == "co")
                                        {
                                            ha.HA_II_B_2 = true;
                                        }
                                        else if (HA_II_B_2 == "khong")
                                        {
                                            ha.HA_II_B_2 = false;
                                        }
                                    }
                                    else if (i == 24)
                                    {
                                        //* Diễn giải mục 2
                                        ha.HA_II_B_2_1 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 25)
                                    {
                                        //3. Có thừa cân, béo phì (chiều cao, cân nặng BMI), lối sống ít vận động, ăn uống có thể liên quan đến tăng huyết áp
                                        string HA_II_B_3 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_II_B_3 == "co")
                                        {
                                            ha.HA_II_B_3 = true;
                                        }
                                        else if (HA_II_B_3 == "khong")
                                        {
                                            ha.HA_II_B_3 = false;
                                        }
                                    }
                                    else if (i == 26)
                                    {
                                        //* Diễn giải mục 3
                                        ha.HA_II_B_3_1 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 27)
                                    {
                                        //4. Nếu là nữ có thai hay không?
                                        string HA_II_B_4 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_II_B_4 == "co")
                                        {
                                            ha.HA_II_B_4 = true;
                                        }
                                        else if (HA_II_B_4 == "khong")
                                        {
                                            ha.HA_II_B_4 = false;
                                        }
                                    }
                                    else if (i == 28)
                                    {
                                        //* Diễn giải mục 4
                                        ha.HA_II_B_4_1 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 29)
                                    {
                                        //5. Tuổi xuất hiện cao huyết áp
                                        ha.HA_II_B_5 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 30)
                                    {
                                        //6. Gia đình có ai mắc bệnh mãn tính gì không?
                                        string HA_II_B6 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_II_B6 == "co")
                                        {
                                            ha.HA_II_B_6 = true;
                                        }
                                        else if (HA_II_B6 == "khong")
                                        {
                                            ha.HA_II_B_6 = false;
                                        }
                                    }
                                    else if (i == 31)
                                    {
                                        //* Diễn giải mục 6
                                        ha.HA_II_B_6_1 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 32)
                                    {
                                        //Mạch toàn thân (lần/phút)
                                        try
                                        {
                                            ha.HA_III_1_1 = float.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 33)
                                    {
                                        //Nhiệt độ (độ C)
                                        try
                                        {
                                            ha.HA_III_1_2 = float.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 34)
                                    {
                                        //Huyết áp ngưỡng thấp (mmHg)
                                        try
                                        {
                                            ha.HA_III_1_3_1 = int.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 35)
                                    {
                                        //Huyết áp ngưỡng cao (mmHg)
                                        try
                                        {
                                            ha.HA_III_1_3_1 = int.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 36)
                                    {
                                        //Nhịp thở (lần/phút)
                                        try
                                        {
                                            ha.HA_III_1_4 = int.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 37)
                                    {
                                        //Cân nặng (Kg)
                                        try
                                        {
                                            ha.HA_III_1_5 = int.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 38)
                                    {
                                        //Chiều cao (mét)
                                        try
                                        {
                                            ha.HA_III_1_6 = int.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 39)
                                    {
                                        //2. Khám các bộ phận
                                        ha.HA_III_2 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 40)
                                    {
                                        //- Công thức máu
                                        ha.HA_IV_1 = Convert.ToString(row[table.Columns[i].ColumnName]);
                                    }
                                    else if (i == 41)
                                    {
                                        //Glucose máu
                                        try
                                        {
                                            ha.HA_IV_2 = float.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 42)
                                    {
                                        //Ure
                                        try
                                        {
                                            ha.HA_IV_3 = float.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 43)
                                    {
                                        //CRP
                                        try
                                        {
                                            ha.HA_IV_4 = float.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 44)
                                    {
                                        //Acid uric
                                        try
                                        {
                                            ha.HA_IV_5 = float.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 45)
                                    {
                                        //Creatinin
                                        try
                                        {
                                            ha.HA_IV_6 = float.Parse(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        }
                                        catch
                                        {
                                        }
                                    }
                                    else if (i == 46)
                                    {
                                        //7. Cholesteol bao nhiêu
                                        string HA_IV_7 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_IV_7 == "cao")
                                        {
                                            ha.HA_IV_7 = true;
                                        }
                                        else if (HA_IV_7 == "binhthuong")
                                        {
                                            ha.HA_IV_7 = false;
                                        }
                                    }
                                    else if (i == 47)
                                    {
                                        //* Diễn giải mục 7
                                    }
                                    else if (i == 48)
                                    {
                                        //8. Triglycerid bao nhiêu :
                                        string HA_IV_8 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_IV_8 == "cao")
                                        {
                                            ha.HA_IV_8 = true;
                                        }
                                        else if (HA_IV_8 == "binhthuong")
                                        {
                                            ha.HA_IV_8 = false;
                                        }
                                    }
                                    else if (i == 50)
                                    {
                                        //* Diễn giải mục 8
                                    }
                                    else if (i == 51)
                                    {
                                        //9. HDL-C bao nhiêu
                                        string HA_IV_9 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_IV_9 == "binhthuong")
                                        {
                                            ha.HA_IV_9 = true;
                                        }
                                        else if (HA_IV_9 == "khongbinhthuong")
                                        {
                                            ha.HA_IV_9 = false;
                                        }
                                    }
                                    else if (i == 52)
                                    {
                                        //* Diễn giải mục 9
                                    }
                                    else if (i == 53)
                                    {
                                        //10. LDL-C bao nhiêu
                                        string HA_IV_10 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_IV_10 == "caohonbinhthuong")
                                        {
                                            ha.HA_IV_10 = true;
                                        }
                                        else if (HA_IV_10 == "binhthuong")
                                        {
                                            ha.HA_IV_10 = false;
                                        }
                                    }
                                    else if (i == 54)
                                    {
                                        //* Diễn giải mục 10
                                    }
                                    else if (i == 55)
                                    {
                                        //11 a. XN: Điện giải đồ Na
                                        string HA_IV_11 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_IV_11 == "khonglam")
                                        {
                                            ha.HA_IV_11 = false;
                                        }
                                        else
                                        {
                                            ha.HA_IV_11 = true;
                                        }
                                    }
                                    else if (i == 56)
                                    {
                                        //11 b. XN: Điện giải đồ Kali
                                    }
                                    else if (i == 57)
                                    {
                                        //* Diễn giải mục 11b Kali bao nhiêu
                                    }
                                    else if (i == 58)
                                    {
                                        //12. X-quang tim phổi
                                        string HA_IV_12 = StandString.FinalStandString(Convert.ToString(row[table.Columns[i].ColumnName]));
                                        if (HA_IV_12 == "binhthuong")
                                        {
                                            ha.HA_IV_12 = true;
                                        }
                                        else if (HA_IV_12 == "khongbinhthuong")
                                        {
                                            ha.HA_IV_12 = false;
                                        }
                                    }
                                    else if (i == 59)
                                    {
                                        //* Diễn giải mục 12
                                    }
                                }
                                System.Diagnostics.Debug.WriteLine(hp.tenbv);

                                //Compare let insert data to db
                                HospitalModels  hphandler = new HospitalModels();
                                List <benhvien> lshp      = hphandler.getAll();
                                benhvien        check_hp  = null;
                                for (int i = 0; i < lshp.Count; i++)
                                {
                                    benhvien hp_in_db = lshp[i];
                                    //System.Diagnostics.Debug.WriteLine(StandString.FinalStandString(hp_in_db.tenbv));
                                    if (StandString.FinalStandString(hp_in_db.tenbv).Contains(StandString.FinalStandString(hp.tenbv)))
                                    {
                                        check_hp = hp_in_db;
                                    }
                                }
                                if (check_hp != null)
                                {
                                    pa.idbv = check_hp.idbv;
                                }
                                else
                                {
                                    HospitalModels hpm = new HospitalModels();
                                    hpm.insert(hp);
                                    pa.idbv = hp.idbv;
                                }
                                pa.idbn      = StandString.generateBNID(8);
                                bes.idbn     = pa.idbn;
                                bes.idbs     = StandString.generateBESID(8);
                                ha.idbs      = bes.idbs;
                                ha.idhuyetap = bes.idbs;
                                //insert to db
                                PatientModels pa_model = new PatientModels();
                                pa_model.create(pa);
                                BenhsuModels bes_model = new BenhsuModels();
                                bes_model.insert(bes);
                                HuyetapModels ha_model = new HuyetapModels();
                                ha_model.insert(ha);
                            }
                            break_firstline++;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            return(View());
        }