private void RetrievingFilesFromDirectory() { try { String indexFileName = initialDirectory + @"/index1.htm"; StringBuilder indexContent = new StringBuilder(); indexContent.Append("<center><font size='5' color='#0000ff'>"); if (utility.AnonymizationType) { indexContent.Append("Anonymized DCM files (Basic)</font></center>"); } else { indexContent.Append("Anonymized DCM files (Complete)</font></center>"); } indexContent.Append("<left><font color='black' size = '4'><br></br> Input Directory: " + inputDirectory); indexContent.Append("</font>"); indexContent.Append("</left>"); indexContent.Append("<br></br>"); indexContent.Append("<font size='3'>"); HLI.DataSet srcDataset = null; DicomFile dcmFile = null; allDCMFilesTemp = new ArrayList(); FileInfo mediaInputFileInfo = null; string mediaFileDir = inputDirectory; DirectoryInfo theDirectoryInfo = new DirectoryInfo(mediaFileDir); allDCMFilesTemp = utility.GetFilesRecursively(theDirectoryInfo); foreach (string fileName in allDCMFilesTemp) { mediaInputFileInfo = new FileInfo(fileName); counter++; dcmFile = new DicomFile(); dcmFile.Read(fileName, mainThread); // Get the Data set from the selected DCM file srcDataset = dcmFile.DataSet; indexContent.Append("<li><a href='" + mediaInputFileInfo.Name + "_" + counter.ToString() + ".html'>" + fileName.Substring(inputDirectory.Length) + "</a></li>"); HLI.DataSet annonymizedDataset = srcDataset.Clone(); utility.PatientAttributes(annonymizedDataset); for (int number = 0; number < annonymizedDataset.Count; number++) { HLI.Attribute attribute = annonymizedDataset[number]; if (attribute.VR == VR.SQ) { utility.SequenceAttribute_recursive(attribute); } else { utility.CacheAndRepairIdentifyingAttribute(attribute); utility.UpdateAnonymizedAttributes(attribute); } } //Save annonymized data to selected directory string savedFileName = ""; if (mediaInputFileInfo.Extension != "") { string srcFileNameWithoutExtn = mediaInputFileInfo.Name.Substring(0, (mediaInputFileInfo.Name.Length - 4)); savedFileName = outputDirectory + "\\" + srcFileNameWithoutExtn + "_an"; } else { savedFileName = outputDirectory + "\\" + mediaInputFileInfo.Name + "_an"; } dcmFile.DataSet = annonymizedDataset; dcmFile.Write(savedFileName); datasets = new AttributeCollections(); datasets.Add(srcDataset); datasets.Add(annonymizedDataset); //Cleanup temp file utility.cleanup(); resultFileName = mediaInputFileInfo.Name; CreateTableWithoutNav(); } StreamWriter writer = new StreamWriter(indexFileName); indexContent.Append("</font>"); indexContent.Append("<left><font color='black' size = '4'><br></br> Output Directory: " + outputDirectory); indexContent.Append("</font>"); indexContent.Append("</left>"); writer.Write(indexContent.ToString()); writer.Close(); dvtkWebBrowser.Navigate(indexFileName); } catch (Exception e) { MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void AnonymizeDCMFile() { try { utility.AnonymizationType = anonymizationMode; CreateDICOMDIR.Enabled = true; OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Multiselect = false; fileDialog.ReadOnlyChecked = true; fileDialog.Title = "Select DCM File"; fileDialog.Filter = "DCM files (*.dcm) |*.dcm|All files (*.*)|*.*"; // Show the file dialog. // If the user pressed the OK button... if (fileDialog.ShowDialog() == DialogResult.OK) { DicomFile dcmFile = new DicomFile(); dcmFile.Read(fileDialog.FileName, mainThread); // Get the Data set from the selected DCM file HLI.DataSet srcDataset = dcmFile.DataSet; SaveFileDialog saveDialog = new SaveFileDialog(); FileInfo saveFileInfo = null; saveDialog.Filter = "DCM files (*.dcm) |*.dcm|All files (*.*)|*.*"; if (saveDialog.ShowDialog() == DialogResult.OK) { HLI.DataSet annonymizedDataset = srcDataset.Clone(); utility.PatientAttributes(annonymizedDataset); for (int number = 0; number < annonymizedDataset.Count; number++) { HLI.Attribute attribute = annonymizedDataset[number]; if (attribute.VR == VR.SQ) { utility.SequenceAttribute_recursive(attribute); } else { utility.CacheAndRepairIdentifyingAttribute(attribute); utility.UpdateAnonymizedAttributes(attribute); } } datasets = new AttributeCollections(); datasets.Add(srcDataset); datasets.Add(annonymizedDataset); //Save annonymized data to selected file saveFileInfo = new FileInfo(saveDialog.FileName); dcmFile.DataSet = annonymizedDataset; dcmFile.Write(saveFileInfo.FullName); //Cleanup temp file utility.cleanup(); } else { return; } string htmlFileName = initialDirectory + "\\" + saveFileInfo.Name + ".html"; XmlTextWriter writer = new XmlTextWriter(htmlFileName, System.Text.Encoding.UTF8); writer.WriteStartElement("b"); writer.WriteRaw(@"<b><font size='3' color='#ff0000'>DCM File Anonymization Started...</font></b>"); writer.WriteEndElement(); writer.Close(); resultFileName = htmlFileName; System.Threading.Thread t = new System.Threading.Thread(new ThreadStart(CreateTable)); dvtkWebBrowser.Navigate(htmlFileName); t.Start(); } } catch (Exception ex) { MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }