// $Id: dicom.cc,v 1.1 2001/06/08 08:58:05 leon Exp $
// Implicit value representaiton assumed when reading elements

#include <fstream>
#include <iomanip>

#include "dicom.h"

Element::Element()
{
  value = NULL;
}

Element::~Element()
{
  delete [] value;
}

bool Element::read(istream & is)
{

  is.read(&tag.group, 2);
  is.read(&tag.element, 2);

  if (!is)
	return false;
    
  if (tag.group == 2)
	{
	  is.read(vr, 2);
	  vr_type = vr2type();
	  if (vr_type == OB || vr_type == OW || vr_type == SQ
		  || vr_type == UN)
		{
		  is.ignore(2);
		  is.read(&value_length, 4);
		}
	  else
		{
		  value_length = 0;
		  is.read(&value_length, 2);
		}
	}
  else
	{
	  is.read(&value_length, 4);
	  vr_type = IMPLICIT;
	  vr[0] = 'I';
	  vr[1] = 'M';
	}

  tag.set_name();
  tag.set_implicit_type();
  
  unsigned int even = (value_length + 1) / 2;
  even <<= 1;
  if (value)
	delete [] value;
  value = new unsigned char [even];
  is.read(value, even);
  return true;
}

VR_TYPE Element::vr2type()
{
  switch (vr[0])
	{
	case 'A':
	  switch (vr[1])
		{
		case 'E':  return AE;
		case 'S':  return AS;
		case 'T':  return AT;
		}
	case 'C':
	  if (vr[1] == 'S')
		return CS;
	case 'D':
	  switch (vr[1])
		{
		case 'A': return DA;
		case 'S': return DS;
		case 'T': return DT;
		}
	case 'F':
	  switch (vr[1])
		{
		case 'L': return FL;
		case 'D': return FD;
		}
	case 'I':
	  if (vr[1] == 'S')
		return IS;
	case 'L':
	  switch (vr[1])
		{
		case 'O': return LO;
		case 'T': return LT;
		}
	case 'O':
	  switch (vr[1])
		{
		case 'B': return OB;
		case 'W': return OW;
		}
	case 'P':
	  if (vr[1] == 'N')
		return PN;
	case 'S':
	  switch (vr[1])
		{
		case 'H': return SH;
		case 'L': return SL;
		case 'Q': return SQ;
		case 'S': return SS;
		case 'T': return ST;
		}
	case 'T':
	  if (vr[1] == 'M')
		return TM;
	case 'U':
	  switch (vr[1])
		{
		case 'I': return UI;
		case 'L': return UL;
		case 'N': return UN;
		case 'S': return US;
		}
	}
  return ERROR;
}


void Element::print(ostream &os)
{
  if (value_length == 0)
	return;
  os << setbase(16);
  os << tag.group << ',' << tag.element  << '\t' << setbase(10)
	 << vr[0] << vr[1]  << '\t'
	 << value_length << '\t'  <<  tag.vrAsString() << ':'
	 << tag.name << '\n';
  if ((tag.vr == CS || tag.vr == DS || tag.vr == LO
	   || tag.vr == PN || tag.vr == SS || tag.vr == LT
	   || tag.vr == IS)
	  && value_length > 0)
	{
	  os << '\t';
	  os.write(value, value_length);
	  os << endl;
	}
  if (tag.vr == UI)
	os << '\t' << value << endl;
  if (tag.vr == US)
	os << '\t' << *(unsigned short *)value << endl;
}

