Esempio n. 1
0
        /// <summary>
        /// ham thực hiện
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frm_KetLuan_Load(object sender, EventArgs e)
        {
            KcbChidinhclsChitiet assignDetail = KcbChidinhclsChitiet.FetchByID(AssignDetail_ID);

            if (assignDetail != null)
            {
                //txtKetLuan.Text = Utility.sDbnull(assignDetail.KetLuan, "");
            }
        }
Esempio n. 2
0
 void frm_ViewImages_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Escape)
     {
         this.Close();
         return;
     }
     if (e.KeyCode == Keys.F5)
     {
         objChitiet = KcbChidinhclsChitiet.FetchByID(objChitiet.IdChitietchidinh);
         LoadImages();
         return;
     }
 }
        private bool InValiAssign()
        {
            bool b_Cancel = false;

            if (grdDetail.GetCheckedRows().Length <= 0)
            {
                Utility.ShowMsg("Bạn phải chọn một bản ghi thực hiện xóa chỉ định kiểm nghiệm", "Thông báo",
                                MessageBoxIcon.Warning);
                grdDetail.Focus();
                return(false);
            }
            foreach (GridEXRow gridExRow in grdDetail.GetCheckedRows())
            {
                int AssignDetail_ID =
                    Utility.Int32Dbnull(gridExRow.Cells[KcbChidinhclsChitiet.Columns.IdChitietchidinh].Value, -1);
                KcbChidinhclsChitiet objchitiet = KcbChidinhclsChitiet.FetchByID(AssignDetail_ID);
                if (!globalVariables.IsAdmin)
                {
                    if (objchitiet != null && objchitiet.NguoiTao != globalVariables.UserName)
                    {
                        Utility.ShowMsg("Trong các chỉ định bạn chọn xóa, có một số chỉ định được kê bởi Bác sĩ khác nên bạn không được phép xóa. Mời bạn chọn lại chỉ các chỉ định do chính bạn kê để thực hiện xóa");
                        return(false);
                    }
                }
                if (objchitiet != null && Utility.ByteDbnull(objchitiet.TrangthaiThanhtoan, 0) > 0)
                {
                    Utility.ShowMsg("Chỉ định bạn chọn đã được thanh toán nên bạn không thể xóa. Đề nghị kiểm tra lại");
                    return(false);
                }
                if (objchitiet != null && Utility.ByteDbnull(objchitiet.TrangThai, 0) >= 1)
                {
                    Utility.ShowMsg("Chỉ định bạn chọn đã được chuyển làm kiểm nghiệm hoặc đã có kết quả nên không thể xóa. Đề nghị kiểm tra lại");
                    return(false);
                }
            }
            return(true);
        }
        public ActionResult SaoChepPhieuDieuTri(NoitruPhieudieutri[] lstPhieudieutri, KcbLuotkham objLuotkham, KcbChidinhclsChitiet[] arrChidinhCLSChitiet, KcbDonthuocChitiet[] arrDonthuocChitiet)
        {
            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var dbscope = new SharedDbConnectionScope())
                    {
                        foreach (NoitruPhieudieutri objTreatment in lstPhieudieutri)
                        {
                            objTreatment.NguoiTao      = globalVariables.UserName;
                            objTreatment.NgayTao       = DateTime.Now;
                            objTreatment.TthaiBosung   = 0;
                            objTreatment.IdBacsi       = globalVariables.gv_intIDNhanvien;
                            objTreatment.IdKhoanoitru  = objLuotkham.IdKhoanoitru;
                            objTreatment.MaLuotkham    = objLuotkham.MaLuotkham;
                            objTreatment.IdBenhnhan    = objTreatment.IdBenhnhan;
                            objTreatment.IdBuongGiuong = objLuotkham.IdRavien;
                            objTreatment.TrangThai     = 0;
                            objTreatment.TthaiIn       = 0;
                            objTreatment.IpMaytao      = globalVariables.gv_strIPAddress;
                            objTreatment.TenMaytao     = globalVariables.gv_strComputerName;
                            objTreatment.GioDieutri    = Utility.GetFormatDateTime(globalVariables.SysDate, "hh:mm:ss");
                            objTreatment.IsNew         = true;
                            objTreatment.Save();
                            if (arrChidinhCLSChitiet.Length > 0)
                            {
                                KcbChidinhcl objAssignInfo = new KcbChidinhcl();
                                objAssignInfo.IdDieutri      = objTreatment.IdPhieudieutri;
                                objAssignInfo.IdBuongGiuong  = objTreatment.IdBuongGiuong;
                                objAssignInfo.MaLuotkham     = objTreatment.MaLuotkham;
                                objAssignInfo.IdBenhnhan     = Utility.Int32Dbnull(objTreatment.IdBenhnhan);
                                objAssignInfo.IdBacsiChidinh = globalVariables.gv_intIDNhanvien;
                                objAssignInfo.Noitru         = 1;
                                objAssignInfo.IdKhoadieutri  = objTreatment.IdKhoanoitru;
                                objAssignInfo.IdKhoaChidinh  = objTreatment.IdKhoanoitru;
                                objAssignInfo.IdKham         = -1;
                                objAssignInfo.IdDoituongKcb  = objLuotkham.IdDoituongKcb;
                                objAssignInfo.IdPhongChidinh = objTreatment.IdKhoanoitru;
                                objAssignInfo.Barcode        = string.Empty;

                                objAssignInfo.NgayChidinh = objTreatment.NgayDieutri.Value;
                                objAssignInfo.NguoiTao    = globalVariables.UserName;
                                objAssignInfo.NgayTao     = globalVariables.SysDate;
                                objAssignInfo.IpMaytao    = globalVariables.gv_strIPAddress;
                                objAssignInfo.TenMaytao   = globalVariables.gv_strComputerName;

                                objAssignInfo.MaChidinh = THU_VIEN_CHUNG.SinhMaChidinhCLS();
                                objAssignInfo.IsNew     = true;
                                objAssignInfo.Save();
                                List <KcbChidinhclsChitiet> lstChidinhCLSChitiet = new List <KcbChidinhclsChitiet>();
                                foreach (KcbChidinhclsChitiet objAssignDetail in arrChidinhCLSChitiet)
                                {
                                    KcbChidinhclsChitiet objDetail = KcbChidinhclsChitiet.FetchByID(objAssignDetail.IdChitietchidinh);
                                    if (objDetail != null)
                                    {
                                        objDetail.IdChitietchidinh   = -1;
                                        objDetail.IdChidinh          = objAssignInfo.IdChidinh;
                                        objDetail.IdKham             = -1;
                                        objDetail.TrangthaiThanhtoan = 0;
                                        objDetail.NgayThanhtoan      = null;
                                        objDetail.TrangthaiHuy       = 0;
                                        objDetail.ImgPath1           = string.Empty;
                                        objDetail.ImgPath2           = string.Empty;
                                        objDetail.ImgPath3           = string.Empty;
                                        objDetail.ImgPath4           = string.Empty;
                                        objDetail.TrangThai          = 0;
                                        //objDetail.MotaThem = null;
                                        objDetail.TrangthaiBhyt   = 0;
                                        objDetail.IdThanhtoan     = -1;
                                        objDetail.IdKhoaThuchien  = (short)objAssignInfo.IdKhoadieutri;
                                        objDetail.IdPhongThuchien = objDetail.IdKhoaThuchien;
                                        objDetail.IdGoi           = -1;
                                        objDetail.IdBacsiThuchien = -1;
                                        objDetail.NgayThuchien    = null;
                                        objDetail.NguoiThuchien   = null;
                                        //objDetail.KetLuan = null;
                                        objDetail.KetQua = null;
                                        //objDetail.DeNghi = null;
                                        //objDetail.MaVungkhaosat = null;
                                        objDetail.NguoiTao  = globalVariables.UserName;
                                        objDetail.NgayTao   = globalVariables.SysDate;
                                        objDetail.IpMaytao  = globalVariables.gv_strIPAddress;
                                        objDetail.TenMaytao = globalVariables.gv_strComputerName;
                                        objDetail.IsNew     = true;
                                        lstChidinhCLSChitiet.Add(objDetail);
                                    }
                                    new KCB_CHIDINH_CANLAMSANG().InsertAssignDetail(objAssignInfo, objLuotkham, lstChidinhCLSChitiet.ToArray <KcbChidinhclsChitiet>());
                                }
                            }
                            if (arrDonthuocChitiet.Length > 0)
                            {
                                var query = (from donthuoc in arrDonthuocChitiet.AsEnumerable()
                                             let y = donthuoc.IdDonthuoc
                                                     select y).Distinct();
                                foreach (var pres_id in query.ToList())
                                {
                                    KcbDonthuoc objPresInfo = KcbDonthuoc.FetchByID(Utility.Int32Dbnull(pres_id));
                                    if (objPresInfo != null)
                                    {
                                        objPresInfo.Noitru = 1;
                                        List <KcbDonthuocChitiet> lstDonthuocchitiet = (from donthuoc in arrDonthuocChitiet.AsEnumerable()
                                                                                        where donthuoc.IdDonthuoc == pres_id
                                                                                        select donthuoc).ToList <KcbDonthuocChitiet>();
                                        SaoChepDonThuocTheoPhieuDieuTri(objPresInfo, objTreatment, lstDonthuocchitiet.ToArray <KcbDonthuocChitiet>());
                                    }
                                }
                            }
                        }
                    }
                    scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception exception)
            {
                return(ActionResult.Error);
            }
        }
