private void VerifyInstance4(InstanceMINTXml instance)
        {
            VerifyStudyLevelAttrs(instance);
            VerifySeries2LevelAttrs(instance);

            // Not bothering to verify VR here because we've pretty much verified it is being
            // parsed properly before this.
            Assert.AreEqual("1.2.840.10008.1.2.1", instance.TransferSyntax.UidString);
            Assert.AreEqual("1235.222", instance[DicomTags.SopInstanceUid].GetString(0, ""));
            Assert.AreEqual("134437.3", instance[DicomTags.AcquisitionTime].GetString(0, ""));
            Assert.AreEqual("134437.4", instance[DicomTags.ContentTime].GetString(0, ""));

            Assert.IsInstanceOfType(typeof(DicomAttributeSQ), instance[DicomTags.ReferencedImageSequence]);
            var sq = instance[DicomTags.ReferencedImageSequence] as DicomAttributeSQ;

            Assert.IsNotNull(sq);
            Assert.AreEqual(1, sq.Count);
            var item = sq[0];

            Assert.AreEqual("1.2.840.10008.5.1.4.1.1.2", item[DicomTags.ReferencedSopClassUid].GetString(0, ""));
            Assert.AreEqual("1.3.12.2.1107.5.1.4.54587.30000010042317111407800000777", item[DicomTags.ReferencedSopInstanceUid].GetString(0, ""));

            Assert.IsInstanceOfType(typeof(DicomAttributeSQ), instance[DicomTags.SourceImageSequence]);
            sq = instance[DicomTags.SourceImageSequence] as DicomAttributeSQ;
            Assert.IsNotNull(sq);
            Assert.AreEqual(1, sq.Count);
            item = sq[0];
            Assert.AreEqual("1.3.12.2.1107.5.9.1", item[DicomTags.ReferencedSopClassUid].GetString(0, ""));
            Assert.AreEqual("1.3.12.2.1107.5.1.4.54587.30000010042317111407800001012", item[DicomTags.ReferencedSopInstanceUid].GetString(0, ""));
        }
        private void VerifyStudyLevelAttrs(InstanceMINTXml instance)
        {
            Assert.AreEqual("19100423", instance[DicomTags.StudyDate].GetString(0, ""));
            Assert.AreEqual(DicomVr.DAvr, instance[DicomTags.StudyDate].Tag.VR);
            Assert.AreEqual("John", instance[DicomTags.PatientsName].GetString(0, ""));
            Assert.AreEqual(DicomVr.PNvr, instance[DicomTags.PatientsName].Tag.VR);
            Assert.IsInstanceOfType(typeof(DicomAttributeSQ), instance[DicomTags.ProcedureCodeSequence]);
            var sq = instance[DicomTags.ProcedureCodeSequence] as DicomAttributeSQ;

            Assert.IsNotNull(sq);
            Assert.AreEqual(sq.Count, 2);
            var item = sq[0];

            Assert.AreEqual("4706200", item[DicomTags.CodeValue].GetString(0, ""));
            Assert.AreEqual(DicomVr.SHvr, instance[DicomTags.CodeValue].Tag.VR);
            Assert.AreEqual("Siemens RIS", item[DicomTags.CodingSchemeDesignator].GetString(0, ""));
            Assert.AreEqual(DicomVr.SHvr, item[DicomTags.CodingSchemeDesignator].Tag.VR);
            Assert.AreEqual(string.Empty, item[DicomTags.CodingSchemeVersion].GetString(0, ""));
            Assert.AreEqual(DicomVr.SHvr, item[DicomTags.CodingSchemeVersion].Tag.VR);
            Assert.AreEqual("RIS detail service code", item[DicomTags.CodeMeaning].GetString(0, ""));
            Assert.AreEqual(DicomVr.LOvr, instance[DicomTags.CodeMeaning].Tag.VR);
            item = sq[1];
            Assert.AreEqual("14706200", item[DicomTags.CodeValue].GetString(0, ""));
            Assert.AreEqual(DicomVr.SHvr, instance[DicomTags.CodeValue].Tag.VR);
            Assert.AreEqual("1Siemens RIS", item[DicomTags.CodingSchemeDesignator].GetString(0, ""));
            Assert.AreEqual(DicomVr.SHvr, instance[DicomTags.CodingSchemeDesignator].Tag.VR);
            Assert.AreEqual("1", item[DicomTags.CodingSchemeVersion].GetString(0, ""));
            Assert.AreEqual(DicomVr.SHvr, item[DicomTags.CodingSchemeVersion].Tag.VR);
            Assert.AreEqual("1RIS detail service code", item[DicomTags.CodeMeaning].GetString(0, ""));
            Assert.AreEqual(DicomVr.LOvr, item[DicomTags.CodeMeaning].Tag.VR);
            item = null;
            Assert.AreEqual("123.111", instance[DicomTags.StudyInstanceUid].GetString(0, ""));
            Assert.AreEqual(DicomVr.UIvr, instance[DicomTags.StudyInstanceUid].Tag.VR);
        }
 private void VerifySeries2LevelAttrs(InstanceMINTXml instance)
 {
     Assert.AreEqual("20100424", instance[DicomTags.SeriesDate].GetString(0, ""));
     Assert.AreEqual(DicomVr.DAvr, instance[DicomTags.SeriesDate].Tag.VR);
     Assert.AreEqual("134612.000", instance[DicomTags.SeriesTime].GetString(0, ""));
     Assert.AreEqual(DicomVr.TMvr, instance[DicomTags.SeriesTime].Tag.VR);
     Assert.AreEqual("MR", instance[DicomTags.Modality].GetString(0, ""));
     Assert.AreEqual(DicomVr.CSvr, instance[DicomTags.Modality].Tag.VR);
     Assert.AreEqual("RIGHT EXTR  3.0  B30f", instance[DicomTags.SeriesDescription].GetString(0, ""));
     Assert.AreEqual(DicomVr.LOvr, instance[DicomTags.SeriesDescription].Tag.VR);
     Assert.AreEqual("EXTREMITY", instance[DicomTags.BodyPartExamined].GetString(0, ""));
     Assert.AreEqual(DicomVr.CSvr, instance[DicomTags.BodyPartExamined].Tag.VR);
     Assert.AreEqual("123.333", instance[DicomTags.SeriesInstanceUid].GetString(0, ""));
     Assert.AreEqual(DicomVr.UIvr, instance[DicomTags.SeriesInstanceUid].Tag.VR);
     Assert.AreEqual("3", instance[DicomTags.SeriesNumber].GetString(0, ""));
     Assert.AreEqual(DicomVr.ISvr, instance[DicomTags.SeriesNumber].Tag.VR);
 }
