Esempio n. 1
0
        private static void WriteMedia(string path)
        {
            var dirInfo  = new DirectoryInfo(path);
            var dicomDir = new DicomDirectory(false);

            foreach (var file in dirInfo.GetFiles("*.*", SearchOption.AllDirectories))
            {
                if (!file.FullName.StartsWith(dirInfo.FullName))
                {
                    throw new ArgumentException("file");
                }
                if (file.Name == "DICOMDIR")
                {
                    continue;
                }
                try
                {
                    dicomDir.AddFile(DicomFile.Open(file.FullName), file.FullName.Substring(dirInfo.FullName.Length).TrimStart(Path.DirectorySeparatorChar));
                }
                catch
                {
                }
            }
            if (dicomDir.RootDirectoryRecord != null)
            {
                dicomDir.Save(Path.Combine(path, "DICOMDIR"));
            }
        }
Esempio n. 2
0
		private static void WriteMedia(string path) {
			var dicomDirPath = Path.Combine(path, "DICOMDIR");

			var dirInfo = new DirectoryInfo(path);

			var dicomDir = new DicomDirectory();
			foreach (var file in dirInfo.GetFiles("*.*", SearchOption.AllDirectories)) {
				var dicomFile = Dicom.DicomFile.Open(file.FullName);

				dicomDir.AddFile(dicomFile, String.Format(@"000001\{0}", file.Name));
			}

			dicomDir.Save(dicomDirPath);
		}
Esempio n. 3
0
        private static void WriteMedia(string path)
        {
            var dicomDirPath = Path.Combine(path, "DICOMDIR");

            var dirInfo = new DirectoryInfo(path);

            var dicomDir = new DicomDirectory();

            foreach (var file in dirInfo.GetFiles("*.*", SearchOption.AllDirectories))
            {
                var dicomFile = Dicom.DicomFile.Open(file.FullName);

                dicomDir.AddFile(dicomFile, String.Format(@"000001\{0}", file.Name));
            }

            dicomDir.Save(dicomDirPath);
        }
Esempio n. 4
0
        private static void WriteMedia(string path)
        {
            var dirInfo = new DirectoryInfo(path);
            var dicomDir = new DicomDirectory(false);
            foreach (var file in dirInfo.GetFiles("*.*", SearchOption.AllDirectories))
            {
                if (!file.FullName.StartsWith(dirInfo.FullName))
                    throw new ArgumentException("file");
                if (file.Name == "DICOMDIR")
                    continue;
                try
                {
                    dicomDir.AddFile(DicomFile.Open(file.FullName), file.FullName.Substring(dirInfo.FullName.Length).TrimStart(Path.DirectorySeparatorChar));
                }
                catch
                {

                }
            }
            if (dicomDir.RootDirectoryRecord != null)
                dicomDir.Save(Path.Combine(path, "DICOMDIR"));
        }
Esempio n. 5
0
        public string DownloadDicomFile(int[] frameIdArray, string guid)
        {
            int count = (from dfr in ObjectContext.DicomFrame where frameIdArray.Contains(dfr.FrameId) select dfr.FileId).Distinct().Count();

            if (count == 1) // DICOM File
            {
                CreateDicomFile(frameIdArray, guid, guid);

                return guid + ".dcm";
            }
            else // DICOMDIR File
            {
                int[] fileIdArray = (from dfr in ObjectContext.DicomFrame where frameIdArray.Contains(dfr.FrameId) select dfr.FileId).Distinct().ToArray();

                foreach (var fileId in fileIdArray)
                {
                    int[] frameIdForFileArray = (from dfr in ObjectContext.DicomFrame where dfr.FileId == fileId && frameIdArray.Contains(dfr.FrameId) select dfr.FrameId).ToArray();
                    string fileName = (from df in ObjectContext.DicomFile where df.FileId == fileId select df.FileId).First().ToString(CultureInfo.InvariantCulture);
                    CreateDicomFile(frameIdForFileArray, guid, fileName);
                }

                string dirPath = HttpRuntime.AppDomainAppPath + @"\temp\" + guid;

                string dicomDirPath = Path.Combine(dirPath, "DICOMDIR");
                var dirInfo = new DirectoryInfo(dirPath);
                var dicomDir = new DicomDirectory();
                foreach (var file in dirInfo.GetFiles("*.dcm"))
                {
                    var dicomFile = Dicom.DicomFile.Open(file.FullName);
                    dicomDir.AddFile(dicomFile, String.Format(@".\{0}", file.Name));
                }
                dicomDir.Save(dicomDirPath);

                var files = dirInfo.GetFiles();
                var binaryFormatter = new BinaryFormatter();
                var fileStream = new FileStream(dirPath + @"\" + guid + ".dcmdir", FileMode.Create, FileAccess.Write, FileShare.None);
                foreach (var file in files)
                {
                    var dicomSerializableFile = new DicomSerializableFile(file.Name, File.ReadAllBytes(file.FullName));
                    binaryFormatter.Serialize(fileStream, dicomSerializableFile);
                }
                fileStream.Close();

                return guid + ".dcmdir";
            }
        }