Esempio n. 5
0
        void mnuCancelResult_Click(object sender, EventArgs e)
        {
            if (grdKetqua.SelectedItems.Count > 1)
            {
                if (!Utility.AcceptQuestion("Bạn có chắc chắn muốn hủy kết quả các xét nghiệm đang chọn", "Hủy kết quả", true))
                {
                    return;
                }
            }
            List <KcbKetquaCl>          lstResult  = new List <KcbKetquaCl>();
            List <KcbChidinhclsChitiet> lstDetails = new List <KcbChidinhclsChitiet>();

            foreach (GridEXRow row in grdKetqua.SelectedItems)
            {
                KcbKetquaCl          _item        = null;
                KcbChidinhclsChitiet _itemchitiet = null;
                try
                {
                    int id_kq            = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbKetquaCl.Columns.IdKq), -1);
                    int IdChitietchidinh = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.IdChitietchidinh), -1);
                    int IdChitietdichvu  = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, DmucDichvuclsChitiet.Columns.IdChitietdichvu), -1);
                    _itemchitiet       = KcbChidinhclsChitiet.FetchByID(IdChitietchidinh);
                    _itemchitiet.IsNew = false;
                    _itemchitiet.MarkOld();
                    if (id_kq > 0)
                    {
                        _item           = KcbKetquaCl.FetchByID(id_kq);
                        _item.IsNew     = false;
                        _item.NguoiSua  = globalVariables.UserName;
                        _item.NgaySua   = globalVariables.SysDate;
                        _item.IpMaysua  = globalVariables.gv_strIPAddress;
                        _item.TenMaysua = globalVariables.gv_strComputerName;
                        _item.MarkOld();
                    }
                    else
                    {
                        _item           = new KcbKetquaCl();
                        _item.IsNew     = true;
                        _item.NguoiTao  = globalVariables.UserName;
                        _item.NgayTao   = globalVariables.SysDate;
                        _item.IpMaytao  = globalVariables.gv_strIPAddress;
                        _item.TenMaytao = globalVariables.gv_strComputerName;
                    }
                    DmucDichvuclsChitiet objcls = DmucDichvuclsChitiet.FetchByID(IdChitietdichvu);
                    if (objcls != null)
                    {
                        _item.MaChidinh        = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.MaChidinh);
                        _item.MaBenhpham       = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.MaBenhpham);
                        _item.Barcode          = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.Barcode);
                        _item.IdBenhnhan       = id_benhnhan;
                        _item.MaLuotkham       = ma_luotkham;
                        _item.IdChidinh        = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.IdChidinh), -1);
                        _item.IdChitietchidinh = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.IdChitietchidinh), -1);
                        _item.IdDichvu         = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.IdDichvu), -1);
                        _item.IdDichvuchitiet  = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.IdChitietdichvu), -1);
                        _item.Barcode          = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.Barcode);
                        _item.SttIn            = objcls.SttHthi;
                        _item.BtNam            = objcls.BinhthuongNam;
                        _item.BtNu             = objcls.BinhthuongNu;
                        _item.KetQua           = Utility.sDbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.KetQua), -1);
                        if (_item.TrangThai < 3)
                        {
                            _item.TrangThai = 3;
                        }
                        if (chkSaveAndConfirm.Checked)
                        {
                            _item.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                        }
                        if (Utility.DoTrim(_item.KetQua) == "")
                        {
                            _item.TrangThai = 2;//Quay ve trang thai chuyen đang thực hiện
                        }
                        //_item.TenDonvitinh = objcls.TenDonvitinh;
                        _itemchitiet.KetQua = Utility.sDbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.KetQua), -1);
                        if (_itemchitiet.TrangThai < 3)
                        {
                            _itemchitiet.TrangThai = 3;
                        }
                        if (chkSaveAndConfirm.Checked)
                        {
                            _itemchitiet.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                        }
                        if (Utility.DoTrim(_itemchitiet.KetQua) == "")
                        {
                            _itemchitiet.TrangThai = 1;//Quay ve trang thai chuyen can
                        }
                        _item.TenThongso     = "";
                        _item.TenKq          = "";
                        _item.LoaiKq         = 0;
                        _item.ChophepHienthi = 1;
                        _item.ChophepIn      = 1;
                        _item.MotaThem       = objcls.MotaThem;
                    }
                    lstResult.Add(_item);
                    lstDetails.Add(_itemchitiet);
                }
                catch (Exception)
                {
                }
            }
            if (clsXN.UpdateResult(lstResult, lstDetails) == ActionResult.Success)
            {
                Utility.ShowMsg("Đã hủy kết quả các xét nghiệm đang chọn thành công");
            }
            else
            {
                Utility.ShowMsg("Lỗi khi thực hiện hủy kết quả xét nghiệm");
            }
        }
