private void radioButtonRGB_CheckedChanged(object sender, System.EventArgs e) { radioButton24.Enabled = radioButtonRGB.Checked; radioButton24.Checked = true; if (radioButtonRGB.Checked) { _PhotoMetric = DicomImagePhotometricInterpretationType.Rgb; } }
private void radioButtonPalette_CheckedChanged(object sender, System.EventArgs e) { radioButton8.Enabled = radioButtonPalette.Checked; radioButton8.Checked = true; //radioButton12.Enabled = radioButtonPalette.Checked; if (radioButtonPalette.Checked) { _PhotoMetric = DicomImagePhotometricInterpretationType.PaletteColor; } }
private void radioButtonMonochrome_CheckedChanged(object sender, System.EventArgs e) { radioButton8.Enabled = radioButtonMonochrome.Checked; radioButton12.Enabled = radioButtonMonochrome.Checked; radioButton16.Enabled = radioButtonMonochrome.Checked; if (radioButtonMonochrome.Checked) { if (radioButton24.Checked) { radioButton16.Checked = true; } _PhotoMetric = DicomImagePhotometricInterpretationType.Monochrome2; } }
/* * Creates a new dataset based off of the MWL dataset */ public CreateDatasetReturn CreateDataset() { CreateDatasetReturn nRet = CreateDatasetReturn.GeneralError; try { // Check for a selected node if (_globals.m_TreeResult.SelectedNode == null) { return(CreateDatasetReturn.NoItemSelected); } // Make sure that the modality is supported nRet = CreateDatasetReturn.ModalityNotFound; string strModality = Utils.GetStringValue(((MyTreeNode)_globals.m_TreeResult.SelectedNode).m_DS, DemoDicomTags.Modality, false); DicomClassType nClass = DicomClassType.SCImageStorage; // use SCImageStorage if we cannot find the modality for (int i = 0; i < _globals.m_ModalityTable.Length; i++) { if (strModality == _globals.m_ModalityTable[i].m_strValue) { // Modality was found, change return type to Success nClass = _globals.m_ModalityTable[i].m_DicomClassType; nRet = CreateDatasetReturn.Success; break; } } // Initialize dataset MyDicomDataSet ds = new MyDicomDataSet(); ds.Initialize(nClass, DicomDataSetInitializeFlags.ImplicitVR | DicomDataSetInitializeFlags.LittleEndian | DicomDataSetInitializeFlags.AddMandatoryElementsOnly | DicomDataSetInitializeFlags.AddMandatoryModulesOnly); ds.MapMWLtoDS(((MyTreeNode)_globals.m_TreeResult.SelectedNode).m_DS); ds.SetTagSpecificCharacterSet(); ds.SetTagInstanceNumber(1); // Set Pixel Data DicomElement PixelDataElement = ds.FindFirstElement(null, DemoDicomTags.PixelData, true); if (PixelDataElement != null) { ds.DeleteElement(PixelDataElement); PixelDataElement = ds.InsertElement(null, false, DemoDicomTags.PixelData, DicomVRType.OB, false, 0); } // use RGB as default Photometric Interpretation DicomImagePhotometricInterpretationType nPhotometric = DicomImagePhotometricInterpretationType.Rgb; if (rasterImageViewer.Image != null) { if (rasterImageViewer.Image.Order == Leadtools.RasterByteOrder.Gray) { nPhotometric = DicomImagePhotometricInterpretationType.Monochrome2; } else if (Convert.ToInt32(rasterImageViewer.Image.Order) <= 8) { nPhotometric = DicomImagePhotometricInterpretationType.PaletteColor; } else { nPhotometric = DicomImagePhotometricInterpretationType.Rgb; } ds.InsertImage(PixelDataElement, rasterImageViewer.Image, 0, DicomImageCompressionType.None, nPhotometric, 0, 0, DicomSetImageFlags.AutoSetVoiLut); } ds.DeleteEmptyElementsType3(nClass); ds.DeleteEmptyModulesOptional(nClass); if (nPhotometric != DicomImagePhotometricInterpretationType.PaletteColor) { if (ds.IsEmptyModule(DicomModuleType.PaletteColorLookupTable)) { ds.DeleteModule(DicomModuleType.PaletteColorLookupTable); } } // Generate new series instance UID and SOP Instance UID ds.InsertUID(DemoDicomTags.SeriesInstanceUID); ds.InsertUID(DemoDicomTags.SOPInstanceUID); // If the MWL already had a study instance UID, we use that // If not, generate a new UID ds.GenerateStudyInstanceUID(); _globals.m_nClass = nClass; _globals.m_DS = ds; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } return(nRet); }