public static void TinhPhanTramBHYT(NoitruPhanbuonggiuong objNoitruPhanbuonggiuong, KcbLichsuDoituongKcb objLichsu, decimal PtramBHYT) { try { decimal BHYT_PTRAM_TRAITUYENNOITRU = Utility.DecimaltoDbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_PTRAM_TRAITUYENNOITRU", "0", false), 0m); if (Utility.Int32Dbnull(objNoitruPhanbuonggiuong.TrongGoi, 0) == 1) { objNoitruPhanbuonggiuong.BhytChitra = 0;// Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * PtramBHYT / 100; objNoitruPhanbuonggiuong.BnhanChitra = 0; } else//Ngoài gói { if (objNoitruPhanbuonggiuong.TuTuc == 1) { objNoitruPhanbuonggiuong.BhytChitra = 0; objNoitruPhanbuonggiuong.BnhanChitra = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0); } else { decimal BHCT = 0m; if (objLichsu.DungTuyen == 1) { BHCT = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc, 0) / 100); } else { if (objLichsu.TrangthaiNoitru <= 0) BHCT = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); else//Nội trú cần tính=đơn giá * % đầu thẻ * % tuyến BHCT = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc, 0) / 100) * (BHYT_PTRAM_TRAITUYENNOITRU / 100); } objNoitruPhanbuonggiuong.BhytChitra = BHCT;// Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * PtramBHYT / 100; objNoitruPhanbuonggiuong.BnhanChitra = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) - BHCT; } } } catch (Exception) { // throw; } }
public static void PtramBHYTDacBiet(KcbChidinhclsChitiet objChidinhChitiet, KcbLichsuDoituongKcb objLichsu, int paymentTypeId, ref bool bExist) { bExist = false; string isDungTuyen = "DT"; DmucDoituongkcb objectType = DmucDoituongkcb.FetchByID(objLichsu.IdDoituongKcb); if (objectType != null) { switch (objectType.MaDoituongKcb) { case "BHYT": if (Utility.Int32Dbnull(objLichsu.DungTuyen, "0") == 1) { isDungTuyen = "DT"; } else { isDungTuyen = "TT"; } break; default: isDungTuyen = "KHAC"; break; } } SqlQuery sqlQuery = new Select().From(DmucBhytChitraDacbiet.Schema) .Where(DmucBhytChitraDacbiet.Columns.IdDichvuChitiet).IsEqualTo(objChidinhChitiet.IdChitietchidinh) .And(DmucBhytChitraDacbiet.Columns.MaLoaithanhtoan).IsEqualTo(paymentTypeId) .And(DmucBhytChitraDacbiet.Columns.DungtuyenTraituyen).IsEqualTo(isDungTuyen) .And(DmucBhytChitraDacbiet.Columns.MaDoituongKcb).IsEqualTo(objLichsu.MaDoituongKcb); var objDetailPtramBhyt = sqlQuery.ExecuteSingle <DmucBhytChitraDacbiet>(); if (objDetailPtramBhyt != null) { objChidinhChitiet.IdLoaichidinh = 1; objChidinhChitiet.BhytChitra = Gia_BHYT(objDetailPtramBhyt.TileGiam, Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0)); objChidinhChitiet.BnhanChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) - objChidinhChitiet.BhytChitra; objChidinhChitiet.PtramBhyt = Utility.DecimaltoDbnull(objDetailPtramBhyt.TileGiam, 0); objChidinhChitiet.LoaiChietkhau = 1; bExist = true; // objChidinhChitiet.DonGia = } }
public bool Destroy(object IdLichsuDoituongKcb) { return(KcbLichsuDoituongKcb.Destroy(IdLichsuDoituongKcb) == 1); }
public bool Delete(object IdLichsuDoituongKcb) { return(KcbLichsuDoituongKcb.Delete(IdLichsuDoituongKcb) == 1); }
public static void LayThongTinGia(NoitruPhanbuonggiuong objPhanbuonggiuong, KcbLichsuDoituongKcb objLichsu) { objPhanbuonggiuong.TuTuc = 0; NoitruGiabuonggiuong objGia = NoitruGiabuonggiuong.FetchByID(objPhanbuonggiuong.IdGia); if (THU_VIEN_CHUNG.Laygiatrithamsohethong("NOITRU_APGIABUONGGIUONG_THEODANHMUCGIA", "0", true) == "0") objGia = null; NoitruDmucGiuongbenh objGiuong = NoitruDmucGiuongbenh.FetchByID(objPhanbuonggiuong.IdGiuong); if (objGia != null) { objPhanbuonggiuong.DonGia = (objLichsu.MaDoituongKcb == "DV" ? Utility.DecimaltoDbnull(objGia.GiaDichvu) : (objLichsu.MaDoituongKcb == "BHYT" ? Utility.DecimaltoDbnull(objGia.GiaBhyt) : Utility.DecimaltoDbnull(objGia.GiaKhac))); objPhanbuonggiuong.PhuThu = (objLichsu.MaDoituongKcb == "BHYT" ? (Utility.Byte2Bool(objLichsu.DungTuyen) ? Utility.DecimaltoDbnull(objGia.PhuthuDungtuyen) : Utility.DecimaltoDbnull(objGia.PhuthuTraituyen)) : 0); objPhanbuonggiuong.TuTuc = objGiuong.TthaiTunguyen; objPhanbuonggiuong.TenHienthi = Utility.sDbnull(objGiuong.TenGiuong); objPhanbuonggiuong.GiaGoc = objPhanbuonggiuong.DonGia; objPhanbuonggiuong.KieuThue = "GIUONG"; } else if (objGiuong != null) { objPhanbuonggiuong.DonGia = (objLichsu.MaDoituongKcb == "DV" ? Utility.DecimaltoDbnull(objGiuong.GiaDichvu) : (objLichsu.MaDoituongKcb == "BHYT" ? Utility.DecimaltoDbnull(objGiuong.GiaBhyt) : Utility.DecimaltoDbnull(objGiuong.GiaKhac))); objPhanbuonggiuong.PhuThu = (objLichsu.MaDoituongKcb == "BHYT" ? (Utility.Byte2Bool(objLichsu.DungTuyen) ? Utility.DecimaltoDbnull(objGiuong.PhuthuDungtuyen) : Utility.DecimaltoDbnull(objGiuong.PhuthuTraituyen)) : 0); objPhanbuonggiuong.TuTuc = objGiuong.TthaiTunguyen; objPhanbuonggiuong.TenHienthi = Utility.sDbnull(objGiuong.TenGiuong); objPhanbuonggiuong.GiaGoc = objPhanbuonggiuong.DonGia; objPhanbuonggiuong.KieuThue = "GIUONG"; } else//Tìm vào các bảng quan hệ { SqlQuery sqlQuery = new Select().From<NoitruQheDoituongBuonggiuong>() .Where(NoitruQheDoituongBuonggiuong.Columns.IdGiuong).IsEqualTo(objPhanbuonggiuong.IdGiuong) .And(NoitruQheDoituongBuonggiuong.Columns.MaDoituongKcb).IsEqualTo(objLichsu.MaDoituongKcb); NoitruQheDoituongBuonggiuong objQhe = sqlQuery.ExecuteSingle<NoitruQheDoituongBuonggiuong>(); if (objQhe != null) { objPhanbuonggiuong.DonGia = Utility.DecimaltoDbnull(objQhe.DonGia); objPhanbuonggiuong.PhuThu = Utility.Byte2Bool(objLichsu.DungTuyen) ? Utility.DecimaltoDbnull(objQhe.PhuthuDungtuyen) : Utility.DecimaltoDbnull(objQhe.PhuthuTraituyen); NoitruDmucGiuongbenh objLBed = NoitruDmucGiuongbenh.FetchByID(objPhanbuonggiuong.IdGiuong); { objPhanbuonggiuong.TuTuc = objLBed.TthaiTunguyen; objPhanbuonggiuong.TenHienthi = Utility.sDbnull(objLBed.TenGiuong); objPhanbuonggiuong.GiaGoc = Utility.DecimaltoDbnull(objLBed.GiaDichvu); objPhanbuonggiuong.KieuThue = "GIUONG"; } } else { NoitruDmucGiuongbenh objLBed = NoitruDmucGiuongbenh.FetchByID(objPhanbuonggiuong.IdGiuong); if (objLBed != null) { objPhanbuonggiuong.TenHienthi = Utility.sDbnull(objLBed.TenGiuong); objPhanbuonggiuong.DonGia = Utility.DecimaltoDbnull(objLBed.GiaDichvu); objPhanbuonggiuong.PhuThu = Utility.DecimaltoDbnull(0); objPhanbuonggiuong.TuTuc = objLBed.TthaiTunguyen; objPhanbuonggiuong.KieuThue = "GIUONG"; objPhanbuonggiuong.GiaGoc = Utility.DecimaltoDbnull(objLBed.GiaDichvu); if (!THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb)) { objPhanbuonggiuong.TuTuc = 0; } } } } if (!THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb)) { objPhanbuonggiuong.TuTuc = 0; } objPhanbuonggiuong.TrongGoi = 0; if (objPhanbuonggiuong.IdGiuong > 0 || objPhanbuonggiuong.IdBuong > 0)//Có giường thì mới tính TinhToanPtramBHYT.TinhPhanTramBHYT(objPhanbuonggiuong, objLichsu, Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc)); }
public ActionResult UpdateLanKham(SysTrace mytrace, KcbDanhsachBenhnhan objKcbDanhsachBenhnhan, KcbLuotkham objLuotkham, KcbDangkyKcb objKcbDangkyKcb, KcbDangkySokham objSoKCB, int KieuKham, decimal PtramBhytCu, decimal PtramBhytgoc, ref string Msg) { ActionResult _ActionResult = ActionResult.Success; try { using (var scope = new TransactionScope()) { using (var dbscope = new SharedDbConnectionScope()) { UpdatePatientInfo(objKcbDanhsachBenhnhan); long IdLichsuDoituongKcb = KcbLayIdDoituongKCBHientai(objLuotkham.IdBenhnhan, objLuotkham.MaLuotkham); KcbLichsuDoituongKcb objLichsuKcb = null; if (IdLichsuDoituongKcb > 0) { objLichsuKcb = KcbLichsuDoituongKcb.FetchByID(IdLichsuDoituongKcb); objLichsuKcb.MarkOld(); objLichsuKcb.IsNew = false; } else { objLichsuKcb = new KcbLichsuDoituongKcb(); objLichsuKcb.IsNew = true; } if (objLichsuKcb == null) { Msg = "NULL-->Không lấy được thông tin lịch sử đối tượng KCB của Bệnh nhân"; return ActionResult.Error; } objLichsuKcb.IdBenhnhan = objLuotkham.IdBenhnhan; objLichsuKcb.MaLuotkham = objLuotkham.MaLuotkham; objLichsuKcb.NgayHieuluc = objLuotkham.NgayTiepdon; objLichsuKcb.IdDoituongKcb = objLuotkham.IdDoituongKcb; objLichsuKcb.MaDoituongKcb = objLuotkham.MaDoituongKcb; objLichsuKcb.IdLoaidoituongKcb = objLuotkham.IdLoaidoituongKcb; objLichsuKcb.MatheBhyt = objLuotkham.MatheBhyt; objLichsuKcb.PtramBhyt = objLuotkham.PtramBhyt; objLichsuKcb.PtramBhytGoc = objLuotkham.PtramBhytGoc; objLichsuKcb.NgaybatdauBhyt = objLuotkham.NgaybatdauBhyt; objLichsuKcb.NgayketthucBhyt = objLuotkham.NgayketthucBhyt; objLichsuKcb.NoicapBhyt = objLuotkham.NoicapBhyt; objLichsuKcb.MaNoicapBhyt = objLuotkham.MaNoicapBhyt; objLichsuKcb.MaDoituongBhyt = objLuotkham.MaDoituongBhyt; objLichsuKcb.MaQuyenloi = objLuotkham.MaQuyenloi; objLichsuKcb.NoiDongtrusoKcbbd = objLuotkham.NoiDongtrusoKcbbd; objLichsuKcb.MaKcbbd = objLuotkham.MaKcbbd; objLichsuKcb.TrangthaiNoitru = 0; objLichsuKcb.DungTuyen = objLuotkham.DungTuyen; objLichsuKcb.Cmt = objLuotkham.Cmt; objLichsuKcb.IdRavien = -1; objLichsuKcb.IdBuong = -1; objLichsuKcb.IdGiuong = -1; objLichsuKcb.IdKhoanoitru = -1; objLichsuKcb.NguoiTao = globalVariables.UserName; objLichsuKcb.NgayTao = globalVariables.SysDate; objLichsuKcb.Save(); objLuotkham.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; objLuotkham.MarkOld(); objLuotkham.IsNew = false; objLuotkham.Save(); if (objSoKCB != null) { //Kiểm tra xem có sổ KCB hay chưa objSoKCB.MaLuotkham = Utility.sDbnull(objLuotkham.MaLuotkham); objSoKCB.IdBenhnhan = Utility.Int32Dbnull(objLuotkham.IdBenhnhan); KcbDangkySokham _temp = new Select().From(KcbDangkySokham.Schema).Where(KcbDangkySokham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan) .And(KcbDangkySokham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .ExecuteSingle<KcbDangkySokham>(); if (_temp == null) { objSoKCB.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; objSoKCB.NgayTao = globalVariables.SysDate; objSoKCB.NguoiTao = globalVariables.UserName; objSoKCB.IsNew = true; objSoKCB.Save(); } else { if (Utility.Int64Dbnull(_temp.IdThanhtoan, 0) > 0)//Ko làm gì cả { Msg = "Đã thu tiền sổ khám của Bệnh nhân nên không được phép xóa hoặc cập nhật lại"; } else//Update lại sổ KCB { _temp.DonGia = objSoKCB.DonGia; _temp.BnhanChitra = objSoKCB.BnhanChitra; _temp.BhytChitra = objSoKCB.BhytChitra; _temp.PtramBhyt = objSoKCB.PtramBhyt; _temp.PtramBhytGoc = objSoKCB.PtramBhytGoc; _temp.PhuThu = objSoKCB.PhuThu; _temp.TuTuc = objSoKCB.TuTuc; _temp.NguonThanhtoan = objSoKCB.NguonThanhtoan; _temp.IdLoaidoituongkcb = objSoKCB.IdLoaidoituongkcb; _temp.IdDoituongkcb = objSoKCB.IdDoituongkcb; _temp.MaDoituongkcb = objSoKCB.MaDoituongkcb; _temp.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; _temp.Noitru = objSoKCB.Noitru; _temp.IdGoi = objSoKCB.IdGoi; _temp.TrongGoi = objSoKCB.TrongGoi; _temp.IdNhanvien = objSoKCB.IdNhanvien; _temp.NgaySua = globalVariables.SysDate; _temp.NguoiSua = globalVariables.UserName; _temp.IsNew = false; _temp.MarkOld(); _temp.Save(); } } } else { new Delete().From(KcbDangkySokham.Schema).Where(KcbDangkySokham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan) .And(KcbDangkySokham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .And(KcbDangkySokham.Columns.TrangthaiThanhtoan).IsEqualTo(0) .Execute(); } //Kiểm tra nếu % bị thay đổi thì cập nhật lại tất cả các bảng if (PtramBhytCu != Utility.DecimaltoDbnull(objLuotkham.PtramBhyt, 0) || PtramBhytgoc != Utility.DecimaltoDbnull(objLuotkham.PtramBhytGoc, 0)) _ActionResult = THU_VIEN_CHUNG.UpdatePtramBHYT(objLuotkham, -1); if (_ActionResult == ActionResult.Cancel)//Báo không cho phép thay đổi phần trăm BHYT do đã có dịch vụ đã thanh toán { return _ActionResult; } if (objKcbDangkyKcb != null) { objKcbDangkyKcb.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; objKcbDangkyKcb.MaLuotkham = Utility.sDbnull(objLuotkham.MaLuotkham); objKcbDangkyKcb.IdBenhnhan = Utility.Int32Dbnull(objLuotkham.IdBenhnhan); AddRegExam(objKcbDangkyKcb, objLuotkham, false, KieuKham); } mytrace.Desc = string.Format("Cập nhật Bệnh nhân ID={0}, Code={1}, Name={2}", objKcbDanhsachBenhnhan.IdBenhnhan.ToString(), objLuotkham.MaLuotkham, objKcbDanhsachBenhnhan.TenBenhnhan); mytrace.Lot = 0; mytrace.IsNew = true; mytrace.Save(); scope.Complete(); return ActionResult.Success; } } } catch (Exception ex) { log.Error("Loi trong qua trinh update thong tin benh nhan {0}", ex); return ActionResult.Error; } }
public static void GB_TinhPhtramBHYT(KcbChidinhclsChitiet objChidinhChitiet, KcbLichsuDoituongKcb objLichsu, bool noitru, decimal PTramBHYT) { byte TrangthaiBhyt = 1; decimal BHYT_PTRAM_TRAITUYENNOITRU = Utility.DecimaltoDbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_PTRAM_TRAITUYENNOITRU", "0", false), 0m); bool b_ExistPtramBHYT = false; if (!THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb.Value))//Đối tượng DV { TrangthaiBhyt = (byte)0; objChidinhChitiet.TuTuc = 0; } else TrangthaiBhyt = (byte)(globalVariables.gv_blnApdungChedoDuyetBHYT ? 0 : 1); if (Utility.Int32Dbnull(objChidinhChitiet.TrangthaiHuy, -1) == -1) objChidinhChitiet.TrangthaiHuy = 0; DmucDichvuclsChitiet obServiceDetail = DmucDichvuclsChitiet.FetchByID(Utility.Int32Dbnull(objChidinhChitiet.IdChitietdichvu)); if (obServiceDetail != null) { objChidinhChitiet.GiaDanhmuc = Utility.DecimaltoDbnull(obServiceDetail.DonGia); } objChidinhChitiet.PtramBhyt = PTramBHYT; objChidinhChitiet.PtramBhytGoc = objLichsu.PtramBhytGoc; objChidinhChitiet.LoaiChietkhau = 0; objChidinhChitiet.TrangthaiBhyt = TrangthaiBhyt; objChidinhChitiet.IdLoaichidinh = 0;//Chưa hiểu trường này-->Cần xem lại if (Utility.Int32Dbnull(objChidinhChitiet.TuTuc, 0) == 1) { objChidinhChitiet.BhytChitra = 0; objChidinhChitiet.BnhanChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0); objChidinhChitiet.PtramBhyt = 0; } else { //Mục tính BHYT đặc biệt để dành sử dụng trong tương lai PtramBHYTDacBiet(objChidinhChitiet, objLichsu, 2, ref b_ExistPtramBHYT); if (b_ExistPtramBHYT) { objChidinhChitiet.BhytChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia) * Utility.DecimaltoDbnull(objChidinhChitiet.PtramBhyt) / 100; objChidinhChitiet.BnhanChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) - Utility.DecimaltoDbnull(objChidinhChitiet.BhytChitra); } else//99% rơi vào nhánh này { PTramBHYT = Utility.DecimaltoDbnull(objLichsu.PtramBhyt); decimal BHCT = 0m; if (objLichsu.DungTuyen == 1)//BHYT đúng tuyến rơi vào nhánh này dù nội trú ngay ngoại trú { BHCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); } else//DV và BHYT trái tuyến { if (objLichsu.TrangthaiNoitru <= 0 || !noitru)//Đối tượng ngoại trú hoặc Chỉ định ngoại trú-->Lấy phần trăm ngoại trú BHCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); else//Nội trú cần tính=đơn giá * % đầu thẻ * % tuyến BHCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia.Value, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc, 0) / 100) * (BHYT_PTRAM_TRAITUYENNOITRU / 100); } decimal BNCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) - BHCT; objChidinhChitiet.BhytChitra = BHCT; objChidinhChitiet.BnhanChitra = BNCT; } } }
private static ActionResult CapnhatChiphiThuoc(KcbLichsuDoituongKcb objLichsu, List<KcbDonthuoc> lstDonthuoc, List<KcbDonthuocChitiet> lstChitiet) { using (var Scope = new TransactionScope()) { decimal BHYT_PTRAM_TRAITUYENNOITRU = Utility.DecimaltoDbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_PTRAM_TRAITUYENNOITRU", "0", false), 0m); THUOC_GIATHEO_KHOAKCB = THU_VIEN_CHUNG.Laygiatrithamsohethong("THUOC_GIATHEO_KHOAKCB", "0", true) == "1"; bool ApdunggiathuocDoituong = THU_VIEN_CHUNG.Laygiatrithamsohethong("APDUNG_GIATHUOC_DOITUONG", "0", true) == "1"; DmucDoituongkcb _DmucDoituongkcb = new Select().From(DmucDoituongkcb.Schema).Where(DmucDoituongkcb.Columns.MaDoituongKcb).IsEqualTo(objLichsu.MaDoituongKcb).ExecuteSingle<DmucDoituongkcb>(); if (_DmucDoituongkcb == null) return ActionResult.Success; //Kiểm tra nếu đối tượng ngoại trú đã có đơn thuốc thanh toán-->Ko cho phép chuyển nữa if (Utility.ByteDbnull(objLichsu.TrangthaiNoitru,0)<=0 && lstChitiet.Where(c => c.TrangthaiThanhtoan > 0).Any()) { Scope.Complete(); return ActionResult.Cancel; } bool saveParent = false; foreach (KcbDonthuoc objKcbDonthuoc in lstDonthuoc) { objKcbDonthuoc.IdLichsuDoituongKcb = objLichsu.IdLichsuDoituongKcb; objKcbDonthuoc.MatheBhyt = objLichsu.MatheBhyt; objKcbDonthuoc.MaDoituongKcb = objLichsu.MaDoituongKcb; string MA_KHOA_THIEN = globalVariables.MA_KHOA_THIEN; if (Utility.Int32Dbnull(objKcbDonthuoc.Noitru, 0) <= 0) { MA_KHOA_THIEN = objKcbDonthuoc.MaKhoaThuchien; } else { MA_KHOA_THIEN = THU_VIEN_CHUNG.Laygiatrithamsohethong("NOITRU_GIACLS", false) ?? MA_KHOA_THIEN; } foreach (KcbDonthuocChitiet objChitietDonthuoc in lstChitiet.Where(c => c.IdDonthuoc.Equals(objKcbDonthuoc.IdDonthuoc))) { if (Utility.Int32Dbnull(objKcbDonthuoc.IdGoi, -1) > 0) { objChitietDonthuoc.MaDoituongKcb = objLichsu.MaDoituongKcb; if (Utility.Int16Dbnull(objChitietDonthuoc.TrangthaiThanhtoan, 0) == 0) { saveParent = true; objChitietDonthuoc.MadoituongGia = objLichsu.MaDoituongKcb; objChitietDonthuoc.PtramBhyt = objLichsu.PtramBhyt; objChitietDonthuoc.PtramBhytGoc = objLichsu.PtramBhytGoc; DmucThuoc _DmucThuoc = DmucThuoc.FetchByID(objChitietDonthuoc.IdThuoc); if (ApdunggiathuocDoituong || Utility.Byte2Bool(_DmucDoituongkcb.GiathuocQuanhe.Value))//Giá theo bảng quan hệ--> { QheDoituongThuoc _item = THU_VIEN_CHUNG.LayQheDoituongThuoc(objLichsu.MaDoituongKcb, objChitietDonthuoc.IdThuoc, MA_KHOA_THIEN, THUOC_GIATHEO_KHOAKCB); if (_item != null)//Tìm thấy quan hệ giá { objChitietDonthuoc.DonGia = Utility.DecimaltoDbnull(_item.DonGia); objChitietDonthuoc.PhuThu = (Utility.isTrue(objLichsu.DungTuyen.Value) ? Utility.DecimaltoDbnull(_item.PhuthuDungtuyen) : Utility.DecimaltoDbnull(_item.PhuthuTraituyen)); objChitietDonthuoc.TuTuc = 0; } else//Tìm giá dịch vụ, chỉ xảy ra khi đối tượng BHYT ko tìm thấy giá, //còn đối tượng DV chắc chắn do thiếu quan hệ giá nên ko thay đổi gì dòng giá thuốc này { _item = THU_VIEN_CHUNG.LayQheDoituongThuoc("DV", objChitietDonthuoc.IdThuoc, MA_KHOA_THIEN, THUOC_GIATHEO_KHOAKCB); if (_item != null) { objChitietDonthuoc.MadoituongGia = "DV"; objChitietDonthuoc.DonGia = Utility.DecimaltoDbnull(_item.DonGia); objChitietDonthuoc.PhuThu = (Utility.isTrue(objLichsu.DungTuyen.Value) ? Utility.DecimaltoDbnull(_item.PhuthuDungtuyen) : Utility.DecimaltoDbnull(_item.PhuthuTraituyen)); objChitietDonthuoc.TuTuc = 1; objChitietDonthuoc.PtramBhyt = 0; } } } else //Giá theo kho--> { TThuockho objTK = TThuockho.FetchByID(objChitietDonthuoc.IdThuockho); if (objTK != null) { objChitietDonthuoc.DonGia = THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb) ? Utility.DecimaltoDbnull(objTK.GiaBhyt.Value, objChitietDonthuoc.DonGia) : objTK.GiaBan; objChitietDonthuoc.PhuThu = (Utility.Byte2Bool(objLichsu.DungTuyen) ? Utility.DecimaltoDbnull(objTK.PhuthuDungtuyen) : Utility.DecimaltoDbnull(objTK.PhuthuTraituyen)); if (!THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb))//Đối tượng dịch vụ-->Ko tính phụ thu objChitietDonthuoc.PhuThu = 0; } } //Tính lại các mục tự túc, BHYT chi trả, BN chi trả if (_DmucThuoc != null && Utility.Int32Dbnull(_DmucThuoc.TuTuc, 0) == 1) objChitietDonthuoc.TuTuc = 1;//Ke ca co trong bang quan he if (objLichsu.IdLoaidoituongKcb == 1)//Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc objChitietDonthuoc.TuTuc = 0; if (!Utility.Byte2Bool(objChitietDonthuoc.TuTuc))//Nếu ko phải dịch vụ tự túc { decimal BHCT = 0m; if (objLichsu.DungTuyen == 1)//Chỉ xảy ra với đối tượng BHYT { BHCT = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); } else//Đối tượng DV hoặc BHYT trái tuyến { if (objLichsu.TrangthaiNoitru <= 0 || !Utility.Byte2Bool(objKcbDonthuoc.Noitru))//Ngoại trú BHCT = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); else//Nội trú cần tính=đơn giá * % đầu thẻ * % tuyến BHCT = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc, 0) / 100) * (BHYT_PTRAM_TRAITUYENNOITRU / 100); } decimal _BnhanChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0) - BHCT; objChitietDonthuoc.BhytChitra = BHCT; objChitietDonthuoc.BnhanChitra = _BnhanChitra; } else//Là tự túc { objChitietDonthuoc.PtramBhyt = 0; objChitietDonthuoc.BhytChitra = 0; objChitietDonthuoc.BnhanChitra = Utility.DecimaltoDbnull(objChitietDonthuoc.DonGia, 0); } } else { //nếu đã thanh toán thì chỉ xử lý khi đối tượng đang ở trạng thái nội trú. if (Utility.ByteDbnull(objLichsu.TrangthaiNoitru,0)>0) { saveParent = true; if (THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb)) { //Đối tượng mới là BHYT thì kiểm tra đổi các dịch vụ có giá DV về tự túc. //Các dịch vụ có giá khác DV thì để nguyên(để nếu đối tượng cũ là BHYT thì ko bị thay đổi giá trị tự túc) if (objChitietDonthuoc.MadoituongGia == "DV") objChitietDonthuoc.TuTuc = 1; } else//Nếu đối tượng từ BHYT chuyển sang dịch vụ thì chuyển thành ko tự túc hết { if (objLichsu.MaDoituongKcb != objLichsu.MaDoituongKcb)//Mới=DV, Cũ=BHYT. Còn lại ko làm gì cả objChitietDonthuoc.TuTuc = 0; } } else continue; } if (objLichsu.IdLoaidoituongKcb == 1)//Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc { objChitietDonthuoc.TuTuc = 0; objChitietDonthuoc.PhuThu = 0; } objChitietDonthuoc.Save(); } } if (saveParent) { objKcbDonthuoc.Save(); saveParent = false; } } Scope.Complete(); return ActionResult.Success; } }
/// <summary> /// Lấy toàn bộ dữ liệu CLS giống phần chỉ định CLS sau đó tính giá dựa trên dữ liệu lấy được đó. Thay vì select lại từ các bảng quan hệ /// </summary> /// <param name="objLuotkham"></param> /// <returns></returns> private static ActionResult CapnhatChiphiCLS( KcbLichsuDoituongKcb _item,List< KcbChidinhcl> lstChidinh,List< KcbChidinhclsChitiet> lstChitiet) { using (var Scope = new TransactionScope()) { if (lstChitiet.Count > 0) { //Kiểm tra nếu đối tượng ngoại trú đã có dịch vụ thanh toán-->Ko cho phép chuyển nữa if (Utility.ByteDbnull(_item.TrangthaiNoitru,0)<=0 && lstChitiet.Where(c => c.TrangthaiThanhtoan > 0).Any()) { { Scope.Complete(); return ActionResult.Cancel; } } bool saveParent = false; foreach (KcbChidinhcl objChidinh in lstChidinh) { string MA_KHOA_THIEN = globalVariables.MA_KHOA_THIEN; if (Utility.Int32Dbnull(objChidinh.Noitru, 0) <= 0) { MA_KHOA_THIEN = objChidinh.MaKhoaChidinh; } else { MA_KHOA_THIEN = THU_VIEN_CHUNG.Laygiatrithamsohethong("NOITRU_GIACLS", false) ?? MA_KHOA_THIEN; } DataTable m_dtServiceDetail = new KCB_CHIDINH_CANLAMSANG().LaydanhsachCLS_chidinh(_item.MaDoituongKcb, Utility.ByteDbnull(_item.TrangthaiNoitru, 0), Utility.ByteDbnull(_item.GiayBhyt, 0), -1, Utility.Int32Dbnull(_item.DungTuyen.Value, 0), MA_KHOA_THIEN, "-GOI,-TIEN"); objChidinh.IdLichsuDoituongKcb = _item.IdLichsuDoituongKcb; objChidinh.MatheBhyt = _item.MatheBhyt; objChidinh.MaDoituongKcb = _item.MaDoituongKcb; objChidinh.IdLoaidoituongKcb = _item.IdLoaidoituongKcb; objChidinh.IdDoituongKcb = _item.IdDoituongKcb; foreach (KcbChidinhclsChitiet objChidinhChitiet in lstChitiet.Where(c => c.IdChidinh.Equals(objChidinh.IdChidinh))) { if (Utility.Int32Dbnull(objChidinhChitiet.IdGoi, -1) <=0) { objChidinhChitiet.IdDoituongKcb = _item.IdDoituongKcb; if (objChidinhChitiet.TrangthaiThanhtoan == 0)//Chưa thanh toán { saveParent = true; objChidinhChitiet.MadoituongGia = _item.MaDoituongKcb; objChidinhChitiet.PtramBhyt = _item.PtramBhyt; objChidinhChitiet.PtramBhytGoc = _item.PtramBhytGoc; DataRow[] arrDr = m_dtServiceDetail.Select(KcbChidinhclsChitiet.Columns.IdChitietdichvu + "=" + Utility.Int32Dbnull(objChidinhChitiet.IdChitietdichvu, -1)); if (arrDr.Length > 0) { objChidinhChitiet.PtramBhyt = _item.PtramBhyt; objChidinhChitiet.DonGia = Utility.DecimaltoDbnull(arrDr[0][KcbChidinhclsChitiet.Columns.DonGia], 0); objChidinhChitiet.GiaDanhmuc = Utility.DecimaltoDbnull(arrDr[0][KcbChidinhclsChitiet.Columns.DonGia], 0); objChidinhChitiet.TuTuc = Utility.ByteDbnull(arrDr[0][KcbChidinhclsChitiet.Columns.TuTuc], 0); objChidinhChitiet.PhuThu = Utility.DecimaltoDbnull(arrDr[0][KcbChidinhclsChitiet.Columns.PhuThu], 0); objChidinhChitiet.NguoiSua = globalVariables.UserName; objChidinhChitiet.NgaySua = DateTime.Now; TinhCLS.GB_TinhPhtramBHYT(objChidinhChitiet, _item, Utility.Byte2Bool(objChidinh.Noitru), Utility.DecimaltoDbnull(_item.PtramBhyt)); } else//Rất khó nhảy vào nhánh này trừ phi lỗi dữ liệu đặc biệt nào đó { CLS_GIATHEO_KHOAKCB = THU_VIEN_CHUNG.Laygiatrithamsohethong("CLS_GIATHEO_KHOAKCB", "0", true) == "1"; QheDoituongDichvucl _Items = THU_VIEN_CHUNG.LayQheDoituongCLS(_item.MaDoituongKcb, objChidinhChitiet.IdChitietdichvu, MA_KHOA_THIEN, CLS_GIATHEO_KHOAKCB); if (_Items != null) { objChidinhChitiet.DonGia = Utility.DecimaltoDbnull(_Items.DonGia); objChidinhChitiet.PhuThu = (Utility.isTrue(_item.DungTuyen) ? Utility.DecimaltoDbnull(_Items.PhuthuDungtuyen) : Utility.DecimaltoDbnull(_Items.PhuthuTraituyen)); objChidinhChitiet.TuTuc = 0; objChidinhChitiet.IdDoituongKcb = _item.IdDoituongKcb; objChidinhChitiet.PtramBhyt = _item.PtramBhyt; } else { _Items = THU_VIEN_CHUNG.LayQheDoituongCLS("DV", objChidinhChitiet.IdChitietdichvu, MA_KHOA_THIEN, CLS_GIATHEO_KHOAKCB); if (_Items != null) { objChidinhChitiet.MadoituongGia = "DV"; objChidinhChitiet.DonGia = Utility.DecimaltoDbnull(_Items.DonGia); objChidinhChitiet.PhuThu = (Utility.isTrue(_item.DungTuyen) ? Utility.DecimaltoDbnull(_Items.PhuthuDungtuyen) : Utility.DecimaltoDbnull(_Items.PhuthuTraituyen)); objChidinhChitiet.TuTuc = 1; objChidinhChitiet.IdDoituongKcb = _item.IdDoituongKcb; objChidinhChitiet.PtramBhyt = 0; } } DmucDichvuclsChitiet _DmucDichvuclsChitiet = DmucDichvuclsChitiet.FetchByID(objChidinhChitiet.IdChitietdichvu); if (_DmucDichvuclsChitiet != null && Utility.Int32Dbnull(_DmucDichvuclsChitiet.TuTuc, 0) == 1) objChidinhChitiet.TuTuc = 1;//Ke ca co trong bang quan he if (_item.IdLoaidoituongKcb == 1)//Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc { objChidinhChitiet.TuTuc = 0; objChidinhChitiet.PhuThu = 0; } objChidinhChitiet.NguoiSua = globalVariables.UserName; objChidinhChitiet.NgaySua = DateTime.Now; decimal PtramBHYT = Utility.DecimaltoDbnull(_item.PtramBhyt); TinhCLS.GB_TinhPhtramBHYT(objChidinhChitiet, _item, Utility.Byte2Bool(objChidinh.Noitru), PtramBHYT); } } else { //nếu đã thanh toán thì chỉ xử lý khi đối tượng đang ở trạng thái nội trú. if (Utility.ByteDbnull(_item.TrangthaiNoitru,0)>0) { saveParent = true; if (THU_VIEN_CHUNG.IsBaoHiem(_item.IdLoaidoituongKcb)) { //Đối tượng mới là BHYT thì kiểm tra đổi các dịch vụ có giá DV về tự túc. //Các dịch vụ có giá khác DV thì để nguyên(để nếu đối tượng cũ là BHYT thì ko bị thay đổi giá trị tự túc) if (objChidinhChitiet.MadoituongGia == "DV") objChidinhChitiet.TuTuc = 1; } else//Nếu đối tượng từ BHYT chuyển sang dịch vụ thì chuyển thành ko tự túc hết { if (_item.MaDoituongKcb != _item.MaDoituongKcb)//Mới=DV, Cũ=BHYT. Còn lại ko làm gì cả objChidinhChitiet.TuTuc = 0; } } else continue; } if (_item.IdLoaidoituongKcb == 1)//Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc { objChidinhChitiet.TuTuc = 0; objChidinhChitiet.PhuThu = 0; } objChidinhChitiet.Save(); saveParent = true; } } if (saveParent) { objChidinh.Save(); saveParent = false; } } } Scope.Complete(); return ActionResult.Success; } }
private static ActionResult CapnhatChiphiKCB(KcbLichsuDoituongKcb objLichsu, List<KcbDangkyKcb> lstChiphiKCB) { using (var Scope = new TransactionScope()) { if (lstChiphiKCB.Count > 0) { //Kiểm tra nếu đối tượng ngoại trú đã có dịch vụ thanh toán-->Ko cho phép chuyển nữa if (Utility.ByteDbnull(objLichsu.TrangthaiNoitru,0) <= 0 && lstChiphiKCB.Where(c => c.TrangthaiThanhtoan > 0).Any()) { Scope.Complete(); return ActionResult.Cancel; } //CHUYỂN GIÁ KHÁM BỆNH VÀO PHÒNG foreach (KcbDangkyKcb objDangkyKCB in lstChiphiKCB) { if (Utility.Int32Dbnull(objDangkyKCB.IdGoi, -1) <=0) { objDangkyKCB.MaDoituongkcb = objLichsu.MaDoituongKcb; objDangkyKCB.IdDoituongkcb = objLichsu.IdDoituongKcb; objDangkyKCB.IdLoaidoituongkcb = objLichsu.IdLoaidoituongKcb; objDangkyKCB.IdLichsuDoituongKcb = objLichsu.IdLichsuDoituongKcb; objDangkyKCB.MatheBhyt = objLichsu.MatheBhyt; if (objDangkyKCB.TrangthaiThanhtoan == 0)//Các mục chưa thanh toán thì cho phép chuyển { DmucDichvukcb _DichvukcbCu = DmucDichvukcb.FetchByID(objDangkyKCB.IdDichvuKcb); var _DichvukcbMoi = new Select().From(DmucDichvukcb.Schema) .Where(DmucDichvukcb.Columns.IdKhoaphong).IsEqualTo(_DichvukcbCu.IdKhoaphong) .And(DmucDichvukcb.Columns.IdPhongkham).IsEqualTo(_DichvukcbCu.IdPhongkham) .And(DmucDichvukcb.Columns.IdKieukham).IsEqualTo(_DichvukcbCu.IdKieukham) .AndExpression(DmucDichvukcb.Columns.MaDoituongKcb).IsEqualTo(objLichsu.MaDoituongKcb) .Or(DmucDichvukcb.Columns.MaDoituongKcb).IsEqualTo("ALL").CloseExpression() .ExecuteSingle<DmucDichvukcb>(); if (_DichvukcbMoi != null) { objDangkyKCB.IdDichvuKcb = Utility.Int16Dbnull(_DichvukcbMoi.IdDichvukcb, -1); if (Utility.Int32Dbnull(_DichvukcbMoi.TuTuc, 0) == 1) objDangkyKCB.TuTuc = 1;//Ke ca co trong bang quan he if (objLichsu.IdLoaidoituongKcb == 1)//Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc objDangkyKCB.TuTuc = 0; objDangkyKCB.TenDichvuKcb = _DichvukcbMoi.TenDichvukcb; objDangkyKCB.DonGia = Utility.DecimaltoDbnull(_DichvukcbMoi.DonGia); objDangkyKCB.PhuThu = !Utility.Byte2Bool(objLichsu.DungTuyen) ? Utility.DecimaltoDbnull(_DichvukcbMoi.PhuthuDungtuyen) : Utility.DecimaltoDbnull(_DichvukcbMoi.PhuthuTraituyen); if (!THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb)) objDangkyKCB.PhuThu = 0; objDangkyKCB.PtramBhyt = objLichsu.PtramBhyt;//% BHYT ngoại trú objDangkyKCB.PtramBhytGoc = objLichsu.PtramBhytGoc; if (Utility.Byte2Bool(objDangkyKCB.KhamNgoaigio)) { objDangkyKCB.KhamNgoaigio = 1; objDangkyKCB.DonGia = Utility.DecimaltoDbnull(_DichvukcbMoi.DongiaNgoaigio, 0); objDangkyKCB.PhuThu = !Utility.Byte2Bool(objLichsu.DungTuyen) ? Utility.DecimaltoDbnull(_DichvukcbMoi.PhuthuNgoaigio, 0) : Utility.DecimaltoDbnull(_DichvukcbMoi.PhuthuDungtuyen); } if (Utility.Int32Dbnull(objDangkyKCB.TuTuc, 0) == 0) { objDangkyKCB.BhytChitra = Utility.DecimaltoDbnull(objDangkyKCB.DonGia) * Utility.DecimaltoDbnull(objLichsu.PtramBhyt) / 100; objDangkyKCB.BnhanChitra = Utility.DecimaltoDbnull(objDangkyKCB.DonGia, 0) - Utility.DecimaltoDbnull(objDangkyKCB.BhytChitra, 0); } else { objDangkyKCB.BhytChitra = 0; objDangkyKCB.BnhanChitra = Utility.DecimaltoDbnull(objDangkyKCB.DonGia, 0); } } } else { //nếu đã thanh toán thì chỉ xử lý khi đối tượng đang ở trạng thái nội trú. if (Utility.ByteDbnull(objLichsu.TrangthaiNoitru,0)>0) { if (THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb)) { //Đối tượng mới là BHYT thì kiểm tra đổi các dịch vụ có giá DV về tự túc. //Các dịch vụ có giá khác DV thì để nguyên(để nếu đối tượng cũ là BHYT thì ko bị thay đổi giá trị tự túc) if (objDangkyKCB.MadoituongGia == "DV") objDangkyKCB.TuTuc = 1; } else//Nếu đối tượng từ BHYT chuyển sang dịch vụ thì chuyển thành ko tự túc hết { if (objLichsu.MaDoituongKcb != objLichsu.MaDoituongKcb)//Mới=DV, Cũ=BHYT. Còn lại ko làm gì cả objDangkyKCB.TuTuc = 0; } } else continue; } if (objLichsu.IdLoaidoituongKcb == 1)//Đối tượng dịch vụ-->ko cần phải đánh dấu tự túc, phụ thu=0 { objDangkyKCB.TuTuc = 0; objDangkyKCB.PhuThu = 0; } objDangkyKCB.Save(); } } } Scope.Complete(); return ActionResult.Success; } }
private static ActionResult CapnhatBuonggiuong(KcbLichsuDoituongKcb objLichsu,List<NoitruPhanbuonggiuong> lstBuonggiuong ) { using (var Scope = new TransactionScope()) { if (lstBuonggiuong.Count > 0) { //Kiểm tra nếu đối tượng ngoại trú đã có dịch vụ thanh toán-->Ko cho phép chuyển nữa if (Utility.ByteDbnull(objLichsu.TrangthaiNoitru,0) <= 0 && lstBuonggiuong.Where(c => c.TrangthaiThanhtoan > 0).Any()) { Scope.Complete(); return ActionResult.Cancel; } foreach (NoitruPhanbuonggiuong objBG in lstBuonggiuong) { if (Utility.Int32Dbnull(objBG.IdGoi, -1) <=0) { objBG.IdLichsuDoituongKcb = objLichsu.IdLichsuDoituongKcb; noitru_nhapvien.LayThongTinGia(objBG, objLichsu); objBG.Save(); } } } Scope.Complete(); return ActionResult.Success; } }
public ActionResult ThemmoiBenhnhanCapcuu(SysTrace mytrace, KcbDanhsachBenhnhan objKcbDanhsachBenhnhan, KcbLuotkham objLuotkham, KcbDangkySokham objSoKCB, NoitruPhanbuonggiuong objBuonggiuong, DateTime ngaychuyenkhoa, ref string Msg) { int v_IdBenhnhan = -1; try { using (var scope = new TransactionScope()) { using (var dbscope = new SharedDbConnectionScope()) { objKcbDanhsachBenhnhan.IsNew = true; objKcbDanhsachBenhnhan.Save(); KcbLichsuDoituongKcb objLichsuKcb = new KcbLichsuDoituongKcb(); objLichsuKcb.IdBenhnhan = objKcbDanhsachBenhnhan.IdBenhnhan; objLichsuKcb.MaLuotkham = objLuotkham.MaLuotkham; objLichsuKcb.NgayHieuluc = objLuotkham.NgayTiepdon; objLichsuKcb.IdDoituongKcb = objLuotkham.IdDoituongKcb; objLichsuKcb.MaDoituongKcb = objLuotkham.MaDoituongKcb; objLichsuKcb.IdLoaidoituongKcb = objLuotkham.IdLoaidoituongKcb; objLichsuKcb.MatheBhyt = objLuotkham.MatheBhyt; objLichsuKcb.PtramBhyt = objLuotkham.PtramBhyt; objLichsuKcb.PtramBhytGoc = objLuotkham.PtramBhytGoc; objLichsuKcb.NgaybatdauBhyt = objLuotkham.NgaybatdauBhyt; objLichsuKcb.NgayketthucBhyt = objLuotkham.NgayketthucBhyt; objLichsuKcb.NoicapBhyt = objLuotkham.NoicapBhyt; objLichsuKcb.MaNoicapBhyt = objLuotkham.MaNoicapBhyt; objLichsuKcb.MaDoituongBhyt = objLuotkham.MaDoituongBhyt; objLichsuKcb.MaQuyenloi = objLuotkham.MaQuyenloi; objLichsuKcb.NoiDongtrusoKcbbd = objLuotkham.NoiDongtrusoKcbbd; objLichsuKcb.MaKcbbd = objLuotkham.MaKcbbd; objLichsuKcb.TrangthaiNoitru = 0; objLichsuKcb.DungTuyen = objLuotkham.DungTuyen; objLichsuKcb.Cmt = objLuotkham.Cmt; objLichsuKcb.IdRavien = objLuotkham.IdRavien; objLichsuKcb.IdBuong = objLuotkham.IdBuong; objLichsuKcb.IdGiuong = objLuotkham.IdGiuong; objLichsuKcb.IdKhoanoitru = objLuotkham.IdKhoanoitru; objLichsuKcb.NguoiTao = globalVariables.UserName; objLichsuKcb.NgayTao = globalVariables.SysDate; objLichsuKcb.IsNew = true; objLichsuKcb.Save(); //Thêm lần khám objLuotkham.IdBenhnhan = objKcbDanhsachBenhnhan.IdBenhnhan; objLuotkham.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; objLuotkham.SttKham = THU_VIEN_CHUNG.LaySTTKhamTheoDoituong(objLuotkham.IdDoituongKcb); objLuotkham.NgayTao = globalVariables.SysDate; objLuotkham.NguoiTao = globalVariables.UserName; objLuotkham.IsNew = true; objLuotkham.Save(); SqlQuery sqlQueryPatientExam = new Select().From(KcbLuotkham.Schema) .Where(KcbLuotkham.Columns.IdBenhnhan).IsNotEqualTo(objLuotkham.IdBenhnhan) .And(KcbLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham); if (sqlQueryPatientExam.GetRecordCount() > 0) { string patientCode = THU_VIEN_CHUNG.KCB_SINH_MALANKHAM((byte)(objKcbDanhsachBenhnhan.KieuBenhnhan == 0 ? 0 : 1)); new Update(KcbLuotkham.Schema) .Set(KcbLuotkham.Columns.MaLuotkham).EqualTo(patientCode) .Where(KcbLuotkham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan) .And(KcbLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham).Execute(); new Update(KcbLichsuDoituongKcb.Schema) .Set(KcbLichsuDoituongKcb.Columns.MaLuotkham).EqualTo(patientCode) .Where(KcbLichsuDoituongKcb.Columns.IdLichsuDoituongKcb).IsEqualTo(objLichsuKcb.IdLichsuDoituongKcb).Execute(); objLuotkham.MaLuotkham = patientCode; } new Update(KcbDmucLuotkham.Schema) .Set(KcbDmucLuotkham.Columns.TrangThai).EqualTo(2) .Set(KcbDmucLuotkham.Columns.EndTime).EqualTo(DateTime.Now) .Where(KcbDmucLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .And(KcbDmucLuotkham.Columns.Loai).IsEqualTo((byte)(objKcbDanhsachBenhnhan.KieuBenhnhan == 0 ? 0 : 1)) .And(KcbDmucLuotkham.Columns.TrangThai).IsLessThanOrEqualTo(1) .And(KcbDmucLuotkham.Columns.UsedBy).IsLessThanOrEqualTo(globalVariables.UserName) .Execute(); //.And(KcbDmucLuotkham.Columns.Nam).IsEqualTo(globalVariables.SysDate.Year)//Tạm bỏ tránh máy client cố tình điều chỉnh khác máy server ; if (objSoKCB != null) { //Kiểm tra xem có sổ KCB hay chưa objSoKCB.MaLuotkham = Utility.sDbnull(objLuotkham.MaLuotkham); objSoKCB.IdBenhnhan = Utility.Int32Dbnull(objLuotkham.IdBenhnhan); KcbDangkySokham _temp = new Select().From(KcbDangkySokham.Schema).Where(KcbDangkySokham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan) .And(KcbDangkySokham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .ExecuteSingle<KcbDangkySokham>(); if (_temp == null) { objSoKCB.NgayTao = globalVariables.SysDate; objSoKCB.NguoiTao = globalVariables.UserName; objSoKCB.IsNew = true; objSoKCB.Save(); } else { if (Utility.Int64Dbnull(_temp.IdThanhtoan, 0) > 0)//Ko làm gì cả { Msg = "Đã thu tiền sổ khám của Bệnh nhân nên không được phép xóa hoặc cập nhật lại"; } else//Update lại sổ KCB { _temp.DonGia = objSoKCB.DonGia; _temp.BnhanChitra = objSoKCB.BnhanChitra; _temp.BhytChitra = objSoKCB.BhytChitra; _temp.PtramBhyt = objSoKCB.PtramBhyt; _temp.PtramBhytGoc = objSoKCB.PtramBhytGoc; _temp.PhuThu = objSoKCB.PhuThu; _temp.TuTuc = objSoKCB.TuTuc; _temp.NguonThanhtoan = objSoKCB.NguonThanhtoan; _temp.IdLoaidoituongkcb = objSoKCB.IdLoaidoituongkcb; _temp.IdDoituongkcb = objSoKCB.IdDoituongkcb; _temp.MaDoituongkcb = objSoKCB.MaDoituongkcb; _temp.Noitru = objSoKCB.Noitru; _temp.IdGoi = objSoKCB.IdGoi; _temp.TrongGoi = objSoKCB.TrongGoi; _temp.IdNhanvien = objSoKCB.IdNhanvien; _temp.NgaySua = globalVariables.SysDate; _temp.NguoiSua = globalVariables.UserName; _temp.IsNew = false; _temp.MarkOld(); _temp.Save(); } } } else { new Delete().From(KcbDangkySokham.Schema).Where(KcbDangkySokham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan) .And(KcbDangkySokham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .And(KcbDangkySokham.Columns.TrangthaiThanhtoan).IsEqualTo(0) .Execute(); } //Nhập viện if (objBuonggiuong != null) { objBuonggiuong.IdBenhnhan = objLuotkham.IdBenhnhan; objBuonggiuong.MaLuotkham = objLuotkham.MaLuotkham; noitru_nhapvien.NhapvienCapcuu(objBuonggiuong, objLuotkham); //Chuyển vào buồng giường if (Utility.Int16Dbnull(objBuonggiuong.IdBuong) > -1 && Utility.Int16Dbnull(objBuonggiuong.IdGiuong) > -1) noitru_nhapvien.PhanGiuongDieuTriCapcuu(objBuonggiuong, objLuotkham, ngaychuyenkhoa, Utility.Int16Dbnull(objBuonggiuong.IdBuong), Utility.Int16Dbnull(objBuonggiuong.IdGiuong)); objLuotkham.IdKhoanoitru = objBuonggiuong.IdKhoanoitru; objLuotkham.IdBuong = objBuonggiuong.IdBuong; objLuotkham.IdGiuong = objBuonggiuong.IdGiuong; objLuotkham.IdRavien = objBuonggiuong.Id; objLuotkham.IdNhapvien = objBuonggiuong.Id; } mytrace.Desc = string.Format("Thêm mới Bệnh nhân cấp cứu ID={0}, Code={1}, Name={2}", objKcbDanhsachBenhnhan.IdBenhnhan.ToString(), objLuotkham.MaLuotkham, objKcbDanhsachBenhnhan.TenBenhnhan); mytrace.Lot = 0; mytrace.IsNew = true; mytrace.Save(); scope.Complete(); return ActionResult.Success; } } } catch (Exception ex) { return ActionResult.Error; } }
public ActionResult ThemLuotDangkyKiemnghiem(SysTrace mytrace, KcbDanhsachBenhnhan objKcbDanhsachBenhnhan, KcbLuotkham objLuotkham,ref string Msg) { try { using (var scope = new TransactionScope()) { using (var dbscope = new SharedDbConnectionScope()) { objKcbDanhsachBenhnhan.Save(); KcbLichsuDoituongKcb objLichsuKcb = new KcbLichsuDoituongKcb(); objLichsuKcb.IdBenhnhan = objLuotkham.IdBenhnhan; objLichsuKcb.MaLuotkham = objLuotkham.MaLuotkham; objLichsuKcb.NgayHieuluc = objLuotkham.NgayTiepdon; objLichsuKcb.IdDoituongKcb = objLuotkham.IdDoituongKcb; objLichsuKcb.MaDoituongKcb = objLuotkham.MaDoituongKcb; objLichsuKcb.IdLoaidoituongKcb = objLuotkham.IdLoaidoituongKcb; objLichsuKcb.MatheBhyt = objLuotkham.MatheBhyt; objLichsuKcb.PtramBhyt = objLuotkham.PtramBhyt; objLichsuKcb.PtramBhytGoc = objLuotkham.PtramBhytGoc; objLichsuKcb.NgaybatdauBhyt = objLuotkham.NgaybatdauBhyt; objLichsuKcb.NgayketthucBhyt = objLuotkham.NgayketthucBhyt; objLichsuKcb.NoicapBhyt = objLuotkham.NoicapBhyt; objLichsuKcb.MaNoicapBhyt = objLuotkham.MaNoicapBhyt; objLichsuKcb.MaDoituongBhyt = objLuotkham.MaDoituongBhyt; objLichsuKcb.MaQuyenloi = objLuotkham.MaQuyenloi; objLichsuKcb.NoiDongtrusoKcbbd = objLuotkham.NoiDongtrusoKcbbd; objLichsuKcb.MaKcbbd = objLuotkham.MaKcbbd; objLichsuKcb.TrangthaiNoitru = 0; objLichsuKcb.DungTuyen = objLuotkham.DungTuyen; objLichsuKcb.Cmt = objLuotkham.Cmt; objLichsuKcb.IdRavien = -1; objLichsuKcb.IdBuong = -1; objLichsuKcb.IdGiuong = -1; objLichsuKcb.IdKhoanoitru = -1; objLichsuKcb.NguoiTao = globalVariables.UserName; objLichsuKcb.NgayTao = globalVariables.SysDate; objLichsuKcb.IsNew = true; objLichsuKcb.Save(); SqlQuery sqlQueryPatientExam = new Select().From(KcbLuotkham.Schema) .Where(KcbLuotkham.Columns.IdBenhnhan).IsNotEqualTo(objLuotkham.IdBenhnhan) .And(KcbLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham); if (sqlQueryPatientExam.GetRecordCount() > 0)//Nếu BN khác đã lấy mã này { objLuotkham.MaLuotkham = THU_VIEN_CHUNG.KCB_SINH_MALANKHAM((byte)(objKcbDanhsachBenhnhan.KieuBenhnhan == 0 ? 0 : 1)); new Update(KcbLichsuDoituongKcb.Schema) .Set(KcbLichsuDoituongKcb.Columns.MaLuotkham).EqualTo(objLuotkham.MaLuotkham) .Where(KcbLichsuDoituongKcb.Columns.IdLichsuDoituongKcb).IsEqualTo(objLichsuKcb.IdLichsuDoituongKcb).Execute(); } objLuotkham.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; objLuotkham.IsNew = true; objLuotkham.Save(); new Update(KcbDmucLuotkham.Schema) .Set(KcbDmucLuotkham.Columns.TrangThai).EqualTo(2) .Set(KcbDmucLuotkham.Columns.EndTime).EqualTo(DateTime.Now) .Where(KcbDmucLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .And(KcbDmucLuotkham.Columns.Loai).IsEqualTo((byte)(objKcbDanhsachBenhnhan.KieuBenhnhan == 0 ? 0 : 1)) .And(KcbDmucLuotkham.Columns.TrangThai).IsLessThanOrEqualTo(1) .And(KcbDmucLuotkham.Columns.Nam).IsEqualTo(globalVariables.SysDate.Year) .And(KcbDmucLuotkham.Columns.UsedBy).IsLessThanOrEqualTo(globalVariables.UserName) .Execute(); mytrace.Desc = string.Format("Thêm mới lượt khám ID={0}, Code={1}, Name={2}", objKcbDanhsachBenhnhan.IdBenhnhan.ToString(), objLuotkham.MaLuotkham, objKcbDanhsachBenhnhan.TenBenhnhan); mytrace.Lot = 0; mytrace.IsNew = true; mytrace.Save(); scope.Complete(); return ActionResult.Success; } } } catch (Exception ex) { return ActionResult.Error; } }
public void Insert(long IdBenhnhan, string MaLuotkham, DateTime NgayHieuluc, DateTime?NgayHethieuluc, short?IdDoituongKcb, string MaDoituongKcb, byte?IdLoaidoituongKcb, string MatheBhyt, decimal?PtramBhyt, decimal?PtramBhytGoc, DateTime?NgaybatdauBhyt, DateTime?NgayketthucBhyt, string NoicapBhyt, string MaNoicapBhyt, string MaDoituongBhyt, int?MaQuyenloi, string NoiDongtrusoKcbbd, string MaKcbbd, byte?TrangthaiNoitru, byte?DungTuyen, string Cmt, long?IdRavien, short?IdBuong, short?IdGiuong, short?IdKhoanoitru, byte?GiayBhyt, string MadtuongSinhsong, string DiachiBhyt, byte?TrangthaiCapcuu, string NguoiTao, DateTime?NgayTao, string NguoiSua, DateTime?NgaySua) { KcbLichsuDoituongKcb item = new KcbLichsuDoituongKcb(); item.IdBenhnhan = IdBenhnhan; item.MaLuotkham = MaLuotkham; item.NgayHieuluc = NgayHieuluc; item.NgayHethieuluc = NgayHethieuluc; item.IdDoituongKcb = IdDoituongKcb; item.MaDoituongKcb = MaDoituongKcb; item.IdLoaidoituongKcb = IdLoaidoituongKcb; item.MatheBhyt = MatheBhyt; item.PtramBhyt = PtramBhyt; item.PtramBhytGoc = PtramBhytGoc; item.NgaybatdauBhyt = NgaybatdauBhyt; item.NgayketthucBhyt = NgayketthucBhyt; item.NoicapBhyt = NoicapBhyt; item.MaNoicapBhyt = MaNoicapBhyt; item.MaDoituongBhyt = MaDoituongBhyt; item.MaQuyenloi = MaQuyenloi; item.NoiDongtrusoKcbbd = NoiDongtrusoKcbbd; item.MaKcbbd = MaKcbbd; item.TrangthaiNoitru = TrangthaiNoitru; item.DungTuyen = DungTuyen; item.Cmt = Cmt; item.IdRavien = IdRavien; item.IdBuong = IdBuong; item.IdGiuong = IdGiuong; item.IdKhoanoitru = IdKhoanoitru; item.GiayBhyt = GiayBhyt; item.MadtuongSinhsong = MadtuongSinhsong; item.DiachiBhyt = DiachiBhyt; item.TrangthaiCapcuu = TrangthaiCapcuu; item.NguoiTao = NguoiTao; item.NgayTao = NgayTao; item.NguoiSua = NguoiSua; item.NgaySua = NgaySua; item.Save(UserName); }
public void Insert(long IdBenhnhan,string MaLuotkham,DateTime NgayHieuluc,DateTime? NgayHethieuluc,short? IdDoituongKcb,string MaDoituongKcb,byte? IdLoaidoituongKcb,string MatheBhyt,decimal? PtramBhyt,decimal? PtramBhytGoc,DateTime? NgaybatdauBhyt,DateTime? NgayketthucBhyt,string NoicapBhyt,string MaNoicapBhyt,string MaDoituongBhyt,int? MaQuyenloi,string NoiDongtrusoKcbbd,string MaKcbbd,byte? TrangthaiNoitru,byte? DungTuyen,string Cmt,long? IdRavien,short? IdBuong,short? IdGiuong,short? IdKhoanoitru,byte? GiayBhyt,string MadtuongSinhsong,string DiachiBhyt,byte? TrangthaiCapcuu,string NguoiTao,DateTime? NgayTao,string NguoiSua,DateTime? NgaySua) { KcbLichsuDoituongKcb item = new KcbLichsuDoituongKcb(); item.IdBenhnhan = IdBenhnhan; item.MaLuotkham = MaLuotkham; item.NgayHieuluc = NgayHieuluc; item.NgayHethieuluc = NgayHethieuluc; item.IdDoituongKcb = IdDoituongKcb; item.MaDoituongKcb = MaDoituongKcb; item.IdLoaidoituongKcb = IdLoaidoituongKcb; item.MatheBhyt = MatheBhyt; item.PtramBhyt = PtramBhyt; item.PtramBhytGoc = PtramBhytGoc; item.NgaybatdauBhyt = NgaybatdauBhyt; item.NgayketthucBhyt = NgayketthucBhyt; item.NoicapBhyt = NoicapBhyt; item.MaNoicapBhyt = MaNoicapBhyt; item.MaDoituongBhyt = MaDoituongBhyt; item.MaQuyenloi = MaQuyenloi; item.NoiDongtrusoKcbbd = NoiDongtrusoKcbbd; item.MaKcbbd = MaKcbbd; item.TrangthaiNoitru = TrangthaiNoitru; item.DungTuyen = DungTuyen; item.Cmt = Cmt; item.IdRavien = IdRavien; item.IdBuong = IdBuong; item.IdGiuong = IdGiuong; item.IdKhoanoitru = IdKhoanoitru; item.GiayBhyt = GiayBhyt; item.MadtuongSinhsong = MadtuongSinhsong; item.DiachiBhyt = DiachiBhyt; item.TrangthaiCapcuu = TrangthaiCapcuu; item.NguoiTao = NguoiTao; item.NgayTao = NgayTao; item.NguoiSua = NguoiSua; item.NgaySua = NgaySua; item.Save(UserName); }
public static void GB_TinhPhtramBHYT(KcbChidinhclsChitiet objChidinhChitiet, KcbLichsuDoituongKcb objLichsu, bool noitru, decimal PTramBHYT) { byte TrangthaiBhyt = 1; decimal BHYT_PTRAM_TRAITUYENNOITRU = Utility.DecimaltoDbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_PTRAM_TRAITUYENNOITRU", "0", false), 0m); bool b_ExistPtramBHYT = false; if (!THU_VIEN_CHUNG.IsBaoHiem(objLichsu.IdLoaidoituongKcb.Value))//Đối tượng DV { TrangthaiBhyt = (byte)0; objChidinhChitiet.TuTuc = 0; } else { TrangthaiBhyt = (byte)(globalVariables.gv_blnApdungChedoDuyetBHYT ? 0 : 1); } if (Utility.Int32Dbnull(objChidinhChitiet.TrangthaiHuy, -1) == -1) { objChidinhChitiet.TrangthaiHuy = 0; } DmucDichvuclsChitiet obServiceDetail = DmucDichvuclsChitiet.FetchByID(Utility.Int32Dbnull(objChidinhChitiet.IdChitietdichvu)); if (obServiceDetail != null) { objChidinhChitiet.GiaDanhmuc = Utility.DecimaltoDbnull(obServiceDetail.DonGia); } objChidinhChitiet.PtramBhyt = PTramBHYT; objChidinhChitiet.PtramBhytGoc = objLichsu.PtramBhytGoc; objChidinhChitiet.LoaiChietkhau = 0; objChidinhChitiet.TrangthaiBhyt = TrangthaiBhyt; objChidinhChitiet.IdLoaichidinh = 0;//Chưa hiểu trường này-->Cần xem lại if (Utility.Int32Dbnull(objChidinhChitiet.TuTuc, 0) == 1) { objChidinhChitiet.BhytChitra = 0; objChidinhChitiet.BnhanChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0); objChidinhChitiet.PtramBhyt = 0; } else { //Mục tính BHYT đặc biệt để dành sử dụng trong tương lai PtramBHYTDacBiet(objChidinhChitiet, objLichsu, 2, ref b_ExistPtramBHYT); if (b_ExistPtramBHYT) { objChidinhChitiet.BhytChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia) * Utility.DecimaltoDbnull(objChidinhChitiet.PtramBhyt) / 100; objChidinhChitiet.BnhanChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) - Utility.DecimaltoDbnull(objChidinhChitiet.BhytChitra); } else//99% rơi vào nhánh này { PTramBHYT = Utility.DecimaltoDbnull(objLichsu.PtramBhyt); decimal BHCT = 0m; if (objLichsu.DungTuyen == 1)//BHYT đúng tuyến rơi vào nhánh này dù nội trú ngay ngoại trú { BHCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); } else//DV và BHYT trái tuyến { if (objLichsu.TrangthaiNoitru <= 0 || !noitru)//Đối tượng ngoại trú hoặc Chỉ định ngoại trú-->Lấy phần trăm ngoại trú { BHCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); } else//Nội trú cần tính=đơn giá * % đầu thẻ * % tuyến { BHCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia.Value, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc, 0) / 100) * (BHYT_PTRAM_TRAITUYENNOITRU / 100); } } decimal BNCT = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) - BHCT; objChidinhChitiet.BhytChitra = BHCT; objChidinhChitiet.BnhanChitra = BNCT; } } }
List<KcbLichsuDoituongKcb> GetHistory() { List<KcbLichsuDoituongKcb> lstValues = new List<KcbLichsuDoituongKcb>(); foreach (DataRow dr in m_dtData.Rows) { KcbLichsuDoituongKcb _newItem = null; if (Utility.Int32Dbnull(dr[KcbLichsuDoituongKcb.Columns.IdLichsuDoituongKcb], -1) > 0) { _newItem = KcbLichsuDoituongKcb.FetchByID(Utility.Int32Dbnull(dr[KcbLichsuDoituongKcb.Columns.IdLichsuDoituongKcb], -1)); _newItem.IsNew = false; _newItem.MarkOld(); _newItem.NguoiSua = globalVariables.UserName; _newItem.NgaySua = globalVariables.SysDate; } else { _newItem = new KcbLichsuDoituongKcb(); _newItem.IsNew = true; _newItem.NguoiTao = globalVariables.UserName; _newItem.NgayTao = globalVariables.SysDate; } _newItem.IdBenhnhan = objLuotkham.IdBenhnhan; _newItem.MaLuotkham = objLuotkham.MaLuotkham; _newItem.NgayHieuluc = Convert.ToDateTime(dr[KcbLichsuDoituongKcb.Columns.NgayHieuluc]); if (dr[KcbLichsuDoituongKcb.Columns.NgayHethieuluc].Equals(DBNull.Value)) _newItem.NgayHethieuluc = null; else _newItem.NgayHethieuluc = Convert.ToDateTime(dr[KcbLichsuDoituongKcb.Columns.NgayHethieuluc]); _newItem.IdDoituongKcb = Utility.Int16Dbnull(dr[KcbLichsuDoituongKcb.Columns.IdDoituongKcb]); _newItem.MaDoituongKcb = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.MaDoituongKcb]); _newItem.IdLoaidoituongKcb = Utility.ByteDbnull(dr[KcbLichsuDoituongKcb.Columns.IdLoaidoituongKcb]); _newItem.MatheBhyt = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.MatheBhyt]); _newItem.PtramBhyt = Utility.DecimaltoDbnull(dr[KcbLichsuDoituongKcb.Columns.PtramBhyt]); _newItem.PtramBhytGoc = Utility.DecimaltoDbnull(dr[KcbLichsuDoituongKcb.Columns.PtramBhytGoc]); if (dr[KcbLichsuDoituongKcb.Columns.NgaybatdauBhyt].Equals(DBNull.Value)) _newItem.NgaybatdauBhyt = null; else _newItem.NgaybatdauBhyt = Convert.ToDateTime(dr[KcbLichsuDoituongKcb.Columns.NgaybatdauBhyt]); if (dr[KcbLichsuDoituongKcb.Columns.NgayketthucBhyt].Equals(DBNull.Value)) _newItem.NgayketthucBhyt = null; else _newItem.NgayketthucBhyt = Convert.ToDateTime(dr[KcbLichsuDoituongKcb.Columns.NgayketthucBhyt]); _newItem.NoicapBhyt = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.NoicapBhyt]); _newItem.MaNoicapBhyt = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.MaNoicapBhyt]); _newItem.MaDoituongBhyt = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.MaDoituongBhyt]); _newItem.MaQuyenloi = Utility.Int32Dbnull(dr[KcbLichsuDoituongKcb.Columns.MaQuyenloi]); _newItem.NoiDongtrusoKcbbd = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.NoiDongtrusoKcbbd]); _newItem.MaKcbbd = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.MaKcbbd]); _newItem.TrangthaiNoitru = Utility.ByteDbnull(dr[KcbLichsuDoituongKcb.Columns.TrangthaiNoitru]); _newItem.DungTuyen = Utility.ByteDbnull(dr[KcbLichsuDoituongKcb.Columns.DungTuyen]); _newItem.Cmt = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.Cmt]); _newItem.IdRavien = Utility.Int64Dbnull(dr[KcbLichsuDoituongKcb.Columns.IdRavien]); _newItem.IdBuong = Utility.Int16Dbnull(dr[KcbLichsuDoituongKcb.Columns.IdBuong]); _newItem.IdGiuong = Utility.Int16Dbnull(dr[KcbLichsuDoituongKcb.Columns.IdGiuong]); _newItem.IdKhoanoitru = Utility.Int16Dbnull(dr[KcbLichsuDoituongKcb.Columns.IdKhoanoitru]); _newItem.GiayBhyt = Utility.ByteDbnull(dr[KcbLichsuDoituongKcb.Columns.GiayBhyt]); _newItem.MadtuongSinhsong = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.MadtuongSinhsong]); _newItem.DiachiBhyt = Utility.sDbnull(dr[KcbLichsuDoituongKcb.Columns.DiachiBhyt]); _newItem.TrangthaiCapcuu = Utility.ByteDbnull(dr[KcbLichsuDoituongKcb.Columns.TrangthaiCapcuu]); lstValues.Add(_newItem); } return lstValues; }
public static void PtramBHYTDacBiet(KcbChidinhclsChitiet objChidinhChitiet, KcbLichsuDoituongKcb objLichsu, int PaymentType_ID, ref bool b_Exist) { b_Exist = false; string IsDungTuyen = "DT"; DmucDoituongkcb objectType = DmucDoituongkcb.FetchByID(objLichsu.IdDoituongKcb); if (objectType != null) { switch (objectType.MaDoituongKcb) { case "BHYT": if (Utility.Int32Dbnull(objLichsu.DungTuyen, "0") == 1) IsDungTuyen = "DT"; else { IsDungTuyen = "TT"; } break; default: IsDungTuyen = "KHAC"; break; } } SqlQuery sqlQuery = new Select().From(DmucBhytChitraDacbiet.Schema) .Where(DmucBhytChitraDacbiet.Columns.IdDichvuChitiet).IsEqualTo(objChidinhChitiet.IdChitietchidinh) .And(DmucBhytChitraDacbiet.Columns.MaLoaithanhtoan).IsEqualTo(PaymentType_ID) .And(DmucBhytChitraDacbiet.Columns.DungtuyenTraituyen).IsEqualTo(IsDungTuyen) .And(DmucBhytChitraDacbiet.Columns.MaDoituongKcb).IsEqualTo(objLichsu.MaDoituongKcb); DmucBhytChitraDacbiet objDetailPtramBhyt = sqlQuery.ExecuteSingle<DmucBhytChitraDacbiet>(); if (objDetailPtramBhyt != null) { objChidinhChitiet.IdLoaichidinh = 1; objChidinhChitiet.BhytChitra = Gia_BHYT(objDetailPtramBhyt.TileGiam, Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0)); objChidinhChitiet.BnhanChitra = Utility.DecimaltoDbnull(objChidinhChitiet.DonGia, 0) - objChidinhChitiet.BhytChitra; objChidinhChitiet.PtramBhyt = Utility.DecimaltoDbnull(objDetailPtramBhyt.TileGiam, 0); objChidinhChitiet.LoaiChietkhau = 1; b_Exist = true; // objChidinhChitiet.DonGia = } }
public void Update(long IdBenhnhan,string MaLuotkham,DateTime NgayHieuluc,DateTime? NgayHethieuluc,short? IdDoituongKcb,string MaDoituongKcb,byte? IdLoaidoituongKcb,string MatheBhyt,decimal? PtramBhyt,DateTime? NgaybatdauBhyt,DateTime? NgayketthucBhyt,string NoicapBhyt,string MaNoicapBhyt,string MaDoituongBhyt,int? MaQuyenloi,string NoiDongtrusoKcbbd,string MaKcbbd,byte? TrangthaiNoitru,byte? DungTuyen,int? IdRavien,short? IdBuong,short? IdGiuong,short? IdKhoanoitru) { KcbLichsuDoituongKcb item = new KcbLichsuDoituongKcb(); item.MarkOld(); item.IsLoaded = true; item.IdBenhnhan = IdBenhnhan; item.MaLuotkham = MaLuotkham; item.NgayHieuluc = NgayHieuluc; item.NgayHethieuluc = NgayHethieuluc; item.IdDoituongKcb = IdDoituongKcb; item.MaDoituongKcb = MaDoituongKcb; item.IdLoaidoituongKcb = IdLoaidoituongKcb; item.MatheBhyt = MatheBhyt; item.PtramBhyt = PtramBhyt; item.NgaybatdauBhyt = NgaybatdauBhyt; item.NgayketthucBhyt = NgayketthucBhyt; item.NoicapBhyt = NoicapBhyt; item.MaNoicapBhyt = MaNoicapBhyt; item.MaDoituongBhyt = MaDoituongBhyt; item.MaQuyenloi = MaQuyenloi; item.NoiDongtrusoKcbbd = NoiDongtrusoKcbbd; item.MaKcbbd = MaKcbbd; item.TrangthaiNoitru = TrangthaiNoitru; item.DungTuyen = DungTuyen; item.IdRavien = IdRavien; item.IdBuong = IdBuong; item.IdGiuong = IdGiuong; item.IdKhoanoitru = IdKhoanoitru; item.Save(UserName); }
public static void TinhPhanTramBHYT(NoitruPhanbuonggiuong objNoitruPhanbuonggiuong, KcbLichsuDoituongKcb objLichsu, decimal PtramBHYT) { try { decimal BHYT_PTRAM_TRAITUYENNOITRU = Utility.DecimaltoDbnull(THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_PTRAM_TRAITUYENNOITRU", "0", false), 0m); if (Utility.Int32Dbnull(objNoitruPhanbuonggiuong.TrongGoi, 0) == 1) { objNoitruPhanbuonggiuong.BhytChitra = 0;// Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * PtramBHYT / 100; objNoitruPhanbuonggiuong.BnhanChitra = 0; } else//Ngoài gói { if (objNoitruPhanbuonggiuong.TuTuc == 1) { objNoitruPhanbuonggiuong.BhytChitra = 0; objNoitruPhanbuonggiuong.BnhanChitra = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0); } else { decimal BHCT = 0m; if (objLichsu.DungTuyen == 1) { BHCT = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc, 0) / 100); } else { if (objLichsu.TrangthaiNoitru <= 0) { BHCT = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhyt, 0) / 100); } else//Nội trú cần tính=đơn giá * % đầu thẻ * % tuyến { BHCT = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * (Utility.DecimaltoDbnull(objLichsu.PtramBhytGoc, 0) / 100) * (BHYT_PTRAM_TRAITUYENNOITRU / 100); } } objNoitruPhanbuonggiuong.BhytChitra = BHCT;// Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) * PtramBHYT / 100; objNoitruPhanbuonggiuong.BnhanChitra = Utility.DecimaltoDbnull(objNoitruPhanbuonggiuong.DonGia, 0) - BHCT; } } } catch (Exception) { // throw; } }
public ActionResult ThemmoiLuotkham(SysTrace mytrace, KcbDanhsachBenhnhan objKcbDanhsachBenhnhan, KcbLuotkham objLuotkham, KcbDangkyKcb objKcbDangkyKcb, KcbDangkySokham objSoKCB, int KieuKham, ref long id_kham, ref string Msg) { try { using (var scope = new TransactionScope()) { using (var dbscope = new SharedDbConnectionScope()) { UpdatePatientInfo(objKcbDanhsachBenhnhan); KcbLichsuDoituongKcb objLichsuKcb = new KcbLichsuDoituongKcb(); objLichsuKcb.IdBenhnhan = objLuotkham.IdBenhnhan; objLichsuKcb.MaLuotkham = objLuotkham.MaLuotkham; objLichsuKcb.NgayHieuluc = objLuotkham.NgayTiepdon; objLichsuKcb.IdDoituongKcb = objLuotkham.IdDoituongKcb; objLichsuKcb.MaDoituongKcb = objLuotkham.MaDoituongKcb; objLichsuKcb.IdLoaidoituongKcb = objLuotkham.IdLoaidoituongKcb; objLichsuKcb.MatheBhyt = objLuotkham.MatheBhyt; objLichsuKcb.PtramBhyt = objLuotkham.PtramBhyt; objLichsuKcb.PtramBhytGoc = objLuotkham.PtramBhytGoc; objLichsuKcb.NgaybatdauBhyt = objLuotkham.NgaybatdauBhyt; objLichsuKcb.NgayketthucBhyt = objLuotkham.NgayketthucBhyt; objLichsuKcb.NoicapBhyt = objLuotkham.NoicapBhyt; objLichsuKcb.MaNoicapBhyt = objLuotkham.MaNoicapBhyt; objLichsuKcb.MaDoituongBhyt = objLuotkham.MaDoituongBhyt; objLichsuKcb.MaQuyenloi = objLuotkham.MaQuyenloi; objLichsuKcb.NoiDongtrusoKcbbd = objLuotkham.NoiDongtrusoKcbbd; objLichsuKcb.MaKcbbd = objLuotkham.MaKcbbd; objLichsuKcb.TrangthaiNoitru = 0; objLichsuKcb.DungTuyen = objLuotkham.DungTuyen; objLichsuKcb.Cmt = objLuotkham.Cmt; objLichsuKcb.IdRavien = -1; objLichsuKcb.IdBuong = -1; objLichsuKcb.IdGiuong = -1; objLichsuKcb.IdKhoanoitru = -1; objLichsuKcb.NguoiTao = globalVariables.UserName; objLichsuKcb.NgayTao = globalVariables.SysDate; objLichsuKcb.IsNew = true; objLichsuKcb.Save(); SqlQuery sqlQueryPatientExam = new Select().From(KcbLuotkham.Schema) .Where(KcbLuotkham.Columns.IdBenhnhan).IsNotEqualTo(objLuotkham.IdBenhnhan) .And(KcbLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham); if (sqlQueryPatientExam.GetRecordCount() > 0)//Nếu BN khác đã lấy mã này { objLuotkham.MaLuotkham = THU_VIEN_CHUNG.KCB_SINH_MALANKHAM((byte)(objKcbDanhsachBenhnhan.KieuBenhnhan == 0 ? 0 : 1)); new Update(KcbLichsuDoituongKcb.Schema) .Set(KcbLichsuDoituongKcb.Columns.MaLuotkham).EqualTo(objLuotkham.MaLuotkham) .Where(KcbLichsuDoituongKcb.Columns.IdLichsuDoituongKcb).IsEqualTo(objLichsuKcb.IdLichsuDoituongKcb).Execute(); } objLuotkham.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; objLuotkham.IsNew = true; objLuotkham.Save(); new Update(KcbDmucLuotkham.Schema) .Set(KcbDmucLuotkham.Columns.TrangThai).EqualTo(2) .Set(KcbDmucLuotkham.Columns.EndTime).EqualTo(DateTime.Now) .Where(KcbDmucLuotkham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .And(KcbDmucLuotkham.Columns.Loai).IsEqualTo((byte)(objKcbDanhsachBenhnhan.KieuBenhnhan == 0 ? 0 : 1)) .And(KcbDmucLuotkham.Columns.TrangThai).IsLessThanOrEqualTo(1) .And(KcbDmucLuotkham.Columns.Nam).IsEqualTo(globalVariables.SysDate.Year) .And(KcbDmucLuotkham.Columns.UsedBy).IsLessThanOrEqualTo(globalVariables.UserName) .Execute(); ; if (objSoKCB != null) { //Kiểm tra xem có sổ KCB hay chưa objSoKCB.MaLuotkham = Utility.sDbnull(objLuotkham.MaLuotkham); objSoKCB.IdBenhnhan = Utility.Int32Dbnull(objLuotkham.IdBenhnhan); KcbDangkySokham _temp = new Select().From(KcbDangkySokham.Schema).Where(KcbDangkySokham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan) .And(KcbDangkySokham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .ExecuteSingle<KcbDangkySokham>(); if (_temp == null) { objSoKCB.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; objSoKCB.NgayTao = globalVariables.SysDate; objSoKCB.NguoiTao = globalVariables.UserName; objSoKCB.IsNew = true; objSoKCB.Save(); } else { if (Utility.Int64Dbnull(_temp.IdThanhtoan, 0) > 0)//Ko làm gì cả { Msg = "Đã thu tiền sổ khám của Bệnh nhân nên không được phép xóa hoặc cập nhật lại"; } else//Update lại sổ KCB { _temp.DonGia = objSoKCB.DonGia; _temp.BnhanChitra = objSoKCB.BnhanChitra; _temp.BhytChitra = objSoKCB.BhytChitra; _temp.PtramBhyt = objSoKCB.PtramBhyt; _temp.PtramBhytGoc = objSoKCB.PtramBhytGoc; _temp.PhuThu = objSoKCB.PhuThu; _temp.TuTuc = objSoKCB.TuTuc; _temp.NguonThanhtoan = objSoKCB.NguonThanhtoan; _temp.IdLoaidoituongkcb = objSoKCB.IdLoaidoituongkcb; _temp.IdDoituongkcb = objSoKCB.IdDoituongkcb; _temp.MaDoituongkcb = objSoKCB.MaDoituongkcb; _temp.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; _temp.Noitru = objSoKCB.Noitru; _temp.IdGoi = objSoKCB.IdGoi; _temp.TrongGoi = objSoKCB.TrongGoi; _temp.IdNhanvien = objSoKCB.IdNhanvien; _temp.NgaySua = globalVariables.SysDate; _temp.NguoiSua = globalVariables.UserName; _temp.IsNew = false; _temp.MarkOld(); _temp.Save(); } } } else { new Delete().From(KcbDangkySokham.Schema).Where(KcbDangkySokham.Columns.IdBenhnhan).IsEqualTo(objLuotkham.IdBenhnhan) .And(KcbDangkySokham.Columns.MaLuotkham).IsEqualTo(objLuotkham.MaLuotkham) .And(KcbDangkySokham.Columns.TrangthaiThanhtoan).IsEqualTo(0) .Execute(); } if (objKcbDangkyKcb != null) { objKcbDangkyKcb.MaLuotkham = Utility.sDbnull(objLuotkham.MaLuotkham); objKcbDangkyKcb.IdBenhnhan = Utility.Int32Dbnull(objLuotkham.IdBenhnhan); objKcbDangkyKcb.IdLichsuDoituongKcb = objLichsuKcb.IdLichsuDoituongKcb; id_kham= AddRegExam(objKcbDangkyKcb,objLuotkham, false, KieuKham); } mytrace.Desc = string.Format("Thêm mới lượt khám ID={0}, Code={1}, Name={2}", objKcbDanhsachBenhnhan.IdBenhnhan.ToString(), objLuotkham.MaLuotkham, objKcbDanhsachBenhnhan.TenBenhnhan); mytrace.Lot = 0; mytrace.IsNew = true; mytrace.Save(); scope.Complete(); return ActionResult.Success; } } } catch (Exception ex) { return ActionResult.Error; } }