Esempio n. 6
0
        //KcbChidinhclsChitiet.Trang_thai:0=Mới chỉ định;1=Đã chuyển CLS;2=Đang thực hiện;3= Đã có kết quả CLS;4=Đã xác nhận kết quả
        void grdKetqua_UpdatingCell(object sender, UpdatingCellEventArgs e)
        {
            try
            {
                List <KcbKetquaCl>          lstResult  = new List <KcbKetquaCl>();
                List <KcbChidinhclsChitiet> lstDetails = new List <KcbChidinhclsChitiet>();
                int id_kq               = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbKetquaCl.Columns.IdKq), -1);
                int IdChitietchidinh    = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdChitietchidinh), -1);
                int IdChitietchidinhcha = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhclsChitiet.Columns.IdChitietchidinh), -1);
                int CoChitiet           = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdChidinh, DmucDichvuclsChitiet.Columns.CoChitiet), -1);

                int                  IdChitietdichvu = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, DmucDichvuclsChitiet.Columns.IdChitietdichvu), -1);
                KcbKetquaCl          _item           = null;
                KcbChidinhclsChitiet _itemchitiet    = KcbChidinhclsChitiet.FetchByID(IdChitietchidinh);
                KcbChidinhclsChitiet _itemchitietcha = null;
                if (CoChitiet == 1)
                {
                    _itemchitietcha = KcbChidinhclsChitiet.FetchByID(IdChitietchidinhcha);
                    if (_itemchitietcha != null)
                    {
                        _itemchitietcha.IsNew = false;
                        _itemchitietcha.MarkOld();
                    }
                }
                _itemchitiet.IsNew = false;
                _itemchitiet.MarkOld();
                if (id_kq > 0)
                {
                    _item           = KcbKetquaCl.FetchByID(id_kq);
                    _item.IsNew     = false;
                    _item.NguoiSua  = globalVariables.UserName;
                    _item.NgaySua   = globalVariables.SysDate;
                    _item.IpMaysua  = globalVariables.gv_strIPAddress;
                    _item.TenMaysua = globalVariables.gv_strComputerName;
                    _item.MarkOld();
                }
                else
                {
                    _item           = new KcbKetquaCl();
                    _item.IsNew     = true;
                    _item.NguoiTao  = globalVariables.UserName;
                    _item.NgayTao   = globalVariables.SysDate;
                    _item.IpMaytao  = globalVariables.gv_strIPAddress;
                    _item.TenMaytao = globalVariables.gv_strComputerName;
                }
                DmucDichvuclsChitiet objcls = DmucDichvuclsChitiet.FetchByID(IdChitietdichvu);
                if (objcls != null)
                {
                    _item.MaChidinh        = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.MaChidinh);
                    _item.MaBenhpham       = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.MaBenhpham);
                    _item.Barcode          = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.Barcode);
                    _item.IdBenhnhan       = id_benhnhan;
                    _item.MaLuotkham       = ma_luotkham;
                    _item.IdChidinh        = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdChidinh), -1);
                    _item.IdChitietchidinh = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdChitietchidinh), -1);
                    _item.IdDichvu         = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdDichvu), -1);
                    _item.IdDichvuchitiet  = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdChitietdichvu), -1);
                    _item.Barcode          = Utility.GetValueFromGridColumn(grdChidinh, KcbChidinhcl.Columns.Barcode);
                    _item.SttIn            = objcls.SttHthi;
                    _item.BtNam            = objcls.BinhthuongNam;
                    _item.BtNu             = objcls.BinhthuongNu;
                    _item.KetQua           = Utility.sDbnull(e.Value, "");
                    if (_item.TrangThai < 3)
                    {
                        _item.TrangThai = 3;
                    }
                    if (chkSaveAndConfirm.Checked)
                    {
                        _item.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                    }
                    if (Utility.DoTrim(_item.KetQua) == "")
                    {
                        _item.TrangThai = 2;//Quay ve trang thai chuyen đang thực hiện
                    }
                    //_item.TenDonvitinh = objcls.TenDonvitinh;
                    _itemchitiet.KetQua = Utility.sDbnull(e.Value, "");
                    if (_itemchitiet.TrangThai < 3)
                    {
                        _itemchitiet.TrangThai = 3;
                    }
                    if (chkSaveAndConfirm.Checked)
                    {
                        _itemchitiet.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                    }
                    if (Utility.DoTrim(_itemchitiet.KetQua) == "")
                    {
                        _itemchitiet.TrangThai = 1;//Quay ve trang thai chuyen can
                    }
                    if (_itemchitietcha != null && _itemchitietcha.TrangThai < 3)
                    {
                        _itemchitietcha.TrangThai = 3;
                    }
                    if (_itemchitietcha != null && chkSaveAndConfirm.Checked)
                    {
                        _itemchitietcha.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                    }
                    if (_itemchitietcha != null && Utility.DoTrim(Utility.sDbnull(e.Value, "")) == "")
                    {
                        _itemchitietcha.TrangThai = 1;//Quay ve trang thai chuyen can
                    }
                    _item.TenThongso     = "";
                    _item.TenKq          = "";
                    _item.LoaiKq         = 0;
                    _item.ChophepHienthi = 1;
                    _item.ChophepIn      = 1;
                    _item.MotaThem       = objcls.MotaThem;
                    lstResult.Add(_item);
                    lstDetails.Add(_itemchitiet);
                    if (_itemchitietcha != null)
                    {
                        lstDetails.Add(_itemchitietcha);
                    }
                    if (clsXN.UpdateResult(lstResult, lstDetails) != ActionResult.Success)
                    {
                        e.Cancel = true;
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Esempio n. 7
0
        void Confirm()
        {
            byte _result = 3;

            try
            {
                foreach (GridEXRow row in grdKetqua.GetDataRows())
                {
                    List <KcbKetquaCl>          lstResult  = new List <KcbKetquaCl>();
                    List <KcbChidinhclsChitiet> lstDetails = new List <KcbChidinhclsChitiet>();
                    int id_kq               = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbKetquaCl.Columns.IdKq), -1);
                    int IdChitietchidinh    = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, KcbChidinhclsChitiet.Columns.IdChitietchidinh), -1);
                    int IdChitietchidinhcha = Utility.Int32Dbnull(dtChidinh.Rows[0][KcbChidinhclsChitiet.Columns.IdChitietchidinh], -1);


                    int IdChitietdichvu                  = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(row, DmucDichvuclsChitiet.Columns.IdChitietdichvu), -1);
                    DmucDichvuclsChitiet objcls          = DmucDichvuclsChitiet.FetchByID(IdChitietdichvu);
                    int                  CoChitiet       = Utility.Int32Dbnull(objcls.CoChitiet, 0);
                    KcbKetquaCl          _item           = null;
                    KcbChidinhclsChitiet _itemchitiet    = KcbChidinhclsChitiet.FetchByID(IdChitietchidinh);
                    KcbChidinhclsChitiet _itemchitietcha = null;
                    if (CoChitiet == 1)
                    {
                        _itemchitietcha = KcbChidinhclsChitiet.FetchByID(IdChitietchidinhcha);
                        if (_itemchitietcha != null)
                        {
                            _itemchitietcha.IsNew = false;
                            _itemchitietcha.MarkOld();
                        }
                    }
                    _itemchitiet.IsNew = false;
                    _itemchitiet.MarkOld();
                    if (id_kq > 0)
                    {
                        _item           = KcbKetquaCl.FetchByID(id_kq);
                        _item.IsNew     = false;
                        _item.NguoiSua  = globalVariables.UserName;
                        _item.NgaySua   = globalVariables.SysDate;
                        _item.IpMaysua  = globalVariables.gv_strIPAddress;
                        _item.TenMaysua = globalVariables.gv_strComputerName;
                        _item.MarkOld();
                    }
                    else
                    {
                        _item           = new KcbKetquaCl();
                        _item.IsNew     = true;
                        _item.NguoiTao  = globalVariables.UserName;
                        _item.NgayTao   = globalVariables.SysDate;
                        _item.IpMaytao  = globalVariables.gv_strIPAddress;
                        _item.TenMaytao = globalVariables.gv_strComputerName;
                    }

                    if (objcls != null)
                    {
                        _item.MaChidinh        = objChidinh.MaChidinh;
                        _item.MaBenhpham       = objChidinh.MaChidinh;
                        _item.Barcode          = objChidinh.Barcode;
                        _item.IdBenhnhan       = id_benhnhan;
                        _item.MaLuotkham       = ma_luotkham;
                        _item.IdChidinh        = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdChidinh), -1);
                        _item.IdChitietchidinh = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdChitietchidinh), -1);
                        _item.IdDichvu         = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdDichvu), -1);
                        _item.IdDichvuchitiet  = Utility.Int32Dbnull(Utility.GetValueFromGridColumn(grdKetqua, KcbChidinhclsChitiet.Columns.IdChitietdichvu), -1);
                        _item.SttIn            = objcls.SttHthi;
                        _item.BtNam            = objcls.BinhthuongNam;
                        _item.BtNu             = objcls.BinhthuongNu;
                        _item.KetQua           = Utility.DoTrim(Utility.GetValueFromGridColumn(row, "Ket_qua"));
                        if (_item.TrangThai < 3)
                        {
                            _item.TrangThai = 3;
                        }
                        if (chkSaveAndConfirm.Checked)
                        {
                            _item.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                        }
                        if (Utility.DoTrim(_item.KetQua) == "")
                        {
                            _item.TrangThai = 2;//Quay ve trang thai chuyen đang thực hiện
                        }
                        //_item.TenDonvitinh = objcls.TenDonvitinh;
                        _itemchitiet.KetQua = _item.KetQua;
                        if (_itemchitiet.TrangThai < 3)
                        {
                            _itemchitiet.TrangThai = 3;
                        }
                        if (chkSaveAndConfirm.Checked)
                        {
                            _itemchitiet.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                        }
                        if (Utility.DoTrim(_itemchitiet.KetQua) == "")
                        {
                            _itemchitiet.TrangThai = 2;//Quay ve trang thai chuyen can
                        }
                        if (_itemchitietcha != null && _itemchitietcha.TrangThai < 3)
                        {
                            _itemchitietcha.TrangThai = 3;
                        }
                        if (_itemchitietcha != null && chkSaveAndConfirm.Checked)
                        {
                            _itemchitietcha.TrangThai = 4;//Duyệt luôn để hiển thị trên form thăm khám của bác sĩ
                        }
                        if (_itemchitietcha != null && _itemchitiet.KetQua == "")
                        {
                            _itemchitietcha.TrangThai = 2;//Quay ve trang thai chuyen can
                        }
                        _item.TenThongso     = "";
                        _item.TenKq          = "";
                        _item.LoaiKq         = 0;
                        _item.ChophepHienthi = 1;
                        _item.ChophepIn      = 1;

                        _item.MotaThem = objcls.MotaThem;
                        lstResult.Add(_item);
                        lstDetails.Add(_itemchitiet);
                        if (_itemchitietcha != null)
                        {
                            lstDetails.Add(_itemchitietcha);
                        }
                        if (clsXN.UpdateResult(lstResult, lstDetails) != ActionResult.Success)
                        {
                        }
                        else
                        {
                            if (_OnResult != null)
                            {
                                _OnResult(_itemchitiet.IdChitietchidinh, Utility.ByteDbnull(_itemchitiet.TrangThai, 2));
                            }
                            this.Close();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Utility.CatchException(ex);
            }
        }
