コード例 #1
0
        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
            });
        }
コード例 #2
0
ファイル: ImageViewerService.cs プロジェクト: nhannd/Xian
		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};
		}