本文整理汇总了C#中Dicom.Data.DcmDataset.GetElement方法的典型用法代码示例。如果您正苦于以下问题:C# DcmDataset.GetElement方法的具体用法?C# DcmDataset.GetElement怎么用?C# DcmDataset.GetElement使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Dicom.Data.DcmDataset
的用法示例。
在下文中一共展示了DcmDataset.GetElement方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: FilterByModality
private static Expression<Func<Study, bool>> FilterByModality(DcmDataset query)
{
Expression<Func<Study, bool>> allMatch = p => true;
var studyQuery = query.GetElement(DicomTags.ModalitiesInStudy);
if (studyQuery == null)
return allMatch;
var valueString = studyQuery.GetValueString();
if (String.IsNullOrWhiteSpace(valueString))
return allMatch;
var modalities = valueString.Replace(@"\\", @"\").Split('\\');
if (modalities.Length == 1)
{
return s => s.ModalityAggregation.Contains(modalities[0]);
}
else
{
return s => s.Series.Any( series => modalities.Contains(series.PerformedModalityType));
}
}
示例2: FilterByPatientsName
private static Expression<Func<Patient, bool>> FilterByPatientsName(DcmDataset query)
{
Expression<Func<Patient, bool>> allMatch = p => true;
var patientNameQuery = query.GetElement(DicomTags.PatientsName);
if (patientNameQuery == null)
return allMatch;
var patientNameDicomFormatted = patientNameQuery.GetValueString();
if (String.IsNullOrWhiteSpace(patientNameDicomFormatted))
return allMatch;
string[] lName;
if (patientNameDicomFormatted.Contains("[^]"))
lName = patientNameDicomFormatted.Split(new[] { "[^]" }, StringSplitOptions.None);
else if (patientNameDicomFormatted.Contains("^"))
lName = patientNameDicomFormatted.Split(new[] { "^" }, StringSplitOptions.None);
else
lName = patientNameDicomFormatted.Split(new[] { Properties.Settings.Default.PatientNameSplitCharacterForFind });
var firstName = "";
var lastName = "";
if (lName.Length == 0)
return allMatch;
if (lName.Length >= 2)
{
firstName = lName[1];
firstName = firstName.TrimEnd('*').Trim();
firstName = firstName.Replace('*', '%');
}
if (lName.Length >= 1)
{
lastName = lName[0];
lastName = lastName.TrimEnd('*').Trim();
lastName = lastName.Replace('*', '%');
}
if (!firstName.StartsWith("\""))
firstName += "%";
if (!lastName.StartsWith("\""))
lastName += "%";
return p => SqlMethods.Like(p.FirstName, firstName) && SqlMethods.Like(p.LastName, lastName);
}
示例3: FilterBySeriesDate
private static Expression<Func<Series, bool>> FilterBySeriesDate(DcmDataset query)
{
Expression<Func<Series, bool>> allMatch = p => true;
var studyQuery = query.GetElement(DicomTags.SeriesDate);
if (studyQuery == null)
return allMatch;
var valueString = studyQuery.GetValueString();
if (String.IsNullOrWhiteSpace(valueString))
return allMatch;
var dateTimeRange = DateTimeRangeQuery.Parse(valueString);
return s => s.PerformedDateTime >= dateTimeRange.From && s.PerformedDateTime <= dateTimeRange.To;
}
示例4: FilterByPatientsBirthDate
private static Expression<Func<Patient, bool>> FilterByPatientsBirthDate(DcmDataset query)
{
Expression<Func<Patient, bool>> allMatch = p => true;
var patientQuery = query.GetElement(DicomTags.PatientsBirthDate);
if (patientQuery == null)
return allMatch;
var valueString = patientQuery.GetValueString();
if (String.IsNullOrWhiteSpace(valueString))
return allMatch;
var dateTimeRange = DateTimeRangeQuery.Parse(valueString);
return p => p.BirthDateTime >= dateTimeRange.From && p.BirthDateTime <= dateTimeRange.To;
}
示例5: FilterByAccessionNumber
private static Expression<Func<Study, bool>> FilterByAccessionNumber(DcmDataset query)
{
Expression<Func<Study, bool>> allMatch = p => true;
var studyQuery = query.GetElement(DicomTags.AccessionNumber);
if (studyQuery == null)
return allMatch;
var valueString = studyQuery.GetValueString();
if (String.IsNullOrWhiteSpace(valueString))
return allMatch;
if (valueString.EndsWith("*"))
return s => s.AccessionNumber.StartsWith(valueString.Trim('*'));
else
return s => s.AccessionNumber == valueString;
}
示例6: FilterByPatientsId
private static Expression<Func<Patient, bool>> FilterByPatientsId(DcmDataset query)
{
Expression<Func<Patient, bool>> allMatch = p => true;
var patientQuery = query.GetElement(DicomTags.PatientID);
if (patientQuery == null)
return allMatch;
var valueString = patientQuery.GetValueString();
if (String.IsNullOrWhiteSpace(valueString))
return allMatch;
if (valueString.EndsWith("*"))
return p => p.ExternalPatientID.StartsWith(valueString.Trim('*'));
else
return p => p.ExternalPatientID == valueString;
}
示例7: FilterByStudyUid
private static Expression<Func<Series, bool>> FilterByStudyUid(DcmDataset query)
{
Expression<Func<Series, bool>> allMatch = p => true;
var seriesQuery = query.GetElement(DicomTags.StudyInstanceUID);
if (seriesQuery == null)
return allMatch;
var valueString = seriesQuery.GetValueString();
if (String.IsNullOrWhiteSpace(valueString))
return allMatch;
if (valueString.EndsWith("*"))
{
return s => s.StudyInstanceUid.StartsWith(valueString.Trim('*'));
}
else
{
return s => s.StudyInstanceUid == valueString;
}
}
示例8: Load
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
}
示例9: DcmPixelData
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;
}
}
示例10: QueryHasPatientSpecificFilters
private static bool QueryHasPatientSpecificFilters(DcmDataset query)
{
return query.Elements.Any(e => e.Tag.Group == 0x0010 && !String.IsNullOrWhiteSpace(query.GetElement(e.Tag).GetValueString()) );
}
示例11: GetFilePaths
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[]{};
}
}