Esempio n. 8
0
        private void StartAnalysisFile(string fullpath)
        {
            MyLog.Trace(string.Format("------------------Begin Analysing file {0}------------------", fullpath));
            var lstLines = new List <string>();

            try
            {
                if (Utility.Laygiatrithamsohethong("ASTM_SECURITY", "0", false) == "1")
                {
                    //using (new NetworkConnection(_watcherPathInfo, Utility.CreateCredentials(Utility.Laygiatrithamsohethong("ASTM_UID", "UserName", false), Utility.Laygiatrithamsohethong("ASTM_PWD", "PassWord", false))))
                    var theNetworkCredential =
                        new NetworkCredential(Utility.Laygiatrithamsohethong("ASTM_UID", "UserName", false),
                                              Utility.Laygiatrithamsohethong("ASTM_PWD", "PassWord", false));
                    var theNetcache = new CredentialCache();
                    theNetcache.Add(new Uri(Path.GetDirectoryName(fullpath)), "Basic", theNetworkCredential);
                }
                using (
                    new NetworkConnection(Path.GetDirectoryName(fullpath),
                                          Utility.CreateCredentials(Utility.Laygiatrithamsohethong("ASTM_UID", "UserName", false),
                                                                    Utility.Laygiatrithamsohethong("ASTM_PWD", "PassWord", false))))
                {
                    using (var _reader = new StreamReader(fullpath))
                    {
                        while (_reader.Peek() > -1)
                        {
                            lstLines.Add(_reader.ReadLine());
                        }
                        _reader.BaseStream.Flush();
                        _reader.Close();
                    }

                    MyLog.Trace(string.Format("Read All lines"));
                    IEnumerable <string> patientinfor = from p in lstLines.AsEnumerable()
                                                        where p.StartsWith("P")
                                                        select p;
                    IEnumerable <string> Orderinfor = from p in lstLines.AsEnumerable()
                                                      where p.StartsWith("O")
                                                      select p;
                    var lstmachidinh = new List <string>();
                    foreach (string line in lstLines)
                    {
                        if (line.StartsWith("O")) //Chỉ định
                        {
                            if (!lstmachidinh.Contains(line.Split('|')[2]))
                            {
                                lstmachidinh.Add(line.Split('|')[2]);
                            }
                        }
                    }
                    bool isOK = false;
                    if (patientinfor.Any() && Orderinfor.Any())
                    {
                        MyLog.Trace(string.Format("File format is valid"));
                        MyLog.Trace(string.Format("Number of AssignCode {0}", lstmachidinh.Count));
                        var lstKq = new KcbKetquaClCollection();
                        MyLog.Trace(string.Format("GetData base on PID {0} and AssignCode List {1} ",
                                                  patientinfor.FirstOrDefault().Split('|')[2], string.Join(",", lstmachidinh.ToArray())));
                        DataTable dtData =
                            SPs.HisLisLaydulieuCapnhatketquatuLis(patientinfor.FirstOrDefault().Split('|')[2],
                                                                  string.Join(",", lstmachidinh.ToArray())).GetDataSet().Tables[0];

                        if (dtData != null && dtData.Rows.Count > 0)
                        {
                            using (var scope = new TransactionScope())
                            {
                                using (var dbscope = new SharedDbConnectionScope())
                                {
                                    MyLog.Trace(string.Format("Number of DataRow:={0}", dtData.Rows.Count));
                                    string ma_chidinh = "";
                                    int    idx        = 0;
                                    foreach (string line in lstLines)
                                    {
                                        if (line.StartsWith("O")) //Order
                                        {
                                            ma_chidinh = line.Split('|')[2];
                                        }
                                        if (line.StartsWith("R")) //Result
                                        {
                                            idx++;
                                            MyLog.Trace(string.Format("Begin Analysing Line {0}...", idx));
                                            string[] arrValues     = line.Split('|');
                                            string   ma_xetnghiem  = arrValues[2].Replace("^", "");
                                            string   ketqua        = arrValues[3];
                                            string   dvt           = arrValues[4];
                                            string   ngaytraketqua = arrValues[12];
                                            MyLog.Trace(
                                                string.Format(
                                                    "Line Data-->ma_chidinh={0} ma_xetnghiem={1}, ketqua={2}, DVT={3},ngaytraketqua={4} ",
                                                    ma_chidinh, ma_xetnghiem, ketqua, dvt, ngaytraketqua));
                                            DataRow[] arrCt =
                                                dtData.Select("ma_xetnghiem='" + ma_xetnghiem + "' AND ma_chidinh='" +
                                                              ma_chidinh + "'");

                                            if (arrCt.Length > 0)
                                            {
                                                MyLog.Trace(
                                                    string.Format(
                                                        "Row Data-->ma_chidinh={0} ma_xetnghiem={1}, id_chidinh={2}, id_chitietchidinh={3},id_chitietdichvu={4} ",
                                                        arrCt[0]["ma_chidinh"],
                                                        arrCt[0]["ma_xetnghiem"], arrCt[0]["id_chidinh"],
                                                        arrCt[0]["id_chitietchidinh"], arrCt[0]["id_chitietdichvu"]));
                                                //Nếu không có chi tiết thì update vào cả bảng chỉ định cận lâm sàng chi tiết

                                                KcbChidinhclsChitiet objChitiet =
                                                    KcbChidinhclsChitiet.FetchByID(
                                                        Utility.Int64Dbnull(arrCt[0]["id_chitietchidinh"]));
                                                if (objChitiet != null)
                                                {
                                                    if (
                                                        !Utility.Byte2Bool(Utility.ByteDbnull(arrCt[0]["co_chitiet"], 0)))
                                                    {
                                                        objChitiet.KetQua = ketqua;
                                                    }
                                                    objChitiet.IsNew     = false;
                                                    objChitiet.TrangThai = 4;
                                                    objChitiet.MarkOld();
                                                    objChitiet.Save();
                                                }
                                                var kq = new KcbKetquaCl();
                                                kq = new Select().From(KcbKetquaCl.Schema)
                                                     .Where(KcbKetquaCl.Columns.IdChidinh)
                                                     .IsEqualTo(Utility.Int64Dbnull(arrCt[0]["id_chidinh"]))
                                                     .And(KcbKetquaCl.Columns.IdChitietchidinh)
                                                     .IsEqualTo(Utility.Int64Dbnull(arrCt[0]["id_chitietchidinh"]))
                                                     .And(KcbKetquaCl.Columns.IdDichvuchitiet)
                                                     .IsEqualTo(Utility.Int64Dbnull(arrCt[0]["id_chitietdichvu"]))
                                                     .ExecuteSingle <KcbKetquaCl>();
                                                if (kq == null)
                                                {
                                                    MyLog.Trace(
                                                        string.Format("ma_xetnghiem={0}-->insert into KcbKetquaCl",
                                                                      ma_xetnghiem));
                                                    kq       = new KcbKetquaCl();
                                                    kq.IsNew = true;
                                                }
                                                else
                                                {
                                                    MyLog.Trace(
                                                        string.Format("ma_xetnghiem={0}-->updated from KcbKetquaCl",
                                                                      ma_xetnghiem));
                                                    kq.IsNew = false;
                                                    kq.MarkOld();
                                                }
                                                DmucDichvuclsChitiet objDvuchitiet =
                                                    DmucDichvuclsChitiet.FetchByID(
                                                        Utility.Int64Dbnull(arrCt[0]["id_chitietdichvu"]));
                                                if (objDvuchitiet != null)
                                                {
                                                    kq.TenThongso = objDvuchitiet.TenChitietdichvu;
                                                }
                                                kq.IdChidinh        = Utility.Int64Dbnull(arrCt[0]["id_chidinh"]);
                                                kq.IdChitietchidinh = Utility.Int64Dbnull(arrCt[0]["id_chitietchidinh"]);
                                                kq.IdDichvu         = Utility.Int32Dbnull(arrCt[0]["id_dichvu"]);
                                                kq.IdDichvuchitiet  = Utility.Int32Dbnull(arrCt[0]["id_chitietdichvu"]);
                                                kq.IdBenhnhan       = Utility.Int64Dbnull(arrCt[0]["id_benhnhan"]);
                                                kq.MaLuotkham       = Utility.sDbnull(arrCt[0]["ma_luotkham"]);
                                                kq.MaChidinh        = Utility.sDbnull(arrCt[0]["ma_chidinh"]);
                                                kq.MaBenhpham       = Utility.sDbnull(arrCt[0]["ma_chidinh"]);
                                                kq.IdLab            = -1;
                                                kq.IdChitietLab     = -1;
                                                kq.Barcode          = "";
                                                kq.SttIn            = 0;
                                                kq.KetQua           = ketqua;
                                                kq.BtNam            = "";
                                                kq.BtNu             = "";
                                                kq.TenDonvitinh     = "";
                                                kq.TenThongso       = "";
                                                kq.TenKq            = "";
                                                kq.LoaiKq           = 0;
                                                kq.ChophepHienthi   = 1;
                                                kq.ChophepIn        = 1;
                                                kq.MotaThem         = "";
                                                kq.NguoiTao         = "WIN_SERVICE";
                                                kq.NgayTao          = DateTime.Now;
                                                kq.NguoiSua         = "WIN_SERVICE";
                                                kq.NgaySua          = DateTime.Now;
                                                kq.TrangThai        = 4;
                                                kq.NgayXacnhan      = DateTime.Now;
                                                kq.NguoiXacnhan     = "WIN_SERVICE";
                                                kq.NguoiXacnhan     = "WIN_SERVICE";
                                                kq.Save();
                                                //lstKq.Add(kq);
                                            }
                                            else
                                            {
                                                isOK = false;
                                                MyLog.Error(
                                                    string.Format(
                                                        "No data found with ma_xetnghiem={0}.Please check again",
                                                        ma_xetnghiem));
                                            }
                                        }
                                    }
                                    //lstKq.SaveAll();
                                    isOK = true;
                                }
                                scope.Complete();
                            }
                        }
                        else
                        {
                            isOK = false;
                            MyLog.Error(string.Format("Could not get Data from HIS with PID {0} and AssignCode {1}",
                                                      patientinfor.FirstOrDefault().Split('|')[3], string.Join(",", lstmachidinh.ToArray())));
                        }
                    }
                    else //Invalid file structure
                    {
                        isOK = false;
                        MyLog.Error(
                            string.Format(
                                "FileFormat is not valid(No Patient or Order tags found in this file). Pls check result file again!"));
                    }
                    if (isOK)
                    {
                        string newDestinationFolder =
                            Utility.FixedFolder(Utility.Laygiatrithamsohethong("ASTM_BACKUP_FOLDER",
                                                                               @"\\192.168.1.254\Backup", false));
                        newDestinationFolder += Path.GetFileName(fullpath);
                        string errMsg = Utility.MoveFile(fullpath, newDestinationFolder);
                        if (Utility.DoTrim(errMsg) == "")
                        {
                            MyLog.Trace(string.Format("Move file from {0} to {1} succedded", fullpath,
                                                      newDestinationFolder));
                        }
                        else
                        {
                            MyLog.Error(string.Format("Move file from {0} to {1} error-->{2}", fullpath,
                                                      newDestinationFolder, errMsg));
                        }
                    }
                    MyLog.Trace(string.Format("------------------Finish Analysing file {0}------------------", fullpath));
                }
            }
            catch (Exception ex)
            {
                MyLog.Error(string.Format("StartAnalysisFile.Exception-->{0}", ex.Message));
            }
        }