static DICOM_TAG const dicom_tags[] = {
{ 0x0008, 0x0001, RET, 0,	"Length to End"},
{ 0x0008, 0x0005, CS, -1,	"Specific Character Set"},
{ 0x0008, 0x0008, CS, -1,	"Image Type"},
{ 0x0008, 0x0010, RET, 0,	"Recognition Code"},
{ 0x0008, 0x0012, DA, 1,	"Instance Creation Date"},
{ 0x0008, 0x0013, TM, 1,	"Instance Creation Time"},
{ 0x0008, 0x0014, UI, 1,	"Instance Creator UID"},
{ 0x0008, 0x0016, UI, 1,	"SOP Class UID"},
{ 0x0008, 0x0018, UI, 1,	"SOP Instance UID"},
{ 0x0008, 0x0020, DA, 1,	"Study Date"},
{ 0x0008, 0x0021, DA, 1,	"Series Date"},
{ 0x0008, 0x0022, DA, 1,	"Acquisition Date"},
{ 0x0008, 0x0023, DA, 1,	"Content Date"},
{ 0x0008, 0x0024, DA, 1,	"Overlay Date"},
{ 0x0008, 0x0025, DA, 1,	"Curve Date"},
{ 0x0008, 0x002A, DT, 1,	"Acquisition Datetime"},
{ 0x0008, 0x0030, TM, 1,	"Study Time"},
{ 0x0008, 0x0031, TM, 1,	"Series Time"},
{ 0x0008, 0x0032, TM, 1,	"Acquisition Time"},
{ 0x0008, 0x0033, TM, 1,	"Content Time"},
{ 0x0008, 0x0034, TM, 1,	"Overlay Time"},
{ 0x0008, 0x0035, TM, 1,	"Curve Time"},
{ 0x0008, 0x0040, RET, 0,	"Data Set Type"},
{ 0x0008, 0x0041, RET, 0,	"Data Set Subtype"},
{ 0x0008, 0x0042, RET, 0,	"Nuclear Medicine Series Type CS 1"},
{ 0x0008, 0x0050, SH, 1,	"Accession Number"},
{ 0x0008, 0x0052, CS, 1,	"Query/Retrieve Level"},
{ 0x0008, 0x0054, AE, -1,	"Retrieve AE Title"},
{ 0x0008, 0x0056, CS, 1,	"Instance Availability"},
{ 0x0008, 0x0058, UI, -1,	"Failed SOP Instance UID List"},
{ 0x0008, 0x0060, CS, 1,	"Modality"},
{ 0x0008, 0x0061, CS, -1,	"Modalities in Study"},
{ 0x0008, 0x0064, CS, 1,	"Conversion Type"},
{ 0x0008, 0x0068, CS, 1,	"Presentation Intent Type"},
{ 0x0008, 0x0070, LO, 1,	"Manufacturer"},
{ 0x0008, 0x0080, LO, 1,	"Institution Name"},
{ 0x0008, 0x0081, ST, 1,	"Institution Address"},
{ 0x0008, 0x0082, SQ, 1,	"Institution Code Sequence"},
{ 0x0008, 0x0090, PN, 1,	"Referring Physician's Name"},
{ 0x0008, 0x0092, ST, 1,	"Referring Physician's Address"},
{ 0x0008, 0x0094, SH, -1,	"Referr`ing Physician's Telephone Numbers"},
{ 0x0008, 0x0100, SH, 1,	"Code Value"},
{ 0x0008, 0x0102, SH, 1,	"Coding Scheme Designator"},
{ 0x0008, 0x0103, SH, 1,	"Coding Scheme Version"},
{ 0x0008, 0x0104, LO, 1,	"Code Meaning"},
{ 0x0008, 0x0105, CS, 1,	"Mapping Resource"},
{ 0x0008, 0x0106, DT, 1,	"Context Group Version"},
{ 0x0008, 0x0107, DT, 1,	"Context Group Local Version"},
{ 0x0008, 0x010B, CS, 1,	"Code Set Extension Flag"},
{ 0x0008, 0x010C, UI, 1,	"Private Coding Scheme Creator UID"},
{ 0x0008, 0x010D, UI, 1,	"Code Set Extension Creator UID"},
{ 0x0008, 0x010F, CS, 1,	"Context Identifier"},
{ 0x0008, 0x0201, SH, 1,	"Timezone Offset From UTC"},
{ 0x0008, 0x1000, RET, 0,	"Network ID"},
{ 0x0008, 0x1010, SH, 1,	"Station Name"},
{ 0x0008, 0x1030, LO, 1,	"Study Description"},
{ 0x0008, 0x1032, SQ, 1,	"Procedure Code Sequence"},
{ 0x0008, 0x103E, LO, 1,	"Series Description"},
{ 0x0008, 0x1040, LO, 1,	"Institutional Department Name"},
{ 0x0008, 0x1048, PN, -1,	"Physician(s) of Record"},
{ 0x0008, 0x1050, PN, -1,	"Performing Physician's Name"},
{ 0x0008, 0x1060, PN, -1,	"Name of Physican(s) Reading Study"},
{ 0x0008, 0x1070, PN, -1,	"Operators' Name"},
{ 0x0008, 0x1080, LO, -1,	"Admitting Diagnoses Description"},
{ 0x0008, 0x1084, SQ, 1,	"Admitting Diagnosis Code Sequence"},
{ 0x0008, 0x1090, LO, 1,	"Manufacturer's Model Name"},
{ 0x0008, 0x1100, SQ, 1,	"Referenced Results Sequence"},
{ 0x0008, 0x1110, SQ, 1,	"Referenced Study Sequence"},
{ 0x0008, 0x1111, SQ, 1,	"Referenced Study Component Sequence"},
{ 0x0008, 0x1115, SQ, 1,	"Referenced Series Sequence"},
{ 0x0008, 0x1120, SQ, 1,	"Referenced Patient Sequence"},
{ 0x0008, 0x1125, SQ, 1,	"Referenced Visit Sequence"},
{ 0x0008, 0x1130, SQ, 1,	"Referenced Overlay Sequence"},
{ 0x0008, 0x1140, SQ, 1,	"Referenced Image Sequence"},
{ 0x0008, 0x1145, SQ, 1,	"Referenced Curve Sequence"},
{ 0x0008, 0x1150, UI, 1,	"Referenced SOP Class UID"},
{ 0x0008, 0x1155, UI, 1,	"Referenced SOP Instance UID"},
{ 0x0008, 0x115A, UI, -1,	"SOP Classes Supported"},
{ 0x0008, 0x1160, IS, -1,	"Referenced Frame Number"},
{ 0x0008, 0x1195, UI, 1,	"Transaction UID"},
{ 0x0008, 0x1197, US, 1,	"Failure Reason"},
{ 0x0008, 0x1198, SQ, 1,	"Failed SOP Sequence"},
{ 0x0008, 0x1199, SQ, 1,	"Referenced SOP Sequence"},
{ 0x0008, 0x2110, RET, 0,	"Lossy Image Compression CS 1"},
{ 0x0008, 0x2111, ST, 1,	"Derivation Description"},
{ 0x0008, 0x2112, SQ, 1,	"Source Image Sequence"},
{ 0x0008, 0x2120, SH, 1,	"Stage Name"},
{ 0x0008, 0x2122, IS, 1,	"Stage Number"},
{ 0x0008, 0x2124, IS, 1,	"Number of Stages"},
{ 0x0008, 0x2128, IS, 1,	"View Number"},
{ 0x0008, 0x2129, IS, 1,	"Number of Event Timers"},
{ 0x0008, 0x212A, IS, 1,	"Number of Views in Stage"},
{ 0x0008, 0x2130, IS, 1,    "Event Elapsed Time(s)"},
{ 0x0008, 0x2132, IS, 1,	"Event Timer Name(s)"},
{ 0x0008, 0x2142, IS, 1,	"Start Trim"},
{ 0x0008, 0x2143, IS, 1,	"Stop Trim"},
{ 0x0008, 0x2144, IS, 1,	"Recommended Display Frame Rate"},
{ 0x0008, 0x2200, RET, 0,	"Transducer Position CS 1"},
{ 0x0008, 0x2204, RET, 0,	"Transducer Orientation CS 1"},
{ 0x0008, 0x2208, RET, 0,	"Anatomic Structure CS 1"},
{ 0x0008, 0x2218, SQ, 1,	"Anatomic Region Sequence"},
{ 0x0008, 0x2220, SQ, 1,	"Anatomic Region Modifier Sequence"},
{ 0x0008, 0x2228, SQ, 1,	"Primary Anatomic Structure Sequence"},
{ 0x0008, 0x2229, SQ, 1,	"Anatomic Structure Space or Region Sequence"},
{ 0x0008, 0x2230, SQ, 1,	"Primary Anatomic Structure Modifier Sequence"},
{ 0x0008, 0x2240, SQ, 1,	"Transducer Position Sequence"},
{ 0x0008, 0x2242, SQ, 1,	"Transducer Position Modifier Sequence"},
{ 0x0008, 0x2244, SQ, 1,	"Transducer Orientation Sequence"},
{ 0x0008, 0x2246, SQ, 1,	"Transducer Orientation Modifier Sequence"},
{ 0x0008, 0x4000, RET, 0,	"Comments"},
{ 0x0010, 0x0010, PN, 1,	"Patient's Name"},
{ 0x0010, 0x0020, LO, 1,	"Patient ID"},
{ 0x0010, 0x0021, LO, 1,	"Issuer of Patient ID"},
{ 0x0010, 0x0030, DA, 1,	"Patient's Birth Date"},
{ 0x0010, 0x0032, TM, 1,	"Patient's Birth Time"},
{ 0x0010, 0x0040, CS, 1,	"Patient's Sex"},
{ 0x0010, 0x0050, SQ, 1,	"Patient's Insurance Plan Code Sequence"},
{ 0x0010, 0x1000, LO, 1,	"Other Patient IDs"},
{ 0x0010, 0x1001, PN, -1,	"Other Patient Names"},
{ 0x0010, 0x1005, PN, 1,	"Patient's Birth Name"},
{ 0x0010, 0x1010, AS, 1,	"Patient's Age"},
{ 0x0010, 0x1020, DS, 1,	"Patient's Size"},
{ 0x0010, 0x1030, DS, 1,	"Patient's Weight"},
{ 0x0010, 0x1040, LO, 1,	"Patient's Address"},
{ 0x0010, 0x1050, RET, 0,	"Insurance Plan Identification"},
{ 0x0010, 0x1060, PN, 1,	"Patient's Mother's Birth Name"},
{ 0x0010, 0x1080, LO, 1,	"Military Rank"},
{ 0x0010, 0x1081, LO, 1,	"Branch of Service"},
{ 0x0010, 0x1090, LO, 1,	"Medical Record Locator"},
{ 0x0010, 0x2000, LO, -1,	"Medical Alerts"},
{ 0x0010, 0x2110, LO, -1,	"Contrast Allergies"},
{ 0x0010, 0x2150, LO, 1,	"Country of Residence"},
{ 0x0010, 0x2152, LO, 1,	"Region of Residence"},
{ 0x0010, 0x2154, SH, -1,	"Patient's Telephone Numbers"},
{ 0x0010, 0x2160, SH, 1,	"Ethnic Group"},
{ 0x0010, 0x2180, SH, 1,	"Occupation"},
{ 0x0010, 0x21A0, CS, 1,	"Smoking Status"},
{ 0x0010, 0x21B0, LT, 1,	"Additional Patient History"},
{ 0x0010, 0x21C0, US, 1,	"Pregnancy Status"},
{ 0x0010, 0x21D0, DA, 1,	"Last Menstrual Date"},
{ 0x0010, 0x21F0, LO, 1,	"Patient's Religious Preference"},
{ 0x0010, 0x4000, LT, 1,	"Patient Comments"},
{ 0x0018, 0x0010, LO, 1,	"Contrast/Bolus Agent"},
{ 0x0018, 0x0012, SQ, 1,	"Contrast/Bolus Agent Sequence"},
{ 0x0018, 0x0014, SQ, 1,	"Contrast/Bolus Administration Route Sequence"},
{ 0x0018, 0x0015, CS, 1,	"Body Part Examined"},
{ 0x0018, 0x0020, CS, 1,	"Scanning Sequence"},
{ 0x0018, 0x0021, CS, -1,	"Sequence Variant"},
{ 0x0018, 0x0022, CS, -1,	"Scan Options"},
{ 0x0018, 0x0023, CS, 1,	"MR Acquisition Type"},
{ 0x0018, 0x0024, SH, 1,	"Sequence Name"},
{ 0x0018, 0x0025, CS, 1,	"Angio Flag"},
{ 0x0018, 0x0026, SQ, 1,	"Intervention Drug Information Sequence"},
{ 0x0018, 0x0027, TM, 1,	"Intervention Drug Stop Time"},
{ 0x0018, 0x0028, DS, 1,	"Intervention Drug Dose"},
{ 0x0018, 0x0029, SQ, 1,	"Intervention Drug Code Sequence"},
{ 0x0018, 0x002A, SQ, 1,	"Additional Drug Sequence"},
{ 0x0018, 0x0030, RET, 0,	"Radionuclide LO 1-n"},
{ 0x0018, 0x0031, LO, 1,	"Radiopharmaceutical"},
{ 0x0018, 0x0032, RET, 0,	"Energy Window Centerline DS 1"},
{ 0x0018, 0x0033, RET, 0,	"Energy Window Total Width DS 1-n"},
{ 0x0018, 0x0034, LO, 1,	"Intervention Drug Name"},
{ 0x0018, 0x0035, TM, 1,	"Intervention Drug Start Time"},
{ 0x0018, 0x0036, SQ, 1,	"Interventional Therapy Sequence"},
{ 0x0018, 0x0037, CS, 1,	"Therapy Type"},
{ 0x0018, 0x0038, CS, 1,	"Interventional Status"},
{ 0x0018, 0x0039, CS, 1,	"Therapy Description"},
{ 0x0018, 0x0040, IS, 1,	"Cine Rate"},
{ 0x0018, 0x0050, DS, 1,	"Slice Thickness"},
{ 0x0018, 0x0060, DS, 1,	"KVP"},
{ 0x0018, 0x0070, IS, 1,	"Counts Accumulated"},
{ 0x0018, 0x0071, CS, 1,	"Acquisition Termination Condition"},
{ 0x0018, 0x0072, DS, 1,	"Effective Series Duration"},
{ 0x0018, 0x0073, CS, 1,	"Acquisition Start Condition"},
{ 0x0018, 0x0074, IS, 1,	"Acquisition Start Condition Data"},
{ 0x0018, 0x0075, IS, 1,	"Acquisition Termination Condition Data"},
{ 0x0018, 0x0080, DS, 1,	"Repetition Time"},
{ 0x0018, 0x0081, DS, 1,	"Echo Time"},
{ 0x0018, 0x0082, DS, 1,	"Inversion Time"},
{ 0x0018, 0x0083, DS, 1,	"Number of Averages"},
{ 0x0018, 0x0084, DS, 1,	"Imaging Frequency"},
{ 0x0018, 0x0085, SH, 1,	"Imaged Nucleus"},
{ 0x0018, 0x0086, IS, -1,	"Echo Number(s)"},
{ 0x0018, 0x0087, DS, 1,	"Magnetic Field Strength"},
{ 0x0018, 0x0088, DS, 1,	"Spacing Between Slices"},
{ 0x0018, 0x0089, IS, 1,	"Number of Phase Encoding Steps"},
{ 0x0018, 0x0090, DS, 1,	"Data Collection Diameter"},
{ 0x0018, 0x0091, IS, 1,	"Echo Train Length"},
{ 0x0018, 0x0093, DS, 1,	"Percent Sampling"},
{ 0x0018, 0x0094, DS, 1,	"Percent Phase Field of View"},
{ 0x0018, 0x0095, DS, 1,	"Pixel Bandwidth"},
{ 0x0018, 0x1000, LO, 1,	"Device Serial Number"},
{ 0x0018, 0x1004, LO, 1,	"Plate ID"},
{ 0x0018, 0x1010, LO, 1,	"Secondary Capture Device ID"},
{ 0x0018, 0x1011, LO, 1,	"Hardcopy Creation Device ID"},
{ 0x0018, 0x1012, DA, 1,	"Date of Secondary Capture"},
{ 0x0018, 0x1014, TM, 1,	"Time of Secondary Capture"},
{ 0x0018, 0x1016, LO, 1,	"Secondary Capture Device Manufacturer"},
{ 0x0018, 0x1017, LO, 1,	"Hardcopy Device Manufacturer"},
{ 0x0018, 0x1018, LO, 1, "Secondary Capture Device Manufacturer's Model Name"},
{ 0x0018, 0x1019, LO, -1,	"Secondary Capture Device Software Version(s)"},
{ 0x0018, 0x101A, LO, -1,	"Hardcopy Device Software Version"},
{ 0x0018, 0x101B, LO, 1,	"Hardcopy Device Manfuacturer's Model Name"},
{ 0x0018, 0x1020, LO, -1,	"Software Version(s)"},
{ 0x0018, 0x1022, SH, 1,	"Video Image Format Acquired"},
{ 0x0018, 0x1023, LO, 1,	"Digital Image Format Acquired"},
{ 0x0018, 0x1030, LO, 1,	"Protocol Name"},
{ 0x0018, 0x1040, LO, 1,	"Contrast/Bolus Route"},
{ 0x0018, 0x1041, DS, 1,	"Contrast/Bolus Volume"},
{ 0x0018, 0x1042, TM, 1,	"Contrast/Bolus Start Time"},
{ 0x0018, 0x1043, TM, 1,	"Contrast/Bolus Stop Time"},
{ 0x0018, 0x1044, DS, 1,	"Contrast/Bolus Total Dose"},
{ 0x0018, 0x1045, IS, 1,	"Syringe Counts"},
{ 0x0018, 0x1046, DS, -1, 	"Contrast Flow Rate(s)"},
{ 0x0018, 0x1047, DS, -1,	"Contrast Flow Duration(s)"},
{ 0x0018, 0x1048, CS, 1,	"Contrast/Bolus Ingredient"},
{ 0x0018, 0x1049, DS, 1,	"Contrast/Bolus Ingredient Concentration"},
{ 0x0018, 0x1050, DS, 1,	"Spatial Resolution"},
{ 0x0018, 0x1060, DS, 1,	"Trigger Time"},
{ 0x0018, 0x1061, LO, 1,	"Trigger Source or Type"},
{ 0x0018, 0x1062, IS, 1,	"Nominal Interval"},
{ 0x0018, 0x1063, DS, 1,	"Frame Time"},
{ 0x0018, 0x1064, LO, 1,	"Framing Type"},
{ 0x0018, 0x1065, DS, -1,	"Frame Time Vector"},
{ 0x0018, 0x1066, DS, 1,	"Frame Delay"},
{ 0x0018, 0x1067, DS, 1,	"Image Trigger Delay"},
{ 0x0018, 0x1068, DS, 1,	"Multiplex Group Time Offset"},
{ 0x0018, 0x1069, DS, 1,	"Trigger Time Offset"},
{ 0x0018, 0x106A, CS, 1,	"Synchronization Trigger"},
{ 0x0018, 0x106C, US, 2,	"Synchronization Channel"},
{ 0x0018, 0x106E, UL, 1,	"Trigger Sample Position"},
{ 0x0018, 0x1070, LO, 1,	"Radiopharmaceutical Route"},
{ 0x0018, 0x1071, DS, 1,	"Radiopharmaceutical Volume"},
{ 0x0018, 0x1072, TM, 1,	"Radiopharmaceutical Start Time"},
{ 0x0018, 0x1073, TM, 1,	"Radiopharmaceutical Stop Time"},
{ 0x0018, 0x1074, DS, 1,	"Radionuclide Total Dose"},
{ 0x0018, 0x1075, DS, 1,	"Radionuclide Half Life"},
{ 0x0018, 0x1076, DS, 1,	"Radionuclide Positron Fraction"},
{ 0x0018, 0x1077, DS, 1,	"Radiopharmaceutical Specific Activity"},
{ 0x0018, 0x1080, CS, 1,	"Beat Rejection Flag"},
{ 0x0018, 0x1081, IS, 1,	"Low R-R Value"},
{ 0x0018, 0x1082, IS, 1,	"High R-R Value"},
{ 0x0018, 0x1083, IS, 1,	"Intervals Acquired"},
{ 0x0018, 0x1084, IS, 1,	"Intervals Rejected"},
{ 0x0018, 0x1085, LO, 1,	"PVC Rejection"},
{ 0x0018, 0x1086, IS, 1,	"Skip Beats"},
{ 0x0018, 0x1088, IS, 1,	"Heart Rate"},
{ 0x0018, 0x1090, IS, 1,	"Cardiac Number of Images"},
{ 0x0018, 0x1094, IS, 1,	"Trigger Window"},
{ 0x0018, 0x1100, DS, 1,	"Reconstruction Diameter"},
{ 0x0018, 0x1110, DS, 1,	"Distance Source to Detector"},
{ 0x0018, 0x1111, DS, 1,	"Distance Source to Patient"},
{ 0x0018, 0x1114, DS, 1,	"Estimated Radiographic Magnification Factor"},
{ 0x0018, 0x1120, DS, 1,	"Gantry/Detector Tilt"},
{ 0x0018, 0x1121, DS, 1,	"Gantry/Detector Slew"},
{ 0x0018, 0x1130, DS, 1,	"Table Height"},
{ 0x0018, 0x1131, DS, 1,	"Table Traverse"},
{ 0x0018, 0x1134, CS, 1,	"Table Motion"},
{ 0x0018, 0x1135, DS, -1,	"Table Vertical Increment"},
{ 0x0018, 0x1136, DS, -1,	"Table Lateral Increment"},
{ 0x0018, 0x1137, DS, -1,	"Table Longitudinal Increment"},
{ 0x0018, 0x1138, DS, 1,	"Table Angle"},
{ 0x0018, 0x113A, CS, 1,	"Table Type"},
{ 0x0018, 0x1140, CS, 1,	"Rotation Direction"},
{ 0x0018, 0x1141, DS, 1,	"Angular Position"},
{ 0x0018, 0x1142, DS, -1,	"Radial Position"},
{ 0x0018, 0x1143, DS, 1,	"Scan Arc"},
{ 0x0018, 0x1144, DS, 1,	"Angular Step"},
{ 0x0018, 0x1145, DS, 1,	"Center of Rotation Offset"},
{ 0x0018, 0x1146, RET, 0,	"Rotation Offset DS 1-n"},
{ 0x0018, 0x1147, CS, 1,	"Field of View Shape"},
{ 0x0018, 0x1149, IS, 2,	"Field of View Dimension(s)"},
{ 0x0018, 0x1150, IS, 1,	"Exposure Time"},
{ 0x0018, 0x1151, IS, 1,	"X-ray Tube Current"},
{ 0x0018, 0x1152, IS, 1,	"Exposure"},
{ 0x0018, 0x1153, IS, 1,	"Exposure in uAs"},
{ 0x0018, 0x1154, DS, 1,	"Average Pulse Width"},
{ 0x0018, 0x1155, CS, 1,	"Radiation Setting"},
{ 0x0018, 0x1156, CS, 1,	"Rectification Type"},
{ 0x0018, 0x115A, CS, 1,	"Radiation Mode"},
{ 0x0018, 0x115E, DS, 1,	"Image Area Dose Product"},
{ 0x0018, 0x1160, SH, 1,	"Filter Type"},
{ 0x0018, 0x1161, LO, -1,	"Type of Filters"},
{ 0x0018, 0x1162, DS, 1,	"Intensifier Size"},
{ 0x0018, 0x1164, DS, 2,	"Imager Pixel Spacing"},
{ 0x0018, 0x1166, CS, 1,	"Grid"},
{ 0x0018, 0x1170, IS, 1,	"Generator Power"},
{ 0x0018, 0x1180, SH, 1,	"Collimator/grid Name"},
{ 0x0018, 0x1181, CS, 1,	"Collimator Type"},
{ 0x0018, 0x1182, IS, 2,	"Focal Distance"},
{ 0x0018, 0x1183, DS, 2,	"X Focus Center"},
{ 0x0018, 0x1184, DS, -2,	"Y Focus Center"},
{ 0x0018, 0x1190, DS, -1,   "Focal Spot(s)"},
{ 0x0018, 0x1191, CS, 1,	"Anode Target Material"},
{ 0x0018, 0x11A0, DS, 1,	"Body Part Thickness"},
{ 0x0018, 0x11A2, DS, 1,	"Compression Force"},
{ 0x0018, 0x1200, DA, -1,	"Date of Last Calibration"},
{ 0x0018, 0x1201, TM, -1,	"Time of Last Calibration"},
{ 0x0018, 0x1210, SH, -1,	"Convolution Kernel"},
{ 0x0018, 0x1240, RET, 0,	"Upper/Lower Pixel Values"},
{ 0x0018, 0x1242, IS, 1,	"Actual Frame Duration"},
{ 0x0018, 0x1243, IS, 1,	"Count Rate"},
{ 0x0018, 0x1244, US, 1,	"Preferred Playback Sequencing"},
{ 0x0018, 0x1250, SH, 1,	"Receiving Coil"},
{ 0x0018, 0x1251, SH, 1,	"Transmitting Coil"},
{ 0x0018, 0x1260, SH, 1,	"Plate Type"},
{ 0x0018, 0x1261, LO, 1,	"Phosphor Type"},
{ 0x0018, 0x1300, DS, 1,	"Scan Velocity"},
{ 0x0018, 0x1301, CS, -1,	"Whole Body Technique"},
{ 0x0018, 0x1302, IS, 1,	"Scan Length"},
{ 0x0018, 0x1310, US, 4,	"Acquisition Matrix"},
{ 0x0018, 0x1312, CS, 1,	"Phase Encoding Direction"},
{ 0x0018, 0x1314, DS, 1,	"Flip Angle"},
{ 0x0018, 0x1315, CS, 1,	"Variable Flip Angle Flag"},
{ 0x0018, 0x1316, DS, 1,	"SAR"},
{ 0x0018, 0x1318, DS, 1,	"dB/dt"},
{ 0x0018, 0x1400, LO, 1,	"Acquisition Device Processing Description"},
{ 0x0018, 0x1401, LO, 1,	"Acquisition Device Processing Code"},
{ 0x0018, 0x1402, CS, 1,	"Cassette Orientation"},
{ 0x0018, 0x1403, CS, 1,	"Cassette Size"},
{ 0x0018, 0x1404, US, 1,	"Exposures on Plate"},
{ 0x0018, 0x1405, IS, 1,	"Relative X-ray Exposure"},
{ 0x0018, 0x1450, CS, 1,	"Column Angulation"},
{ 0x0018, 0x1460, DS, 1,	"Tomo Layer Height"},
{ 0x0018, 0x1470, DS, 1,	"Tomo Angle"},
{ 0x0018, 0x1480, DS, 1,	"Tomo Time"},
{ 0x0018, 0x1490, CS, 1,	"Tomo Type"},
{ 0x0018, 0x1491, CS, 1,	"Tomo Class"},
{ 0x0018, 0x1495, IS, 1,	"Number of Tomosynthesis Source Images"},
{ 0x0018, 0x1500, CS, 1,	"Positioner Motion"},
{ 0x0018, 0x1508, CS, 1,	"Positioner Type"},
{ 0x0018, 0x1510, DS, 1,	"Positioner Primary Angle"},
{ 0x0018, 0x1511, DS, 1,	"Positioner Secondary Angle"},
{ 0x0018, 0x1520, DS, -1,	"Positioner Primary Angle Increment"},
{ 0x0018, 0x1521, DS, -1,	"Positioner Secondary Angle Increment"},
{ 0x0018, 0x1530, DS, 1,	"Detector Primary Angle"},
{ 0x0018, 0x1531, DS, 1,	"Detector Secondary Angle"},
{ 0x0018, 0x1600, CS, 3,	"Shutter Shape"},
{ 0x0018, 0x1602, IS, 1,	"Shutter Left Vertical Edge"},
{ 0x0018, 0x1604, IS, 1,	"Shutter Right Vertical Edge"},
{ 0x0018, 0x1606, IS, 1,	"Shutter Upper Horizontal Edge"},
{ 0x0018, 0x1608, IS, 1,	"Shutter Lower Horizontal Edge"},
{ 0x0018, 0x1610, IS, 2,	"Center of Circular Shutter"},
{ 0x0018, 0x1612, IS, 1,	"Radius of Circular Shutter"},
{ 0x0018, 0x1620, IS, -2,	"Vertices of the Polygonal Shutter"},
{ 0x0018, 0x1622, US, 1,	"Shutter Presentation Value"},
{ 0x0018, 0x1623, US, 1,	"Shutter Overlay Group"},
{ 0x0018, 0x1700, CS, -3,	"Collimator Shape"},
{ 0x0018, 0x1702, IS, 1,	"Collimator Left Vertical Edge"},
{ 0x0018, 0x1704, IS, 1,	"Collimator Right Vertical Edge"},
{ 0x0018, 0x1706, IS, 1,	"Collimator Upper Horizontal Edge"},
{ 0x0018, 0x1708, IS, 1,	"Collimator Lower Horizontal Edge"},
{ 0x0018, 0x1710, IS, 2,	"Center of Circular Collimator"},
{ 0x0018, 0x1712, IS, 1,	"Radius of Circular Collimator"},
{ 0x0018, 0x1720, IS, -2,	"Vertices of the Polygonal Collimator"},
{ 0x0018, 0x1800, CS, 1,	"Acquisition Time Synchronized"},
{ 0x0018, 0x1802, CS, 1,	"Time Distribution Protocol"},
{ 0x0018, 0x1801, SH, 1,	"Time Source"},
{ 0x0018, 0x4000, RET, 0,	"Comments"},
{ 0x0018, 0x5000, SH, -1,	"Output Power"},
{ 0x0018, 0x5010, LO, 3,	"Transducer Data"},
{ 0x0018, 0x5012, DS, 1,	"Focus Depth"},
{ 0x0018, 0x5020, LO, 1,	"Processing Function"},
{ 0x0018, 0x5021, LO, 1,	"Postprocessing Function"},
{ 0x0018, 0x5022, DS, 1,	"Mechanical Index"},
{ 0x0018, 0x5024, DS, 1,	"Thermal Index"},
{ 0x0018, 0x5026, DS, 1,	"Cranial Thermal Index"},
{ 0x0018, 0x5027, DS, 1,	"Soft Tissue Thermal Index"},
{ 0x0018, 0x5028, DS, 1,	"Soft Tissue-focus Thermal Index"},
{ 0x0018, 0x5029, DS, 1,	"Soft Tissue-surface Thermal Index"},
{ 0x0018, 0x5030, RET, 0,	"Dynamic Range"},
{ 0x0018, 0x5040, RET, 0,	"Total Gain"},
{ 0x0018, 0x5050, IS, 1,	"Depth of Scan Field"},
{ 0x0018, 0x5100, CS, 1,	"Patient Position"},
{ 0x0018, 0x5101, CS, 1,	"View Position"},
{ 0x0018, 0x5104, SQ, 1,	"Projection Eponymous Name Code Sequence"},
{ 0x0018, 0x5210, DS, 6,	"Image Transformation Matrix"},
{ 0x0018, 0x5212, DS, 3,	"Image Translation Vector"},
{ 0x0018, 0x6000, DS, 1,	"Sensitivity"},
{ 0x0018, 0x6011, SQ, 1,	"Sequence of Ultrasound Regions"},
{ 0x0018, 0x6012, US, 1,	"Region Spatial Format"},
{ 0x0018, 0x6014, US, 1,	"Region Data Type"},
{ 0x0018, 0x6016, UL, 1,	"Region Flags"},
{ 0x0018, 0x6018, UL, 1,	"Region Location Min X0"},
{ 0x0018, 0x601A, UL, 1,	"Region Location Min Y0"},
{ 0x0018, 0x601C, UL, 1,	"Region Location Max X1"},
{ 0x0018, 0x601E, UL, 1,	"Region Location Max Y1"},
{ 0x0018, 0x6020, SL, 1,	"Reference Pixel X0"},
{ 0x0018, 0x6022, SL, 1,	"Reference Pixel Y0"},
{ 0x0018, 0x6024, US, 1,	"Physical Units X Direction"},
{ 0x0018, 0x6026, US, 1,	"Physical Units Y Direction"},
{ 0x0018, 0x6028, FD, 1,	"Reference Pixel Physical Value X"},
{ 0x0018, 0x602A, FD, 1,	"Reference Pixel Physical Value Y"},
{ 0x0018, 0x602C, FD, 1,	"Physical Delta"},
{ 0x0018, 0x602E, FD, 1,	"Physical Delta Y"},
{ 0x0018, 0x6030, UL, 1,	"Transducer Frequency"},
{ 0x0018, 0x6031, CS, 1,	"Transducer Type"},
{ 0x0018, 0x6032, UL, 1,	"Pulse Repetition Frequency"},
{ 0x0018, 0x6034, FD, 1,	"Doppler Correction Angle"},
{ 0x0018, 0x6036, FD, 1,	"Steering Angle"},
{ 0x0018, 0x6038, UL, 1,	"Doppler Sample Volume X Position"},
{ 0x0018, 0x603A, UL, 1,	"Doppler Sample Volume Y Position"},
{ 0x0018, 0x603C, UL, 1,	"TM-Line Position X0"},
{ 0x0018, 0x603E, UL, 1,	"TM-Line Position Y0"},
{ 0x0018, 0x6040, UL, 1,	"TM-Line Position X1"},
{ 0x0018, 0x6042, UL, 1,	"TM-Line Position Y1"},
{ 0x0018, 0x6044, US, 1,	"Pixel Component Organization"},
{ 0x0018, 0x6046, UL, 1,	"Pixel Component Mask"},
{ 0x0018, 0x6048, UL, 1,	"Pixel Component Range Start"},
{ 0x0018, 0x604A, UL, 1,	"Pixel Component Range Stop"},
{ 0x0018, 0x604C, US, 1,	"Pixel Component Physical Units"},
{ 0x0018, 0x604E, US, 1,	"Pixel Component Data Type"},
{ 0x0018, 0x6050, UL, 1,	"Number of Table Break Points"},
{ 0x0018, 0x6052, UL, -1,	"Table of X Break Points"},
{ 0x0018, 0x6054, FD, -1,	"Table of Y Break Points"},
{ 0x0018, 0x6056, UL, 1,	"Number of Table Entries"},
{ 0x0018, 0x6058, UL, -1,	"Table of Pixel Values"},
{ 0x0018, 0x605A, FL, -1,	"Table of Parameter Values"},
{ 0x0018, 0x7000, CS, 1,	"Detector Conditions Nominal Flag"},
{ 0x0018, 0x7001, DS, 1,	"Detector Temperature"},
{ 0x0018, 0x7004, CS, 1,	"Detector Type"},
{ 0x0018, 0x7005, CS, 1,	"Detector Configuration"},
{ 0x0018, 0x7006, LT, 1,	"Detector Description"},
{ 0x0018, 0x7008, LT, 1,	"Detector Mode"},
{ 0x0018, 0x700A, SH, 1,	"Detector ID"},
{ 0x0018, 0x700C, DA, 1,	"Date of Last Detector Calibration"},
{ 0x0018, 0x700E, TM, 1,	"Time of Last Detector Calibration"},
{ 0x0018, 0x7010, IS, 1,	"Exposures on Detector Since Last Calibration"},
{ 0x0018, 0x7011, IS, 1,	"Exposures on Detector Since Manufactured"},
{ 0x0018, 0x7012, DS, 1,	"Detector Time Since Last Exposure"},
{ 0x0018, 0x7014, DS, 1,	"Detector Active Time"},
{ 0x0018, 0x7016, DS, 1,	"Detector Activation Offset From Exposure"},
{ 0x0018, 0x701A, DS, 2,	"Detector Binning"},
{ 0x0018, 0x7020, DS, 2,	"Detector Element Physical Size"},
{ 0x0018, 0x7022, DS, 2,	"Detector Element Spacing"},
{ 0x0018, 0x7024, CS, 1,	"Detector Active Shape"},
{ 0x0018, 0x7026, DS, 2,	"Detector Active Dimension(s)"},
{ 0x0018, 0x7028, DS, 2,	"Detector Active Origin"},
{ 0x0018, 0x7030, DS, 2,	"Field of View Origin"},
{ 0x0018, 0x7032, DS, 1,	"Field of View Rotation"},
{ 0x0018, 0x7034, CS, 1,	"Field of View Horizontal Flip"},
{ 0x0018, 0x7040, LT, 1,	"Grid Absorbing Material"},
{ 0x0018, 0x7041, LT, 1,	"Grid Spacing Material"},
{ 0x0018, 0x7042, DS, 1,	"Grid Thickness"},
{ 0x0018, 0x7044, DS, 1,	"Grid Pitch"},
{ 0x0018, 0x7046, IS, 2,	"Grid Aspect Ratio"},
{ 0x0018, 0x7048, DS, 1,	"Grid Period"},
{ 0x0018, 0x704C, DS, 1,	"Grid Focal Distance"},
{ 0x0018, 0x7050, CS, -1,	"Filter Material"},
{ 0x0018, 0x7052, DS, -1,	"Filter Thickness Minimum"},
{ 0x0018, 0x7054, DS, -1,	"Filter Thickness Maximum"},
{ 0x0018, 0x7060, CS, 1,	"Exposure Control Mode"},
{ 0x0018, 0x7062, LT, 1,	"Exposure Control Mode Description"},
{ 0x0018, 0x7064, CS, 1,	"Exposure Status"},
{ 0x0018, 0x7065, DS, 1,	"Phototimer Setting"},
{ 0x0018, 0x8150, DS, 1,	"Exposure Time in uS"},
{ 0x0018, 0x8151, DS, 1,	"X-Ray Tube Current in uA"},
{ 0x0020, 0x000D, UI, 1,	"Study Instance UID"},
{ 0x0020, 0x000E, UI, 1,	"Series Instance UID"},
{ 0x0020, 0x0010, SH, 1,	"Study ID"},
{ 0x0020, 0x0011, IS, 1,	"Series Number"},
{ 0x0020, 0x0012, IS, 1,	"Acquisition Number"},
{ 0x0020, 0x0013, IS, 1,	"Instance Number"},
{ 0x0020, 0x0014, RET, 0,	"Isotope Number IS 1"},
{ 0x0020, 0x0015, RET, 0,	"Phase Number IS 1"},
{ 0x0020, 0x0016, RET, 0,	"Interval Number IS 1"},
{ 0x0020, 0x0017, RET, 0,	"Time Slot Number IS 1"},
{ 0x0020, 0x0018, RET, 0,	"Angle Number IS 1"},
{ 0x0020, 0x0019, IS, 1,	"Item Number"},
{ 0x0020, 0x0020, CS, 2,	"Patient Orientation"},
{ 0x0020, 0x0022, IS, 1,	"Overlay Number"},
{ 0x0020, 0x0024, IS, 1,	"Curve Number"},
{ 0x0020, 0x0026, IS, 1,	"Lookup Table Number"},
{ 0x0020, 0x0030, RET, 0,	"Image Position"},
{ 0x0020, 0x0032, DS, 3,	"Image Position (Patient)"},
{ 0x0020, 0x0035, RET, 0,	"Image Orientation"},
{ 0x0020, 0x0037, DS, 6, 	"Image Orientation (Patient)"},
{ 0x0020, 0x0050, RET, 0,	"Location"},
{ 0x0020, 0x0052, UI, 1,	"Frame of Reference UID"},
{ 0x0020, 0x0060, CS, 1,	"Laterality"},
{ 0x0020, 0x0062, CS, 1,	"Image Laterality"},
{ 0x0020, 0x0070, RET, 0,	"Image Geometry Type"},
{ 0x0020, 0x0080, RET, 0,	"Masking Image"},
{ 0x0020, 0x0100, IS, 1,	"Temporal Position Identifier"},
{ 0x0020, 0x0105, IS, 1,	"Number of Temporal Positions"},
{ 0x0020, 0x0110, DS, 1,	"Temporal Resolution"},
{ 0x0020, 0x0200, UI, 1,	"Synchronization Frame of Reference UID"},
{ 0x0020, 0x1000, IS, 1,	"Series in Study"},
{ 0x0020, 0x1001, RET, 0,	"Acquisitions in Series"},
{ 0x0020, 0x1002, IS, 1,	"Images in Acquisition"},
{ 0x0020, 0x1004, IS, 1,	"Acquisitions in Study"},
{ 0x0020, 0x1020, RET, 0,	"Reference"},
{ 0x0020, 0x1040, LO, 1,	"Position Reference Indicator"},
{ 0x0020, 0x1041, DS, 1,	"Slice Location"},
{ 0x0020, 0x1070, IS, -1,	"Other Study Numbers"},
{ 0x0020, 0x1200, IS, 1,	"Number of Patient Related Studies"},
{ 0x0020, 0x1202, IS, 1,	"Number of Patient Related Series"},
{ 0x0020, 0x1204, IS, 1,	"Number of Patient Related Instances"},
{ 0x0020, 0x1206, IS, 1,	"Number of Study Related Series"},
{ 0x0020, 0x1208, IS, 1,	"Number of Study Related Instances"},
{ 0x0020, 0x1209, IS, 1,	"Number of Series Related Instances"},
{ 0x0020, 0x3100, RET, 0,	"Source Image IDs"},
{ 0x0020, 0x3401, RET, 0,	"Modifying Device ID"},
{ 0x0020, 0x3402, RET, 0,	"Modified Image ID"},
{ 0x0020, 0x3403, RET, 0,	"Modified Image Date"},
{ 0x0020, 0x3404, RET, 0,	"Modifying Device Manufacturer"},
{ 0x0020, 0x3405, RET, 0,	"Modified Image Time"},
{ 0x0020, 0x3406, RET, 0,	"Modified Image Description"},
{ 0x0020, 0x4000, LT, 1,	"Image Comments"},
{ 0x0020, 0x5000, RET, 0,	"Original Image Identification"},
{ 0x0020, 0x5002, RET, 0,	"Original Image Identification Nomenclature"},
{ 0x0028, 0x0002, US, 1,	"Samples per Pixel"},
{ 0x0028, 0x0004, CS, 1,	"Photometric Interpretation"},
{ 0x0028, 0x0005, RET, 0,	"Image Dimensions"},
{ 0x0028, 0x0006, US, 1,	"Planar Configuration"},
{ 0x0028, 0x0008, IS, 1,	"Number of Frames"},
{ 0x0028, 0x0009, AT, -1,	"Frame Increment Pointer"},
{ 0x0028, 0x0010, US, 1,	"Rows"},
{ 0x0028, 0x0011, US, 1,	"Columns"},
{ 0x0028, 0x0012, US, 1,	"Planes"},
{ 0x0028, 0x0014, US, 1,	"Ultrasound Color Data Present"},
{ 0x0028, 0x0030, DS, 2,	"Pixel Spacing"},
{ 0x0028, 0x0031, DS, 2,	"Zoom Factor"},
{ 0x0028, 0x0032, DS, 2,	"Zoom Center"},
{ 0x0028, 0x0034, IS, 2,	"Pixel Aspect Ratio"},
{ 0x0028, 0x0040, RET, 0,	"Image Format"},
{ 0x0028, 0x0050, RET, 0,	"Manipulated Image"},
{ 0x0028, 0x0051, CS, -1,	"Corrected Image"},
{ 0x0028, 0x0060, RET, 0,	"Compression Code"},
{ 0x0028, 0x0100, US, 1,	"Bits Allocated"},
{ 0x0028, 0x0101, US, 1,	"Bits Stored"},
{ 0x0028, 0x0102, US, 1,	"High Bit"},
{ 0x0028, 0x0103, US, 1,	"Pixel Representation"},
{ 0x0028, 0x0104, RET, 0,	"Smallest Valid Pixel Value"},
{ 0x0028, 0x0105, RET, 0,	"Largest Valid Pixel Value"},
{ 0x0028, 0x0106, SS, 1,	"Smallest Image Pixel Value US or"},
{ 0x0028, 0x0107, SS, 1,	"Largest Image Pixel Value US or"},
{ 0x0028, 0x0108, SS, 1,	"Smallest Pixel Value in Series US or"},
{ 0x0028, 0x0109, SS, 1,	"Largest Pixel Value in Series US or"},
{ 0x0028, 0x0110, SS, 1,	"Smallest Image Pixel Value in Plane US or"},
{ 0x0028, 0x0111, SS, 1,	"Largest Image Pixel Value in Plane US or"},
{ 0x0028, 0x0120, SS, 1,	"Pixel Padding Value US or"},
{ 0x0028, 0x0200, RET, 0,	"Image Location"},
{ 0x0028, 0x0300, CS, 1,	"Quality Control Image"},
{ 0x0028, 0x0301, CS, 1,	"Burned In Annotation"},
{ 0x0028, 0x1040, CS, 1,	"Pixel Intensity Relationship"},
{ 0x0028, 0x1041, SS, 1,	"Pixel Intensity Relationship Sign"},
{ 0x0028, 0x1050, DS, -1,	"Window Center"},
{ 0x0028, 0x1051, DS, -1,	"Window Width"},
{ 0x0028, 0x1052, DS, 1,	"Rescale Intercept"},
{ 0x0028, 0x1053, DS, 1,	"Rescale Slope"},
{ 0x0028, 0x1054, LO, 1,	"Rescale Type"},
{ 0x0028, 0x1055, LO, -1,	"Window Center & Width Explanation"},
{ 0x0028, 0x1080, RET, 0,	"Gray Scale"},
{ 0x0028, 0x1090, CS, 1,	"Recommended Viewing Mode"},
{ 0x0028, 0x1100, RET, 0,	"Gray Lookup Table Descriptor"},
{ 0x0028, 0x1101, USS, 3,	"Red Palette Color Lookup Table Descriptor"},
{ 0x0028, 0x1102, USS, 3,   "Green Palette Color Lookup Table Descriptor"},
{ 0x0028, 0x1103, USS, 3,	"Blue Palette Color Lookup Table Descriptor"},
{ 0x0028, 0x1199, UI, 1,	"Palette Color Lookup Table UID"},
{ 0x0028, 0x1200, RET, 0,	"Gray Lookup Table Data"},
{ 0x0028, 0x1201, OW, 1,	"Red Palette Color Lookup Table Data"},
{ 0x0028, 0x1202, OW, 1,	"Green Palette Color Lookup Table Data"},
{ 0x0028, 0x1203, OW, 1,	"Blue Palette Color Lookup Table Data"},
{ 0x0028, 0x1221, OW, 1,	"Segmented Red Palette Color Lookup Table Data"},
{ 0x0028, 0x1222, OW, 1,	"Segmented Green Palette Color Lookup Table Data"},
{ 0x0028, 0x1223, OW, 1,	"Segmented Blue Palette Color Lookup Table Data"},
{ 0x0028, 0x1300, CS, 1,	"Implant Present"},
{ 0x0028, 0x1350, CS, 1,	"Partial View"},
{ 0x0028, 0x1351, ST, 1,	"Partial View Description"},
{ 0x0028, 0x2110, CS, 1,	"Lossy Image Compression"},
{ 0x0028, 0x2112, DS, -1,	"Lossy Image Compression Ratio"},
{ 0x0028, 0x3000, SQ, 1,	"Modality LUT Sequence"},
{ 0x0028, 0x3002, SS, 3,	"LUT Descriptor US or"},
{ 0x0028, 0x3003, LO, 1,	"LUT Explanation"},
{ 0x0028, 0x3004, LO, 1,	"Modality LUT Type"},
{ 0x0028, 0x3006, USS, 1,	"LUT Data US or SS or OW"},
{ 0x0028, 0x3010, SQ, 1,	"VOI LUT Sequence"},
{ 0x0028, 0x3110, SQ, 1,	"Softcopy VOI LUT Sequence"},
{ 0x0028, 0x4000, RET, 0,	"Comments"},
{ 0x0028, 0x5000, SQ, 1,	"Bi-Plane Acquisition Sequence"},
{ 0x0028, 0x6010, US, 1,	"Representative Frame Number"},
{ 0x0028, 0x6020, US, -1, 	"Frame Numbers of Interest (FOI)"},
{ 0x0028, 0x6022, LO, -1,	"Frame(s) of Interest Description"},
{ 0x0028, 0x6030, US, -1,	"Mask Pointer(s)"},
{ 0x0028, 0x6040, US, -1,	"R Wave Pointer"},
{ 0x0028, 0x6100, SQ, 1,	"Mask Subtraction Sequence"},
{ 0x0028, 0x6101, CS, 1,	"Mask Operation"},
{ 0x0028, 0x6102, US, -2,	"Applicable Frame Range"},
{ 0x0028, 0x6110, US, -1,	"Mask Frame Numbers"},
{ 0x0028, 0x6112, US, 1,	"Contrast Frame Averaging"},
{ 0x0028, 0x6114, FL, 2,	"Mask Sub-pixel Shift"},
{ 0x0028, 0x6120, SS, 1,	"TID Offset"},
{ 0x0028, 0x6190, ST, 1,	"Mask Operation Explanation"},
{ 0x0032, 0x000A, CS, 1,	"Study Status ID"},
{ 0x0032, 0x000C, CS, 1,	"Study Priority ID"},
{ 0x0032, 0x0012, LO, 1,	"Study ID Issuer"},
{ 0x0032, 0x0032, DA, 1,	"Study Verified Date"},
{ 0x0032, 0x0033, TM, 1,	"Study Verified Time"},
{ 0x0032, 0x0034, DA, 1,	"Study Read Date"},
{ 0x0032, 0x0035, TM, 1,	"Study Read Time"},
{ 0x0032, 0x1000, DA, 1,	"Scheduled Study Start Date"},
{ 0x0032, 0x1001, TM, 1,	"Scheduled Study Start Time"},
{ 0x0032, 0x1010, DA, 1,	"Scheduled Study Stop Date"},
{ 0x0032, 0x1011, TM, 1,	"Scheduled Study Stop Time"},
{ 0x0032, 0x1020, LO, 1,	"Scheduled Study Location"},
{ 0x0032, 0x1021, AE, -1,	"Scheduled Study Location AE Title(s)"},
{ 0x0032, 0x1030, LO, 1,	"Reason for Study"},
{ 0x0032, 0x1032, PN, 1,	"Requesting Physician"},
{ 0x0032, 0x1033, LO, 1,	"Requesting Service"},
{ 0x0032, 0x1040, DA, 1,	"Study Arrival Date"},
{ 0x0032, 0x1041, TM, 1,	"Study Arrival Time"},
{ 0x0032, 0x1050, DA, 1,	"Study Completion Date"},
{ 0x0032, 0x1051, TM, 1,	"Study Completion Time"},
{ 0x0032, 0x1055, CS, 1,	"Study Component Status ID"},
{ 0x0032, 0x1060, LO, 1,	"Requested Procedure Description"},
{ 0x0032, 0x1064, SQ, 1,	"Requested Procedure Code Sequence"},
{ 0x0032, 0x1070, LO, 1,	"Requested Contrast Agent"},
{ 0x0032, 0x4000, LT, 1,	"Study Comments"},
{ 0x0038, 0x0004, SQ, 1,	"Referenced Patient Alias Sequence"},
{ 0x0038, 0x0008, CS, 1,	"Visit Status ID"},
{ 0x0038, 0x0010, LO, 1,	"Admission ID"},
{ 0x0038, 0x0011, LO, 1,	"Issuer of Admission ID"},
{ 0x0038, 0x0016, LO, 1,	"Route of Admissions"},
{ 0x0038, 0x001A, DA, 1,	"Scheduled Admission Date"},
{ 0x0038, 0x001B, TM, 1,	"Scheduled Admission Time"},
{ 0x0038, 0x001C, DA, 1,	"Scheduled Discharge Date"},
{ 0x0038, 0x001D, TM, 1,	"Scheduled Discharge Time"},
{ 0x0038, 0x001E, LO, 1,	"Scheduled Patient Institution Residence"},
{ 0x0038, 0x0020, DA, 1,	"Admitting Date"},
{ 0x0038, 0x0021, TM, 1,	"Admitting Time"},
{ 0x0038, 0x0030, DA, 1,	"Discharge Date"},
{ 0x0038, 0x0032, TM, 1,	"Discharge Time"},
{ 0x0038, 0x0040, LO, 1,	"Discharge Diagnosis Description"},
{ 0x0038, 0x0044, SQ, 1,	"Discharge Diagnosis Code Sequence"},
{ 0x0038, 0x0050, LO, 1,	"Special Needs"},
{ 0x0038, 0x0300, LO, 1,	"Current Patient Location"},
{ 0x0038, 0x0400, LO, 1,	"Patient's Institution Residence"},
{ 0x0038, 0x0500, LO, 1,	"Patient State"},
{ 0x0038, 0x4000, LT, 1,	"Visit Comments"},
{ 0x0040, 0x0001, AE, -1,	"Scheduled Station AE Title"},
{ 0x0040, 0x0002, DA, 1,	"Scheduled Procedure Step Start Date"},
{ 0x0040, 0x0003, TM, 1,	"Scheduled Procedure Step Start Time"},
{ 0x0040, 0x0004, DA, 1,	"Scheduled Procedure Step End Date"},
{ 0x0040, 0x0005, TM, 1,	"Scheduled Procedure Step End Time"},
{ 0x0040, 0x0006, PN, 1,	"Scheduled Performing Physician's Name"},
{ 0x0040, 0x0007, LO, 1,	"Scheduled Procedure Step Description"},
{ 0x0040, 0x0008, SQ, 1,	"Scheduled Action Item Code Sequence"},
{ 0x0040, 0x0009, SH, 1,	"Scheduled Procedure Step ID"},
{ 0x0040, 0x0010, SH, -1,	"Scheduled Station Name"},
{ 0x0040, 0x0011, SH, 1,	"Scheduled Procedure Step Location"},
{ 0x0040, 0x0012, LO, 1,	"Pre-Medication"},
{ 0x0040, 0x0020, CS, 1,	"Scheduled Procedure Step Status"},
{ 0x0040, 0x0100, SQ, 1,	"Scheduled Procedure Step Sequence"},
{ 0x0040, 0x0220, SQ, 1,	"Referenced Standalone SOP Instance Sequence"},
{ 0x0040, 0x0241, AE, 1,	"Performed Station AE Title"},
{ 0x0040, 0x0242, SH, 1,	"Performed Station Name"},
{ 0x0040, 0x0243, SH, 1,	"Performed Location"},
{ 0x0040, 0x0244, DA, 1,	"Performed Procedure Step Start Date"},
{ 0x0040, 0x0245, TM, 1,	"Performed Procedure Step Start Time"},
{ 0x0040, 0x0250, DA, 1,	"Performed Procedure Step End Date"},
{ 0x0040, 0x0251, TM, 1,	"Performed Procedure Step End Time"},
{ 0x0040, 0x0252, CS, 1,	"Performed Procedure Step Status"},
{ 0x0040, 0x0253, SH, 1,	"Performed Procedure Step ID"},
{ 0x0040, 0x0254, LO, 1,	"Performed Procedure Step Description"},
{ 0x0040, 0x0255, LO, 1,	"Performed Procedure Type Description"},
{ 0x0040, 0x0260, SQ, 1,	"Performed Action Item Sequence"},
{ 0x0040, 0x0270, SQ, 1,	"Scheduled Step Attributes Sequence"},
{ 0x0040, 0x0275, SQ, 1,	"Request Attributes Sequence"},
{ 0x0040, 0x0280, ST, 1,	"Comments on the Performed Procedure Steps"},
{ 0x0040, 0x0293, SQ, 1,	"Quantity Sequence"},
{ 0x0040, 0x0294, DS, 1,	"Quantity"},
{ 0x0040, 0x0295, SQ, 1,	"Measuring Units Sequence"},
{ 0x0040, 0x0296, SQ, 1,	"Billing Item Sequence"},
{ 0x0040, 0x0300, US, 1,	"Total Time of Fluoroscopy"},
{ 0x0040, 0x0301, US, 1,	"Total Number of Exposures"},
{ 0x0040, 0x0302, US, 1,	"Entrance Dose"},
{ 0x0040, 0x0303, US, 12,	"Exposed Area"},
{ 0x0040, 0x0306, DS, 1,	"Distance Source to Entrance"},
{ 0x0040, 0x0307, DS, 1,	"Distance Source to Support"},
{ 0x0040, 0x0310, ST, 1,	"Comments on Radiation Dose"},
{ 0x0040, 0x0312, DS, 1,	"X-Ray Output"},
{ 0x0040, 0x0314, DS, 1,	"Half Value Layer"},
{ 0x0040, 0x0316, DS, 1,	"Organ Dose"},
{ 0x0040, 0x0318, CS, 1,	"Organ Exposed"},
{ 0x0040, 0x0320, SQ, 1,	"Billing Procedure Step Sequence"},
{ 0x0040, 0x0321, SQ, 1,	"Film Consumption Sequence"},
{ 0x0040, 0x0324, SQ, 1,	"Billing Supplies and Devices Sequence"},
{ 0x0040, 0x0330, SQ, 1,	"Referenced Procedure Step Sequence"},
{ 0x0040, 0x0340, SQ, 1,	"Performed Series Sequence"},
{ 0x0040, 0x0400, LT, 1,	"Comments on the Scheduled Procedure Step"},
{ 0x0040, 0x050A, LO, 1,	"Specimen Accession Number"},
{ 0x0040, 0x0550, SQ, 1,	"Specimen Sequence"},
{ 0x0040, 0x0551, LO, 1,	"Specimen Identifier"},
{ 0x0040, 0x059A, SQ, 1,	"Specimen Type Code Sequence"},
{ 0x0040, 0x0555, SQ, 1,	"Acquisition Context Sequence"},
{ 0x0040, 0x0556, ST, 1,	"Acquisition Context Description"},
{ 0x0040, 0x06FA, LO, 1,	"Slide Identifier"},
{ 0x0040, 0x071A, SQ, 1,	"Image Center Point Coordinates Sequence"},
{ 0x0040, 0x072A, DS, 1,	"X offset in Slide Coordinate System"},
{ 0x0040, 0x073A, DS, 1,	"Y offset in Slide Coordinate System"},
{ 0x0040, 0x074A, DS, 1,	"Z offset in Slide Coordinate System"},
{ 0x0040, 0x08D8, SQ, 1,	"Pixel Spacing Sequence"},
{ 0x0040, 0x08DA, SQ, 1,	"Coordinate System Axis Code Sequence"},
{ 0x0040, 0x08EA, SQ, 1,	"Measurement Units Code Sequence"},
{ 0x0040, 0x1001, SH, 1,	"Requested Procedure ID"},
{ 0x0040, 0x1002, LO, 1,	"Reason for the Requested Procedure"},
{ 0x0040, 0x1003, SH, 1,	"Requested Procedure Priority"},
{ 0x0040, 0x1004, LO, 1,	"Patient Transport Arrangements"},
{ 0x0040, 0x1005, LO, 1,	"Requested Procedure Location"},
{ 0x0040, 0x1006, RET, 0,	"Placer Order Number / Procedure SH 1"},
{ 0x0040, 0x1007, RET, 0,	"Filler Order Number / Procedure SH 1"},
{ 0x0040, 0x1008, LO, 1,	"Confidentiality Code"},
{ 0x0040, 0x1009, SH, 1,	"Reporting Priority"},
{ 0x0040, 0x1010, PN, -1,	"Names of Intended Recipients of Results"},
{ 0x0040, 0x1400, LT, 1,	"Requested Procedure Comments"},
{ 0x0040, 0x2001, LO, 1,	"Reason for the Imaging Service Request"},
{ 0x0040, 0x2004, DA, 1,	"Issue Date of Imaging Service Request"},
{ 0x0040, 0x2005, TM, 1,	"Issue Time of Imaging Service Request"},
{ 0x0040, 0x2006, RET, 0, "Placer Order Number / Imaging Service Request SH"},
{ 0x0040, 0x2007, RET, 0, "Filler Order Number / Imaging Service Request SH"},
{ 0x0040, 0x2008, PN, 1,	"Order Entered By"},
{ 0x0040, 0x2009, SH, 1,	"Order Enterer's Location"},
{ 0x0040, 0x2010, SH, 1,	"Order Callback Phone Number"},
{ 0x0040, 0x2016, LO, 1,	"Placer Order Number / Imaging Service Request"},
{ 0x0040, 0x2017, LO, 1,	"Filler Order Number / Imaging Service Request"},
{ 0x0040, 0x2400, LT, 1,	"Imaging Service Request Comments"},
{ 0x0040, 0x3001, LO, 1,	"Confidentiality Constraint on Patient Data Description"},
{ 0x0040, 0x8302, DS, 1,	"Entrance Dose in mGy"},
{ 0x0050, 0x0004, CS, 1,	"Calibration Image"},
{ 0x0050, 0x0010, SQ, 1,	"Device Sequence"},
{ 0x0050, 0x0014, DS, 1,	"Device Length"},
{ 0x0050, 0x0016, DS, 1,	"Device Diameter"},
{ 0x0050, 0x0017, CS, 1,	"Device Diameter Units"},
{ 0x0050, 0x0018, DS, 1,	"Device Volume"},
{ 0x0050, 0x0019, DS, 1,	"Inter-marker Distance"},
{ 0x0050, 0x0020, LO, 1,	"Device Description"},
{ 0x0054, 0x0010, US, -1,	"Energy Window Vector"},
{ 0x0054, 0x0011, US, 1,	"Number of Energy Windows"},
{ 0x0054, 0x0012, SQ, 1,	"Energy Window Information Sequence"},
{ 0x0054, 0x0013, SQ, 1,	"Energy Window Range Sequence"},
{ 0x0054, 0x0014, DS, 1,	"Energy Window Lower Limit"},
{ 0x0054, 0x0015, DS, 1,	"Energy Window Upper Limit"},
{ 0x0054, 0x0016, SQ, 1,	"Radiopharmaceutical Information Sequence"},
{ 0x0054, 0x0017, IS, 1,	"Residual Syringe Counts"},
{ 0x0054, 0x0018, SH, 1,	"Energy Window Name"},
{ 0x0054, 0x0020, US, -1,	"Detector Vector"},
{ 0x0054, 0x0021, US, 1,	"Number of Detectors"},
{ 0x0054, 0x0022, SQ, 1,	"Detector Information Sequence"},
{ 0x0054, 0x0030, US, -1,	"Phase Vector"},
{ 0x0054, 0x0031, US, 1,	"Number of Phases"},
{ 0x0054, 0x0032, SQ, 1,	"Phase Information Sequence"},
{ 0x0054, 0x0033, US, 1,	"Number of Frames in Phase"},
{ 0x0054, 0x0036, IS, 1,	"Phase Delay"},
{ 0x0054, 0x0038, IS, 1,	"Pause Between Frames"},
{ 0x0054, 0x0050, US, -1,	"Rotation Vector"},
{ 0x0054, 0x0051, US, 1,	"Number of Rotations"},
{ 0x0054, 0x0052, SQ, 1,	"Rotation Information Sequence"},
{ 0x0054, 0x0053, US, 1,	"Number of Frames in Rotation"},
{ 0x0054, 0x0060, US, -1,	"R-R Interval Vector"},
{ 0x0054, 0x0061, US, 1,	"Number of R-R Intervals"},
{ 0x0054, 0x0062, SQ, 1,	"Gated Information Sequence"},
{ 0x0054, 0x0063, SQ, 1,	"Data Information Sequence"},
{ 0x0054, 0x0070, US, -1,	"Time Slot Vector"},
{ 0x0054, 0x0071, US, 1,	"Number of Time Slots"},
{ 0x0054, 0x0072, SQ, 1,	"Time Slot Information Sequence"},
{ 0x0054, 0x0073, DS, 1,	"Time Slot Time"},
{ 0x0054, 0x0080, US, -1,	"Slice Vector"},
{ 0x0054, 0x0081, US, 1,	"Number of Slices"},
{ 0x0054, 0x0090, US, -1,	"Angular View Vector"},
{ 0x0054, 0x0100, US, -1,	"Time Slice Vector"},
{ 0x0054, 0x0101, US, 1,	"Number of Time Slices"},
{ 0x0054, 0x0200, DS, 1,	"Start Angle"},
{ 0x0054, 0x0202, CS, 1,	"Type of Detector Motion"},
{ 0x0054, 0x0210, IS, -1,	"Trigger Vector"},
{ 0x0054, 0x0211, US, 1,	"Number of Triggers in Phase"},
{ 0x0054, 0x0220, SQ, 1,	"View Code Sequence"},
{ 0x0054, 0x0222, SQ, 1,	"View Modifier Code Sequence"},
{ 0x0054, 0x0300, SQ, 1,	"Radionuclide Code Sequence"},
{ 0x0054, 0x0302, SQ, 1,	"Administration Route Code Sequence"},
{ 0x0054, 0x0304, SQ, 1,	"Radiopharmaceutical Code Sequence"},
{ 0x0054, 0x0306, SQ, 1,	"Calibration Data Sequence"},
{ 0x0054, 0x0308, US, 1,	"Energy Window Number"},
{ 0x0054, 0x0400, SH, 1,	"Image ID"},
{ 0x0054, 0x0410, SQ, 1,	"Patient Orientation Code Sequence"},
{ 0x0054, 0x0412, SQ, 1,	"Patient Orientation Modifier Code Sequence"},
{ 0x0054, 0x0414, SQ, 1,	"Patient Gantry Relationship Code Sequence"},
{ 0x0054, 0x1000, CS, 2,	"Series Type"},
{ 0x0054, 0x1001, CS, 1,	"Units"},
{ 0x0054, 0x1002, CS, 1,	"Counts Source"},
{ 0x0054, 0x1004, CS, 1,	"Reprojection Method"},
{ 0x0054, 0x1100, CS, 1,	"Randoms Correction Method"},
{ 0x0054, 0x1101, LO, 1,	"Attenuation Correction Method"},
{ 0x0054, 0x1102, CS, 1,	"Decay Correction"},
{ 0x0054, 0x1103, LO, 1,	"Reconstruction Method"},
{ 0x0054, 0x1104, LO, 1,	"Detector Lines of Response Used"},
{ 0x0054, 0x1105, LO, 1,	"Scatter Correction Method"},
{ 0x0054, 0x1200, DS, 1,	"Axial Acceptance"},
{ 0x0054, 0x1201, IS, 2,	"Axial Mash"},
{ 0x0054, 0x1202, IS, 1,	"Transverse Mash"},
{ 0x0054, 0x1203, DS, 2,	"Detector Element Size"},
{ 0x0054, 0x1210, DS, 1,	"Coincidence Window Width"},
{ 0x0054, 0x1220, CS, -1,	"Secondary Counts Type"},
{ 0x0054, 0x1300, DS, 1,	"Frame Reference Time"},
{ 0x0054, 0x1310, IS, 1,	"Primary (Prompts) Counts Accumulated"},
{ 0x0054, 0x1311, IS, -1,	"Secondary Counts Accumulated"},
{ 0x0054, 0x1320, DS, 1,	"Slice Sensitivity Factor"},
{ 0x0054, 0x1321, DS, 1,	"Decay Factor"},
{ 0x0054, 0x1322, DS, 1,	"Dose Calibration Factor"},
{ 0x0054, 0x1323, DS, 1,	"Scatter Fraction Factor"},
{ 0x0054, 0x1324, DS, 1,	"Dead Time Factor"},
{ 0x0054, 0x1330, US, 1,	"Image Index"},
{ 0x0054, 0x1400, CS, -1,	"Counts Included"},
{ 0x0054, 0x1401, CS, 1,	"Dead Time Correction Flag"},
{ 0x0060, 0x3000, SQ, 1,	"Histogram Sequence"},
{ 0x0060, 0x3002, US, 1,	"Histogram Number of Bins"},
{ 0x0060, 0x3004, SS, 1,	"Histogram First Bin Value US or"},
{ 0x0060, 0x3006, SS, 1,	"Histogram Last Bin Value US or"},
{ 0x0060, 0x3008, US, 1,	"Histogram Bin Width"},
{ 0x0060, 0x3010, LO, 1,	"Histogram Explanation"},
{ 0x0060, 0x3020, UL, -1,	"Histogram Data"},
{ 0x0070, 0x0001, SQ, 1,	"Graphic Annotation Sequence"},
{ 0x0070, 0x0002, CS, 1,	"Graphic Layer"},
{ 0x0070, 0x0003, CS, 1,	"Bounding Box Annotation Units"},
{ 0x0070, 0x0004, CS, 1,	"Anchor Point Annotation Units"},
{ 0x0070, 0x0005, CS, 1,	"Graphic Annotation Units"},
{ 0x0070, 0x0006, ST, 1,	"Unformatted Text Value"},
{ 0x0070, 0x0008, SQ, 1,	"Text Object Sequence"},
{ 0x0070, 0x0009, SQ, 1,	"Graphic Object Sequence"},
{ 0x0070, 0x0010, FL, 2,	"Bounding Box Top Left Hand Corner"},
{ 0x0070, 0x0011, FL, 2,	"Bounding Box Bottom Right Hand Corner"},
{ 0x0070, 0x0012, CS, 1,	"Bounding Box Text Horizontal Justification"},
{ 0x0070, 0x0014, FL, 2,	"Anchor Point"},
{ 0x0070, 0x0015, CS, 1,	"Anchor Point Visibility"},
{ 0x0070, 0x0020, US, 1,	"Graphic Dimensions"},
{ 0x0070, 0x0021, US, 1,	"Number of Graphic Points"},
{ 0x0070, 0x0022, FL, -2,	"Graphic Data"},
{ 0x0070, 0x0023, CS, 1,	"Graphic Type"},
{ 0x0070, 0x0024, CS, 1,	"Graphic Filled"},
{ 0x0070, 0x0041, CS, 1,	"Image Horizontal Flip"},
{ 0x0070, 0x0042, US, 1,	"Image Rotation"},
{ 0x0070, 0x0052, SL, 2,	"Displayed Area Top Left Hand Corner"},
{ 0x0070, 0x0053, SL, 2,	"Displayed Area Bottom Right Hand Corner"},
{ 0x0070, 0x005A, SQ, 1,	"Displayed Area Selection Sequence"},
{ 0x0070, 0x0060, SQ, 1,	"Graphic Layer Sequence"},
{ 0x0070, 0x0062, IS, 1,	"Graphic Layer Order"},
{ 0x0070, 0x0066, US, 1, "Graphic Layer Recommended Display Grayscale Value"},
{ 0x0070, 0x0067, US, 3,	"Graphic Layer Recommended Display RGB Value"},
{ 0x0070, 0x0068, LO, 1,	"Graphic Layer Description"},
{ 0x0070, 0x0080, CS, 1,	"Presentation Label"},
{ 0x0070, 0x0081, LO, 1,	"Presentation Description"},
{ 0x0070, 0x0082, DA, 1,	"Presentation Creation Date"},
{ 0x0070, 0x0083, TM, 1,	"Presentation Creation Time"},
{ 0x0070, 0x0084, PN, 1,	"Presentation Creator's Name"},
{ 0x0070, 0x0100, CS, 1,	"Presentation Size Mode"},
{ 0x0070, 0x0101, DS, 2,	"Presentation Pixel Spacing"},
{ 0x0070, 0x0102, IS, 2,	"Presentation Pixel Aspect Ratio"},
{ 0x0070, 0x0103, FL, 1,	"Presentation Pixel Magnification Ratio"},
{ 0x0088, 0x0130, SH, 1,	"Storage Media File-set ID"},
{ 0x0088, 0x0140, UI, 1,	"Storage Media File-set UID"},
{ 0x0088, 0x0200, SQ, 1,	"Icon Image Sequence"},
{ 0x0088, 0x0904, LO, 1,	"Topic Title"},
{ 0x0088, 0x0906, ST, 1,	"Topic Subject"},
{ 0x0088, 0x0910, LO, 1,	"Topic Author"},
{ 0x0088, 0x0912, LO, 32,	"Topic Key Words"},
{ 0x0100, 0x0410, CS, 1,	"SOP Instance Status"},
{ 0x0100, 0x0420, DT, 1,	"SOP Authorization Date and Time"},
{ 0x0100, 0x0424, LT, 1,	"SOP Authorization Comment"},
{ 0x0100, 0x0426, LO, 1,	"Authorization Equipment Certification Number"},
{ 0x2000, 0x0010, IS, 1,	"Number of Copies"},
{ 0x2000, 0x001E, SQ, 1,	"Printer Configuration Sequence"},
{ 0x2000, 0x0020, CS, 1,	"Print Priority"},
{ 0x2000, 0x0030, CS, 1,	"Medium Type"},
{ 0x2000, 0x0040, CS, 1,	"Film Destination"},
{ 0x2000, 0x0050, LO, 1,	"Film Session Label"},
{ 0x2000, 0x0060, IS, 1,	"Memory Allocation"},
{ 0x2000, 0x0061, IS, 1,	"Maximum Memory Allocation"},
{ 0x2000, 0x0062, CS, 1,	"Color Image Printing Flag"},
{ 0x2000, 0x0063, CS, 1,	"Collation Flag"},
{ 0x2000, 0x0065, CS, 1,	"Annotation Flag"},
{ 0x2000, 0x0067, CS, 1,	"Image Overlay Flag"},
{ 0x2000, 0x0069, CS, 1,	"Presentation LUT Flag"},
{ 0x2000, 0x006A, CS, 1,	"Image Box Presentation LUT Flag"},
{ 0x2000, 0x00A0, US, 1,	"Memory Bit Depth"},
{ 0x2000, 0x00A1, US, 1,	"Printing Bit Depth"},
{ 0x2000, 0x00A2, SQ, 1,	"Media Installed Sequence"},
{ 0x2000, 0x00A4, SQ, 1,	"Other Media Available Sequence"},
{ 0x2000, 0x00A8, SQ, 1,	"Supported Image Display Formats Sequence"},
{ 0x2000, 0x0500, SQ, 1,	"Referenced Film Box Sequence"},
{ 0x2000, 0x0510, SQ, 1,	"Referenced Stored Print Sequence"},
{ 0x2010, 0x0010, ST, 1,	"Image Display Format"},
{ 0x2010, 0x0030, CS, 1,	"Annotation Display Format ID"},
{ 0x2010, 0x0040, CS, 1,	"Film Orientation"},
{ 0x2010, 0x0050, CS, 1,	"Film Size ID"},
{ 0x2010, 0x0052, CS, 1,	"Printer Resolution ID"},
{ 0x2010, 0x0054, CS, 1,	"Default Printer Resolution ID"},
{ 0x2010, 0x0060, CS, 1,	"Magnification Type"},
{ 0x2010, 0x0080, CS, 1,	"Smoothing Type"},
{ 0x2010, 0x00A6, CS, 1,	"Default Magnification Type"},
{ 0x2010, 0x00A7, CS, -1,	"Other Magnification Types Available"},
{ 0x2010, 0x00A8, CS, 1,	"Default Smoothing Type"},
{ 0x2010, 0x00A9, CS, -1,	"Other Smoothing Types Available"},
{ 0x2010, 0x0100, CS, 1,	"Border Density"},
{ 0x2010, 0x0110, CS, 1,	"Empty Image Density"},
{ 0x2010, 0x0120, US, 1,	"Min Density"},
{ 0x2010, 0x0130, US, 1,	"Max Density"},
{ 0x2010, 0x0140, CS, 1,	"Trim"},
{ 0x2010, 0x0150, ST, 1,	"Configuration Information"},
{ 0x2010, 0x0152, LT, 1,	"Configuration Information Description"},
{ 0x2010, 0x0154, IS, 1,	"Maximum Collated Films"},
{ 0x2010, 0x015E, US, 1,	"Illumination"},
{ 0x2010, 0x0160, US, 1,	"Reflected Ambient Light"},
{ 0x2010, 0x0376, DS, 2,	"Printer Pixel Spacing"},
{ 0x2010, 0x0500, SQ, 1,	"Referenced Film Session Sequence"},
{ 0x2010, 0x0510, SQ, 1,	"Referenced Image Box Sequence"},
{ 0x2010, 0x0520, SQ, 1,	"Referenced Basic Annotation Box Sequence"},
{ 0x2020, 0x0010, US, 1,	"Image Position"},
{ 0x2020, 0x0020, CS, 1,	"Polarity"},
{ 0x2020, 0x0030, DS, 1,	"Requested Image Size"},
{ 0x2020, 0x0040, CS, 1,	"Requested Decimate/Crop Behavior"},
{ 0x2020, 0x0050, CS, 1,	"Requested Resolution ID"},
{ 0x2020, 0x00A0, CS, 1,	"Requested Image Size Flag"},
{ 0x2020, 0x00A2, CS, 1,	"Decimate/Crop Result"},
{ 0x2020, 0x0110, SQ, 1,	"Basic Grayscale Image Sequence"},
{ 0x2020, 0x0111, SQ, 1,	"Basic Color Image Sequence"},
{ 0x2020, 0x0130, RET, 0,	"Referenced Image Overlay Box Sequence SQ 1"},
{ 0x2020, 0x0140, RET, 1,	"Referenced VOI LUT Box Sequence"},
{ 0x2030, 0x0010, US, 1,	"Annotation Position"},
{ 0x2030, 0x0020, LO, 1,	"Text String"},
{ 0x2040, 0x0010, SQ, 1,	"Referenced Overlay Plane Sequence"},
{ 0x2040, 0x0011, US, 99,	"Referenced Overlay Plane Groups"},
{ 0x2040, 0x0020, SQ, 1,	"Overlay Pixel Data Sequence"},
{ 0x2040, 0x0060, CS, 1,	"Overlay Magnification Type"},
{ 0x2040, 0x0070, CS, 1,	"Overlay Smoothing Type"},
{ 0x2040, 0x0072, CS, 1,	"Overlay or Image Magnification"},
{ 0x2040, 0x0074, US, 1,	"Magnify to Number of Columns"},
{ 0x2040, 0x0080, CS, 1,	"Overlay Foreground Density"},
{ 0x2040, 0x0082, CS, 1,	"Overlay Background Density"},
{ 0x2040, 0x0090, RET, 0,	"Overlay Mode CS 1"},
{ 0x2040, 0x0100, RET, 0,	"Threshold Density CS 1"},
{ 0x2040, 0x0500, RET, 1,	"Referenced Image Box Sequence"},
{ 0x2050, 0x0010, SQ, 1,	"Presentation LUT Sequence"},
{ 0x2050, 0x0020, CS, 1,	"Presentation LUT Shape"},
{ 0x2050, 0x0500, SQ, 1,	"Referenced Presentation LUT Sequence"},
{ 0x2100, 0x0010, SH, 1,	"Print Job ID"},
{ 0x2100, 0x0020, CS, 1,	"Execution Status"},
{ 0x2100, 0x0030, CS, 1,	"Execution Status Info"},
{ 0x2100, 0x0040, DA, 1,	"Creation Date"},
{ 0x2100, 0x0050, TM, 1,	"Creation Time"},
{ 0x2100, 0x0070, AE, 1,	"Originator"},
{ 0x2100, 0x0140, AE, 1,	"Destination AE"},
{ 0x2100, 0x0160, SH, 1,	"Owner ID"},
{ 0x2100, 0x0170, IS, 1,	"Number of Films"},
{ 0x2100, 0x0500, SQ, 1,	"Referenced Print Job Sequence"},
{ 0x2110, 0x0010, CS, 1,	"Printer Status"},
{ 0x2110, 0x0020, CS, 1,	"Printer Status Info"},
{ 0x2110, 0x0030, LO, 1,	"Printer Name"},
{ 0x2110, 0x0099, SH, 1,	"Print Queue ID"},
{ 0x2120, 0x0010, CS, 1,	"Queue Status"},
{ 0x2120, 0x0050, SQ, 1,	"Print Job Description Sequence"},
{ 0x2120, 0x0070, SQ, 1,	"Referenced Print Job Sequence"},
{ 0x2130, 0x0010, SQ, 1,	"Print Management Capabilities Sequence"},
{ 0x2130, 0x0015, SQ, 1,	"Printer Characteristics Sequence"},
{ 0x2130, 0x0030, SQ, 1,	"Film Box Content Sequence"},
{ 0x2130, 0x0040, SQ, 1,	"Image Box Content Sequence"},
{ 0x2130, 0x0050, SQ, 1,	"Annotation Content Sequence"},
{ 0x2130, 0x0060, SQ, 1,	"Image Overlay Box Content Sequence"},
{ 0x2130, 0x0080, SQ, 1,	"Presentation LUT Content Sequence"},
{ 0x2130, 0x00A0, SQ, 1,	"Proposed Study Sequence"},
{ 0x2130, 0x00C0, SQ, 1,	"Original Image Sequence"},
{ 0x3002, 0x0002, SH, 1,	"RT Image Label"},
{ 0x3002, 0x0003, LO, 1,	"RT Image Name"},
{ 0x3002, 0x0004, ST, 1,	"RT Image Description"},
{ 0x3002, 0x000A, CS, 1,	"Reported Values Origin"},
{ 0x3002, 0x000C, CS, 1,	"RT Image Plane"},
{ 0x3002, 0x000D, DS, 3,	"X-Ray Image Receptor Translation"},
{ 0x3002, 0x000E, DS, 1,	"X-Ray Image Receptor Angle"},
{ 0x3002, 0x0010, DS, 6,	"RT Image Orientation"},
{ 0x3002, 0x0011, DS, 2,	"Image Plane Pixel Spacing"},
{ 0x3002, 0x0012, DS, 2,	"RT Image Position"},
{ 0x3002, 0x0020, SH, 1,	"Radiation Machine Name"},
{ 0x3002, 0x0022, DS, 1,	"Radiation Machine SAD"},
{ 0x3002, 0x0024, DS, 1,	"Radiation Machine SSD"},
{ 0x3002, 0x0026, DS, 1,	"RT Image SID"},
{ 0x3002, 0x0028, DS, 1,	"Source to Reference Object Distance"},
{ 0x3002, 0x0029, IS, 1,	"Fraction Number"},
{ 0x3002, 0x0030, SQ, 1,	"Exposure Sequence"},
{ 0x3002, 0x0032, DS, 1,	"Meterset Exposure"},
{ 0x3004, 0x0001, CS, 1,	"DVH Type"},
{ 0x3004, 0x0002, CS, 1,	"Dose Units"},
{ 0x3004, 0x0004, CS, 1,	"Dose Type"},
{ 0x3004, 0x0006, LO, 1,	"Dose Comment"},
{ 0x3004, 0x0008, DS, 3,	"Normalization Point"},
{ 0x3004, 0x000A, CS, 1,	"Dose Summation Type"},
{ 0x3004, 0x000C, DS, -2,	"Grid Frame Offset Vector"},
{ 0x3004, 0x000E, DS, 1,	"Dose Grid Scaling"},
{ 0x3004, 0x0010, SQ, 1,	"RT Dose ROI Sequence"},
{ 0x3004, 0x0012, DS, 1,	"Dose Value"},
{ 0x3004, 0x0040, DS, 3,	"DVH Normalization Point"},
{ 0x3004, 0x0042, DS, 1,	"DVH Normalization Dose Value"},
{ 0x3004, 0x0050, SQ, 1,	"DVH Sequence"},
{ 0x3004, 0x0052, DS, 1,	"DVH Dose Scaling"},
{ 0x3004, 0x0054, CS, 1,	"DVH Volume Units"},
{ 0x3004, 0x0056, IS, 1,	"DVH Number of Bins"},
{ 0x3004, 0x0058, DS, -2,	"DVH Data"},
{ 0x3004, 0x0060, SQ, 1,	"DVH Referenced ROI Sequence"},
{ 0x3004, 0x0062, CS, 1,	"DVH ROI Contribution Type"},
{ 0x3004, 0x0070, DS, 1,	"DVH Minimum Dose"},
{ 0x3004, 0x0072, DS, 1,	"DVH Maximum Dose"},
{ 0x3004, 0x0074, DS, 1,	"DVH Mean Dose"},
{ 0x3006, 0x0002, SH, 1,	"Structure Set Label"},
{ 0x3006, 0x0004, LO, 1,	"Structure Set Name"},
{ 0x3006, 0x0006, ST, 1,	"Structure Set Description"},
{ 0x3006, 0x0008, DA, 1,	"Structure Set Date"},
{ 0x3006, 0x0009, TM, 1,	"Structure Set Time"},
{ 0x3006, 0x0010, SQ, 1,	"Referenced Frame of Reference Sequence"},
{ 0x3006, 0x0012, SQ, 1,	"RT Referenced Study Sequence"},
{ 0x3006, 0x0014, SQ, 1,	"RT Referenced Series Sequence"},
{ 0x3006, 0x0016, SQ, 1,	"Contour Image Sequence"},
{ 0x3006, 0x0020, SQ, 1,	"Structure Set ROI Sequence"},
{ 0x3006, 0x0022, IS, 1,	"ROI Number"},
{ 0x3006, 0x0024, UI, 1,	"Referenced Frame of Reference UID"},
{ 0x3006, 0x0026, LO, 1,	"ROI Name"},
{ 0x3006, 0x0028, ST, 1,	"ROI Description"},
{ 0x3006, 0x002A, IS, 3,	"ROI Display Color"},
{ 0x3006, 0x002C, DS, 1,	"ROI Volume"},
{ 0x3006, 0x0030, SQ, 1,	"RT Related ROI Sequence"},
{ 0x3006, 0x0033, CS, 1,	"RT ROI Relationship"},
{ 0x3006, 0x0036, CS, 1,	"ROI Generation Algorithm"},
{ 0x3006, 0x0038, LO, 1,	"ROI Generation Description"},
{ 0x3006, 0x0039, SQ, 1,	"ROI Contour Sequence"},
{ 0x3006, 0x0040, SQ, 1,	"Contour Sequence"},
{ 0x3006, 0x0042, CS, 1,	"Contour Geometric Type"},
{ 0x3006, 0x0044, DS, 1,	"Contour Slab Thickness"},
{ 0x3006, 0x0045, DS, 3,	"Contour Offset Vector"},
{ 0x3006, 0x0046, IS, 1,	"Number of Contour Points"},
{ 0x3006, 0x0048, IS, 1,	"Contour Number"},
{ 0x3006, 0x0049, IS, -1,	"Attached Contours"},
{ 0x3006, 0x0050, DS, -3,	"Contour Data"},
{ 0x3006, 0x0080, SQ, 1,	"RT ROI Observations Sequence"},
{ 0x3006, 0x0082, IS, 1,	"Observation Number"},
{ 0x3006, 0x0084, IS, 1,	"Referenced ROI Number"},
{ 0x3006, 0x0085, SH, 1,	"ROI Observation Label"},
{ 0x3006, 0x0086, SQ, 1,	"RT ROI Identification Code Sequence"},
{ 0x3006, 0x0088, ST, 1,	"ROI Observation Description"},
{ 0x3006, 0x00A0, SQ, 1,	"Related RT ROI Observations Sequence"},
{ 0x3006, 0x00A4, CS, 1,	"RT ROI Interpreted Type"},
{ 0x3006, 0x00A6, PN, 1,	"ROI Interpreter"},
{ 0x3006, 0x00B0, SQ, 1,	"ROI Physical Properties Sequence"},
{ 0x3006, 0x00B2, CS, 1,	"ROI Physical Property"},
{ 0x3006, 0x00B4, DS, 1,	"ROI Physical Property Value"},
{ 0x3006, 0x00C0, SQ, 1,	"Frame of Reference Relationship Sequence"},
{ 0x3006, 0x00C2, UI, 1,	"Related Frame of Reference UID"},
{ 0x3006, 0x00C4, CS, 1,	"Frame of Reference Transformation Type"},
{ 0x3006, 0x00C6, DS, 16,	"Frame of Reference Transformation Matrix"},
{ 0x3006, 0x00C8, LO, 1,	"Frame of Reference Transformation Comment"},
{ 0x3008, 0x0010, SQ, 1,	"Measured Dose Reference Sequence"},
{ 0x3008, 0x0012, ST, 1,	"Measured Dose Description"},
{ 0x3008, 0x0014, CS, 1,	"Measured Dose Type"},
{ 0x3008, 0x0016, DS, 1,	"Measured Dose Value"},
{ 0x3008, 0x0020, SQ, 1,	"Treatment Session Beam Sequence"},
{ 0x3008, 0x0022, IS, 1,	"Current Fraction Number"},
{ 0x3008, 0x0024, DA, 1,	"Treatment Control Point Date"},
{ 0x3008, 0x0025, TM, 1,	"Treatment Control Point Time"},
{ 0x3008, 0x002A, CS, 1,	"Treatment Termination Status"},
{ 0x3008, 0x002B, SH, 1,	"Treatment Termination Code"},
{ 0x3008, 0x002C, CS, 1,	"Treatment Verification Status"},
{ 0x3008, 0x0030, SQ, 1,	"Referenced Treatment Record Sequence"},
{ 0x3008, 0x0032, DS, 1,	"Specified Primary Meterset"},
{ 0x3008, 0x0033, DS, 1,	"Specified Secondary Meterset"},
{ 0x3008, 0x0036, DS, 1,	"Delivered Primary Meterset"},
{ 0x3008, 0x0037, DS, 1,	"Delivered Secondary Meterset"},
{ 0x3008, 0x003A, DS, 1,	"Specified Treatment Time"},
{ 0x3008, 0x003B, DS, 1,	"Delivered Treatment Time"},
{ 0x3008, 0x0040, SQ, 1,	"Control Point Delivery Sequence"},
{ 0x3008, 0x0042, DS, 1,	"Specified Meterset"},
{ 0x3008, 0x0044, DS, 1,	"Delivered Meterset"},
{ 0x3008, 0x0048, DS, 1,	"Dose Rate Delivered"},
{ 0x3008, 0x0050, SQ, 1,	"Treatment Summary Calculated Dose Reference Sequence"},
{ 0x3008, 0x0052, DS, 1,	"Cumulative Dose to Dose Reference"},
{ 0x3008, 0x0054, DA, 1,	"First Treatment Date"},
{ 0x3008, 0x0056, DA, 1,	"Most Recent Treatment Date"},
{ 0x3008, 0x005A, IS, 1,	"Number of Fractions Delivered"},
{ 0x3008, 0x0060, SQ, 1,	"Override Sequence"},
{ 0x3008, 0x0062, AT, 1,	"Override Parameter Pointer"},
{ 0x3008, 0x0064, IS, 1,	"Measured Dose Reference Number"},
{ 0x3008, 0x0066, ST, 1,	"Override Reason"},
{ 0x3008, 0x0070, SQ, 1,	"Calculated Dose Reference Sequence"},
{ 0x3008, 0x0072, IS, 1,	"Calculated Dose Reference Number"},
{ 0x3008, 0x0074, ST, 1,	"Calculated Dose Reference Description"},
{ 0x3008, 0x0076, DS, 1,	"Calculated Dose Reference Dose Value"},
{ 0x3008, 0x0078, DS, 1,	"Start Meterset"},
{ 0x3008, 0x007A, DS, 1,	"End Meterset"},
{ 0x3008, 0x0080, SQ, 1,	"Referenced Measured Dose Reference Sequence"},
{ 0x3008, 0x0082, IS, 1,	"Referenced Measured Dose Reference Number"},
{ 0x3008, 0x0090, SQ, 1,	"Referenced Calculated Dose Reference Sequence"},
{ 0x3008, 0x0092, IS, 1,	"Referenced Calculated Dose Reference Number"},
{ 0x3008, 0x00A0, SQ, 1,	"Beam Limiting Device Leaf Pairs Sequence"},
{ 0x3008, 0x00B0, SQ, 1,	"Recorded Wedge Sequence"},
{ 0x3008, 0x00C0, SQ, 1,	"Recorded Compensator Sequence"},
{ 0x3008, 0x00D0, SQ, 1,	"Recorded Block Sequence"},
{ 0x3008, 0x00E0, SQ, 1,	"Treatment Summary Measured Dose Reference Sequence"},
{ 0x3008, 0x0100, SQ, 1,	"Recorded Source Sequence"},
{ 0x3008, 0x0105, LO, 1,	"Source Serial Number"},
{ 0x3008, 0x0110, SQ, 1,	"Treatment Session Application Setup Sequence"},
{ 0x3008, 0x0116, CS, 1,	"Application Setup Check"},
{ 0x3008, 0x0120, SQ, 1,	"Recorded Brachy Accessory Device Sequence"},
{ 0x3008, 0x0122, IS, 1,	"Referenced Brachy Accessory Device Number"},
{ 0x3008, 0x0130, SQ, 1,	"Recorded Channel Sequence"},
{ 0x3008, 0x0132, DS, 1,	"Specified Channel Total Time"},
{ 0x3008, 0x0134, DS, 1,	"Delivered Channel Total Time"},
{ 0x3008, 0x0136, IS, 1,	"Specified Number of Pulses"},
{ 0x3008, 0x0138, IS, 1,	"Delivered Number of Pulses"},
{ 0x3008, 0x013A, DS, 1,	"Specified Pulse Repetition Interval"},
{ 0x3008, 0x013C, DS, 1,	"Delivered Pulse Repetition Interval"},
{ 0x3008, 0x0140, SQ, 1,	"Recorded Source Applicator Sequence"},
{ 0x3008, 0x0142, IS, 1,	"Referenced Source Applicator Number"},
{ 0x3008, 0x0150, SQ, 1,	"Recorded Channel Shield Sequence"},
{ 0x3008, 0x0152, IS, 1,	"Referenced Channel Shield Number"},
{ 0x3008, 0x0160, SQ, 1,	"Brachy Control Point Delivered Sequence"},
{ 0x3008, 0x0162, DA, 1,	"Safe Position Exit Date"},
{ 0x3008, 0x0164, TM, 1,	"Safe Position Exit Time"},
{ 0x3008, 0x0166, DA, 1,	"Safe Position Return Date"},
{ 0x3008, 0x0168, TM, 1,	"Safe Position Return Time"},
{ 0x3008, 0x0200, CS, 1,	"Current Treatment Status"},
{ 0x3008, 0x0202, ST, 1,	"Treatment Status Comment"},
{ 0x3008, 0x0220, SQ, 1,	"Fraction Group Summary Sequence"},
{ 0x3008, 0x0223, IS, 1,	"Referenced Fraction Number"},
{ 0x3008, 0x0224, CS, 1,	"Fraction Group Type"},
{ 0x3008, 0x0230, CS, 1,	"Beam Stopper Position"},
{ 0x3008, 0x0240, SQ, 1,	"Fraction Status Summary Sequence"},
{ 0x3008, 0x0250, DA, 1,	"Treatment Date"},
{ 0x3008, 0x0251, TM, 1,	"Treatment Time"},
{ 0x4000, 0x0010, RET, 0,	"Arbitrary"},
{ 0x4000, 0x4000, RET, 0,	"Comments"},
{ 0x4008, 0x0040, SH, 1,	"Results ID"},
{ 0x4008, 0x0042, LO, 1,	"Results ID Issuer"},
{ 0x4008, 0x0050, SQ, 1,	"Referenced Interpretation Sequence"},
{ 0x4008, 0x0100, DA, 1,	"Interpretation Recorded Date"},
{ 0x4008, 0x0101, TM, 1,	"Interpretation Recorded Time"},
{ 0x4008, 0x0102, PN, 1,	"Interpretation Recorder"},
{ 0x4008, 0x0103, LO, 1,	"Reference to Recorded Sound"},
{ 0x4008, 0x0108, DA, 1,	"Interpretation Transcription Date"},
{ 0x4008, 0x0109, TM, 1,	"Interpretation Transcription Time"},
{ 0x4008, 0x010A, PN, 1,	"Interpretation Transcriber"},
{ 0x4008, 0x010B, ST, 1,	"Interpretation Text"},
{ 0x4008, 0x010C, PN, 1,	"Interpretation Author"},
{ 0x4008, 0x0111, SQ, 1,	"Interpretation Approver Sequence"},
{ 0x4008, 0x0112, DA, 1,	"Interpretation Approval Date"},
{ 0x4008, 0x0113, TM, 1,	"Interpretation Approval Time"},
{ 0x4008, 0x0114, PN, 1,	"Physician Approving Interpretation"},
{ 0x4008, 0x0115, LT, 1,	"Interpretation Diagnosis Description"},
{ 0x4008, 0x0117, SQ, 1,	"Interpretation Diagnosis Code Sequence"},
{ 0x4008, 0x0118, SQ, 1,	"Results Distribution List Sequence"},
{ 0x4008, 0x0119, PN, 1,	"Distribution Name"},
{ 0x4008, 0x011A, LO, 1,	"Distribution Address"},
{ 0x4008, 0x0200, SH, 1,	"Interpretation ID"},
{ 0x4008, 0x0202, LO, 1,	"Interpretation ID Issuer"},
{ 0x4008, 0x0210, CS, 1,	"Interpretation Type ID"},
{ 0x4008, 0x0212, CS, 1,	"Interpretation Status ID"},
{ 0x4008, 0x0300, ST, 1,	"Impressions"},
{ 0x4008, 0x4000, ST, 1,	"Results Comments"},
{ 0x5400, 0x0100, SQ, 1,	"Waveform Sequence"},
{ 0x5400, 0x0110, OW, 1,	"Channel Minimum Value OB or"},
{ 0x5400, 0x0112, OW, 1,	"Channel Maximum Value OB or"},
{ 0x5400, 0x1004, US, 1,	"Waveform Bits Allocated"},
{ 0x5400, 0x1006, CS, 1,	"Waveform Sample Interpretation"},
{ 0x5400, 0x100A, OW, 1,	"Waveform Padding Value OB or"},
{ 0x5400, 0x1010, OBW, 1,	"Waveform Data"},
{ 0x0002, 0x0000, UL, 1,	"Group Length"},
{ 0x0002, 0x0001, OB, 1,	"File Meta Information Version"},
{ 0x0002, 0x0002, UI, 1,	"Media Storage SOP Class UID"},
{ 0x0002, 0x0003, UI, 1,	"Media Storage SOP Instance UID"},
{ 0x0002, 0x0010, UI, 1,	"Transfer Syntax UID"},
{ 0x0002, 0x0012, UI, 1,	"Implementation Class UID"},
{ 0x0002, 0x0013, SH, 1,	"Implementation Version Name"},
{ 0x0002, 0x0016, AE, 1,	"Source Application Entity Title"},
{ 0x0002, 0x0100, UI, 1,	"Private Information Creator UID"},
{ 0x0002, 0x0102, OB, 1,	"Private Information"},
{ 0x0004, 0x0000, UL, 1,	"Group Length"},
{ 0x0004, 0x1130, CS, 1,	"File-set ID"},
{ 0x0004, 0x1141, CS, 8,	"File-set Descriptor File ID"},
{ 0x0004, 0x1142, CS, 1,	"Specific Character Set of File-set Descriptor File"},
{ 0x0004, 0x1200, UL, 1,	"Offset of the First Directory Record of the Root Directory Entity"},
{ 0x0004, 0x1202, UL, 1,	"Offset of the Last Directory Record of the Root Directory Entity"},
{ 0x0004, 0x1212, US, 1,	"File-set Consistency Flag"},
{ 0x0004, 0x1220, SQ, 1,	"Directory Record Sequence"},
{ 0x0004, 0x1400, UL, 1,	"Offset of the Next Directory Record"},
{ 0x0004, 0x1410, US, 1,	"Record In-use Flag"},
{ 0x0004, 0x1420, UL, 1,	"Offset of Referenced Lower-Level Directory Entity"},
{ 0x0004, 0x1430, CS, 1,	"Directory Record Type"},
{ 0x0004, 0x1432, UI, 1,	"Private Record UID"},
{ 0x0004, 0x1500, CS, 8,	"Referenced File ID"},
{ 0x0004, 0x1504, UL, 1,	"MRDR Directory Record Offset"},
{ 0x0004, 0x1510, UI, 1,	"Referenced SOP Class UID in File"},
{ 0x0004, 0x1511, UI, 1,	"Referenced SOP Instance UID in File"},
{ 0x0004, 0x1512, UI, 1,	"Referenced Transfer Syntax UID in File"},
{ 0x0004, 0x1600, UL, 1,	"Number of References"},
{ 0x0000, 0x0000, UL, 0,    "Unknown DICOM tag" }
};

