public override string ToString() { string ans = Environment.NewLine + "Relationship Type: " + RelationShipType + Environment.NewLine + "Value Type: " + ValueType + Environment.NewLine + "Concept --> " + ConceptNameCodeSequence.ToString(); if (ConceptCodeSequence != null) { ans = ans + ConceptCodeSequence.ToString(); } if (ValueType == Value.TEXT) { ans = ans + Environment.NewLine + "Value: " + TextValue; } if (DateTimeValue.HasValue) { ans = ans + Environment.NewLine + "Value: " + DateTimeValue.Value.ToString(); } if (ValueType == Value.NUM) { ans = ans + Environment.NewLine + MeasuredValueSequence.ToString(); } if (ContentItems.Any()) { foreach (var c in ContentItems) { ans = ans + Environment.NewLine + "Content Item-->" + c.ToString(); } } return(ans); }
public ContentItem(Dicom.DicomDataset dset) { ContentItems = new List <ContentItem>(); string val; if (dset.TryGetString(Dicom.DicomTag.RelationshipType, out val)) { switch (val) { case "CONTAINS": RelationShipType = RelationShip.CONTAINS; break; case "HAS PROPERTIES": RelationShipType = RelationShip.HAS_PROPERTIES; break; case "HAS OBS CONTEXT": RelationShipType = RelationShip.HAS_OBS_CONTEXT; break; case "HAS ACQ CONTEXT": RelationShipType = RelationShip.HAS_ACQ_CONTEXT; break; case "INFERRED FROM": RelationShipType = RelationShip.INFERRED_FROM; break; case "SELECTED FROM": RelationShipType = RelationShip.SELECTED_FROM; break; case "HAS CONCEPT MOD": RelationShipType = RelationShip.HAS_CONCEPT_MOD; break; } } if (dset.TryGetString(Dicom.DicomTag.ValueType, out val)) { switch (val) { case "CODE": ValueType = Value.CODE; Dicom.DicomSequence seq1; if (dset.TryGetSequence(Dicom.DicomTag.ConceptCodeSequence, out seq1)) { ConceptCodeSequence = new CodeSequence(seq1.First()); } break; case "COMPOSITE": ValueType = Value.COMPOSITE; break; case "CONTAINER": ValueType = Value.CONTAINER; break; case "DATE": ValueType = Value.DATE; break; case "DATETIME": ValueType = Value.DATETIME; DateTime dVal; if (dset.TryGetValue <DateTime>(Dicom.DicomTag.DateTime, 0, out dVal)) { DateTimeValue = dVal; } break; case "IMAGE": ValueType = Value.IMAGE; break; case "NUM": ValueType = Value.NUM; Dicom.DicomSequence dsZ; if (dset.TryGetSequence(Dicom.DicomTag.MeasuredValueSequence, out dsZ)) { MeasuredValueSequence = new MeasuredValueSequence(dsZ.First()); } break; case "PNAME": ValueType = Value.PNAME; break; case "SCORD": ValueType = Value.SCOORD; break; case "SCOORD3D": ValueType = Value.SCOORD3D; break; case "TCOORD": ValueType = Value.TCOORD; break; case "TEXT": ValueType = Value.TEXT; if (dset.TryGetString(Dicom.DicomTag.TextValue, out val)) { TextValue = val; } break; case "TIME": ValueType = Value.TIME; break; case "UIDREF": ValueType = Value.UIDREF; if (dset.TryGetString(Dicom.DicomTag.UID, out val)) { UIDValue = val; } break; case "WAVEFORM": ValueType = Value.WAVEFORM; break; } } Dicom.DicomSequence seq; if (dset.TryGetSequence(Dicom.DicomTag.ConceptNameCodeSequence, out seq)) { ConceptNameCodeSequence = new CodeSequence(seq.First()); } if (dset.TryGetSequence(Dicom.DicomTag.ContentSequence, out seq)) { ContentItems = new List <ContentItem>(); foreach (var t in seq.Items) { ContentItems.Add(new ContentItem(t)); } } }