Esempio n. 9
0
        public ActionResult Tratien(KcbThanhtoan objThanhtoan, KcbLuotkham objLuotkham, List <Int64> lstIdChitiet)
        {
            decimal PtramBHYT = 0;
            ///tổng tiền hiện tại truyền vào của lần payment đang thực hiện
            decimal v_dblTongtienHuy = 0;
            ///tổng tiền đã thanh toán
            decimal v_TotalPaymentDetail = 0;

            try
            {
                using (var scope = new TransactionScope())
                {
                    using (var sh = new SharedDbConnectionScope())
                    {
                        KcbThanhtoanChitiet[] ArrKcbThanhtoanChitiet_Huy = new Select().From(KcbThanhtoanChitiet.Schema)
                                                                           .Where(KcbThanhtoanChitiet.Columns.IdChitiet).In(lstIdChitiet)
                                                                           .ExecuteAsCollection <KcbThanhtoanChitietCollection>().ToArray <KcbThanhtoanChitiet>();

                        List <int> lstIdThanhtoanTinhtoanlai = (from q in ArrKcbThanhtoanChitiet_Huy
                                                                select q.IdThanhtoan).ToList <int>();

                        v_dblTongtienHuy = TongtienKhongTutuc(ArrKcbThanhtoanChitiet_Huy);
                        KcbThanhtoanCollection lstKcbThanhtoanCollection =
                            new KcbThanhtoanController()
                            .FetchByQuery(
                                KcbThanhtoan.CreateQuery()
                                .AddWhere(KcbThanhtoan.Columns.MaLuotkham, Comparison.Equals, objLuotkham.MaLuotkham)
                                .AND(KcbThanhtoan.Columns.IdBenhnhan, Comparison.Equals, objLuotkham.IdBenhnhan)
                                .AND(KcbThanhtoan.Columns.KieuThanhtoan, Comparison.Equals, objThanhtoan.KieuThanhtoan)
                                .AND(KcbThanhtoan.Columns.TrangThai, Comparison.Equals, 0));//Chỉ lấy về các bản ghi thanh toán thường(0= thường;1= thanh toán hủy(trả lại tiền))
                        //Lấy tổng tiền của các lần thanh toán trước
                        List <KcbThanhtoanChitiet> lstKcbThanhtoanChitiet = new List <KcbThanhtoanChitiet>();

                        foreach (KcbThanhtoan Payment in lstKcbThanhtoanCollection)
                        {
                            KcbThanhtoanChitietCollection lstKcbThanhtoanChitietCollection = new Select().From(KcbThanhtoanChitiet.Schema)
                                                                                             .Where(KcbThanhtoanChitiet.Columns.IdThanhtoan).IsEqualTo(Payment.IdThanhtoan)
                                                                                             .And(KcbThanhtoanChitiet.Columns.TrangthaiHuy).IsEqualTo(0).ExecuteAsCollection
                                                                                             <KcbThanhtoanChitietCollection>();

                            foreach (KcbThanhtoanChitiet _KcbThanhtoanChitiet in lstKcbThanhtoanChitietCollection)
                            {
                                if (_KcbThanhtoanChitiet.TuTuc == 0)
                                {
                                    //Lấy các chi tiết sẽ update lại toàn bộ thông tin bhyt,bn chi trả theo % BHYT mới sau khi đã hủy một số dịch vụ
                                    //Các bản ghi hủy sẽ giữ nguyên thông tin không cần cập nhật
                                    if (!lstIdChitiet.Contains(_KcbThanhtoanChitiet.IdChitiet))
                                    {
                                        lstKcbThanhtoanChitiet.Add(_KcbThanhtoanChitiet);
                                        _KcbThanhtoanChitiet.IsNew = false;
                                        _KcbThanhtoanChitiet.MarkOld();
                                    }
                                    v_TotalPaymentDetail += Utility.Int32Dbnull(_KcbThanhtoanChitiet.SoLuong) *
                                                            Utility.DecimaltoDbnull(_KcbThanhtoanChitiet.DonGia);
                                }
                            }
                        }
                        List <int> lstIdThanhtoanCu = (from q in lstKcbThanhtoanChitiet
                                                       select q.IdThanhtoan).Distinct().ToList <int>();



                        LayThongtinPtramBHYT(v_TotalPaymentDetail - v_dblTongtienHuy, objLuotkham, ref PtramBHYT);
                        //Thêm mới dòng thanh toán hủy
                        objThanhtoan.TrangThai           = 1;
                        objThanhtoan.IdNhanvienThanhtoan = globalVariables.gv_intIDNhanvien;
                        objThanhtoan.NgayThanhtoan       = globalVariables.SysDate;
                        objThanhtoan.MaThanhtoan         = THU_VIEN_CHUNG.TaoMathanhtoan(globalVariables.SysDate);
                        objThanhtoan.IsNew = true;
                        objThanhtoan.Save();
                        //Tính lại thông tin BHYT,BN chi trả cho toàn bộ các chi tiết của BN đã thanh toán mà không bị hủy
                        KcbThanhtoanChitiet[] lsttemp = new List <KcbThanhtoanChitiet>().ToArray <KcbThanhtoanChitiet>();
                        THU_VIEN_CHUNG.TinhPhamTramBHYT(objLuotkham, ref lsttemp, ref lstKcbThanhtoanChitiet, PtramBHYT);
                        decimal TT_BN   = 0m;
                        decimal TT_BHYT = 0m;
                        decimal TT_Chietkhau_Chitiet = 0m;
                        //99% đặt thông số này=1
                        if (THU_VIEN_CHUNG.Laygiatrithamsohethong("BHYT_TINHLAI_TOANBODICHVU", "1", false) == "1")
                        {
                            foreach (int IdThanhtoan in lstIdThanhtoanCu)
                            {
                                TT_BN   = 0m;
                                TT_BHYT = 0m;
                                TT_Chietkhau_Chitiet = 0m;
                                List <KcbThanhtoanChitiet> _LstChitiet = (from q in lstKcbThanhtoanChitiet
                                                                          select q).ToList <KcbThanhtoanChitiet>();

                                if (_LstChitiet.Count > 0)
                                {
                                    foreach (KcbThanhtoanChitiet objThanhtoanDetail in _LstChitiet)
                                    {
                                        TT_BN += (objThanhtoanDetail.BnhanChitra + objThanhtoanDetail.PhuThu) * objThanhtoanDetail.SoLuong;
                                        if (!Utility.Byte2Bool(objThanhtoanDetail.TuTuc))
                                        {
                                            TT_BHYT += objThanhtoanDetail.BhytChitra * objThanhtoanDetail.SoLuong;
                                        }
                                        TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objThanhtoanDetail.TienChietkhau, 0);
                                        //Lưu lại các thông tin tiền đã được tính toán lại ở thủ tục THU_VIEN_CHUNG.TinhPhamTramBHYT(...)
                                        objThanhtoanDetail.IsNew = false;
                                        objThanhtoanDetail.MarkOld();
                                        objThanhtoanDetail.Save();
                                    }
                                    //Update lại tiền thanh toán
                                    new Update(KcbThanhtoan.Schema)
                                    .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                                    .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BN)
                                    .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                                    .Set(KcbThanhtoan.Columns.MaDoituongKcb).EqualTo(objLuotkham.MaDoituongKcb)
                                    .Set(KcbThanhtoan.Columns.IdDoituongKcb).EqualTo(objLuotkham.IdDoituongKcb)
                                    .Set(KcbThanhtoan.Columns.PtramBhyt).EqualTo(objLuotkham.PtramBhyt)
                                    .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(IdThanhtoan).Execute();
                                    //Update phiếu thu
                                    new Update(KcbPhieuthu.Schema)
                                    .Set(KcbPhieuthu.Columns.SoTien).EqualTo(TT_BN - TT_Chietkhau_Chitiet)
                                    .Set(KcbPhieuthu.Columns.SotienGoc).EqualTo(TT_BN)
                                    .Where(KcbPhieuthu.Columns.IdThanhtoan).IsEqualTo(IdThanhtoan).Execute();
                                }
                            }
                        }
                        //Reset và tính toán các số tiền liên quan đến các bản ghi hủy
                        TT_BN   = 0m;
                        TT_BHYT = 0m;
                        TT_Chietkhau_Chitiet = 0m;
                        //Cập nhật các dòng chi tiết được chọn hủy về trạng thái hủy và các dịch vụ trong các bảng tương ứng theo id_loaithanhtoan
                        foreach (KcbThanhtoanChitiet objKcbThanhtoanChitiet in ArrKcbThanhtoanChitiet_Huy)
                        {
                            TT_BN += (objKcbThanhtoanChitiet.BnhanChitra + objKcbThanhtoanChitiet.PhuThu) * objKcbThanhtoanChitiet.SoLuong;
                            if (!Utility.Byte2Bool(objKcbThanhtoanChitiet.TuTuc))
                            {
                                TT_BHYT += objKcbThanhtoanChitiet.BhytChitra * objKcbThanhtoanChitiet.SoLuong;
                            }
                            TT_Chietkhau_Chitiet += Utility.DecimaltoDbnull(objKcbThanhtoanChitiet.TienChietkhau, 0);

                            new Update(KcbThanhtoanChitiet.Schema)
                            .Set(KcbThanhtoanChitiet.Columns.TrangthaiHuy).EqualTo(1)
                            .Set(KcbThanhtoanChitiet.Columns.NgayHuy).EqualTo(globalVariables.SysDate)
                            .Set(KcbThanhtoanChitiet.Columns.NguoiHuy).EqualTo(globalVariables.UserName)
                            .Where(KcbThanhtoanChitiet.Columns.IdChitiet).IsEqualTo(objKcbThanhtoanChitiet.IdChitiet).
                            Execute();
                            ///thanh toán khám chữa bệnh))
                            if (objKcbThanhtoanChitiet.IdLoaithanhtoan == 1)
                            {
                                new Update(KcbDangkyKcb.Schema)
                                .Set(KcbDangkyKcb.Columns.TrangthaiThanhtoan).EqualTo(1)
                                .Set(KcbDangkyKcb.Columns.TrangthaiHuy).EqualTo(1)
                                .Where(KcbDangkyKcb.Columns.IdKham).IsEqualTo(objKcbThanhtoanChitiet.IdPhieu).Execute();
                            }
                            ///thah toán phần dịch vụ cận lâm sàng
                            if (objKcbThanhtoanChitiet.IdLoaithanhtoan == 2)
                            {
                                KcbChidinhclsChitiet objKcbChidinhclsChitiet = KcbChidinhclsChitiet.FetchByID(objKcbThanhtoanChitiet.IdChitietdichvu);
                                if (globalVariables.UserName != "ADMIN")
                                {
                                    if (objKcbChidinhclsChitiet != null && objKcbChidinhclsChitiet.TrangThai >= 3)//Đã có kết quả
                                    {
                                        return(ActionResult.AssignIsConfirmed);
                                    }
                                }
                                new Update(KcbChidinhclsChitiet.Schema)
                                .Set(KcbChidinhclsChitiet.Columns.TrangthaiThanhtoan).EqualTo(1)
                                .Set(KcbChidinhclsChitiet.Columns.TrangthaiHuy).EqualTo(1)
                                .Where(KcbChidinhclsChitiet.Columns.IdChitietchidinh).IsEqualTo(objKcbThanhtoanChitiet.IdChitietdichvu)
                                .Execute();
                            }
                            ///thanh toán phần thuốc
                            if (objKcbThanhtoanChitiet.IdLoaithanhtoan == 3)
                            {
                                KcbDonthuocChitiet objKcbDonthuocChitiet = KcbDonthuocChitiet.FetchByID(objKcbThanhtoanChitiet.IdPhieuChitiet);

                                if (globalVariables.UserName != "ADMIN")
                                {
                                    if (objKcbDonthuocChitiet != null && Utility.Byte2Bool(objKcbDonthuocChitiet.TrangThai))
                                    {
                                        return(ActionResult.PresIsConfirmed);
                                    }
                                }
                                new Update(KcbDonthuoc.Schema)
                                .Set(KcbDonthuoc.Columns.TrangThai).EqualTo(0)
                                .Where(KcbDonthuoc.Columns.IdDonthuoc).IsEqualTo(objKcbThanhtoanChitiet.IdPhieu).Execute();
                                new Update(KcbDonthuocChitiet.Schema)
                                .Set(KcbDonthuocChitiet.Columns.TrangthaiHuy).EqualTo(1)
                                .Where(KcbDonthuocChitiet.Columns.IdChitietdonthuoc).IsEqualTo(objKcbThanhtoanChitiet.IdPhieuChitiet)
                                .Execute();
                            }
                            //Tạo dữ liệu hủy tiền

                            objKcbThanhtoanChitiet.IdChitiethuy = objKcbThanhtoanChitiet.IdChitiet;//Để biết dòng hủy này hủy cho chi tiết thanh toán nào
                            objKcbThanhtoanChitiet.TrangthaiHuy = 0;
                            objKcbThanhtoanChitiet.NguoiHuy     = null;
                            objKcbThanhtoanChitiet.NgayHuy      = null;
                            objKcbThanhtoanChitiet.IdThanhtoan  = Utility.Int32Dbnull(objThanhtoan.IdThanhtoan, -1);
                            objKcbThanhtoanChitiet.IsNew        = true;
                            objKcbThanhtoanChitiet.Save();
                        }

                        KcbPhieuthu objPhieuthu = new KcbPhieuthu();
                        objPhieuthu.IdThanhtoan = objThanhtoan.IdThanhtoan;

                        objPhieuthu.SoluongChungtugoc    = 1;
                        objPhieuthu.LoaiPhieuthu         = Convert.ToByte(1);//0= phiếu thu tiền;1= phiếu chi
                        objPhieuthu.MaPhieuthu           = THU_VIEN_CHUNG.GetMaPhieuThu(globalVariables.SysDate, 1);
                        objPhieuthu.NgayThuchien         = globalVariables.SysDate;
                        objPhieuthu.SoTien               = TT_BN - TT_Chietkhau_Chitiet;
                        objPhieuthu.SotienGoc            = TT_BN;
                        objPhieuthu.MaLydoChietkhau      = objThanhtoan.MaLydoChietkhau;
                        objPhieuthu.TienChietkhauchitiet = TT_Chietkhau_Chitiet;
                        objPhieuthu.TienChietkhau        = objThanhtoan.TongtienChietkhau;
                        objPhieuthu.TienChietkhauhoadon  = objPhieuthu.TienChietkhau - objPhieuthu.TienChietkhauchitiet;
                        objPhieuthu.NguoiNop             = globalVariables.UserName;
                        objPhieuthu.TaikhoanCo           = "";
                        objPhieuthu.TaikhoanNo           = "";
                        objPhieuthu.NoiTru               = (byte)objThanhtoan.NoiTru;
                        objPhieuthu.LydoNop              = "Trả tiền bệnh nhân";
                        objPhieuthu.IdKhoaThuchien       = globalVariables.idKhoatheoMay;
                        objPhieuthu.IdNhanvien           = globalVariables.gv_intIDNhanvien;
                        objPhieuthu.IsNew = true;
                        objPhieuthu.Save();

                        new Update(KcbThanhtoan.Schema)
                        .Set(KcbThanhtoan.Columns.TongTien).EqualTo(TT_BHYT + TT_BN)
                        .Set(KcbThanhtoan.Columns.BnhanChitra).EqualTo(TT_BN)
                        .Set(KcbThanhtoan.Columns.BhytChitra).EqualTo(TT_BHYT)
                        .Set(KcbThanhtoan.Columns.MaDoituongKcb).EqualTo(objLuotkham.MaDoituongKcb)
                        .Set(KcbThanhtoan.Columns.IdDoituongKcb).EqualTo(objLuotkham.IdDoituongKcb)
                        .Set(KcbThanhtoan.Columns.PtramBhyt).EqualTo(objLuotkham.PtramBhyt)
                        .Where(KcbThanhtoan.Columns.IdThanhtoan).IsEqualTo(objThanhtoan.IdThanhtoan).Execute();
                    }
                    scope.Complete();
                    return(ActionResult.Success);
                }
            }
            catch (Exception exception)
            {
                log.Error("Loi trong qua trinh tra tien lai:{0}", exception.ToString());
                return(ActionResult.Error);
            }
        }