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); }
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); }