Exemplo n.º 1
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            // initialize the controller
            _theController = new DeviceConfigurationController();

            // setup child controls
            GridPagerTop.InitializeGridPager(SR.GridPagerDeviceSingleItem, SR.GridPagerDeviceMultipleItems, DeviceGridPanel.TheGrid, delegate { return(DeviceGridPanel.Devices.Count); }, ImageServerConstants.GridViewPagerPosition.Top);
            DeviceGridPanel.Pager = GridPagerTop;

            MoveConfirmation.Confirmed += delegate(object data)
            {
                IList <Device> devices = data as IList <Device>;

                StudyController studyController = new StudyController();
                foreach (Study study in StudyGridView.StudyList)
                {
                    foreach (Device device in devices)
                    {
                        studyController.MoveStudy(study, device);
                    }
                }
            };
        }
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);

            foreach (GridViewRow row in StudyListControl.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    int   index = StudyListControl.PageIndex * StudyListControl.PageSize + row.RowIndex;
                    Study study = StudyList[index];

                    if (study != null)
                    {
                        row.Attributes.Add("instanceuid", study.StudyInstanceUid);
                        row.Attributes.Add("serverae", Partition.AeTitle);
                        StudyController controller = new StudyController();
                        bool            deleted    = controller.IsScheduledForDelete(study);
                        if (deleted)
                        {
                            row.Attributes.Add("deleted", "true");
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Handles event when user clicks on "OK" button.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void OKButton_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                string reason = ReasonListBox.SelectedItem.Text;

                if (!String.IsNullOrEmpty(SaveReasonAsName.Text))
                {
                    SaveCustomReason();
                    reason = SaveReasonAsName.Text;
                }

                if (StudyEdited != null)
                {
                    List <UpdateItem> modifiedFields = GetChanges();
                    if (modifiedFields != null && modifiedFields.Count > 0)
                    {
                        var studyController = new StudyController();
                        studyController.EditStudy(Study, modifiedFields, reason + ImageServerConstants.ReasonCommentSeparator[0] + Comment.Text);
                        AuditLog(Study, modifiedFields);
                        StudyEdited();
                    }
                }

                Close();
            }
            else
            {
                EnsureDialogVisible();
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// Creates an instance of <see cref="StudyDetails"/> base on a <see cref="Study"/> object.
        /// </summary>
        /// <param name="study"></param>
        /// <returns></returns>
        public StudyDetails CreateStudyDetail(Study study)
        {
            var details = new StudyDetails();

            details.StudyInstanceUID = study.StudyInstanceUid;
            details.PatientName      = study.PatientsName;
            details.AccessionNumber  = study.AccessionNumber;
            details.PatientID        = study.PatientId;
            details.StudyDescription = study.StudyDescription;
            details.StudyDate        = study.StudyDate;
            details.StudyTime        = study.StudyTime;

            var controller = new StudyController();

            using (IReadContext ctx = PersistentStoreRegistry.GetDefaultStore().OpenReadContext())
            {
                details.Modalities = controller.GetModalitiesInStudy(ctx, study);
            }

            if (study.StudyInstanceUid != null)
            {
                StudyStorage storages = StudyStorage.Load(study.StudyStorageKey);
                if (storages != null)
                {
                    details.WriteLock = storages.WriteLock;
                    details.ReadLock  = storages.ReadLock;
                    details.Status    = storages.StudyStatusEnum.ToString();
                }
            }

            return(details);
        }
Exemplo n.º 5
0
        public void Update_invalid_input_returns_not_found()
        {
            _studyLogicMock.Setup(m => m.Update(It.IsAny <StudyDTO>(), It.IsAny <int>())).ReturnsAsync(false);
            var controller = new StudyController(_studyLogicMock.Object);
            var result     = controller.UpdateStudy(_studyDTO, _studyDTO.Id).Result;

            Assert.IsType <NotFoundResult>(result);
        }
Exemplo n.º 6
0
        public void Update_correct_input_returns_NoContent()
        {
            _studyLogicMock.Setup(m => m.Update(It.IsAny <StudyDTO>(), It.IsAny <int>())).ReturnsAsync(true);
            var controller = new StudyController(_studyLogicMock.Object);
            var result     = controller.UpdateStudy(_studyDTO, _studyDTO.Id).Result;

            Assert.IsType <NoContentResult>(result);
        }
Exemplo n.º 7
0
        public void GetStudyById_invalid_input_returns_NotFound()
        {
            _studyLogicMock.Setup(m => m.GetById(It.IsAny <int>())).ReturnsAsync(null);
            var controller = new StudyController(_studyLogicMock.Object);
            var result     = controller.GetStudyById(1).Result;

            Assert.IsType <NotFoundResult>(result);
        }
Exemplo n.º 8
0
        public void GetAllStudies_no_result_returns_NotFound()
        {
            _studyLogicMock.Setup(m => m.GetAll()).ReturnsAsync(null);
            var controller = new StudyController(_studyLogicMock.Object);
            var result     = controller.GetAllStudies().Result;

            Assert.IsType <NotFoundResult>(result);
        }
Exemplo n.º 9
0
        public override void DataBind()
        {
            StudyStorageViewControl.DataSource = null;
            StudyController studyController = new StudyController();

            StudyStorageViewControl.DataSource = studyController.GetStudyStorageLocation(_study);

            base.DataBind();
        }
Exemplo n.º 10
0
        public override void DataBind()
        {
            StudyController studyController = new StudyController();

            ArchiveQueueGridView.DataSource = studyController.GetArchiveQueueItems(_study);
            _storage = studyController.GetArchiveStudyStorage(_study);
            ArchiveStudyStorageGridView.DataSource = _storage;
            base.DataBind();
        }
        public void Dispose_calls_repository_dispose()
        {
            var repository = new Mock <IStudyRepository>();

            using (var controller = new StudyController(repository.Object, log.Object))
            {
            }

            repository.Verify(r => r.Dispose());
        }
Exemplo n.º 12
0
        public override void DataBind()
        {
            if (Study != null)
            {
                StudyController controller = new StudyController();
                FSQueueGridView.DataSource = controller.GetFileSystemQueueItems(Study);
            }

            base.DataBind();
        }
Exemplo n.º 13
0
        public void Update_model_error_returns_bad_request()
        {
            _studyLogicMock.Setup(m => m.Update(It.IsAny <StudyDTO>(), It.IsAny <int>())).ReturnsAsync(false);
            var controller = new StudyController(_studyLogicMock.Object);

            controller.ModelState.AddModelError("", "");
            var result = controller.UpdateStudy(_studyDTO, _studyDTO.Id).Result;

            Assert.IsType <BadRequestObjectResult>(result);
        }
Exemplo n.º 14
0
        public void Create_correct_input_returns_OK()
        {
            _studyLogicMock.Setup(m => m.Create(It.IsAny <StudyDTO>())).ReturnsAsync(_studyDTO.Id);
            var controller = new StudyController(_studyLogicMock.Object);
            var result     = controller.CreateStudy(_studyDTO).Result;

            var jsonResult = Assert.IsType <OkObjectResult>(result);
            var dtoResult  = Assert.IsType <int>(jsonResult.Value);

            Assert.Equal(_studyDTO.Id, dtoResult);
        }
Exemplo n.º 15
0
        public void GetStudyById_correct_input_returns_OK()
        {
            _studyLogicMock.Setup(m => m.GetById(It.IsAny <int>())).ReturnsAsync(_studyDTO);
            var controller = new StudyController(_studyLogicMock.Object);
            var result     = controller.GetStudyById(1).Result;

            var jsonResult = Assert.IsType <OkObjectResult>(result);
            var dtoResult  = Assert.IsType <StudyDTO>(jsonResult.Value);

            Assert.Equal(_studyDTO, dtoResult);
        }
        public async Task Delete_given_id_calls_DeleteAsync()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();
            var controller = new StudyController(repository.Object, log.Object);

            // Act
            await controller.Delete(11);

            // Assert
            repository.Verify(r => r.DeleteAsync(11));
        }
        protected void DeleteButton_Clicked(object sender, ImageClickEventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    string reason = ReasonListBox.SelectedItem.Text;
                    if (!String.IsNullOrEmpty(SaveReasonAsName.Text))
                    {
                        SaveCustomReason();
                        reason = SaveReasonAsName.Text;
                    }

                    OnDeletingStudies();
                    StudyController controller = new StudyController();
                    foreach (DeleteStudyInfo study in DeletingStudies)
                    {
                        try
                        {
                            controller.DeleteStudy(study.StudyKey, reason + "::" + Comment.Text);

                            // Audit log
                            DicomStudyDeletedAuditHelper helper = new DicomStudyDeletedAuditHelper(
                                ServerPlatform.AuditSource,
                                EventIdentificationContentsEventOutcomeIndicator.Success);
                            helper.AddUserParticipant(new AuditPersonActiveParticipant(
                                                          SessionManager.Current.Credentials.UserName,
                                                          null,
                                                          SessionManager.Current.Credentials.DisplayName));
                            helper.AddStudyParticipantObject(new AuditStudyParticipantObject(
                                                                 study.StudyInstanceUid,
                                                                 study.AccessionNumber ?? string.Empty));
                            ServerAuditHelper.LogAuditMessage(helper);
                        }
                        catch (Exception ex)
                        {
                            Platform.Log(LogLevel.Error, ex, "DeleteClicked failed: Unable to delete studies");
                            throw;
                        }
                    }

                    OnStudiesDeleted();
                }
                finally
                {
                    Close();
                }
            }
            else
            {
                EnsureDialogVisible();
            }
        }
