public OpenViewerOutput OpenViewer(OpenViewerInput input) { Platform.CheckForNullReference(input, "input"); Platform.CheckMemberIsSet(input.StudyInstanceUids, "StudyInstanceUids"); if (input.StudyInstanceUids.Length == 0) { return(new OpenViewerOutput()); } var helper = new OpenStudyHelper(); foreach (var studyInstanceUid in input.StudyInstanceUids) { helper.AddStudy(studyInstanceUid, null, "DICOM_LOCAL"); } var id = Interlocked.Increment(ref _viewerId); helper.Title = "imageviewer " + id; var viewer = helper.OpenStudies(); var workspace = Application.ActiveDesktopWindow.Workspaces .First(w => ImageViewerComponent.GetAsImageViewer(w) == viewer); lock (_viewers) { _viewers.Add(id, viewer); } workspace.Closed += (sender, e) => { lock (_viewers) { _viewers.Remove(id); } }; return(new OpenViewerOutput { ViewerId = id }); }
public OpenViewerOutput OpenViewer(OpenViewerInput input) { Platform.CheckForNullReference(input, "input"); Platform.CheckMemberIsSet(input.StudyInstanceUids, "StudyInstanceUids"); if (input.StudyInstanceUids.Length == 0) return new OpenViewerOutput(); var helper = new OpenStudyHelper(); foreach (var studyInstanceUid in input.StudyInstanceUids) helper.AddStudy(studyInstanceUid, null, "DICOM_LOCAL"); var id = Interlocked.Increment(ref _viewerId); helper.Title = "imageviewer " + id; var viewer = helper.OpenStudies(); var workspace = Application.ActiveDesktopWindow.Workspaces .First(w => ImageViewerComponent.GetAsImageViewer(w) == viewer); lock(_viewers) { _viewers.Add(id, viewer); } workspace.Closed += (sender, e) => { lock (_viewers) { _viewers.Remove(id); } }; return new OpenViewerOutput {ViewerId = id}; }