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); }
/// <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; } }