public void Insert(string MaPhieu,int IdBnhan,string Pid,DateTime NgayDky,int? IdKhoaCd,string BsCdinh,int? LoaiPhieu,int? IdKhoaTao,string NguoiTao,DateTime NgayTao,string NguoiSua,DateTime? NgaySua,string MaPhieuHis,string MtaThem,string StudyInstanseUid,string MaPhong,string SourcePatientid,int AutoGen)
	    {
		    RisPhieuCdinh item = new RisPhieuCdinh();
		    
            item.MaPhieu = MaPhieu;
            
            item.IdBnhan = IdBnhan;
            
            item.Pid = Pid;
            
            item.NgayDky = NgayDky;
            
            item.IdKhoaCd = IdKhoaCd;
            
            item.BsCdinh = BsCdinh;
            
            item.LoaiPhieu = LoaiPhieu;
            
            item.IdKhoaTao = IdKhoaTao;
            
            item.NguoiTao = NguoiTao;
            
            item.NgayTao = NgayTao;
            
            item.NguoiSua = NguoiSua;
            
            item.NgaySua = NgaySua;
            
            item.MaPhieuHis = MaPhieuHis;
            
            item.MtaThem = MtaThem;
            
            item.StudyInstanseUid = StudyInstanseUid;
            
            item.MaPhong = MaPhong;
            
            item.SourcePatientid = SourcePatientid;
            
            item.AutoGen = AutoGen;
            
	    
		    item.Save(UserName);
	    }
