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