Exemplo n.º 18
0
        public void GetAllStudies_with_result_returns_OK()
        {
            var list = new List <StudyDTO>()
            {
                _studyDTO
            };

            _studyLogicMock.Setup(m => m.GetAll()).ReturnsAsync(list);
            var controller = new StudyController(_studyLogicMock.Object);
            var result     = controller.GetAllStudies().Result;

            Assert.IsType <OkObjectResult>(result);
        }
Exemplo n.º 19
0
 public bool Prepare()
 {
     if (bIsRecord)
     {
         m_StudyController = new StudyControllerFileRecord(m_HumenModelRef, m_HumenModel, m_strRefFileName);
         m_HumenModel.GetComponent <KinectManager>().enabled = true;
     }
     else
     {
         m_StudyController = new StudyControllerFileFile(m_HumenModelRef, m_HumenModel, m_strRefFileName, m_strFileName);
     }
     return(m_StudyController.Ready());
 }
        public async Task Post_given_valid_study_calls_CreateAsync()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();
            var controller = new StudyController(repository.Object, log.Object);

            var study = new StudyNoIdDTO();

            // Act
            await controller.Post(study);

            // Assert
            repository.Verify(r => r.CreateAsync(study));
        }
Exemplo n.º 21
0
        public void Get_ReturnsAllStudies()
        {
            // Arrange
            var mock = new Mock <IStudyManager>();

            mock.Setup(p => p.GetAll()).Returns(studiesTest);
            StudyController studyController = new StudyController(mock.Object);

            // Act
            var result = studyController.Get();

            // Assert
            Assert.AreEqual(2, result.Value.Count());
        }
