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