Exemple #1
0
        public static string[] GetDanhSachBNKB(Hospital _Data, int mabn, int makp)
        {
            string[] arrTT = new string[5] {
                "", "", "", "", ""
            };
            var kbcd = (from bnkb in _Data.BNKBs.Where(p => p.MaBNhan == mabn).Where(p => p.MaKP == makp) select new { bnkb.MaICD, bnkb.ChanDoan, bnkb.MaKP, bnkb.Buong, bnkb.Giuong, bnkb.BenhKhac, bnkb.IDKB }).OrderByDescending(p => p.IDKB).ToList();

            if (kbcd.Count > 0)
            {
                arrTT[0] = kbcd.First().MaICD;
                arrTT[1] = ICDProvider.GetICDstr(kbcd.First().ChanDoan + ";" + kbcd.First().BenhKhac);
                arrTT[2] = kbcd.First().Buong == null ? "" : kbcd.First().Buong;
                arrTT[3] = kbcd.First().Giuong == null ? "" : kbcd.First().Giuong;
            }
            var qkp = (from kp in _Data.KPhongs
                       where (kp.MaKP == (makp))
                       select new { kp.TenKP }).ToList();

            if (qkp.Count > 0)
            {
                arrTT[4] = qkp.First().TenKP;
            }
            return(arrTT);
        }
 public static bool LuuVaXoaRaVienCu(Hospital _data, int _mabn, DateTime dtNgayTT, string Luu_Xoa, int RaChuyenVien)
 {
     try
     {
         var ktrvien = _data.RaViens.Where(p => p.MaBNhan == _mabn).ToList();
         if (Luu_Xoa == "Luu")
         {
             var bnkb = _data.BNKBs.Where(p => p.MaBNhan == _mabn).OrderByDescending(p => p.IDKB).ToList();
             if (ktrvien.Count <= 0)
             {
                 if (bnkb.Count > 0)
                 {
                     string[] maicd = new string[6] {
                         "", "", "", "", "", "0"
                     };
                     maicd = ICDProvider.getMaICDarr(_data, _mabn, Common.GetICD);
                     DateTime _ngayvao = dtNgayTT;
                     if (bnkb.Last().NgayKham != null)
                     {
                         _ngayvao = bnkb.Last().NgayKham.Value;
                     }
                     else
                     {
                         _ngayvao = dtNgayTT.AddMinutes(-1);
                     }
                     TimeSpan ts = dtNgayTT - _ngayvao;
                     if (ts.TotalMinutes < 1)
                     {
                         //MessageBox.Show("Ngày giờ ra viện: " + dtNgayTT.Tostring() + " phải > ngày giờ vào viện: " + _ngayvao.Tostring());
                         return(false);
                     }
                     RaVien _ravien = new RaVien();
                     _ravien.MaKP     = string.IsNullOrEmpty(maicd[2]) ? 0 : Convert.ToInt32(maicd[2]);
                     _ravien.MaICD    = maicd[0];
                     _ravien.ChanDoan = maicd[1];
                     _ravien.MaCK     = Convert.ToInt16(maicd[5]);
                     if (bnkb.First().PhuongAn != null && bnkb.First().PhuongAn == 2)
                     {
                         _ravien.Status = 1;
                     }
                     else
                     {
                         _ravien.Status = 2;
                     }
                     // kiểm tra lại số ngày điều trị
                     int songaydt = 11;// FormNhap.frm_Ravien.getDaysOfStay(_mabn, _ngayvao, dtNgayTT);
                     // doi voi benh nhan ngoai tru, dt ngoai tru = ngay ra - ngay vao, quynv yeu cau
                     if (songaydt > 1)
                     {
                         songaydt = songaydt - 1;
                     }
                     _ravien.SoNgaydt = 1;
                     _ravien.NgayRa   = dtNgayTT;
                     _ravien.MaBNhan  = _mabn;
                     _ravien.NgayVao  = _ngayvao;
                     _data.RaViens.Add(_ravien);
                     _data.SaveChanges();
                     try
                     {
                         BenhNhanProvider.SetStatus(_mabn, 2);
                     }
                     catch { }
                 }
                 else
                 {
                     return(false);
                 }
             }
         }
         if (Luu_Xoa == "Xoa")
         {
             try
             {
                 var xoa = _data.RaViens.Single(p => p.MaBNhan == _mabn);
                 _data.RaViens.Remove(xoa);
                 _data.SaveChanges();
                 var qcls = _data.CLS.Where(p => p.MaBNhan == _mabn).ToList();
                 if (qcls.Count == 0)
                 {
                     BenhNhanProvider.SetStatus(_mabn, 1);// bệnh nhân đã khám
                 }
                 else
                 {
                     BenhNhanProvider.SetStatus(_mabn, 5);// bệnh nhân đã có kqCLS
                 }
             }
             catch (Exception)
             {
                 return(false);
             }
         }
         return(true);
     }
     catch
     {
         //MessageBox.Show("Lỗi tạo ra viện: " + ex.Message);
         return(false);
     }
 }