Beispiel #4
0
        public void InstanceMINTXmlConstructorTest()
        {
            string xml =
                @"<Instance>
                    <Attributes>
                        <Attr tag='00100010' vr='PN' val='DOE^JON' />
                        <Attr tag='00080018' vr='UI' val='123.333' />
                        <Attr tag='00080032' vr='TM' val='134437.3' />
                        <Attr tag='00080033' vr='TM' val='134437.4' />
                        <Attr tag='00081140' vr='SQ' >
                            <Item id='0'>
                                <Attr tag='00081150' vr='UI' val='1.2.3.4' />
                                <Attr tag='00081155' vr='UI' val='4.3.2.1' />
                            </Item>
                            <Item id='0'>
                                <Attr tag='00081150' vr='UI' val='5.6.7.8' />
                                <Attr tag='00081155' vr='UI' val='9.8.7.6' />
                            </Item>
                        </Attr>
                        <Attr tag='7fe00010' vr='OW' bid='13' />
                    </Attributes>
                </Instance>"
            ;
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xml);
            var loaderArgs       = new StudyLoaderArgs("123.111", null);
            var studyAttributes  = new DicomAttributeCollection();
            var seriesAttributes = new DicomAttributeCollection();

            // Make sure one attribute is in conflict with an attribute parsed from the
            // instance XML (the instance XML value should not take precedence here). This would
            // typically never happen.
            studyAttributes[DicomTags.StudyInstanceUid].SetStringValue("123.111");
            studyAttributes[DicomTags.PatientsName].SetStringValue("ABC^TUV");
            seriesAttributes[DicomTags.SeriesInstanceUid].SetStringValue("123.222");

            var instance = new InstanceMINTXml(loaderArgs, "http://some-uri/DICOM/metadata",
                                               doc.DocumentElement, studyAttributes, seriesAttributes, null);

            Assert.AreEqual("123.111", instance[DicomTags.StudyInstanceUid].GetString(0, ""));
            Assert.AreEqual("123.222", instance[DicomTags.SeriesInstanceUid].GetString(0, ""));
            Assert.AreEqual("ABC^TUV", instance[DicomTags.PatientsName].GetString(0, ""));
            Assert.AreEqual("123.333", instance[DicomTags.SopInstanceUid].GetString(0, ""));
            Assert.AreEqual("134437.3", instance[DicomTags.AcquisitionTime].GetString(0, ""));
            Assert.AreEqual("134437.4", instance[DicomTags.ContentTime].GetString(0, ""));
            Assert.IsInstanceOfType(typeof(DicomAttributeSQ), instance[DicomTags.ReferencedImageSequence]);

            var sq = instance[DicomTags.ReferencedImageSequence] as DicomAttributeSQ;

            Assert.IsNotNull(sq);

            Assert.AreEqual(2, sq.Count);
            var item = sq[0];

            Assert.AreEqual("1.2.3.4", item[DicomTags.ReferencedSopClassUid].GetString(0, ""));
            Assert.AreEqual("4.3.2.1", item[DicomTags.ReferencedSopInstanceUid].GetString(0, ""));

            item = sq[1];
            Assert.AreEqual("5.6.7.8", item[DicomTags.ReferencedSopClassUid].GetString(0, ""));
            Assert.AreEqual("9.8.7.6", item[DicomTags.ReferencedSopInstanceUid].GetString(0, ""));

            Assert.AreEqual("http://some-uri/DICOM/binaryitems/13",
                            instance.PixelDataUri.AbsoluteUri);
        }