public bool Match(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); return value.Contains(_value); } return false; }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); string[] parts = value.Split('\\'); for (int i = 0; i < parts.Length; i++) { if (parts[i].Length > _length) parts[i] = parts[i].Substring(0, _length); } value = String.Join("\\", parts); dataset.AddElementWithValueString(_tag, value); } }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); if (_totalLength < 0) value = value.PadLeft(-_totalLength, _paddingChar); else value = value.PadRight(_totalLength, _paddingChar); dataset.AddElementWithValueString(_tag, value); } }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); if (_position == DicomTrimPosition.Both) { if (_trim != null) value = value.Trim(_trim); else value = value.Trim(); } else if (_position == DicomTrimPosition.Start) { if (_trim != null) value = value.TrimStart(_trim); else value = value.TrimStart(); } else { if (_trim != null) value = value.TrimEnd(_trim); else value = value.TrimEnd(); } dataset.AddElementWithValueString(_tag, value); } }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); if (_position == DicomTrimPosition.Start || _position == DicomTrimPosition.Both) while (value.StartsWith(_trim)) value = value.Substring(_trim.Length); if (_position == DicomTrimPosition.End || _position == DicomTrimPosition.Both) while (value.EndsWith(_trim)) value = value.Substring(0, value.Length - _trim.Length); dataset.AddElementWithValueString(_tag, value); } }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); dataset.AddElementWithValueString(_tag, _prefix + value); } }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); value = Regex.Replace(value, _pattern, _replacement); dataset.AddElementWithValueString(_tag, value); } }
public DcmPixelData(DcmDataset dataset) { _transferSyntax = dataset.InternalTransferSyntax; _lossy = dataset.GetString(DicomTags.LossyImageCompression, "00") != "00"; _lossyMethod = dataset.GetString(DicomTags.LossyImageCompressionMethod, String.Empty); _lossyRatio = dataset.GetString(DicomTags.LossyImageCompressionRatio, String.Empty); _frames = dataset.GetInt32(DicomTags.NumberOfFrames, 1); _width = dataset.GetUInt16(DicomTags.Columns, 0); _height = dataset.GetUInt16(DicomTags.Rows, 0); _bitsStored = dataset.GetUInt16(DicomTags.BitsStored, 0); _bitsAllocated = dataset.GetUInt16(DicomTags.BitsAllocated, 0); _highBit = dataset.GetUInt16(DicomTags.HighBit, (ushort)(_bitsStored - 1)); _samplesPerPixel = dataset.GetUInt16(DicomTags.SamplesPerPixel, 0); _pixelRepresentation = dataset.GetUInt16(DicomTags.PixelRepresentation, 0); _planarConfiguration = dataset.GetUInt16(DicomTags.PlanarConfiguration, 0); _photometricInterpretation = dataset.GetString(DicomTags.PhotometricInterpretation, String.Empty); _rescaleSlope = dataset.GetDouble(DicomTags.RescaleSlope, 1.0); _rescaleIntercept = dataset.GetDouble(DicomTags.RescaleIntercept, 0.0); _pixelDataItem = dataset.GetItem(DicomTags.PixelData); _hasPixelPadding = dataset.Contains(DicomTags.PixelPaddingValue); if (_hasPixelPadding) { DcmElement elem = dataset.GetElement(DicomTags.PixelPaddingValue); if (elem is DcmUnsignedShort) _pixelPaddingValue = (elem as DcmUnsignedShort).GetValue(); else if (elem is DcmSignedShort) { _pixelPaddingValue = (elem as DcmSignedShort).GetValue(); } else _pixelPaddingValue = MinimumDataValue; } }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag) && dataset.GetValueString(_tag) == _match) dataset.AddElementWithValueString(_tag, _value); }
public bool Match(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); foreach (string v in _values) if (v == value) return true; } return false; }
public bool Match(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); return Wildcard.Match(_pattern, value); } return false; }
public bool Match(DcmDataset dataset) { return dataset.Contains(_tag); }
public bool Match(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag).Trim(); return String.IsNullOrEmpty(value); } return true; }
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 }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); string[] parts = value.Split(_seperators); value = String.Format(_format, parts); dataset.AddElementWithValueString(_tag, value); } }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_src)) dataset.AddElementWithValueString(_dst, dataset.GetValueString(_src)); }
public void Transform(DcmDataset dataset) { if (dataset.Contains(_tag)) { string value = dataset.GetValueString(_tag); dataset.AddElementWithValueString(_tag, value.ToLower()); } }
public static WindowLevel[] FromDataset(DcmDataset dataset) { List<WindowLevel> settings = new List<WindowLevel>(); if (dataset.Contains(DicomTags.WindowCenter) && dataset.Contains(DicomTags.WindowWidth)) { string[] wc = dataset.GetDS(DicomTags.WindowCenter).GetValues(); string[] ww = dataset.GetDS(DicomTags.WindowWidth).GetValues(); if (wc.Length != ww.Length) throw new DicomImagingException("Window Center count does not match Window Width count"); string[] desc = null; if (dataset.Contains(DicomTags.WindowCenterWidthExplanation)) { desc = dataset.GetLO(DicomTags.WindowCenterWidthExplanation).GetValues(); } for (int i = 0; i < wc.Length; i++) { double window; double level; if (!Double.TryParse(ww[i], out window) && !Double.TryParse(ww[i], System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out window)) throw new DicomImagingException("Unable to parse Window/Level [ww: {0}]", ww[i]); if (!Double.TryParse(wc[i], out level) && !Double.TryParse(wc[i], System.Globalization.NumberStyles.Float, System.Globalization.CultureInfo.InvariantCulture, out level)) throw new DicomImagingException("Unable to parse Window/Level [wc: {0}]", wc[i]); string description = String.Empty; if (desc != null && i < desc.Length) description = desc[i]; settings.Add(new WindowLevel(description, window, level)); } } return settings.ToArray(); }