Exemple #3
0
        public static string[] getMaICDarr(Hospital _data, int _mabn, int _kieu)
        {
            string[] maicd = new string[6] {
                "", "", "", "", "", "0"
            };

            var a = _data.BNKBs.Where(p => p.MaBNhan == _mabn).OrderByDescending(p => p.IDKB).ToList();

            if (a.Count > 0)
            {
                List <string> l_ICD = new List <string>();
                List <string> l_chandoan = new List <string>();
                string        makp = "", mack = "0", ngaykham = "";

                switch (_kieu)
                {
                case 0:
                    int idmax = a.Max(p => p.IDKB);
                    foreach (var b in a.Where(p => p.IDKB == idmax))
                    {
                        if (!string.IsNullOrEmpty(b.MaICD))
                        {
                            l_ICD.Add(b.MaICD);
                        }
                        if (!string.IsNullOrEmpty(b.MaICD2))
                        {
                            l_ICD.Add(b.MaICD2);
                        }
                        if (!string.IsNullOrEmpty(b.ChanDoan))
                        {
                            l_chandoan.Add(b.ChanDoan);
                        }
                        if (!string.IsNullOrEmpty(b.BenhKhac))
                        {
                            l_chandoan.Add(b.BenhKhac);
                        }
                        makp     = b.MaKP.ToString();
                        mack     = b.MaCK.ToString();
                        ngaykham = b.NgayKham.ToString();
                    }
                    l_ICD      = l_ICD.Distinct().ToList();
                    l_chandoan = l_chandoan.Distinct().ToList();

                    maicd[0] = string.Join(";", l_ICD);
                    maicd[1] = string.Join(";", l_chandoan);
                    maicd[2] = makp;
                    maicd[3] = ngaykham;
                    maicd[4] = "";
                    maicd[5] = mack;
                    break;

                case 1:
                    int idmin = a.Min(p => p.IDKB);
                    foreach (var b in a.Where(p => p.IDKB == idmin))
                    {
                        if (!string.IsNullOrEmpty(b.MaICD))
                        {
                            l_ICD.Add(b.MaICD);
                        }
                        if (!string.IsNullOrEmpty(b.MaICD2))
                        {
                            l_ICD.Add(b.MaICD2);
                        }
                        if (!string.IsNullOrEmpty(b.ChanDoan))
                        {
                            l_chandoan.Add(b.ChanDoan);
                        }
                        if (!string.IsNullOrEmpty(b.BenhKhac))
                        {
                            l_chandoan.Add(b.BenhKhac);
                        }
                        makp     = b.MaKP.ToString();
                        mack     = b.MaCK.ToString();
                        ngaykham = b.NgayKham.ToString();
                    }
                    l_ICD      = l_ICD.Distinct().ToList();
                    l_chandoan = l_chandoan.Distinct().ToList();
                    maicd[0]   = string.Join(";", l_ICD);
                    maicd[1]   = string.Join(";", l_chandoan);

                    break;

                case 2:
                    int idmaxfull = a.Max(p => p.IDKB);

                    foreach (var b in a.Where(p => p.IDKB == idmaxfull))
                    {
                        if (!string.IsNullOrEmpty(b.MaICD))
                        {
                            l_ICD.Add(b.MaICD);
                        }
                        if (!string.IsNullOrEmpty(b.MaICD2))
                        {
                            l_ICD.Add(b.MaICD2);
                        }
                        makp     = b.MaKP.ToString();
                        mack     = b.MaCK.ToString();
                        ngaykham = b.NgayKham.ToString();
                    }
                    foreach (var b in a)
                    {
                        if (!string.IsNullOrEmpty(b.ChanDoan))
                        {
                            l_chandoan.Add(b.ChanDoan);
                        }
                        if (!string.IsNullOrEmpty(b.BenhKhac))
                        {
                            l_chandoan.Add(b.BenhKhac);
                        }
                    }
                    l_ICD      = l_ICD.Distinct().ToList();
                    l_chandoan = l_chandoan.Distinct().ToList();
                    maicd[0]   = string.Join(";", l_ICD);
                    maicd[1]   = string.Join(";", l_chandoan);

                    break;

                case 3:
                    int idminfull = a.Min(p => p.IDKB);

                    foreach (var b in a.Where(p => p.IDKB == idminfull))
                    {
                        if (!string.IsNullOrEmpty(b.MaICD))
                        {
                            l_ICD.Add(b.MaICD);
                        }
                        if (!string.IsNullOrEmpty(b.MaICD2))
                        {
                            l_ICD.Add(b.MaICD2);
                        }
                        makp     = b.MaKP.ToString();
                        mack     = b.MaCK.ToString();
                        ngaykham = b.NgayKham.ToString();
                    }
                    a = a.OrderBy(p => p.IDKB).ToList();
                    foreach (var b in a)
                    {
                        if (!string.IsNullOrEmpty(b.ChanDoan))
                        {
                            l_chandoan.Add(b.ChanDoan);
                        }
                        if (!string.IsNullOrEmpty(b.BenhKhac))
                        {
                            l_chandoan.Add(b.BenhKhac);
                        }
                    }
                    l_ICD      = l_ICD.Distinct().ToList();
                    l_chandoan = l_chandoan.Distinct().ToList();
                    maicd[0]   = string.Join(";", l_ICD);
                    maicd[1]   = string.Join(";", l_chandoan);

                    break;

                case 4:

                    List <string> ICDfull       = new List <string>();
                    List <string> _chandoanfull = new List <string>();
                    foreach (var b in a)
                    {
                        if (!string.IsNullOrEmpty(b.MaICD))
                        {
                            ICDfull.Add(b.MaICD);
                        }
                        if (!string.IsNullOrEmpty(b.MaICD2))
                        {
                            List <string> lmaICD2 = b.MaICD2.Split(';').ToList();
                            foreach (string maicd2 in lmaICD2)
                            {
                                ICDfull.Add(maicd2.Trim());
                            }
                        }
                        // ICDfull.Add(b.MaICD2);
                        if (!string.IsNullOrEmpty(b.ChanDoan))
                        {
                            _chandoanfull.Add(b.ChanDoan);
                        }
                        if (!string.IsNullOrEmpty(b.BenhKhac))
                        {
                            List <string> lchandoan2 = b.BenhKhac.Split(';').ToList();
                            foreach (string chandoan2 in lchandoan2)
                            {
                                _chandoanfull.Add(chandoan2.Trim());
                            }
                        }
                        //if (!string.IsNullOrEmpty(b.BenhKhac))
                        //    _chandoanfull.Add(b.BenhKhac);
                    }
                    ICDfull       = ICDfull.Distinct().ToList();
                    mack          = a.First().MaCK.ToString();
                    _chandoanfull = _chandoanfull.Distinct().ToList();
                    maicd[0]      = string.Join(";", ICDfull);
                    maicd[1]      = string.Join(";", _chandoanfull);
                    makp          = a.First().MaKP.ToString();
                    ngaykham      = a.First().NgayKham.Value.ToString();
                    mack          = a.First().MaCK.ToString();
                    break;

                case 5:     // lấy tất cả các ICD, Chẩn đoán cuối cùng làm chính

                    List <string> ICDfull5       = new List <string>();
                    List <string> _chandoanfull5 = new List <string>();
                    foreach (var b in a)
                    {
                        if (!string.IsNullOrEmpty(b.MaICD))
                        {
                            ICDfull5.Add(b.MaICD);
                        }
                        if (!string.IsNullOrEmpty(b.MaICD2))
                        {
                            List <string> lmaICD2 = b.MaICD2.Split(';').ToList();
                            foreach (string maicd2 in lmaICD2)
                            {
                                ICDfull5.Add(maicd2.Trim());
                            }
                            // ICDfull5.Add(b.MaICD2);
                        }
                    }
                    _chandoanfull5.Add(a.First().ChanDoan);
                    _chandoanfull5.Add(a.First().BenhKhac);
                    ICDfull5       = ICDfull5.Distinct().ToList();
                    _chandoanfull5 = _chandoanfull5.Distinct().ToList();
                    maicd[0]       = string.Join(";", ICDfull5);
                    maicd[1]       = string.Join(";", _chandoanfull5);
                    makp           = a.First().MaKP.ToString();
                    ngaykham       = a.First().NgayKham.Value.ToString();
                    mack           = a.First().MaCK.ToString();
                    break;
                }
                maicd[0] = ICDProvider.GetICDstr(maicd[0]);
                maicd[1] = ICDProvider.GetICDstr(maicd[1]);
                maicd[2] = makp;
                maicd[3] = ngaykham;
                maicd[4] = "";
                maicd[5] = mack;
            }
            return(maicd);
        }