Beispiel #1
0
        public void Add_TestCase2()
        {
            HoSoBenhAnDTO hoSoBenhAnDTO = new HoSoBenhAnDTO
            {
                MaHoSo       = TestCommon.LEN_10 + "1",
                MaHoSoTruoc  = TestCommon.LEN_10 + "1",
                MaHoSoGoc    = TestCommon.LEN_10 + "1",
                MaLoaiHoSo   = TestCommon.LEN_10 + "1",
                MaBenhNhan   = TestCommon.LEN_10 + "1",
                MaNguoiTN    = TestCommon.LEN_10 + "1",
                NgayTiepNhan = TestCommon.LEN_8 + "1",
                YeuCauKham   = TestCommon.LEN_250 + "1",
                TrieuChung   = TestCommon.LEN_250 + "1",
                NgayKham     = TestCommon.LEN_8 + "1",
                SoThuTu      = 1,
                MaPhongKham  = TestCommon.LEN_10 + "1",
                MaBacSi      = TestCommon.LEN_10 + "1",
                ChuanDoan    = "abc",
                CoKeDon      = true,
            };
            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();

            string actual   = hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAnDTO);
            string expected = "1111";

            Assert.Equals(expected, actual);
        }
Beispiel #2
0
        public string AddHoSoBenhAn(QLPHONGKHAMEntities db, HoSoBenhAnDTO HoSoEntity)
        {
            HOSOBENHAN hoSoBenhAnDAO = new HOSOBENHAN();

            BUS.Com.Utils.CopyPropertiesFrom(HoSoEntity, hoSoBenhAnDAO);
            return(hoSoBenhAnService.Save(db, hoSoBenhAnDAO));
        }
Beispiel #3
0
        private string CheckExits(HoSoBenhAnDTO hoSo, ref List <string> MessageError)
        {
            using (QLPHONGKHAMEntities db = new QLPHONGKHAMEntities())
            {
                NHANVIEN bacSi = null;
                try
                {
                    bacSi = db.NHANVIENs.Find(hoSo.MaBacSi);
                }
                catch
                {
                    MessageError.Add("Bác sĩ khám không tồn tại!");
                    return(Constant.RES_FAI);
                }

                if (bacSi == null)
                {
                    MessageError.Add("Bác sĩ khám không tồn tại!");
                    return(Constant.RES_FAI);
                }

                if (bacSi.MaLoaiNV != "LNV0000002")
                {
                    MessageError.Add("Bác sĩ khám không tồn tại!");
                    return(Constant.RES_FAI);
                }
            }
            return(Constant.RES_SUC);
        }
Beispiel #4
0
        private string CheckExist(TiepNhanEntity entity, ref List <string> Messages)
        {
            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();
            PhongKhamBUS  phongKhamBUS  = new PhongKhamBUS();
            NhanVienBUS   nhanVienBUS   = new NhanVienBUS();

            using (QLPHONGKHAMEntities db = new QLPHONGKHAMEntities())
            {
                if (entity.MaLoaiHoSo != Com.BusConstant.HS_KHAMMOI && entity.MaLoaiHoSo != BUS.Com.BusConstant.HS_TAIKHAM)
                {
                    Messages.Add("Loại hồ sơ không tồn tại!");
                    return(Constant.RES_FAI);
                }

                HoSoBenhAnDTO hoSoBenhAn = new HoSoBenhAnDTO();
                if (hoSoBenhAnBUS.GetInfomationHoSo(db, entity.MaHoSoTruoc, out hoSoBenhAn) == Constant.RES_FAI && entity.MaLoaiHoSo == Com.BusConstant.HS_TAIKHAM)
                {
                    Messages.Add("Hồ sơ bệnh án trước không tồn tại!");
                    return(Constant.RES_FAI);
                }
                PhongKhamDTO phong = new PhongKhamDTO();
                if (phongKhamBUS.GetInformationPhongKham(db, entity.MaPhongKham, out phong) == Constant.RES_FAI)
                {
                    Messages.Add("Phòng khám không tồn tại!");
                    return(Constant.RES_FAI);
                }
                NhanVienDTO nhanVien = new NhanVienDTO();
                if (nhanVienBUS.GetInfomationNhanVien(db, entity.MaNguoiTN, out nhanVien) == Constant.RES_FAI)
                {
                    Messages.Add("Nhân viên tiếp nhận không tồn tại!");
                    return(Constant.RES_FAI);
                }
            }
            return(Constant.RES_SUC);
        }