Exemplo n.º 22
0
        public void Get_ReturnsStudyByID()
        {
            // Arrange
            var mock = new Mock <IStudyManager>();

            mock.Setup(p => p.GetStudyByGUID("abc")).Returns(study1);
            StudyController studyController = new StudyController(mock.Object);

            // Act
            var result = studyController.Get("abc");

            // Assert
            Assert.AreEqual("study1", result.Value.StudyId);
        }
        public async Task Delete_given_nonexisting_study_returns_NotFound()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();

            repository.Setup(r => r.DeleteAsync(11)).ReturnsAsync(false);

            var controller = new StudyController(repository.Object, log.Object);

            // Act
            var result = await controller.Delete(11);

            // Assert
            Assert.IsType <NotFoundResult>(result);
        }
        public async Task Get_given_nonexisting_id_returns_NotFound()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();

            repository.Setup(r => r.FindAsync(11)).ReturnsAsync(default(StudyDTO));

            var controller = new StudyController(repository.Object, log.Object);

            // Act
            var result = await controller.Get(11);

            // Assert
            Assert.IsType <NotFoundResult>(result);
        }
        public async Task Delete_given_valid_study_returns_NoContent()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();

            repository.Setup(r => r.DeleteAsync(11)).ReturnsAsync(true);

            var controller = new StudyController(repository.Object, log.Object);

            // Act
            var result = await controller.Delete(11);

            // Assert
            Assert.IsType <NoContentResult>(result);
        }
