Example #1
0
        void DicomDataSet_GetEncapsulatedDocumentExample(DicomElement element, bool child, DicomDataSet ds, string sFileDocumentOut)
        {
            try
            {
                DicomEncapsulatedDocument encapsulatedDocument    = new DicomEncapsulatedDocument();                         //New encapsulated document
                DicomCodeSequenceItem     conceptNameCodeSequence = new DicomCodeSequenceItem();                             //New code sequence item

                ds.GetEncapsulatedDocument(element, child, sFileDocumentOut, encapsulatedDocument, conceptNameCodeSequence); //Load the encapsulated document from the data set
                string sMsg;
                sMsg = string.Format("Encapsulated Document Extracted: {0}", sFileDocumentOut);
                DumpEncapsulatedDocumentTags(sMsg, encapsulatedDocument, conceptNameCodeSequence); //Print out all the attributes
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Example #2
0
        void DicomDataSet_SetEncapsulatedDocumentExample(DicomElement element, bool child, DicomDataSet ds, string sFileDocumentIn)
        {
            try
            {
                //Create a new DICOM Encapsulated Document
                DicomEncapsulatedDocument encapsulatedDocument = new DicomEncapsulatedDocument();

                //Set the attributes of the encapsulated document
                encapsulatedDocument.Type           = DicomEncapsulatedDocumentType.Pdf; //Type == Pdf
                encapsulatedDocument.InstanceNumber = 123;
                encapsulatedDocument.ContentDate    = new DicomDateValue(2015, 1, 1);

                encapsulatedDocument.ContentTime = new DicomTimeValue(12, 30, 00, 1);

                encapsulatedDocument.AcquisitionDateTime = new DicomDateTimeValue(2015, 1, 1, 12, 30, 00, 01, -3);

                encapsulatedDocument.BurnedInAnnotation    = "YES";
                encapsulatedDocument.DocumentTitle         = sFileDocumentIn;
                encapsulatedDocument.VerificationFlag      = "UNVERIFIED";
                encapsulatedDocument.HL7InstanceIdentifier = string.Empty;

                //Mime type of the document (ignored)
                encapsulatedDocument.MimeTypeOfEncapsulatedDocument = "***** This is ignored when calling SetEncapsulatedDocument *****";

                //Mime types of the document
                string[] sListOfMimeTypes = new string[] { "image/jpeg", "application/pdf" };
                encapsulatedDocument.SetListOfMimeTypes(sListOfMimeTypes);

                DicomCodeSequenceItem conceptNameCodeSequence = new DicomCodeSequenceItem();
                conceptNameCodeSequence.CodingSchemeDesignator = "LN";
                conceptNameCodeSequence.CodeValue   = "12345";
                conceptNameCodeSequence.CodeMeaning = "Sample Code Meaning";

                //Set the document into the data set
                ds.SetEncapsulatedDocument(element, child, sFileDocumentIn, encapsulatedDocument, conceptNameCodeSequence);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
Example #3
0
        /*
         * Adds a waveform group for a Wav file to a Dataset
         */
        private bool InsertWaveStream(ref DicomDataSet InDS, string strInputWaveFileName)
        {
            DicomWaveformGroup AudioWaveformGroup = new DicomWaveformGroup();
            int nNumberOfChannels = 0;

            // Load an audio file into the waveform group
            try
            {
                AudioWaveformGroup.LoadAudio(strInputWaveFileName);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Couldn't insert the wave stream into the dataset.\r\n\r\n" + ex.ToString());
                return(false);
            }

            // Verify that hte frequency is 8K
            int nSamplingFrequency = (int)AudioWaveformGroup.GetSamplingFrequency();

            if (nSamplingFrequency != 8000)
            {
                MessageBox.Show("The samples per second (sampling rate) for the wave file should be 8KHz.");
                return(false);
            }

            // Set the channel source
            nNumberOfChannels = AudioWaveformGroup.ChannelCount;
            if (nNumberOfChannels > 0)
            {
                DicomWaveformChannel  channel = null;
                DicomCodeSequenceItem DicomSourceSequenceItem = new DicomCodeSequenceItem();

                DicomSourceSequenceItem.CodeMeaning            = "Dictation";
                DicomSourceSequenceItem.CodeValue              = "110011";
                DicomSourceSequenceItem.CodingSchemeDesignator = "DCM";
                DicomSourceSequenceItem.CodingSchemeVersion    = "01";

                for (int nIndex = 0; nIndex < nNumberOfChannels; nIndex++)
                {
                    channel = AudioWaveformGroup.GetChannel(nIndex);
                    if (channel != null)
                    {
                        try
                        {
                            channel.SetChannelSource(DicomSourceSequenceItem);
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Couldn't set the channel source\r\n\r\n" + ex.ToString());
                            return(false);
                        }
                    }
                }
            }

            // Insert the waveform group into the dataset
            try
            {
                InDS.AddWaveformGroup(AudioWaveformGroup, 0);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Couldn't insert the wave stream into the dataset.\r\n\r\n" + ex.ToString());
                return(false);
            }
            return(true);
        }
Example #4
0
        void DumpEncapsulatedDocumentTags(string sMsgIn, DicomEncapsulatedDocument encapsulatedDocument, DicomCodeSequenceItem conceptNameCodeSequence)
        {
            try
            {
                //Print out all of the attributes for the encapsulated document
                string   sMimeTypes       = string.Empty;
                string[] sListOfMimeTypes = encapsulatedDocument.GetListOfMimeTypes();
                foreach (string s in sListOfMimeTypes)
                {
                    sMimeTypes = sMimeTypes + s + ",";
                }
                string sMsg1 = string.Format("{0}\n\nuType: {1}\nInstanceNumber: {2}\nContentDate: {3}\nContentTime: {4}\nAcquisitionDateTime: {5}\nBurnedInAnnotation: {6}\nDocumentTitle: {7}\nVerificationFlag: {8}\nHL7InstanceIdentifier: {9}\nMIMETypeOfEncapsulatedDocument: {10}\nListOfMIMETypes: {11}\n\n",
                                             sMsgIn,
                                             encapsulatedDocument.Type.ToString(),
                                             encapsulatedDocument.InstanceNumber,
                                             encapsulatedDocument.ContentDate.ToString(),
                                             encapsulatedDocument.ContentTime.ToString(),
                                             encapsulatedDocument.AcquisitionDateTime.ToString(),
                                             encapsulatedDocument.BurnedInAnnotation,
                                             encapsulatedDocument.DocumentTitle,
                                             encapsulatedDocument.VerificationFlag,
                                             encapsulatedDocument.HL7InstanceIdentifier,
                                             encapsulatedDocument.MimeTypeOfEncapsulatedDocument,
                                             sMimeTypes
                                             );
                // ConceptNameCodeSequence
                string sMsg2 = string.Format("CodeValue: {0}\nCodingSchemeDesignator: {1}\nCodingSchemeVersion: {2}\nCodeMeaning: {3}\nContextIdentifier: {4}\nMappingResource: {5}\nContextGroupVersion: {6}\nContextGroupLocalVersion: {7}\nContextGroupExtensionCreatorUID: {8}",
                                             conceptNameCodeSequence.CodeValue,
                                             conceptNameCodeSequence.CodingSchemeDesignator,
                                             conceptNameCodeSequence.CodingSchemeVersion,
                                             conceptNameCodeSequence.CodeMeaning,
                                             conceptNameCodeSequence.ContextIdentifier,
                                             conceptNameCodeSequence.MappingResource,
                                             conceptNameCodeSequence.ContextGroupVersion.ToString(),
                                             conceptNameCodeSequence.ContextGroupLocalVersion.ToString(),
                                             conceptNameCodeSequence.ContextGroupExtensionCreatorUID
                                             );

                MessageBox.Show(sMsg1 + sMsg2);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }