public void Insert(int IdThietBi,string BodyPart,string ViewPos,string ModalityCode,int TrangThai,int? IdDvu,string Desc,string CustomField1,string CustomField2,string CustomField3)
	    {
		    DMaDieuKhienThietBi item = new DMaDieuKhienThietBi();
		    
            item.IdThietBi = IdThietBi;
            
            item.BodyPart = BodyPart;
            
            item.ViewPos = ViewPos;
            
            item.ModalityCode = ModalityCode;
            
            item.TrangThai = TrangThai;
            
            item.IdDvu = IdDvu;
            
            item.Desc = Desc;
            
            item.CustomField1 = CustomField1;
            
            item.CustomField2 = CustomField2;
            
            item.CustomField3 = CustomField3;
            
	    
		    item.Save(UserName);
	    }
Пример #2
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;
            }
        }