Exemplo n.º 26
0
 private void ReprocessStudy()
 {
     try
     {
         StudyController controller = new StudyController();
         controller.ReprocessStudy(SR.ReprocessStudyViaGUI, _study.TheStudyStorage.GetKey());
     }
     catch (InvalidStudyStateOperationException ex)
     {
         ShowErrorMessage(ex.Message);
     }
     finally
     {
         Refresh();
     }
 }
        public async Task Put_given_id_not_eq_to_studyId_returns_BadRequest()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();
            var controller = new StudyController(repository.Object, log.Object);

            var customer = new StudyDTO {
                Id = 11
            };

            // Act
            var result = await controller.Put(0, customer);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
        public async Task Put_given_valid_study_calls_UpdateAsync()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();
            var controller = new StudyController(repository.Object, log.Object);

            var study = new StudyDTO {
                Id = 11
            };

            // Act
            await controller.Put(11, study);

            // Arrange
            repository.Verify(r => r.UpdateAsync(study));
        }
        public async Task Post_given_invalid_study_doesnot_call_CreateAsync()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();

            var controller = new StudyController(repository.Object, log.Object);

            controller.ModelState.AddModelError(string.Empty, "Error");

            var study = new StudyNoIdDTO();

            // Act
            await controller.Post(study);

            // Assert
            repository.Verify(r => r.CreateAsync(It.IsAny <StudyNoIdDTO>()), Times.Never);
        }
        public async Task Post_given_invalid_study_returns_BadRequest()
        {
            // Arrange
            var repository = new Mock <IStudyRepository>();

            var controller = new StudyController(repository.Object, log.Object);

            controller.ModelState.AddModelError(string.Empty, "Error");

            var study = new StudyNoIdDTO();

            // Act
            var result = await controller.Post(study);

            // Assert
            Assert.IsType <BadRequestObjectResult>(result);
        }
Exemplo n.º 31
0
		/// <summary>
		/// Returns an instance of <see cref="StudySummary"/> based on a <see cref="Study"/> object.
		/// </summary>
		/// <param name="study"></param>
		/// <param name="read"></param>
		/// <returns></returns>
		/// <remark>
		/// 
		/// </remark>
		static public StudySummary CreateStudySummary(IPersistenceContext read, Study study)
		{
            if (study==null)
			{
			    return null;
			}

			var studySummary = new StudySummary();
			var controller = new StudyController();

			studySummary.Key = study.GetKey();
			studySummary.AccessionNumber = study.AccessionNumber;
			studySummary.NumberOfStudyRelatedInstances = study.NumberOfStudyRelatedInstances;
			studySummary.NumberOfStudyRelatedSeries = study.NumberOfStudyRelatedSeries;
			studySummary.PatientId = study.PatientId;
			studySummary.PatientsName = study.PatientsName;
			studySummary.StudyDate = study.StudyDate;
			studySummary.StudyInstanceUid = study.StudyInstanceUid;
			studySummary.StudyDescription = study.StudyDescription;
			studySummary.ModalitiesInStudy = controller.GetModalitiesInStudy(read, study);
		    studySummary.ReferringPhysiciansName = study.ReferringPhysiciansName;
		    studySummary.ResponsibleOrganization = study.ResponsibleOrganization;
		    studySummary.ResponsiblePerson = study.ResponsiblePerson;
			studySummary.StudyTime = study.StudyTime;
			studySummary.StudyId = study.StudyId;
			studySummary.TheStudy = study;

			studySummary.ThePartition = ServerPartitionMonitor.Instance.FindPartition(study.ServerPartitionKey) ??
			                            ServerPartition.Load(read, study.ServerPartitionKey);

		    studySummary.ReferringPhysiciansName = study.ReferringPhysiciansName;
			studySummary.TheStudyStorage = StudyStorage.Load(read, study.StudyStorageKey);
			studySummary.StudyStatusEnum = studySummary.TheStudyStorage.StudyStatusEnum;
			studySummary.QueueStudyStateEnum = studySummary.TheStudyStorage.QueueStudyStateEnum;

			studySummary.TheArchiveLocation = controller.GetFirstArchiveStudyStorage(read, studySummary.TheStudyStorage.Key);

			studySummary.IsArchiving = controller.GetArchiveQueueCount(study) > 0;

			studySummary.IsProcessing = studySummary.TheStudyStorage.WriteLock;

			// the study is considered "locked" if it's being processed or some action which requires the lock has been scheduled
			// No additional action should be allowed on the study until everything is completed.
			studySummary.IsLocked = studySummary.IsProcessing ||
			                        (studySummary.TheStudyStorage.QueueStudyStateEnum != QueueStudyStateEnum.Idle);
           
    		if (controller.GetStudyIntegrityQueueCount(studySummary.TheStudyStorage.Key) > 0)
			{
				studySummary.IsReconcileRequired = true;
			}

		    studySummary.HasPendingExternalEdit = controller.GetCountPendingExternalEditWorkQueueItems(study) > 0;
            if (studySummary.HasPendingExternalEdit)            
                studySummary.HasPendingWorkQueueItems = true;            
            else
		        studySummary.HasPendingWorkQueueItems = controller.GetCountPendingWorkQueueItems(study) > 0;
            
            var ep = new StudySummaryAssemblerExtensionPoint();
            foreach (IStudySummaryAssembler assemblerPlugin in ep.CreateExtensions())
            {
                assemblerPlugin.PopulateStudy(studySummary, study);
            }

			return studySummary;
		}