Beispiel #5
0
 private string CheckMaxLength(HoSoBenhAnDTO hoSo, ref List <string> MessageError)
 {
     if (hoSo.TrieuChung.Length > 250)
     {
         MessageError.Add("Triệu chứng không quá 250 ký tự!");
         return(Constant.RES_FAI);
     }
     return(Constant.RES_SUC);
 }
Beispiel #6
0
        // lấy thông tin toàn bồ hồ sơ
        public string GetInformationHoSo(string MaHoSo, out HoSoBenhAnDTO hoSoBenhAn)
        {
            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();

            using (QLPHONGKHAMEntities db = new QLPHONGKHAMEntities())
            {
                hoSoBenhAnBUS.GetInfomationHoSo(db, MaHoSo, out hoSoBenhAn);
            }
            return(Constant.RES_SUC);
        }
Beispiel #7
0
        public string GetRootHoSoBenhAn(QLPHONGKHAMEntities db, string MaHoSoTruoc, out HoSoBenhAnDTO hoSoBenhAnRoot)
        {
            hoSoBenhAnRoot = new HoSoBenhAnDTO();
            HOSOBENHAN rootDAO = null;

            if (hoSoBenhAnService.GetRootHoSo(db, MaHoSoTruoc, out rootDAO) == COM.Constant.RES_FAI)
            {
                return(COM.Constant.RES_FAI);
            }
            BUS.Com.Utils.CopyPropertiesFrom(rootDAO, hoSoBenhAnRoot);
            return(COM.Constant.RES_SUC);
        }
Beispiel #8
0
        public void Add_TestCase3()
        {
            HoSoBenhAnDTO hoSoBenhAnDTO = new HoSoBenhAnDTO
            {
                MaHoSo = TestCommon.LEN_10,
            };
            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();

            string actual   = hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAnDTO);
            string expected = "1111";

            Assert.Equals(expected, actual);
        }
Beispiel #9
0
        public string DeleteHoSoBenhAn(QLPHONGKHAMEntities db, HoSoBenhAnDTO HoSoEntity)
        {
            object[]   id            = { HoSoEntity.MaHoSo };
            HOSOBENHAN hoSoBenhAnDAO = null;

            if (hoSoBenhAnService.FindById(db, id, out hoSoBenhAnDAO) == COM.Constant.RES_FAI)
            {
                return(COM.Constant.RES_FAI);
            }
            if (hoSoBenhAnDAO == null)
            {
                return(COM.Constant.RES_FAI);
            }
            return(hoSoBenhAnService.Delete(db, hoSoBenhAnDAO));
        }
Beispiel #10
0
        public void Update_TestCase1()
        {
            HoSoBenhAnDTO hoSoBenhAnDTO = new HoSoBenhAnDTO
            {
                MaHoSo       = TestCommon.LEN_10,
                MaHoSoTruoc  = TestCommon.LEN_10,
                MaHoSoGoc    = TestCommon.LEN_10,
                MaLoaiHoSo   = TestCommon.LEN_10,
                MaBenhNhan   = TestCommon.LEN_10,
                MaNguoiTN    = TestCommon.LEN_10,
                NgayTiepNhan = TestCommon.LEN_8,
                YeuCauKham   = TestCommon.LEN_250,
                TrieuChung   = TestCommon.LEN_250,
                NgayKham     = TestCommon.LEN_8,
                SoThuTu      = 1,
                MaPhongKham  = TestCommon.LEN_10,
                MaBacSi      = TestCommon.LEN_10,
                ChuanDoan    = "abc",
                CoKeDon      = true,
            };

            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();

            hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAnDTO);

            HOSOBENHAN hoSoBenhAnUpdate = new HOSOBENHAN
            {
                MaHoSo       = TestCommon.LEN_10,
                MaHoSoTruoc  = TestCommon.LEN_10,
                MaHoSoGoc    = TestCommon.LEN_10,
                MaLoaiHoSo   = TestCommon.LEN_10,
                MaBenhNhan   = TestCommon.LEN_10,
                MaNguoiTN    = TestCommon.LEN_10,
                NgayTiepNhan = TestCommon.LEN_8,
                YeuCauKham   = TestCommon.LEN_250,
                TrieuChung   = TestCommon.LEN_250,
                NgayKham     = TestCommon.LEN_8,
                SoThuTu      = 1,
                MaPhongKham  = TestCommon.LEN_10,
                MaBacSi      = TestCommon.LEN_10,
                ChuanDoan    = "TEST UPDATE",
                CoKeDon      = true,
            };
            string actual   = hoSoBenhAnBUS.UpdateHoSoBenhAn(db, hoSoBenhAnDTO);
            string expected = "0000";

            Assert.Equals(expected, actual);
        }
