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); } } }
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()); }
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); } }