Ejemplo n.º 1
0
        public static int?MyGetIntValue(this DicomDataSet ds, long tag)
        {
            DicomElement element = ds.FindFirstElement(null, tag, true);

            if (null == element || element.Length == 0)
            {
                return(null);
            }
            else
            {
                int[] values;


                values = ds.GetIntValue(element, 0, 1);

                if (values != null && values.Length > 0)
                {
                    return(values[0]);
                }
                else
                {
                    return(null);
                }
            }
        }
Ejemplo n.º 2
0
        static MedicalViewerPageInfo[] GetPagesPresentationInfo(DicomDataSet ds, MedicalViewerPageInfo ppiMaster, int DefTotalPages)
        {
            int          nFrames            = DefTotalPages;
            DicomElement elemNumberOfFrames = ds.FindFirstElement(null, DicomTag.NumberOfFrames, true);

            string path = ExtractPDFData(ds);

            if (!string.IsNullOrEmpty(path))
            {
                using (RasterCodecs codecs = new RasterCodecs())
                {
                    using (CodecsImageInfo info = codecs.GetInformation(path, true))
                    {
                        nFrames = info.TotalPages;
                    }
                }
            }
            else
            if (null != elemNumberOfFrames)
            {
                int[] nFramesList = ds.GetIntValue(elemNumberOfFrames, 0, 1);
                nFrames = Math.Max(nFrames, nFramesList[0]);
            }

            List <MedicalViewerPageInfo> PagePresentationInfoLstFromDS = GetPagesInfoFromMaster(ds, ppiMaster);
            List <MedicalViewerPageInfo> PagePresentationInfoLst       = new List <MedicalViewerPageInfo>();

            for (int nIndex = 0; nIndex < nFrames; nIndex++)
            {
                if (nIndex < PagePresentationInfoLstFromDS.Count)
                {
                    PagePresentationInfoLst.Add(PagePresentationInfoLstFromDS[nIndex]);
                }
                else
                {
                    PagePresentationInfoLst.Add(null);
                }
            }

            return(PagePresentationInfoLst.ToArray());
        }
Ejemplo n.º 3
0
        int GetInstanceNumber(DicomDataSet ds)
        {
            try
            {
                DicomElement dicomElement = null;

                dicomElement = ds.FindFirstElement(null, DicomTag.InstanceNumber, false);

                if (dicomElement != null)
                {
                    int[] Values = ds.GetIntValue(dicomElement, 0, 1);
                    return(Values[0]);
                }

                return(0);
            }
            catch
            {
                return(0);
            }
        }