private void Load(DcmDataset ds) { _rows = ds.GetUInt16(OverlayTag(DicomTags.OverlayRows), 0); _columns = ds.GetUInt16(OverlayTag(DicomTags.OverlayColumns), 0); _type = ds.GetString(OverlayTag(DicomTags.OverlayType), "Unknown"); DicomTag tag = OverlayTag(DicomTags.OverlayOrigin); if (ds.Contains(tag)) { short[] xy = ds.GetSS(tag).GetValues(); if (xy != null && xy.Length == 2) { _originX = xy[0]; _originY = xy[1]; } } _bitsAllocated = ds.GetUInt16(OverlayTag(DicomTags.OverlayBitsAllocated), 1); _bitPosition = ds.GetUInt16(OverlayTag(DicomTags.OverlayBitPosition), 0); tag = OverlayTag(DicomTags.OverlayData); if (ds.Contains(tag)) { DcmElement elem = ds.GetElement(tag); _data = elem.ByteBuffer.ToBytes(); } _description = ds.GetString(OverlayTag(DicomTags.OverlayDescription), String.Empty); _subtype = ds.GetString(OverlayTag(DicomTags.OverlaySubtype), String.Empty); _label = ds.GetString(OverlayTag(DicomTags.OverlayLabel), String.Empty); _frames = ds.GetInt32(OverlayTag(DicomTags.NumberOfFramesInOverlay), 1); _frameOrigin = ds.GetUInt16(OverlayTag(DicomTags.ImageFrameOrigin), 1); //TODO: include ROI }