コード例 #1
0
ファイル: StructuredReport.cs プロジェクト: lulzzz/iRadiate
        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);
        }
コード例 #2
0
ファイル: StructuredReport.cs プロジェクト: lulzzz/iRadiate
        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));
                }
            }
        }