Пример #1
0
        public OpenStudiesResult OpenStudies(OpenStudiesRequest request)
        {
            if (request == null)
            {
                string message = "The open studies request cannot be null.";
                Platform.Log(LogLevel.Debug, message);
                throw new FaultException(message);
            }

            if (request.StudiesToOpen == null || request.StudiesToOpen.Count == 0)
            {
                string message = "At least one study must be specified.";
                Platform.Log(LogLevel.Debug, message);
                throw new FaultException(message);
            }

            OpenStudiesResult result = new OpenStudiesResult();
            bool activateIfOpen      = request.ActivateIfAlreadyOpen ?? true;

            try
            {
                string       primaryStudyInstanceUid = request.StudiesToOpen[0].StudyInstanceUid;
                IImageViewer viewer = null;
                if (activateIfOpen)
                {
                    Workspace workspace = GetViewerWorkspace(primaryStudyInstanceUid);
                    if (workspace != null)
                    {
                        viewer = ImageViewerComponent.GetAsImageViewer(workspace);
                        workspace.Activate();
                    }
                }

                if (viewer == null)
                {
                    viewer = LaunchViewer(request, primaryStudyInstanceUid);
                }

                Guid?viewerId = ViewerAutomationTool.GetViewerId(viewer);
                if (viewerId == null)
                {
                    throw new FaultException("Failed to retrieve the id of the specified viewer.");
                }

                result.Viewer = new Viewer(viewerId.Value, GetPrimaryStudyIdentifier(viewer));
                return(result);
            }
            catch (FaultException)
            {
                throw;
            }
            catch (Exception e)
            {
                string message = "An unexpected error has occurred while attempting to open the study(s).";
                Platform.Log(LogLevel.Error, e, message);
                throw new FaultException(message);
            }
        }
Пример #2
0
        public void TestOpenStudiesResult()
        {
            var referenceObject = new OpenStudiesResult
            {
                Viewer = new Viewer(new Guid("{72D6F6AB-A7B8-4A52-85BB-537F7FC7BAE5}"))
            };

            var currentObject = TestResponseContractCompatibility <BaselineDataContracts.OpenStudiesResult>(referenceObject);

            Assert.AreEqual(referenceObject.Viewer.Identifier, currentObject.Viewer.Identifier);
        }
Пример #3
0
        private void OnOpenStudy(object sender, EventArgs e)
        {
            StudyItem study = GetSelectedStudy();

            if (study == null)
            {
                return;
            }

            using (AutomationClient client = new AutomationClient())
            {
                try
                {
                    OpenStudiesRequest   request       = new OpenStudiesRequest();
                    List <OpenStudyInfo> studiesToOpen = new List <OpenStudyInfo>();
                    foreach (StudyItem s in GetSelectedStudies())
                    {
                        OpenStudyInfo info = new OpenStudyInfo();
                        info.StudyInstanceUid = s.StudyInstanceUid;
                        info.SourceAETitle    = s.RetrieveAETitle;
                        studiesToOpen.Add(info);
                    }

                    request.StudiesToOpen         = GetStudiesToOpen(studiesToOpen);
                    request.ActivateIfAlreadyOpen = _activateIfOpen.Checked;

                    OpenStudiesResult result = client.OpenStudies(request);
                    if (result.Viewer != null)
                    {
                        bool shouldExist = study.HasViewers && _activateIfOpen.Checked;
                        bool exists      = study.HasViewer(result.Viewer.Identifier);
                        if (shouldExist && !exists)
                        {
                            study.ClearViewers();
                        }

                        if (!exists)
                        {
                            study.AddViewer(result.Viewer.Identifier);
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
		public void TestOpenStudiesResult()
		{
			var referenceObject = new OpenStudiesResult
			                      	{
			                      		Viewer = new Viewer(new Guid("{72D6F6AB-A7B8-4A52-85BB-537F7FC7BAE5}"))
			                      	};

			var currentObject = TestResponseContractCompatibility<BaselineDataContracts.OpenStudiesResult>(referenceObject);
			Assert.AreEqual(referenceObject.Viewer.Identifier, currentObject.Viewer.Identifier);
		}