Exemple #2
0
        /// <summary>
        /// Thực hiện thêm mới thông tin không nhập qua phần tiếp đón
        /// </summary>
        /// <param name="TenBenhNhan">Tên bệnh nhân</param>
        /// <param name="GTinh"> </param>
        /// <param name="StudyInstanseUid">StudyInstanseUid</param>
        /// <param name="SERIES_INSTANCE_UID">SERIES_INSTANCE_UID</param>
        /// <param name="SOP_INSTANCE_UID">SOP_INSTANCE_UID</param>
        /// <param name="BodyPart"> </param>
        /// <param name="Position"> </param>
        /// <param name="PathImage">Đường dẫn ảnh</param>
        /// <param name="PathImage_thumb"> </param>
        /// <param name="IdDichVu">ID dịch vụ </param>
        /// <returns></returns>
        public static void ThemBenhNhan(string TenBenhNhan, string GTinh, string StudyInstanseUid,
                                        string SERIES_INSTANCE_UID, string SOP_INSTANCE_UID, string BodyPart,
                                        string Position, string PathImage, string PathImage_thumb,
                                        string sourcePatientId)
        {
            try
            {
                Query _QuerySoPhieu = RisPhieuCdinh.CreateQuery();
                Query _QueryChiTiet = RisPhieuCdinhCtiet.CreateQuery();
                using (var scope = new TransactionScope())
                {
                    using (var sp = new SharedDbConnectionScope())
                    {
                        DateTime sysDateTime = BusinessHelper.GetSysDateTime();
                        var objBenhNhan = new RisBenhNhan();
                        SqlQuery sqlQuery = new Select().From(RisPhieuCdinh.Schema)
                            .Where(RisPhieuCdinh.Columns.StudyInstanseUid).IsEqualTo(StudyInstanseUid);
                        var objPhieuCdinh = new RisPhieuCdinh();

                        if (sqlQuery.GetRecordCount() <= 0)
                        {
                            objBenhNhan = ThemMoiBenhNhan(TenBenhNhan, GTinh);
                            objPhieuCdinh.StudyInstanseUid = StudyInstanseUid;
                            objPhieuCdinh.IdBnhan = objBenhNhan.IdBnhan;
                            objPhieuCdinh.MaPhieu = BusinessHelper.LayMaPhieu();
                            objPhieuCdinh.Pid = objBenhNhan.Pid;
                            objPhieuCdinh.LoaiPhieu = 1;
                            // objPhieuCdinh.IdKhoaThien = -1;
                            //objPhieuCdinh.MaTbi = String.Empty;
                            objPhieuCdinh.NgayDky = sysDateTime;
                            objPhieuCdinh.NgayTao = sysDateTime;
                            objPhieuCdinh.NguoiTao = globalVariables.UserName;
                            objPhieuCdinh.SourcePatientid = sourcePatientId;
                            objPhieuCdinh.IsNew = true;
                            objPhieuCdinh.Save();
                            objPhieuCdinh.IdPhieu =
                                Utility.Int32Dbnull(_QuerySoPhieu.GetMax(RisPhieuCdinh.Columns.IdPhieu));
                        }
                        else
                        {
                            objPhieuCdinh = sqlQuery.ExecuteSingle<RisPhieuCdinh>();
                            new Update(RisBenhNhan.Schema)
                                .Set(RisBenhNhan.Columns.TenBnhan).EqualTo(TenBenhNhan)
                                .Set(RisBenhNhan.Columns.TenBnhanKdau).EqualTo(Utility.UnSignedCharacter(TenBenhNhan))
                                .Set(RisBenhNhan.Columns.Gtinh).EqualTo(GTinh)
                                .Where(RisBenhNhan.Columns.IdBnhan).IsEqualTo(objPhieuCdinh.IdBnhan).Execute();
                        }
                        sqlQuery = new Select().From(RisPhieuCdinhCtiet.Schema)
                            .Where(RisPhieuCdinhCtiet.Columns.IdPhieu).IsEqualTo(objPhieuCdinh.IdPhieu)
                            .And(RisPhieuCdinhCtiet.Columns.SeriesInstanceUid).IsEqualTo(SERIES_INSTANCE_UID)
                            .And(RisPhieuCdinhCtiet.Columns.StudyInstanceUid).IsEqualTo(StudyInstanseUid);
                        //.And(RisPhieuCdinhCtiet.Columns.SopInstanceUid).IsEqualTo(SOP_INSTANCE_UID);
                        var objRisPhieuCdinhCtiet = new RisPhieuCdinhCtiet();
                        if (sqlQuery.GetRecordCount() <= 0)
                        {
                            SqlQuery sqlQueryDV = new Select().From(DDichVu.Schema)
                                .Where(DDichVu.Columns.MaDvu).IsEqualTo(Position)
                                .And(DDichVu.Columns.IdLoaiDvu).In(
                                    new Select(DLoaiDvu.Columns.IdLoaiDvu).From(DLoaiDvu.Schema)
                                        .Where(DLoaiDvu.Columns.MaLoaiDvu).
                                        IsEqualTo(BodyPart));
                            var objDichVu = sqlQueryDV.ExecuteSingle<DDichVu>();
                            if (objDichVu != null)
                            {
                                objRisPhieuCdinhCtiet.IdDvu = Utility.Int32Dbnull(objDichVu.IdDvu, -1);
                                if (objDichVu != null)
                                {
                                    objRisPhieuCdinhCtiet.IdLoaiDvu = objDichVu.IdLoaiDvu;
                                    objRisPhieuCdinhCtiet.GhiChu = Utility.sDbnull(objDichVu.MoTa, "");
                                    SqlQuery sqlQueryVungKS = new Select().From(DVungKsat.Schema)
                                        .Where(DVungKsat.Columns.IdVungKs).IsEqualTo(objDichVu.IdVungKs);
                                    var objDVungKsat = sqlQueryVungKS.ExecuteSingle<DVungKsat>();
                                    if (objDVungKsat != null)
                                    {
                                        objRisPhieuCdinhCtiet.VungKs = Utility.sDbnull(objDVungKsat.TenVungKs, "");
                                        objRisPhieuCdinhCtiet.KetLuan = Utility.sDbnull(objDVungKsat.KetLuan, "");
                                        objRisPhieuCdinhCtiet.DeNghi = Utility.sDbnull(objDVungKsat.DeNghi, "");
                                        objRisPhieuCdinhCtiet.KyThuat = Utility.sDbnull(objDVungKsat.KyThuat, "");
                                        objRisPhieuCdinhCtiet.MoTa = Utility.sDbnull(objDVungKsat.MoTa, "");
                                    }
                                }
                            }
                            objRisPhieuCdinhCtiet.Sluong = 1;
                            objRisPhieuCdinhCtiet.DaIn = 0;
                            objRisPhieuCdinhCtiet.SeriesInstanceUid = SERIES_INSTANCE_UID;
                            objRisPhieuCdinhCtiet.SopInstanceUid = SOP_INSTANCE_UID;
                            objRisPhieuCdinhCtiet.StudyInstanceUid = objPhieuCdinh.StudyInstanseUid;
                            objRisPhieuCdinhCtiet.MaKieuDvu = globalVariables.MaKieuDV;
                            objRisPhieuCdinhCtiet.MaDvu = Position;
                            objRisPhieuCdinhCtiet.MaLoaiDvu = BodyPart;
                            objRisPhieuCdinhCtiet.MaTbi = string.Empty;
                            objRisPhieuCdinhCtiet.IdKhoaThien = -1;
                            objRisPhieuCdinhCtiet.TrangThaiImage = 1;
                            // objRisPhieuCdinhCtiet.MaKieuDvu = globalVariables.;
                            objRisPhieuCdinhCtiet.TrangThai = 0;
                            objRisPhieuCdinhCtiet.IdPhieu = objPhieuCdinh.IdPhieu;
                            objRisPhieuCdinhCtiet.IsNew = true;
                            objRisPhieuCdinhCtiet.Save();
                            objRisPhieuCdinhCtiet.IdPhieuCtiet =
                                Utility.Int32Dbnull(_QueryChiTiet.GetMax(RisPhieuCdinhCtiet.Columns.IdPhieuCtiet), -1);
                        }
                        else
                        {
                            objRisPhieuCdinhCtiet = sqlQuery.ExecuteSingle<RisPhieuCdinhCtiet>();
                        }
                        sqlQuery = new Select().From(RisLuuAnh.Schema)
                            .Where(RisLuuAnh.Columns.IdPhieuCtiet).IsEqualTo(objRisPhieuCdinhCtiet.IdPhieuCtiet)
                            .And(RisLuuAnh.Columns.SeriesInstanceUid).IsEqualTo(objRisPhieuCdinhCtiet.SeriesInstanceUid)
                            .And(RisLuuAnh.Columns.SopInstanceUid).IsEqualTo(SOP_INSTANCE_UID);
                        if (sqlQuery.GetRecordCount() <= 0)
                        {
                            new Update(RisLuuAnh.Schema)
                                .Set(RisLuuAnh.Columns.TrangThai).EqualTo(0)
                                .Where(RisPhieuCdinhCtiet.Columns.IdPhieuCtiet).IsEqualTo(
                                    objRisPhieuCdinhCtiet.IdPhieuCtiet).Execute();
                            var objLuuAnh = new RisLuuAnh();
                            objLuuAnh.DdanAnh = PathImage;
                            objLuuAnh.DdanAnhThumb = PathImage_thumb;
                            objLuuAnh.IdPhieuCtiet = Utility.Int64Dbnull(objRisPhieuCdinhCtiet.IdPhieuCtiet, -1);
                            objLuuAnh.SeriesInstanceUid = objRisPhieuCdinhCtiet.SeriesInstanceUid;
                            objLuuAnh.SopInstanceUid = SOP_INSTANCE_UID;
                            objLuuAnh.NgayTao = sysDateTime;
                            objLuuAnh.TrangThai = 1;
                            string[] strings = SOP_INSTANCE_UID.Split('.');
                            int loz;
                            try
                            {
                                loz = Convert.ToInt32(strings[strings.Length - 1]);
                            }
                            catch (Exception)
                            {
                                loz = 0;
                            }
                            objLuuAnh.Stt = loz;
                            objLuuAnh.IsNew = true;
                            objLuuAnh.Save();
                        }
                        else
                        {
                            new Update(RisLuuAnh.Schema)
                                .Set(RisLuuAnh.Columns.DdanAnh).EqualTo(PathImage)
                                .Set(RisLuuAnh.Columns.NgayTao).EqualTo(sysDateTime)
                                .Where(RisLuuAnh.Columns.IdPhieuCtiet).IsEqualTo(objRisPhieuCdinhCtiet.IdPhieuCtiet)
                                .And(RisLuuAnh.Columns.SeriesInstanceUid).IsEqualTo(
                                    objRisPhieuCdinhCtiet.SeriesInstanceUid)
                                .And(RisLuuAnh.Columns.SopInstanceUid).IsEqualTo(SOP_INSTANCE_UID).Execute();
                        }
                    }
                    //  OrderImage(SERIES_INSTANCE_UID);
                    scope.Complete();
                    return;
                }
            }
            catch (Exception ex)
            {
                return;
            }
        }
