Example #1
0
        private void radioButtonRGB_CheckedChanged(object sender, System.EventArgs e)
        {
            radioButton24.Enabled = radioButtonRGB.Checked;
            radioButton24.Checked = true;

            if (radioButtonRGB.Checked)
            {
                _PhotoMetric = DicomImagePhotometricInterpretationType.Rgb;
            }
        }
Example #2
0
        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;
            }
        }
Example #3
0
        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;
            }
        }
Example #4
0
        /*
         * 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);
        }