public GetString ( Dicom.Data.DicomTag tag, int index, string deflt ) : string | ||
tag | Dicom.Data.DicomTag | |
index | int | |
deflt | string | |
return | string |
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; } }
protected void SendCMoveRequest(byte presentationID, ushort messageID, string destinationAE, DcmPriority priority, DcmDataset dataset) { String level = dataset.GetString(DicomTags.QueryRetrieveLevel, "UNKNOWN"); DicomUID affectedClass = Associate.GetAbstractSyntax(presentationID); DcmCommand command = CreateRequest(messageID, DcmCommandField.CMoveRequest, affectedClass, priority, true); command.MoveDestinationAE = destinationAE; Log.Info("{0} -> C-Move request [pc: {1}; id: {2}; lvl: {3}; dest: {4}]", LogID, presentationID, messageID, level, destinationAE); SendDimse(presentationID, command, dataset); }
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 }
private static Expression<Func<Study, bool>> FilterByStudyDate(DcmDataset query) { Expression<Func<Study, bool>> allMatch = p => true; var studyQuery = query.GetElement(DicomTags.StudyDate); if (studyQuery == null) return allMatch; var valueString = studyQuery.GetValueString(); if (String.IsNullOrWhiteSpace(valueString)) return allMatch; var dateTimeRange = DateTimeRangeQuery.Parse(valueString, query.GetString(DicomTags.StudyTime, null)); return s => s.PerformedDateTime >= dateTimeRange.From && s.PerformedDateTime <= dateTimeRange.To; }
private void SaveDimseToFile(DcmDataset dataset) { var now = DateTime.Now; Trace.WriteLine(String.Format("{0} Receive DIMSE {1} from {2} ", now, dataset.GetString(DicomTags.Modality, "UN"), this.Associate.CallingAE)); ImageCountOnConnection++; bool isFiltered = IsFilteredOutData(dataset); if (isFiltered && !Settings.Default.ReceiveFilter_Keep) return; var fileName = GetFileNameForDicomDataset(dataset); string filePath; if (!isFiltered) { filePath = DefineStorageLocationOfFile(fileName); } else { filePath = Path.Combine(Settings.Default.ReceiveFilter_Folder, fileName); } Trace.WriteLine(String.Format("{0} Saving DIMSE {1} from {2} to {3} ", now, dataset.GetString(DicomTags.Modality, "UN"), this.Associate.CallingAE, filePath)); var ff = new DicomFileFormat(dataset); ff.Save( filePath, DicomWriteOptions.Default); }
private bool IsFilteredOutData(DcmDataset dataset) { if (!HasReceiveFilters) { return false; } var imageTypes = dataset.GetStringArray(DicomTags.ImageType, new string[]{}); if (imageTypes.Any( t => IsFilteredOut(t, ReceiveFilter_ImageTypes))) { Trace.WriteLine(String.Format("{0} Filtered DIMSE {1} from {2} because of imageType:{3}", DateTime.Now, dataset.GetString(DicomTags.Modality, "UN"), this.Associate.CallingAE, imageTypes)); return true; } var seriesDescription = dataset.GetString(DicomTags.SeriesDescription, ""); if (IsFilteredOut(seriesDescription, ReceiveFilter_SeriesDescription)) { Trace.WriteLine(String.Format("{0} Filtered DIMSE {1} from {2} because of seriesDescription:{3}", DateTime.Now, dataset.GetString(DicomTags.Modality, "UN"), this.Associate.CallingAE, seriesDescription)); return true; } return false; }
private static IEnumerable<string> GetFilePaths(MedicalISDataContext database, DcmDataset query) { if ( ! String.IsNullOrWhiteSpace(query.GetString(DicomTags.SeriesInstanceUID, "")) ) { string seriesInstanceUid = query.GetString(DicomTags.SeriesInstanceUID,""); var imagePaths = from i in database.Images where i.SeriesInstanceUid == seriesInstanceUid select Path.Combine(Settings.Default.RootPath, i.ArchivedStorageLocation); return imagePaths; } else if ( !String.IsNullOrWhiteSpace(query.GetString(DicomTags.StudyInstanceUID, ""))) { string studyInstanceUid = query.GetElement(DicomTags.StudyInstanceUID).GetValueString(); var imagePaths = from i in database.Images where i.Series.Study.StudyInstanceUid == studyInstanceUid select Path.Combine(Settings.Default.RootPath, i.ArchivedStorageLocation); return imagePaths; } else { return new string[]{}; } }
private static string GetFileNameForDicomDataset(DcmDataset dataset) { return dataset.GetString(DicomTags.Modality, "UN") + "." + dataset.GetString(DicomTags.SOPInstanceUID, "UnknownSOPInstanceUID") + ".dcm"; }