using System; using System.Collections; using YourDICOM; class SamplePrivateDictionary:YourDICOM.IDictionary { /// /// Private hashtable of tag-VR pairs /// private static Hashtable table = new Hashtable(); /// /// Private tag enumerations /// public enum TAGS:uint { COMPRESSION_RATIO = 0X00030003, KEY_IMAGE_FLAG = 0X00030005, ANNOTATING_DOCTOR = 0X0003000F, ANNOTATION_DATE = 0X00030011, LINE_ANNOTATION = 0X00030013, TEXT_ANNOTATION = 0X00030015, MEASURE_ANNOTATION = 0X00030017, ANGLE_ANNOTATION = 0X00030019, AUDIO_ANNOTATION = 0X0003001B, CURSOR_ANNOTATION = 0X0003001D, COMPATABILITY51 = 0X00050001, COMPRESSION_LIBRARY_NAME = 0X00050003, VERSION = 0X00050005, OFFSET_ADDED_TO_EVERY_PIXEL = 0X00050007, COMPRESSED_DICOM_ANNOTATIONS = 0X00050009, SITE_CODE = 0X0005000B, TECH_SETTINGS = 0X0005000D, PREV_ANNOTATING_DOCTOR = 0X0005000F, PREV_ANNOTATION_DATE = 0X00050011, PREV_LINE_ANNOTATION = 0X00050013, PREV_TEXT_ANNOTATION = 0X00050015, PREV_MEASURE_ANNOTATION = 0X00050017, PREV_ANGLE_ANNOTATION = 0X00050019, PREV_AUDIO_ANNOTATION = 0X0005001B, PREV_CURSOR_ANNOTATION = 0X0005001D, ZOOM_X_SOURCE = 0X0005001F, ZOOM_Y_SOURCE = 0X00050021, ZOOM_X_FACTOR = 0X00050023, ZOOM_Y_FACTOR = 0X00050025, INFO = 0X00050027 } /// /// Standard static constructor because their should be only one /// static SamplePrivateDictionary() { table.Add(TAGS.COMPRESSION_RATIO, Element.VR.OB); table.Add(TAGS.KEY_IMAGE_FLAG, Element.VR.SS); table.Add(TAGS.ANNOTATING_DOCTOR, Element.VR.CS); table.Add(TAGS.ANNOTATION_DATE, Element.VR.CS); table.Add(TAGS.LINE_ANNOTATION, Element.VR.OB); table.Add(TAGS.TEXT_ANNOTATION, Element.VR.OB); table.Add(TAGS.MEASURE_ANNOTATION, Element.VR.OB); table.Add(TAGS.ANGLE_ANNOTATION, Element.VR.OB); table.Add(TAGS.AUDIO_ANNOTATION, Element.VR.OB); table.Add(TAGS.CURSOR_ANNOTATION, Element.VR.OB); table.Add(TAGS.COMPATABILITY51, Element.VR.SL); table.Add(TAGS.COMPRESSION_LIBRARY_NAME, Element.VR.CS); table.Add(TAGS.VERSION, Element.VR.CS); table.Add(TAGS.OFFSET_ADDED_TO_EVERY_PIXEL, Element.VR.SS); table.Add(TAGS.COMPRESSED_DICOM_ANNOTATIONS, Element.VR.OB); table.Add(TAGS.SITE_CODE, Element.VR.CS); table.Add(TAGS.TECH_SETTINGS, Element.VR.IS); table.Add(TAGS.PREV_ANNOTATING_DOCTOR, Element.VR.OB); table.Add(TAGS.PREV_ANNOTATION_DATE, Element.VR.OB); table.Add(TAGS.PREV_LINE_ANNOTATION, Element.VR.OB); table.Add(TAGS.PREV_TEXT_ANNOTATION, Element.VR.OB); table.Add(TAGS.PREV_MEASURE_ANNOTATION, Element.VR.OB); table.Add(TAGS.PREV_ANGLE_ANNOTATION, Element.VR.OB); table.Add(TAGS.PREV_AUDIO_ANNOTATION, Element.VR.OB); table.Add(TAGS.PREV_CURSOR_ANNOTATION, Element.VR.OB); table.Add(TAGS.ZOOM_X_SOURCE, Element.VR.OB); table.Add(TAGS.ZOOM_Y_SOURCE, Element.VR.OB); table.Add(TAGS.ZOOM_X_FACTOR, Element.VR.OB); table.Add(TAGS.ZOOM_Y_FACTOR, Element.VR.OB); table.Add(TAGS.INFO, Element.VR.OB); } /// /// Get VR or tag /// /// Known VR or exception thrown public Element.VR Vr(uint tag) { return (Element.VR)table[(TAGS)tag]; } /// /// Ask if this tag exists in this dictionary /// /// Tag /// true if tag exists false otherwise public bool Exists(uint tag) { return table.Contains((TAGS)tag); } }