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