Ejemplo n.º 1
0
        protected override void OnStart(StartApplicationRequest request)
        {
            lock (_syncLock)
            {
                Platform.Log(LogLevel.Info, "Viewer Application is starting...");
                if (Application.Instance == null)
                {
                    Platform.StartApp("ClearCanvas.Desktop.Application", new string[] { "-r" });
                }
            }



            if (Platform.IsLogLevelEnabled(LogLevel.Debug))
            {
                Platform.Log(LogLevel.Debug, "Finding studies...");
            }
            var startRequest = (StartViewerApplicationRequest)request;
            IList <StudyRootStudyIdentifier> studies = FindStudies(startRequest);

            List <LoadStudyArgs> loadArgs = CollectionUtils.Map(studies, (StudyRootStudyIdentifier identifier) => CreateLoadStudyArgs(identifier));

            DesktopWindowCreationArgs args   = new DesktopWindowCreationArgs("", Identifier.ToString());
            WebDesktopWindow          window = new WebDesktopWindow(args, Application.Instance);

            window.Open();

            _viewer = CreateViewerComponent(startRequest);

            try
            {
                if (Platform.IsLogLevelEnabled(LogLevel.Debug))
                {
                    Platform.Log(LogLevel.Debug, "Loading study...");
                }
                _viewer.LoadStudies(loadArgs);
            }
            catch (Exception e)
            {
                if (!AnySopsLoaded(_viewer))                 //end the app.
                {
                    throw;
                }

                //Show an error and continue.
                ExceptionHandler.Report(e, window);
            }

            if (Platform.IsLogLevelEnabled(LogLevel.Debug))
            {
                Platform.Log(LogLevel.Info, "Launching viewer...");
            }

            ImageViewerComponent.Launch(_viewer, window, "");

            _viewerHandler = EntityHandler.Create <ViewerEntityHandler>();
            _viewerHandler.SetModelObject(_viewer);
            _app = new Common.ViewerApplication
            {
                Identifier = Identifier,
                Viewer     = (Viewer)_viewerHandler.GetEntity(),

                VersionString = GetProductVersionString()
            };


            // Push the ViewerApplication object to the client
            Event @event = new PropertyChangedEvent
            {
                PropertyName = "Application",
                Value        = _app,
                Identifier   = Guid.NewGuid(),
                SenderId     = request.Identifier
            };

            ApplicationContext.Current.FireEvent(@event);
        }
Ejemplo n.º 2
0
	    protected override void OnStart(StartApplicationRequest request)
		{
			lock (_syncLock)
			{
                Platform.Log(LogLevel.Info, "Viewer Application is starting...");
                if (Application.Instance == null)
					Platform.StartApp("ClearCanvas.Desktop.Application",new string[] {"-r"});
			}

            


            if (Platform.IsLogLevelEnabled(LogLevel.Debug))
                Platform.Log(LogLevel.Debug, "Finding studies...");
			var startRequest = (StartViewerApplicationRequest)request;
			IList<StudyRootStudyIdentifier> studies = FindStudies(startRequest);

			List<LoadStudyArgs> loadArgs = CollectionUtils.Map(studies, (StudyRootStudyIdentifier identifier) => CreateLoadStudyArgs(identifier));

		    DesktopWindowCreationArgs args = new DesktopWindowCreationArgs("", Identifier.ToString());
            WebDesktopWindow window = new WebDesktopWindow(args, Application.Instance);
            window.Open();

            _viewer = CreateViewerComponent(startRequest);

			try
			{
                if (Platform.IsLogLevelEnabled(LogLevel.Debug))
                    Platform.Log(LogLevel.Debug, "Loading study...");
                _viewer.LoadStudies(loadArgs);
			}
			catch (Exception e)
			{
				if (!AnySopsLoaded(_viewer)) //end the app.
                    throw;

				//Show an error and continue.
				ExceptionHandler.Report(e, window);
			}

            if (Platform.IsLogLevelEnabled(LogLevel.Debug))
                Platform.Log(LogLevel.Info, "Launching viewer...");
			
			ImageViewerComponent.Launch(_viewer, window, "");

			_viewerHandler = EntityHandler.Create<ViewerEntityHandler>();
			_viewerHandler.SetModelObject(_viewer);
		    _app = new Common.ViewerApplication
		               {
		                   Identifier = Identifier,
		                   Viewer = (Viewer) _viewerHandler.GetEntity(),

                           VersionString = GetProductVersionString()
                                
			           };
            

            // Push the ViewerApplication object to the client
            Event @event = new PropertyChangedEvent
            {
                PropertyName = "Application",
                Value = _app,
                Identifier = Guid.NewGuid(),
                SenderId = request.Identifier
            };

            ApplicationContext.Current.FireEvent(@event);
		}