Beispiel #11
0
        public void Delete_TestCase1()
        {
            HoSoBenhAnDTO hoSoBenhAnDTO = new HoSoBenhAnDTO
            {
                MaHoSo      = TestCommon.LEN_10,
                MaHoSoTruoc = TestCommon.LEN_10,
                MaHoSoGoc   = TestCommon.LEN_10,
                MaLoaiHoSo  = TestCommon.LEN_10,
                MaBenhNhan  = TestCommon.LEN_10,
                MaNguoiTN   = TestCommon.LEN_10,
            };
            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();
            string        actual        = hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAnDTO);

            Assert.Equals(null, actual);
        }
Beispiel #12
0
 public string InputCheck(HoSoBenhAnDTO hoSoBenhAnDTO, ref List <string> MessageError)
 {
     MessageError = new List <string>();
     if (CheckEmpty(hoSoBenhAnDTO, ref MessageError) == Constant.RES_FAI)
     {
         return(Constant.RES_FAI);
     }
     if (CheckMaxLength(hoSoBenhAnDTO, ref MessageError) == Constant.RES_FAI)
     {
         return(Constant.RES_FAI);
     }
     if (CheckExits(hoSoBenhAnDTO, ref MessageError) == Constant.RES_FAI)
     {
         return(Constant.RES_FAI);
     }
     return(Constant.RES_SUC);
 }
Beispiel #13
0
        public string GetInfomationHoSo(QLPHONGKHAMEntities db, string MaHoSo, out HoSoBenhAnDTO HoSoEntity)
        {
            HoSoEntity = new HoSoBenhAnDTO();
            object[]   id            = { MaHoSo };
            HOSOBENHAN hoSoBenhAnDAO = null;

            if (hoSoBenhAnService.FindById(db, id, out hoSoBenhAnDAO) == COM.Constant.RES_FAI)
            {
                return(COM.Constant.RES_FAI);
            }
            if (hoSoBenhAnDAO == null)
            {
                return(COM.Constant.RES_FAI);
            }
            BUS.Com.Utils.CopyPropertiesFrom(hoSoBenhAnDAO, HoSoEntity);
            return(COM.Constant.RES_SUC);
        }
Beispiel #14
0
        public string GetListHoSoWithIdBenhNhan(QLPHONGKHAMEntities db, string MaBenhNhan, out List <HoSoBenhAnDTO> ListHoSo)
        {
            ListHoSo = new List <HoSoBenhAnDTO>();
            List <HOSOBENHAN> hoSoDAO = null;

            if (hoSoBenhAnService.GetListHoSoWithIdBenhNhan(db, MaBenhNhan, out hoSoDAO) == Constant.RES_FAI)
            {
                return(Constant.RES_FAI);
            }
            foreach (var hs in hoSoDAO)
            {
                HoSoBenhAnDTO entity = new HoSoBenhAnDTO();
                BUS.Com.Utils.CopyPropertiesFrom(hs, entity);
                ListHoSo.Add(entity);
            }
            return(Constant.RES_SUC);
        }
Beispiel #15
0
        public string GetListHoSoXN(QLPHONGKHAMEntities db, string maXetNghiem, out List <HoSoBenhAnDTO> listHoSoBenhAn)
        {
            listHoSoBenhAn = new List <HoSoBenhAnDTO>();
            List <HOSOBENHAN> hoSoDAO = null;

            if (hoSoBenhAnService.GetListHoSoXN(db, maXetNghiem, Com.BusConstant.NODE_XET_NGHIEM, out hoSoDAO) == Constant.RES_FAI)
            {
                return(Constant.RES_FAI);
            }
            foreach (var hs in hoSoDAO)
            {
                HoSoBenhAnDTO entity = new HoSoBenhAnDTO();
                BUS.Com.Utils.CopyPropertiesFrom(hs, entity);
                listHoSoBenhAn.Add(entity);
            }
            return(Constant.RES_SUC);
        }
Beispiel #16
0
        public void Add_TestCase4()
        {
            HoSoBenhAnDTO hoSoBenhAnDTO = new HoSoBenhAnDTO
            {
                MaHoSo      = TestCommon.LEN_10,
                MaLoaiHoSo  = "1234",
                MaBenhNhan  = "1234",
                MaNguoiTN   = "1234",
                MaPhongKham = "1234",
                MaBacSi     = "1234",
            };
            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();

            string actual   = hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAnDTO);
            string expected = "1111";

            Assert.Equals(expected, actual);
        }
Beispiel #17
0
 private string CheckEmpty(HoSoBenhAnDTO hoSo, ref List <string> MessageError)
 {
     if (String.IsNullOrEmpty(hoSo.TrieuChung))
     {
         MessageError.Add("Vui lòng nhập triệu chứng bệnh!");
         return(Constant.RES_FAI);
     }
     if (String.IsNullOrEmpty(hoSo.ChuanDoan))
     {
         MessageError.Add("Vui lòng nhập chuẩn đoán bệnh!");
         return(Constant.RES_FAI);
     }
     if (String.IsNullOrEmpty(hoSo.MaBacSi))
     {
         MessageError.Add("Vui lòng chọn bác sĩ khám!");
         return(Constant.RES_FAI);
     }
     return(Constant.RES_SUC);
 }
Beispiel #18
0
        public string GetListHoSo(QLPHONGKHAMEntities db, out List <HoSoBenhAnDTO> ListHoSoEntity)
        {
            ListHoSoEntity = new List <HoSoBenhAnDTO>();
            List <HOSOBENHAN> listHoSoDAO = null;

            if (hoSoBenhAnService.Select(db, out listHoSoDAO) == COM.Constant.RES_FAI)
            {
                return(COM.Constant.RES_FAI);
            }
            if (listHoSoDAO == null)
            {
                return(COM.Constant.RES_FAI);
            }
            foreach (var hs in listHoSoDAO)
            {
                HoSoBenhAnDTO entity = new HoSoBenhAnDTO();
                BUS.Com.Utils.CopyPropertiesFrom(hs, entity);
                ListHoSoEntity.Add(entity);
            }
            return(COM.Constant.RES_SUC);
        }
