コード例 #1
0
        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;
               }
        }
コード例 #2
0
ファイル: TinhCLS.cs プロジェクト: vmshis2015/VMSHIS2017
        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 =
            }
        }
コード例 #3
0
 public bool Destroy(object IdLichsuDoituongKcb)
 {
     return(KcbLichsuDoituongKcb.Destroy(IdLichsuDoituongKcb) == 1);
 }
コード例 #4
0
 public bool Delete(object IdLichsuDoituongKcb)
 {
     return(KcbLichsuDoituongKcb.Delete(IdLichsuDoituongKcb) == 1);
 }
コード例 #5
0
 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));
 }
コード例 #6
0
ファイル: KCB_DANGKY.cs プロジェクト: vmshis2020/VMSHISServer
        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;
            }
        }
コード例 #7
0
ファイル: TinhCLS.cs プロジェクト: vmshis2020/VMSHISServer
        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;
               }

               }
        }
コード例 #8
0
        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;
            }
        }
コード例 #9
0
        /// <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;
            }
        }
コード例 #10
0
        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;
            }
        }
コード例 #11
0
 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;
     }
 }
コード例 #12
0
ファイル: KCB_DANGKY.cs プロジェクト: vmshis2020/VMSHISServer
        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;
            }
        }
コード例 #13
0
ファイル: KCB_DANGKY.cs プロジェクト: vmshis2020/VMSHISServer
        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;
            }
        }
コード例 #14
0
        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);
        }
コード例 #15
0
        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);
        }
コード例 #16
0
ファイル: TinhCLS.cs プロジェクト: vmshis2015/VMSHIS2017
        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;
                }
            }
        }
コード例 #17
0
        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;
        }
コード例 #18
0
ファイル: TinhCLS.cs プロジェクト: vmshis2020/VMSHISServer
        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 =
               }
        }
コード例 #19
0
        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);
        }
コード例 #20
0
        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;
            }
        }
コード例 #21
0
ファイル: KCB_DANGKY.cs プロジェクト: vmshis2020/VMSHISServer
        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;
            }
        }