static const char *vr_names[] = {
  "AE", "Application Entry",
  "AS", "Age String",
  "AT", "Attribute Tag",
  "CS", "Code String",
  "DA", "Date",
  "DS", "Decimal String",
  "DT", "Date Time",
  "FL", "Floating Point Single",
  "FD", "Floating Point Double",
  "IS", "Integer String",
  "LO", "Long String",
  "LT", "Long Text",
  "OB", "Other Byte String",
  "OW", "Other Word String",
  "PN", "Person Name",
  "SH", "Short String",
  "SL", "Signed Long",
  "SQ", "Sequence of Items",
  "SS", "Signed Short",
  "ST", "Short Text",
  "TM", "Time",
  "UI", "Unique Indentifier",
  "UL", "Unsigned Long",
  "UN", "Unknown",
  "US", "Unsigned Short",
  "UT", "Unlimited Text",
  "USS", "Unsigned/Signed Short"
  "OBW", "Other Byte/Word String",
  "RET", "Retired",
  "ERROR", "Error",
  "IMPLICIT", "Implicit",
  "UNKNOWN", "Unknown"};

void DICOM_TAG::set_name()
{
  int i = 0;
  name = 0L;
  while (dicom_tags[i].group)
	{
	  if (group == dicom_tags[i].group
		  && element == dicom_tags[i].element)
		{
		  name = dicom_tags[i].name;
		  break;
		}
	  ++i;
	}
}

void DICOM_TAG::set_implicit_type()
{
  int i = 0;
  while (dicom_tags[i].group)
	{
	  if (group == dicom_tags[i].group
		  && element == dicom_tags[i].element)
		{
		  vr = dicom_tags[i].vr;
		  return;
		}
	  ++i;
	}
  vr = UNKNOWN;
}

const char * DICOM_TAG::vrAsString()
{
  return vr_names[2*vr+1];
}