Ejemplo n.º 1
0
        private void SaveFile(DicomFile file)
        {
            String seriesInstanceUid = file.DataSet[DicomTags.SeriesInstanceUid].GetString(0, String.Empty);
            String sopInstanceUid    = file.DataSet[DicomTags.SopInstanceUid].GetString(0, String.Empty);

            String destPath = _oldStudyLocation.FilesystemPath;

            using (var filesystemUpdateProcessor = new ServerCommandProcessor("Update Study"))
            {
                filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

                destPath = Path.Combine(destPath, _partition.PartitionFolder);
                filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

                destPath = Path.Combine(destPath, _oldStudyFolder);
                filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

                destPath = Path.Combine(destPath, _newStudyInstanceUid);
                filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

                destPath = Path.Combine(destPath, seriesInstanceUid);
                filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

                destPath  = Path.Combine(destPath, sopInstanceUid);
                destPath += ServerPlatform.DicomFileExtension;

                // Overwrite the prior file
                var saveCommand = new SaveDicomFileCommand(destPath, file, false);
                filesystemUpdateProcessor.AddCommand(saveCommand);

                if (_rulesEngine != null)
                {
                    var context = new ServerActionContext(file, _oldStudyLocation.FilesystemKey, _partition, _oldStudyLocation.Key,
                                                          filesystemUpdateProcessor);
                    _rulesEngine.Execute(context);
                }

                if (!filesystemUpdateProcessor.Execute())
                {
                    throw new ApplicationException(String.Format("Unable to update image {0} : {1}", file.Filename,
                                                                 filesystemUpdateProcessor.FailureReason));
                }
            }
        }
Ejemplo n.º 2
0
		private void SaveFile(DicomFile file)
		{
			String seriesInstanceUid = file.DataSet[DicomTags.SeriesInstanceUid].GetString(0, String.Empty);
			String sopInstanceUid = file.DataSet[DicomTags.SopInstanceUid].GetString(0, String.Empty);

			String destPath = _oldStudyLocation.FilesystemPath;

			using (var filesystemUpdateProcessor = new ServerCommandProcessor("Update Study"))
			{
				filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

				destPath = Path.Combine(destPath, _partition.PartitionFolder);
				filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

				destPath = Path.Combine(destPath, _oldStudyFolder);
				filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

				destPath = Path.Combine(destPath, _newStudyInstanceUid);
				filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

				destPath = Path.Combine(destPath, seriesInstanceUid);
				filesystemUpdateProcessor.AddCommand(new CreateDirectoryCommand(destPath));

				destPath = Path.Combine(destPath, sopInstanceUid);
				destPath += ServerPlatform.DicomFileExtension;

				// Overwrite the prior file
				var saveCommand = new SaveDicomFileCommand(destPath, file, false);
				filesystemUpdateProcessor.AddCommand(saveCommand);

				if (_rulesEngine != null)
				{
					var context = new ServerActionContext(file, _oldStudyLocation.FilesystemKey, _partition, _oldStudyLocation.Key,
					                                      filesystemUpdateProcessor);
					_rulesEngine.Execute(context);
				}

				if (!filesystemUpdateProcessor.Execute())
				{
					throw new ApplicationException(String.Format("Unable to update image {0} : {1}", file.Filename,
					                                             filesystemUpdateProcessor.FailureReason));
				}
			}
		}