Beispiel #1
0
        public static DicomRTReferencedSeries Read(DicomDataset ds)
        {
            var seriesInstanceUID = ds.GetStringOrEmpty(DicomTag.SeriesInstanceUID);

            var contourImages = new List <DicomRTContourImageItem>();

            if (ds.Contains(DicomTag.ContourImageSequence))
            {
                // Changed for new OSS fo-dicom-desktop
                var seq = ds.GetSequence(DicomTag.ContourImageSequence);
                //var seq = ds.Get<DicomSequence>(DicomTag.ContourImageSequence);

                foreach (var item in seq)
                {
                    var contourImageItem = DicomRTContourImageItem.Read(item);
                    contourImages.Add(contourImageItem);
                }
            }

            return(new DicomRTReferencedSeries(seriesInstanceUID, contourImages));
        }
Beispiel #2
0
        /// <summary>
        /// Read an RT Contour Item from the given dataset.
        /// </summary>
        /// <param name="ds"></param>
        /// <returns></returns>
        public static DicomRTContourItem Read(DicomDataset ds)
        {
            // Changed for new OSS fo-dicom-desktop
            var numberOfPoints = ds.GetSingleValue <int>(DicomTag.NumberOfContourPoints);
            // fo-dicom internally parses strings to decimal using InvariantCulture and then converts to double
            var data = ds.GetValues <double>(DicomTag.ContourData);
            //var numberOfPoints = ds.Get<int>(DicomTag.NumberOfContourPoints);
            //// fo-dicom internally parses strings to decimal using InvariantCulture and then converts to double
            //var data = ds.Get<double[]>(DicomTag.ContourData);
            var geometricType = ds.GetTrimmedStringOrEmpty(DicomTag.ContourGeometricType);
            List <DicomRTContourImageItem> listImages = new List <DicomRTContourImageItem>();

            if (ds.Contains(DicomTag.ContourImageSequence))
            {
                // Changed for new OSS fo-dicom-desktop
                var seqImages = ds.GetSequence(DicomTag.ContourImageSequence);
                //var seqImages = ds.Get<DicomSequence>(DicomTag.ContourImageSequence);
                foreach (var item in seqImages)
                {
                    listImages.Add(DicomRTContourImageItem.Read(item));
                }
            }
            return(new DicomRTContourItem(data, numberOfPoints, geometricType, listImages));
        }