Exemple #3
0
        /// <summary>
        /// Trả về đối tượng chỉ định chi tiết nếu đã có chỉ định hoặc tạo mới thành công.Null nếu tạo mới không thành công
        /// </summary>
        /// <param name="oPhieuCdinh"></param>
        /// <param name="aeTitle"> </param>
        /// <param name="bodyPart"> </param>
        /// <param name="viewpos"> </param>
        /// <param name="studyInstanseUid"> </param>
        /// <param name="seriesInstanceUid"> </param>
        /// <param name="sopInstanceUid"> </param>
        /// <returns></returns>
        public static RisPhieuCdinhCtiet GetPhieuChiDinhChiTiet(RisPhieuCdinh oPhieuCdinh,
                                                                string aeTitle, string bodyPart, string viewpos,
                                                                string studyInstanseUid, string seriesInstanceUid,
                                                                string sopInstanceUid)
        {
            try
            {
                var o = new RisPhieuCdinhCtiet();
                //B1:Lấy về tất cả các chỉ định của phiếu chỉ định
                DataTable dt = SPs.SpGetTestListForInsert2(oPhieuCdinh.MaPhieu, aeTitle).GetDataSet().Tables[0];
                //Nếu có chỉ định thì tìm kiếm để lấy về số phiếu
                if (dt.Rows.Count > 0)
                {
                    //Lọc tìm phiếu chỉ định chi tiết
                    DataRow[] dataRows =
                        dt.Select(string.Format("BodyPart = '{0}' and ViewPos = '{1}'", bodyPart, viewpos));
                    //Nếu tìm thấy thì lấy luôn số phiếu đầu tiên
                    if (dataRows.Length > 0)
                    {
                        var phieuChiDinhChiTiet = new RisPhieuCdinhCtiet(dataRows[0]["ID_PHIEU_CTIET"]);
                        phieuChiDinhChiTiet.BodyPart = bodyPart;
                        phieuChiDinhChiTiet.ViewPos = viewpos;
                        phieuChiDinhChiTiet.Save();
                        return phieuChiDinhChiTiet;
                    }
                }
                //Bổ sung bước kiểm tra SOPID

                RisPhieuCdinhCtietCollection tempChitiets =
                    new RisPhieuCdinhCtietController().FetchByQuery(
                        RisPhieuCdinhCtiet.CreateQuery().WHERE(RisPhieuCdinhCtiet.Columns.StudyInstanceUid,
                                                               Comparison.Equals, studyInstanseUid).AND(
                                                                   RisPhieuCdinhCtiet.Columns.SeriesInstanceUid,
                                                                   Comparison.Equals, seriesInstanceUid).AND(
                                                                       RisPhieuCdinhCtiet.Columns.SopInstanceUid,
                                                                       Comparison.Equals, sopInstanceUid));
                if (tempChitiets.Count > 0)
                {
                    var phieuChiDinhChiTiet = tempChitiets[0];
                    phieuChiDinhChiTiet.BodyPart = bodyPart;
                    phieuChiDinhChiTiet.ViewPos = viewpos;
                    phieuChiDinhChiTiet.Save();
                    return phieuChiDinhChiTiet;
                }


                //Nếu không tìm thấy phiếu nào thì phải tạo phiếu chi tiết mới
                o.IdPhieu = oPhieuCdinh.IdPhieu;
                o.IdDvu = -1;
                int idThietBi =
                    Utility.Int32Dbnull(
                        new Select(DThietBi.IdThietBiColumn).From(DThietBi.Schema).Where(DThietBi.AETitleColumn).
                            IsEqualTo(aeTitle).ExecuteScalar(), -1);

                //Nếu id THiết bị <>-1
                //Lấy mã dịch vụ từ AETitle, bodypart và viewpos
                //Nếu chưa tồn tại bodypart và viewpos trong bảng mã điều khiển thì tự thêm mới.
                if (idThietBi != -1)
                {
                    // Nếu tồn tại thiết bị lấy về obj mã đk Thiết bị
                    DMaDieuKhienThietBiCollection objmdks = new DMaDieuKhienThietBiController().
                        FetchByQuery(DMaDieuKhienThietBi.CreateQuery().
                                         WHERE(DMaDieuKhienThietBi.Columns.IdThietBi, Comparison.Equals, idThietBi).
                                         AND(
                                             DMaDieuKhienThietBi.Columns.BodyPart, Comparison.Equals, bodyPart).AND(
                                                 DMaDieuKhienThietBi.Columns.ViewPos, Comparison.Equals, viewpos));
                    if (objmdks != null)
                    {
                        // Nếu tồn tại bodypart và viewpos thì lấy ra dịch vụ
                        if (objmdks.Count > 0)
                        {
                            o.IdDvu = Utility.Int32Dbnull(objmdks.First().IdDvu, -1);
                        }
                            //Nếu không tồn tại thì insert mã điều khiển mới
                        else
                        {
                            var objmdk = new DMaDieuKhienThietBi();
                            objmdk.IdDvu = -1;
                            objmdk.IdThietBi = idThietBi;
                            objmdk.BodyPart = bodyPart;
                            objmdk.ViewPos = viewpos;
                            objmdk.TrangThai = 1;
                            objmdk.Desc = string.Format("{0}-{1}", bodyPart, viewpos);
                            objmdk.Save();
                        }
                    }
                }
                //Xử lý trường hợp nếu idDvu =-1 gán về loại chưa xác định (loại có trạng thái =0)
                DDichVu objDichVu = null;
                if (o.IdDvu == -1)
                {
                    DDichVuCollection tempdvs =
                        new DDichVuController().FetchByQuery(DDichVu.CreateQuery().WHERE(DDichVu.Columns.TrangThai,
                                                                                         Comparison.Equals, 0));
                    if (tempdvs.Count > 0)
                    {
                        objDichVu = tempdvs[0];
                        o.IdDvu = objDichVu.IdDvu;
                    }
                    else
                    {
                        objDichVu = new DDichVu(o.IdDvu);
                    }
                }
                else
                {
                    objDichVu = new DDichVu(o.IdDvu);
                }

                o.MaDvu = Utility.sDbnull(objDichVu.MaDvu);
                o.Sluong = 1;
                o.DonGia = Utility.DecimaltoDbnull(objDichVu.DonGia, 0);
                o.DaIn = 0;
                o.AutoGen = 1;
                o.IdLoaiDvu = Utility.Int32Dbnull(objDichVu.IdLoaiDvu, -1);
                o.MaLoaiDvu =
                    Utility.sDbnull(
                        new Select(DLoaiDvu.MaLoaiDvuColumn).From(DLoaiDvu.Schema).Where(DLoaiDvu.IdLoaiDvuColumn).
                            IsEqualTo(o.IdLoaiDvu).ExecuteScalar());
                o.TrangThai = 0;
                o.IdKhoaThien = -1;
                o.MaKieuDvu = "";
                o.BodyPart = bodyPart;
                o.ViewPos = viewpos;
                o.Save();

                return o;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
Exemple #4
0
        /// <summary>
        /// Trả về đối tượng Phiếu chỉ đinh trong trường hợp đã tồn tại hoặc tạo mới thành công. Null nếu ko tạo mới thành công
        /// </summary>
        /// <param name="oBenhNhan"></param>
        /// <param name="maPhieu"></param>
        /// <returns></returns>
        public static RisPhieuCdinh GetPhieuChiDinh(RisBenhNhan oBenhNhan, string maPhieu)
        {
            try
            {
                //B1: Kiểm tra xem đã tồn tại phiếu hay chưa ? bằng mã phiếu
                var tempPhieu =
                    new RisPhieuCdinhController().FetchByQuery(
                        RisPhieuCdinh.CreateQuery().WHERE(RisPhieuCdinh.Columns.MaPhieu, Comparison.Equals, maPhieu));
                if ((tempPhieu != null) && (tempPhieu.Count > 0))
                {
                    var risPhieuCdinh = tempPhieu[0];
                    risPhieuCdinh.SourcePatientid = oBenhNhan.Pid;
                    risPhieuCdinh.Save();
                    return risPhieuCdinh;
                }

                //Nếu chưa tồn tại phiếu thì thêm mới.
                var sysDateTime = BusinessHelper.GetSysDateTime();
                var objPhieuCdinh = new RisPhieuCdinh();
                objPhieuCdinh.IdBnhan = oBenhNhan.IdBnhan;
                //Nếu không có accession no thì sinh mã mới :D
                objPhieuCdinh.MaPhieu = string.IsNullOrEmpty(maPhieu.Trim())
                                            ? BusinessHelper.LayMaPhieu()
                                            : maPhieu.Trim();
                objPhieuCdinh.Pid = oBenhNhan.Pid;
                objPhieuCdinh.LoaiPhieu = 1;
                objPhieuCdinh.NgayDky = sysDateTime;
                objPhieuCdinh.NgayTao = sysDateTime;
                objPhieuCdinh.NguoiTao = "Service";
                objPhieuCdinh.SourcePatientid = oBenhNhan.Pid;
                objPhieuCdinh.AutoGen = 1;
                objPhieuCdinh.IsNew = true;
                objPhieuCdinh.Save();
                return objPhieuCdinh;
            }
            catch (Exception)
            {
                return null;
            }
        }
 /// <summary>
 /// hàm thực hiện việc chuyển phòng ban
 /// </summary>
 /// <param name="objPhieuCdinh"></param>
 /// <returns></returns>
 public ActionResult ChuyenPhongThucHien(RisPhieuCdinh objPhieuCdinh)
 {
      try
     {
         using (var scope = new TransactionScope())
         {
             using (var sh = new SharedDbConnectionScope())
             {
                 log.Info("Bạn chuyen thong tin dieu huong phong voi ID=" + objPhieuCdinh.IdKhoaThien);
                 log.Info("Bạn chuyen thong tin dieu huong ma thiet bi voi ID=" + objPhieuCdinh.MaTbi);
                 SqlQuery sqlQuery;
                 if(globalVariables.gv_ExistsThietBi)
                 {
                     new Update(RisPhieuCdinh.Schema)
                    .Set(RisPhieuCdinh.Columns.IdKhoaThien).EqualTo(objPhieuCdinh.IdKhoaThien)
                    .Set(RisPhieuCdinh.Columns.MaTbi).EqualTo(objPhieuCdinh.MaTbi)
                    .Where(RisPhieuCdinh.Columns.IdPhieu).IsEqualTo(objPhieuCdinh.IdPhieu).Execute();
                 }
                 else
                 {
                     new Update(RisPhieuCdinh.Schema)
                   .Set(RisPhieuCdinh.Columns.IdKhoaThien).EqualTo(objPhieuCdinh.IdKhoaThien)
                  // .Set(RisPhieuCdinh.Columns.MaTbi).EqualTo(objPhieuCdinh.MaTbi)
                   .Where(RisPhieuCdinh.Columns.IdPhieu).IsEqualTo(objPhieuCdinh.IdPhieu).Execute();
                 }
               
                 
             }
             scope.Complete();
             return ActionResult.Success;
         }
     }
     catch (Exception exception)
     {
         log.Error("Loi trong qua trinh them moi benh nhan {0}", exception.ToString());
         VietBaIT.CommonLibrary.ErrorLog.InsertErrorlog(exception.ToString(),
                                                        Assembly.GetExecutingAssembly().GetName().Name,
                                                        Assembly.GetExecutingAssembly().FullName);
         return ActionResult.Error;
     }
 }
       /// <summary>
       /// hàm thực hiện việc thêm mới thôn tin của phiéu điều trị
       /// </summary>
       /// <param name="objPhieuCdinh"></param>
       /// <param name="arrPhieuChiTiet"></param>
       /// <param name="IDPhieu"></param>
       /// <returns></returns>
       public ActionResult InsertPhieuChiDinh(RisPhieuCdinh objPhieuCdinh, RisPhieuCdinhCtiet[] arrPhieuChiTiet, ref int IDPhieu,ref string SoPhieu)
       {
           Query _Query = RisPhieuCdinh.CreateQuery();
           try
           {
               using (var scope = new TransactionScope())
               {
                   using (var sh = new SharedDbConnectionScope())
                   {
                       objPhieuCdinh.MaPhieu = BusinessHelper.LayMaPhieu();
                       objPhieuCdinh.IsNew = true;
                       objPhieuCdinh.Save();
                       objPhieuCdinh.IdPhieu = Utility.Int32Dbnull(_Query.GetMax(RisPhieuCdinh.Columns.IdPhieu), -1);
                       log.Info("Lay thong tin cua so phieu lon nhat co trong db voi id_phieu=" + objPhieuCdinh.IdPhieu);
                       SqlQuery sqlQuery = new Select(SubSonic.Aggregate.Max(RisPhieuCdinh.Columns.IdPhieu)).From(RisPhieuCdinh.Schema)
                           .Where(RisPhieuCdinh.Columns.IdBnhan).IsEqualTo(objPhieuCdinh.IdBnhan)
                           .And(RisPhieuCdinh.Columns.Pid).IsEqualTo(objPhieuCdinh.Pid);
                       int MaxPhieu = Utility.Int32Dbnull(sqlQuery.ExecuteScalar(),-1);
                       log.Info("Bat dau kiem tra so phieu xem co dung cua benh nhan do khong");
                       if (MaxPhieu != objPhieuCdinh.IdPhieu)
                       {
                           VietBaIT.CommonLibrary.ErrorLog.InsertInfolog("Mã phiếu khác nhau, thì thực hiện gán cái vừa lấy được cho cái cũ",
                                                             Assembly.GetExecutingAssembly().GetName().Name,
                                                             Assembly.GetExecutingAssembly().FullName);
                          
                           objPhieuCdinh.IdPhieu = MaxPhieu;
                           log.Info("Thuc hien viec kiem tra xem so phieu da ton tai chua,neu co rui thi lay id =" + objPhieuCdinh.IdPhieu);
                       }
                       sqlQuery = new Select().From(RisPhieuCdinh.Schema)
                           .Where(RisPhieuCdinh.Columns.MaPhieu).IsEqualTo(objPhieuCdinh.MaPhieu)
                           .And(RisPhieuCdinh.Columns.IdPhieu).IsNotEqualTo(objPhieuCdinh.IdPhieu);
                       VietBaIT.CommonLibrary.ErrorLog.InsertInfolog("Kiểm tra xem có trùng mã phiếu không, nếu trùng thì thực hiện cập nhập lại số phiếu khác",
                                                            Assembly.GetExecutingAssembly().GetName().Name,
                                                            Assembly.GetExecutingAssembly().FullName);
                       log.Info("Kiem tra xem so phieu da ton tai chua");
                       if (sqlQuery.GetRecordCount() > 0)
                       {
                        
                           objPhieuCdinh.MaPhieu = BusinessHelper.LayMaPhieu();
                           new Update(RisPhieuCdinh.Schema)
                               .Set(RisPhieuCdinh.Columns.MaPhieu).EqualTo(objPhieuCdinh.MaPhieu)
                               .Where(RisPhieuCdinh.Columns.IdPhieu).IsEqualTo(objPhieuCdinh.IdPhieu).Execute();
                           log.Info("Neu ton tai rui thi cap lai thong tin cua so phieu, voi so phieu moi la=" + objPhieuCdinh.MaPhieu);

                       }
                       log.Info("Bat dau insert thon tin chi tiet");
                       foreach (RisPhieuCdinhCtiet objPhieuCdinhCtiet in arrPhieuChiTiet)
                       {
                           log.Info("Insert thong tin voi IDPhieu=" + objPhieuCdinh.IdPhieu+" va iddich vu="+objPhieuCdinhCtiet.IdDvu);
                           objPhieuCdinhCtiet.IdPhieu = objPhieuCdinh.IdPhieu;
                           objPhieuCdinhCtiet.IsNew = true;
                           objPhieuCdinhCtiet.Save();
                       }
                   }
                   log.Info("Hoan thanh viec them moi so phieu");
                   scope.Complete();
                   IDPhieu = objPhieuCdinh.IdPhieu;
                   SoPhieu = objPhieuCdinh.MaPhieu;
                   return ActionResult.Success;
               }
           }
           catch (Exception exception)
           {
               log.Error("Loi trong qua trinh them moi benh nhan {0}", exception.ToString());
               VietBaIT.CommonLibrary.ErrorLog.InsertErrorlog(exception.ToString(),
                                                              Assembly.GetExecutingAssembly().GetName().Name,
                                                              Assembly.GetExecutingAssembly().FullName);
               return ActionResult.Error;
           }
       }
       /// <summary>
       /// hàm thực hiện việc cập nhập thogn tin của chỉ định
       /// </summary>
       /// <param name="objPhieuCdinh"></param>
       /// <param name="arrPhieuChiTiet"></param>
       /// <returns></returns>
       public ActionResult UpdatePhieuChiDinh(RisPhieuCdinh objPhieuCdinh, RisPhieuCdinhCtiet[] arrPhieuChiTiet)
       {
           Query _Query = RisPhieuCdinh.CreateQuery();
           try
           {
               using (var scope = new TransactionScope())
               {
                   using (var sh = new SharedDbConnectionScope())
                   {
                       new Update(RisPhieuCdinh.Schema)
                           .Set(RisPhieuCdinh.Columns.NguoiSua).EqualTo(globalVariables.UserName)
                           .Set(RisPhieuCdinh.Columns.NgaySua).EqualTo(BusinessHelper.GetSysDateTime())
                           .Set(RisPhieuCdinh.Columns.IdKhoaCd).EqualTo(objPhieuCdinh.IdKhoaCd)
                           .Set(RisPhieuCdinh.Columns.BsCdinh).EqualTo(objPhieuCdinh.BsCdinh)
                           .Where(RisPhieuCdinh.Columns.IdPhieu).IsEqualTo(objPhieuCdinh.IdPhieu).Execute();
                       new Delete().From(RisPhieuCdinhCtiet.Schema)
                           .Where(RisPhieuCdinhCtiet.Columns.IdPhieu).IsEqualTo(objPhieuCdinh.IdPhieu)
                           .AndExpression(RisPhieuCdinhCtiet.Columns.TrangThai).IsEqualTo(0).Or(RisPhieuCdinhCtiet.Columns.TrangThai)
                           .IsNull().CloseExpression()
                           .Execute();
                       foreach (RisPhieuCdinhCtiet objPhieuCdinhCtiet in arrPhieuChiTiet)
                       {

                           if (Utility.Int32Dbnull(objPhieuCdinhCtiet.TrangThai,0) > 0) continue;
                           objPhieuCdinhCtiet.IdPhieu = objPhieuCdinh.IdPhieu;
                           objPhieuCdinhCtiet.IsNew = true;
                           objPhieuCdinhCtiet.Save();

                       }
                   }
                   scope.Complete();
                   //IDPhieu = objPhieuCdinh.IdPhieu;
                   return ActionResult.Success;
               }
           }
           catch (Exception exception)
           {
               log.Error("Loi trong qua trinh them moi benh nhan {0}", exception.ToString());
               VietBaIT.CommonLibrary.ErrorLog.InsertErrorlog(exception.ToString(),
                                                              Assembly.GetExecutingAssembly().GetName().Name,
                                                              Assembly.GetExecutingAssembly().FullName);
               return ActionResult.Error;
           }
       }
Exemple #8
0
       public ActionResult InsertPhieuChiDinh(RisPhieuCdinh objPhieuCdinh, RisPhieuCdinhCtiet[] arrPhieuChiTiet,ref int IDPhieu)
       {
           Query _Query = RisPhieuCdinh.CreateQuery();
           try
           {
               using (var scope = new TransactionScope())
               {
                   using (var sh = new SharedDbConnectionScope())
                   {
                       objPhieuCdinh.MaPhieu = BusinessHelper.LayMaPhieu();
                       objPhieuCdinh.IsNew = true;
                       objPhieuCdinh.Save();
                       objPhieuCdinh.IdPhieu = Utility.Int32Dbnull(_Query.GetMax(RisPhieuCdinh.Columns.IdPhieu), -1);
                       SqlQuery sqlQuery = new Select().From(RisPhieuCdinh.Schema)
                           .Where(RisPhieuCdinh.Columns.MaPhieu).IsEqualTo(objPhieuCdinh.MaPhieu)
                           .And(RisPhieuCdinh.Columns.IdPhieu).IsNotEqualTo(objPhieuCdinh.IdPhieu);
                       if(sqlQuery.GetRecordCount()>0)
                       {
                           new Update(RisPhieuCdinh.Schema)
                               .Set(RisPhieuCdinh.Columns.MaPhieu).EqualTo(BusinessHelper.LayMaPhieu())
                               .Where(RisPhieuCdinh.Columns.IdPhieu).IsEqualTo(objPhieuCdinh.IdPhieu).Execute();

                       }
                       foreach (RisPhieuCdinhCtiet objPhieuCdinhCtiet in arrPhieuChiTiet)
                       {
                           objPhieuCdinhCtiet.IdPhieu = objPhieuCdinh.IdPhieu;
                           objPhieuCdinhCtiet.IsNew = true;
                           objPhieuCdinhCtiet.Save();
                       }
                   }
                   scope.Complete();
                   IDPhieu = objPhieuCdinh.IdPhieu;
                   return ActionResult.Success;
               }
           }
           catch (Exception exception)
           {
               log.Error("Loi trong qua trinh them moi benh nhan {0}", exception.ToString());
               VietBaIT.CommonLibrary.ErrorLog.InsertErrorlog(exception.ToString(),
                                                              Assembly.GetExecutingAssembly().GetName().Name,
                                                              Assembly.GetExecutingAssembly().FullName);
               return ActionResult.Error;
           }
       }