Beispiel #19
0
        // XÓA ĐƠN THUỐC
        public string DeleteDonThuoc(DonThuocDTO donThuoc)
        {
            DonThuocBUS        donThuocBUS        = new DonThuocBUS();
            ChiTietDonThuocBUS chiTietDonThuocBUS = new ChiTietDonThuocBUS();
            HoSoBenhAnBUS      hoSoBenhAnBUS      = new HoSoBenhAnBUS();

            using (QLPHONGKHAMEntities db = new QLPHONGKHAMEntities())
            {
                using (var trans = db.Database.BeginTransaction())
                {
                    // xoá tất cả ctdt
                    if (chiTietDonThuocBUS.DeleteAllWithId(db, donThuoc.MaDonThuoc) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    // Xóa đơn thuốc
                    if (donThuocBUS.Delete(db, donThuoc.MaDonThuoc) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    HoSoBenhAnDTO hoSo = new HoSoBenhAnDTO();
                    if (hoSoBenhAnBUS.GetInfomationHoSo(db, donThuoc.MaHoSo, out hoSo) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    hoSo.CoKeDon = false;
                    if (hoSoBenhAnBUS.UpdateHoSoBenhAn(db, hoSo) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    trans.Commit();
                }
                db.SaveChanges();
            }
            return(Constant.RES_SUC);
        }
Beispiel #20
0
        public void Update_TestCase5()
        {
            HoSoBenhAnDTO hoSoBenhAnDTO = new HoSoBenhAnDTO
            {
                MaHoSo       = TestCommon.LEN_10,
                MaLoaiHoSo   = TestCommon.LEN_10,
                MaBenhNhan   = TestCommon.LEN_10,
                MaNguoiTN    = TestCommon.LEN_10,
                NgayTiepNhan = TestCommon.LEN_8,
                YeuCauKham   = TestCommon.LEN_250,
                TrieuChung   = TestCommon.LEN_250,
                NgayKham     = TestCommon.LEN_8,
                SoThuTu      = 1,
                MaPhongKham  = TestCommon.LEN_10,
                MaBacSi      = TestCommon.LEN_10,
            };

            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();

            hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAnDTO);

            HOSOBENHAN hoSoBenhAnUpdate = new HOSOBENHAN
            {
                MaHoSo       = TestCommon.LEN_10,
                MaLoaiHoSo   = TestCommon.LEN_10,
                MaBenhNhan   = TestCommon.LEN_10,
                MaNguoiTN    = TestCommon.LEN_10,
                NgayTiepNhan = TestCommon.LEN_8,
                YeuCauKham   = TestCommon.LEN_250,
                TrieuChung   = TestCommon.LEN_250,
                NgayKham     = TestCommon.LEN_8,
                SoThuTu      = -1,
                MaPhongKham  = TestCommon.LEN_10,
                MaBacSi      = TestCommon.LEN_10
            };
            string actual   = hoSoBenhAnBUS.UpdateHoSoBenhAn(db, hoSoBenhAnDTO);
            string expected = "1111";

            Assert.Equals(expected, actual);
        }
Beispiel #21
0
        public string GetListHoSo(QLPHONGKHAMEntities db, string MaPhong, string NodeKham, out List <HoSoBenhAnDTO> ListHoSo)
        {
            List <HOSOBENHAN> listHoSoDAO = null;

            ListHoSo = new List <HoSoBenhAnDTO>();
            object[] param = { MaPhong, NodeKham };
            if (hoSoBenhAnService.GetListHoSoWithRoomAndNode(db, param, out listHoSoDAO) == COM.Constant.RES_FAI)
            {
                return(COM.Constant.RES_FAI);
            }
            if (listHoSoDAO == null)
            {
                return(COM.Constant.RES_FAI);
            }
            foreach (var hs in listHoSoDAO)
            {
                HoSoBenhAnDTO entity = new HoSoBenhAnDTO();
                BUS.Com.Utils.CopyPropertiesFrom(hs, entity);
                ListHoSo.Add(entity);
            }
            return(COM.Constant.RES_SUC);
        }
Beispiel #22
0
        public string SearchHoSo(QLPHONGKHAMEntities db, HoSoSearchEntity HoSoSearch, out List <HoSoBenhAnDTO> ListHoSoEntity)
        {
            ListHoSoEntity = new List <HoSoBenhAnDTO>();
            List <HOSOBENHAN> listHoSoDAO = null;

            object[] param = { HoSoSearch.MaHoSo, HoSoSearch.TenBenhNhan, HoSoSearch.NgayKham };
            if (hoSoBenhAnService.SearchHoSo(db, param, out listHoSoDAO) == COM.Constant.RES_FAI)
            {
                return(COM.Constant.RES_FAI);
            }
            if (listHoSoDAO == null)
            {
                return(COM.Constant.RES_FAI);
            }
            foreach (var hs in listHoSoDAO)
            {
                HoSoBenhAnDTO entity = new HoSoBenhAnDTO();
                BUS.Com.Utils.CopyPropertiesFrom(hs, entity);
                ListHoSoEntity.Add(entity);
            }
            return(COM.Constant.RES_SUC);
        }
Beispiel #23
0
        public void Update_TestCase3()
        {
            HoSoBenhAnDTO hoSoBenhAnDTO = new HoSoBenhAnDTO
            {
                MaHoSo     = TestCommon.LEN_10,
                MaLoaiHoSo = TestCommon.LEN_10,
                MaBenhNhan = TestCommon.LEN_10,
            };

            HoSoBenhAnBUS hoSoBenhAnBUS = new HoSoBenhAnBUS();

            hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAnDTO);

            HOSOBENHAN hoSoBenhAnUpdate = new HOSOBENHAN
            {
                MaHoSo = TestCommon.LEN_10,
            };
            string actual   = hoSoBenhAnBUS.UpdateHoSoBenhAn(db, hoSoBenhAnDTO);
            string expected = "1111";

            Assert.Equals(expected, actual);
        }
Beispiel #24
0
        // Lưu thông tin Khám
        public string KhamProcessing(HoSoBenhAnDTO hoSoBenhAn)
        {
            HoSoBenhAnBUS   hoSoBenhAnBUS   = new HoSoBenhAnBUS();
            LuonCongViecBUS luonCongViecBUS = new LuonCongViecBUS();

            using (QLPHONGKHAMEntities db = new QLPHONGKHAMEntities())
            {
                LuonCongViecDTO luonCongViec = new LuonCongViecDTO();
                try
                {
                    luonCongViecBUS.GetInformationLuonCongViec(db, hoSoBenhAn.MaHoSo, out luonCongViec);
                    luonCongViec.NodeHienTai = BusConstant.NODE_HOAN_TAT;
                    luonCongViec.KhamBenh    = true;
                }
                catch
                {
                    return(Constant.RES_FAI);
                }
                using (var trans = db.Database.BeginTransaction())
                {
                    if (hoSoBenhAnBUS.UpdateHoSoBenhAn(db, hoSoBenhAn).Equals(Constant.RES_FAI))
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    if (luonCongViecBUS.UpdateLuonCongViec(db, luonCongViec).Equals(Constant.RES_FAI))
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    trans.Commit();
                }
                db.SaveChanges();
            }
            return(Constant.RES_SUC);
        }
Beispiel #25
0
        // check input
        public string InputCheck(HoSoBenhAnDTO hoSo, ref List <string> MessageError)
        {
            KhamInputCheck inputCheck = new KhamInputCheck();

            return(inputCheck.InputCheck(hoSo, ref MessageError));
        }
Beispiel #26
0
        public string SaveHoSo(HoSoBenhAnDTO hoSoBenhAn,
                               ThanhToanDTO thanhToan)
        {
            TrangThaiPhongDTO trangThaiPhong = null;
            // get System date
            string SystemDate = DateTime.Now.ToString("yyyyMMdd");

            ThanhToanBUS      thanhToanBUS      = new ThanhToanBUS();
            HoSoBenhAnBUS     hoSoBenhAnBUS     = new HoSoBenhAnBUS();
            LuonCongViecBUS   luonCongViecBUS   = new LuonCongViecBUS();
            TrangThaiPhongBUS trangThaiPhongBUS = new TrangThaiPhongBUS();

            using (QLPHONGKHAMEntities db = new QLPHONGKHAMEntities())
            {
                // lấy trạng thái phòng
                trangThaiPhongBUS.GetTrangThaiPhong(db, hoSoBenhAn.MaPhongKham, SystemDate, out trangThaiPhong);
                trangThaiPhong.SttCaoNhat += 1;

                // setting ho so
                string maHoSo;
                hoSoBenhAnBUS.CreateIdHoSoBenhAn(db, out maHoSo);
                hoSoBenhAn.MaHoSo = maHoSo;
                // nếu là hồ sơ tái khám
                if (hoSoBenhAn.MaLoaiHoSo == BusConstant.HS_TAIKHAM)
                {
                    HoSoBenhAnDTO root = new HoSoBenhAnDTO();

                    // get MaHoSoGoc
                    hoSoBenhAnBUS.GetRootHoSoBenhAn(db, hoSoBenhAn.MaHoSoTruoc, out root);
                    hoSoBenhAn.MaHoSoGoc = root.MaHoSoGoc;
                }
                hoSoBenhAn.SoThuTu = trangThaiPhong.SttCaoNhat;

                // điền thông tin vào thanh toán
                string MaThanhToan = "";
                thanhToanBUS.CreateIdThanhToan(db, out MaThanhToan);
                thanhToan.MaThanhToan = MaThanhToan;
                thanhToan.TongChiPhi  = thanhToan.ChiPhiKham;
                thanhToan.MaHoSo      = hoSoBenhAn.MaHoSo;
                // điền thông tin Workflow
                LuonCongViecDTO luonCongViec = new LuonCongViecDTO();
                luonCongViec.MaHoSo      = hoSoBenhAn.MaHoSo;
                luonCongViec.NodeHienTai = BusConstant.NODE_KHAM;
                luonCongViec.TiepNhan    = true;
                luonCongViec.XetNghiem   = false;
                luonCongViec.KhamBenh    = false;

                // Tạo transaction
                using (var trans = db.Database.BeginTransaction())
                {
                    // save hồ sơ
                    if (hoSoBenhAnBUS.AddHoSoBenhAn(db, hoSoBenhAn) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    // save luồn công việc
                    if (luonCongViecBUS.AddLuonCongViec(db, luonCongViec) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    // save thanh toán
                    if (thanhToanBUS.InsertThanhToan(db, thanhToan) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    // update Trang thanh phong
                    if (trangThaiPhongBUS.UpdateTrangThaiPhong(db, trangThaiPhong) == Constant.RES_FAI)
                    {
                        trans.Rollback();
                        return(Constant.RES_FAI);
                    }
                    trans.Commit();
                }
                db.SaveChanges();
            }
            return(Constant.RES_SUC);
        }