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); } }
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); }