Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bartlomieju/a00a74d32947eef6a0811483d8619a0e to your computer and use it in GitHub Desktop.
Save bartlomieju/a00a74d32947eef6a0811483d8619a0e to your computer and use it in GitHub Desktop.
CJS analysis bug
/******/ (() => { // webpackBootstrap
/******/ "use strict";
/******/ var __webpack_modules__ = ({
/***/ "./src/base.ts":
/*!*********************!*\
!*** ./src/base.ts ***!
\*********************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.tagToBytes = exports.tagToBytesLE = exports.tagToBytesBE = exports.intToBytes = exports.shortToBytes = exports.shortToBytesLE = exports.shortToBytesBE = exports.intToBytesLE = exports.intToBytesBE = exports.bytesToDouble = exports.bytesToDoubleLE = exports.bytesToDoubleBE = exports.bytesToFloat = exports.bytesToFloatLE = exports.bytesToFloatBE = exports.bytesToTag = exports.bytesToTagLE = exports.bytesToTagBE = exports.bytesToUInt = exports.bytesToUIntLE = exports.bytesToUIntBE = exports.bytesToInt = exports.bytesToIntLE = exports.bytesToIntBE = exports.bytesToVR = exports.bytesToUShort = exports.bytesToUShortLE = exports.bytesToUShortBE = exports.bytesToShort = exports.bytesToShortLE = exports.bytesToShortBE = exports.elementNumber = exports.groupNumber = exports.shiftLeftUnsigned = exports.toInt32 = exports.toUInt32 = exports.emptyBuffer = exports.multiValueDelimiter = exports.randomUID = exports.nameBasedUID = exports.toUID = exports.hexToDec = exports.concatArrays = exports.prependToArray = exports.appendToArray = exports.flatten = exports.concatv = exports.concat = exports.zero4Bytes = exports.indeterminateLength = void 0;
exports.pipe = exports.createNameBasedUIDFromRoot = exports.createNameBasedUID = exports.createUIDFromRoot = exports.createUID = exports.defaultCharacterSet = exports.systemZone = exports.isDeflated = exports.isGroupLength = exports.isFileMetaInformation = exports.sequenceDelimitationNonZeroLength = exports.sequenceDelimitation = exports.sequenceDelimitationBE = exports.sequenceDelimitationLE = exports.itemDelimitation = exports.itemDelimitationBE = exports.itemDelimitationLE = exports.item = exports.itemBE = exports.itemLE = exports.padToEvenLength = exports.trim = exports.tagToString = exports.doubleToBytes = exports.floatToBytes = void 0;
const js_joda_1 = __webpack_require__(/*! js-joda */ "js-joda");
const multipipe_1 = __importDefault(__webpack_require__(/*! multipipe */ "multipipe"));
const uuid_1 = __webpack_require__(/*! uuid */ "uuid");
const CS = __importStar(__webpack_require__(/*! ./character-sets */ "./src/character-sets.ts"));
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const uid_1 = __webpack_require__(/*! ./uid */ "./src/uid.ts");
// eslint:disable: no-bitwise
exports.indeterminateLength = 0xffffffff;
exports.zero4Bytes = Buffer.from([0, 0, 0, 0]);
function concat(a, b) {
return Buffer.concat([a, b], a.length + b.length);
}
exports.concat = concat;
function concatv(...buffers) {
return Buffer.concat(buffers);
}
exports.concatv = concatv;
function flatten(array) {
return [].concat(...array);
}
exports.flatten = flatten;
function appendToArray(object, array) {
const newArray = array.slice();
newArray.push(object);
return newArray;
}
exports.appendToArray = appendToArray;
function prependToArray(object, array) {
const newArray = array.slice();
newArray.unshift(object);
return newArray;
}
exports.prependToArray = prependToArray;
function concatArrays(array1, array2) {
const newArray = array1.slice();
array2.forEach((i) => newArray.push(i));
return newArray;
}
exports.concatArrays = concatArrays;
const uidRoot = '2.25';
const uuidNamespace = 'd181d67b-0a1c-45bf-8616-070f1bb0d0cf';
function hexToDec(s) {
const digits = [0];
let carry;
for (let i = 0; i < s.length; i++) {
carry = parseInt(s.charAt(i), 16);
for (let j = 0; j < digits.length; j++) {
digits[j] = digits[j] * 16 + carry;
carry = (digits[j] / 10) | 0;
digits[j] %= 10;
}
while (carry > 0) {
digits.push(carry % 10);
carry = (carry / 10) | 0;
}
}
return digits.reverse().join('');
}
exports.hexToDec = hexToDec;
function toUID(root, uuid) {
const hexStr = uuid.replace(/-/g, '');
const docStr = hexToDec(hexStr).replace(/^0+/, '');
return (root + '.' + docStr).substring(0, 64);
}
exports.toUID = toUID;
function nameBasedUID(name, root) {
return toUID(root, (0, uuid_1.v5)(name, uuidNamespace));
}
exports.nameBasedUID = nameBasedUID;
function randomUID(root) {
return toUID(root, (0, uuid_1.v4)());
}
exports.randomUID = randomUID;
exports.multiValueDelimiter = '\\';
exports.emptyBuffer = Buffer.alloc(0);
function toUInt32(num) {
return num >>> 0;
}
exports.toUInt32 = toUInt32;
function toInt32(num) {
return num >> 0;
}
exports.toInt32 = toInt32;
function shiftLeftUnsigned(num, n) {
return toUInt32(num << n);
}
exports.shiftLeftUnsigned = shiftLeftUnsigned;
function groupNumber(tag) {
return tag >>> 16;
}
exports.groupNumber = groupNumber;
function elementNumber(tag) {
return tag & 0xffff;
}
exports.elementNumber = elementNumber;
function bytesToShortBE(bytes) {
return bytes.readInt16BE(0);
}
exports.bytesToShortBE = bytesToShortBE;
function bytesToShortLE(bytes) {
return bytes.readInt16LE(0);
}
exports.bytesToShortLE = bytesToShortLE;
function bytesToShort(bytes, bigEndian = false) {
return bigEndian ? bytesToShortBE(bytes) : bytesToShortLE(bytes);
}
exports.bytesToShort = bytesToShort;
function bytesToUShortBE(bytes) {
return bytes.readUInt16BE(0);
}
exports.bytesToUShortBE = bytesToUShortBE;
function bytesToUShortLE(bytes) {
return bytes.readUInt16LE(0);
}
exports.bytesToUShortLE = bytesToUShortLE;
function bytesToUShort(bytes, bigEndian = false) {
return bigEndian ? bytesToUShortBE(bytes) : bytesToUShortLE(bytes);
}
exports.bytesToUShort = bytesToUShort;
function bytesToVR(bytes) {
return bytesToUShortBE(bytes);
}
exports.bytesToVR = bytesToVR;
function bytesToIntBE(bytes) {
return bytes.readInt32BE(0);
}
exports.bytesToIntBE = bytesToIntBE;
function bytesToIntLE(bytes) {
return bytes.readInt32LE(0);
}
exports.bytesToIntLE = bytesToIntLE;
function bytesToInt(bytes, bigEndian = false) {
return bigEndian ? bytesToIntBE(bytes) : bytesToIntLE(bytes);
}
exports.bytesToInt = bytesToInt;
function bytesToUIntBE(bytes) {
return bytes.readUInt32BE(0);
}
exports.bytesToUIntBE = bytesToUIntBE;
function bytesToUIntLE(bytes) {
return bytes.readUInt32LE(0);
}
exports.bytesToUIntLE = bytesToUIntLE;
function bytesToUInt(bytes, bigEndian = false) {
return bigEndian ? bytesToUIntBE(bytes) : bytesToUIntLE(bytes);
}
exports.bytesToUInt = bytesToUInt;
function bytesToTagBE(bytes) {
return bytesToUIntBE(bytes);
}
exports.bytesToTagBE = bytesToTagBE;
function bytesToTagLE(bytes) {
return shiftLeftUnsigned(bytes.readUInt16LE(0), 16) + bytes.readUInt16LE(2);
}
exports.bytesToTagLE = bytesToTagLE;
function bytesToTag(bytes, bigEndian = false) {
return bigEndian ? bytesToTagBE(bytes) : bytesToTagLE(bytes);
}
exports.bytesToTag = bytesToTag;
function bytesToFloatBE(bytes) {
return bytes.readFloatBE(0);
}
exports.bytesToFloatBE = bytesToFloatBE;
function bytesToFloatLE(bytes) {
return bytes.readFloatLE(0);
}
exports.bytesToFloatLE = bytesToFloatLE;
function bytesToFloat(bytes, bigEndian = false) {
return bigEndian ? bytesToFloatBE(bytes) : bytesToFloatLE(bytes);
}
exports.bytesToFloat = bytesToFloat;
function bytesToDoubleBE(bytes) {
return bytes.readDoubleBE(0);
}
exports.bytesToDoubleBE = bytesToDoubleBE;
function bytesToDoubleLE(bytes) {
return bytes.readDoubleLE(0);
}
exports.bytesToDoubleLE = bytesToDoubleLE;
function bytesToDouble(bytes, bigEndian = false) {
return bigEndian ? bytesToDoubleBE(bytes) : bytesToDoubleLE(bytes);
}
exports.bytesToDouble = bytesToDouble;
function intToBytesBE(i) {
return Buffer.from([i >> 24, i >> 16, i >> 8, i]);
}
exports.intToBytesBE = intToBytesBE;
function intToBytesLE(i) {
return Buffer.from([i, i >> 8, i >> 16, i >> 24]);
}
exports.intToBytesLE = intToBytesLE;
function shortToBytesBE(i) {
return Buffer.from([i >> 8, i]);
}
exports.shortToBytesBE = shortToBytesBE;
function shortToBytesLE(i) {
return Buffer.from([i, i >> 8]);
}
exports.shortToBytesLE = shortToBytesLE;
function shortToBytes(i, bigEndian = false) {
return bigEndian ? shortToBytesBE(i) : shortToBytesLE(i);
}
exports.shortToBytes = shortToBytes;
function intToBytes(i, bigEndian = false) {
return bigEndian ? intToBytesBE(i) : intToBytesLE(i);
}
exports.intToBytes = intToBytes;
function tagToBytesBE(tag) {
return intToBytesBE(tag);
}
exports.tagToBytesBE = tagToBytesBE;
function tagToBytesLE(tag) {
return Buffer.from([tag >> 16, tag >> 24, tag, tag >> 8]);
}
exports.tagToBytesLE = tagToBytesLE;
function tagToBytes(tag, bigEndian = false) {
return bigEndian ? tagToBytesBE(tag) : tagToBytesLE(tag);
}
exports.tagToBytes = tagToBytes;
function floatToBytes(f, bigEndian = false) {
const buf = Buffer.allocUnsafe(4);
if (bigEndian) {
buf.writeFloatBE(f, 0);
}
else {
buf.writeFloatLE(f, 0);
}
return buf;
}
exports.floatToBytes = floatToBytes;
function doubleToBytes(f, bigEndian = false) {
const buf = Buffer.allocUnsafe(8);
if (bigEndian) {
buf.writeDoubleBE(f, 0);
}
else {
buf.writeDoubleLE(f, 0);
}
return buf;
}
exports.doubleToBytes = doubleToBytes;
function tagToString(tag) {
const hex = ('00000000' + tag.toString(16)).slice(-8);
return '(' + hex.slice(0, 4) + ',' + hex.slice(4, 8) + ')';
}
exports.tagToString = tagToString;
function trim(s) {
return s.replace(/^[\x00-\x20]*/g, '').replace(/[\x00-\x20]*$/g, '');
}
exports.trim = trim;
function padToEvenLength(bytes, tagOrVR) {
const vr = isNaN(tagOrVR) ? tagOrVR : lookup_1.Lookup.vrOf(tagOrVR);
return (bytes.length & 1) !== 0 ? concat(bytes, Buffer.from([vr.paddingByte])) : bytes;
}
exports.padToEvenLength = padToEvenLength;
exports.itemLE = concat(tagToBytesLE(tag_1.Tag.Item), intToBytesLE(exports.indeterminateLength));
exports.itemBE = concat(tagToBytesBE(tag_1.Tag.Item), intToBytesBE(exports.indeterminateLength));
function item(length = exports.indeterminateLength, bigEndian = false) {
return length === exports.indeterminateLength
? bigEndian
? exports.itemBE
: exports.itemLE
: concat(tagToBytes(tag_1.Tag.Item, bigEndian), intToBytes(length, bigEndian));
}
exports.item = item;
exports.itemDelimitationLE = concat(tagToBytesLE(tag_1.Tag.ItemDelimitationItem), exports.zero4Bytes);
exports.itemDelimitationBE = concat(tagToBytesBE(tag_1.Tag.ItemDelimitationItem), exports.zero4Bytes);
function itemDelimitation(bigEndian = false) {
return bigEndian ? exports.itemDelimitationBE : exports.itemDelimitationLE;
}
exports.itemDelimitation = itemDelimitation;
exports.sequenceDelimitationLE = concat(tagToBytesLE(tag_1.Tag.SequenceDelimitationItem), exports.zero4Bytes);
exports.sequenceDelimitationBE = concat(tagToBytesBE(tag_1.Tag.SequenceDelimitationItem), exports.zero4Bytes);
function sequenceDelimitation(bigEndian = false) {
return bigEndian ? exports.sequenceDelimitationBE : exports.sequenceDelimitationLE;
}
exports.sequenceDelimitation = sequenceDelimitation;
function sequenceDelimitationNonZeroLength(bigEndian = false) {
return concatv(tagToBytes(tag_1.Tag.SequenceDelimitationItem, bigEndian), intToBytes(0x00000010, bigEndian));
}
exports.sequenceDelimitationNonZeroLength = sequenceDelimitationNonZeroLength;
function isFileMetaInformation(tag) {
return (tag & 0xffff0000) === 0x00020000;
}
exports.isFileMetaInformation = isFileMetaInformation;
function isGroupLength(tag) {
return elementNumber(tag) === 0;
}
exports.isGroupLength = isGroupLength;
function isDeflated(transferSyntaxUid) {
return transferSyntaxUid === uid_1.UID.DeflatedExplicitVRLittleEndian || transferSyntaxUid === uid_1.UID.JPIPReferencedDeflate;
}
exports.isDeflated = isDeflated;
exports.systemZone = js_joda_1.ZoneId.SYSTEM;
exports.defaultCharacterSet = CS.defaultCharacterSet;
function createUID() {
return randomUID(uidRoot);
}
exports.createUID = createUID;
function createUIDFromRoot(root) {
return randomUID(root);
}
exports.createUIDFromRoot = createUIDFromRoot;
function createNameBasedUID(name) {
return nameBasedUID(name, uidRoot);
}
exports.createNameBasedUID = createNameBasedUID;
function createNameBasedUIDFromRoot(name, root) {
return nameBasedUID(name, root);
}
exports.createNameBasedUIDFromRoot = createNameBasedUIDFromRoot;
function pipe(...streams) {
return (0, multipipe_1.default)(streams);
}
exports.pipe = pipe;
/***/ }),
/***/ "./src/byte-parser.ts":
/*!****************************!*\
!*** ./src/byte-parser.ts ***!
\****************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ByteParser = exports.ByteReader = exports.ParseResult = exports.finishedParser = exports.ParseStep = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const recurse = true;
const dontRecurse = false;
const needMoreData = new Error();
class ParseStep {
onTruncation(reader) {
throw Error(reader.remainingSize() + ' bytes remain after finished parsing');
}
}
exports.ParseStep = ParseStep;
class FinishedParser extends ParseStep {
parse() {
throw Error('No initial parser installed: you must use startWith(...)');
}
}
exports.finishedParser = new FinishedParser();
class ParseResult {
constructor(result, nextStep) {
this.result = result;
this.nextStep = nextStep;
}
}
exports.ParseResult = ParseResult;
class ByteReader {
constructor(input) {
this.input = base_1.emptyBuffer;
this.off = 0;
this.setInput(input);
}
setInput(input) {
this.input = input;
this.off = 0;
}
hasRemaining() {
return this.off < this.input.length;
}
remainingSize() {
return this.input.length - this.off;
}
remainingData() {
return this.hasRemaining() ? this.input.slice(this.off) : base_1.emptyBuffer;
}
ensure(n) {
if (this.remainingSize() < n) {
throw needMoreData;
}
}
take(n) {
if (this.off + n <= this.input.length) {
const o = this.off;
this.off = o + n;
return this.input.slice(o, this.off);
}
else {
throw needMoreData;
}
}
}
exports.ByteReader = ByteReader;
class ByteParser {
constructor(out) {
this.out = out;
this.current = exports.finishedParser;
this.isCompleted = false;
this.hasData = false;
this.reader = new ByteReader(base_1.emptyBuffer);
this.buffer = base_1.emptyBuffer;
}
parse(chunk) {
this.buffer = (0, base_1.concat)(this.buffer, chunk);
this.hasData = chunk.length > 0;
while (this.hasData && !this.isCompleted) {
this.doParse(1000);
}
}
flush() {
if (!this.isCompleted) {
if (this.buffer.length > 0) {
try {
this.reader.setInput(this.buffer);
this.current.onTruncation(this.reader);
this.complete();
}
catch (error) {
this.fail(error);
}
}
else {
this.complete();
}
}
}
startWith(step) {
this.current = step;
}
complete() {
this.isCompleted = true;
this.buffer = base_1.emptyBuffer;
this.reader = null;
this.out.complete();
}
fail(error) {
error.message = 'Parsing failed: ' + (error && error.message ? error.message : '');
this.isCompleted = true;
this.buffer = base_1.emptyBuffer;
this.reader = null;
this.out.fail(error);
}
doParseInner() {
if (this.buffer.length > 0) {
this.reader.setInput(this.buffer);
try {
const parseResult = this.current.parse(this.reader);
if (parseResult.result) {
this.out.next(parseResult.result);
}
if (parseResult.nextStep === exports.finishedParser) {
this.complete();
return dontRecurse;
}
else {
this.buffer = this.reader.remainingData();
this.current = parseResult.nextStep;
if (!this.reader.hasRemaining()) {
this.hasData = false;
}
// If this step didn't produce a result, continue parsing.
if (!parseResult.result) {
return recurse;
}
else {
return dontRecurse;
}
}
}
catch (error) {
if (error === needMoreData) {
this.hasData = false;
return dontRecurse;
}
this.fail(error);
return dontRecurse;
}
}
else {
this.hasData = false;
return dontRecurse;
}
}
doParse(remainingRecursions) {
if (remainingRecursions === 0) {
this.fail(new Error("Parsing logic didn't produce result. Aborting processing to avoid infinite cycles."));
}
else {
const doRecurse = this.doParseInner();
if (doRecurse) {
this.doParse(remainingRecursions - 1);
}
}
}
}
exports.ByteParser = ByteParser;
/***/ }),
/***/ "./src/character-sets.ts":
/*!*******************************!*\
!*** ./src/character-sets.ts ***!
\*******************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.defaultCharacterSet = exports.CharacterSets = void 0;
const dicom_character_set_1 = __webpack_require__(/*! dicom-character-set */ "dicom-character-set");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
class CharacterSets {
static isVrAffectedBySpecificCharacterSet(vr) {
return vr === vr_1.VR.LO || vr === vr_1.VR.LT || vr === vr_1.VR.PN || vr === vr_1.VR.SH || vr === vr_1.VR.ST || vr === vr_1.VR.UT;
}
static fromNames(names) {
return new CharacterSets(names);
}
static fromBytes(specificCharacterSetBytes) {
return !specificCharacterSetBytes || specificCharacterSetBytes.length === 0
? exports.defaultCharacterSet
: new CharacterSets(specificCharacterSetBytes.toString().trim());
}
static encode(s) {
return Buffer.from(s, 'utf8');
}
static defaultOnly() {
return new CharacterSets('');
}
constructor(charsets) {
this.charsets = charsets;
}
decode(bytes, vr) {
try {
return (0, dicom_character_set_1.convertBytes)(this.charsets, bytes, { vr: vr.name });
}
catch (err) {
console.warn('Cannot decode using character set: ' + this.charsets + ', using default instead: ' + err);
return exports.defaultCharacterSet.decode(bytes, vr);
}
}
toString() {
return 'CharacterSets [' + this.charsets.split('\\').join(',') + ']';
}
}
exports.CharacterSets = CharacterSets;
exports.defaultCharacterSet = CharacterSets.defaultOnly();
/***/ }),
/***/ "./src/collect-flow.ts":
/*!*****************************!*\
!*** ./src/collect-flow.ts ***!
\*****************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.collectFromTagPathsFlow = exports.collectFlow = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const dicom_flow_1 = __webpack_require__(/*! ./dicom-flow */ "./src/dicom-flow.ts");
const dicom_elements_1 = __webpack_require__(/*! ./dicom-elements */ "./src/dicom-elements.ts");
const dicom_parts_1 = __webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts");
const value_1 = __webpack_require__(/*! ./value */ "./src/value.ts");
const elements_builder_1 = __webpack_require__(/*! ./elements-builder */ "./src/elements-builder.ts");
function collectFlow(tagCondition, stopCondition, label, maxBufferSize = 1000000) {
return (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.EndEvent)((0, dicom_flow_1.TagPathTracking)((0, dicom_flow_1.GuaranteedDelimitationEvents)((0, dicom_flow_1.GuaranteedValueEvent)((0, dicom_flow_1.InFragments)(dicom_flow_1.DeferToPartFlow))))) {
constructor() {
super(...arguments);
this.buffer = [];
this.currentBufferSize = 0;
this.hasEmitted = false;
this.bytes = base_1.emptyBuffer;
this.currentValue = undefined;
this.currentFragment = undefined;
this.builder = new elements_builder_1.ElementsBuilder();
}
elementsAndBuffer() {
const parts = (0, base_1.prependToArray)(new dicom_parts_1.ElementsPart(label, this.builder.build()), this.buffer);
this.hasEmitted = true;
this.buffer = [];
this.currentBufferSize = 0;
return parts;
}
maybeAdd(element) {
return tagCondition(this.tagPath)
? this.builder.addElement(element)
: this.builder.noteElement(element);
}
onEnd() {
return this.hasEmitted ? [] : this.elementsAndBuffer();
}
onPart(part) {
if (this.hasEmitted) {
return [part];
}
else {
if (maxBufferSize > 0 && this.currentBufferSize > maxBufferSize) {
throw Error('Error collecting elements: max buffer size exceeded');
}
if (part !== dicom_flow_1.valueChunkMarker &&
part !== dicom_flow_1.sequenceDelimitationPartMarker &&
!(part instanceof dicom_flow_1.ItemDelimitationPartMarker)) {
this.buffer.push(part);
this.currentBufferSize += part.bytes.length;
}
if ('tag' in part && stopCondition(this.tagPath)) {
return this.elementsAndBuffer();
}
if (part instanceof dicom_parts_1.HeaderPart) {
this.currentValue = new dicom_elements_1.ValueElement(part.tag, part.vr, value_1.Value.empty(), part.bigEndian, part.explicitVR);
this.bytes = base_1.emptyBuffer;
return [];
}
if (part instanceof dicom_parts_1.ItemPart && this.inFragments) {
this.currentFragment = new dicom_elements_1.FragmentElement(part.length, value_1.Value.empty(), part.bigEndian);
this.bytes = base_1.emptyBuffer;
return [];
}
if (part instanceof dicom_parts_1.ValueChunk) {
this.bytes = (0, base_1.concat)(this.bytes, part.bytes);
if (part.last) {
if (this.inFragments && this.currentFragment) {
this.maybeAdd(new dicom_elements_1.FragmentElement(this.currentFragment.length, new value_1.Value(this.bytes), this.currentFragment.bigEndian));
}
else if (this.currentValue) {
this.maybeAdd(new dicom_elements_1.ValueElement(this.currentValue.tag, this.currentValue.vr, new value_1.Value(this.bytes), this.currentValue.bigEndian, this.currentValue.explicitVR));
}
this.currentFragment = undefined;
this.currentValue = undefined;
}
return [];
}
if (part instanceof dicom_parts_1.SequencePart) {
this.maybeAdd(new dicom_elements_1.SequenceElement(part.tag, part.length, part.bigEndian, part.explicitVR));
return [];
}
if (part instanceof dicom_parts_1.FragmentsPart) {
this.maybeAdd(new dicom_elements_1.FragmentsElement(part.tag, part.vr, part.bigEndian, part.explicitVR));
return [];
}
if (part instanceof dicom_parts_1.ItemPart) {
this.maybeAdd(new dicom_elements_1.ItemElement(part.length, part.bigEndian));
return [];
}
if (part instanceof dicom_flow_1.ItemDelimitationPartMarker) {
return [];
}
if (part instanceof dicom_parts_1.ItemDelimitationPart) {
this.maybeAdd(new dicom_elements_1.ItemDelimitationElement(part.bigEndian));
return [];
}
if (part === dicom_flow_1.sequenceDelimitationPartMarker) {
return [];
}
if (part instanceof dicom_parts_1.SequenceDelimitationPart) {
this.maybeAdd(new dicom_elements_1.SequenceDelimitationElement(part.bigEndian));
return [];
}
return [];
}
}
})());
}
exports.collectFlow = collectFlow;
function collectFromTagPathsFlow(allowlist, label, maxBufferSize) {
const maxTag = allowlist.length > 0 ? Math.max(...allowlist.map((t) => t.head().tag())) : 0;
const tagCondition = (currentPath) => allowlist.find((t) => t.hasTrunk(currentPath) || t.isTrunkOf(currentPath)) !== undefined;
const stopCondition = (tagPath) => allowlist.length === 0 || (tagPath.isRoot() && tagPath.tag() > maxTag);
return collectFlow(tagCondition, stopCondition, label, maxBufferSize);
}
exports.collectFromTagPathsFlow = collectFromTagPathsFlow;
/***/ }),
/***/ "./src/detour.ts":
/*!***********************!*\
!*** ./src/detour.ts ***!
\***********************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Detour = void 0;
const stream_1 = __webpack_require__(/*! stream */ "stream");
class Detour extends stream_1.Transform {
constructor(options, detourFlow) {
super(options);
this.options = options;
this.detourFlow = detourFlow;
this.detour = false;
if (detourFlow) {
this.setDetourFlow(detourFlow);
}
}
setDetourFlow(detourFlow) {
this.detourFlow = detourFlow;
}
setDetour(detour = true, initialChunk) {
this.detour = detour;
if (this.detourFlow !== undefined) {
if (this.detour) {
this.detourFlow.on('data', (chunk) => this.process(chunk));
this.detourFlow.once('end', () => this.cleanup());
this.detourFlow.once('error', (error) => this.emit('error', error));
}
else {
this.detourFlow.end();
}
}
if (initialChunk !== undefined && (initialChunk.length === undefined || initialChunk.length > 0)) {
if (detour && this.detourFlow !== undefined) {
this.detourFlow.write(initialChunk);
}
else {
this.write(initialChunk);
}
}
}
cleanup() {
// override to add custom cleanup code
}
_transform(chunk, encoding, callback) {
if (this.detour !== undefined && this.detourFlow !== undefined) {
if (!this.detourFlow.write(chunk)) {
this.detourFlow.once('drain', callback);
}
else {
process.nextTick(() => callback());
}
}
else {
this.process(chunk);
callback();
}
}
_flush(callback) {
if (this.detour && this.detourFlow) {
this.detourFlow.once('end', callback);
this.detourFlow.end();
}
else {
this.cleanup();
process.nextTick(() => callback());
}
}
}
exports.Detour = Detour;
/***/ }),
/***/ "./src/dicom-elements.ts":
/*!*******************************!*\
!*** ./src/dicom-elements.ts ***!
\*******************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Fragments = exports.Fragment = exports.Item = exports.Sequence = exports.SequenceDelimitationElement = exports.ItemDelimitationElement = exports.FragmentElement = exports.ItemElement = exports.FragmentsElement = exports.SequenceElement = exports.ValueElement = exports.preambleElement = exports.UnknownElement = exports.ElementSet = exports.Element = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const dicom_parts_1 = __webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const value_1 = __webpack_require__(/*! ./value */ "./src/value.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
class Element {
constructor(bigEndian = false) {
this.bigEndian = bigEndian;
}
toBytes() {
return base_1.emptyBuffer;
}
toParts() {
return [];
}
}
exports.Element = Element;
class ElementSet {
constructor(tag, vr, bigEndian = false, explicitVR = true) {
this.tag = tag;
this.vr = vr;
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
}
toBytes() {
return base_1.emptyBuffer;
}
toElements() {
return [];
}
}
exports.ElementSet = ElementSet;
class UnknownElement extends Element {
constructor(bigEndian) {
super(bigEndian);
}
}
exports.UnknownElement = UnknownElement;
class PreambleElement extends Element {
constructor() {
super(false);
}
toBytes() {
return (0, base_1.concat)(Buffer.from(new Array(128).fill(0)), Buffer.from('DICM'));
}
toString() {
return 'PreambleElement(0, ..., 0, D, I, C, M)';
}
toParts() {
return [new dicom_parts_1.PreamblePart(this.toBytes())];
}
}
exports.preambleElement = new PreambleElement();
class ValueElement extends ElementSet {
constructor(tag, vr, value, bigEndian, explicitVR) {
super(tag, vr, bigEndian, explicitVR);
this.value = value;
this.length = value.length;
}
setValue(value) {
return new ValueElement(this.tag, this.vr, value.ensurePadding(this.vr), this.bigEndian, this.explicitVR);
}
toBytes() {
return this.toParts()
.map((p) => p.bytes)
.reduce(base_1.concat);
}
toParts() {
const headerPart = dicom_parts_1.HeaderPart.create(this.tag, this.vr, this.length, this.bigEndian, this.explicitVR);
if (this.length > 0) {
return [headerPart, new dicom_parts_1.ValueChunk(this.bigEndian, this.value.bytes, true)];
}
else {
return [headerPart];
}
}
toElements() {
return [this];
}
toString() {
const strings = this.value.toStrings(this.vr, this.bigEndian, base_1.defaultCharacterSet);
const s = strings.join(base_1.multiValueDelimiter);
const vm = strings.length + '';
return ('ValueElement(' +
(0, base_1.tagToString)(this.tag) +
' ' +
this.vr.name +
' [' +
s +
'] # ' +
this.length +
', ' +
vm +
' ' +
lookup_1.Lookup.keywordOf(this.tag) || 0);
}
}
exports.ValueElement = ValueElement;
class SequenceElement extends Element {
constructor(tag, length = base_1.indeterminateLength, bigEndian, explicitVR = true) {
super(bigEndian);
this.tag = tag;
this.length = length;
this.explicitVR = explicitVR;
this.tag = tag;
this.indeterminate = this.length === base_1.indeterminateLength;
}
toBytes() {
return dicom_parts_1.HeaderPart.create(this.tag, vr_1.VR.SQ, this.length, this.bigEndian, this.explicitVR).bytes;
}
toParts() {
return [new dicom_parts_1.SequencePart(this.tag, this.length, this.bigEndian, this.explicitVR, this.toBytes())];
}
toString() {
return ('SequenceElement(' + (0, base_1.tagToString)(this.tag) + ' SQ # ' + this.length + ' ' + lookup_1.Lookup.keywordOf(this.tag) ||
0);
}
}
exports.SequenceElement = SequenceElement;
class FragmentsElement extends Element {
constructor(tag, vr, bigEndian, explicitVR = true) {
super(bigEndian);
this.tag = tag;
this.vr = vr;
this.explicitVR = explicitVR;
}
toBytes() {
return this.toParts()[0].bytes;
}
toParts() {
return [
new dicom_parts_1.FragmentsPart(this.tag, base_1.indeterminateLength, this.vr, this.bigEndian, this.explicitVR, dicom_parts_1.HeaderPart.create(this.tag, this.vr, base_1.indeterminateLength, this.bigEndian, this.explicitVR).bytes),
];
}
toString() {
return ('FragmentsElement(' + (0, base_1.tagToString)(this.tag) + ' ' + this.vr.name + ' # ' + lookup_1.Lookup.keywordOf(this.tag) ||
0);
}
}
exports.FragmentsElement = FragmentsElement;
class ItemElement extends Element {
constructor(length = base_1.indeterminateLength, bigEndian) {
super(bigEndian);
this.length = length;
this.indeterminate = this.length === base_1.indeterminateLength;
}
toBytes() {
return (0, base_1.concat)((0, base_1.tagToBytes)(tag_1.Tag.Item, this.bigEndian), (0, base_1.intToBytes)(this.length, this.bigEndian));
}
toParts() {
return [new dicom_parts_1.ItemPart(this.length, this.bigEndian, this.toBytes())];
}
toString() {
return 'ItemElement(length = ' + this.length + ')';
}
}
exports.ItemElement = ItemElement;
class FragmentElement extends Element {
constructor(length, value, bigEndian) {
super(bigEndian);
this.length = length;
this.value = value;
}
toBytes() {
return this.toParts()
.map((p) => p.bytes)
.reduce(base_1.concat);
}
toParts() {
const itemParts = new ItemElement(this.value.length, this.bigEndian).toParts();
if (this.value.length !== 0) {
itemParts.push(new dicom_parts_1.ValueChunk(this.bigEndian, this.value.bytes, true));
}
return itemParts;
}
toString() {
return 'FragmentElement(length = ' + this.length + ')';
}
}
exports.FragmentElement = FragmentElement;
class ItemDelimitationElement extends Element {
constructor(bigEndian) {
super(bigEndian);
}
toBytes() {
return (0, base_1.concat)((0, base_1.tagToBytes)(tag_1.Tag.ItemDelimitationItem, this.bigEndian), Buffer.from([0, 0, 0, 0]));
}
toParts() {
return [new dicom_parts_1.ItemDelimitationPart(this.bigEndian, this.toBytes())];
}
toString() {
return 'ItemDelimitationElement';
}
}
exports.ItemDelimitationElement = ItemDelimitationElement;
class SequenceDelimitationElement extends Element {
constructor(bigEndian) {
super(bigEndian);
}
toBytes() {
return (0, base_1.concat)((0, base_1.tagToBytes)(tag_1.Tag.SequenceDelimitationItem, this.bigEndian), Buffer.from([0, 0, 0, 0]));
}
toParts() {
return [new dicom_parts_1.SequenceDelimitationPart(this.bigEndian, this.toBytes())];
}
toString() {
return 'SequenceDelimitationElement';
}
}
exports.SequenceDelimitationElement = SequenceDelimitationElement;
class Sequence extends ElementSet {
constructor(tag, length = base_1.indeterminateLength, items = [], bigEndian, explicitVR) {
super(tag, vr_1.VR.SQ, bigEndian, explicitVR);
this.tag = tag;
this.length = length;
this.items = items;
this.indeterminate = length === base_1.indeterminateLength;
this.size = items.length;
}
item(index) {
return this.items.length >= index ? this.items[index - 1] : undefined;
}
addItem(item) {
const newItems = (0, base_1.appendToArray)(item, this.items);
const newLength = this.indeterminate ? this.length : this.length + item.toBytes().length;
return new Sequence(this.tag, newLength, newItems, this.bigEndian, this.explicitVR);
}
removeItem(index) {
const newItems = this.items.slice();
newItems.splice(index - 1, 1);
const newLength = this.indeterminate ? this.length : this.length - this.item(index).toBytes().length;
return new Sequence(this.tag, newLength, newItems, this.bigEndian, this.explicitVR);
}
toBytes() {
return this.toElements()
.map((e) => e.toBytes())
.reduce(base_1.concat, base_1.emptyBuffer);
}
toElements() {
const elements = [];
elements.push(new SequenceElement(this.tag, this.length, this.bigEndian, this.explicitVR));
for (let i = 1; i <= this.items.length; i++) {
const itemElements = this.item(i).toElements();
itemElements.forEach((e) => elements.push(e));
}
if (this.indeterminate) {
elements.push(new SequenceDelimitationElement(this.bigEndian));
}
return elements;
}
setItem(index, item) {
const newItems = this.items.slice();
newItems[index - 1] = item;
return new Sequence(this.tag, this.length, newItems, this.bigEndian, this.explicitVR);
}
toString() {
return ('Sequence(' +
(0, base_1.tagToString)(this.tag) +
' SQ # ' +
this.length +
' ' +
this.size +
' ' +
lookup_1.Lookup.keywordOf(this.tag) || 0);
}
}
exports.Sequence = Sequence;
class Item {
constructor(elements, length = base_1.indeterminateLength, bigEndian = false) {
this.elements = elements;
this.length = length;
this.bigEndian = bigEndian;
this.indeterminate = length === base_1.indeterminateLength;
}
toElements() {
const elements = [];
elements.push(new ItemElement(this.length, this.bigEndian));
this.elements.toElements(false).forEach((e) => elements.push(e));
if (this.indeterminate) {
elements.push(new ItemDelimitationElement(this.bigEndian));
}
return elements;
}
toBytes() {
return this.toElements()
.map((e) => e.toBytes())
.reduce(base_1.concat);
}
setElements(elements) {
const newLength = this.indeterminate ? base_1.indeterminateLength : elements.toBytes(false).length;
return new Item(elements, newLength, this.bigEndian);
}
toString() {
return 'Item(length = ' + this.length + ', elements size = ' + this.elements.size + ')';
}
}
exports.Item = Item;
class Fragment {
constructor(length, value, bigEndian = false) {
this.length = length;
this.value = value;
this.bigEndian = bigEndian;
}
toElement() {
return new FragmentElement(this.length, this.value, this.bigEndian);
}
toString() {
return 'Fragment(length = ' + this.length + ', value length = ' + this.value.length + ')';
}
}
exports.Fragment = Fragment;
class Fragments extends ElementSet {
constructor(tag, vr, offsets, fragments = [], bigEndian, explicitVR) {
super(tag, vr, bigEndian, explicitVR);
this.tag = tag;
this.vr = vr;
this.offsets = offsets;
this.fragments = fragments;
this.size = fragments.length;
}
fragment(index) {
return this.fragments.length > index ? undefined : this.fragments[index - 1];
}
frameCount() {
return this.offsets === undefined && this.fragments.length === 0
? 0
: this.offsets === undefined
? 1
: this.offsets.length;
}
addFragment(fragment) {
if (this.size === 0 && this.offsets === undefined) {
const bytes = fragment.value.bytes;
const offsets = [];
for (let i = 0; i < bytes.length; i += 4) {
offsets.push((0, base_1.bytesToUInt)(bytes.slice(i), fragment.bigEndian));
}
return new Fragments(this.tag, this.vr, offsets, this.fragments, this.bigEndian, this.explicitVR);
}
else {
return new Fragments(this.tag, this.vr, this.offsets, (0, base_1.appendToArray)(fragment, this.fragments), this.bigEndian, this.explicitVR);
}
}
toBytes() {
return this.toElements()
.map((e) => e.toBytes())
.reduce(base_1.concat);
}
toElements() {
const elements = [];
elements.push(new FragmentsElement(this.tag, this.vr, this.bigEndian, this.explicitVR));
if (this.offsets !== undefined) {
elements.push(new FragmentElement(4 * this.offsets.length, new value_1.Value(this.offsets
.map((offset) => (0, base_1.intToBytes)(offset, this.bigEndian), this.bigEndian)
.reduce(base_1.concat, base_1.emptyBuffer)), this.bigEndian));
}
else {
elements.push(new FragmentElement(0, value_1.Value.empty()));
}
for (let i = 1; i <= this.fragments.length; i++) {
elements.push(this.fragment(i).toElement());
}
elements.push(new SequenceDelimitationElement(this.bigEndian));
return elements;
}
setFragment(index, fragment) {
const newFragments = this.fragments.slice();
newFragments[index - 1] = fragment;
return new Fragments(this.tag, this.vr, this.offsets, newFragments, this.bigEndian, this.explicitVR);
}
toString() {
return `Fragments(${(0, base_1.tagToString)(this.tag)} ${this.vr.name} # ${this.fragments.length} ${lookup_1.Lookup.keywordOf(this.tag) || ''})`;
}
}
exports.Fragments = Fragments;
/***/ }),
/***/ "./src/dicom-flow.ts":
/*!***************************!*\
!*** ./src/dicom-flow.ts ***!
\***************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.GroupLengthWarnings = exports.TagPathTracking = exports.InSequence = exports.GuaranteedDelimitationEvents = exports.itemDelimitationPartMarker = exports.ItemDelimitationPartMarker = exports.sequenceDelimitationPartMarker = exports.GuaranteedValueEvent = exports.valueChunkMarker = exports.InFragments = exports.EndEvent = exports.dicomEndMarker = exports.StartEvent = exports.dicomStartMarker = exports.DeferToPartFlow = exports.IdentityFlow = exports.DicomFlow = exports.createFlow = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const flows_1 = __webpack_require__(/*! ./flows */ "./src/flows.ts");
const dicom_parts_1 = __webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const tag_path_1 = __webpack_require__(/*! ./tag-path */ "./src/tag-path.ts");
function createFlow(flow) {
return (0, base_1.pipe)(flow.baseFlow(), (0, flows_1.flatMapFlow)(flow.handlePart.bind(flow)));
}
exports.createFlow = createFlow;
class DicomFlow {
baseFlow() {
return (0, flows_1.identityFlow)(true);
}
handlePart(part) {
if (part instanceof dicom_parts_1.PreamblePart) {
return this.onPreamble(part);
}
if (part instanceof dicom_parts_1.HeaderPart) {
return this.onHeader(part);
}
if (part instanceof dicom_parts_1.ValueChunk) {
return this.onValueChunk(part);
}
if (part instanceof dicom_parts_1.SequencePart) {
return this.onSequence(part);
}
if (part instanceof dicom_parts_1.SequenceDelimitationPart) {
return this.onSequenceDelimitation(part);
}
if (part instanceof dicom_parts_1.FragmentsPart) {
return this.onFragments(part);
}
if (part instanceof dicom_parts_1.ItemPart) {
return this.onItem(part);
}
if (part instanceof dicom_parts_1.ItemDelimitationPart) {
return this.onItemDelimitation(part);
}
if (part instanceof dicom_parts_1.DeflatedChunk) {
return this.onDeflatedChunk(part);
}
if (part instanceof dicom_parts_1.UnknownPart) {
return this.onUnknown(part);
}
return this.onPart(part);
}
}
exports.DicomFlow = DicomFlow;
/**
* Depends on DicomFlow
*/
class IdentityFlow extends DicomFlow {
onPreamble(part) {
return [part];
}
onHeader(part) {
return [part];
}
onValueChunk(part) {
return [part];
}
onSequence(part) {
return [part];
}
onSequenceDelimitation(part) {
return [part];
}
onFragments(part) {
return [part];
}
onItem(part) {
return [part];
}
onItemDelimitation(part) {
return [part];
}
onDeflatedChunk(part) {
return [part];
}
onUnknown(part) {
return [part];
}
onPart(part) {
return [part];
}
}
exports.IdentityFlow = IdentityFlow;
/**
* Depends on DicomFlow
*/
class DeferToPartFlow extends DicomFlow {
onPreamble(part) {
return this.onPart(part);
}
onHeader(part) {
return this.onPart(part);
}
onValueChunk(part) {
return this.onPart(part);
}
onSequence(part) {
return this.onPart(part);
}
onSequenceDelimitation(part) {
return this.onPart(part);
}
onFragments(part) {
return this.onPart(part);
}
onDeflatedChunk(part) {
return this.onPart(part);
}
onUnknown(part) {
return this.onPart(part);
}
onItem(part) {
return this.onPart(part);
}
onItemDelimitation(part) {
return this.onPart(part);
}
}
exports.DeferToPartFlow = DeferToPartFlow;
class DicomStartMarker extends dicom_parts_1.MetaPart {
toString() {
return 'Start Marker []';
}
}
exports.dicomStartMarker = new DicomStartMarker();
const StartEvent = (Super) => class extends Super {
onStart() {
throw Error('Not implemented');
}
baseFlow() {
return (0, base_1.pipe)((0, flows_1.prependFlow)(exports.dicomStartMarker, true), super.baseFlow());
}
handlePart(part) {
return part === exports.dicomStartMarker ? this.onStart() : super.handlePart(part);
}
};
exports.StartEvent = StartEvent;
class DicomEndMarker extends dicom_parts_1.MetaPart {
toString() {
return 'End Marker []';
}
}
exports.dicomEndMarker = new DicomEndMarker();
const EndEvent = (Super) => class extends Super {
onEnd() {
throw Error('Not implemented');
}
baseFlow() {
return (0, base_1.pipe)((0, flows_1.appendFlow)(exports.dicomEndMarker, true), super.baseFlow());
}
handlePart(part) {
return part === exports.dicomEndMarker ? this.onEnd() : super.handlePart(part);
}
};
exports.EndEvent = EndEvent;
const InFragments = (Super) => class extends Super {
constructor() {
super(...arguments);
this.inFragments = false;
}
onFragments(part) {
this.inFragments = true;
return super.onFragments(part);
}
onSequenceDelimitation(part) {
this.inFragments = false;
return super.onSequenceDelimitation(part);
}
};
exports.InFragments = InFragments;
class ValueChunkMarker extends dicom_parts_1.ValueChunk {
constructor() {
super(false, base_1.emptyBuffer, true);
}
toString() {
return 'Value Chunk Marker []';
}
}
exports.valueChunkMarker = new ValueChunkMarker();
const GuaranteedValueEvent = (Super) => class extends Super {
onHeader(part) {
return part.length === 0
? super.onHeader(part).concat(this.onValueChunk(exports.valueChunkMarker))
: super.onHeader(part);
}
onItem(part) {
return this.inFragments && part.length === 0
? super.onItem(part).concat(this.onValueChunk(exports.valueChunkMarker))
: super.onItem(part);
}
onValueChunk(part) {
return super.onValueChunk(part).filter((c) => c !== exports.valueChunkMarker);
}
};
exports.GuaranteedValueEvent = GuaranteedValueEvent;
class SequenceDelimitationPartMarker extends dicom_parts_1.SequenceDelimitationPart {
constructor() {
super(false, base_1.emptyBuffer);
}
toString() {
return 'SequenceDelimitationMarker []';
}
}
exports.sequenceDelimitationPartMarker = new SequenceDelimitationPartMarker();
class ItemDelimitationPartMarker extends dicom_parts_1.ItemDelimitationPart {
constructor() {
super(false, base_1.emptyBuffer);
}
toString() {
return 'ItemDelimitationMarker []';
}
}
exports.ItemDelimitationPartMarker = ItemDelimitationPartMarker;
exports.itemDelimitationPartMarker = new ItemDelimitationPartMarker();
/**
* Depends on InFragments
*/
const GuaranteedDelimitationEvents = (Super) => class extends Super {
constructor() {
super(...arguments);
this.partStack = [];
}
onSequence(part) {
this.subtractLength(part);
this.partStack.unshift({ part, bytesLeft: part.length });
return super.onSequence(part).concat(this.maybeDelimit());
}
onItem(part) {
this.subtractLength(part);
if (!this.inFragments) {
this.partStack.unshift({ part, bytesLeft: part.length });
}
return super.onItem(part).concat(this.maybeDelimit());
}
onSequenceDelimitation(part) {
if (this.partStack.length > 0 && part != exports.sequenceDelimitationPartMarker && !this.inFragments) {
this.partStack.shift();
}
return this.subtractAndEmit(part, (p) => super.onSequenceDelimitation(p).filter((d) => d !== exports.sequenceDelimitationPartMarker));
}
onItemDelimitation(part) {
if (this.partStack.length > 0 && !(part instanceof ItemDelimitationPartMarker)) {
this.partStack.shift();
}
return this.subtractAndEmit(part, (p) => super.onItemDelimitation(p).filter((d) => !(d instanceof ItemDelimitationPartMarker)));
}
onHeader(part) {
return this.subtractAndEmit(part, super.onHeader.bind(this));
}
onValueChunk(part) {
return this.subtractAndEmit(part, super.onValueChunk.bind(this));
}
onFragments(part) {
return this.subtractAndEmit(part, super.onFragments.bind(this));
}
subtractLength(part) {
this.partStack.forEach((p) => {
if (p.bytesLeft != base_1.indeterminateLength) {
p.bytesLeft -= part.bytes.length;
}
});
}
maybeDelimit() {
let splitIndex = 0;
while (splitIndex < this.partStack.length &&
this.partStack[splitIndex].bytesLeft != base_1.indeterminateLength &&
this.partStack[splitIndex].bytesLeft <= 0) {
splitIndex++;
}
const inactive = this.partStack.slice(0, splitIndex);
this.partStack = this.partStack.slice(splitIndex);
const out = inactive.map((i) => i.part instanceof dicom_parts_1.ItemPart
? this.onItemDelimitation(exports.itemDelimitationPartMarker)
: this.onSequenceDelimitation(exports.sequenceDelimitationPartMarker));
return [].concat(...out);
}
subtractAndEmit(part, handle) {
this.subtractLength(part);
return handle(part).concat(this.maybeDelimit());
}
};
exports.GuaranteedDelimitationEvents = GuaranteedDelimitationEvents;
/**
* Depends on GuaranteedDelimitationEvents
*/
const InSequence = (Super) => class extends Super {
constructor() {
super(...arguments);
this.sequenceStack = [];
}
sequenceDepth() {
return this.sequenceStack.length;
}
inSequence() {
return this.sequenceStack.length > 0;
}
onSequence(part) {
this.sequenceStack.unshift(part);
return super.onSequence(part);
}
onSequenceDelimitation(part) {
if (!this.inFragments) {
this.sequenceStack.shift();
}
return super.onSequenceDelimitation(part);
}
};
exports.InSequence = InSequence;
/**
* Depends on GuaranteedValueEvent, GuaranteedDelimitationEvents, InFragments
*/
const TagPathTracking = (Super) => class extends Super {
constructor() {
super(...arguments);
this.tagPath = tag_path_1.emptyTagPath;
}
onHeader(part) {
const t = this.tagPath;
this.tagPath = t instanceof tag_path_1.TagPathItem ? t.thenTag(part.tag) : t.previous().thenTag(part.tag);
return super.onHeader(part);
}
onFragments(part) {
const t = this.tagPath;
this.tagPath = t instanceof tag_path_1.TagPathItem ? t.thenTag(part.tag) : t.previous().thenTag(part.tag);
return super.onFragments(part);
}
onSequence(part) {
const t = this.tagPath;
this.tagPath = t instanceof tag_path_1.TagPathItem ? t.thenSequence(part.tag) : t.previous().thenSequence(part.tag);
return super.onSequence(part);
}
onSequenceDelimitation(part) {
const t = this.tagPath;
if (!this.inFragments) {
this.tagPath = t.previous().thenSequenceEnd(t.tag());
}
return super.onSequenceDelimitation(part);
}
onItem(part) {
const t = this.tagPath;
if (!this.inFragments) {
if (t instanceof tag_path_1.TagPathItemEnd) {
this.tagPath = t.previous().thenItem(t.tag(), t.item + 1);
}
else {
this.tagPath = t.previous().thenItem(t.tag(), 1);
}
}
return super.onItem(part);
}
onItemDelimitation(part) {
const t = this.tagPath;
if (t instanceof tag_path_1.TagPathItem) {
this.tagPath = t.previous().thenItemEnd(t.tag(), t.item);
}
else {
const ti = t.previous();
if (ti instanceof tag_path_1.TagPathItem) {
this.tagPath = ti.previous().thenItemEnd(ti.tag(), ti.item);
}
}
return super.onItemDelimitation(part);
}
};
exports.TagPathTracking = TagPathTracking;
/**
* Depends on InFragments
*/
const GroupLengthWarnings = (Super) => class extends Super {
constructor() {
super(...arguments);
this.silent = false;
}
setSilent(silent) {
this.silent = silent;
}
onHeader(part) {
if (!this.silent && (0, base_1.isGroupLength)(part.tag) && part.tag !== tag_1.Tag.FileMetaInformationGroupLength) {
console.warn('Group length attribute detected, consider removing group lengths to maintain valid ' +
'DICOM information');
}
return super.onHeader(part);
}
onSequence(part) {
if (!this.silent && !part.indeterminate && part.length > 0) {
console.warn('Determinate length sequence detected, consider re-encoding sequences to indeterminate ' +
'length to maintain valid DICOM information');
}
return super.onSequence(part);
}
onItem(part) {
if (!this.silent && !this.inFragments && !part.indeterminate && part.length > 0) {
console.warn('Determinate length item detected, consider re-encoding items to indeterminate length to ' +
'maintain valid DICOM information');
}
return super.onItem(part);
}
};
exports.GroupLengthWarnings = GroupLengthWarnings;
/***/ }),
/***/ "./src/dicom-flows.ts":
/*!****************************!*\
!*** ./src/dicom-flows.ts ***!
\****************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.deflateDatasetFlow = exports.toUtf8Flow = exports.toIndeterminateLengthSequences = exports.fmiGroupLengthFlow = exports.validateContextFlow = exports.ValidationContext = exports.headerFilter = exports.fmiDiscardFilter = exports.groupLengthDiscardFilter = exports.denyFilter = exports.allowFilter = exports.tagFilter = exports.stopTagFlow = exports.toBytesFlow = void 0;
const stream_1 = __webpack_require__(/*! stream */ "stream");
const zlib_1 = __webpack_require__(/*! zlib */ "zlib");
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const character_sets_1 = __webpack_require__(/*! ./character-sets */ "./src/character-sets.ts");
const collect_flow_1 = __webpack_require__(/*! ./collect-flow */ "./src/collect-flow.ts");
const detour_1 = __webpack_require__(/*! ./detour */ "./src/detour.ts");
const dicom_flow_1 = __webpack_require__(/*! ./dicom-flow */ "./src/dicom-flow.ts");
const modify_flow_1 = __webpack_require__(/*! ./modify-flow */ "./src/modify-flow.ts");
const dicom_parts_1 = __webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const tag_path_1 = __webpack_require__(/*! ./tag-path */ "./src/tag-path.ts");
const tag_path_2 = __webpack_require__(/*! ./tag-path */ "./src/tag-path.ts");
const tag_tree_1 = __webpack_require__(/*! ./tag-tree */ "./src/tag-tree.ts");
const uid_1 = __webpack_require__(/*! ./uid */ "./src/uid.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
function toBytesFlow() {
return new stream_1.Transform({
writableObjectMode: true,
transform(chunk, encoding, callback) {
this.push(chunk.bytes);
process.nextTick(() => callback());
},
});
}
exports.toBytesFlow = toBytesFlow;
function stopTagFlow(tag) {
let endReached = false;
return (0, base_1.pipe)((0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.InSequence)((0, dicom_flow_1.GuaranteedDelimitationEvents)((0, dicom_flow_1.InFragments)(dicom_flow_1.IdentityFlow))) {
onHeader(part) {
const out = super.onHeader(part);
return this.inSequence() || part.tag < tag ? out : [dicom_flow_1.dicomEndMarker];
}
})()), new stream_1.Transform({
objectMode: true,
transform(chunk, encoding, callback) {
if (!endReached) {
if (chunk === dicom_flow_1.dicomEndMarker) {
endReached = true;
this.push(null);
}
else {
this.push(chunk);
}
}
process.nextTick(() => callback());
},
}));
}
exports.stopTagFlow = stopTagFlow;
function tagFilter(keepCondition, defaultCondition = () => true, logGroupLengthWarnings = false) {
return (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.TagPathTracking)((0, dicom_flow_1.GuaranteedDelimitationEvents)((0, dicom_flow_1.GuaranteedValueEvent)((0, dicom_flow_1.GroupLengthWarnings)((0, dicom_flow_1.InFragments)(dicom_flow_1.DeferToPartFlow))))) {
constructor() {
super();
this.keeping = false;
this.setSilent(!logGroupLengthWarnings);
}
onPart(part) {
this.keeping = this.tagPath === tag_path_2.emptyTagPath ? defaultCondition(part) : keepCondition(this.tagPath);
return this.keeping ? [part] : [];
}
})());
}
exports.tagFilter = tagFilter;
function allowFilter(allowlist, defaultCondition, logGroupLengthWarnings) {
return tagFilter((currentPath) => allowlist.some((t) => t.hasTrunk(currentPath) || t.isTrunkOf(currentPath)), defaultCondition, logGroupLengthWarnings);
}
exports.allowFilter = allowFilter;
function denyFilter(denylist, defaultCondition, logGroupLengthWarnings) {
return tagFilter((currentPath) => !denylist.some((t) => t.isTrunkOf(currentPath)), defaultCondition, logGroupLengthWarnings);
}
exports.denyFilter = denyFilter;
function groupLengthDiscardFilter() {
return tagFilter((tagPath) => !(0, base_1.isGroupLength)(tagPath.tag()) || (0, base_1.isFileMetaInformation)(tagPath.tag()));
}
exports.groupLengthDiscardFilter = groupLengthDiscardFilter;
function fmiDiscardFilter() {
return tagFilter((tagPath) => !(0, base_1.isFileMetaInformation)(tagPath.tag()), () => false);
}
exports.fmiDiscardFilter = fmiDiscardFilter;
function headerFilter(keepCondition, logGroupLengthWarnings = false) {
return (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.GroupLengthWarnings)((0, dicom_flow_1.InFragments)(dicom_flow_1.DeferToPartFlow)) {
constructor() {
super();
this.keeping = false;
this.setSilent(!logGroupLengthWarnings);
}
onPart(part) {
if (part instanceof dicom_parts_1.HeaderPart) {
this.keeping = keepCondition(part);
return this.keeping ? [part] : [];
}
if (part instanceof dicom_parts_1.ValueChunk) {
return this.keeping ? [part] : [];
}
this.keeping = true;
return [part];
}
})());
}
exports.headerFilter = headerFilter;
class ValidationContext {
constructor(sopClassUID, transferSyntaxUID) {
this.sopClassUID = sopClassUID;
this.transferSyntaxUID = transferSyntaxUID;
}
}
exports.ValidationContext = ValidationContext;
function validateContextFlow(contexts) {
return (0, base_1.pipe)((0, collect_flow_1.collectFromTagPathsFlow)([
tag_tree_1.TagTree.fromTag(tag_1.Tag.MediaStorageSOPClassUID),
tag_tree_1.TagTree.fromTag(tag_1.Tag.TransferSyntaxUID),
tag_tree_1.TagTree.fromTag(tag_1.Tag.SOPClassUID),
], 'validatecontext'), (0, dicom_flow_1.createFlow)(new (class extends dicom_flow_1.DeferToPartFlow {
onPart(part) {
if (part instanceof dicom_parts_1.ElementsPart && part.label === 'validatecontext') {
let scuid = part.elements.stringByTag(tag_1.Tag.MediaStorageSOPClassUID);
if (scuid === undefined) {
scuid = part.elements.stringByTag(tag_1.Tag.SOPClassUID);
}
if (scuid === undefined) {
scuid = '<empty>';
}
let tsuid = part.elements.stringByTag(tag_1.Tag.TransferSyntaxUID);
if (tsuid === undefined) {
tsuid = '<empty>';
}
if (contexts.findIndex((c) => c.sopClassUID === scuid && c.transferSyntaxUID === tsuid) >= 0) {
return [];
}
else {
throw Error('The presentation context [SOPClassUID = ' +
scuid +
', TransferSyntaxUID = ' +
tsuid +
'] is not supported');
}
}
return [part];
}
})()));
}
exports.validateContextFlow = validateContextFlow;
function fmiGroupLengthFlow() {
return (0, base_1.pipe)((0, collect_flow_1.collectFlow)((tagPath) => tagPath.isRoot() && (0, base_1.isFileMetaInformation)(tagPath.tag()), (tagPath) => !(0, base_1.isFileMetaInformation)(tagPath.tag()), 'fmigrouplength'), tagFilter((tagPath) => !(0, base_1.isFileMetaInformation)(tagPath.tag()), () => true, false), (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.EndEvent)(dicom_flow_1.DeferToPartFlow) {
constructor() {
super(...arguments);
this.fmi = [];
this.hasEmitted = false;
}
onEnd() {
return this.hasEmitted ? [] : this.fmi;
}
onPart(part) {
if (part instanceof dicom_parts_1.ElementsPart && part.label === 'fmigrouplength') {
const elements = part.elements;
if (elements.data.length > 0) {
const bigEndian = elements.data[0].bigEndian;
const explicitVR = elements.data[0].explicitVR;
const fmiElementsNoLength = elements.filter((e) => e.tag !== tag_1.Tag.FileMetaInformationGroupLength);
const length = fmiElementsNoLength.data
.map((e) => e.toBytes().length)
.reduce((l1, l2) => l1 + l2, 0);
const lengthHeader = dicom_parts_1.HeaderPart.create(tag_1.Tag.FileMetaInformationGroupLength, vr_1.VR.UL, 4, bigEndian, explicitVR);
const lengthChunk = new dicom_parts_1.ValueChunk(bigEndian, (0, base_1.intToBytes)(length, bigEndian), true);
this.fmi = (0, base_1.concatArrays)([lengthHeader, lengthChunk], fmiElementsNoLength.toParts(false));
}
return [];
}
if (!this.hasEmitted && part.bytes.length > 0) {
this.hasEmitted = true;
return part instanceof dicom_parts_1.PreamblePart
? (0, base_1.prependToArray)(part, this.fmi)
: (0, base_1.appendToArray)(part, this.fmi);
}
return [part];
}
})()));
}
exports.fmiGroupLengthFlow = fmiGroupLengthFlow;
function toIndeterminateLengthSequences() {
return (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.GuaranteedDelimitationEvents)((0, dicom_flow_1.InFragments)(dicom_flow_1.IdentityFlow)) {
constructor() {
super(...arguments);
this.indeterminateBytes = Buffer.from([0xff, 0xff, 0xff, 0xff]);
}
onSequence(part) {
return super.onSequence(part).map((p) => {
if (p instanceof dicom_parts_1.SequencePart && !p.indeterminate) {
return new dicom_parts_1.SequencePart(part.tag, base_1.indeterminateLength, part.bigEndian, part.explicitVR, (0, base_1.concat)(part.bytes.slice(0, part.bytes.length - 4), this.indeterminateBytes));
}
return p;
});
}
onSequenceDelimitation(part) {
const out = super.onSequenceDelimitation(part);
if (part.bytes.length <= 0) {
out.push(new dicom_parts_1.SequenceDelimitationPart(part.bigEndian, (0, base_1.sequenceDelimitation)(part.bigEndian)));
}
return out;
}
onItem(part) {
return super.onItem(part).map((p) => {
if (p instanceof dicom_parts_1.ItemPart && !this.inFragments && !p.indeterminate) {
return new dicom_parts_1.ItemPart(base_1.indeterminateLength, part.bigEndian, (0, base_1.concat)(part.bytes.slice(0, part.bytes.length - 4), this.indeterminateBytes));
}
return p;
});
}
onItemDelimitation(part) {
const out = super.onItemDelimitation(part);
if (part.bytes.length <= 0) {
out.push(new dicom_parts_1.ItemDelimitationPart(part.bigEndian, (0, base_1.itemDelimitation)(part.bigEndian)));
}
return out;
}
})());
}
exports.toIndeterminateLengthSequences = toIndeterminateLengthSequences;
function toUtf8Flow() {
return (0, base_1.pipe)((0, collect_flow_1.collectFromTagPathsFlow)([tag_tree_1.TagTree.fromTag(tag_1.Tag.SpecificCharacterSet)], 'toutf8'), (0, modify_flow_1.modifyFlow)([], [new modify_flow_1.TagInsertion(tag_path_1.TagPath.fromTag(tag_1.Tag.SpecificCharacterSet), () => Buffer.from('ISO_IR 192'))]), (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.GroupLengthWarnings)((0, dicom_flow_1.InFragments)(dicom_flow_1.IdentityFlow)) {
constructor() {
super(...arguments);
this.characterSets = character_sets_1.defaultCharacterSet;
this.currentValue = base_1.emptyBuffer;
}
onHeader(part) {
if (part.length > 0 && character_sets_1.CharacterSets.isVrAffectedBySpecificCharacterSet(part.vr)) {
this.currentHeader = part;
this.currentValue = base_1.emptyBuffer;
return [];
}
else {
this.currentHeader = undefined;
return [part];
}
}
onValueChunk(part) {
if (this.currentHeader !== undefined && !this.inFragments) {
this.currentValue = (0, base_1.concat)(this.currentValue, part.bytes);
if (part.last) {
const header = this.currentHeader;
this.currentHeader = undefined;
const newValue = Buffer.from(this.characterSets.decode(this.currentValue, header.vr));
const newLength = newValue.length;
return [
header.withUpdatedLength(newLength),
new dicom_parts_1.ValueChunk(header.bigEndian, newValue, true),
];
}
else {
return [];
}
}
else {
return [part];
}
}
onPart(part) {
if (part instanceof dicom_parts_1.ElementsPart && part.label === 'toutf8') {
if (part.elements.contains(tag_1.Tag.SpecificCharacterSet)) {
this.characterSets = character_sets_1.CharacterSets.fromBytes(part.elements.bytesByTag(tag_1.Tag.SpecificCharacterSet));
}
return [];
}
return [part];
}
})()));
}
exports.toUtf8Flow = toUtf8Flow;
class DeflateDatasetFlow extends detour_1.Detour {
constructor() {
super({ objectMode: true });
this.collectingTs = false;
this.tsBytes = base_1.emptyBuffer;
}
process(part) {
if (part instanceof dicom_parts_1.HeaderPart) {
if (part.isFmi) {
this.collectingTs = part.tag === tag_1.Tag.TransferSyntaxUID;
this.push(part);
}
else {
if (this.tsBytes.toString().trim() === uid_1.UID.DeflatedExplicitVRLittleEndian) {
const toDeflatedChunk = new stream_1.Transform({
readableObjectMode: true,
transform(chunk, encoding, cb) {
this.push(new dicom_parts_1.DeflatedChunk(false, chunk));
process.nextTick(() => cb());
},
});
this.setDetourFlow((0, base_1.pipe)(toBytesFlow(), zlib_1.default.createDeflateRaw(), toDeflatedChunk));
this.setDetour(true, part);
}
else {
this.push(part);
}
}
}
else if (part instanceof dicom_parts_1.ValueChunk && this.collectingTs) {
this.tsBytes = (0, base_1.concat)(this.tsBytes, part.bytes);
this.push(part);
}
else {
this.push(part);
}
}
}
function deflateDatasetFlow() {
return new DeflateDatasetFlow();
}
exports.deflateDatasetFlow = deflateDatasetFlow;
/***/ }),
/***/ "./src/dicom-parts.ts":
/*!****************************!*\
!*** ./src/dicom-parts.ts ***!
\****************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ElementsPart = exports.UnknownPart = exports.FragmentsPart = exports.SequenceDelimitationPart = exports.SequencePart = exports.ItemDelimitationPart = exports.ItemPart = exports.DeflatedChunk = exports.ValueChunk = exports.HeaderPart = exports.PreamblePart = exports.MetaPart = exports.DicomPart = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
class DicomPart {
constructor(bigEndian, bytes) {
this.bigEndian = bigEndian;
this.bytes = bytes;
}
}
exports.DicomPart = DicomPart;
class MetaPart extends DicomPart {
constructor() {
super(false, base_1.emptyBuffer);
}
}
exports.MetaPart = MetaPart;
class PreamblePart extends DicomPart {
constructor(bytes) {
super(false, bytes);
}
toString() {
return 'Preamble []';
}
}
exports.PreamblePart = PreamblePart;
class HeaderPart extends DicomPart {
static create(tag, vr, length, bigEndian = false, explicitVR = true) {
const bytes = explicitVR
? vr.headerLength === 8
? Buffer.concat([(0, base_1.tagToBytes)(tag, bigEndian), Buffer.from(vr.name), (0, base_1.shortToBytes)(length, bigEndian)], 8)
: Buffer.concat([
(0, base_1.tagToBytes)(tag, bigEndian),
Buffer.from(vr.name),
Buffer.from([0, 0]),
(0, base_1.intToBytes)(length, bigEndian),
], 12)
: Buffer.concat([(0, base_1.tagToBytes)(tag, bigEndian), (0, base_1.intToBytes)(length, bigEndian)], 8);
return new HeaderPart(tag, vr, length, (0, base_1.isFileMetaInformation)(tag), bigEndian, explicitVR, bytes);
}
constructor(tag, vr, length, isFmi, bigEndian, explicitVR, bytes) {
super(bigEndian, bytes);
this.tag = tag;
this.vr = vr;
this.length = length;
this.isFmi = isFmi;
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
this.bytes = bytes;
if (!this.bytes) {
this.bytes = this.explicitVR
? vr.headerLength === 8
? Buffer.concat([(0, base_1.tagToBytes)(tag, bigEndian), Buffer.from(vr.name), (0, base_1.shortToBytes)(length, bigEndian)], 8)
: Buffer.concat([
(0, base_1.tagToBytes)(tag, bigEndian),
Buffer.from(vr.name),
Buffer.from([0, 0]),
(0, base_1.intToBytes)(length, bigEndian),
], 12)
: Buffer.concat([(0, base_1.tagToBytes)(tag, bigEndian), (0, base_1.intToBytes)(length, bigEndian)], 8);
}
}
withUpdatedLength(newLength) {
if (newLength === this.length) {
return this;
}
else {
let updated = null;
if (this.bytes.length >= 8 && this.explicitVR && this.vr.headerLength === 8) {
// explicit vr
updated = (0, base_1.concat)(this.bytes.slice(0, 6), (0, base_1.shortToBytes)(newLength, this.bigEndian));
}
else if (this.bytes.length >= 12 && this.explicitVR && this.vr.headerLength === 12) {
// explicit vr
updated = (0, base_1.concat)(this.bytes.slice(0, 8), (0, base_1.intToBytes)(newLength, this.bigEndian));
}
else {
// implicit vr
updated = (0, base_1.concat)(this.bytes.slice(0, 4), (0, base_1.intToBytes)(newLength, this.bigEndian));
}
return new HeaderPart(this.tag, this.vr, newLength, this.isFmi, this.bigEndian, this.explicitVR, updated);
}
}
toString() {
return ('Header [tag = ' +
(0, base_1.tagToString)(this.tag) +
', vr = ' +
this.vr.name +
', length = ' +
this.length +
', bigEndian = ' +
this.bigEndian +
', explicitVR = ' +
this.explicitVR +
']');
}
}
exports.HeaderPart = HeaderPart;
class ValueChunk extends DicomPart {
constructor(bigEndian, bytes, last) {
super(bigEndian, bytes);
this.last = last;
}
toString() {
let ascii = (0, base_1.trim)(this.bytes
.slice(0, 100)
.toString('ascii')
.replace(/[^\x20-\x7E]/g, ''));
if (this.bytes.length > 100) {
ascii = ascii + '...';
}
return 'ValueChunk [length = ' + this.bytes.length + ', last = ' + this.last + ', ascii = ' + ascii + ']';
}
}
exports.ValueChunk = ValueChunk;
class DeflatedChunk extends DicomPart {
constructor(bigEndian, bytes) {
super(bigEndian, bytes);
}
toString() {
return 'DeflatedChunk [length = ' + this.bytes.length + ']';
}
}
exports.DeflatedChunk = DeflatedChunk;
class ItemPart extends DicomPart {
constructor(length, bigEndian, bytes) {
super(bigEndian, bytes);
this.length = length;
this.indeterminate = false;
this.indeterminate = length === base_1.indeterminateLength;
}
toString() {
return 'Item [length = ' + this.length + ']';
}
}
exports.ItemPart = ItemPart;
class ItemDelimitationPart extends DicomPart {
constructor(bigEndian, bytes) {
super(bigEndian, bytes);
}
toString() {
return 'ItemDelimitation';
}
}
exports.ItemDelimitationPart = ItemDelimitationPart;
class SequencePart extends DicomPart {
constructor(tag, length, bigEndian, explicitVR, bytes) {
super(bigEndian, bytes);
this.tag = tag;
this.length = length;
this.explicitVR = explicitVR;
this.indeterminate = false;
this.indeterminate = length === base_1.indeterminateLength;
}
toString() {
return 'Sequence [tag = ' + (0, base_1.tagToString)(this.tag) + ', length = ' + this.length + ']';
}
}
exports.SequencePart = SequencePart;
class SequenceDelimitationPart extends DicomPart {
constructor(bigEndian, bytes) {
super(bigEndian, bytes);
}
toString() {
return 'SequenceDelimitation []';
}
}
exports.SequenceDelimitationPart = SequenceDelimitationPart;
class FragmentsPart extends DicomPart {
constructor(tag, length, vr, bigEndian, explicitVR, bytes) {
super(bigEndian, bytes);
this.tag = tag;
this.length = length;
this.vr = vr;
this.explicitVR = explicitVR;
}
toString() {
return ('Fragments [tag = ' + (0, base_1.tagToString)(this.tag) + ', vr = ' + this.vr.name + ', length = ' + this.length + ']');
}
}
exports.FragmentsPart = FragmentsPart;
class UnknownPart extends DicomPart {
constructor(bigEndian, bytes) {
super(bigEndian, bytes);
}
toString() {
return 'Unknown []';
}
}
exports.UnknownPart = UnknownPart;
class ElementsPart extends MetaPart {
constructor(label, elements) {
super();
this.label = label;
this.elements = elements;
}
}
exports.ElementsPart = ElementsPart;
/***/ }),
/***/ "./src/element-flows.ts":
/*!******************************!*\
!*** ./src/element-flows.ts ***!
\******************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.elementFlow = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const dicom_flow_1 = __webpack_require__(/*! ./dicom-flow */ "./src/dicom-flow.ts");
const dicom_elements_1 = __webpack_require__(/*! ./dicom-elements */ "./src/dicom-elements.ts");
const dicom_parts_1 = __webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts");
const value_1 = __webpack_require__(/*! ./value */ "./src/value.ts");
function elementFlow() {
return (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.GuaranteedValueEvent)((0, dicom_flow_1.InFragments)(dicom_flow_1.DeferToPartFlow)) {
constructor() {
super(...arguments);
this.bytes = base_1.emptyBuffer;
}
onPart(part) {
if (part instanceof dicom_parts_1.PreamblePart) {
return [dicom_elements_1.preambleElement];
}
if (part instanceof dicom_parts_1.HeaderPart) {
this.currentValue = new dicom_elements_1.ValueElement(part.tag, part.vr, value_1.Value.empty(), part.bigEndian, part.explicitVR);
this.bytes = base_1.emptyBuffer;
return [];
}
if (part instanceof dicom_parts_1.ItemPart && this.inFragments) {
this.currentFragment = new dicom_elements_1.FragmentElement(part.length, value_1.Value.empty(), part.bigEndian);
this.bytes = base_1.emptyBuffer;
return [];
}
if (part instanceof dicom_parts_1.ValueChunk) {
this.bytes = (0, base_1.concat)(this.bytes, part.bytes);
if (part.last) {
if (this.inFragments) {
if (this.currentFragment === undefined) {
return [];
}
else {
return [
new dicom_elements_1.FragmentElement(this.currentFragment.length, new value_1.Value(this.bytes), this.currentFragment.bigEndian),
];
}
}
else {
return [
new dicom_elements_1.ValueElement(this.currentValue.tag, this.currentValue.vr, new value_1.Value(this.bytes), this.currentValue.bigEndian, this.currentValue.explicitVR),
];
}
}
else {
return [];
}
}
if (part instanceof dicom_parts_1.SequencePart) {
return [new dicom_elements_1.SequenceElement(part.tag, part.length, part.bigEndian, part.explicitVR)];
}
if (part instanceof dicom_parts_1.FragmentsPart) {
return [new dicom_elements_1.FragmentsElement(part.tag, part.vr, part.bigEndian, part.explicitVR)];
}
if (part instanceof dicom_parts_1.ItemPart) {
return [new dicom_elements_1.ItemElement(part.length, part.bigEndian)];
}
if (part instanceof dicom_parts_1.ItemDelimitationPart) {
return [new dicom_elements_1.ItemDelimitationElement(part.bigEndian)];
}
if (part instanceof dicom_parts_1.SequenceDelimitationPart) {
return [new dicom_elements_1.SequenceDelimitationElement(part.bigEndian)];
}
return [];
}
})());
}
exports.elementFlow = elementFlow;
/***/ }),
/***/ "./src/element-sink.ts":
/*!*****************************!*\
!*** ./src/element-sink.ts ***!
\*****************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.elementSink = void 0;
const stream_1 = __webpack_require__(/*! stream */ "stream");
const elements_builder_1 = __webpack_require__(/*! ./elements-builder */ "./src/elements-builder.ts");
function elementSink(callback) {
const builder = new elements_builder_1.ElementsBuilder();
const sink = new stream_1.Writable({
objectMode: true,
write(element, encoding, cb) {
try {
builder.addElement(element);
process.nextTick(() => cb());
}
catch (error) {
process.nextTick(() => this.emit('error', error));
}
},
});
sink.once('finish', () => {
callback(builder.build());
});
return sink;
}
exports.elementSink = elementSink;
/***/ }),
/***/ "./src/elements-builder.ts":
/*!*********************************!*\
!*** ./src/elements-builder.ts ***!
\*********************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.ElementsBuilder = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const character_sets_1 = __webpack_require__(/*! ./character-sets */ "./src/character-sets.ts");
const dicom_elements_1 = __webpack_require__(/*! ./dicom-elements */ "./src/dicom-elements.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
const elements_1 = __webpack_require__(/*! ./elements */ "./src/elements.ts");
class DatasetBuilder {
constructor(characterSets, zoneOffset) {
this.characterSets = characterSets;
this.zoneOffset = zoneOffset;
this.data = new Array(64);
this.pos = 0;
}
addElementSet(elementSet) {
if (elementSet instanceof dicom_elements_1.ValueElement && elementSet.tag === tag_1.Tag.SpecificCharacterSet) {
this.characterSets = character_sets_1.CharacterSets.fromBytes(elementSet.value.bytes);
}
else if (elementSet instanceof dicom_elements_1.ValueElement && elementSet.tag === tag_1.Tag.TimezoneOffsetFromUTC) {
const newOffset = (0, elements_1.parseZoneOffset)(elementSet.value.toSingleString(vr_1.VR.SH, elementSet.bigEndian, this.characterSets));
this.zoneOffset = newOffset || this.zoneOffset;
}
if (this.data.length <= this.pos) {
this.data.length *= 2;
}
this.data[this.pos++] = elementSet;
return this;
}
isEmpty() {
return this.data.length == 0;
}
build() {
return new elements_1.Elements(this.characterSets, this.zoneOffset, this.data.slice(0, this.pos));
}
}
class ElementsBuilder {
constructor() {
this.builderStack = [new DatasetBuilder(base_1.defaultCharacterSet, base_1.systemZone)];
this.sequenceStack = [];
this.lengthStack = [];
}
addElement(element) {
if (element == dicom_elements_1.preambleElement && this.builderStack.length == 1 && this.builderStack[0].isEmpty()) {
return this;
}
if (element instanceof dicom_elements_1.ValueElement) {
this.subtractLength(element.length + (element.explicitVR ? element.vr.headerLength : 8));
const builder = this.builderStack[0];
builder.addElementSet(element);
return this.maybeDelimit();
}
if (element instanceof dicom_elements_1.FragmentsElement) {
this.subtractLength(element.explicitVR ? element.vr.headerLength : 8);
this.updateFragments(new dicom_elements_1.Fragments(element.tag, element.vr, undefined, [], element.bigEndian, element.explicitVR));
return this.maybeDelimit();
}
if (element instanceof dicom_elements_1.FragmentElement) {
this.subtractLength(8 + element.length);
if (this.fragments !== undefined) {
const updatedFragments = this.fragments.addFragment(new dicom_elements_1.Fragment(element.length, element.value, element.bigEndian));
this.updateFragments(updatedFragments);
}
return this.maybeDelimit();
}
if (element instanceof dicom_elements_1.SequenceDelimitationElement && this.hasFragments()) {
this.subtractLength(8);
const builder = this.builderStack[0];
builder.addElementSet(this.fragments);
this.updateFragments(undefined);
return this.maybeDelimit();
}
if (element instanceof dicom_elements_1.SequenceElement) {
this.subtractLength(element.explicitVR ? 12 : 8);
if (!element.indeterminate) {
this.pushLength(element, element.length);
}
this.pushSequence(new dicom_elements_1.Sequence(element.tag, element.indeterminate ? element.length : 0, [], element.bigEndian, element.explicitVR));
return this.maybeDelimit();
}
if (element instanceof dicom_elements_1.ItemElement && this.hasSequence()) {
this.subtractLength(8);
const builder = this.builderStack[0];
const sequence = this.sequenceStack[0].addItem(new dicom_elements_1.Item(elements_1.Elements.empty(), element.indeterminate ? element.length : 0, element.bigEndian));
if (!element.indeterminate) {
this.pushLength(element, element.length);
}
this.pushBuilder(new DatasetBuilder(builder.characterSets, builder.zoneOffset));
this.updateSequence(sequence);
return this.maybeDelimit();
}
if (element instanceof dicom_elements_1.ItemDelimitationElement && this.hasSequence()) {
this.subtractLength(8);
if (!this.itemIsIndeterminate() && this.lengthStack.length > 0) {
this.lengthStack.shift(); // determinate length item with delimitation - handle gracefully
}
this.endItem();
return this.maybeDelimit();
}
if (element instanceof dicom_elements_1.SequenceDelimitationElement && this.hasSequence()) {
this.subtractLength(8);
if (!this.sequenceIsIndeterminate() && this.lengthStack.length > 0) {
this.lengthStack.shift(); // determinate length sequence with delimitation - handle gracefully
}
this.endSequence();
return this.maybeDelimit();
}
console.warn(`Unexpected element ${element}`);
this.subtractLength(element.toBytes().length);
return this.maybeDelimit();
}
noteElement(element) {
this.subtractLength(element.toBytes().length);
return this.maybeDelimit();
}
currentDepth() {
return this.sequenceStack.length;
}
build() {
return this.builderStack.length === 0 ? elements_1.Elements.empty() : this.builderStack[0].build();
}
updateSequence(sequence) {
if (this.sequenceStack.length === 0) {
this.sequenceStack = [sequence];
}
else {
this.sequenceStack[0] = sequence;
}
}
updateFragments(fragments) {
this.fragments = fragments;
}
subtractLength(length) {
this.lengthStack.forEach((l) => (l.bytesLeft -= length));
}
pushBuilder(builder) {
this.builderStack.unshift(builder);
}
pushSequence(sequence) {
this.sequenceStack.unshift(sequence);
}
pushLength(element, length) {
this.lengthStack.unshift({ element, bytesLeft: length });
}
popBuilder() {
this.builderStack.shift();
}
popSequence() {
this.sequenceStack.shift();
}
hasSequence() {
return this.sequenceStack.length > 0;
}
hasFragments() {
return this.fragments !== undefined;
}
sequenceIsIndeterminate() {
return this.sequenceStack.length > 0 && this.sequenceStack[0].indeterminate;
}
itemIsIndeterminate() {
return (this.sequenceStack.length > 0 &&
this.sequenceStack[0].items.length > 0 &&
this.sequenceStack[0].items[this.sequenceStack[0].items.length - 1].indeterminate);
}
endItem() {
const builder = this.builderStack[0];
const sequence = this.sequenceStack[0];
const elements = builder.build();
const items = sequence.items;
if (items.length > 0) {
items[items.length - 1] = items[items.length - 1].setElements(elements);
const updatedSequence = new dicom_elements_1.Sequence(sequence.tag, sequence.length, items, sequence.bigEndian, sequence.explicitVR);
this.popBuilder();
this.updateSequence(updatedSequence);
}
}
endSequence() {
const sequence = this.sequenceStack[0];
const sequenceLength = sequence.indeterminate
? sequence.length
: sequence.toBytes().length - (sequence.explicitVR ? 12 : 8);
const updatedSequence = new dicom_elements_1.Sequence(sequence.tag, sequenceLength, sequence.items, sequence.bigEndian, sequence.explicitVR);
const builder = this.builderStack[0];
builder.addElementSet(updatedSequence);
this.popSequence();
}
maybeDelimit() {
const delimits = this.lengthStack.filter((e) => e.bytesLeft <= 0);
if (delimits.length > 0) {
this.lengthStack = this.lengthStack.filter((e) => e.bytesLeft > 0);
delimits.forEach((e) => {
if (e.element instanceof dicom_elements_1.ItemElement) {
this.endItem();
}
else {
this.endSequence();
}
});
}
return this;
}
}
exports.ElementsBuilder = ElementsBuilder;
/***/ }),
/***/ "./src/elements.ts":
/*!*************************!*\
!*** ./src/elements.ts ***!
\*************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Elements = exports.parseZoneOffset = void 0;
const js_joda_1 = __webpack_require__(/*! js-joda */ "js-joda");
const dicom_elements_1 = __webpack_require__(/*! ./dicom-elements */ "./src/dicom-elements.ts");
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const character_sets_1 = __webpack_require__(/*! ./character-sets */ "./src/character-sets.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const tag_path_1 = __webpack_require__(/*! ./tag-path */ "./src/tag-path.ts");
const value_1 = __webpack_require__(/*! ./value */ "./src/value.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
function parseZoneOffset(s) {
if (s.length < 5) {
return undefined;
}
try {
return js_joda_1.ZoneOffset.ofTotalMinutes(parseInt(s.slice(0, 1) + (parseInt(s.slice(1, 3), 10) * 60 + parseInt(s.slice(4, 6), 10)), 10));
}
catch (error) {
return undefined;
}
}
exports.parseZoneOffset = parseZoneOffset;
class Elements {
static empty(characterSets = base_1.defaultCharacterSet, zoneOffset = base_1.systemZone) {
return new Elements(characterSets, zoneOffset, []);
}
constructor(characterSets = base_1.defaultCharacterSet, zoneOffset = base_1.systemZone, data = []) {
this.characterSets = characterSets;
this.zoneOffset = zoneOffset;
this.data = data;
this.size = data.length;
}
elementByTag(tag) {
return this.data.find((e) => e.tag === tag);
}
elementByPath(tagPath) {
const tp = tagPath.previous();
if (tp instanceof tag_path_1.TagPathItem) {
const e = this.nestedByPath(tp);
return e === undefined ? undefined : e.elementByTag(tagPath.tag());
}
if (tp.isEmpty()) {
return this.elementByTag(tagPath.tag());
}
throw Error('Unsupported tag path type');
}
valueElementByTag(tag) {
return this._valueByTag(tag, (f) => f);
}
valueElementByPath(tagPath) {
return this._valueByPath(tagPath, (f) => f);
}
valueByTag(tag) {
const e = this.valueElementByTag(tag);
return e ? e.value : undefined;
}
valueByPath(tagPath) {
const e = this.valueElementByPath(tagPath);
return e ? e.value : undefined;
}
bytesByTag(tag) {
const e = this.valueByTag(tag);
return e ? e.bytes : undefined;
}
bytesByPath(tagPath) {
const e = this.valueByPath(tagPath);
return e ? e.bytes : undefined;
}
stringsByTag(tag) {
return this._valuesByTag(tag, (v) => v.value.toStrings(v.vr, v.bigEndian, this.characterSets));
}
stringsByPath(tagPath) {
return this._valuesByPath(tagPath, (v) => v.value.toStrings(v.vr, v.bigEndian, this.characterSets));
}
stringByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toString(v.vr, v.bigEndian, this.characterSets));
}
stringByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toString(v.vr, v.bigEndian, this.characterSets));
}
singleStringByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toSingleString(v.vr, v.bigEndian, this.characterSets));
}
singleStringByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toSingleString(v.vr, v.bigEndian, this.characterSets));
}
numbersByTag(tag) {
return this._valuesByTag(tag, (v) => v.value.toNumbers(v.vr, v.bigEndian));
}
numbersByPath(tagPath) {
return this._valuesByPath(tagPath, (v) => v.value.toNumbers(v.vr, v.bigEndian));
}
numberByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toNumber(v.vr, v.bigEndian));
}
numberByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toNumber(v.vr, v.bigEndian));
}
datesByTag(tag) {
return this._valuesByTag(tag, (v) => v.value.toDates(v.vr));
}
datesByPath(tagPath) {
return this._valuesByPath(tagPath, (v) => v.value.toDates(v.vr));
}
dateByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toDate(v.vr));
}
dateByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toDate(v.vr));
}
timesByTag(tag) {
return this._valuesByTag(tag, (v) => v.value.toTimes(v.vr));
}
timesByPath(tagPath) {
return this._valuesByPath(tagPath, (v) => v.value.toTimes(v.vr));
}
timeByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toTime(v.vr));
}
timeByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toTime(v.vr));
}
dateTimesByTag(tag) {
return this._valuesByTag(tag, (v) => v.value.toDateTimes(v.vr, this.zoneOffset));
}
dateTimesByPath(tagPath) {
return this._valuesByPath(tagPath, (v) => v.value.toDateTimes(v.vr, this.zoneOffset));
}
dateTimeByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toDateTime(v.vr, this.zoneOffset));
}
dateTimeByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toDateTime(v.vr, this.zoneOffset));
}
personNamesByTag(tag) {
return this._valuesByTag(tag, (v) => v.value.toPersonNames(v.vr, this.characterSets));
}
personNamesByPath(tagPath) {
return this._valuesByPath(tagPath, (v) => v.value.toPersonNames(v.vr, this.characterSets));
}
personNameByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toPersonName(v.vr, this.characterSets));
}
personNameByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toPersonName(v.vr, this.characterSets));
}
urlByTag(tag) {
return this._valueByTag(tag, (v) => v.value.toURL(v.vr));
}
urlByPath(tagPath) {
return this._valueByPath(tagPath, (v) => v.value.toURL(v.vr));
}
sequenceByTag(tag) {
const e = this.elementByTag(tag);
return e instanceof dicom_elements_1.Sequence ? e : undefined;
}
sequenceByPath(tagPath) {
const e = this._traverseTrunk(this, tagPath.previous());
return e ? e.sequenceByTag(tagPath.tag()) : undefined;
}
itemByTag(tag, index) {
const s = this.sequenceByTag(tag);
return s ? s.item(index) : undefined;
}
nestedByTag(tag, item) {
const i = this.itemByTag(tag, item);
return i ? i.elements : undefined;
}
nestedByPath(tagPath) {
const e = this._traverseTrunk(this, tagPath.previous());
return e ? e.nestedByTag(tagPath.tag(), tagPath.item) : undefined;
}
fragmentsByTag(tag) {
const e = this.elementByTag(tag);
return e && e instanceof dicom_elements_1.Fragments ? e : undefined;
}
setElementSet(elementSet) {
if (elementSet instanceof dicom_elements_1.ValueElement && elementSet.tag === tag_1.Tag.SpecificCharacterSet) {
return new Elements(character_sets_1.CharacterSets.fromBytes(elementSet.value.bytes), this.zoneOffset, this._insertOrdered(elementSet));
}
if (elementSet instanceof dicom_elements_1.ValueElement && elementSet.tag === tag_1.Tag.TimezoneOffsetFromUTC) {
const newOffset = parseZoneOffset(elementSet.value.toString(vr_1.VR.SH));
const zone = newOffset || base_1.systemZone;
return new Elements(this.characterSets, zone, this._insertOrdered(elementSet));
}
return new Elements(this.characterSets, this.zoneOffset, this._insertOrdered(elementSet));
}
setElementSets(elementSets) {
return elementSets.reduce((elements, elementSet) => elements.setElementSet(elementSet), this);
}
setSequence(sequence) {
return this.setElementSet(sequence);
}
updateSequence(tag, index, update) {
const s1 = this.sequenceByTag(tag);
if (s1) {
const i1 = s1.item(index);
if (i1) {
const e1 = i1.elements;
const e2 = update(e1);
const i2 = i1.setElements(e2);
const s2 = s1.setItem(index, i2);
return this.setElementSet(s2);
}
}
return undefined;
}
updatePath(elems, tagPath, f) {
if (tagPath.length === 0) {
return f(elems);
}
const tp = tagPath[0];
if (tp instanceof tag_path_1.TagPathItem) {
const updated = elems.updateSequence(tp.tag(), tp.item, (e) => this.updatePath(e, tagPath.slice(1), f));
return updated ? updated : elems;
}
throw Error('Unsupported tag path type');
}
setNested(tagPath, elements) {
return this.updatePath(this, tagPath.toList(), () => elements);
}
setNestedElementSet(tagPath, elementSet) {
return this.updatePath(this, tagPath.toList(), (elements) => elements.setElementSet(elementSet));
}
setNestedSequence(tagPath, sequence) {
return this.setNestedElementSet(tagPath, sequence);
}
addItem(tagPath, elements) {
const sequence = this.sequenceByPath(tagPath);
if (sequence) {
const bigEndian = sequence.bigEndian;
const indeterminate = sequence.indeterminate;
const item = indeterminate
? new dicom_elements_1.Item(elements, base_1.indeterminateLength, bigEndian)
: new dicom_elements_1.Item(elements, elements.toBytes(false).length, bigEndian);
const updatedSequence = sequence.addItem(item);
if (tagPath.previous() === tag_path_1.emptyTagPath) {
return this.setSequence(updatedSequence);
}
else if (tagPath.previous() instanceof tag_path_1.TagPathItem) {
return this.setNestedSequence(tagPath.previous(), updatedSequence);
}
throw Error('Unsupported tag path type');
}
return this;
}
setCharacterSets(characterSets) {
return new Elements(characterSets, this.zoneOffset, this.data);
}
setZoneOffset(zoneOffset) {
return new Elements(this.characterSets, zoneOffset, this.data);
}
setValue(tag, vr, value, bigEndian = false, explicitVR = true) {
return this.setElementSet(new dicom_elements_1.ValueElement(tag, vr, value, bigEndian, explicitVR));
}
setBytes(tag, vr, value, bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromBuffer(vr, value), bigEndian, explicitVR);
}
setStrings(tag, values, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromStrings(vr, values, bigEndian), bigEndian, explicitVR);
}
setString(tag, value, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromString(vr, value, bigEndian), bigEndian, explicitVR);
}
setNumbers(tag, values, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromNumbers(vr, values, bigEndian), bigEndian, explicitVR);
}
setNumber(tag, value, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromNumber(vr, value, bigEndian), bigEndian, explicitVR);
}
setDates(tag, values, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromDates(vr, values), bigEndian, explicitVR);
}
setDate(tag, value, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromDate(vr, value), bigEndian, explicitVR);
}
setTimes(tag, values, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromTimes(vr, values), bigEndian, explicitVR);
}
setTime(tag, value, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromTime(vr, value), bigEndian, explicitVR);
}
setDateTimes(tag, values, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromDateTimes(vr, values), bigEndian, explicitVR);
}
setDateTime(tag, value, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromDateTime(vr, value), bigEndian, explicitVR);
}
setPersonNames(tag, values, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromPersonNames(vr, values), bigEndian, explicitVR);
}
setPersonName(tag, value, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromPersonName(vr, value), bigEndian, explicitVR);
}
setURL(tag, value, vr = lookup_1.Lookup.vrOf(tag), bigEndian = false, explicitVR = true) {
return this.setValue(tag, vr, value_1.Value.fromURL(vr, value), bigEndian, explicitVR);
}
setNestedValue(tagPath, vr, value, bigEndian = false, explicitVR = true) {
if (tagPath.isRoot()) {
return this.setValue(tagPath.tag(), vr, value, bigEndian, explicitVR);
}
else {
return this.setNested(tagPath.previous(), (this.nestedByPath(tagPath.previous()) || Elements.empty()).setValue(tagPath.tag(), vr, value, bigEndian, explicitVR));
}
}
setNestedBytes(tagPath, vr, value, bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromBuffer(vr, value), bigEndian, explicitVR);
}
setNestedStrings(tagPath, values, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromStrings(vr, values, bigEndian), bigEndian, explicitVR);
}
setNestedString(tagPath, value, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromString(vr, value, bigEndian), bigEndian, explicitVR);
}
setNestedNumbers(tagPath, values, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromNumbers(vr, values, bigEndian), bigEndian, explicitVR);
}
setNestedNumber(tagPath, value, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromNumber(vr, value, bigEndian), bigEndian, explicitVR);
}
setNestedDates(tagPath, values, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromDates(vr, values), bigEndian, explicitVR);
}
setNestedDate(tagPath, value, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromDate(vr, value), bigEndian, explicitVR);
}
setNestedTimes(tagPath, values, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromTimes(vr, values), bigEndian, explicitVR);
}
setNestedTime(tagPath, value, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromTime(vr, value), bigEndian, explicitVR);
}
setNestedDateTimes(tagPath, values, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromDateTimes(vr, values), bigEndian, explicitVR);
}
setNestedDateTime(tagPath, value, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromDateTime(vr, value), bigEndian, explicitVR);
}
setNestedPersonNames(tagPath, values, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromPersonNames(vr, values), bigEndian, explicitVR);
}
setNestedPersonName(tagPath, value, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromPersonName(vr, value), bigEndian, explicitVR);
}
setNestedURL(tagPath, value, vr = lookup_1.Lookup.vrOf(tagPath.tag()), bigEndian = false, explicitVR = true) {
return this.setNestedValue(tagPath, vr, value_1.Value.fromURL(vr, value), bigEndian, explicitVR);
}
removeByTag(tag) {
return this.filter((elementSet) => elementSet.tag !== tag);
}
removeByPath(tagPath) {
if (tagPath === tag_path_1.emptyTagPath) {
return this;
}
if (tagPath instanceof tag_path_1.TagPathItem) {
if (tagPath.previous() === tag_path_1.emptyTagPath) {
const s = this.sequenceByTag(tagPath.tag());
return s ? this.setSequence(s.removeItem(tagPath.item)) : this;
}
if (tagPath.previous() instanceof tag_path_1.TagPathItem) {
const e = this.nestedByPath(tagPath.previous());
return e
? this.setNested(tagPath.previous(), e.removeByPath(tag_path_1.TagPath.fromItem(tagPath.tag(), tagPath.item)))
: this;
}
throw Error('Unsupported tag path type');
}
if (tagPath instanceof tag_path_1.TagPathTag) {
if (tagPath.previous() === tag_path_1.emptyTagPath) {
return this.removeByTag(tagPath.tag());
}
if (tagPath.previous() instanceof tag_path_1.TagPathItem) {
const e = this.nestedByPath(tagPath.previous());
return e ? this.setNested(tagPath.previous(), e.removeByTag(tagPath.tag())) : this;
}
throw Error('Unsupported tag path type');
}
throw Error('Unsupported tag path type');
}
filter(f) {
return new Elements(this.characterSets, this.zoneOffset, this.data.filter(f));
}
head() {
return this.data.length > 0 ? this.data[0] : undefined;
}
isEmpty() {
return this.data.length <= 0;
}
nonEmpty() {
return !this.isEmpty();
}
contains(tag) {
return typeof tag === 'number'
? this.data.map((e) => e.tag).includes(tag)
: tag instanceof tag_path_1.TagPathTag
? this.elementByPath(tag) !== undefined
: tag instanceof tag_path_1.TagPathItem
? this.nestedByPath(tag) !== undefined
: false;
}
sorted() {
return new Elements(this.characterSets, this.zoneOffset, this.data.slice().sort((e1, e2) => e1.tag - e2.tag));
}
toElements(withPreamble = true) {
const elements = (0, base_1.flatten)(this.data.map((e) => e.toElements()));
return withPreamble ? (0, base_1.prependToArray)(dicom_elements_1.preambleElement, elements) : elements;
}
toParts(withPreamble) {
return (0, base_1.flatten)(this.toElements(withPreamble).map((e) => e.toParts()));
}
toBytes(withPreamble = true) {
return this.data
.map((e) => e.toBytes())
.reduce((p, e) => (0, base_1.concat)(p, e), withPreamble ? dicom_elements_1.preambleElement.toBytes() : base_1.emptyBuffer);
}
toStrings(indent) {
const space = ' ';
const space1 = (description) => {
return space.repeat(Math.max(0, 40 - description.length));
};
const space2 = (length) => {
return space.repeat(Math.max(0, 4 - (length + '').length));
};
return (0, base_1.flatten)(this.data.map((e) => {
if (e instanceof dicom_elements_1.ValueElement) {
const strings = e.value.toStrings(e.vr, e.bigEndian, this.characterSets);
const s = strings.join(base_1.multiValueDelimiter);
const vm = strings.length + '';
return [
indent +
(0, base_1.tagToString)(e.tag) +
space +
e.vr.name +
space +
s +
space +
space1(s) +
' # ' +
space2(e.length) +
space +
e.length +
', ' +
vm +
space +
lookup_1.Lookup.keywordOf(e.tag) || '',
];
}
if (e instanceof dicom_elements_1.Sequence) {
const hDescription = e.length === base_1.indeterminateLength
? 'Sequence with indeterminate length'
: 'Sequence with explicit length ' + e.length;
const heading = indent +
(0, base_1.tagToString)(e.tag) +
' SQ ' +
hDescription +
space +
space1(hDescription) +
' # ' +
space2((0, base_1.toInt32)(e.length)) +
space +
(0, base_1.toInt32)(e.length) +
', 1 ' +
lookup_1.Lookup.keywordOf(e.tag) || '';
const items = (0, base_1.flatten)(e.items.map((i) => {
const iDescription = i.indeterminate
? 'Item with indeterminate length'
: 'Item with explicit length ' + i.length;
const itemHeading = indent +
' ' +
(0, base_1.tagToString)(tag_1.Tag.Item) +
' na ' +
iDescription +
space +
space1(iDescription) +
' # ' +
space2((0, base_1.toInt32)(i.length)) +
space +
(0, base_1.toInt32)(i.length) +
', 1 Item';
const elems = i.elements.toStrings(indent + ' ');
const itemDelimitation = indent +
' ' +
(0, base_1.tagToString)(tag_1.Tag.ItemDelimitationItem) +
' na ' +
space.repeat(41) +
' # 0, 0 ItemDelimitationItem';
elems.unshift(itemHeading);
elems.push(itemDelimitation);
return elems;
}));
const delimitation = indent +
(0, base_1.tagToString)(tag_1.Tag.SequenceDelimitationItem) +
' na ' +
space.repeat(41) +
' # 0, 0 SequenceDelimitationItem';
items.unshift(heading);
items.push(delimitation);
return items;
}
if (e instanceof dicom_elements_1.Fragments) {
const hDescription = 'Fragments with ' + e.size + ' fragment(s)';
const heading = indent +
(0, base_1.tagToString)(e.tag) +
space +
e.vr.name +
space +
hDescription +
space +
space1(hDescription) +
' # na, 1 ' +
lookup_1.Lookup.keywordOf(e.tag) || '';
let offsets = [];
if (e.offsets !== undefined) {
const len = e.offsets.length;
const description = 'Offsets table with ' + len + ' offset(s)';
offsets = [
indent +
space +
space +
(0, base_1.tagToString)(tag_1.Tag.Item) +
' na ' +
description +
space +
space1(description) +
' # ' +
space2(len * 4) +
space +
len * 4 +
', 1 Item',
];
}
const fragments = e.fragments.map((f) => {
const description = 'Fragment with length ' + f.length;
return (indent +
space +
space +
(0, base_1.tagToString)(tag_1.Tag.Item) +
' na ' +
description +
space +
space1(description) +
' # ' +
space2(f.length) +
space +
f.length +
', 1 Item');
});
const delimitation = indent +
(0, base_1.tagToString)(tag_1.Tag.SequenceDelimitationItem) +
' na ' +
space.repeat(43) +
' # 0, 0 SequenceDelimitationItem';
offsets.unshift(heading);
for (const fragment of fragments) {
offsets.push(fragment);
}
offsets.push(delimitation);
return offsets;
}
return [];
}));
}
toString() {
return this.toStrings('').join('\r\n');
}
_valueByTag(tag, f) {
const e = this.elementByTag(tag);
return e && e instanceof dicom_elements_1.ValueElement ? f(e) : undefined;
}
_valueByPath(tagPath, f) {
const e = this.elementByPath(tagPath);
return e && e instanceof dicom_elements_1.ValueElement ? f(e) : undefined;
}
_valuesByTag(tag, f) {
const e = this.elementByTag(tag);
return e && e instanceof dicom_elements_1.ValueElement ? f(e) : [];
}
_valuesByPath(tagPath, f) {
const e = this.elementByPath(tagPath);
return e && e instanceof dicom_elements_1.ValueElement ? f(e) : [];
}
_traverseTrunk(elems, trunk) {
if (trunk.isEmpty()) {
return elems;
}
else {
if (trunk instanceof tag_path_1.TagPathItem) {
const e = this._traverseTrunk(elems, trunk.previous());
return e ? e.nestedByTag(trunk.tag(), trunk.item) : undefined;
}
throw Error('Unsupported tag path type');
}
}
_insertOrdered(element) {
if (this.isEmpty()) {
return [element];
}
else {
const b = [];
let isBelow = true;
this.data.forEach((e) => {
if (isBelow && e.tag > element.tag) {
b.push(element);
isBelow = false;
}
if (e.tag === element.tag) {
b.push(element);
isBelow = false;
}
else {
b.push(e);
}
});
if (isBelow) {
b.push(element);
}
return b;
}
}
}
exports.Elements = Elements;
/***/ }),
/***/ "./src/flows.ts":
/*!**********************!*\
!*** ./src/flows.ts ***!
\**********************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.flatMapFlow = exports.filterFlow = exports.mapFlow = exports.objectToStringFlow = exports.appendFlow = exports.prependFlow = exports.printFlow = exports.identityFlow = void 0;
const stream_1 = __webpack_require__(/*! stream */ "stream");
function identityFlow(objectMode = false) {
return new stream_1.Transform({
objectMode,
transform(chunk, encoding, callback) {
this.push(chunk);
process.nextTick(() => callback());
},
});
}
exports.identityFlow = identityFlow;
function printFlow(objectMode = false) {
return new stream_1.Transform({
objectMode,
transform(chunk, encoding, callback) {
console.log(chunk);
this.push(chunk);
process.nextTick(() => callback());
},
});
}
exports.printFlow = printFlow;
function prependFlow(prependChunk, objectMode = false) {
let hasEmitted = false;
return new stream_1.Transform({
objectMode,
transform(chunk, encoding, callback) {
if (!hasEmitted) {
this.push(prependChunk);
hasEmitted = true;
}
this.push(chunk);
process.nextTick(() => callback());
},
});
}
exports.prependFlow = prependFlow;
function appendFlow(appendChunk, objectMode = false) {
return new stream_1.Transform({
objectMode,
transform(chunk, encoding, callback) {
this.push(chunk);
process.nextTick(() => callback());
},
flush(callback) {
process.nextTick(() => callback(null, appendChunk));
},
});
}
exports.appendFlow = appendFlow;
function objectToStringFlow(toStringFunction) {
return new stream_1.Transform({
writableObjectMode: true,
transform(chunk, encoding, callback) {
this.push(toStringFunction(chunk) + '\n');
process.nextTick(() => callback());
},
});
}
exports.objectToStringFlow = objectToStringFlow;
function mapFlow(f) {
return new stream_1.Transform({
objectMode: true,
transform(chunk, encoding, callback) {
try {
this.push(f(chunk));
process.nextTick(() => callback());
}
catch (error) {
process.nextTick(() => this.emit('error', error));
}
},
});
}
exports.mapFlow = mapFlow;
function filterFlow(f) {
return new stream_1.Transform({
objectMode: true,
transform(chunk, encoding, callback) {
try {
if (f(chunk) === true) {
this.push(chunk);
}
process.nextTick(() => callback());
}
catch (error) {
process.nextTick(() => this.emit('error', error));
}
},
});
}
exports.filterFlow = filterFlow;
function flatMapFlow(toChunks) {
return new stream_1.Transform({
objectMode: true,
transform(chunk, encoding, callback) {
try {
for (const outChunk of toChunks(chunk)) {
this.push(outChunk);
}
process.nextTick(() => callback());
}
catch (error) {
process.nextTick(() => this.emit('error', error));
}
},
});
}
exports.flatMapFlow = flatMapFlow;
/***/ }),
/***/ "./src/index.ts":
/*!**********************!*\
!*** ./src/index.ts ***!
\**********************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.CharacterSets = void 0;
__exportStar(__webpack_require__(/*! ./detour */ "./src/detour.ts"), exports);
__exportStar(__webpack_require__(/*! ./base */ "./src/base.ts"), exports);
__exportStar(__webpack_require__(/*! ./vr */ "./src/vr.ts"), exports);
__exportStar(__webpack_require__(/*! ./uid */ "./src/uid.ts"), exports);
__exportStar(__webpack_require__(/*! ./tag */ "./src/tag.ts"), exports);
__exportStar(__webpack_require__(/*! ./lookup */ "./src/lookup.ts"), exports);
__exportStar(__webpack_require__(/*! ./tag-path */ "./src/tag-path.ts"), exports);
__exportStar(__webpack_require__(/*! ./tag-tree */ "./src/tag-tree.ts"), exports);
__exportStar(__webpack_require__(/*! ./person-name */ "./src/person-name.ts"), exports);
__exportStar(__webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts"), exports);
__exportStar(__webpack_require__(/*! ./dicom-elements */ "./src/dicom-elements.ts"), exports);
var character_sets_1 = __webpack_require__(/*! ./character-sets */ "./src/character-sets.ts");
Object.defineProperty(exports, "CharacterSets", ({ enumerable: true, get: function () { return character_sets_1.CharacterSets; } }));
__exportStar(__webpack_require__(/*! ./sources */ "./src/sources.ts"), exports);
__exportStar(__webpack_require__(/*! ./flows */ "./src/flows.ts"), exports);
__exportStar(__webpack_require__(/*! ./sinks */ "./src/sinks.ts"), exports);
__exportStar(__webpack_require__(/*! ./parse-flow */ "./src/parse-flow.ts"), exports);
__exportStar(__webpack_require__(/*! ./dicom-flow */ "./src/dicom-flow.ts"), exports);
__exportStar(__webpack_require__(/*! ./dicom-flows */ "./src/dicom-flows.ts"), exports);
__exportStar(__webpack_require__(/*! ./collect-flow */ "./src/collect-flow.ts"), exports);
__exportStar(__webpack_require__(/*! ./modify-flow */ "./src/modify-flow.ts"), exports);
__exportStar(__webpack_require__(/*! ./parser */ "./src/parser.ts"), exports);
__exportStar(__webpack_require__(/*! ./value */ "./src/value.ts"), exports);
__exportStar(__webpack_require__(/*! ./elements */ "./src/elements.ts"), exports);
__exportStar(__webpack_require__(/*! ./elements-builder */ "./src/elements-builder.ts"), exports);
__exportStar(__webpack_require__(/*! ./element-flows */ "./src/element-flows.ts"), exports);
__exportStar(__webpack_require__(/*! ./element-sink */ "./src/element-sink.ts"), exports);
/***/ }),
/***/ "./src/lookup.ts":
/*!***********************!*\
!*** ./src/lookup.ts ***!
\***********************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Lookup = void 0;
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const tag_to_vr_1 = __webpack_require__(/*! ./tag-to-vr */ "./src/tag-to-vr.ts");
const uid_to_name_1 = __webpack_require__(/*! ./uid-to-name */ "./src/uid-to-name.ts");
class Lookup {
static keywordOf(tag) {
if ((tag & 0x0000ffff) === 0 && (tag & 0xfffd0000) !== 0) {
return 'GroupLength';
}
if ((tag & 0x00010000) !== 0) {
if ((tag & 0x0000ff00) === 0 && (tag & 0x000000f0) !== 0) {
return 'PrivateCreatorID';
}
return '';
}
if ((tag & 0xffffff00) === tag_1.Tag.SourceImageIDs) {
return 'SourceImageIDs';
}
let tag2 = tag;
if ((tag & 0xffe00000) === 0x50000000 || (tag & 0xffe00000) === 0x60000000) {
tag2 = tag & 0xffe0ffff;
}
else if ((tag & 0xff000000) === 0x7f000000 && (tag & 0xffff0000) !== 0x7fe00000) {
tag2 = tag & 0xff00ffff;
}
return Lookup.keywords.find((key) => tag_1.Tag[key] === tag2);
}
static vrOf(tag) {
return tag_to_vr_1.TagToVR.vrOf(tag);
}
static tagOf(keyword) {
return tag_1.Tag[keyword];
}
static nameOf(uid) {
return uid_to_name_1.UIDToName.nameOf(uid);
}
}
Lookup.keywords = Object.keys(tag_1.Tag);
exports.Lookup = Lookup;
/***/ }),
/***/ "./src/modify-flow.ts":
/*!****************************!*\
!*** ./src/modify-flow.ts ***!
\****************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.modifyFlow = exports.TagModificationsPart = exports.TagInsertion = exports.TagModification = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const dicom_flow_1 = __webpack_require__(/*! ./dicom-flow */ "./src/dicom-flow.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const dicom_parts_1 = __webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts");
const tag_path_1 = __webpack_require__(/*! ./tag-path */ "./src/tag-path.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
class TagModification {
static equals(tagPath, modification) {
return new TagModification(tagPath.isEqualTo.bind(tagPath), modification);
}
static endsWith(tagPath, modification) {
return new TagModification((tp) => tp.endsWith(tagPath), modification);
}
constructor(matches, modification) {
this.matches = matches;
this.modification = modification;
}
}
exports.TagModification = TagModification;
class TagInsertion {
constructor(tagPath, insertion) {
this.tagPath = tagPath;
this.insertion = insertion;
this.tagPath = tagPath;
this.insertion = insertion;
}
}
exports.TagInsertion = TagInsertion;
class TagModificationsPart extends dicom_parts_1.MetaPart {
constructor(modifications = [], insertions = [], replace = false) {
super();
this.modifications = modifications;
this.insertions = insertions;
this.replace = replace;
}
}
exports.TagModificationsPart = TagModificationsPart;
function modifyFlow(modifications = [], insertions = [], logGroupLengthWarnings = true) {
const mods = modifications === undefined ? [] : modifications;
const irts = insertions === undefined ? [] : insertions;
const wrns = logGroupLengthWarnings === undefined ? true : logGroupLengthWarnings;
const organizeInsertions = (inserts) => {
const distinct = inserts.filter((a, pos, arr) => {
return arr.findIndex((b) => b.tagPath.isEqualTo(a.tagPath)) === pos;
}); // distinct by tag path
return distinct.sort((a, b) => (a.tagPath.isBelow(b.tagPath) ? -1 : 1)); // ordered by tag path
};
return (0, dicom_flow_1.createFlow)(new (class extends (0, dicom_flow_1.TagPathTracking)((0, dicom_flow_1.GuaranteedValueEvent)((0, dicom_flow_1.GuaranteedDelimitationEvents)((0, dicom_flow_1.GroupLengthWarnings)((0, dicom_flow_1.InFragments)((0, dicom_flow_1.EndEvent)(dicom_flow_1.DeferToPartFlow)))))) {
constructor() {
super();
this.currentModifications = mods;
this.currentInsertions = organizeInsertions(irts.slice());
this.latestTagPath = tag_path_1.emptyTagPath;
this.value = base_1.emptyBuffer;
this.bigEndian = false;
this.explicitVR = true;
this.setSilent(!wrns);
}
onPart(part) {
if (part instanceof TagModificationsPart) {
if (part.replace) {
this.currentModifications = part.modifications;
this.currentInsertions = organizeInsertions(part.insertions.slice());
}
else {
this.currentModifications = (0, base_1.concatArrays)(this.currentModifications, part.modifications);
this.currentInsertions = organizeInsertions((0, base_1.concatArrays)(this.currentInsertions, part.insertions));
}
return [];
}
if (part instanceof dicom_parts_1.HeaderPart) {
this.updateSyntax(part);
const insertParts = this.findInsertParts();
const modifyPart = this.findModifyPart(part);
this.latestTagPath = this.tagPath;
return (0, base_1.concatArrays)(insertParts, modifyPart);
}
if (part instanceof dicom_parts_1.SequencePart) {
const insertParts = this.findInsertParts();
this.latestTagPath = this.tagPath;
return (0, base_1.appendToArray)(part, insertParts);
}
if (part instanceof dicom_parts_1.ValueChunk) {
if (this.currentModification !== undefined && this.currentHeader !== undefined) {
this.value = (0, base_1.concat)(this.value, part.bytes);
if (part.last) {
const newValue = (0, base_1.padToEvenLength)(this.currentModification.modification(this.value), this.currentHeader.vr);
const newHeader = this.currentHeader.withUpdatedLength(newValue.length);
this.currentModification = undefined;
this.currentHeader = undefined;
return (0, base_1.prependToArray)(newHeader, this.valueOrNot(newValue));
}
else {
return [];
}
}
else {
return [part];
}
}
this.latestTagPath = this.tagPath;
return [part];
}
onEnd() {
if (this.latestTagPath.isEmpty()) {
return [];
}
else {
return (0, base_1.flatten)(this.currentInsertions
.filter((i) => i.tagPath.isRoot())
.filter((m) => this.latestTagPath.isBelow(m.tagPath))
.map((m) => this.headerAndValueParts(m.tagPath, (0, base_1.padToEvenLength)(m.insertion(undefined), m.tagPath.tag()))));
}
}
updateSyntax(header) {
this.bigEndian = header.bigEndian;
this.explicitVR = header.explicitVR;
}
valueOrNot(bytes) {
return bytes.length > 0 ? [new dicom_parts_1.ValueChunk(this.bigEndian, bytes, true)] : [];
}
headerAndValueParts(tagPath, valueBytes) {
const vr = lookup_1.Lookup.vrOf(tagPath.tag());
if (vr === vr_1.VR.UN) {
throw Error('Tag is not present in dictionary, cannot determine value representation');
}
if (vr === vr_1.VR.SQ) {
throw Error('Cannot insert sequences');
}
const header = dicom_parts_1.HeaderPart.create(tagPath.tag(), vr, valueBytes.length, this.bigEndian, this.explicitVR);
return (0, base_1.prependToArray)(header, this.valueOrNot(valueBytes));
}
isBetween(lowerTag, tagToTest, upperTag) {
return lowerTag.isBelow(tagToTest) && tagToTest.isBelow(upperTag);
}
isInDataset(tagToTest, tagPath) {
return tagToTest.previous().isEqualTo(tagPath.previous());
}
findInsertParts() {
return (0, base_1.flatten)(this.currentInsertions
.filter((i) => this.isBetween(this.latestTagPath, i.tagPath, this.tagPath))
.filter((i) => this.isInDataset(i.tagPath, this.tagPath))
.map((i) => this.headerAndValueParts(i.tagPath, (0, base_1.padToEvenLength)(i.insertion(undefined), i.tagPath.tag()))));
}
findModifyPart(header) {
const mod = this.currentModifications.find((m) => m.matches(this.tagPath));
if (mod !== undefined) {
this.currentHeader = header;
this.currentModification = mod;
this.value = base_1.emptyBuffer;
return [];
}
else {
const ins = this.currentInsertions.find((i) => i.tagPath.isEqualTo(this.tagPath));
if (ins !== undefined) {
this.currentHeader = header;
this.currentModification = new TagModification((tp) => tp.isEqualTo(ins.tagPath), (v) => ins.insertion(v));
this.value = base_1.emptyBuffer;
return [];
}
else {
return [header];
}
}
}
})());
}
exports.modifyFlow = modifyFlow;
/***/ }),
/***/ "./src/parse-flow.ts":
/*!***************************!*\
!*** ./src/parse-flow.ts ***!
\***************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.parseFlow = void 0;
const zlib_1 = __webpack_require__(/*! zlib */ "zlib");
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const byte_parser_1 = __webpack_require__(/*! ./byte-parser */ "./src/byte-parser.ts");
const detour_1 = __webpack_require__(/*! ./detour */ "./src/detour.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const parsing_1 = __webpack_require__(/*! ./parsing */ "./src/parsing.ts");
const dicom_parts_1 = __webpack_require__(/*! ./dicom-parts */ "./src/dicom-parts.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const uid_1 = __webpack_require__(/*! ./uid */ "./src/uid.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
class DicomParseStep extends byte_parser_1.ParseStep {
constructor(state, flow) {
super();
this.state = state;
this.flow = flow;
}
}
class DatasetHeaderState {
constructor(maySwitchTs, bigEndian, explicitVR) {
this.maySwitchTs = maySwitchTs;
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
}
}
class FmiHeaderState {
constructor(tsuid, bigEndian, explicitVR, hasFmi, pos, fmiEndPos) {
this.tsuid = tsuid;
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
this.hasFmi = hasFmi;
this.pos = pos;
this.fmiEndPos = fmiEndPos;
}
}
class ValueState {
constructor(bigEndian, bytesLeft, nextStep) {
this.bigEndian = bigEndian;
this.bytesLeft = bytesLeft;
this.nextStep = nextStep;
}
}
class FragmentsState {
constructor(bigEndian, explicitVR) {
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
}
}
class AtBeginning extends DicomParseStep {
constructor(flow) {
super(null, flow);
}
parse(reader) {
let maybePreamble;
if (reader.remainingSize() < parsing_1.dicomPreambleLength + 8) {
if (reader
.remainingData()
.slice(0, 128)
.every((b) => b === 0)) {
reader.ensure(parsing_1.dicomPreambleLength + 8);
}
}
else if ((0, parsing_1.isPreamble)(reader.remainingData())) {
maybePreamble = new dicom_parts_1.PreamblePart(reader.take(parsing_1.dicomPreambleLength));
}
reader.ensure(8);
const info = (0, parsing_1.tryReadHeader)(reader.remainingData());
if (info) {
let nextState;
if (info.hasFmi) {
if (!info.explicitVR) {
console.warn('File meta information uses implicit VR encoding');
}
if (info.bigEndian) {
console.warn('File meta information uses big-endian encoding');
}
nextState = new InFmiHeader(new FmiHeaderState(undefined, info.bigEndian, info.explicitVR, info.hasFmi, 0, undefined), this.flow);
}
else {
nextState = new InDatasetHeader(new DatasetHeaderState(false, info.bigEndian, info.explicitVR), this.flow);
}
return new byte_parser_1.ParseResult(maybePreamble, nextState);
}
else {
throw new Error('Not a DICOM stream');
}
}
onTruncation(reader) {
if (reader.remainingSize() === parsing_1.dicomPreambleLength && (0, parsing_1.isPreamble)(reader.remainingData())) {
this.flow.push(new dicom_parts_1.PreamblePart(reader.take(parsing_1.dicomPreambleLength)));
}
else {
super.onTruncation(reader);
}
}
}
class InFmiHeader extends DicomParseStep {
constructor(state, flow) {
super(state, flow);
this.transferSyntaxLengthLimit = 1024;
}
toDatasetStep(reader, valueLength) {
let tsuid = this.state.tsuid;
if (!tsuid) {
console.warn('Missing Transfer Syntax (0002,0010) - assume Explicit VR Little Endian');
tsuid = uid_1.UID.ExplicitVRLittleEndian;
}
const bigEndian = tsuid === uid_1.UID.ExplicitVRBigEndianRetired;
const explicitVR = tsuid !== uid_1.UID.ImplicitVRLittleEndian;
if ((0, base_1.isDeflated)(tsuid)) {
if (this.flow.inflate) {
reader.ensure(valueLength + 2);
let inflater = zlib_1.default.createInflateRaw();
const firstTwoBytes = reader.remainingData().slice(valueLength, valueLength + 2);
const hasZLIBHeader = (0, base_1.bytesToUShortBE)(firstTwoBytes) === 0x789c;
if (hasZLIBHeader) {
console.warn('Deflated DICOM Stream with ZLIB Header');
inflater = zlib_1.default.createInflate();
}
const valueBytes = reader.take(valueLength);
const remainingBytes = reader.remainingData();
reader.setInput(valueBytes);
this.flow.setDetourFlow(inflater);
this.flow.setDetour(true, remainingBytes);
}
else {
return new InDeflatedData(this.state, this.flow);
}
}
return new InDatasetHeader(new DatasetHeaderState(true, bigEndian, explicitVR), this.flow);
}
parse(reader) {
const header = (0, parsing_1.readHeader)(reader, this.state);
(0, parsing_1.warnIfOdd)(header.tag, header.vr, header.valueLength);
if ((0, base_1.groupNumber)(header.tag) !== 2) {
console.warn('Missing or wrong File Meta Information Group Length (0002,0000)');
return new byte_parser_1.ParseResult(undefined, this.toDatasetStep(reader, header.valueLength));
}
const updatedVr = header.vr === vr_1.VR.UN ? lookup_1.Lookup.vrOf(header.tag) : header.vr;
const bytes = reader.take(header.headerLength);
this.state.pos += header.headerLength + header.valueLength;
if (header.tag === tag_1.Tag.FileMetaInformationGroupLength) {
reader.ensure(4);
const valueBytes = reader.remainingData().slice(0, 4);
this.state.fmiEndPos = this.state.pos + (0, base_1.bytesToInt)(valueBytes, this.state.bigEndian);
}
else if (header.tag === tag_1.Tag.TransferSyntaxUID) {
if (header.valueLength < this.transferSyntaxLengthLimit) {
reader.ensure(header.valueLength);
const valueBytes = reader.remainingData().slice(0, header.valueLength);
this.state.tsuid = (0, base_1.trim)(valueBytes.toString());
}
else {
console.warn('Transfer syntax data is very large, skipping');
}
}
const part = new dicom_parts_1.HeaderPart(header.tag, updatedVr, header.valueLength, true, this.state.bigEndian, this.state.explicitVR, bytes);
let nextStep = new InFmiHeader(this.state, this.flow);
if (this.state.fmiEndPos && this.state.fmiEndPos <= this.state.pos) {
if (reader.remainingSize() >= header.valueLength + 2 &&
!(this.state.tsuid && this.state.tsuid == uid_1.UID.DeflatedExplicitVRLittleEndian) &&
(0, base_1.bytesToShort)(reader.remainingData().slice(header.valueLength, header.valueLength + 2), this.state.bigEndian) == 2) {
console.warn('Wrong File Meta Information Group Length (0002,0000)');
}
else {
if (this.state.fmiEndPos != this.state.pos) {
console.warn('Wrong File Meta Information Group Length (0002,0000)');
}
nextStep = this.toDatasetStep(reader, header.valueLength);
}
}
return new byte_parser_1.ParseResult(part, new InValue(new ValueState(this.state.bigEndian, header.valueLength, nextStep), this.flow));
}
}
class InDatasetHeader extends DicomParseStep {
constructor(state, flow) {
super(state, flow);
}
maybeSwitchTs(reader, state) {
reader.ensure(8);
const data = reader.remainingData().slice(0, 8);
const tag = (0, base_1.bytesToTag)(data, state.bigEndian);
let explicitVR = undefined;
try {
explicitVR = vr_1.VR.valueOf((0, base_1.bytesToVR)(data.slice(4)));
}
catch (e) { }
if ((0, parsing_1.isSpecial)(tag)) {
return new DatasetHeaderState(false, state.bigEndian, state.explicitVR);
}
if (state.explicitVR && !explicitVR) {
console.log('Implicit VR attributes detected in explicit VR dataset');
return new DatasetHeaderState(false, state.bigEndian, false);
}
if (!state.explicitVR && explicitVR) {
return new DatasetHeaderState(false, state.bigEndian, true);
}
return new DatasetHeaderState(false, state.bigEndian, state.explicitVR);
}
readDatasetHeader(reader, state) {
const header = (0, parsing_1.readHeader)(reader, state);
(0, parsing_1.warnIfOdd)(header.tag, header.vr, header.valueLength);
if (header.vr) {
const bytes = reader.take(header.headerLength);
if (header.vr === vr_1.VR.SQ || (header.vr === vr_1.VR.UN && header.valueLength === base_1.indeterminateLength)) {
return new dicom_parts_1.SequencePart(header.tag, header.valueLength, state.bigEndian, state.explicitVR, bytes);
}
if (header.valueLength === base_1.indeterminateLength) {
return new dicom_parts_1.FragmentsPart(header.tag, header.valueLength, header.vr, state.bigEndian, state.explicitVR, bytes);
}
return new dicom_parts_1.HeaderPart(header.tag, header.vr, header.valueLength, false, state.bigEndian, state.explicitVR, bytes);
}
switch (header.tag) {
case 0xfffee000:
return new dicom_parts_1.ItemPart(header.valueLength, state.bigEndian, reader.take(8));
case 0xfffee00d:
return new dicom_parts_1.ItemDelimitationPart(state.bigEndian, reader.take(8));
case 0xfffee0dd:
return new dicom_parts_1.SequenceDelimitationPart(state.bigEndian, reader.take(8));
}
return new dicom_parts_1.UnknownPart(state.bigEndian, reader.take(header.headerLength));
}
parse(reader) {
const state = this.state.maySwitchTs ? this.maybeSwitchTs(reader, this.state) : this.state;
const part = this.readDatasetHeader(reader, state);
let nextState = byte_parser_1.finishedParser;
if (part) {
if (part instanceof dicom_parts_1.HeaderPart) {
if (part.length > 0) {
nextState = new InValue(new ValueState(part.bigEndian, part.length, new InDatasetHeader(state, this.flow)), this.flow);
}
else {
nextState = new InDatasetHeader(state, this.flow);
}
}
else if (part instanceof dicom_parts_1.FragmentsPart) {
nextState = new InFragments(new FragmentsState(part.bigEndian, state.explicitVR), this.flow);
}
else if (part instanceof dicom_parts_1.SequencePart) {
nextState = new InDatasetHeader(new DatasetHeaderState(false, state.bigEndian, state.explicitVR), this.flow);
}
else if (part instanceof dicom_parts_1.ItemPart) {
nextState = new InDatasetHeader(new DatasetHeaderState(true, state.bigEndian, state.explicitVR), this.flow);
}
else if (part instanceof dicom_parts_1.ItemDelimitationPart) {
nextState = new InDatasetHeader(new DatasetHeaderState(false, state.bigEndian, state.explicitVR), this.flow);
}
else if (part instanceof dicom_parts_1.SequenceDelimitationPart) {
nextState = new InDatasetHeader(new DatasetHeaderState(true, state.bigEndian, state.explicitVR), this.flow);
}
else {
nextState = new InDatasetHeader(new DatasetHeaderState(false, state.bigEndian, state.explicitVR), this.flow);
}
}
return new byte_parser_1.ParseResult(part, nextState);
}
}
class InValue extends DicomParseStep {
constructor(state, flow) {
super(state, flow);
}
parse(reader) {
return this.state.bytesLeft <= this.flow.chunkSize
? new byte_parser_1.ParseResult(new dicom_parts_1.ValueChunk(this.state.bigEndian, reader.take(this.state.bytesLeft), true), this.state.nextStep)
: new byte_parser_1.ParseResult(new dicom_parts_1.ValueChunk(this.state.bigEndian, reader.take(this.flow.chunkSize), false), new InValue(new ValueState(this.state.bigEndian, this.state.bytesLeft - this.flow.chunkSize, this.state.nextStep), this.flow));
}
}
class InFragments extends DicomParseStep {
constructor(state, flow) {
super(state, flow);
}
parse(reader) {
const header = (0, parsing_1.readHeader)(reader, this.state);
if (header.tag === 0xfffee000) {
// begin fragment
const nextState = header.valueLength > 0
? new InValue(new ValueState(this.state.bigEndian, header.valueLength, new InFragments(new FragmentsState(this.state.bigEndian, this.state.explicitVR), this.flow)), this.flow)
: new InFragments(new FragmentsState(this.state.bigEndian, this.state.explicitVR), this.flow);
return new byte_parser_1.ParseResult(new dicom_parts_1.ItemPart(header.valueLength, this.state.bigEndian, reader.take(header.headerLength)), nextState);
}
if (header.tag === 0xfffee0dd) {
// end fragments
if (header.valueLength !== 0) {
console.warn('Unexpected fragments delimitation length ' + header.valueLength);
}
return new byte_parser_1.ParseResult(new dicom_parts_1.SequenceDelimitationPart(this.state.bigEndian, reader.take(header.headerLength)), new InDatasetHeader(new DatasetHeaderState(false, this.state.bigEndian, this.state.explicitVR), this.flow));
}
console.warn('Unexpected element (' + (0, base_1.tagToString)(header.tag) + ') in fragments with length ' + header.valueLength);
return new byte_parser_1.ParseResult(new dicom_parts_1.UnknownPart(this.state.bigEndian, reader.take(header.headerLength + header.valueLength)), this);
}
}
class InDeflatedData extends DicomParseStep {
constructor(state, flow) {
super(state, flow);
}
parse(reader) {
return new byte_parser_1.ParseResult(new dicom_parts_1.DeflatedChunk(this.state.bigEndian, reader.take(Math.min(this.flow.chunkSize, reader.remainingSize()))), this);
}
}
class ParseFlow extends detour_1.Detour {
constructor(chunkSize = 1024 * 1024, inflate = true, bufferBytes = 1024 * 1024) {
super({ highWaterMark: bufferBytes, readableObjectMode: true }); // FIXME should be writableHighWaterMark
this.chunkSize = chunkSize;
this.inflate = inflate;
this.bufferBytes = bufferBytes;
this.parser = new byte_parser_1.ByteParser(this);
this.parser.startWith(new AtBeginning(this));
}
/**
* Overrides process in Detour. Process a chunk of binary data.
*/
process(chunk) {
this.parser.parse(chunk);
}
/**
* Overrides cleanup in Detour. If there are unparsed bytes left, try to parse these, or fail.
*/
cleanup() {
this.parser.flush();
}
/**
* Called by byte parser when it is emitting the next parsed element
*/
next(part) {
this.push(part);
}
/**
* Called by byte parser when completing parser. Here we signal completion to the stream.
*/
complete() {
this.push(null);
}
/**
* Called by byte parser on error. Here we signal error to the stream.
*/
fail(error) {
process.nextTick(() => this.emit('error', error));
}
}
function parseFlow(chunkSize, inflate, bufferBytes) {
return new ParseFlow(chunkSize, inflate, bufferBytes);
}
exports.parseFlow = parseFlow;
/***/ }),
/***/ "./src/parser.ts":
/*!***********************!*\
!*** ./src/parser.ts ***!
\***********************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Parser = void 0;
const zlib_1 = __webpack_require__(/*! zlib */ "zlib");
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const byte_parser_1 = __webpack_require__(/*! ./byte-parser */ "./src/byte-parser.ts");
const dicom_elements_1 = __webpack_require__(/*! ./dicom-elements */ "./src/dicom-elements.ts");
const elements_builder_1 = __webpack_require__(/*! ./elements-builder */ "./src/elements-builder.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const parsing_1 = __webpack_require__(/*! ./parsing */ "./src/parsing.ts");
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const uid_1 = __webpack_require__(/*! ./uid */ "./src/uid.ts");
const value_1 = __webpack_require__(/*! ./value */ "./src/value.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
class Inflater {
inflate(bytes) {
return bytes;
}
}
class FmiAttributeState {
constructor(tsuid, bigEndian, explicitVR, hasFmi, pos, fmiEndPos) {
this.tsuid = tsuid;
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
this.hasFmi = hasFmi;
this.pos = pos;
this.fmiEndPos = fmiEndPos;
}
}
class AttributeState {
constructor(maySwitchTs, bigEndian, explicitVR, inflater) {
this.maySwitchTs = maySwitchTs;
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
this.inflater = inflater;
}
}
class FragmentsState {
constructor(bigEndian, explicitVR, inflater) {
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
this.inflater = inflater;
}
}
class DicomParseStep extends byte_parser_1.ParseStep {
constructor(state, stop) {
super();
this.state = state;
this.stop = stop;
}
}
class AtBeginning extends DicomParseStep {
constructor(stop) {
super(null, stop);
}
parse(reader) {
if (reader.remainingSize() < parsing_1.dicomPreambleLength + 8) {
if (reader
.remainingData()
.slice(0, 128)
.every((b) => b === 0)) {
reader.ensure(parsing_1.dicomPreambleLength + 8);
}
}
else if ((0, parsing_1.isPreamble)(reader.remainingData())) {
reader.take(parsing_1.dicomPreambleLength);
}
reader.ensure(8);
const info = (0, parsing_1.tryReadHeader)(reader.remainingData());
if (info) {
const nextState = info.hasFmi
? new InFmiAttribute(new FmiAttributeState(undefined, info.bigEndian, info.explicitVR, info.hasFmi, 0, undefined), this.stop)
: new InAttribute(new AttributeState(false, info.bigEndian, info.explicitVR, undefined), this.stop);
return new byte_parser_1.ParseResult(undefined, nextState);
}
else {
throw new Error('Not a DICOM file');
}
}
onTruncation(reader) {
if (reader.remainingSize() !== parsing_1.dicomPreambleLength || !(0, parsing_1.isPreamble)(reader.remainingData())) {
super.onTruncation(reader);
}
}
}
class InFmiAttribute extends DicomParseStep {
constructor(state, stop) {
super(state, stop);
}
parse(reader) {
const header = (0, parsing_1.readHeader)(reader, this.state);
if (this.stop(header)) {
return new byte_parser_1.ParseResult(undefined, byte_parser_1.finishedParser);
}
if ((0, base_1.groupNumber)(header.tag) !== 2) {
console.warn('Missing or wrong File Meta Information Group Length (0002,0000)');
return new byte_parser_1.ParseResult(undefined, this.toDatasetStep(reader));
}
const updatedVr = header.vr === vr_1.VR.UN ? lookup_1.Lookup.vrOf(header.tag) : header.vr;
const bytes = reader.take(header.headerLength + header.valueLength);
const valueBytes = bytes.slice(header.headerLength);
this.state.pos += header.headerLength + header.valueLength;
if (header.tag === tag_1.Tag.FileMetaInformationGroupLength) {
this.state.fmiEndPos = this.state.pos + (0, base_1.bytesToInt)(valueBytes, this.state.bigEndian);
}
else if (header.tag === tag_1.Tag.TransferSyntaxUID) {
this.state.tsuid = (0, base_1.trim)(valueBytes.toString());
}
return new byte_parser_1.ParseResult(new dicom_elements_1.ValueElement(header.tag, updatedVr, new value_1.Value(valueBytes), this.state.bigEndian, this.state.explicitVR), this.state.fmiEndPos && this.state.fmiEndPos <= this.state.pos ? this.toDatasetStep(reader) : this);
}
toDatasetStep(reader) {
let tsuid = this.state.tsuid;
if (!tsuid) {
console.warn('Missing Transfer Syntax (0002,0010) - assume Explicit VR Little Endian');
tsuid = uid_1.UID.ExplicitVRLittleEndian;
}
const bigEndian = tsuid === uid_1.UID.ExplicitVRBigEndianRetired;
const explicitVR = tsuid !== uid_1.UID.ImplicitVRLittleEndian;
let inflater;
if ((0, base_1.isDeflated)(tsuid)) {
reader.ensure(2);
inflater = new (class extends Inflater {
inflate(bytes) {
return zlib_1.default.inflateRawSync(bytes);
}
})();
const firstTwoBytes = reader.remainingData().slice(0, 2);
const hasZLIBHeader = (0, base_1.bytesToUShortBE)(firstTwoBytes) === 0x789c;
if (hasZLIBHeader) {
console.warn('Deflated DICOM Stream with ZLIB Header');
inflater = new (class extends Inflater {
inflate(bytes) {
return zlib_1.default.inflateSync(bytes);
}
})();
}
reader.setInput(inflater.inflate(reader.remainingData()));
}
return new InAttribute(new AttributeState(true, bigEndian, explicitVR, inflater), this.stop);
}
}
class InAttribute extends DicomParseStep {
constructor(state, stop) {
super(state, stop);
}
maybeSwitchTs(reader, state) {
reader.ensure(8);
const data = reader.remainingData().slice(0, 8);
const tag = (0, base_1.bytesToTag)(data, state.bigEndian);
let explicitVR = undefined;
try {
explicitVR = vr_1.VR.valueOf((0, base_1.bytesToVR)(data.slice(4)));
}
catch (e) { }
if ((0, parsing_1.isSpecial)(tag)) {
return new AttributeState(false, state.bigEndian, state.explicitVR, state.inflater);
}
if (state.explicitVR && !explicitVR) {
console.log('Implicit VR attributes detected in explicit VR dataset');
return new AttributeState(false, state.bigEndian, false, state.inflater);
}
if (!state.explicitVR && explicitVR) {
return new AttributeState(false, state.bigEndian, true, state.inflater);
}
return new AttributeState(false, state.bigEndian, state.explicitVR, state.inflater);
}
parse(reader) {
const state = this.state.maySwitchTs ? this.maybeSwitchTs(reader, this.state) : this.state;
const header = (0, parsing_1.readHeader)(reader, state);
reader.take(header.headerLength);
if (header.vr) {
if (this.stop(header)) {
return new byte_parser_1.ParseResult(undefined, byte_parser_1.finishedParser);
}
if (header.vr === vr_1.VR.SQ || (header.vr === vr_1.VR.UN && header.valueLength === base_1.indeterminateLength)) {
return new byte_parser_1.ParseResult(new dicom_elements_1.SequenceElement(header.tag, header.valueLength, state.bigEndian, state.explicitVR), new InAttribute(new AttributeState(false, state.bigEndian, state.explicitVR, state.inflater), this.stop));
}
if (header.valueLength === base_1.indeterminateLength) {
return new byte_parser_1.ParseResult(new dicom_elements_1.FragmentsElement(header.tag, header.vr, state.bigEndian, state.explicitVR), new InFragments(new FragmentsState(state.bigEndian, state.explicitVR, state.inflater), this.stop));
}
return new byte_parser_1.ParseResult(new dicom_elements_1.ValueElement(header.tag, header.vr, new value_1.Value(reader.take(header.valueLength)), state.bigEndian, state.explicitVR), this);
}
switch (header.tag) {
case 0xfffee000:
return new byte_parser_1.ParseResult(new dicom_elements_1.ItemElement(header.valueLength, state.bigEndian), new InAttribute(new AttributeState(true, state.bigEndian, state.explicitVR, state.inflater), this.stop));
case 0xfffee00d:
return new byte_parser_1.ParseResult(new dicom_elements_1.ItemDelimitationElement(state.bigEndian), new InAttribute(new AttributeState(false, state.bigEndian, state.explicitVR, state.inflater), this.stop));
case 0xfffee0dd:
return new byte_parser_1.ParseResult(new dicom_elements_1.SequenceDelimitationElement(state.bigEndian), new InAttribute(new AttributeState(true, state.bigEndian, state.explicitVR, state.inflater), this.stop));
}
return new byte_parser_1.ParseResult(new dicom_elements_1.UnknownElement(state.bigEndian), this);
}
}
class InFragments extends DicomParseStep {
constructor(state, stop) {
super(state, stop);
}
parse(reader) {
const header = (0, parsing_1.readHeader)(reader, this.state);
reader.take(header.headerLength);
if (header.tag === 0xfffee000) {
// begin fragment
const valueBytes = reader.take(header.valueLength);
return new byte_parser_1.ParseResult(new dicom_elements_1.FragmentElement(header.valueLength, new value_1.Value(valueBytes), this.state.bigEndian), new InFragments(new FragmentsState(this.state.bigEndian, this.state.explicitVR, this.state.inflater), this.stop));
}
if (header.tag === 0xfffee0dd) {
// end fragments
if (header.valueLength !== 0) {
console.warn('Unexpected fragments delimitation length ' + header.valueLength);
}
return new byte_parser_1.ParseResult(new dicom_elements_1.SequenceDelimitationElement(this.state.bigEndian), new InAttribute(new AttributeState(false, this.state.bigEndian, this.state.explicitVR, this.state.inflater), this.stop));
}
reader.take(header.valueLength);
console.warn('Unexpected element (' + (0, base_1.tagToString)(header.tag) + ') in fragments with length ' + header.valueLength);
return new byte_parser_1.ParseResult(new dicom_elements_1.UnknownElement(this.state.bigEndian), this);
}
}
class Parser {
constructor(stop) {
this.stop = stop;
this.builder = new elements_builder_1.ElementsBuilder();
this.byteParser = new byte_parser_1.ByteParser(this);
const shouldStop = stop
? (attributeInfo) => stop(attributeInfo, this.builder.currentDepth())
: () => false;
this.byteParser.startWith(new AtBeginning(shouldStop));
}
/**
* Parse the input binary data, producing DICOM elements that are added to the internal builder. An elements
* structure can be fetched based on the builder at any time.
*/
parse(chunk) {
const step = this.byteParser.current instanceof DicomParseStep ? this.byteParser.current : undefined;
if (step && step.state && step.state.inflater) {
chunk = step.state.inflater.inflate(chunk);
}
this.byteParser.parse(chunk);
}
/**
* Called by byte parser when it is emitting the next parsed element.
*/
next(element) {
this.builder.addElement(element);
}
/**
* Get the current elements as represented by the builder
*/
result() {
return this.builder.build();
}
/**
* Returns true the parser has completed parsing (stop condition was met)
*/
isComplete() {
return this.byteParser.isCompleted;
}
/**
* Called by byte parser when completing parser. Nothing to do here.
*/
complete() {
// do nothing
}
/**
* Called by byte parser on error. Here we just throw the error.
*/
fail(error) {
throw error;
}
}
exports.Parser = Parser;
/***/ }),
/***/ "./src/parsing.ts":
/*!************************!*\
!*** ./src/parsing.ts ***!
\************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.warnIfOdd = exports.readHeader = exports.AttributeInfo = exports.readTagVr = exports.isSpecial = exports.TagVr = exports.isPreamble = exports.headerInfo = exports.tryReadHeader = exports.HeaderInfo = exports.isDICM = exports.dicomPreambleLength = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
exports.dicomPreambleLength = 132;
function isDICM(bytes) {
return bytes[0] === 68 && bytes[1] === 73 && bytes[2] === 67 && bytes[3] === 77;
}
exports.isDICM = isDICM;
class HeaderInfo {
constructor(bigEndian, explicitVR, hasFmi) {
this.bigEndian = bigEndian;
this.explicitVR = explicitVR;
this.hasFmi = hasFmi;
}
}
exports.HeaderInfo = HeaderInfo;
function tryReadHeader(data) {
const info = headerInfo(data, false);
return info === undefined ? headerInfo(data, true) : info;
}
exports.tryReadHeader = tryReadHeader;
function headerInfo(data, assumeBigEndian) {
const tag = (0, base_1.bytesToTag)(data, assumeBigEndian);
const vr = lookup_1.Lookup.vrOf(tag);
if (vr === vr_1.VR.UN || ((0, base_1.groupNumber)(tag) !== 2 && (0, base_1.groupNumber)(tag) < 8)) {
return undefined;
}
if ((0, base_1.bytesToVR)(data.slice(4, 6)) === vr.code) {
return {
bigEndian: assumeBigEndian,
explicitVR: true,
hasFmi: (0, base_1.isFileMetaInformation)(tag),
};
}
if ((0, base_1.bytesToUInt)(data.slice(4, 8), assumeBigEndian) >= 0) {
if (assumeBigEndian) {
throw Error('Implicit VR Big Endian encoded DICOM Stream');
}
else {
return {
bigEndian: false,
explicitVR: false,
hasFmi: (0, base_1.isFileMetaInformation)(tag),
};
}
}
return undefined;
}
exports.headerInfo = headerInfo;
function isPreamble(data) {
return data.length >= exports.dicomPreambleLength && isDICM(data.slice(exports.dicomPreambleLength - 4, exports.dicomPreambleLength));
}
exports.isPreamble = isPreamble;
class TagVr {
constructor(tag, vr) {
this.tag = tag;
this.vr = vr;
}
}
exports.TagVr = TagVr;
function isSpecial(tag) {
return tag === 0xfffee000 || tag === 0xfffee00d || tag === 0xfffee0dd;
}
exports.isSpecial = isSpecial;
function readTagVr(data, bigEndian, explicitVr) {
const tag = (0, base_1.bytesToTag)(data, bigEndian);
if (isSpecial(tag)) {
return new TagVr(tag, undefined);
}
if (explicitVr) {
return new TagVr(tag, vr_1.VR.valueOf((0, base_1.bytesToVR)(data.slice(4, 6))));
}
return new TagVr(tag, lookup_1.Lookup.vrOf(tag));
}
exports.readTagVr = readTagVr;
class AttributeInfo {
constructor(tag, vr, headerLength, valueLength) {
this.tag = tag;
this.vr = vr;
this.headerLength = headerLength;
this.valueLength = valueLength;
}
}
exports.AttributeInfo = AttributeInfo;
function readHeader(reader, state) {
reader.ensure(8);
const tagVrBytes = reader.remainingData().slice(0, 8);
const tagVr = readTagVr(tagVrBytes, state.bigEndian, state.explicitVR);
if (tagVr.vr && state.explicitVR) {
if (tagVr.vr.headerLength === 8) {
return new AttributeInfo(tagVr.tag, tagVr.vr, 8, (0, base_1.bytesToUShort)(tagVrBytes.slice(6), state.bigEndian));
}
reader.ensure(12);
return new AttributeInfo(tagVr.tag, tagVr.vr, 12, (0, base_1.bytesToUInt)(reader.remainingData().slice(8), state.bigEndian));
}
return new AttributeInfo(tagVr.tag, tagVr.vr, 8, (0, base_1.bytesToUInt)(tagVrBytes.slice(4), state.bigEndian));
}
exports.readHeader = readHeader;
function warnIfOdd(tag, vr, valueLength) {
if (valueLength % 2 > 0 && valueLength != base_1.indeterminateLength && vr != null && vr != vr_1.VR.SQ) {
console.warn(`Element ${(0, base_1.tagToString)(tag)} has odd length`);
}
}
exports.warnIfOdd = warnIfOdd;
/***/ }),
/***/ "./src/person-name.ts":
/*!****************************!*\
!*** ./src/person-name.ts ***!
\****************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.PersonName = exports.ComponentGroup = void 0;
const value_1 = __webpack_require__(/*! ./value */ "./src/value.ts");
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
class ComponentGroup {
constructor(alphabetic, ideographic = '', phonetic = '') {
this.alphabetic = alphabetic;
this.ideographic = ideographic;
this.phonetic = phonetic;
}
}
exports.ComponentGroup = ComponentGroup;
class PersonName {
constructor(familyName, givenName, middleName = new ComponentGroup(''), prefix = new ComponentGroup(''), suffix = new ComponentGroup('')) {
this.familyName = familyName;
this.givenName = givenName;
this.middleName = middleName;
this.prefix = prefix;
this.suffix = suffix;
}
static parse(s) {
return s
.split(base_1.multiValueDelimiter)
.map(base_1.trim)
.map((s1) => (0, value_1.parsePersonName)(s1));
}
toString() {
const components = [this.familyName, this.givenName, this.middleName, this.prefix, this.suffix];
const representations = ['alphabetic', 'ideographic', 'phonetic'];
return representations
.map((repr) => {
return components
.map((c) => c[repr])
.join('^')
.replace(/\^+$/, ''); // Trim trailing ^ separators
})
.join('=')
.replace(/=+$/, ''); // Trim trailing = separators
}
}
exports.PersonName = PersonName;
/***/ }),
/***/ "./src/sinks.ts":
/*!**********************!*\
!*** ./src/sinks.ts ***!
\**********************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.arraySink = exports.ignoreSink = exports.byteSink = void 0;
const stream_1 = __webpack_require__(/*! stream */ "stream");
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
function byteSink(callback) {
let buffer = base_1.emptyBuffer;
const sink = new stream_1.Writable({
write(chunk, encoding, cb) {
buffer = (0, base_1.concat)(buffer, chunk);
process.nextTick(() => cb());
},
});
sink.once('finish', () => {
callback(buffer);
});
return sink;
}
exports.byteSink = byteSink;
function ignoreSink(objectMode = false) {
return new stream_1.Writable({
objectMode,
write(chunk, encoding, callback) {
process.nextTick(() => callback());
},
});
}
exports.ignoreSink = ignoreSink;
function arraySink(arrayCallback) {
const array = [];
const sink = new stream_1.Writable({
objectMode: true,
write(chunk, encoding, callback) {
array.push(chunk);
process.nextTick(() => callback());
},
});
sink.once('finish', () => arrayCallback(array));
return sink;
}
exports.arraySink = arraySink;
/***/ }),
/***/ "./src/sources.ts":
/*!************************!*\
!*** ./src/sources.ts ***!
\************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.arraySource = exports.singleSource = void 0;
const stream_1 = __webpack_require__(/*! stream */ "stream");
function singleSource(element, objectMode = false) {
return new stream_1.Readable({
objectMode,
read() {
this.push(element);
this.push(null);
},
});
}
exports.singleSource = singleSource;
function arraySource(array, objectMode = false) {
let pos = 0;
return new stream_1.Readable({
highWaterMark: 1,
objectMode,
read(size) {
size = size || 1;
const maxPos = Math.min(pos + size, array.length);
let i = pos;
while (i < maxPos && this.push(array[i++])) {
// do nothing
}
if (i === array.length) {
this.push(null);
}
pos = i;
},
});
}
exports.arraySource = arraySource;
/***/ }),
/***/ "./src/tag-path-like.ts":
/*!******************************!*\
!*** ./src/tag-path-like.ts ***!
\******************************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.TagPathLike = void 0;
class TagPathLike {
isRoot() {
return this.previous().isEmpty();
}
toList() {
const toListRec = (path, list) => {
if (!path.isRoot()) {
toListRec(path.previous(), list);
}
list.push(path);
return list;
};
return toListRec(this, []);
}
contains(tag) {
return (this.toList()
.map((tp) => tp.tag())
.indexOf(tag) >= 0);
}
depth() {
const depthRec = (path, d) => {
if (path.isRoot()) {
return d;
}
else {
return depthRec(path.previous(), d + 1);
}
};
return this.isEmpty() ? 0 : depthRec(this, 1);
}
head() {
return this.take(1);
}
tail() {
return this.drop(1);
}
take(n) {
const takeRec = (path, i) => {
return i <= 0 ? path : takeRec(path.previous(), i - 1);
};
return takeRec(this, this.depth() - n);
}
}
exports.TagPathLike = TagPathLike;
/***/ }),
/***/ "./src/tag-path.ts":
/*!*************************!*\
!*** ./src/tag-path.ts ***!
\*************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.TagPathItemEnd = exports.TagPathItem = exports.TagPathSequenceEnd = exports.TagPathSequence = exports.TagPathTag = exports.emptyTagPath = exports.TagPathTrunk = exports.TagPath = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const tag_path_like_1 = __webpack_require__(/*! ./tag-path-like */ "./src/tag-path-like.ts");
class TagPath extends tag_path_like_1.TagPathLike {
static fromTag(tag) {
return exports.emptyTagPath.thenTag(tag);
}
static fromSequence(tag) {
return exports.emptyTagPath.thenSequence(tag);
}
static fromSequenceEnd(tag) {
return exports.emptyTagPath.thenSequenceEnd(tag);
}
static fromItem(tag, item) {
return exports.emptyTagPath.thenItem(tag, item);
}
static fromItemEnd(tag, item) {
return exports.emptyTagPath.thenItemEnd(tag, item);
}
static parse(s) {
const indexPart = (s1) => s1.substring(s1.lastIndexOf('[') + 1, s1.length - 1);
const tagPart = (s1) => s1.substring(0, s1.indexOf('['));
const parseTag = (s1) => {
const tag = lookup_1.Lookup.tagOf(s1);
if (!tag) {
if (s1.length === 11 && s1[0] === '(' && s1[5] === ',' && s1[10] === ')') {
const i = parseInt(s1.substring(1, 5) + s1.substring(6, 10), 16);
if (!isNaN(i)) {
return i;
}
}
throw Error(s1 + ' is not a tag or name string');
}
return tag;
};
const parseIndex = (s1) => {
const i = parseInt(s1, 10);
if (isNaN(i)) {
throw Error(s1 + ' is not a number');
}
return i;
};
const createTag = (s1) => TagPath.fromTag(parseTag(s1));
const addTag = (s1, path) => path.thenTag(parseTag(s1));
const createSeq = (s1) => TagPath.fromItem(parseTag(tagPart(s1)), parseIndex(indexPart(s1)));
const addSeq = (s1, path) => path.thenItem(parseTag(tagPart(s1)), parseIndex(indexPart(s1)));
const tags = s.indexOf('.') > 0 ? s.split('.') : [s];
const seqTags = tags.length > 1 ? tags.slice(0, tags.length - 1) : []; // list of sequence tags, if any
const lastTag = tags[tags.length - 1]; // tag or sequence
try {
const first = seqTags.length > 0 ? seqTags[0] : undefined;
if (first) {
const path = seqTags.slice(1, seqTags.length).reduce((p, tag) => addSeq(tag, p), createSeq(first));
return addTag(lastTag, path);
}
return createTag(lastTag);
}
catch (error) {
throw Error('Tag path could not be parsed: ' + error.message);
}
}
constructor(tag, previous) {
super();
this.tagVal = tag;
this.previousVal = previous;
}
tag() {
return this.tagVal;
}
previous() {
return this.previousVal;
}
isEmpty() {
return this === exports.emptyTagPath;
}
isBelow(that) {
const thisList = this.toList();
const thatList = that.toList();
for (let i = 0; i < Math.min(thisList.length, thatList.length); i++) {
const thisPath = thisList[i];
const thatPath = thatList[i];
if (thisPath.isEmpty()) {
return !thatPath.isEmpty();
}
if (thatPath.isEmpty()) {
return false;
}
if (thisPath.tag() !== thatPath.tag()) {
return thisPath.tag() < thatPath.tag();
}
if (thisPath instanceof TagPathSequence && 'item' in thatPath) {
return true;
}
if (thisPath instanceof TagPathSequence && thatPath instanceof TagPathSequenceEnd) {
return true;
}
if (thisPath instanceof TagPathSequenceEnd && 'item' in thatPath) {
return false;
}
if (thisPath instanceof TagPathSequenceEnd && thatPath instanceof TagPathSequence) {
return false;
}
if ('item' in thisPath && thatPath instanceof TagPathSequence) {
return false;
}
if ('item' in thisPath && thatPath instanceof TagPathSequenceEnd) {
return true;
}
if ('item' in thisPath &&
'item' in thatPath &&
thisPath.item !== thatPath.item) {
return thisPath.item < thatPath.item;
}
if (thisPath instanceof TagPathItem && thatPath instanceof TagPathItemEnd) {
return true;
}
if (thisPath instanceof TagPathItemEnd && thatPath instanceof TagPathItem) {
return false;
}
}
return thisList.length < thatList.length;
}
isEqualTo(that) {
if (this.isEmpty() && that.isEmpty()) {
return true;
}
if (this instanceof TagPathTag && that instanceof TagPathTag) {
return this.tag() === that.tag() && this.previous().isEqualTo(that.previous());
}
if (this instanceof TagPathSequence && that instanceof TagPathSequence) {
return this.tag() === that.tag() && this.previous().isEqualTo(that.previous());
}
if (this instanceof TagPathSequenceEnd && that instanceof TagPathSequenceEnd) {
return this.tag() === that.tag() && this.previous().isEqualTo(that.previous());
}
if (this instanceof TagPathItem && that instanceof TagPathItem) {
return this.tag() === that.tag() && this.item === that.item && this.previous().isEqualTo(that.previous());
}
if (this instanceof TagPathItemEnd && that instanceof TagPathItemEnd) {
return this.tag() === that.tag() && this.item === that.item && this.previous().isEqualTo(that.previous());
}
return false;
}
startsWith(that) {
const thisDepth = this.depth();
const thatDepth = that.depth();
if (thisDepth >= thatDepth) {
const n = Math.min(thisDepth, thatDepth);
return this.take(n).isEqualTo(that.take(n));
}
else {
return false;
}
}
endsWith(that) {
const n = this.depth() - that.depth();
return n >= 0 ? this.drop(n).isEqualTo(that) : false;
}
drop(n) {
const dropRec = (path, i) => {
if (i < 0) {
return exports.emptyTagPath;
}
if (i === 0) {
if (path.isEmpty()) {
return exports.emptyTagPath;
}
if (path instanceof TagPathItem) {
return TagPath.fromItem(path.tag(), path.item);
}
if (path instanceof TagPathItemEnd) {
return TagPath.fromItemEnd(path.tag(), path.item);
}
if (path instanceof TagPathSequence) {
return TagPath.fromSequence(path.tag());
}
if (path instanceof TagPathSequenceEnd) {
return TagPath.fromSequenceEnd(path.tag());
}
return TagPath.fromTag(path.tag());
}
const p = dropRec(path.previous(), i - 1);
if (path instanceof TagPathItem) {
return p.thenItem(path.tag(), path.item);
}
if (path instanceof TagPathItemEnd) {
return p.thenItemEnd(path.tag(), path.item);
}
if (path instanceof TagPathSequence) {
return p.thenSequence(path.tag());
}
if (path instanceof TagPathSequenceEnd) {
return p.thenSequenceEnd(path.tag());
}
if (path instanceof TagPathTag) {
return p.thenTag(path.tag());
}
return exports.emptyTagPath;
};
return dropRec(this, this.depth() - n - 1);
}
toNamedString(lookup) {
const toTagString = (tag) => {
if (lookup) {
const keyword = lookup_1.Lookup.keywordOf(tag);
if (keyword) {
return keyword;
}
}
return (0, base_1.tagToString)(tag);
};
const toTagPathString = (path, tail) => {
const itemIndexSuffix = 'item' in path ? '[' + path.item + ']' : '';
const head = toTagString(path.tag()) + itemIndexSuffix;
const part = head + tail;
return path.isRoot() ? part : toTagPathString(path.previous(), '.' + part);
};
return this.isEmpty() ? '<empty path>' : toTagPathString(this, '');
}
}
exports.TagPath = TagPath;
class TagPathTrunk extends TagPath {
thenTag(tag) {
return new TagPathTag(tag, this);
}
thenSequence(tag) {
return new TagPathSequence(tag, this);
}
thenSequenceEnd(tag) {
return new TagPathSequenceEnd(tag, this);
}
thenItem(tag, item) {
return new TagPathItem(tag, item, this);
}
thenItemEnd(tag, item) {
return new TagPathItemEnd(tag, item, this);
}
}
exports.TagPathTrunk = TagPathTrunk;
class EmptyTagPath extends TagPathTrunk {
tag() {
throw Error('Empty tag path');
}
previous() {
return exports.emptyTagPath;
}
}
exports.emptyTagPath = new EmptyTagPath(-1, null);
class TagPathTag extends TagPath {
constructor(tag, previous) {
super(tag, previous);
}
}
exports.TagPathTag = TagPathTag;
class TagPathSequence extends TagPath {
constructor(tag, previous) {
super(tag, previous);
}
}
exports.TagPathSequence = TagPathSequence;
class TagPathSequenceEnd extends TagPath {
constructor(tag, previous) {
super(tag, previous);
}
}
exports.TagPathSequenceEnd = TagPathSequenceEnd;
class TagPathItem extends TagPathTrunk {
constructor(tag, item, previous) {
super(tag, previous);
this.item = item;
}
}
exports.TagPathItem = TagPathItem;
class TagPathItemEnd extends TagPathTrunk {
constructor(tag, item, previous) {
super(tag, previous);
this.item = item;
}
}
exports.TagPathItemEnd = TagPathItemEnd;
/***/ }),
/***/ "./src/tag-to-vr.ts":
/*!**************************!*\
!*** ./src/tag-to-vr.ts ***!
\**************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.TagToVR = void 0;
const tag_1 = __webpack_require__(/*! ./tag */ "./src/tag.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
class TagToVR {
static adjustTag(tag) {
if ((tag & 0xffe00000) === 0x50000000 || (tag & 0xffe00000) === 0x60000000) {
return tag & 0xffe0ffff;
}
if ((tag & 0xff000000) === 0x7f000000 && (tag & 0xffff0000) !== 0x7fe00000) {
return tag & 0xff00ffff;
}
return tag;
}
static vrOf(tag) {
if ((tag & 0x0000ffff) === 0) {
return vr_1.VR.UL; // group length
}
if ((tag & 0x00010000) !== 0) {
// private creator ID
return (tag & 0x0000ff00) === 0 && (tag & 0x000000f0) !== 0 ? vr_1.VR.LO : vr_1.VR.UN;
}
if ((tag & 0xffffff00) === tag_1.Tag.SourceImageIDs) {
return vr_1.VR.CS;
}
const key = TagToVR.adjustTag(tag).toString(16);
return key in TagToVR.dict ? TagToVR.dict[key] : vr_1.VR.UN;
}
}
TagToVR.dict = {
'0': vr_1.VR.UL,
'2': vr_1.VR.UI,
'3': vr_1.VR.UI,
'100': vr_1.VR.US,
'110': vr_1.VR.US,
'120': vr_1.VR.US,
'600': vr_1.VR.AE,
'700': vr_1.VR.US,
'800': vr_1.VR.US,
'900': vr_1.VR.US,
'901': vr_1.VR.AT,
'902': vr_1.VR.LO,
'903': vr_1.VR.US,
'1000': vr_1.VR.UI,
'1001': vr_1.VR.UI,
'1002': vr_1.VR.US,
'1005': vr_1.VR.AT,
'1008': vr_1.VR.US,
'1020': vr_1.VR.US,
'1021': vr_1.VR.US,
'1022': vr_1.VR.US,
'1023': vr_1.VR.US,
'1030': vr_1.VR.AE,
'1031': vr_1.VR.US,
'20000': vr_1.VR.UL,
'20001': vr_1.VR.OB,
'20002': vr_1.VR.UI,
'20003': vr_1.VR.UI,
'20010': vr_1.VR.UI,
'20012': vr_1.VR.UI,
'20013': vr_1.VR.SH,
'20016': vr_1.VR.AE,
'20017': vr_1.VR.AE,
'20018': vr_1.VR.AE,
'20100': vr_1.VR.UI,
'20102': vr_1.VR.OB,
'41130': vr_1.VR.CS,
'41141': vr_1.VR.CS,
'41142': vr_1.VR.CS,
'41200': vr_1.VR.UL,
'41202': vr_1.VR.UL,
'41212': vr_1.VR.US,
'41220': vr_1.VR.SQ,
'41400': vr_1.VR.UL,
'41410': vr_1.VR.US,
'41420': vr_1.VR.UL,
'41430': vr_1.VR.CS,
'41432': vr_1.VR.UI,
'41500': vr_1.VR.CS,
'41504': vr_1.VR.UL,
'41510': vr_1.VR.UI,
'41511': vr_1.VR.UI,
'41512': vr_1.VR.UI,
'4151a': vr_1.VR.UI,
'41600': vr_1.VR.UL,
'80001': vr_1.VR.UL,
'80005': vr_1.VR.CS,
'80006': vr_1.VR.SQ,
'80008': vr_1.VR.CS,
'80010': vr_1.VR.SH,
'80012': vr_1.VR.DA,
'80013': vr_1.VR.TM,
'80014': vr_1.VR.UI,
'80015': vr_1.VR.DT,
'80016': vr_1.VR.UI,
'80018': vr_1.VR.UI,
'8001a': vr_1.VR.UI,
'8001b': vr_1.VR.UI,
'80020': vr_1.VR.DA,
'80021': vr_1.VR.DA,
'80022': vr_1.VR.DA,
'80023': vr_1.VR.DA,
'80024': vr_1.VR.DA,
'80025': vr_1.VR.DA,
'8002a': vr_1.VR.DT,
'80030': vr_1.VR.TM,
'80031': vr_1.VR.TM,
'80032': vr_1.VR.TM,
'80033': vr_1.VR.TM,
'80034': vr_1.VR.TM,
'80035': vr_1.VR.TM,
'80040': vr_1.VR.US,
'80041': vr_1.VR.LO,
'80042': vr_1.VR.CS,
'80050': vr_1.VR.SH,
'80051': vr_1.VR.SQ,
'80052': vr_1.VR.CS,
'80053': vr_1.VR.CS,
'80054': vr_1.VR.AE,
'80055': vr_1.VR.AE,
'80056': vr_1.VR.CS,
'80058': vr_1.VR.UI,
'80060': vr_1.VR.CS,
'80061': vr_1.VR.CS,
'80062': vr_1.VR.UI,
'80063': vr_1.VR.SQ,
'80064': vr_1.VR.CS,
'80068': vr_1.VR.CS,
'80070': vr_1.VR.LO,
'80080': vr_1.VR.LO,
'80081': vr_1.VR.ST,
'80082': vr_1.VR.SQ,
'80090': vr_1.VR.PN,
'80092': vr_1.VR.ST,
'80094': vr_1.VR.SH,
'80096': vr_1.VR.SQ,
'8009c': vr_1.VR.PN,
'8009d': vr_1.VR.SQ,
'80100': vr_1.VR.SH,
'80101': vr_1.VR.LO,
'80102': vr_1.VR.SH,
'80103': vr_1.VR.SH,
'80104': vr_1.VR.LO,
'80105': vr_1.VR.CS,
'80106': vr_1.VR.DT,
'80107': vr_1.VR.DT,
'80108': vr_1.VR.LT,
'80109': vr_1.VR.SQ,
'8010a': vr_1.VR.CS,
'8010b': vr_1.VR.CS,
'8010c': vr_1.VR.UI,
'8010d': vr_1.VR.UI,
'8010e': vr_1.VR.UR,
'8010f': vr_1.VR.CS,
'80110': vr_1.VR.SQ,
'80112': vr_1.VR.LO,
'80114': vr_1.VR.ST,
'80115': vr_1.VR.ST,
'80116': vr_1.VR.ST,
'80117': vr_1.VR.UI,
'80118': vr_1.VR.UI,
'80119': vr_1.VR.UC,
'80120': vr_1.VR.UR,
'80121': vr_1.VR.SQ,
'80122': vr_1.VR.LO,
'80123': vr_1.VR.SQ,
'80124': vr_1.VR.SQ,
'80201': vr_1.VR.SH,
'80220': vr_1.VR.SQ,
'80221': vr_1.VR.CS,
'80222': vr_1.VR.LO,
'80300': vr_1.VR.SQ,
'80301': vr_1.VR.US,
'80302': vr_1.VR.LO,
'80303': vr_1.VR.CS,
'80304': vr_1.VR.US,
'80305': vr_1.VR.SQ,
'80306': vr_1.VR.US,
'80307': vr_1.VR.CS,
'80308': vr_1.VR.US,
'80309': vr_1.VR.UL,
'8030a': vr_1.VR.CS,
'8030b': vr_1.VR.UL,
'8030c': vr_1.VR.UC,
'8030d': vr_1.VR.UC,
'8030e': vr_1.VR.UT,
'8030f': vr_1.VR.UT,
'80310': vr_1.VR.SQ,
'81000': vr_1.VR.AE,
'81010': vr_1.VR.SH,
'81030': vr_1.VR.LO,
'81032': vr_1.VR.SQ,
'8103e': vr_1.VR.LO,
'8103f': vr_1.VR.SQ,
'81040': vr_1.VR.LO,
'81048': vr_1.VR.PN,
'81049': vr_1.VR.SQ,
'81050': vr_1.VR.PN,
'81052': vr_1.VR.SQ,
'81060': vr_1.VR.PN,
'81062': vr_1.VR.SQ,
'81070': vr_1.VR.PN,
'81072': vr_1.VR.SQ,
'81080': vr_1.VR.LO,
'81084': vr_1.VR.SQ,
'81090': vr_1.VR.LO,
'81100': vr_1.VR.SQ,
'81110': vr_1.VR.SQ,
'81111': vr_1.VR.SQ,
'81115': vr_1.VR.SQ,
'81120': vr_1.VR.SQ,
'81125': vr_1.VR.SQ,
'81130': vr_1.VR.SQ,
'81134': vr_1.VR.SQ,
'8113a': vr_1.VR.SQ,
'81140': vr_1.VR.SQ,
'81145': vr_1.VR.SQ,
'8114a': vr_1.VR.SQ,
'8114b': vr_1.VR.SQ,
'81150': vr_1.VR.UI,
'81155': vr_1.VR.UI,
'81156': vr_1.VR.SQ,
'8115a': vr_1.VR.UI,
'81160': vr_1.VR.IS,
'81161': vr_1.VR.UL,
'81162': vr_1.VR.UL,
'81163': vr_1.VR.FD,
'81164': vr_1.VR.SQ,
'81167': vr_1.VR.UI,
'81190': vr_1.VR.UR,
'81195': vr_1.VR.UI,
'81196': vr_1.VR.US,
'81197': vr_1.VR.US,
'81198': vr_1.VR.SQ,
'81199': vr_1.VR.SQ,
'8119a': vr_1.VR.SQ,
'81200': vr_1.VR.SQ,
'81250': vr_1.VR.SQ,
'82110': vr_1.VR.CS,
'82111': vr_1.VR.ST,
'82112': vr_1.VR.SQ,
'82120': vr_1.VR.SH,
'82122': vr_1.VR.IS,
'82124': vr_1.VR.IS,
'82127': vr_1.VR.SH,
'82128': vr_1.VR.IS,
'82129': vr_1.VR.IS,
'8212a': vr_1.VR.IS,
'82130': vr_1.VR.DS,
'82132': vr_1.VR.LO,
'82133': vr_1.VR.SQ,
'82134': vr_1.VR.FD,
'82135': vr_1.VR.SQ,
'82142': vr_1.VR.IS,
'82143': vr_1.VR.IS,
'82144': vr_1.VR.IS,
'82200': vr_1.VR.CS,
'82204': vr_1.VR.CS,
'82208': vr_1.VR.CS,
'82218': vr_1.VR.SQ,
'82220': vr_1.VR.SQ,
'82228': vr_1.VR.SQ,
'82229': vr_1.VR.SQ,
'82230': vr_1.VR.SQ,
'82240': vr_1.VR.SQ,
'82242': vr_1.VR.SQ,
'82244': vr_1.VR.SQ,
'82246': vr_1.VR.SQ,
'82251': vr_1.VR.SQ,
'82253': vr_1.VR.SQ,
'82255': vr_1.VR.SQ,
'82256': vr_1.VR.ST,
'82257': vr_1.VR.SQ,
'82258': vr_1.VR.ST,
'82259': vr_1.VR.SQ,
'8225a': vr_1.VR.SQ,
'8225c': vr_1.VR.SQ,
'83001': vr_1.VR.SQ,
'83010': vr_1.VR.UI,
'83011': vr_1.VR.SQ,
'83012': vr_1.VR.UI,
'84000': vr_1.VR.LT,
'89007': vr_1.VR.CS,
'89092': vr_1.VR.SQ,
'89121': vr_1.VR.SQ,
'89123': vr_1.VR.UI,
'89124': vr_1.VR.SQ,
'89154': vr_1.VR.SQ,
'89205': vr_1.VR.CS,
'89206': vr_1.VR.CS,
'89207': vr_1.VR.CS,
'89208': vr_1.VR.CS,
'89209': vr_1.VR.CS,
'89215': vr_1.VR.SQ,
'89237': vr_1.VR.SQ,
'89410': vr_1.VR.SQ,
'89458': vr_1.VR.SQ,
'89459': vr_1.VR.FL,
'89460': vr_1.VR.CS,
'100010': vr_1.VR.PN,
'100020': vr_1.VR.LO,
'100021': vr_1.VR.LO,
'100022': vr_1.VR.CS,
'100024': vr_1.VR.SQ,
'100026': vr_1.VR.SQ,
'100027': vr_1.VR.SQ,
'100028': vr_1.VR.US,
'100030': vr_1.VR.DA,
'100032': vr_1.VR.TM,
'100033': vr_1.VR.LO,
'100034': vr_1.VR.LO,
'100035': vr_1.VR.CS,
'100040': vr_1.VR.CS,
'100050': vr_1.VR.SQ,
'100101': vr_1.VR.SQ,
'100102': vr_1.VR.SQ,
'100200': vr_1.VR.CS,
'100201': vr_1.VR.SQ,
'100212': vr_1.VR.UC,
'100213': vr_1.VR.LO,
'100214': vr_1.VR.LO,
'100215': vr_1.VR.SQ,
'100216': vr_1.VR.SQ,
'100217': vr_1.VR.LO,
'100218': vr_1.VR.UT,
'100219': vr_1.VR.SQ,
'100221': vr_1.VR.SQ,
'100222': vr_1.VR.UC,
'100223': vr_1.VR.LO,
'100229': vr_1.VR.SQ,
'101000': vr_1.VR.LO,
'101001': vr_1.VR.PN,
'101002': vr_1.VR.SQ,
'101005': vr_1.VR.PN,
'101010': vr_1.VR.AS,
'101020': vr_1.VR.DS,
'101021': vr_1.VR.SQ,
'101022': vr_1.VR.DS,
'101023': vr_1.VR.DS,
'101024': vr_1.VR.DS,
'101030': vr_1.VR.DS,
'101040': vr_1.VR.LO,
'101050': vr_1.VR.LO,
'101060': vr_1.VR.PN,
'101080': vr_1.VR.LO,
'101081': vr_1.VR.LO,
'101090': vr_1.VR.LO,
'101100': vr_1.VR.SQ,
'102000': vr_1.VR.LO,
'102110': vr_1.VR.LO,
'102150': vr_1.VR.LO,
'102152': vr_1.VR.LO,
'102154': vr_1.VR.SH,
'102155': vr_1.VR.LT,
'102160': vr_1.VR.SH,
'102180': vr_1.VR.SH,
'1021a0': vr_1.VR.CS,
'1021b0': vr_1.VR.LT,
'1021c0': vr_1.VR.US,
'1021d0': vr_1.VR.DA,
'1021f0': vr_1.VR.LO,
'102201': vr_1.VR.LO,
'102202': vr_1.VR.SQ,
'102203': vr_1.VR.CS,
'102210': vr_1.VR.CS,
'102292': vr_1.VR.LO,
'102293': vr_1.VR.SQ,
'102294': vr_1.VR.SQ,
'102295': vr_1.VR.LO,
'102296': vr_1.VR.SQ,
'102297': vr_1.VR.PN,
'102298': vr_1.VR.CS,
'102299': vr_1.VR.LO,
'104000': vr_1.VR.LT,
'109431': vr_1.VR.FL,
'120010': vr_1.VR.LO,
'120020': vr_1.VR.LO,
'120021': vr_1.VR.LO,
'120030': vr_1.VR.LO,
'120031': vr_1.VR.LO,
'120040': vr_1.VR.LO,
'120042': vr_1.VR.LO,
'120050': vr_1.VR.LO,
'120051': vr_1.VR.ST,
'120052': vr_1.VR.FD,
'120053': vr_1.VR.CS,
'120060': vr_1.VR.LO,
'120062': vr_1.VR.CS,
'120063': vr_1.VR.LO,
'120064': vr_1.VR.SQ,
'120071': vr_1.VR.LO,
'120072': vr_1.VR.LO,
'120081': vr_1.VR.LO,
'120082': vr_1.VR.LO,
'120083': vr_1.VR.SQ,
'120084': vr_1.VR.CS,
'120085': vr_1.VR.CS,
'120086': vr_1.VR.DA,
'120087': vr_1.VR.DA,
'140023': vr_1.VR.ST,
'140024': vr_1.VR.ST,
'140025': vr_1.VR.ST,
'140028': vr_1.VR.ST,
'140030': vr_1.VR.DS,
'140032': vr_1.VR.DS,
'140034': vr_1.VR.DS,
'140042': vr_1.VR.ST,
'140044': vr_1.VR.ST,
'140045': vr_1.VR.ST,
'140046': vr_1.VR.LT,
'140050': vr_1.VR.CS,
'140052': vr_1.VR.CS,
'140054': vr_1.VR.DS,
'140056': vr_1.VR.DS,
'140100': vr_1.VR.LO,
'140101': vr_1.VR.CS,
'140102': vr_1.VR.DA,
'140103': vr_1.VR.TM,
'140104': vr_1.VR.PN,
'140105': vr_1.VR.ST,
'140106': vr_1.VR.SQ,
'140107': vr_1.VR.CS,
'140108': vr_1.VR.CS,
'141010': vr_1.VR.ST,
'141020': vr_1.VR.DA,
'141040': vr_1.VR.ST,
'142002': vr_1.VR.SQ,
'142004': vr_1.VR.IS,
'142006': vr_1.VR.PN,
'142008': vr_1.VR.IS,
'142012': vr_1.VR.SQ,
'142014': vr_1.VR.IS,
'142016': vr_1.VR.SH,
'142018': vr_1.VR.ST,
'14201a': vr_1.VR.CS,
'14201c': vr_1.VR.CS,
'14201e': vr_1.VR.SQ,
'142030': vr_1.VR.SQ,
'142032': vr_1.VR.SH,
'142202': vr_1.VR.IS,
'142204': vr_1.VR.SQ,
'142206': vr_1.VR.ST,
'142208': vr_1.VR.CS,
'14220a': vr_1.VR.IS,
'14220c': vr_1.VR.CS,
'14220e': vr_1.VR.CS,
'142210': vr_1.VR.OB,
'142220': vr_1.VR.SQ,
'142222': vr_1.VR.ST,
'142224': vr_1.VR.IS,
'142226': vr_1.VR.IS,
'142228': vr_1.VR.CS,
'14222a': vr_1.VR.DS,
'14222c': vr_1.VR.DS,
'143011': vr_1.VR.DS,
'143012': vr_1.VR.DS,
'143020': vr_1.VR.SQ,
'143022': vr_1.VR.ST,
'143024': vr_1.VR.DS,
'143026': vr_1.VR.DS,
'143028': vr_1.VR.DS,
'143040': vr_1.VR.SQ,
'143050': vr_1.VR.OW,
'143060': vr_1.VR.SQ,
'143070': vr_1.VR.OW,
'143071': vr_1.VR.DS,
'143072': vr_1.VR.DS,
'143073': vr_1.VR.DS,
'143074': vr_1.VR.LO,
'143075': vr_1.VR.DS,
'143076': vr_1.VR.DA,
'143077': vr_1.VR.TM,
'143080': vr_1.VR.OB,
'143099': vr_1.VR.LT,
'144002': vr_1.VR.SQ,
'144004': vr_1.VR.CS,
'144006': vr_1.VR.LT,
'144008': vr_1.VR.SQ,
'14400a': vr_1.VR.CS,
'14400c': vr_1.VR.LT,
'14400e': vr_1.VR.SQ,
'14400f': vr_1.VR.LT,
'144010': vr_1.VR.SQ,
'144011': vr_1.VR.SQ,
'144012': vr_1.VR.US,
'144013': vr_1.VR.CS,
'144014': vr_1.VR.DS,
'144015': vr_1.VR.DS,
'144016': vr_1.VR.DS,
'144017': vr_1.VR.DS,
'144018': vr_1.VR.DS,
'144019': vr_1.VR.DS,
'14401a': vr_1.VR.DS,
'14401b': vr_1.VR.DS,
'14401c': vr_1.VR.DS,
'14401d': vr_1.VR.DS,
'144020': vr_1.VR.SQ,
'144022': vr_1.VR.DS,
'144024': vr_1.VR.DS,
'144026': vr_1.VR.CS,
'144028': vr_1.VR.DS,
'144030': vr_1.VR.SQ,
'144031': vr_1.VR.DS,
'144032': vr_1.VR.CS,
'144033': vr_1.VR.IS,
'144034': vr_1.VR.DS,
'144035': vr_1.VR.SQ,
'144036': vr_1.VR.CS,
'144038': vr_1.VR.DS,
'14403a': vr_1.VR.DS,
'14403c': vr_1.VR.DS,
'144040': vr_1.VR.SQ,
'144050': vr_1.VR.SQ,
'144051': vr_1.VR.SQ,
'144052': vr_1.VR.DS,
'144054': vr_1.VR.ST,
'144056': vr_1.VR.ST,
'144057': vr_1.VR.DS,
'144058': vr_1.VR.DS,
'144059': vr_1.VR.DS,
'14405a': vr_1.VR.DS,
'14405c': vr_1.VR.ST,
'144060': vr_1.VR.SQ,
'144062': vr_1.VR.DS,
'144064': vr_1.VR.DS,
'144070': vr_1.VR.SQ,
'144072': vr_1.VR.ST,
'144074': vr_1.VR.SH,
'144076': vr_1.VR.DA,
'144078': vr_1.VR.DA,
'14407a': vr_1.VR.DA,
'14407c': vr_1.VR.TM,
'14407e': vr_1.VR.DA,
'144080': vr_1.VR.SQ,
'144081': vr_1.VR.CS,
'144082': vr_1.VR.LT,
'144083': vr_1.VR.SQ,
'144084': vr_1.VR.DS,
'144085': vr_1.VR.DS,
'144086': vr_1.VR.SQ,
'144087': vr_1.VR.SQ,
'144088': vr_1.VR.DS,
'144089': vr_1.VR.DS,
'14408b': vr_1.VR.DS,
'14408c': vr_1.VR.DS,
'14408d': vr_1.VR.DS,
'14408e': vr_1.VR.DS,
'144091': vr_1.VR.SQ,
'144092': vr_1.VR.DS,
'14409a': vr_1.VR.SQ,
'14409b': vr_1.VR.ST,
'14409c': vr_1.VR.DS,
'14409d': vr_1.VR.DS,
'14409f': vr_1.VR.DS,
'1440a0': vr_1.VR.LO,
'1440a1': vr_1.VR.LO,
'1440a2': vr_1.VR.LO,
'145002': vr_1.VR.IS,
'145004': vr_1.VR.IS,
'145100': vr_1.VR.US,
'145101': vr_1.VR.DS,
'145102': vr_1.VR.DS,
'145103': vr_1.VR.DS,
'145104': vr_1.VR.DS,
'145105': vr_1.VR.CS,
'145106': vr_1.VR.SH,
'145107': vr_1.VR.DS,
'145108': vr_1.VR.DS,
'145109': vr_1.VR.CS,
'14510a': vr_1.VR.DS,
'14510b': vr_1.VR.SH,
'14510c': vr_1.VR.DS,
'14510d': vr_1.VR.DS,
'14510e': vr_1.VR.DS,
'14510f': vr_1.VR.SH,
'145110': vr_1.VR.SH,
'145111': vr_1.VR.LO,
'145112': vr_1.VR.DS,
'145113': vr_1.VR.DS,
'145114': vr_1.VR.DS,
'145115': vr_1.VR.DS,
'145116': vr_1.VR.DS,
'145117': vr_1.VR.DS,
'145118': vr_1.VR.DS,
'145119': vr_1.VR.DS,
'14511a': vr_1.VR.DS,
'14511b': vr_1.VR.DS,
'14511c': vr_1.VR.DS,
'14511d': vr_1.VR.DS,
'14511e': vr_1.VR.CS,
'14511f': vr_1.VR.DS,
'180010': vr_1.VR.LO,
'180012': vr_1.VR.SQ,
'180013': vr_1.VR.FL,
'180014': vr_1.VR.SQ,
'180015': vr_1.VR.CS,
'180020': vr_1.VR.CS,
'180021': vr_1.VR.CS,
'180022': vr_1.VR.CS,
'180023': vr_1.VR.CS,
'180024': vr_1.VR.SH,
'180025': vr_1.VR.CS,
'180026': vr_1.VR.SQ,
'180027': vr_1.VR.TM,
'180028': vr_1.VR.DS,
'180029': vr_1.VR.SQ,
'18002a': vr_1.VR.SQ,
'180030': vr_1.VR.LO,
'180031': vr_1.VR.LO,
'180032': vr_1.VR.DS,
'180033': vr_1.VR.DS,
'180034': vr_1.VR.LO,
'180035': vr_1.VR.TM,
'180036': vr_1.VR.SQ,
'180037': vr_1.VR.CS,
'180038': vr_1.VR.CS,
'180039': vr_1.VR.CS,
'18003a': vr_1.VR.ST,
'180040': vr_1.VR.IS,
'180042': vr_1.VR.CS,
'180050': vr_1.VR.DS,
'180060': vr_1.VR.DS,
'180070': vr_1.VR.IS,
'180071': vr_1.VR.CS,
'180072': vr_1.VR.DS,
'180073': vr_1.VR.CS,
'180074': vr_1.VR.IS,
'180075': vr_1.VR.IS,
'180080': vr_1.VR.DS,
'180081': vr_1.VR.DS,
'180082': vr_1.VR.DS,
'180083': vr_1.VR.DS,
'180084': vr_1.VR.DS,
'180085': vr_1.VR.SH,
'180086': vr_1.VR.IS,
'180087': vr_1.VR.DS,
'180088': vr_1.VR.DS,
'180089': vr_1.VR.IS,
'180090': vr_1.VR.DS,
'180091': vr_1.VR.IS,
'180093': vr_1.VR.DS,
'180094': vr_1.VR.DS,
'180095': vr_1.VR.DS,
'181000': vr_1.VR.LO,
'181002': vr_1.VR.UI,
'181003': vr_1.VR.LO,
'181004': vr_1.VR.LO,
'181005': vr_1.VR.LO,
'181006': vr_1.VR.LO,
'181007': vr_1.VR.LO,
'181008': vr_1.VR.LO,
'181009': vr_1.VR.UT,
'18100a': vr_1.VR.SQ,
'181010': vr_1.VR.LO,
'181011': vr_1.VR.LO,
'181012': vr_1.VR.DA,
'181014': vr_1.VR.TM,
'181016': vr_1.VR.LO,
'181017': vr_1.VR.LO,
'181018': vr_1.VR.LO,
'181019': vr_1.VR.LO,
'18101a': vr_1.VR.LO,
'18101b': vr_1.VR.LO,
'181020': vr_1.VR.LO,
'181022': vr_1.VR.SH,
'181023': vr_1.VR.LO,
'181030': vr_1.VR.LO,
'181040': vr_1.VR.LO,
'181041': vr_1.VR.DS,
'181042': vr_1.VR.TM,
'181043': vr_1.VR.TM,
'181044': vr_1.VR.DS,
'181045': vr_1.VR.IS,
'181046': vr_1.VR.DS,
'181047': vr_1.VR.DS,
'181048': vr_1.VR.CS,
'181049': vr_1.VR.DS,
'181050': vr_1.VR.DS,
'181060': vr_1.VR.DS,
'181061': vr_1.VR.LO,
'181062': vr_1.VR.IS,
'181063': vr_1.VR.DS,
'181064': vr_1.VR.LO,
'181065': vr_1.VR.DS,
'181066': vr_1.VR.DS,
'181067': vr_1.VR.DS,
'181068': vr_1.VR.DS,
'181069': vr_1.VR.DS,
'18106a': vr_1.VR.CS,
'18106c': vr_1.VR.US,
'18106e': vr_1.VR.UL,
'181070': vr_1.VR.LO,
'181071': vr_1.VR.DS,
'181072': vr_1.VR.TM,
'181073': vr_1.VR.TM,
'181074': vr_1.VR.DS,
'181075': vr_1.VR.DS,
'181076': vr_1.VR.DS,
'181077': vr_1.VR.DS,
'181078': vr_1.VR.DT,
'181079': vr_1.VR.DT,
'181080': vr_1.VR.CS,
'181081': vr_1.VR.IS,
'181082': vr_1.VR.IS,
'181083': vr_1.VR.IS,
'181084': vr_1.VR.IS,
'181085': vr_1.VR.LO,
'181086': vr_1.VR.IS,
'181088': vr_1.VR.IS,
'181090': vr_1.VR.IS,
'181094': vr_1.VR.IS,
'181100': vr_1.VR.DS,
'181110': vr_1.VR.DS,
'181111': vr_1.VR.DS,
'181114': vr_1.VR.DS,
'181120': vr_1.VR.DS,
'181121': vr_1.VR.DS,
'181130': vr_1.VR.DS,
'181131': vr_1.VR.DS,
'181134': vr_1.VR.CS,
'181135': vr_1.VR.DS,
'181136': vr_1.VR.DS,
'181137': vr_1.VR.DS,
'181138': vr_1.VR.DS,
'18113a': vr_1.VR.CS,
'181140': vr_1.VR.CS,
'181141': vr_1.VR.DS,
'181142': vr_1.VR.DS,
'181143': vr_1.VR.DS,
'181144': vr_1.VR.DS,
'181145': vr_1.VR.DS,
'181146': vr_1.VR.DS,
'181147': vr_1.VR.CS,
'181149': vr_1.VR.IS,
'181150': vr_1.VR.IS,
'181151': vr_1.VR.IS,
'181152': vr_1.VR.IS,
'181153': vr_1.VR.IS,
'181154': vr_1.VR.DS,
'181155': vr_1.VR.CS,
'181156': vr_1.VR.CS,
'18115a': vr_1.VR.CS,
'18115e': vr_1.VR.DS,
'181160': vr_1.VR.SH,
'181161': vr_1.VR.LO,
'181162': vr_1.VR.DS,
'181164': vr_1.VR.DS,
'181166': vr_1.VR.CS,
'181170': vr_1.VR.IS,
'181180': vr_1.VR.SH,
'181181': vr_1.VR.CS,
'181182': vr_1.VR.IS,
'181183': vr_1.VR.DS,
'181184': vr_1.VR.DS,
'181190': vr_1.VR.DS,
'181191': vr_1.VR.CS,
'1811a0': vr_1.VR.DS,
'1811a2': vr_1.VR.DS,
'1811a3': vr_1.VR.DS,
'1811a4': vr_1.VR.LO,
'1811a5': vr_1.VR.DS,
'181200': vr_1.VR.DA,
'181201': vr_1.VR.TM,
'181202': vr_1.VR.DT,
'181210': vr_1.VR.SH,
'181240': vr_1.VR.IS,
'181242': vr_1.VR.IS,
'181243': vr_1.VR.IS,
'181244': vr_1.VR.US,
'181250': vr_1.VR.SH,
'181251': vr_1.VR.SH,
'181260': vr_1.VR.SH,
'181261': vr_1.VR.LO,
'181271': vr_1.VR.FD,
'181272': vr_1.VR.SQ,
'181300': vr_1.VR.DS,
'181301': vr_1.VR.CS,
'181302': vr_1.VR.IS,
'181310': vr_1.VR.US,
'181312': vr_1.VR.CS,
'181314': vr_1.VR.DS,
'181315': vr_1.VR.CS,
'181316': vr_1.VR.DS,
'181318': vr_1.VR.DS,
'181320': vr_1.VR.FL,
'181400': vr_1.VR.LO,
'181401': vr_1.VR.LO,
'181402': vr_1.VR.CS,
'181403': vr_1.VR.CS,
'181404': vr_1.VR.US,
'181405': vr_1.VR.IS,
'181411': vr_1.VR.DS,
'181412': vr_1.VR.DS,
'181413': vr_1.VR.DS,
'181450': vr_1.VR.DS,
'181460': vr_1.VR.DS,
'181470': vr_1.VR.DS,
'181480': vr_1.VR.DS,
'181490': vr_1.VR.CS,
'181491': vr_1.VR.CS,
'181495': vr_1.VR.IS,
'181500': vr_1.VR.CS,
'181508': vr_1.VR.CS,
'181510': vr_1.VR.DS,
'181511': vr_1.VR.DS,
'181520': vr_1.VR.DS,
'181521': vr_1.VR.DS,
'181530': vr_1.VR.DS,
'181531': vr_1.VR.DS,
'181600': vr_1.VR.CS,
'181602': vr_1.VR.IS,
'181604': vr_1.VR.IS,
'181606': vr_1.VR.IS,
'181608': vr_1.VR.IS,
'181610': vr_1.VR.IS,
'181612': vr_1.VR.IS,
'181620': vr_1.VR.IS,
'181622': vr_1.VR.US,
'181623': vr_1.VR.US,
'181624': vr_1.VR.US,
'181700': vr_1.VR.CS,
'181702': vr_1.VR.IS,
'181704': vr_1.VR.IS,
'181706': vr_1.VR.IS,
'181708': vr_1.VR.IS,
'181710': vr_1.VR.IS,
'181712': vr_1.VR.IS,
'181720': vr_1.VR.IS,
'181800': vr_1.VR.CS,
'181801': vr_1.VR.SH,
'181802': vr_1.VR.CS,
'181803': vr_1.VR.LO,
'182001': vr_1.VR.IS,
'182002': vr_1.VR.SH,
'182003': vr_1.VR.DS,
'182004': vr_1.VR.DS,
'182005': vr_1.VR.DS,
'182006': vr_1.VR.SH,
'182010': vr_1.VR.DS,
'182020': vr_1.VR.CS,
'182030': vr_1.VR.DS,
'182041': vr_1.VR.SQ,
'182042': vr_1.VR.UI,
'182043': vr_1.VR.FL,
'182044': vr_1.VR.FL,
'182045': vr_1.VR.SH,
'182046': vr_1.VR.FL,
'183100': vr_1.VR.CS,
'183101': vr_1.VR.DS,
'183102': vr_1.VR.DS,
'183103': vr_1.VR.IS,
'183104': vr_1.VR.IS,
'183105': vr_1.VR.IS,
'184000': vr_1.VR.LT,
'185000': vr_1.VR.SH,
'185010': vr_1.VR.LO,
'185012': vr_1.VR.DS,
'185020': vr_1.VR.LO,
'185021': vr_1.VR.LO,
'185022': vr_1.VR.DS,
'185024': vr_1.VR.DS,
'185026': vr_1.VR.DS,
'185027': vr_1.VR.DS,
'185028': vr_1.VR.DS,
'185029': vr_1.VR.DS,
'185030': vr_1.VR.DS,
'185040': vr_1.VR.DS,
'185050': vr_1.VR.IS,
'185100': vr_1.VR.CS,
'185101': vr_1.VR.CS,
'185104': vr_1.VR.SQ,
'185210': vr_1.VR.DS,
'185212': vr_1.VR.DS,
'186000': vr_1.VR.DS,
'186011': vr_1.VR.SQ,
'186012': vr_1.VR.US,
'186014': vr_1.VR.US,
'186016': vr_1.VR.UL,
'186018': vr_1.VR.UL,
'18601a': vr_1.VR.UL,
'18601c': vr_1.VR.UL,
'18601e': vr_1.VR.UL,
'186020': vr_1.VR.SL,
'186022': vr_1.VR.SL,
'186024': vr_1.VR.US,
'186026': vr_1.VR.US,
'186028': vr_1.VR.FD,
'18602a': vr_1.VR.FD,
'18602c': vr_1.VR.FD,
'18602e': vr_1.VR.FD,
'186030': vr_1.VR.UL,
'186031': vr_1.VR.CS,
'186032': vr_1.VR.UL,
'186034': vr_1.VR.FD,
'186036': vr_1.VR.FD,
'186038': vr_1.VR.UL,
'186039': vr_1.VR.SL,
'18603a': vr_1.VR.UL,
'18603b': vr_1.VR.SL,
'18603c': vr_1.VR.UL,
'18603d': vr_1.VR.SL,
'18603e': vr_1.VR.UL,
'18603f': vr_1.VR.SL,
'186040': vr_1.VR.UL,
'186041': vr_1.VR.SL,
'186042': vr_1.VR.UL,
'186043': vr_1.VR.SL,
'186044': vr_1.VR.US,
'186046': vr_1.VR.UL,
'186048': vr_1.VR.UL,
'18604a': vr_1.VR.UL,
'18604c': vr_1.VR.US,
'18604e': vr_1.VR.US,
'186050': vr_1.VR.UL,
'186052': vr_1.VR.UL,
'186054': vr_1.VR.FD,
'186056': vr_1.VR.UL,
'186058': vr_1.VR.UL,
'18605a': vr_1.VR.FL,
'186060': vr_1.VR.FL,
'187000': vr_1.VR.CS,
'187001': vr_1.VR.DS,
'187004': vr_1.VR.CS,
'187005': vr_1.VR.CS,
'187006': vr_1.VR.LT,
'187008': vr_1.VR.LT,
'18700a': vr_1.VR.SH,
'18700c': vr_1.VR.DA,
'18700e': vr_1.VR.TM,
'187010': vr_1.VR.IS,
'187011': vr_1.VR.IS,
'187012': vr_1.VR.DS,
'187014': vr_1.VR.DS,
'187016': vr_1.VR.DS,
'18701a': vr_1.VR.DS,
'187020': vr_1.VR.DS,
'187022': vr_1.VR.DS,
'187024': vr_1.VR.CS,
'187026': vr_1.VR.DS,
'187028': vr_1.VR.DS,
'18702a': vr_1.VR.LO,
'18702b': vr_1.VR.LO,
'187030': vr_1.VR.DS,
'187032': vr_1.VR.DS,
'187034': vr_1.VR.CS,
'187036': vr_1.VR.FL,
'187038': vr_1.VR.FL,
'187040': vr_1.VR.LT,
'187041': vr_1.VR.LT,
'187042': vr_1.VR.DS,
'187044': vr_1.VR.DS,
'187046': vr_1.VR.IS,
'187048': vr_1.VR.DS,
'18704c': vr_1.VR.DS,
'187050': vr_1.VR.CS,
'187052': vr_1.VR.DS,
'187054': vr_1.VR.DS,
'187056': vr_1.VR.FL,
'187058': vr_1.VR.FL,
'187060': vr_1.VR.CS,
'187062': vr_1.VR.LT,
'187064': vr_1.VR.CS,
'187065': vr_1.VR.DS,
'188150': vr_1.VR.DS,
'188151': vr_1.VR.DS,
'189004': vr_1.VR.CS,
'189005': vr_1.VR.SH,
'189006': vr_1.VR.SQ,
'189008': vr_1.VR.CS,
'189009': vr_1.VR.CS,
'189010': vr_1.VR.CS,
'189011': vr_1.VR.CS,
'189012': vr_1.VR.CS,
'189014': vr_1.VR.CS,
'189015': vr_1.VR.CS,
'189016': vr_1.VR.CS,
'189017': vr_1.VR.CS,
'189018': vr_1.VR.CS,
'189019': vr_1.VR.FD,
'189020': vr_1.VR.CS,
'189021': vr_1.VR.CS,
'189022': vr_1.VR.CS,
'189024': vr_1.VR.CS,
'189025': vr_1.VR.CS,
'189026': vr_1.VR.CS,
'189027': vr_1.VR.CS,
'189028': vr_1.VR.CS,
'189029': vr_1.VR.CS,
'189030': vr_1.VR.FD,
'189032': vr_1.VR.CS,
'189033': vr_1.VR.CS,
'189034': vr_1.VR.CS,
'189035': vr_1.VR.FD,
'189036': vr_1.VR.CS,
'189037': vr_1.VR.CS,
'189041': vr_1.VR.LO,
'189042': vr_1.VR.SQ,
'189043': vr_1.VR.CS,
'189044': vr_1.VR.CS,
'189045': vr_1.VR.SQ,
'189046': vr_1.VR.LO,
'189047': vr_1.VR.SH,
'189048': vr_1.VR.CS,
'189049': vr_1.VR.SQ,
'189050': vr_1.VR.LO,
'189051': vr_1.VR.CS,
'189052': vr_1.VR.FD,
'189053': vr_1.VR.FD,
'189054': vr_1.VR.CS,
'189058': vr_1.VR.US,
'189059': vr_1.VR.CS,
'189060': vr_1.VR.CS,
'189061': vr_1.VR.FD,
'189062': vr_1.VR.CS,
'189063': vr_1.VR.FD,
'189064': vr_1.VR.CS,
'189065': vr_1.VR.CS,
'189066': vr_1.VR.US,
'189067': vr_1.VR.CS,
'189069': vr_1.VR.FD,
'189070': vr_1.VR.FD,
'189073': vr_1.VR.FD,
'189074': vr_1.VR.DT,
'189075': vr_1.VR.CS,
'189076': vr_1.VR.SQ,
'189077': vr_1.VR.CS,
'189078': vr_1.VR.CS,
'189079': vr_1.VR.FD,
'189080': vr_1.VR.ST,
'189081': vr_1.VR.CS,
'189082': vr_1.VR.FD,
'189083': vr_1.VR.SQ,
'189084': vr_1.VR.SQ,
'189085': vr_1.VR.CS,
'189087': vr_1.VR.FD,
'189089': vr_1.VR.FD,
'189090': vr_1.VR.FD,
'189091': vr_1.VR.FD,
'189092': vr_1.VR.SQ,
'189093': vr_1.VR.US,
'189094': vr_1.VR.CS,
'189095': vr_1.VR.UL,
'189096': vr_1.VR.FD,
'189098': vr_1.VR.FD,
'189100': vr_1.VR.CS,
'189101': vr_1.VR.CS,
'189103': vr_1.VR.SQ,
'189104': vr_1.VR.FD,
'189105': vr_1.VR.FD,
'189106': vr_1.VR.FD,
'189107': vr_1.VR.SQ,
'189112': vr_1.VR.SQ,
'189114': vr_1.VR.SQ,
'189115': vr_1.VR.SQ,
'189117': vr_1.VR.SQ,
'189118': vr_1.VR.SQ,
'189119': vr_1.VR.SQ,
'189125': vr_1.VR.SQ,
'189126': vr_1.VR.SQ,
'189127': vr_1.VR.UL,
'189147': vr_1.VR.CS,
'189151': vr_1.VR.DT,
'189152': vr_1.VR.SQ,
'189155': vr_1.VR.FD,
'189159': vr_1.VR.UL,
'189166': vr_1.VR.CS,
'189168': vr_1.VR.FD,
'189169': vr_1.VR.CS,
'189170': vr_1.VR.CS,
'189171': vr_1.VR.CS,
'189172': vr_1.VR.CS,
'189173': vr_1.VR.CS,
'189174': vr_1.VR.CS,
'189175': vr_1.VR.LO,
'189176': vr_1.VR.SQ,
'189177': vr_1.VR.CS,
'189178': vr_1.VR.CS,
'189179': vr_1.VR.CS,
'189180': vr_1.VR.CS,
'189181': vr_1.VR.FD,
'189182': vr_1.VR.FD,
'189183': vr_1.VR.CS,
'189184': vr_1.VR.FD,
'189185': vr_1.VR.ST,
'189186': vr_1.VR.SH,
'189195': vr_1.VR.FD,
'189196': vr_1.VR.FD,
'189197': vr_1.VR.SQ,
'189198': vr_1.VR.CS,
'189199': vr_1.VR.CS,
'189200': vr_1.VR.CS,
'189214': vr_1.VR.CS,
'189217': vr_1.VR.FD,
'189218': vr_1.VR.FD,
'189219': vr_1.VR.SS,
'189220': vr_1.VR.FD,
'189226': vr_1.VR.SQ,
'189227': vr_1.VR.SQ,
'189231': vr_1.VR.US,
'189232': vr_1.VR.US,
'189234': vr_1.VR.UL,
'189236': vr_1.VR.CS,
'189239': vr_1.VR.SQ,
'189240': vr_1.VR.US,
'189241': vr_1.VR.US,
'189250': vr_1.VR.CS,
'189251': vr_1.VR.SQ,
'189252': vr_1.VR.LO,
'189253': vr_1.VR.US,
'189254': vr_1.VR.FD,
'189255': vr_1.VR.FD,
'189256': vr_1.VR.FD,
'189257': vr_1.VR.CS,
'189258': vr_1.VR.UL,
'189259': vr_1.VR.CS,
'18925a': vr_1.VR.FD,
'18925b': vr_1.VR.LO,
'18925c': vr_1.VR.CS,
'18925d': vr_1.VR.SQ,
'18925e': vr_1.VR.LO,
'18925f': vr_1.VR.UL,
'189260': vr_1.VR.SQ,
'189295': vr_1.VR.FD,
'189296': vr_1.VR.FD,
'189297': vr_1.VR.CS,
'189298': vr_1.VR.IS,
'189301': vr_1.VR.SQ,
'189302': vr_1.VR.CS,
'189303': vr_1.VR.FD,
'189304': vr_1.VR.SQ,
'189305': vr_1.VR.FD,
'189306': vr_1.VR.FD,
'189307': vr_1.VR.FD,
'189308': vr_1.VR.SQ,
'189309': vr_1.VR.FD,
'189310': vr_1.VR.FD,
'189311': vr_1.VR.FD,
'189312': vr_1.VR.SQ,
'189313': vr_1.VR.FD,
'189314': vr_1.VR.SQ,
'189315': vr_1.VR.CS,
'189316': vr_1.VR.CS,
'189317': vr_1.VR.FD,
'189318': vr_1.VR.FD,
'189319': vr_1.VR.FD,
'189320': vr_1.VR.SH,
'189321': vr_1.VR.SQ,
'189322': vr_1.VR.FD,
'189323': vr_1.VR.CS,
'189324': vr_1.VR.FD,
'189325': vr_1.VR.SQ,
'189326': vr_1.VR.SQ,
'189327': vr_1.VR.FD,
'189328': vr_1.VR.FD,
'189329': vr_1.VR.SQ,
'189330': vr_1.VR.FD,
'189332': vr_1.VR.FD,
'189333': vr_1.VR.CS,
'189334': vr_1.VR.CS,
'189335': vr_1.VR.FD,
'189337': vr_1.VR.US,
'189338': vr_1.VR.SQ,
'189340': vr_1.VR.SQ,
'189341': vr_1.VR.SQ,
'189342': vr_1.VR.CS,
'189343': vr_1.VR.CS,
'189344': vr_1.VR.CS,
'189345': vr_1.VR.FD,
'189346': vr_1.VR.SQ,
'189351': vr_1.VR.FL,
'189352': vr_1.VR.FL,
'189353': vr_1.VR.FL,
'189360': vr_1.VR.SQ,
'189401': vr_1.VR.SQ,
'189402': vr_1.VR.FL,
'189403': vr_1.VR.FL,
'189404': vr_1.VR.FL,
'189405': vr_1.VR.SQ,
'189406': vr_1.VR.SQ,
'189407': vr_1.VR.SQ,
'189410': vr_1.VR.CS,
'189412': vr_1.VR.SQ,
'189417': vr_1.VR.SQ,
'189420': vr_1.VR.CS,
'189423': vr_1.VR.LO,
'189424': vr_1.VR.LT,
'189425': vr_1.VR.CS,
'189426': vr_1.VR.FL,
'189427': vr_1.VR.CS,
'189428': vr_1.VR.FL,
'189429': vr_1.VR.FL,
'189430': vr_1.VR.FL,
'189432': vr_1.VR.SQ,
'189433': vr_1.VR.LO,
'189434': vr_1.VR.SQ,
'189435': vr_1.VR.CS,
'189436': vr_1.VR.SS,
'189437': vr_1.VR.SS,
'189438': vr_1.VR.SS,
'189439': vr_1.VR.SS,
'189440': vr_1.VR.SS,
'189441': vr_1.VR.US,
'189442': vr_1.VR.SS,
'189447': vr_1.VR.FL,
'189449': vr_1.VR.FL,
'189451': vr_1.VR.SQ,
'189452': vr_1.VR.FL,
'189455': vr_1.VR.SQ,
'189456': vr_1.VR.SQ,
'189457': vr_1.VR.CS,
'189461': vr_1.VR.FL,
'189462': vr_1.VR.SQ,
'189463': vr_1.VR.FL,
'189464': vr_1.VR.FL,
'189465': vr_1.VR.FL,
'189466': vr_1.VR.FL,
'189467': vr_1.VR.FL,
'189468': vr_1.VR.FL,
'189469': vr_1.VR.FL,
'189470': vr_1.VR.FL,
'189471': vr_1.VR.FL,
'189472': vr_1.VR.SQ,
'189473': vr_1.VR.FL,
'189474': vr_1.VR.CS,
'189476': vr_1.VR.SQ,
'189477': vr_1.VR.SQ,
'189504': vr_1.VR.SQ,
'189506': vr_1.VR.SQ,
'189507': vr_1.VR.SQ,
'189508': vr_1.VR.FL,
'189509': vr_1.VR.FL,
'189510': vr_1.VR.FL,
'189511': vr_1.VR.FL,
'189514': vr_1.VR.FL,
'189515': vr_1.VR.FL,
'189516': vr_1.VR.DT,
'189517': vr_1.VR.DT,
'189518': vr_1.VR.SS,
'189519': vr_1.VR.SS,
'189524': vr_1.VR.LO,
'189525': vr_1.VR.LO,
'189526': vr_1.VR.LO,
'189527': vr_1.VR.CS,
'189528': vr_1.VR.LO,
'189530': vr_1.VR.SQ,
'189531': vr_1.VR.LO,
'189538': vr_1.VR.SQ,
'189541': vr_1.VR.SQ,
'189542': vr_1.VR.SQ,
'189543': vr_1.VR.FD,
'189544': vr_1.VR.FD,
'189545': vr_1.VR.FD,
'189546': vr_1.VR.FD,
'189547': vr_1.VR.FD,
'189548': vr_1.VR.FD,
'189549': vr_1.VR.FD,
'189550': vr_1.VR.FD,
'189551': vr_1.VR.FD,
'189552': vr_1.VR.FD,
'189553': vr_1.VR.FD,
'189554': vr_1.VR.FD,
'189555': vr_1.VR.SQ,
'189556': vr_1.VR.SQ,
'189557': vr_1.VR.FD,
'189558': vr_1.VR.FD,
'189559': vr_1.VR.CS,
'189601': vr_1.VR.SQ,
'189602': vr_1.VR.FD,
'189603': vr_1.VR.FD,
'189604': vr_1.VR.FD,
'189605': vr_1.VR.FD,
'189606': vr_1.VR.FD,
'189607': vr_1.VR.FD,
'189621': vr_1.VR.SQ,
'189622': vr_1.VR.CS,
'189623': vr_1.VR.DT,
'189624': vr_1.VR.CS,
'189701': vr_1.VR.DT,
'189715': vr_1.VR.FD,
'189716': vr_1.VR.FD,
'189717': vr_1.VR.FD,
'189718': vr_1.VR.FD,
'189719': vr_1.VR.FD,
'189720': vr_1.VR.FD,
'189721': vr_1.VR.FD,
'189722': vr_1.VR.FD,
'189723': vr_1.VR.FD,
'189724': vr_1.VR.FD,
'189725': vr_1.VR.CS,
'189726': vr_1.VR.FD,
'189727': vr_1.VR.FD,
'189729': vr_1.VR.US,
'189732': vr_1.VR.SQ,
'189733': vr_1.VR.SQ,
'189734': vr_1.VR.SQ,
'189735': vr_1.VR.SQ,
'189736': vr_1.VR.SQ,
'189737': vr_1.VR.SQ,
'189738': vr_1.VR.CS,
'189739': vr_1.VR.US,
'189740': vr_1.VR.US,
'189749': vr_1.VR.SQ,
'189751': vr_1.VR.SQ,
'189755': vr_1.VR.CS,
'189756': vr_1.VR.CS,
'189758': vr_1.VR.CS,
'189759': vr_1.VR.CS,
'189760': vr_1.VR.CS,
'189761': vr_1.VR.CS,
'189762': vr_1.VR.CS,
'189763': vr_1.VR.CS,
'189764': vr_1.VR.CS,
'189765': vr_1.VR.CS,
'189766': vr_1.VR.CS,
'189767': vr_1.VR.CS,
'189768': vr_1.VR.CS,
'189769': vr_1.VR.CS,
'189770': vr_1.VR.CS,
'189771': vr_1.VR.SQ,
'189772': vr_1.VR.SQ,
'189801': vr_1.VR.FD,
'189803': vr_1.VR.SQ,
'189804': vr_1.VR.DT,
'189805': vr_1.VR.FD,
'189806': vr_1.VR.SQ,
'189807': vr_1.VR.SQ,
'189808': vr_1.VR.CS,
'189809': vr_1.VR.SQ,
'18980b': vr_1.VR.CS,
'18980c': vr_1.VR.CS,
'18980d': vr_1.VR.SQ,
'18980e': vr_1.VR.SQ,
'18980f': vr_1.VR.SQ,
'189810': vr_1.VR.SS,
'189900': vr_1.VR.LO,
'189901': vr_1.VR.UT,
'189902': vr_1.VR.SQ,
'189903': vr_1.VR.SQ,
'189904': vr_1.VR.DS,
'189905': vr_1.VR.CS,
'189906': vr_1.VR.SQ,
'189907': vr_1.VR.SQ,
'189908': vr_1.VR.UC,
'189909': vr_1.VR.SQ,
'18990a': vr_1.VR.UC,
'18990b': vr_1.VR.SQ,
'18990c': vr_1.VR.SQ,
'18990d': vr_1.VR.SQ,
'18990e': vr_1.VR.SQ,
'18990f': vr_1.VR.UT,
'189910': vr_1.VR.UT,
'189911': vr_1.VR.SQ,
'189912': vr_1.VR.SQ,
'189913': vr_1.VR.SQ,
'189914': vr_1.VR.SQ,
'189915': vr_1.VR.US,
'189916': vr_1.VR.LO,
'189917': vr_1.VR.UT,
'189918': vr_1.VR.CS,
'189919': vr_1.VR.DT,
'18991a': vr_1.VR.UT,
'18991b': vr_1.VR.SQ,
'18991c': vr_1.VR.SQ,
'18991d': vr_1.VR.SQ,
'18991e': vr_1.VR.UI,
'18991f': vr_1.VR.SQ,
'189920': vr_1.VR.SQ,
'189921': vr_1.VR.US,
'189922': vr_1.VR.LO,
'189923': vr_1.VR.UT,
'189924': vr_1.VR.UT,
'189930': vr_1.VR.CS,
'189931': vr_1.VR.SQ,
'189932': vr_1.VR.SQ,
'189933': vr_1.VR.SQ,
'189934': vr_1.VR.SQ,
'189935': vr_1.VR.SQ,
'189936': vr_1.VR.SQ,
'189937': vr_1.VR.LO,
'189938': vr_1.VR.US,
'189939': vr_1.VR.US,
'18993a': vr_1.VR.US,
'18993b': vr_1.VR.SQ,
'18993c': vr_1.VR.SQ,
'18993d': vr_1.VR.SQ,
'18993e': vr_1.VR.SQ,
'189941': vr_1.VR.UT,
'189942': vr_1.VR.FD,
'189943': vr_1.VR.FD,
'189944': vr_1.VR.CS,
'189945': vr_1.VR.FD,
'189946': vr_1.VR.FD,
'189947': vr_1.VR.CS,
'18a001': vr_1.VR.SQ,
'18a002': vr_1.VR.DT,
'18a003': vr_1.VR.ST,
'20000d': vr_1.VR.UI,
'20000e': vr_1.VR.UI,
'200010': vr_1.VR.SH,
'200011': vr_1.VR.IS,
'200012': vr_1.VR.IS,
'200013': vr_1.VR.IS,
'200014': vr_1.VR.IS,
'200015': vr_1.VR.IS,
'200016': vr_1.VR.IS,
'200017': vr_1.VR.IS,
'200018': vr_1.VR.IS,
'200019': vr_1.VR.IS,
'200020': vr_1.VR.CS,
'200022': vr_1.VR.IS,
'200024': vr_1.VR.IS,
'200026': vr_1.VR.IS,
'200030': vr_1.VR.DS,
'200032': vr_1.VR.DS,
'200035': vr_1.VR.DS,
'200037': vr_1.VR.DS,
'200050': vr_1.VR.DS,
'200052': vr_1.VR.UI,
'200060': vr_1.VR.CS,
'200062': vr_1.VR.CS,
'200070': vr_1.VR.LO,
'200080': vr_1.VR.CS,
'2000aa': vr_1.VR.IS,
'200100': vr_1.VR.IS,
'200105': vr_1.VR.IS,
'200110': vr_1.VR.DS,
'200200': vr_1.VR.UI,
'200242': vr_1.VR.UI,
'201000': vr_1.VR.IS,
'201001': vr_1.VR.IS,
'201002': vr_1.VR.IS,
'201003': vr_1.VR.IS,
'201004': vr_1.VR.IS,
'201005': vr_1.VR.IS,
'201020': vr_1.VR.LO,
'20103f': vr_1.VR.LO,
'201040': vr_1.VR.LO,
'201041': vr_1.VR.DS,
'201070': vr_1.VR.IS,
'201200': vr_1.VR.IS,
'201202': vr_1.VR.IS,
'201204': vr_1.VR.IS,
'201206': vr_1.VR.IS,
'201208': vr_1.VR.IS,
'201209': vr_1.VR.IS,
'203100': vr_1.VR.CS,
'203401': vr_1.VR.CS,
'203402': vr_1.VR.CS,
'203403': vr_1.VR.DA,
'203404': vr_1.VR.LO,
'203405': vr_1.VR.TM,
'203406': vr_1.VR.LO,
'204000': vr_1.VR.LT,
'205000': vr_1.VR.AT,
'205002': vr_1.VR.LO,
'209056': vr_1.VR.SH,
'209057': vr_1.VR.UL,
'209071': vr_1.VR.SQ,
'209072': vr_1.VR.CS,
'209111': vr_1.VR.SQ,
'209113': vr_1.VR.SQ,
'209116': vr_1.VR.SQ,
'209128': vr_1.VR.UL,
'209153': vr_1.VR.FD,
'209154': vr_1.VR.FL,
'209155': vr_1.VR.FL,
'209156': vr_1.VR.US,
'209157': vr_1.VR.UL,
'209158': vr_1.VR.LT,
'209161': vr_1.VR.UI,
'209162': vr_1.VR.US,
'209163': vr_1.VR.US,
'209164': vr_1.VR.UI,
'209165': vr_1.VR.AT,
'209167': vr_1.VR.AT,
'209170': vr_1.VR.SQ,
'209171': vr_1.VR.SQ,
'209172': vr_1.VR.SQ,
'209213': vr_1.VR.LO,
'209221': vr_1.VR.SQ,
'209222': vr_1.VR.SQ,
'209228': vr_1.VR.UL,
'209238': vr_1.VR.LO,
'209241': vr_1.VR.FL,
'209245': vr_1.VR.FL,
'209246': vr_1.VR.FL,
'209247': vr_1.VR.CS,
'209248': vr_1.VR.FL,
'209249': vr_1.VR.CS,
'209250': vr_1.VR.CS,
'209251': vr_1.VR.FD,
'209252': vr_1.VR.FD,
'209253': vr_1.VR.SQ,
'209254': vr_1.VR.FD,
'209255': vr_1.VR.FD,
'209256': vr_1.VR.FD,
'209257': vr_1.VR.FD,
'209301': vr_1.VR.FD,
'209302': vr_1.VR.FD,
'209307': vr_1.VR.CS,
'209308': vr_1.VR.FD,
'209309': vr_1.VR.FD,
'20930a': vr_1.VR.FD,
'20930b': vr_1.VR.CS,
'20930c': vr_1.VR.CS,
'20930d': vr_1.VR.FD,
'20930e': vr_1.VR.SQ,
'20930f': vr_1.VR.SQ,
'209310': vr_1.VR.SQ,
'209311': vr_1.VR.CS,
'209312': vr_1.VR.UI,
'209313': vr_1.VR.UI,
'209421': vr_1.VR.LO,
'209450': vr_1.VR.SQ,
'209453': vr_1.VR.LO,
'209518': vr_1.VR.US,
'209529': vr_1.VR.SQ,
'209536': vr_1.VR.US,
'220001': vr_1.VR.US,
'220002': vr_1.VR.US,
'220003': vr_1.VR.US,
'220004': vr_1.VR.US,
'220005': vr_1.VR.CS,
'220006': vr_1.VR.SQ,
'220007': vr_1.VR.FL,
'220008': vr_1.VR.FL,
'220009': vr_1.VR.FL,
'22000a': vr_1.VR.FL,
'22000b': vr_1.VR.FL,
'22000c': vr_1.VR.FL,
'22000d': vr_1.VR.CS,
'22000e': vr_1.VR.FL,
'220010': vr_1.VR.FL,
'220011': vr_1.VR.FL,
'220012': vr_1.VR.FL,
'220013': vr_1.VR.FL,
'220014': vr_1.VR.FL,
'220015': vr_1.VR.SQ,
'220016': vr_1.VR.SQ,
'220017': vr_1.VR.SQ,
'220018': vr_1.VR.SQ,
'220019': vr_1.VR.SQ,
'22001a': vr_1.VR.SQ,
'22001b': vr_1.VR.SQ,
'22001c': vr_1.VR.SQ,
'22001d': vr_1.VR.SQ,
'22001e': vr_1.VR.FL,
'220020': vr_1.VR.SQ,
'220021': vr_1.VR.SQ,
'220022': vr_1.VR.SQ,
'220028': vr_1.VR.CS,
'220030': vr_1.VR.FL,
'220031': vr_1.VR.SQ,
'220032': vr_1.VR.FL,
'220035': vr_1.VR.FL,
'220036': vr_1.VR.FL,
'220037': vr_1.VR.FL,
'220038': vr_1.VR.FL,
'220039': vr_1.VR.CS,
'220041': vr_1.VR.FL,
'220042': vr_1.VR.SQ,
'220048': vr_1.VR.FL,
'220049': vr_1.VR.FL,
'22004e': vr_1.VR.DS,
'220055': vr_1.VR.FL,
'220056': vr_1.VR.FL,
'220057': vr_1.VR.FL,
'220058': vr_1.VR.SQ,
'221007': vr_1.VR.SQ,
'221008': vr_1.VR.SQ,
'221009': vr_1.VR.CS,
'221010': vr_1.VR.CS,
'221012': vr_1.VR.SQ,
'221019': vr_1.VR.FL,
'221024': vr_1.VR.SQ,
'221025': vr_1.VR.SQ,
'221028': vr_1.VR.SQ,
'221029': vr_1.VR.LO,
'221033': vr_1.VR.FL,
'221035': vr_1.VR.SQ,
'221037': vr_1.VR.FL,
'221039': vr_1.VR.CS,
'221040': vr_1.VR.SQ,
'221044': vr_1.VR.SQ,
'221050': vr_1.VR.SQ,
'221053': vr_1.VR.FL,
'221054': vr_1.VR.FL,
'221059': vr_1.VR.FL,
'221065': vr_1.VR.LO,
'221066': vr_1.VR.LO,
'221090': vr_1.VR.SQ,
'221092': vr_1.VR.SQ,
'221093': vr_1.VR.LO,
'221094': vr_1.VR.LO,
'221095': vr_1.VR.LO,
'221096': vr_1.VR.SQ,
'221097': vr_1.VR.LO,
'221100': vr_1.VR.SQ,
'221101': vr_1.VR.SQ,
'221103': vr_1.VR.SQ,
'221121': vr_1.VR.FL,
'221122': vr_1.VR.FL,
'221125': vr_1.VR.SQ,
'221127': vr_1.VR.SQ,
'221128': vr_1.VR.SQ,
'221130': vr_1.VR.FL,
'221131': vr_1.VR.FL,
'221132': vr_1.VR.SQ,
'221133': vr_1.VR.SQ,
'221134': vr_1.VR.SQ,
'221135': vr_1.VR.SQ,
'221140': vr_1.VR.CS,
'221150': vr_1.VR.SQ,
'221153': vr_1.VR.SQ,
'221155': vr_1.VR.FL,
'221159': vr_1.VR.LO,
'221210': vr_1.VR.SQ,
'221211': vr_1.VR.SQ,
'221212': vr_1.VR.SQ,
'221220': vr_1.VR.SQ,
'221225': vr_1.VR.SQ,
'221230': vr_1.VR.SQ,
'221250': vr_1.VR.SQ,
'221255': vr_1.VR.SQ,
'221257': vr_1.VR.SQ,
'221260': vr_1.VR.SQ,
'221262': vr_1.VR.SQ,
'221265': vr_1.VR.SQ,
'221273': vr_1.VR.LO,
'221300': vr_1.VR.SQ,
'221310': vr_1.VR.SQ,
'221330': vr_1.VR.SQ,
'221415': vr_1.VR.CS,
'221420': vr_1.VR.SQ,
'221423': vr_1.VR.SQ,
'221436': vr_1.VR.SQ,
'221443': vr_1.VR.SQ,
'221445': vr_1.VR.SQ,
'221450': vr_1.VR.SQ,
'221452': vr_1.VR.SS,
'221454': vr_1.VR.LO,
'221458': vr_1.VR.SQ,
'221460': vr_1.VR.FL,
'221463': vr_1.VR.FL,
'221465': vr_1.VR.SQ,
'221466': vr_1.VR.CS,
'221467': vr_1.VR.FL,
'221468': vr_1.VR.FL,
'221470': vr_1.VR.SQ,
'221472': vr_1.VR.SQ,
'221512': vr_1.VR.SQ,
'221513': vr_1.VR.SQ,
'221515': vr_1.VR.CS,
'221517': vr_1.VR.FL,
'221518': vr_1.VR.SQ,
'221525': vr_1.VR.SQ,
'221526': vr_1.VR.SQ,
'221527': vr_1.VR.FL,
'221528': vr_1.VR.FL,
'221529': vr_1.VR.FL,
'221530': vr_1.VR.UL,
'221531': vr_1.VR.OF,
'221612': vr_1.VR.SQ,
'221615': vr_1.VR.SQ,
'221616': vr_1.VR.LO,
'221618': vr_1.VR.SQ,
'221620': vr_1.VR.SQ,
'221622': vr_1.VR.CS,
'221624': vr_1.VR.FL,
'221626': vr_1.VR.FL,
'221628': vr_1.VR.SQ,
'221630': vr_1.VR.DS,
'221640': vr_1.VR.SQ,
'221642': vr_1.VR.UL,
'221643': vr_1.VR.FL,
'221644': vr_1.VR.FL,
'221645': vr_1.VR.FL,
'221646': vr_1.VR.FL,
'221649': vr_1.VR.FL,
'221650': vr_1.VR.FL,
'221658': vr_1.VR.UL,
'240010': vr_1.VR.FL,
'240011': vr_1.VR.FL,
'240012': vr_1.VR.CS,
'240016': vr_1.VR.SQ,
'240018': vr_1.VR.FL,
'240020': vr_1.VR.FL,
'240021': vr_1.VR.SQ,
'240024': vr_1.VR.SQ,
'240025': vr_1.VR.FL,
'240028': vr_1.VR.FL,
'240032': vr_1.VR.SQ,
'240033': vr_1.VR.SQ,
'240034': vr_1.VR.SQ,
'240035': vr_1.VR.US,
'240036': vr_1.VR.US,
'240037': vr_1.VR.CS,
'240038': vr_1.VR.US,
'240039': vr_1.VR.CS,
'240040': vr_1.VR.CS,
'240042': vr_1.VR.US,
'240044': vr_1.VR.LT,
'240045': vr_1.VR.CS,
'240046': vr_1.VR.FL,
'240048': vr_1.VR.US,
'240050': vr_1.VR.US,
'240051': vr_1.VR.CS,
'240052': vr_1.VR.CS,
'240053': vr_1.VR.CS,
'240054': vr_1.VR.FL,
'240055': vr_1.VR.CS,
'240056': vr_1.VR.US,
'240057': vr_1.VR.CS,
'240058': vr_1.VR.SQ,
'240059': vr_1.VR.CS,
'240060': vr_1.VR.US,
'240061': vr_1.VR.CS,
'240062': vr_1.VR.CS,
'240063': vr_1.VR.CS,
'240064': vr_1.VR.SQ,
'240065': vr_1.VR.SQ,
'240066': vr_1.VR.FL,
'240067': vr_1.VR.SQ,
'240068': vr_1.VR.FL,
'240069': vr_1.VR.LO,
'240070': vr_1.VR.FL,
'240071': vr_1.VR.FL,
'240072': vr_1.VR.CS,
'240073': vr_1.VR.FL,
'240074': vr_1.VR.CS,
'240075': vr_1.VR.FL,
'240076': vr_1.VR.CS,
'240077': vr_1.VR.FL,
'240078': vr_1.VR.CS,
'240079': vr_1.VR.FL,
'240080': vr_1.VR.CS,
'240081': vr_1.VR.FL,
'240083': vr_1.VR.SQ,
'240085': vr_1.VR.SQ,
'240086': vr_1.VR.CS,
'240087': vr_1.VR.FL,
'240088': vr_1.VR.FL,
'240089': vr_1.VR.SQ,
'240090': vr_1.VR.FL,
'240091': vr_1.VR.FL,
'240092': vr_1.VR.FL,
'240093': vr_1.VR.CS,
'240094': vr_1.VR.FL,
'240095': vr_1.VR.CS,
'240096': vr_1.VR.FL,
'240097': vr_1.VR.SQ,
'240098': vr_1.VR.FL,
'240100': vr_1.VR.FL,
'240102': vr_1.VR.CS,
'240103': vr_1.VR.FL,
'240104': vr_1.VR.FL,
'240105': vr_1.VR.FL,
'240106': vr_1.VR.CS,
'240107': vr_1.VR.FL,
'240108': vr_1.VR.FL,
'240110': vr_1.VR.SQ,
'240112': vr_1.VR.SQ,
'240113': vr_1.VR.CS,
'240114': vr_1.VR.SQ,
'240115': vr_1.VR.SQ,
'240117': vr_1.VR.CS,
'240118': vr_1.VR.FL,
'240120': vr_1.VR.CS,
'240122': vr_1.VR.SQ,
'240124': vr_1.VR.CS,
'240126': vr_1.VR.FL,
'240202': vr_1.VR.LO,
'240306': vr_1.VR.LO,
'240307': vr_1.VR.LO,
'240308': vr_1.VR.LO,
'240309': vr_1.VR.LO,
'240317': vr_1.VR.SQ,
'240320': vr_1.VR.SQ,
'240325': vr_1.VR.SQ,
'240338': vr_1.VR.CS,
'240341': vr_1.VR.FL,
'240344': vr_1.VR.SQ,
'280002': vr_1.VR.US,
'280003': vr_1.VR.US,
'280004': vr_1.VR.CS,
'280005': vr_1.VR.US,
'280006': vr_1.VR.US,
'280008': vr_1.VR.IS,
'280009': vr_1.VR.AT,
'28000a': vr_1.VR.AT,
'280010': vr_1.VR.US,
'280011': vr_1.VR.US,
'280012': vr_1.VR.US,
'280014': vr_1.VR.US,
'280030': vr_1.VR.DS,
'280031': vr_1.VR.DS,
'280032': vr_1.VR.DS,
'280034': vr_1.VR.IS,
'280040': vr_1.VR.CS,
'280050': vr_1.VR.LO,
'280051': vr_1.VR.CS,
'28005f': vr_1.VR.LO,
'280060': vr_1.VR.CS,
'280061': vr_1.VR.SH,
'280062': vr_1.VR.LO,
'280063': vr_1.VR.SH,
'280065': vr_1.VR.CS,
'280066': vr_1.VR.AT,
'280068': vr_1.VR.US,
'280069': vr_1.VR.US,
'280070': vr_1.VR.US,
'280071': vr_1.VR.SS,
'280080': vr_1.VR.US,
'280081': vr_1.VR.US,
'280082': vr_1.VR.US,
'280090': vr_1.VR.CS,
'280091': vr_1.VR.US,
'280092': vr_1.VR.US,
'280093': vr_1.VR.US,
'280094': vr_1.VR.US,
'280100': vr_1.VR.US,
'280101': vr_1.VR.US,
'280102': vr_1.VR.US,
'280103': vr_1.VR.US,
'280104': vr_1.VR.SS,
'280105': vr_1.VR.SS,
'280106': vr_1.VR.SS,
'280107': vr_1.VR.SS,
'280108': vr_1.VR.SS,
'280109': vr_1.VR.SS,
'280110': vr_1.VR.SS,
'280111': vr_1.VR.SS,
'280120': vr_1.VR.SS,
'280121': vr_1.VR.SS,
'280122': vr_1.VR.FL,
'280123': vr_1.VR.FD,
'280124': vr_1.VR.FL,
'280125': vr_1.VR.FD,
'280200': vr_1.VR.US,
'280300': vr_1.VR.CS,
'280301': vr_1.VR.CS,
'280302': vr_1.VR.CS,
'280303': vr_1.VR.CS,
'280304': vr_1.VR.UI,
'280400': vr_1.VR.LO,
'280401': vr_1.VR.LO,
'280402': vr_1.VR.US,
'280403': vr_1.VR.LO,
'280404': vr_1.VR.AT,
'280700': vr_1.VR.LO,
'280701': vr_1.VR.CS,
'280702': vr_1.VR.AT,
'280710': vr_1.VR.US,
'280720': vr_1.VR.US,
'280721': vr_1.VR.AT,
'280722': vr_1.VR.US,
'280730': vr_1.VR.US,
'280740': vr_1.VR.US,
'280800': vr_1.VR.CS,
'280802': vr_1.VR.US,
'280803': vr_1.VR.AT,
'280804': vr_1.VR.US,
'280808': vr_1.VR.AT,
'280a02': vr_1.VR.CS,
'280a04': vr_1.VR.LO,
'281040': vr_1.VR.CS,
'281041': vr_1.VR.SS,
'281050': vr_1.VR.DS,
'281051': vr_1.VR.DS,
'281052': vr_1.VR.DS,
'281053': vr_1.VR.DS,
'281054': vr_1.VR.LO,
'281055': vr_1.VR.LO,
'281056': vr_1.VR.CS,
'281080': vr_1.VR.CS,
'281090': vr_1.VR.CS,
'281100': vr_1.VR.SS,
'281101': vr_1.VR.SS,
'281102': vr_1.VR.SS,
'281103': vr_1.VR.SS,
'281104': vr_1.VR.US,
'281111': vr_1.VR.SS,
'281112': vr_1.VR.SS,
'281113': vr_1.VR.SS,
'281199': vr_1.VR.UI,
'281200': vr_1.VR.OW,
'281201': vr_1.VR.OW,
'281202': vr_1.VR.OW,
'281203': vr_1.VR.OW,
'281204': vr_1.VR.OW,
'281211': vr_1.VR.OW,
'281212': vr_1.VR.OW,
'281213': vr_1.VR.OW,
'281214': vr_1.VR.UI,
'281221': vr_1.VR.OW,
'281222': vr_1.VR.OW,
'281223': vr_1.VR.OW,
'281224': vr_1.VR.OW,
'281230': vr_1.VR.SQ,
'281231': vr_1.VR.FD,
'281232': vr_1.VR.FD,
'281300': vr_1.VR.CS,
'281350': vr_1.VR.CS,
'281351': vr_1.VR.ST,
'281352': vr_1.VR.SQ,
'28135a': vr_1.VR.CS,
'281401': vr_1.VR.SQ,
'281402': vr_1.VR.CS,
'281403': vr_1.VR.US,
'281404': vr_1.VR.SQ,
'281405': vr_1.VR.CS,
'281406': vr_1.VR.FD,
'281407': vr_1.VR.US,
'281408': vr_1.VR.OW,
'28140b': vr_1.VR.SQ,
'28140c': vr_1.VR.SQ,
'28140d': vr_1.VR.CS,
'28140e': vr_1.VR.CS,
'28140f': vr_1.VR.CS,
'281410': vr_1.VR.CS,
'282000': vr_1.VR.OB,
'282002': vr_1.VR.CS,
'282110': vr_1.VR.CS,
'282112': vr_1.VR.DS,
'282114': vr_1.VR.CS,
'283000': vr_1.VR.SQ,
'283002': vr_1.VR.SS,
'283003': vr_1.VR.LO,
'283004': vr_1.VR.LO,
'283006': vr_1.VR.OW,
'283010': vr_1.VR.SQ,
'283110': vr_1.VR.SQ,
'284000': vr_1.VR.LT,
'285000': vr_1.VR.SQ,
'286010': vr_1.VR.US,
'286020': vr_1.VR.US,
'286022': vr_1.VR.LO,
'286023': vr_1.VR.CS,
'286030': vr_1.VR.US,
'286040': vr_1.VR.US,
'286100': vr_1.VR.SQ,
'286101': vr_1.VR.CS,
'286102': vr_1.VR.US,
'286110': vr_1.VR.US,
'286112': vr_1.VR.US,
'286114': vr_1.VR.FL,
'286120': vr_1.VR.SS,
'286190': vr_1.VR.ST,
'287000': vr_1.VR.SQ,
'287001': vr_1.VR.US,
'287002': vr_1.VR.US,
'287003': vr_1.VR.US,
'287004': vr_1.VR.SH,
'287005': vr_1.VR.LO,
'287006': vr_1.VR.CS,
'287007': vr_1.VR.LO,
'287008': vr_1.VR.SQ,
'287009': vr_1.VR.US,
'28700a': vr_1.VR.SQ,
'28700b': vr_1.VR.US,
'28700c': vr_1.VR.SH,
'28700d': vr_1.VR.LO,
'28700e': vr_1.VR.US,
'28700f': vr_1.VR.SQ,
'287010': vr_1.VR.SQ,
'287011': vr_1.VR.SQ,
'287012': vr_1.VR.SQ,
'287013': vr_1.VR.CS,
'287014': vr_1.VR.CS,
'287015': vr_1.VR.SQ,
'287016': vr_1.VR.SQ,
'287017': vr_1.VR.US,
'287018': vr_1.VR.FL,
'287019': vr_1.VR.CS,
'28701a': vr_1.VR.FL,
'28701b': vr_1.VR.US,
'28701c': vr_1.VR.SQ,
'28701d': vr_1.VR.FL,
'28701e': vr_1.VR.FL,
'28701f': vr_1.VR.FL,
'287020': vr_1.VR.LO,
'287021': vr_1.VR.CS,
'287022': vr_1.VR.SQ,
'287023': vr_1.VR.SQ,
'287024': vr_1.VR.SQ,
'287025': vr_1.VR.CS,
'287026': vr_1.VR.CS,
'287027': vr_1.VR.SQ,
'287028': vr_1.VR.SQ,
'287029': vr_1.VR.CS,
'28702a': vr_1.VR.LO,
'28702b': vr_1.VR.CS,
'28702c': vr_1.VR.SQ,
'28702d': vr_1.VR.SQ,
'28702e': vr_1.VR.SQ,
'287fe0': vr_1.VR.UR,
'289001': vr_1.VR.UL,
'289002': vr_1.VR.UL,
'289003': vr_1.VR.CS,
'289099': vr_1.VR.US,
'289108': vr_1.VR.CS,
'289110': vr_1.VR.SQ,
'289132': vr_1.VR.SQ,
'289145': vr_1.VR.SQ,
'289235': vr_1.VR.CS,
'289411': vr_1.VR.FL,
'289415': vr_1.VR.SQ,
'289416': vr_1.VR.US,
'289422': vr_1.VR.SQ,
'289443': vr_1.VR.SQ,
'289444': vr_1.VR.CS,
'289445': vr_1.VR.FL,
'289446': vr_1.VR.CS,
'289454': vr_1.VR.CS,
'289474': vr_1.VR.CS,
'289478': vr_1.VR.FL,
'289501': vr_1.VR.SQ,
'289502': vr_1.VR.SQ,
'289503': vr_1.VR.SS,
'289505': vr_1.VR.SQ,
'289506': vr_1.VR.US,
'289507': vr_1.VR.US,
'289520': vr_1.VR.DS,
'289537': vr_1.VR.CS,
'32000a': vr_1.VR.CS,
'32000c': vr_1.VR.CS,
'320012': vr_1.VR.LO,
'320032': vr_1.VR.DA,
'320033': vr_1.VR.TM,
'320034': vr_1.VR.DA,
'320035': vr_1.VR.TM,
'321000': vr_1.VR.DA,
'321001': vr_1.VR.TM,
'321010': vr_1.VR.DA,
'321011': vr_1.VR.TM,
'321020': vr_1.VR.LO,
'321021': vr_1.VR.AE,
'321030': vr_1.VR.LO,
'321031': vr_1.VR.SQ,
'321032': vr_1.VR.PN,
'321033': vr_1.VR.LO,
'321034': vr_1.VR.SQ,
'321040': vr_1.VR.DA,
'321041': vr_1.VR.TM,
'321050': vr_1.VR.DA,
'321051': vr_1.VR.TM,
'321055': vr_1.VR.CS,
'321060': vr_1.VR.LO,
'321064': vr_1.VR.SQ,
'321070': vr_1.VR.LO,
'324000': vr_1.VR.LT,
'380004': vr_1.VR.SQ,
'380008': vr_1.VR.CS,
'380010': vr_1.VR.LO,
'380011': vr_1.VR.LO,
'380014': vr_1.VR.SQ,
'380016': vr_1.VR.LO,
'38001a': vr_1.VR.DA,
'38001b': vr_1.VR.TM,
'38001c': vr_1.VR.DA,
'38001d': vr_1.VR.TM,
'38001e': vr_1.VR.LO,
'380020': vr_1.VR.DA,
'380021': vr_1.VR.TM,
'380030': vr_1.VR.DA,
'380032': vr_1.VR.TM,
'380040': vr_1.VR.LO,
'380044': vr_1.VR.SQ,
'380050': vr_1.VR.LO,
'380060': vr_1.VR.LO,
'380061': vr_1.VR.LO,
'380062': vr_1.VR.LO,
'380064': vr_1.VR.SQ,
'380100': vr_1.VR.SQ,
'380101': vr_1.VR.SQ,
'380102': vr_1.VR.LO,
'380300': vr_1.VR.LO,
'380400': vr_1.VR.LO,
'380500': vr_1.VR.LO,
'380502': vr_1.VR.SQ,
'384000': vr_1.VR.LT,
'3a0004': vr_1.VR.CS,
'3a0005': vr_1.VR.US,
'3a0010': vr_1.VR.UL,
'3a001a': vr_1.VR.DS,
'3a0020': vr_1.VR.SH,
'3a0200': vr_1.VR.SQ,
'3a0202': vr_1.VR.IS,
'3a0203': vr_1.VR.SH,
'3a0205': vr_1.VR.CS,
'3a0208': vr_1.VR.SQ,
'3a0209': vr_1.VR.SQ,
'3a020a': vr_1.VR.SQ,
'3a020c': vr_1.VR.LO,
'3a0210': vr_1.VR.DS,
'3a0211': vr_1.VR.SQ,
'3a0212': vr_1.VR.DS,
'3a0213': vr_1.VR.DS,
'3a0214': vr_1.VR.DS,
'3a0215': vr_1.VR.DS,
'3a0218': vr_1.VR.DS,
'3a021a': vr_1.VR.US,
'3a0220': vr_1.VR.DS,
'3a0221': vr_1.VR.DS,
'3a0222': vr_1.VR.DS,
'3a0223': vr_1.VR.DS,
'3a0230': vr_1.VR.FL,
'3a0231': vr_1.VR.US,
'3a0240': vr_1.VR.SQ,
'3a0241': vr_1.VR.US,
'3a0242': vr_1.VR.SQ,
'3a0244': vr_1.VR.US,
'3a0245': vr_1.VR.FL,
'3a0246': vr_1.VR.CS,
'3a0247': vr_1.VR.FL,
'3a0248': vr_1.VR.FL,
'3a0300': vr_1.VR.SQ,
'3a0301': vr_1.VR.IS,
'3a0302': vr_1.VR.CS,
'400001': vr_1.VR.AE,
'400002': vr_1.VR.DA,
'400003': vr_1.VR.TM,
'400004': vr_1.VR.DA,
'400005': vr_1.VR.TM,
'400006': vr_1.VR.PN,
'400007': vr_1.VR.LO,
'400008': vr_1.VR.SQ,
'400009': vr_1.VR.SH,
'40000a': vr_1.VR.SQ,
'40000b': vr_1.VR.SQ,
'400010': vr_1.VR.SH,
'400011': vr_1.VR.SH,
'400012': vr_1.VR.LO,
'400020': vr_1.VR.CS,
'400026': vr_1.VR.SQ,
'400027': vr_1.VR.SQ,
'400031': vr_1.VR.UT,
'400032': vr_1.VR.UT,
'400033': vr_1.VR.CS,
'400035': vr_1.VR.CS,
'400036': vr_1.VR.SQ,
'400039': vr_1.VR.SQ,
'40003a': vr_1.VR.SQ,
'400100': vr_1.VR.SQ,
'400220': vr_1.VR.SQ,
'400241': vr_1.VR.AE,
'400242': vr_1.VR.SH,
'400243': vr_1.VR.SH,
'400244': vr_1.VR.DA,
'400245': vr_1.VR.TM,
'400250': vr_1.VR.DA,
'400251': vr_1.VR.TM,
'400252': vr_1.VR.CS,
'400253': vr_1.VR.SH,
'400254': vr_1.VR.LO,
'400255': vr_1.VR.LO,
'400260': vr_1.VR.SQ,
'400261': vr_1.VR.CS,
'400270': vr_1.VR.SQ,
'400275': vr_1.VR.SQ,
'400280': vr_1.VR.ST,
'400281': vr_1.VR.SQ,
'400293': vr_1.VR.SQ,
'400294': vr_1.VR.DS,
'400295': vr_1.VR.SQ,
'400296': vr_1.VR.SQ,
'400300': vr_1.VR.US,
'400301': vr_1.VR.US,
'400302': vr_1.VR.US,
'400303': vr_1.VR.US,
'400306': vr_1.VR.DS,
'400307': vr_1.VR.DS,
'40030e': vr_1.VR.SQ,
'400310': vr_1.VR.ST,
'400312': vr_1.VR.DS,
'400314': vr_1.VR.DS,
'400316': vr_1.VR.DS,
'400318': vr_1.VR.CS,
'400320': vr_1.VR.SQ,
'400321': vr_1.VR.SQ,
'400324': vr_1.VR.SQ,
'400330': vr_1.VR.SQ,
'400340': vr_1.VR.SQ,
'400400': vr_1.VR.LT,
'400440': vr_1.VR.SQ,
'400441': vr_1.VR.SQ,
'400500': vr_1.VR.SQ,
'40050a': vr_1.VR.LO,
'400512': vr_1.VR.LO,
'400513': vr_1.VR.SQ,
'400515': vr_1.VR.SQ,
'400518': vr_1.VR.SQ,
'40051a': vr_1.VR.LO,
'400520': vr_1.VR.SQ,
'400550': vr_1.VR.SQ,
'400551': vr_1.VR.LO,
'400552': vr_1.VR.SQ,
'400553': vr_1.VR.ST,
'400554': vr_1.VR.UI,
'400555': vr_1.VR.SQ,
'400556': vr_1.VR.ST,
'400560': vr_1.VR.SQ,
'400562': vr_1.VR.SQ,
'40059a': vr_1.VR.SQ,
'400600': vr_1.VR.LO,
'400602': vr_1.VR.UT,
'400610': vr_1.VR.SQ,
'400612': vr_1.VR.SQ,
'400620': vr_1.VR.SQ,
'4006fa': vr_1.VR.LO,
'40071a': vr_1.VR.SQ,
'40072a': vr_1.VR.DS,
'40073a': vr_1.VR.DS,
'40074a': vr_1.VR.DS,
'4008d8': vr_1.VR.SQ,
'4008da': vr_1.VR.SQ,
'4008ea': vr_1.VR.SQ,
'4009f8': vr_1.VR.SQ,
'401001': vr_1.VR.SH,
'401002': vr_1.VR.LO,
'401003': vr_1.VR.SH,
'401004': vr_1.VR.LO,
'401005': vr_1.VR.LO,
'401006': vr_1.VR.SH,
'401007': vr_1.VR.SH,
'401008': vr_1.VR.LO,
'401009': vr_1.VR.SH,
'40100a': vr_1.VR.SQ,
'401010': vr_1.VR.PN,
'401011': vr_1.VR.SQ,
'401012': vr_1.VR.SQ,
'401060': vr_1.VR.LO,
'401101': vr_1.VR.SQ,
'401102': vr_1.VR.ST,
'401103': vr_1.VR.LO,
'401104': vr_1.VR.LT,
'401400': vr_1.VR.LT,
'402001': vr_1.VR.LO,
'402004': vr_1.VR.DA,
'402005': vr_1.VR.TM,
'402006': vr_1.VR.SH,
'402007': vr_1.VR.SH,
'402008': vr_1.VR.PN,
'402009': vr_1.VR.SH,
'402010': vr_1.VR.SH,
'402011': vr_1.VR.LT,
'402016': vr_1.VR.LO,
'402017': vr_1.VR.LO,
'402400': vr_1.VR.LT,
'403001': vr_1.VR.LO,
'404001': vr_1.VR.CS,
'404002': vr_1.VR.CS,
'404003': vr_1.VR.CS,
'404004': vr_1.VR.SQ,
'404005': vr_1.VR.DT,
'404006': vr_1.VR.CS,
'404007': vr_1.VR.SQ,
'404009': vr_1.VR.SQ,
'404010': vr_1.VR.DT,
'404011': vr_1.VR.DT,
'404015': vr_1.VR.SQ,
'404016': vr_1.VR.SQ,
'404018': vr_1.VR.SQ,
'404019': vr_1.VR.SQ,
'404020': vr_1.VR.CS,
'404021': vr_1.VR.SQ,
'404022': vr_1.VR.SQ,
'404023': vr_1.VR.UI,
'404025': vr_1.VR.SQ,
'404026': vr_1.VR.SQ,
'404027': vr_1.VR.SQ,
'404028': vr_1.VR.SQ,
'404029': vr_1.VR.SQ,
'404030': vr_1.VR.SQ,
'404031': vr_1.VR.SQ,
'404032': vr_1.VR.SQ,
'404033': vr_1.VR.SQ,
'404034': vr_1.VR.SQ,
'404035': vr_1.VR.SQ,
'404036': vr_1.VR.LO,
'404037': vr_1.VR.PN,
'404040': vr_1.VR.CS,
'404041': vr_1.VR.CS,
'404050': vr_1.VR.DT,
'404051': vr_1.VR.DT,
'404052': vr_1.VR.DT,
'404070': vr_1.VR.SQ,
'404071': vr_1.VR.SQ,
'404072': vr_1.VR.SQ,
'404073': vr_1.VR.UR,
'404074': vr_1.VR.SQ,
'408302': vr_1.VR.DS,
'408303': vr_1.VR.CS,
'409092': vr_1.VR.SQ,
'409094': vr_1.VR.SQ,
'409096': vr_1.VR.SQ,
'409098': vr_1.VR.SQ,
'409210': vr_1.VR.SH,
'409211': vr_1.VR.SS,
'409212': vr_1.VR.FD,
'409213': vr_1.VR.FD,
'409214': vr_1.VR.FD,
'409216': vr_1.VR.SS,
'409220': vr_1.VR.SQ,
'409224': vr_1.VR.FD,
'409225': vr_1.VR.FD,
'40a007': vr_1.VR.CS,
'40a010': vr_1.VR.CS,
'40a020': vr_1.VR.SQ,
'40a021': vr_1.VR.UI,
'40a022': vr_1.VR.UI,
'40a023': vr_1.VR.DA,
'40a024': vr_1.VR.TM,
'40a026': vr_1.VR.SQ,
'40a027': vr_1.VR.LO,
'40a028': vr_1.VR.SQ,
'40a030': vr_1.VR.DT,
'40a032': vr_1.VR.DT,
'40a040': vr_1.VR.CS,
'40a043': vr_1.VR.SQ,
'40a047': vr_1.VR.LO,
'40a050': vr_1.VR.CS,
'40a057': vr_1.VR.CS,
'40a060': vr_1.VR.LO,
'40a066': vr_1.VR.SQ,
'40a067': vr_1.VR.PN,
'40a068': vr_1.VR.SQ,
'40a070': vr_1.VR.SQ,
'40a073': vr_1.VR.SQ,
'40a074': vr_1.VR.OB,
'40a075': vr_1.VR.PN,
'40a076': vr_1.VR.SQ,
'40a078': vr_1.VR.SQ,
'40a07a': vr_1.VR.SQ,
'40a07c': vr_1.VR.SQ,
'40a080': vr_1.VR.CS,
'40a082': vr_1.VR.DT,
'40a084': vr_1.VR.CS,
'40a085': vr_1.VR.SQ,
'40a088': vr_1.VR.SQ,
'40a089': vr_1.VR.OB,
'40a090': vr_1.VR.SQ,
'40a0b0': vr_1.VR.US,
'40a110': vr_1.VR.DA,
'40a112': vr_1.VR.TM,
'40a120': vr_1.VR.DT,
'40a121': vr_1.VR.DA,
'40a122': vr_1.VR.TM,
'40a123': vr_1.VR.PN,
'40a124': vr_1.VR.UI,
'40a125': vr_1.VR.CS,
'40a130': vr_1.VR.CS,
'40a132': vr_1.VR.UL,
'40a136': vr_1.VR.US,
'40a138': vr_1.VR.DS,
'40a13a': vr_1.VR.DT,
'40a160': vr_1.VR.UT,
'40a161': vr_1.VR.FD,
'40a162': vr_1.VR.SL,
'40a163': vr_1.VR.UL,
'40a167': vr_1.VR.SQ,
'40a168': vr_1.VR.SQ,
'40a16a': vr_1.VR.ST,
'40a170': vr_1.VR.SQ,
'40a171': vr_1.VR.UI,
'40a172': vr_1.VR.UI,
'40a173': vr_1.VR.CS,
'40a174': vr_1.VR.CS,
'40a180': vr_1.VR.US,
'40a192': vr_1.VR.DA,
'40a193': vr_1.VR.TM,
'40a194': vr_1.VR.CS,
'40a195': vr_1.VR.SQ,
'40a224': vr_1.VR.ST,
'40a290': vr_1.VR.CS,
'40a296': vr_1.VR.SQ,
'40a297': vr_1.VR.ST,
'40a29a': vr_1.VR.SL,
'40a300': vr_1.VR.SQ,
'40a301': vr_1.VR.SQ,
'40a307': vr_1.VR.PN,
'40a30a': vr_1.VR.DS,
'40a313': vr_1.VR.SQ,
'40a33a': vr_1.VR.ST,
'40a340': vr_1.VR.SQ,
'40a352': vr_1.VR.PN,
'40a353': vr_1.VR.ST,
'40a354': vr_1.VR.LO,
'40a358': vr_1.VR.SQ,
'40a360': vr_1.VR.SQ,
'40a370': vr_1.VR.SQ,
'40a372': vr_1.VR.SQ,
'40a375': vr_1.VR.SQ,
'40a380': vr_1.VR.SQ,
'40a385': vr_1.VR.SQ,
'40a390': vr_1.VR.SQ,
'40a402': vr_1.VR.UI,
'40a403': vr_1.VR.CS,
'40a404': vr_1.VR.SQ,
'40a491': vr_1.VR.CS,
'40a492': vr_1.VR.LO,
'40a493': vr_1.VR.CS,
'40a494': vr_1.VR.CS,
'40a496': vr_1.VR.CS,
'40a504': vr_1.VR.SQ,
'40a525': vr_1.VR.SQ,
'40a600': vr_1.VR.CS,
'40a601': vr_1.VR.CS,
'40a603': vr_1.VR.CS,
'40a730': vr_1.VR.SQ,
'40a731': vr_1.VR.SQ,
'40a732': vr_1.VR.SQ,
'40a744': vr_1.VR.SQ,
'40a992': vr_1.VR.ST,
'40b020': vr_1.VR.SQ,
'40db00': vr_1.VR.CS,
'40db06': vr_1.VR.DT,
'40db07': vr_1.VR.DT,
'40db0b': vr_1.VR.CS,
'40db0c': vr_1.VR.UI,
'40db0d': vr_1.VR.UI,
'40db73': vr_1.VR.UL,
'40e001': vr_1.VR.ST,
'40e004': vr_1.VR.DT,
'40e006': vr_1.VR.SQ,
'40e008': vr_1.VR.SQ,
'40e010': vr_1.VR.UR,
'40e011': vr_1.VR.UI,
'40e020': vr_1.VR.CS,
'40e021': vr_1.VR.SQ,
'40e022': vr_1.VR.SQ,
'40e023': vr_1.VR.SQ,
'40e024': vr_1.VR.SQ,
'40e025': vr_1.VR.SQ,
'40e030': vr_1.VR.UI,
'40e031': vr_1.VR.UI,
'420010': vr_1.VR.ST,
'420011': vr_1.VR.OB,
'420012': vr_1.VR.LO,
'420013': vr_1.VR.SQ,
'420014': vr_1.VR.LO,
'440001': vr_1.VR.ST,
'440002': vr_1.VR.CS,
'440003': vr_1.VR.LT,
'440004': vr_1.VR.DT,
'440007': vr_1.VR.SQ,
'440008': vr_1.VR.LO,
'440009': vr_1.VR.LT,
'44000a': vr_1.VR.LO,
'44000b': vr_1.VR.DT,
'440010': vr_1.VR.DT,
'440011': vr_1.VR.LO,
'440012': vr_1.VR.LO,
'440013': vr_1.VR.SQ,
'440019': vr_1.VR.SQ,
'440100': vr_1.VR.SQ,
'440101': vr_1.VR.SQ,
'440102': vr_1.VR.UI,
'440103': vr_1.VR.SQ,
'440104': vr_1.VR.DT,
'440105': vr_1.VR.DT,
'440106': vr_1.VR.UT,
'440107': vr_1.VR.SQ,
'440108': vr_1.VR.UI,
'440109': vr_1.VR.SQ,
'44010a': vr_1.VR.SQ,
'460012': vr_1.VR.LO,
'460014': vr_1.VR.SQ,
'460015': vr_1.VR.SQ,
'460016': vr_1.VR.SQ,
'460018': vr_1.VR.SQ,
'460028': vr_1.VR.SQ,
'460030': vr_1.VR.FD,
'460032': vr_1.VR.CS,
'460034': vr_1.VR.FD,
'460036': vr_1.VR.CS,
'460038': vr_1.VR.CS,
'460040': vr_1.VR.FD,
'460042': vr_1.VR.FD,
'460044': vr_1.VR.FD,
'460046': vr_1.VR.FD,
'460050': vr_1.VR.SQ,
'460052': vr_1.VR.SQ,
'460060': vr_1.VR.FD,
'460062': vr_1.VR.FD,
'460063': vr_1.VR.FD,
'460064': vr_1.VR.FD,
'460070': vr_1.VR.SQ,
'460071': vr_1.VR.SQ,
'460074': vr_1.VR.SQ,
'460075': vr_1.VR.FD,
'460076': vr_1.VR.FD,
'460077': vr_1.VR.FD,
'460080': vr_1.VR.SQ,
'460092': vr_1.VR.CS,
'460094': vr_1.VR.CS,
'460095': vr_1.VR.CS,
'460097': vr_1.VR.SQ,
'460098': vr_1.VR.SQ,
'460100': vr_1.VR.SQ,
'460101': vr_1.VR.SQ,
'460102': vr_1.VR.SQ,
'460104': vr_1.VR.FD,
'460106': vr_1.VR.FD,
'460121': vr_1.VR.SQ,
'460122': vr_1.VR.SQ,
'460123': vr_1.VR.SQ,
'460124': vr_1.VR.SQ,
'460125': vr_1.VR.CS,
'460135': vr_1.VR.SS,
'460137': vr_1.VR.FD,
'460139': vr_1.VR.LO,
'460145': vr_1.VR.SQ,
'460146': vr_1.VR.FD,
'460147': vr_1.VR.FD,
'460201': vr_1.VR.CS,
'460202': vr_1.VR.FL,
'460203': vr_1.VR.FL,
'460204': vr_1.VR.FL,
'460205': vr_1.VR.FL,
'460207': vr_1.VR.SQ,
'460208': vr_1.VR.IS,
'460210': vr_1.VR.SQ,
'460211': vr_1.VR.SQ,
'460212': vr_1.VR.FL,
'460213': vr_1.VR.FL,
'460215': vr_1.VR.SQ,
'460218': vr_1.VR.SQ,
'460220': vr_1.VR.FL,
'460224': vr_1.VR.FL,
'460227': vr_1.VR.FL,
'460230': vr_1.VR.FL,
'460232': vr_1.VR.FL,
'460234': vr_1.VR.FL,
'460236': vr_1.VR.FL,
'460238': vr_1.VR.FL,
'460242': vr_1.VR.CS,
'460244': vr_1.VR.SQ,
'460247': vr_1.VR.FL,
'460248': vr_1.VR.CS,
'460249': vr_1.VR.FL,
'460250': vr_1.VR.FL,
'460251': vr_1.VR.FL,
'460252': vr_1.VR.FL,
'460253': vr_1.VR.FL,
'480001': vr_1.VR.FL,
'480002': vr_1.VR.FL,
'480003': vr_1.VR.FL,
'480006': vr_1.VR.UL,
'480007': vr_1.VR.UL,
'480008': vr_1.VR.SQ,
'480010': vr_1.VR.CS,
'480011': vr_1.VR.CS,
'480012': vr_1.VR.CS,
'480013': vr_1.VR.US,
'480014': vr_1.VR.FL,
'480015': vr_1.VR.US,
'480100': vr_1.VR.SQ,
'480102': vr_1.VR.DS,
'480105': vr_1.VR.SQ,
'480106': vr_1.VR.SH,
'480107': vr_1.VR.ST,
'480108': vr_1.VR.SQ,
'480110': vr_1.VR.SQ,
'480111': vr_1.VR.DS,
'480112': vr_1.VR.DS,
'480113': vr_1.VR.DS,
'480120': vr_1.VR.SQ,
'480200': vr_1.VR.SQ,
'480201': vr_1.VR.US,
'480202': vr_1.VR.US,
'480207': vr_1.VR.SQ,
'48021a': vr_1.VR.SQ,
'48021e': vr_1.VR.SL,
'48021f': vr_1.VR.SL,
'480301': vr_1.VR.CS,
'500004': vr_1.VR.CS,
'500010': vr_1.VR.SQ,
'500012': vr_1.VR.SQ,
'500013': vr_1.VR.FD,
'500014': vr_1.VR.DS,
'500015': vr_1.VR.FD,
'500016': vr_1.VR.DS,
'500017': vr_1.VR.CS,
'500018': vr_1.VR.DS,
'500019': vr_1.VR.DS,
'50001a': vr_1.VR.CS,
'50001b': vr_1.VR.LO,
'50001c': vr_1.VR.FD,
'50001d': vr_1.VR.FD,
'50001e': vr_1.VR.LO,
'500020': vr_1.VR.LO,
'520001': vr_1.VR.FL,
'520002': vr_1.VR.FD,
'520003': vr_1.VR.FD,
'520004': vr_1.VR.FD,
'520006': vr_1.VR.CS,
'520007': vr_1.VR.FD,
'520008': vr_1.VR.FD,
'520009': vr_1.VR.FD,
'520011': vr_1.VR.FD,
'520012': vr_1.VR.US,
'520013': vr_1.VR.FD,
'520014': vr_1.VR.FD,
'520016': vr_1.VR.SQ,
'520025': vr_1.VR.SQ,
'520026': vr_1.VR.CS,
'520027': vr_1.VR.SQ,
'520028': vr_1.VR.FD,
'520029': vr_1.VR.SQ,
'520030': vr_1.VR.SS,
'520031': vr_1.VR.CS,
'520033': vr_1.VR.FD,
'520034': vr_1.VR.FD,
'520036': vr_1.VR.US,
'520038': vr_1.VR.US,
'520039': vr_1.VR.CS,
'52003a': vr_1.VR.CS,
'540010': vr_1.VR.US,
'540011': vr_1.VR.US,
'540012': vr_1.VR.SQ,
'540013': vr_1.VR.SQ,
'540014': vr_1.VR.DS,
'540015': vr_1.VR.DS,
'540016': vr_1.VR.SQ,
'540017': vr_1.VR.IS,
'540018': vr_1.VR.SH,
'540020': vr_1.VR.US,
'540021': vr_1.VR.US,
'540022': vr_1.VR.SQ,
'540030': vr_1.VR.US,
'540031': vr_1.VR.US,
'540032': vr_1.VR.SQ,
'540033': vr_1.VR.US,
'540036': vr_1.VR.IS,
'540038': vr_1.VR.IS,
'540039': vr_1.VR.CS,
'540050': vr_1.VR.US,
'540051': vr_1.VR.US,
'540052': vr_1.VR.SQ,
'540053': vr_1.VR.US,
'540060': vr_1.VR.US,
'540061': vr_1.VR.US,
'540062': vr_1.VR.SQ,
'540063': vr_1.VR.SQ,
'540070': vr_1.VR.US,
'540071': vr_1.VR.US,
'540072': vr_1.VR.SQ,
'540073': vr_1.VR.DS,
'540080': vr_1.VR.US,
'540081': vr_1.VR.US,
'540090': vr_1.VR.US,
'540100': vr_1.VR.US,
'540101': vr_1.VR.US,
'540200': vr_1.VR.DS,
'540202': vr_1.VR.CS,
'540210': vr_1.VR.IS,
'540211': vr_1.VR.US,
'540220': vr_1.VR.SQ,
'540222': vr_1.VR.SQ,
'540300': vr_1.VR.SQ,
'540302': vr_1.VR.SQ,
'540304': vr_1.VR.SQ,
'540306': vr_1.VR.SQ,
'540308': vr_1.VR.US,
'540400': vr_1.VR.SH,
'540410': vr_1.VR.SQ,
'540412': vr_1.VR.SQ,
'540414': vr_1.VR.SQ,
'540500': vr_1.VR.CS,
'540501': vr_1.VR.CS,
'541000': vr_1.VR.CS,
'541001': vr_1.VR.CS,
'541002': vr_1.VR.CS,
'541004': vr_1.VR.CS,
'541006': vr_1.VR.CS,
'541100': vr_1.VR.CS,
'541101': vr_1.VR.LO,
'541102': vr_1.VR.CS,
'541103': vr_1.VR.LO,
'541104': vr_1.VR.LO,
'541105': vr_1.VR.LO,
'541200': vr_1.VR.DS,
'541201': vr_1.VR.IS,
'541202': vr_1.VR.IS,
'541203': vr_1.VR.DS,
'541210': vr_1.VR.DS,
'541220': vr_1.VR.CS,
'541300': vr_1.VR.DS,
'541310': vr_1.VR.IS,
'541311': vr_1.VR.IS,
'541320': vr_1.VR.DS,
'541321': vr_1.VR.DS,
'541322': vr_1.VR.DS,
'541323': vr_1.VR.DS,
'541324': vr_1.VR.DS,
'541330': vr_1.VR.US,
'541400': vr_1.VR.CS,
'541401': vr_1.VR.CS,
'603000': vr_1.VR.SQ,
'603002': vr_1.VR.US,
'603004': vr_1.VR.SS,
'603006': vr_1.VR.SS,
'603008': vr_1.VR.US,
'603010': vr_1.VR.LO,
'603020': vr_1.VR.UL,
'620001': vr_1.VR.CS,
'620002': vr_1.VR.SQ,
'620003': vr_1.VR.SQ,
'620004': vr_1.VR.US,
'620005': vr_1.VR.LO,
'620006': vr_1.VR.ST,
'620007': vr_1.VR.SQ,
'620008': vr_1.VR.CS,
'620009': vr_1.VR.LO,
'62000a': vr_1.VR.SQ,
'62000b': vr_1.VR.US,
'62000c': vr_1.VR.US,
'62000d': vr_1.VR.US,
'62000e': vr_1.VR.US,
'62000f': vr_1.VR.SQ,
'620010': vr_1.VR.CS,
'620011': vr_1.VR.SQ,
'620012': vr_1.VR.SQ,
'620020': vr_1.VR.UT,
'620021': vr_1.VR.UI,
'640002': vr_1.VR.SQ,
'640003': vr_1.VR.UI,
'640005': vr_1.VR.SQ,
'640007': vr_1.VR.UL,
'640008': vr_1.VR.FD,
'640009': vr_1.VR.OF,
'64000f': vr_1.VR.SQ,
'640010': vr_1.VR.SQ,
'660001': vr_1.VR.UL,
'660002': vr_1.VR.SQ,
'660003': vr_1.VR.UL,
'660004': vr_1.VR.LT,
'660009': vr_1.VR.CS,
'66000a': vr_1.VR.FL,
'66000b': vr_1.VR.LO,
'66000c': vr_1.VR.FL,
'66000d': vr_1.VR.CS,
'66000e': vr_1.VR.CS,
'660010': vr_1.VR.CS,
'660011': vr_1.VR.SQ,
'660012': vr_1.VR.SQ,
'660013': vr_1.VR.SQ,
'660015': vr_1.VR.UL,
'660016': vr_1.VR.OF,
'660017': vr_1.VR.FL,
'660018': vr_1.VR.FL,
'660019': vr_1.VR.FL,
'66001a': vr_1.VR.FL,
'66001b': vr_1.VR.FL,
'66001c': vr_1.VR.FL,
'66001e': vr_1.VR.UL,
'66001f': vr_1.VR.US,
'660020': vr_1.VR.FL,
'660021': vr_1.VR.OF,
'660023': vr_1.VR.OW,
'660024': vr_1.VR.OW,
'660025': vr_1.VR.OW,
'660026': vr_1.VR.SQ,
'660027': vr_1.VR.SQ,
'660028': vr_1.VR.SQ,
'660029': vr_1.VR.OW,
'66002a': vr_1.VR.UL,
'66002b': vr_1.VR.SQ,
'66002c': vr_1.VR.UL,
'66002d': vr_1.VR.SQ,
'66002e': vr_1.VR.SQ,
'66002f': vr_1.VR.SQ,
'660030': vr_1.VR.SQ,
'660031': vr_1.VR.LO,
'660032': vr_1.VR.LT,
'660034': vr_1.VR.SQ,
'660035': vr_1.VR.SQ,
'660036': vr_1.VR.LO,
'660037': vr_1.VR.FL,
'660038': vr_1.VR.FL,
'660040': vr_1.VR.OL,
'660041': vr_1.VR.OL,
'660042': vr_1.VR.OL,
'660043': vr_1.VR.OL,
'660101': vr_1.VR.SQ,
'660102': vr_1.VR.SQ,
'660103': vr_1.VR.OW,
'660104': vr_1.VR.SQ,
'660105': vr_1.VR.UL,
'660106': vr_1.VR.LO,
'660107': vr_1.VR.UT,
'660108': vr_1.VR.SQ,
'660121': vr_1.VR.SQ,
'660124': vr_1.VR.SQ,
'660125': vr_1.VR.OF,
'660129': vr_1.VR.OL,
'660130': vr_1.VR.SQ,
'660132': vr_1.VR.SQ,
'660133': vr_1.VR.SQ,
'660134': vr_1.VR.SQ,
'686210': vr_1.VR.LO,
'686221': vr_1.VR.LO,
'686222': vr_1.VR.SQ,
'686223': vr_1.VR.CS,
'686224': vr_1.VR.SQ,
'686225': vr_1.VR.SQ,
'686226': vr_1.VR.DT,
'686230': vr_1.VR.SQ,
'686260': vr_1.VR.SQ,
'686265': vr_1.VR.SQ,
'686270': vr_1.VR.DT,
'686280': vr_1.VR.ST,
'6862a0': vr_1.VR.SQ,
'6862a5': vr_1.VR.FD,
'6862c0': vr_1.VR.SQ,
'6862d0': vr_1.VR.US,
'6862d5': vr_1.VR.LO,
'6862e0': vr_1.VR.SQ,
'6862f0': vr_1.VR.SQ,
'6862f2': vr_1.VR.FD,
'686300': vr_1.VR.OB,
'686310': vr_1.VR.US,
'686320': vr_1.VR.SQ,
'686330': vr_1.VR.US,
'686340': vr_1.VR.LO,
'686345': vr_1.VR.ST,
'686346': vr_1.VR.FD,
'686347': vr_1.VR.FD,
'686350': vr_1.VR.US,
'686360': vr_1.VR.SQ,
'686380': vr_1.VR.LO,
'686390': vr_1.VR.FD,
'6863a0': vr_1.VR.SQ,
'6863a4': vr_1.VR.SQ,
'6863a8': vr_1.VR.SQ,
'6863ac': vr_1.VR.SQ,
'6863b0': vr_1.VR.SQ,
'6863c0': vr_1.VR.US,
'6863d0': vr_1.VR.LO,
'6863e0': vr_1.VR.SQ,
'6863f0': vr_1.VR.US,
'686400': vr_1.VR.SQ,
'686410': vr_1.VR.US,
'686420': vr_1.VR.CS,
'686430': vr_1.VR.SQ,
'686440': vr_1.VR.US,
'686450': vr_1.VR.FD,
'686460': vr_1.VR.FD,
'686470': vr_1.VR.SQ,
'686490': vr_1.VR.FD,
'6864a0': vr_1.VR.FD,
'6864c0': vr_1.VR.FD,
'6864d0': vr_1.VR.FD,
'6864f0': vr_1.VR.FD,
'686500': vr_1.VR.SQ,
'686510': vr_1.VR.SQ,
'686520': vr_1.VR.SQ,
'686530': vr_1.VR.US,
'686540': vr_1.VR.LO,
'686545': vr_1.VR.SQ,
'686550': vr_1.VR.SQ,
'686560': vr_1.VR.FD,
'686590': vr_1.VR.FD,
'6865a0': vr_1.VR.SQ,
'6865b0': vr_1.VR.FD,
'6865d0': vr_1.VR.FD,
'6865e0': vr_1.VR.SQ,
'6865f0': vr_1.VR.FD,
'686610': vr_1.VR.FD,
'686620': vr_1.VR.FD,
'700001': vr_1.VR.SQ,
'700002': vr_1.VR.CS,
'700003': vr_1.VR.CS,
'700004': vr_1.VR.CS,
'700005': vr_1.VR.CS,
'700006': vr_1.VR.ST,
'700008': vr_1.VR.SQ,
'700009': vr_1.VR.SQ,
'700010': vr_1.VR.FL,
'700011': vr_1.VR.FL,
'700012': vr_1.VR.CS,
'700014': vr_1.VR.FL,
'700015': vr_1.VR.CS,
'700020': vr_1.VR.US,
'700021': vr_1.VR.US,
'700022': vr_1.VR.FL,
'700023': vr_1.VR.CS,
'700024': vr_1.VR.CS,
'700040': vr_1.VR.IS,
'700041': vr_1.VR.CS,
'700042': vr_1.VR.US,
'700050': vr_1.VR.US,
'700051': vr_1.VR.US,
'700052': vr_1.VR.SL,
'700053': vr_1.VR.SL,
'70005a': vr_1.VR.SQ,
'700060': vr_1.VR.SQ,
'700062': vr_1.VR.IS,
'700066': vr_1.VR.US,
'700067': vr_1.VR.US,
'700068': vr_1.VR.LO,
'700080': vr_1.VR.CS,
'700081': vr_1.VR.LO,
'700082': vr_1.VR.DA,
'700083': vr_1.VR.TM,
'700084': vr_1.VR.PN,
'700086': vr_1.VR.SQ,
'700087': vr_1.VR.SQ,
'700100': vr_1.VR.CS,
'700101': vr_1.VR.DS,
'700102': vr_1.VR.IS,
'700103': vr_1.VR.FL,
'700207': vr_1.VR.LO,
'700208': vr_1.VR.ST,
'700209': vr_1.VR.SQ,
'700226': vr_1.VR.UL,
'700227': vr_1.VR.LO,
'700228': vr_1.VR.CS,
'700229': vr_1.VR.LO,
'700230': vr_1.VR.FD,
'700231': vr_1.VR.SQ,
'700232': vr_1.VR.SQ,
'700233': vr_1.VR.SQ,
'700234': vr_1.VR.SQ,
'700241': vr_1.VR.US,
'700242': vr_1.VR.CS,
'700243': vr_1.VR.CS,
'700244': vr_1.VR.CS,
'700245': vr_1.VR.FL,
'700246': vr_1.VR.FL,
'700247': vr_1.VR.US,
'700248': vr_1.VR.CS,
'700249': vr_1.VR.CS,
'700250': vr_1.VR.CS,
'700251': vr_1.VR.US,
'700252': vr_1.VR.US,
'700253': vr_1.VR.FL,
'700254': vr_1.VR.CS,
'700255': vr_1.VR.UL,
'700256': vr_1.VR.OB,
'700257': vr_1.VR.CS,
'700258': vr_1.VR.FL,
'700261': vr_1.VR.FL,
'700262': vr_1.VR.FL,
'700273': vr_1.VR.FL,
'700274': vr_1.VR.CS,
'700278': vr_1.VR.CS,
'700279': vr_1.VR.CS,
'700282': vr_1.VR.CS,
'700284': vr_1.VR.FL,
'700285': vr_1.VR.FL,
'700287': vr_1.VR.SQ,
'700288': vr_1.VR.FL,
'700289': vr_1.VR.SH,
'700294': vr_1.VR.CS,
'700295': vr_1.VR.UL,
'700306': vr_1.VR.CS,
'700308': vr_1.VR.SQ,
'700309': vr_1.VR.SQ,
'70030a': vr_1.VR.SQ,
'70030b': vr_1.VR.FD,
'70030c': vr_1.VR.CS,
'70030d': vr_1.VR.SQ,
'70030f': vr_1.VR.ST,
'700310': vr_1.VR.SH,
'700311': vr_1.VR.SQ,
'700312': vr_1.VR.FD,
'700314': vr_1.VR.SQ,
'700318': vr_1.VR.SQ,
'70031a': vr_1.VR.UI,
'70031b': vr_1.VR.UI,
'70031c': vr_1.VR.SQ,
'70031e': vr_1.VR.SQ,
'70031f': vr_1.VR.SQ,
'700401': vr_1.VR.US,
'700402': vr_1.VR.SQ,
'700403': vr_1.VR.FL,
'700404': vr_1.VR.SQ,
'700405': vr_1.VR.CS,
'701101': vr_1.VR.UI,
'701102': vr_1.VR.UI,
'701103': vr_1.VR.US,
'701104': vr_1.VR.SQ,
'701201': vr_1.VR.SQ,
'701202': vr_1.VR.CS,
'701203': vr_1.VR.US,
'701204': vr_1.VR.CS,
'701205': vr_1.VR.US,
'701206': vr_1.VR.CS,
'701207': vr_1.VR.US,
'701208': vr_1.VR.CS,
'701209': vr_1.VR.UI,
'70120a': vr_1.VR.SQ,
'70120b': vr_1.VR.CS,
'70120c': vr_1.VR.US,
'70120d': vr_1.VR.CS,
'701301': vr_1.VR.SQ,
'701302': vr_1.VR.CS,
'701303': vr_1.VR.FD,
'701304': vr_1.VR.SQ,
'701305': vr_1.VR.FD,
'701306': vr_1.VR.FD,
'701309': vr_1.VR.US,
'701501': vr_1.VR.CS,
'701502': vr_1.VR.CS,
'701503': vr_1.VR.FD,
'701505': vr_1.VR.FD,
'701507': vr_1.VR.FD,
'701508': vr_1.VR.FD,
'70150c': vr_1.VR.UL,
'70150d': vr_1.VR.OD,
'701511': vr_1.VR.FD,
'701512': vr_1.VR.FD,
'701602': vr_1.VR.CS,
'701603': vr_1.VR.FD,
'701604': vr_1.VR.FD,
'701605': vr_1.VR.FD,
'701606': vr_1.VR.FD,
'701607': vr_1.VR.FD,
'701701': vr_1.VR.CS,
'701702': vr_1.VR.FD,
'701703': vr_1.VR.FD,
'701704': vr_1.VR.FD,
'701705': vr_1.VR.FD,
'701706': vr_1.VR.FD,
'701801': vr_1.VR.SQ,
'701802': vr_1.VR.CS,
'701803': vr_1.VR.SQ,
'701804': vr_1.VR.US,
'701805': vr_1.VR.SQ,
'701806': vr_1.VR.SQ,
'701807': vr_1.VR.US,
'701808': vr_1.VR.OB,
'701901': vr_1.VR.SQ,
'701903': vr_1.VR.SQ,
'701904': vr_1.VR.UI,
'701905': vr_1.VR.SQ,
'701907': vr_1.VR.CS,
'701a01': vr_1.VR.CS,
'701a03': vr_1.VR.FD,
'701a04': vr_1.VR.SQ,
'701a05': vr_1.VR.FD,
'701a06': vr_1.VR.FD,
'701a07': vr_1.VR.OD,
'701a08': vr_1.VR.SQ,
'701a09': vr_1.VR.LO,
'701b01': vr_1.VR.SQ,
'701b02': vr_1.VR.US,
'701b03': vr_1.VR.SQ,
'701b04': vr_1.VR.SQ,
'701b06': vr_1.VR.CS,
'701b07': vr_1.VR.CS,
'701b08': vr_1.VR.CS,
'701b11': vr_1.VR.SQ,
'701b12': vr_1.VR.SQ,
'701b13': vr_1.VR.CS,
'701b14': vr_1.VR.FD,
'720002': vr_1.VR.SH,
'720004': vr_1.VR.LO,
'720006': vr_1.VR.CS,
'720008': vr_1.VR.LO,
'72000a': vr_1.VR.DT,
'72000c': vr_1.VR.SQ,
'72000e': vr_1.VR.SQ,
'720010': vr_1.VR.LO,
'720012': vr_1.VR.SQ,
'720014': vr_1.VR.US,
'720020': vr_1.VR.SQ,
'720022': vr_1.VR.SQ,
'720024': vr_1.VR.CS,
'720026': vr_1.VR.AT,
'720028': vr_1.VR.US,
'720030': vr_1.VR.SQ,
'720032': vr_1.VR.US,
'720034': vr_1.VR.CS,
'720038': vr_1.VR.US,
'72003a': vr_1.VR.CS,
'72003c': vr_1.VR.SS,
'72003e': vr_1.VR.SQ,
'720040': vr_1.VR.LO,
'720050': vr_1.VR.CS,
'720052': vr_1.VR.AT,
'720054': vr_1.VR.LO,
'720056': vr_1.VR.LO,
'72005e': vr_1.VR.AE,
'72005f': vr_1.VR.AS,
'720060': vr_1.VR.AT,
'720061': vr_1.VR.DA,
'720062': vr_1.VR.CS,
'720063': vr_1.VR.DT,
'720064': vr_1.VR.IS,
'720065': vr_1.VR.OB,
'720066': vr_1.VR.LO,
'720067': vr_1.VR.OF,
'720068': vr_1.VR.LT,
'720069': vr_1.VR.OW,
'72006a': vr_1.VR.PN,
'72006b': vr_1.VR.TM,
'72006c': vr_1.VR.SH,
'72006d': vr_1.VR.UN,
'72006e': vr_1.VR.ST,
'72006f': vr_1.VR.UC,
'720070': vr_1.VR.UT,
'720071': vr_1.VR.UR,
'720072': vr_1.VR.DS,
'720073': vr_1.VR.OD,
'720074': vr_1.VR.FD,
'720075': vr_1.VR.OL,
'720076': vr_1.VR.FL,
'720078': vr_1.VR.UL,
'72007a': vr_1.VR.US,
'72007c': vr_1.VR.SL,
'72007e': vr_1.VR.SS,
'72007f': vr_1.VR.UI,
'720080': vr_1.VR.SQ,
'720100': vr_1.VR.US,
'720102': vr_1.VR.SQ,
'720104': vr_1.VR.US,
'720106': vr_1.VR.US,
'720108': vr_1.VR.FD,
'72010a': vr_1.VR.US,
'72010c': vr_1.VR.US,
'72010e': vr_1.VR.US,
'720200': vr_1.VR.SQ,
'720202': vr_1.VR.US,
'720203': vr_1.VR.LO,
'720204': vr_1.VR.US,
'720206': vr_1.VR.LO,
'720208': vr_1.VR.CS,
'720210': vr_1.VR.SQ,
'720212': vr_1.VR.US,
'720214': vr_1.VR.SQ,
'720216': vr_1.VR.US,
'720218': vr_1.VR.US,
'720300': vr_1.VR.SQ,
'720302': vr_1.VR.US,
'720304': vr_1.VR.CS,
'720306': vr_1.VR.US,
'720308': vr_1.VR.US,
'720310': vr_1.VR.CS,
'720312': vr_1.VR.CS,
'720314': vr_1.VR.US,
'720316': vr_1.VR.CS,
'720318': vr_1.VR.US,
'720320': vr_1.VR.US,
'720330': vr_1.VR.FD,
'720400': vr_1.VR.SQ,
'720402': vr_1.VR.CS,
'720404': vr_1.VR.CS,
'720406': vr_1.VR.CS,
'720420': vr_1.VR.US,
'720421': vr_1.VR.US,
'720422': vr_1.VR.SQ,
'720424': vr_1.VR.SQ,
'720427': vr_1.VR.SQ,
'720430': vr_1.VR.SQ,
'720432': vr_1.VR.US,
'720434': vr_1.VR.CS,
'720500': vr_1.VR.CS,
'720510': vr_1.VR.CS,
'720512': vr_1.VR.FD,
'720514': vr_1.VR.FD,
'720516': vr_1.VR.CS,
'720520': vr_1.VR.CS,
'720600': vr_1.VR.SQ,
'720602': vr_1.VR.CS,
'720604': vr_1.VR.CS,
'720700': vr_1.VR.CS,
'720702': vr_1.VR.CS,
'720704': vr_1.VR.CS,
'720705': vr_1.VR.SQ,
'720706': vr_1.VR.CS,
'720710': vr_1.VR.CS,
'720712': vr_1.VR.CS,
'720714': vr_1.VR.CS,
'720716': vr_1.VR.CS,
'720717': vr_1.VR.CS,
'720718': vr_1.VR.CS,
'740120': vr_1.VR.FD,
'740121': vr_1.VR.FD,
'741000': vr_1.VR.CS,
'741002': vr_1.VR.SQ,
'741004': vr_1.VR.DS,
'741006': vr_1.VR.ST,
'741007': vr_1.VR.SQ,
'741008': vr_1.VR.SQ,
'74100a': vr_1.VR.UR,
'74100c': vr_1.VR.LO,
'74100e': vr_1.VR.SQ,
'741020': vr_1.VR.SQ,
'741022': vr_1.VR.CS,
'741024': vr_1.VR.IS,
'741025': vr_1.VR.CS,
'741026': vr_1.VR.FD,
'741027': vr_1.VR.FD,
'741028': vr_1.VR.FD,
'74102a': vr_1.VR.FD,
'74102b': vr_1.VR.FD,
'74102c': vr_1.VR.FD,
'74102d': vr_1.VR.FD,
'741030': vr_1.VR.SQ,
'741032': vr_1.VR.CS,
'741034': vr_1.VR.CS,
'741036': vr_1.VR.CS,
'741038': vr_1.VR.DS,
'74103a': vr_1.VR.DS,
'741040': vr_1.VR.SQ,
'741042': vr_1.VR.SQ,
'741044': vr_1.VR.SQ,
'741046': vr_1.VR.SQ,
'741048': vr_1.VR.SQ,
'74104a': vr_1.VR.SQ,
'74104c': vr_1.VR.SQ,
'74104e': vr_1.VR.SQ,
'741050': vr_1.VR.SQ,
'741052': vr_1.VR.AT,
'741054': vr_1.VR.UL,
'741056': vr_1.VR.LO,
'741057': vr_1.VR.IS,
'741200': vr_1.VR.CS,
'741202': vr_1.VR.LO,
'741204': vr_1.VR.LO,
'741210': vr_1.VR.SQ,
'741212': vr_1.VR.SQ,
'741216': vr_1.VR.SQ,
'741220': vr_1.VR.SQ,
'741222': vr_1.VR.LO,
'741224': vr_1.VR.SQ,
'741230': vr_1.VR.LO,
'741234': vr_1.VR.AE,
'741236': vr_1.VR.AE,
'741238': vr_1.VR.LT,
'741242': vr_1.VR.CS,
'741244': vr_1.VR.CS,
'741246': vr_1.VR.CS,
'741324': vr_1.VR.UL,
'741338': vr_1.VR.FD,
'74133a': vr_1.VR.FD,
'741401': vr_1.VR.SQ,
'741402': vr_1.VR.DS,
'741403': vr_1.VR.DS,
'741404': vr_1.VR.IS,
'741405': vr_1.VR.SQ,
'741406': vr_1.VR.IS,
'741407': vr_1.VR.DS,
'741408': vr_1.VR.DS,
'741409': vr_1.VR.SQ,
'74140a': vr_1.VR.CS,
'74140b': vr_1.VR.LO,
'74140c': vr_1.VR.IS,
'74140d': vr_1.VR.SQ,
'74140e': vr_1.VR.SQ,
'760001': vr_1.VR.LO,
'760003': vr_1.VR.LO,
'760006': vr_1.VR.LO,
'760008': vr_1.VR.SQ,
'76000a': vr_1.VR.CS,
'76000c': vr_1.VR.SQ,
'76000e': vr_1.VR.SQ,
'760010': vr_1.VR.SQ,
'760020': vr_1.VR.SQ,
'760030': vr_1.VR.LO,
'760032': vr_1.VR.SQ,
'760034': vr_1.VR.SQ,
'760036': vr_1.VR.CS,
'760038': vr_1.VR.CS,
'760040': vr_1.VR.SQ,
'760055': vr_1.VR.US,
'760060': vr_1.VR.SQ,
'760070': vr_1.VR.US,
'760080': vr_1.VR.US,
'760090': vr_1.VR.US,
'7600a0': vr_1.VR.US,
'7600b0': vr_1.VR.US,
'7600c0': vr_1.VR.US,
'780001': vr_1.VR.LO,
'780010': vr_1.VR.ST,
'780020': vr_1.VR.LO,
'780024': vr_1.VR.LO,
'780026': vr_1.VR.SQ,
'780028': vr_1.VR.SQ,
'78002a': vr_1.VR.SQ,
'78002e': vr_1.VR.US,
'780050': vr_1.VR.FD,
'780060': vr_1.VR.FD,
'780070': vr_1.VR.SQ,
'780090': vr_1.VR.FD,
'7800a0': vr_1.VR.FD,
'7800b0': vr_1.VR.SQ,
'7800b2': vr_1.VR.LO,
'7800b4': vr_1.VR.SQ,
'7800b6': vr_1.VR.US,
'7800b8': vr_1.VR.US,
'800001': vr_1.VR.SQ,
'800002': vr_1.VR.SQ,
'800003': vr_1.VR.SQ,
'800004': vr_1.VR.FD,
'800005': vr_1.VR.FD,
'800006': vr_1.VR.US,
'800007': vr_1.VR.US,
'800008': vr_1.VR.SQ,
'800009': vr_1.VR.SH,
'800010': vr_1.VR.OF,
'800011': vr_1.VR.OF,
'800012': vr_1.VR.SQ,
'800013': vr_1.VR.SQ,
'820001': vr_1.VR.CS,
'820003': vr_1.VR.UT,
'820004': vr_1.VR.SQ,
'820005': vr_1.VR.SQ,
'820006': vr_1.VR.UL,
'820007': vr_1.VR.SQ,
'820008': vr_1.VR.CS,
'82000a': vr_1.VR.UT,
'82000c': vr_1.VR.SQ,
'820010': vr_1.VR.SQ,
'820016': vr_1.VR.LO,
'820017': vr_1.VR.SQ,
'820018': vr_1.VR.LO,
'820019': vr_1.VR.LO,
'820021': vr_1.VR.SQ,
'820022': vr_1.VR.SQ,
'820023': vr_1.VR.LO,
'820032': vr_1.VR.CS,
'820033': vr_1.VR.UT,
'820034': vr_1.VR.SQ,
'820035': vr_1.VR.SQ,
'820036': vr_1.VR.CS,
'820037': vr_1.VR.UT,
'820038': vr_1.VR.CS,
'880130': vr_1.VR.SH,
'880140': vr_1.VR.UI,
'880200': vr_1.VR.SQ,
'880904': vr_1.VR.LO,
'880906': vr_1.VR.ST,
'880910': vr_1.VR.LO,
'880912': vr_1.VR.LO,
'1000410': vr_1.VR.CS,
'1000420': vr_1.VR.DT,
'1000424': vr_1.VR.LT,
'1000426': vr_1.VR.LO,
'4000005': vr_1.VR.US,
'4000010': vr_1.VR.UI,
'4000015': vr_1.VR.CS,
'4000020': vr_1.VR.AT,
'4000100': vr_1.VR.UI,
'4000105': vr_1.VR.DT,
'4000110': vr_1.VR.CS,
'4000115': vr_1.VR.OB,
'4000120': vr_1.VR.OB,
'4000305': vr_1.VR.CS,
'4000310': vr_1.VR.OB,
'4000401': vr_1.VR.SQ,
'4000402': vr_1.VR.SQ,
'4000403': vr_1.VR.SQ,
'4000404': vr_1.VR.OB,
'4000500': vr_1.VR.SQ,
'4000510': vr_1.VR.UI,
'4000520': vr_1.VR.OB,
'4000550': vr_1.VR.SQ,
'4000561': vr_1.VR.SQ,
'4000562': vr_1.VR.DT,
'4000563': vr_1.VR.LO,
'4000564': vr_1.VR.LO,
'4000565': vr_1.VR.CS,
'10000000': vr_1.VR.US,
'10000001': vr_1.VR.US,
'10000002': vr_1.VR.US,
'10000003': vr_1.VR.US,
'10000004': vr_1.VR.US,
'10000005': vr_1.VR.US,
'10100000': vr_1.VR.US,
'20000010': vr_1.VR.IS,
'2000001e': vr_1.VR.SQ,
'20000020': vr_1.VR.CS,
'20000030': vr_1.VR.CS,
'20000040': vr_1.VR.CS,
'20000050': vr_1.VR.LO,
'20000060': vr_1.VR.IS,
'20000061': vr_1.VR.IS,
'20000062': vr_1.VR.CS,
'20000063': vr_1.VR.CS,
'20000065': vr_1.VR.CS,
'20000067': vr_1.VR.CS,
'20000069': vr_1.VR.CS,
'2000006a': vr_1.VR.CS,
'200000a0': vr_1.VR.US,
'200000a1': vr_1.VR.US,
'200000a2': vr_1.VR.SQ,
'200000a4': vr_1.VR.SQ,
'200000a8': vr_1.VR.SQ,
'20000500': vr_1.VR.SQ,
'20000510': vr_1.VR.SQ,
'20100010': vr_1.VR.ST,
'20100030': vr_1.VR.CS,
'20100040': vr_1.VR.CS,
'20100050': vr_1.VR.CS,
'20100052': vr_1.VR.CS,
'20100054': vr_1.VR.CS,
'20100060': vr_1.VR.CS,
'20100080': vr_1.VR.CS,
'201000a6': vr_1.VR.CS,
'201000a7': vr_1.VR.CS,
'201000a8': vr_1.VR.CS,
'201000a9': vr_1.VR.CS,
'20100100': vr_1.VR.CS,
'20100110': vr_1.VR.CS,
'20100120': vr_1.VR.US,
'20100130': vr_1.VR.US,
'20100140': vr_1.VR.CS,
'20100150': vr_1.VR.ST,
'20100152': vr_1.VR.LT,
'20100154': vr_1.VR.IS,
'2010015e': vr_1.VR.US,
'20100160': vr_1.VR.US,
'20100376': vr_1.VR.DS,
'20100500': vr_1.VR.SQ,
'20100510': vr_1.VR.SQ,
'20100520': vr_1.VR.SQ,
'20200010': vr_1.VR.US,
'20200020': vr_1.VR.CS,
'20200030': vr_1.VR.DS,
'20200040': vr_1.VR.CS,
'20200050': vr_1.VR.CS,
'202000a0': vr_1.VR.CS,
'202000a2': vr_1.VR.CS,
'20200110': vr_1.VR.SQ,
'20200111': vr_1.VR.SQ,
'20200130': vr_1.VR.SQ,
'20200140': vr_1.VR.SQ,
'20300010': vr_1.VR.US,
'20300020': vr_1.VR.LO,
'20400010': vr_1.VR.SQ,
'20400011': vr_1.VR.US,
'20400020': vr_1.VR.SQ,
'20400060': vr_1.VR.CS,
'20400070': vr_1.VR.CS,
'20400072': vr_1.VR.CS,
'20400074': vr_1.VR.US,
'20400080': vr_1.VR.CS,
'20400082': vr_1.VR.CS,
'20400090': vr_1.VR.CS,
'20400100': vr_1.VR.CS,
'20400500': vr_1.VR.SQ,
'20500010': vr_1.VR.SQ,
'20500020': vr_1.VR.CS,
'20500500': vr_1.VR.SQ,
'21000010': vr_1.VR.SH,
'21000020': vr_1.VR.CS,
'21000030': vr_1.VR.CS,
'21000040': vr_1.VR.DA,
'21000050': vr_1.VR.TM,
'21000070': vr_1.VR.AE,
'21000140': vr_1.VR.AE,
'21000160': vr_1.VR.SH,
'21000170': vr_1.VR.IS,
'21000500': vr_1.VR.SQ,
'21100010': vr_1.VR.CS,
'21100020': vr_1.VR.CS,
'21100030': vr_1.VR.LO,
'21100099': vr_1.VR.SH,
'21200010': vr_1.VR.CS,
'21200050': vr_1.VR.SQ,
'21200070': vr_1.VR.SQ,
'21300010': vr_1.VR.SQ,
'21300015': vr_1.VR.SQ,
'21300030': vr_1.VR.SQ,
'21300040': vr_1.VR.SQ,
'21300050': vr_1.VR.SQ,
'21300060': vr_1.VR.SQ,
'21300080': vr_1.VR.SQ,
'213000a0': vr_1.VR.SQ,
'213000c0': vr_1.VR.SQ,
'22000001': vr_1.VR.CS,
'22000002': vr_1.VR.UT,
'22000003': vr_1.VR.CS,
'22000004': vr_1.VR.LT,
'22000005': vr_1.VR.LT,
'22000006': vr_1.VR.CS,
'22000007': vr_1.VR.CS,
'22000008': vr_1.VR.CS,
'22000009': vr_1.VR.CS,
'2200000a': vr_1.VR.CS,
'2200000b': vr_1.VR.US,
'2200000c': vr_1.VR.LO,
'2200000d': vr_1.VR.SQ,
'2200000e': vr_1.VR.AT,
'2200000f': vr_1.VR.CS,
'22000020': vr_1.VR.CS,
'30020002': vr_1.VR.SH,
'30020003': vr_1.VR.LO,
'30020004': vr_1.VR.ST,
'3002000a': vr_1.VR.CS,
'3002000c': vr_1.VR.CS,
'3002000d': vr_1.VR.DS,
'3002000e': vr_1.VR.DS,
'30020010': vr_1.VR.DS,
'30020011': vr_1.VR.DS,
'30020012': vr_1.VR.DS,
'30020020': vr_1.VR.SH,
'30020022': vr_1.VR.DS,
'30020024': vr_1.VR.DS,
'30020026': vr_1.VR.DS,
'30020028': vr_1.VR.DS,
'30020029': vr_1.VR.IS,
'30020030': vr_1.VR.SQ,
'30020032': vr_1.VR.DS,
'30020034': vr_1.VR.DS,
'30020040': vr_1.VR.SQ,
'30020041': vr_1.VR.CS,
'30020042': vr_1.VR.DS,
'30020050': vr_1.VR.SQ,
'30020051': vr_1.VR.CS,
'30020052': vr_1.VR.SH,
'30040001': vr_1.VR.CS,
'30040002': vr_1.VR.CS,
'30040004': vr_1.VR.CS,
'30040005': vr_1.VR.CS,
'30040006': vr_1.VR.LO,
'30040008': vr_1.VR.DS,
'3004000a': vr_1.VR.CS,
'3004000c': vr_1.VR.DS,
'3004000e': vr_1.VR.DS,
'30040010': vr_1.VR.SQ,
'30040012': vr_1.VR.DS,
'30040014': vr_1.VR.CS,
'30040040': vr_1.VR.DS,
'30040042': vr_1.VR.DS,
'30040050': vr_1.VR.SQ,
'30040052': vr_1.VR.DS,
'30040054': vr_1.VR.CS,
'30040056': vr_1.VR.IS,
'30040058': vr_1.VR.DS,
'30040060': vr_1.VR.SQ,
'30040062': vr_1.VR.CS,
'30040070': vr_1.VR.DS,
'30040072': vr_1.VR.DS,
'30040074': vr_1.VR.DS,
'30060002': vr_1.VR.SH,
'30060004': vr_1.VR.LO,
'30060006': vr_1.VR.ST,
'30060008': vr_1.VR.DA,
'30060009': vr_1.VR.TM,
'30060010': vr_1.VR.SQ,
'30060012': vr_1.VR.SQ,
'30060014': vr_1.VR.SQ,
'30060016': vr_1.VR.SQ,
'30060018': vr_1.VR.SQ,
'30060020': vr_1.VR.SQ,
'30060022': vr_1.VR.IS,
'30060024': vr_1.VR.UI,
'30060026': vr_1.VR.LO,
'30060028': vr_1.VR.ST,
'3006002a': vr_1.VR.IS,
'3006002c': vr_1.VR.DS,
'30060030': vr_1.VR.SQ,
'30060033': vr_1.VR.CS,
'30060036': vr_1.VR.CS,
'30060038': vr_1.VR.LO,
'30060039': vr_1.VR.SQ,
'30060040': vr_1.VR.SQ,
'30060042': vr_1.VR.CS,
'30060044': vr_1.VR.DS,
'30060045': vr_1.VR.DS,
'30060046': vr_1.VR.IS,
'30060048': vr_1.VR.IS,
'30060049': vr_1.VR.IS,
'30060050': vr_1.VR.DS,
'30060080': vr_1.VR.SQ,
'30060082': vr_1.VR.IS,
'30060084': vr_1.VR.IS,
'30060085': vr_1.VR.SH,
'30060086': vr_1.VR.SQ,
'30060088': vr_1.VR.ST,
'300600a0': vr_1.VR.SQ,
'300600a4': vr_1.VR.CS,
'300600a6': vr_1.VR.PN,
'300600b0': vr_1.VR.SQ,
'300600b2': vr_1.VR.CS,
'300600b4': vr_1.VR.DS,
'300600b6': vr_1.VR.SQ,
'300600b7': vr_1.VR.US,
'300600b8': vr_1.VR.FL,
'300600b9': vr_1.VR.SQ,
'300600c0': vr_1.VR.SQ,
'300600c2': vr_1.VR.UI,
'300600c4': vr_1.VR.CS,
'300600c6': vr_1.VR.DS,
'300600c8': vr_1.VR.LO,
'30080010': vr_1.VR.SQ,
'30080012': vr_1.VR.ST,
'30080014': vr_1.VR.CS,
'30080016': vr_1.VR.DS,
'30080020': vr_1.VR.SQ,
'30080021': vr_1.VR.SQ,
'30080022': vr_1.VR.IS,
'30080024': vr_1.VR.DA,
'30080025': vr_1.VR.TM,
'3008002a': vr_1.VR.CS,
'3008002b': vr_1.VR.SH,
'3008002c': vr_1.VR.CS,
'30080030': vr_1.VR.SQ,
'30080032': vr_1.VR.DS,
'30080033': vr_1.VR.DS,
'30080036': vr_1.VR.DS,
'30080037': vr_1.VR.DS,
'3008003a': vr_1.VR.DS,
'3008003b': vr_1.VR.DS,
'30080040': vr_1.VR.SQ,
'30080041': vr_1.VR.SQ,
'30080042': vr_1.VR.DS,
'30080044': vr_1.VR.DS,
'30080045': vr_1.VR.FL,
'30080046': vr_1.VR.FL,
'30080047': vr_1.VR.FL,
'30080048': vr_1.VR.DS,
'30080050': vr_1.VR.SQ,
'30080052': vr_1.VR.DS,
'30080054': vr_1.VR.DA,
'30080056': vr_1.VR.DA,
'3008005a': vr_1.VR.IS,
'30080060': vr_1.VR.SQ,
'30080061': vr_1.VR.AT,
'30080062': vr_1.VR.AT,
'30080063': vr_1.VR.IS,
'30080064': vr_1.VR.IS,
'30080065': vr_1.VR.AT,
'30080066': vr_1.VR.ST,
'30080067': vr_1.VR.US,
'30080068': vr_1.VR.SQ,
'3008006a': vr_1.VR.FL,
'30080070': vr_1.VR.SQ,
'30080072': vr_1.VR.IS,
'30080074': vr_1.VR.ST,
'30080076': vr_1.VR.DS,
'30080078': vr_1.VR.DS,
'3008007a': vr_1.VR.DS,
'30080080': vr_1.VR.SQ,
'30080082': vr_1.VR.IS,
'30080090': vr_1.VR.SQ,
'30080092': vr_1.VR.IS,
'300800a0': vr_1.VR.SQ,
'300800b0': vr_1.VR.SQ,
'300800c0': vr_1.VR.SQ,
'300800d0': vr_1.VR.SQ,
'300800e0': vr_1.VR.SQ,
'300800f0': vr_1.VR.SQ,
'300800f2': vr_1.VR.SQ,
'300800f4': vr_1.VR.SQ,
'300800f6': vr_1.VR.SQ,
'30080100': vr_1.VR.SQ,
'30080105': vr_1.VR.LO,
'30080110': vr_1.VR.SQ,
'30080116': vr_1.VR.CS,
'30080120': vr_1.VR.SQ,
'30080122': vr_1.VR.IS,
'30080130': vr_1.VR.SQ,
'30080132': vr_1.VR.DS,
'30080134': vr_1.VR.DS,
'30080136': vr_1.VR.IS,
'30080138': vr_1.VR.IS,
'3008013a': vr_1.VR.DS,
'3008013c': vr_1.VR.DS,
'30080140': vr_1.VR.SQ,
'30080142': vr_1.VR.IS,
'30080150': vr_1.VR.SQ,
'30080152': vr_1.VR.IS,
'30080160': vr_1.VR.SQ,
'30080162': vr_1.VR.DA,
'30080164': vr_1.VR.TM,
'30080166': vr_1.VR.DA,
'30080168': vr_1.VR.TM,
'30080171': vr_1.VR.SQ,
'30080172': vr_1.VR.US,
'30080173': vr_1.VR.SQ,
'30080200': vr_1.VR.CS,
'30080202': vr_1.VR.ST,
'30080220': vr_1.VR.SQ,
'30080223': vr_1.VR.IS,
'30080224': vr_1.VR.CS,
'30080230': vr_1.VR.CS,
'30080240': vr_1.VR.SQ,
'30080250': vr_1.VR.DA,
'30080251': vr_1.VR.TM,
'300a0002': vr_1.VR.SH,
'300a0003': vr_1.VR.LO,
'300a0004': vr_1.VR.ST,
'300a0006': vr_1.VR.DA,
'300a0007': vr_1.VR.TM,
'300a0009': vr_1.VR.LO,
'300a000a': vr_1.VR.CS,
'300a000b': vr_1.VR.LO,
'300a000c': vr_1.VR.CS,
'300a000e': vr_1.VR.ST,
'300a0010': vr_1.VR.SQ,
'300a0012': vr_1.VR.IS,
'300a0013': vr_1.VR.UI,
'300a0014': vr_1.VR.CS,
'300a0015': vr_1.VR.CS,
'300a0016': vr_1.VR.LO,
'300a0018': vr_1.VR.DS,
'300a001a': vr_1.VR.DS,
'300a0020': vr_1.VR.CS,
'300a0021': vr_1.VR.DS,
'300a0022': vr_1.VR.DS,
'300a0023': vr_1.VR.DS,
'300a0025': vr_1.VR.DS,
'300a0026': vr_1.VR.DS,
'300a0027': vr_1.VR.DS,
'300a0028': vr_1.VR.DS,
'300a002a': vr_1.VR.DS,
'300a002b': vr_1.VR.DS,
'300a002c': vr_1.VR.DS,
'300a002d': vr_1.VR.DS,
'300a0040': vr_1.VR.SQ,
'300a0042': vr_1.VR.IS,
'300a0043': vr_1.VR.SH,
'300a0044': vr_1.VR.DS,
'300a0046': vr_1.VR.DS,
'300a0048': vr_1.VR.SQ,
'300a004a': vr_1.VR.DS,
'300a004b': vr_1.VR.FL,
'300a004c': vr_1.VR.DS,
'300a004e': vr_1.VR.DS,
'300a004f': vr_1.VR.FL,
'300a0050': vr_1.VR.FL,
'300a0051': vr_1.VR.DS,
'300a0052': vr_1.VR.DS,
'300a0053': vr_1.VR.DS,
'300a0055': vr_1.VR.CS,
'300a0070': vr_1.VR.SQ,
'300a0071': vr_1.VR.IS,
'300a0072': vr_1.VR.LO,
'300a0078': vr_1.VR.IS,
'300a0079': vr_1.VR.IS,
'300a007a': vr_1.VR.IS,
'300a007b': vr_1.VR.LT,
'300a0080': vr_1.VR.IS,
'300a0082': vr_1.VR.DS,
'300a0083': vr_1.VR.UI,
'300a0084': vr_1.VR.DS,
'300a0086': vr_1.VR.DS,
'300a0088': vr_1.VR.FL,
'300a0089': vr_1.VR.FL,
'300a008a': vr_1.VR.FL,
'300a008b': vr_1.VR.CS,
'300a008c': vr_1.VR.SQ,
'300a008d': vr_1.VR.FL,
'300a008e': vr_1.VR.FL,
'300a008f': vr_1.VR.FL,
'300a0090': vr_1.VR.CS,
'300a0091': vr_1.VR.DS,
'300a0092': vr_1.VR.CS,
'300a0093': vr_1.VR.CS,
'300a00a0': vr_1.VR.IS,
'300a00a2': vr_1.VR.DS,
'300a00a4': vr_1.VR.DS,
'300a00b0': vr_1.VR.SQ,
'300a00b2': vr_1.VR.SH,
'300a00b3': vr_1.VR.CS,
'300a00b4': vr_1.VR.DS,
'300a00b6': vr_1.VR.SQ,
'300a00b8': vr_1.VR.CS,
'300a00ba': vr_1.VR.DS,
'300a00bb': vr_1.VR.FL,
'300a00bc': vr_1.VR.IS,
'300a00be': vr_1.VR.DS,
'300a00c0': vr_1.VR.IS,
'300a00c2': vr_1.VR.LO,
'300a00c3': vr_1.VR.ST,
'300a00c4': vr_1.VR.CS,
'300a00c5': vr_1.VR.FD,
'300a00c6': vr_1.VR.CS,
'300a00c7': vr_1.VR.CS,
'300a00c8': vr_1.VR.IS,
'300a00ca': vr_1.VR.SQ,
'300a00cc': vr_1.VR.LO,
'300a00ce': vr_1.VR.CS,
'300a00d0': vr_1.VR.IS,
'300a00d1': vr_1.VR.SQ,
'300a00d2': vr_1.VR.IS,
'300a00d3': vr_1.VR.CS,
'300a00d4': vr_1.VR.SH,
'300a00d5': vr_1.VR.IS,
'300a00d6': vr_1.VR.DS,
'300a00d7': vr_1.VR.FL,
'300a00d8': vr_1.VR.DS,
'300a00d9': vr_1.VR.FL,
'300a00da': vr_1.VR.DS,
'300a00db': vr_1.VR.FL,
'300a00dc': vr_1.VR.SH,
'300a00dd': vr_1.VR.ST,
'300a00de': vr_1.VR.DS,
'300a00e0': vr_1.VR.IS,
'300a00e1': vr_1.VR.SH,
'300a00e2': vr_1.VR.DS,
'300a00e3': vr_1.VR.SQ,
'300a00e4': vr_1.VR.IS,
'300a00e5': vr_1.VR.SH,
'300a00e6': vr_1.VR.DS,
'300a00e7': vr_1.VR.IS,
'300a00e8': vr_1.VR.IS,
'300a00e9': vr_1.VR.DS,
'300a00ea': vr_1.VR.DS,
'300a00eb': vr_1.VR.DS,
'300a00ec': vr_1.VR.DS,
'300a00ed': vr_1.VR.IS,
'300a00ee': vr_1.VR.CS,
'300a00ef': vr_1.VR.SH,
'300a00f0': vr_1.VR.IS,
'300a00f2': vr_1.VR.DS,
'300a00f3': vr_1.VR.FL,
'300a00f4': vr_1.VR.SQ,
'300a00f5': vr_1.VR.SH,
'300a00f6': vr_1.VR.DS,
'300a00f7': vr_1.VR.FL,
'300a00f8': vr_1.VR.CS,
'300a00f9': vr_1.VR.LO,
'300a00fa': vr_1.VR.CS,
'300a00fb': vr_1.VR.CS,
'300a00fc': vr_1.VR.IS,
'300a00fe': vr_1.VR.LO,
'300a0100': vr_1.VR.DS,
'300a0102': vr_1.VR.DS,
'300a0104': vr_1.VR.IS,
'300a0106': vr_1.VR.DS,
'300a0107': vr_1.VR.SQ,
'300a0108': vr_1.VR.SH,
'300a0109': vr_1.VR.CS,
'300a010a': vr_1.VR.LO,
'300a010c': vr_1.VR.DS,
'300a010e': vr_1.VR.DS,
'300a0110': vr_1.VR.IS,
'300a0111': vr_1.VR.SQ,
'300a0112': vr_1.VR.IS,
'300a0114': vr_1.VR.DS,
'300a0115': vr_1.VR.DS,
'300a0116': vr_1.VR.SQ,
'300a0118': vr_1.VR.CS,
'300a011a': vr_1.VR.SQ,
'300a011c': vr_1.VR.DS,
'300a011e': vr_1.VR.DS,
'300a011f': vr_1.VR.CS,
'300a0120': vr_1.VR.DS,
'300a0121': vr_1.VR.CS,
'300a0122': vr_1.VR.DS,
'300a0123': vr_1.VR.CS,
'300a0124': vr_1.VR.DS,
'300a0125': vr_1.VR.DS,
'300a0126': vr_1.VR.CS,
'300a0128': vr_1.VR.DS,
'300a0129': vr_1.VR.DS,
'300a012a': vr_1.VR.DS,
'300a012c': vr_1.VR.DS,
'300a012e': vr_1.VR.DS,
'300a0130': vr_1.VR.DS,
'300a0131': vr_1.VR.FL,
'300a0132': vr_1.VR.FL,
'300a0133': vr_1.VR.FL,
'300a0134': vr_1.VR.DS,
'300a0140': vr_1.VR.FL,
'300a0142': vr_1.VR.CS,
'300a0144': vr_1.VR.FL,
'300a0146': vr_1.VR.CS,
'300a0148': vr_1.VR.FL,
'300a014a': vr_1.VR.FL,
'300a014c': vr_1.VR.CS,
'300a014e': vr_1.VR.FL,
'300a0150': vr_1.VR.CS,
'300a0151': vr_1.VR.DS,
'300a0152': vr_1.VR.DS,
'300a0153': vr_1.VR.DS,
'300a0154': vr_1.VR.DS,
'300a0155': vr_1.VR.DS,
'300a0180': vr_1.VR.SQ,
'300a0182': vr_1.VR.IS,
'300a0183': vr_1.VR.LO,
'300a0184': vr_1.VR.LO,
'300a0190': vr_1.VR.SQ,
'300a0192': vr_1.VR.CS,
'300a0194': vr_1.VR.SH,
'300a0196': vr_1.VR.ST,
'300a0198': vr_1.VR.SH,
'300a0199': vr_1.VR.FL,
'300a019a': vr_1.VR.FL,
'300a01a0': vr_1.VR.SQ,
'300a01a2': vr_1.VR.CS,
'300a01a4': vr_1.VR.SH,
'300a01a6': vr_1.VR.ST,
'300a01a8': vr_1.VR.SH,
'300a01b0': vr_1.VR.CS,
'300a01b2': vr_1.VR.ST,
'300a01b4': vr_1.VR.SQ,
'300a01b6': vr_1.VR.CS,
'300a01b8': vr_1.VR.SH,
'300a01ba': vr_1.VR.ST,
'300a01bc': vr_1.VR.DS,
'300a01d0': vr_1.VR.ST,
'300a01d2': vr_1.VR.DS,
'300a01d4': vr_1.VR.DS,
'300a01d6': vr_1.VR.DS,
'300a0200': vr_1.VR.CS,
'300a0202': vr_1.VR.CS,
'300a0206': vr_1.VR.SQ,
'300a0210': vr_1.VR.SQ,
'300a0212': vr_1.VR.IS,
'300a0214': vr_1.VR.CS,
'300a0216': vr_1.VR.LO,
'300a0218': vr_1.VR.DS,
'300a021a': vr_1.VR.DS,
'300a021b': vr_1.VR.SH,
'300a021c': vr_1.VR.LO,
'300a0222': vr_1.VR.DS,
'300a0224': vr_1.VR.DS,
'300a0226': vr_1.VR.LO,
'300a0228': vr_1.VR.DS,
'300a0229': vr_1.VR.CS,
'300a022a': vr_1.VR.DS,
'300a022b': vr_1.VR.DS,
'300a022c': vr_1.VR.DA,
'300a022e': vr_1.VR.TM,
'300a0230': vr_1.VR.SQ,
'300a0232': vr_1.VR.CS,
'300a0234': vr_1.VR.IS,
'300a0236': vr_1.VR.LO,
'300a0238': vr_1.VR.LO,
'300a0240': vr_1.VR.IS,
'300a0242': vr_1.VR.SH,
'300a0244': vr_1.VR.LO,
'300a0250': vr_1.VR.DS,
'300a0260': vr_1.VR.SQ,
'300a0262': vr_1.VR.IS,
'300a0263': vr_1.VR.SH,
'300a0264': vr_1.VR.CS,
'300a0266': vr_1.VR.LO,
'300a026a': vr_1.VR.DS,
'300a026c': vr_1.VR.DS,
'300a0271': vr_1.VR.DS,
'300a0272': vr_1.VR.DS,
'300a0273': vr_1.VR.SH,
'300a0274': vr_1.VR.DS,
'300a0280': vr_1.VR.SQ,
'300a0282': vr_1.VR.IS,
'300a0284': vr_1.VR.DS,
'300a0286': vr_1.VR.DS,
'300a0288': vr_1.VR.CS,
'300a028a': vr_1.VR.IS,
'300a028c': vr_1.VR.DS,
'300a0290': vr_1.VR.IS,
'300a0291': vr_1.VR.SH,
'300a0292': vr_1.VR.CS,
'300a0294': vr_1.VR.LO,
'300a0296': vr_1.VR.DS,
'300a0298': vr_1.VR.LO,
'300a029c': vr_1.VR.DS,
'300a029e': vr_1.VR.DS,
'300a02a0': vr_1.VR.DS,
'300a02a2': vr_1.VR.IS,
'300a02a4': vr_1.VR.DS,
'300a02b0': vr_1.VR.SQ,
'300a02b2': vr_1.VR.IS,
'300a02b3': vr_1.VR.SH,
'300a02b4': vr_1.VR.LO,
'300a02b8': vr_1.VR.DS,
'300a02ba': vr_1.VR.DS,
'300a02c8': vr_1.VR.DS,
'300a02d0': vr_1.VR.SQ,
'300a02d2': vr_1.VR.DS,
'300a02d4': vr_1.VR.DS,
'300a02d6': vr_1.VR.DS,
'300a02e0': vr_1.VR.CS,
'300a02e1': vr_1.VR.CS,
'300a02e2': vr_1.VR.DS,
'300a02e3': vr_1.VR.FL,
'300a02e4': vr_1.VR.FL,
'300a02e5': vr_1.VR.FL,
'300a02e6': vr_1.VR.FL,
'300a02e7': vr_1.VR.FL,
'300a02e8': vr_1.VR.FL,
'300a02ea': vr_1.VR.SQ,
'300a02eb': vr_1.VR.LT,
'300a0302': vr_1.VR.IS,
'300a0304': vr_1.VR.IS,
'300a0306': vr_1.VR.SS,
'300a0308': vr_1.VR.CS,
'300a0309': vr_1.VR.CS,
'300a030a': vr_1.VR.FL,
'300a030c': vr_1.VR.SQ,
'300a030d': vr_1.VR.FL,
'300a030f': vr_1.VR.SH,
'300a0312': vr_1.VR.IS,
'300a0314': vr_1.VR.SQ,
'300a0316': vr_1.VR.IS,
'300a0318': vr_1.VR.SH,
'300a0320': vr_1.VR.CS,
'300a0322': vr_1.VR.LO,
'300a0330': vr_1.VR.IS,
'300a0332': vr_1.VR.SQ,
'300a0334': vr_1.VR.IS,
'300a0336': vr_1.VR.SH,
'300a0338': vr_1.VR.CS,
'300a033a': vr_1.VR.LO,
'300a033c': vr_1.VR.FL,
'300a0340': vr_1.VR.IS,
'300a0342': vr_1.VR.SQ,
'300a0344': vr_1.VR.IS,
'300a0346': vr_1.VR.SH,
'300a0348': vr_1.VR.CS,
'300a034a': vr_1.VR.LO,
'300a034c': vr_1.VR.SH,
'300a0350': vr_1.VR.CS,
'300a0352': vr_1.VR.SH,
'300a0354': vr_1.VR.LO,
'300a0355': vr_1.VR.LO,
'300a0356': vr_1.VR.FL,
'300a0358': vr_1.VR.FL,
'300a035a': vr_1.VR.FL,
'300a0360': vr_1.VR.SQ,
'300a0362': vr_1.VR.LO,
'300a0364': vr_1.VR.FL,
'300a0366': vr_1.VR.FL,
'300a0370': vr_1.VR.SQ,
'300a0372': vr_1.VR.LO,
'300a0374': vr_1.VR.FL,
'300a0380': vr_1.VR.SQ,
'300a0382': vr_1.VR.FL,
'300a0384': vr_1.VR.FL,
'300a0386': vr_1.VR.FL,
'300a0388': vr_1.VR.FL,
'300a038a': vr_1.VR.FL,
'300a038f': vr_1.VR.FL,
'300a0390': vr_1.VR.SH,
'300a0391': vr_1.VR.IS,
'300a0392': vr_1.VR.IS,
'300a0393': vr_1.VR.CS,
'300a0394': vr_1.VR.FL,
'300a0395': vr_1.VR.CS,
'300a0396': vr_1.VR.FL,
'300a0398': vr_1.VR.FL,
'300a039a': vr_1.VR.IS,
'300a03a0': vr_1.VR.SQ,
'300a03a2': vr_1.VR.SQ,
'300a03a4': vr_1.VR.SQ,
'300a03a6': vr_1.VR.SQ,
'300a03a8': vr_1.VR.SQ,
'300a03aa': vr_1.VR.SQ,
'300a03ac': vr_1.VR.SQ,
'300a0401': vr_1.VR.SQ,
'300a0402': vr_1.VR.ST,
'300a0410': vr_1.VR.SQ,
'300a0412': vr_1.VR.FL,
'300a0420': vr_1.VR.SQ,
'300a0421': vr_1.VR.SH,
'300a0422': vr_1.VR.ST,
'300a0423': vr_1.VR.CS,
'300a0424': vr_1.VR.IS,
'300a0425': vr_1.VR.FL,
'300a0431': vr_1.VR.SQ,
'300a0432': vr_1.VR.CS,
'300a0433': vr_1.VR.FL,
'300a0434': vr_1.VR.FL,
'300a0435': vr_1.VR.FL,
'300a0436': vr_1.VR.FL,
'300a0440': vr_1.VR.IS,
'300a0441': vr_1.VR.SQ,
'300a0442': vr_1.VR.DS,
'300a0443': vr_1.VR.US,
'300a0450': vr_1.VR.SQ,
'300a0451': vr_1.VR.CS,
'300a0452': vr_1.VR.CS,
'300a0453': vr_1.VR.SQ,
'300a0501': vr_1.VR.FL,
'300a0502': vr_1.VR.FL,
'300a0503': vr_1.VR.FL,
'300a0504': vr_1.VR.FL,
'300a0505': vr_1.VR.SQ,
'300a0506': vr_1.VR.SQ,
'300a0507': vr_1.VR.FL,
'300a0508': vr_1.VR.FL,
'300a0509': vr_1.VR.FL,
'300a0510': vr_1.VR.FL,
'300a0511': vr_1.VR.CS,
'300a0512': vr_1.VR.CS,
'300c0002': vr_1.VR.SQ,
'300c0004': vr_1.VR.SQ,
'300c0006': vr_1.VR.IS,
'300c0007': vr_1.VR.IS,
'300c0008': vr_1.VR.DS,
'300c0009': vr_1.VR.DS,
'300c000a': vr_1.VR.SQ,
'300c000c': vr_1.VR.IS,
'300c000e': vr_1.VR.IS,
'300c0020': vr_1.VR.SQ,
'300c0022': vr_1.VR.IS,
'300c0040': vr_1.VR.SQ,
'300c0042': vr_1.VR.SQ,
'300c0050': vr_1.VR.SQ,
'300c0051': vr_1.VR.IS,
'300c0055': vr_1.VR.SQ,
'300c0060': vr_1.VR.SQ,
'300c006a': vr_1.VR.IS,
'300c0080': vr_1.VR.SQ,
'300c00a0': vr_1.VR.IS,
'300c00b0': vr_1.VR.SQ,
'300c00c0': vr_1.VR.IS,
'300c00d0': vr_1.VR.IS,
'300c00e0': vr_1.VR.IS,
'300c00f0': vr_1.VR.IS,
'300c00f2': vr_1.VR.SQ,
'300c00f4': vr_1.VR.IS,
'300c00f6': vr_1.VR.IS,
'300c0100': vr_1.VR.IS,
'300c0102': vr_1.VR.IS,
'300c0104': vr_1.VR.IS,
'300c0111': vr_1.VR.SQ,
'300c0112': vr_1.VR.CS,
'300c0113': vr_1.VR.LO,
'300e0002': vr_1.VR.CS,
'300e0004': vr_1.VR.DA,
'300e0005': vr_1.VR.TM,
'300e0008': vr_1.VR.PN,
'40000010': vr_1.VR.LT,
'40004000': vr_1.VR.LT,
'40080040': vr_1.VR.SH,
'40080042': vr_1.VR.LO,
'40080050': vr_1.VR.SQ,
'400800ff': vr_1.VR.CS,
'40080100': vr_1.VR.DA,
'40080101': vr_1.VR.TM,
'40080102': vr_1.VR.PN,
'40080103': vr_1.VR.LO,
'40080108': vr_1.VR.DA,
'40080109': vr_1.VR.TM,
'4008010a': vr_1.VR.PN,
'4008010b': vr_1.VR.ST,
'4008010c': vr_1.VR.PN,
'40080111': vr_1.VR.SQ,
'40080112': vr_1.VR.DA,
'40080113': vr_1.VR.TM,
'40080114': vr_1.VR.PN,
'40080115': vr_1.VR.LT,
'40080117': vr_1.VR.SQ,
'40080118': vr_1.VR.SQ,
'40080119': vr_1.VR.PN,
'4008011a': vr_1.VR.LO,
'40080200': vr_1.VR.SH,
'40080202': vr_1.VR.LO,
'40080210': vr_1.VR.CS,
'40080212': vr_1.VR.CS,
'40080300': vr_1.VR.ST,
'40084000': vr_1.VR.ST,
'40100001': vr_1.VR.CS,
'40100002': vr_1.VR.CS,
'40100004': vr_1.VR.SQ,
'40101001': vr_1.VR.SQ,
'40101004': vr_1.VR.FL,
'40101005': vr_1.VR.FL,
'40101006': vr_1.VR.OB,
'40101007': vr_1.VR.SH,
'40101008': vr_1.VR.CS,
'40101009': vr_1.VR.CS,
'4010100a': vr_1.VR.SQ,
'40101010': vr_1.VR.US,
'40101011': vr_1.VR.SQ,
'40101012': vr_1.VR.CS,
'40101013': vr_1.VR.LT,
'40101014': vr_1.VR.CS,
'40101015': vr_1.VR.CS,
'40101016': vr_1.VR.FL,
'40101017': vr_1.VR.FL,
'40101018': vr_1.VR.FL,
'40101019': vr_1.VR.FL,
'4010101a': vr_1.VR.SH,
'4010101b': vr_1.VR.FL,
'4010101c': vr_1.VR.FL,
'4010101d': vr_1.VR.FL,
'4010101e': vr_1.VR.SH,
'4010101f': vr_1.VR.SH,
'40101020': vr_1.VR.CS,
'40101021': vr_1.VR.CS,
'40101023': vr_1.VR.FL,
'40101024': vr_1.VR.CS,
'40101025': vr_1.VR.DT,
'40101026': vr_1.VR.DT,
'40101027': vr_1.VR.CS,
'40101028': vr_1.VR.CS,
'40101029': vr_1.VR.LO,
'4010102a': vr_1.VR.SH,
'4010102b': vr_1.VR.DT,
'40101031': vr_1.VR.CS,
'40101033': vr_1.VR.US,
'40101034': vr_1.VR.US,
'40101037': vr_1.VR.SQ,
'40101038': vr_1.VR.SQ,
'40101039': vr_1.VR.CS,
'4010103a': vr_1.VR.CS,
'40101041': vr_1.VR.DT,
'40101042': vr_1.VR.CS,
'40101043': vr_1.VR.FL,
'40101044': vr_1.VR.CS,
'40101045': vr_1.VR.SQ,
'40101046': vr_1.VR.CS,
'40101047': vr_1.VR.SQ,
'40101048': vr_1.VR.CS,
'40101051': vr_1.VR.LO,
'40101052': vr_1.VR.SH,
'40101053': vr_1.VR.LO,
'40101054': vr_1.VR.SH,
'40101055': vr_1.VR.SH,
'40101056': vr_1.VR.CS,
'40101058': vr_1.VR.SH,
'40101059': vr_1.VR.CS,
'40101060': vr_1.VR.FL,
'40101061': vr_1.VR.FL,
'40101062': vr_1.VR.FL,
'40101064': vr_1.VR.SQ,
'40101067': vr_1.VR.CS,
'40101068': vr_1.VR.LT,
'40101069': vr_1.VR.FL,
'4010106c': vr_1.VR.OB,
'4010106d': vr_1.VR.CS,
'4010106e': vr_1.VR.CS,
'4010106f': vr_1.VR.SQ,
'40101070': vr_1.VR.CS,
'40101071': vr_1.VR.SQ,
'40101072': vr_1.VR.SQ,
'40101073': vr_1.VR.FD,
'40101075': vr_1.VR.DS,
'40101076': vr_1.VR.SQ,
'40101077': vr_1.VR.SQ,
'40101078': vr_1.VR.ST,
'40101079': vr_1.VR.SQ,
'4010107a': vr_1.VR.FL,
'4010107b': vr_1.VR.SQ,
'4010107c': vr_1.VR.CS,
'4010107d': vr_1.VR.SQ,
'4010107e': vr_1.VR.DS,
'4ffe0001': vr_1.VR.SQ,
'50000005': vr_1.VR.US,
'50000010': vr_1.VR.US,
'50000020': vr_1.VR.CS,
'50000022': vr_1.VR.LO,
'50000030': vr_1.VR.SH,
'50000040': vr_1.VR.SH,
'50000103': vr_1.VR.US,
'50000104': vr_1.VR.US,
'50000105': vr_1.VR.US,
'50000106': vr_1.VR.SH,
'50000110': vr_1.VR.US,
'50000112': vr_1.VR.US,
'50000114': vr_1.VR.US,
'50001001': vr_1.VR.CS,
'50002000': vr_1.VR.US,
'50002002': vr_1.VR.US,
'50002004': vr_1.VR.US,
'50002006': vr_1.VR.UL,
'50002008': vr_1.VR.UL,
'5000200a': vr_1.VR.UL,
'5000200c': vr_1.VR.OW,
'5000200e': vr_1.VR.LT,
'50002500': vr_1.VR.LO,
'50002600': vr_1.VR.SQ,
'50002610': vr_1.VR.US,
'50003000': vr_1.VR.OW,
'52009229': vr_1.VR.SQ,
'52009230': vr_1.VR.SQ,
'54000100': vr_1.VR.SQ,
'54000110': vr_1.VR.OW,
'54000112': vr_1.VR.OW,
'54001004': vr_1.VR.US,
'54001006': vr_1.VR.CS,
'5400100a': vr_1.VR.OW,
'54001010': vr_1.VR.OW,
'56000010': vr_1.VR.OF,
'56000020': vr_1.VR.OF,
'60000010': vr_1.VR.US,
'60000011': vr_1.VR.US,
'60000012': vr_1.VR.US,
'60000015': vr_1.VR.IS,
'60000022': vr_1.VR.LO,
'60000040': vr_1.VR.CS,
'60000045': vr_1.VR.LO,
'60000050': vr_1.VR.SS,
'60000051': vr_1.VR.US,
'60000052': vr_1.VR.US,
'60000060': vr_1.VR.CS,
'60000061': vr_1.VR.SH,
'60000062': vr_1.VR.SH,
'60000063': vr_1.VR.CS,
'60000066': vr_1.VR.AT,
'60000068': vr_1.VR.US,
'60000069': vr_1.VR.US,
'60000100': vr_1.VR.US,
'60000102': vr_1.VR.US,
'60000110': vr_1.VR.CS,
'60000200': vr_1.VR.US,
'60000800': vr_1.VR.CS,
'60000802': vr_1.VR.US,
'60000803': vr_1.VR.AT,
'60000804': vr_1.VR.US,
'60001001': vr_1.VR.CS,
'60001100': vr_1.VR.US,
'60001101': vr_1.VR.US,
'60001102': vr_1.VR.US,
'60001103': vr_1.VR.US,
'60001200': vr_1.VR.US,
'60001201': vr_1.VR.US,
'60001202': vr_1.VR.US,
'60001203': vr_1.VR.US,
'60001301': vr_1.VR.IS,
'60001302': vr_1.VR.DS,
'60001303': vr_1.VR.DS,
'60001500': vr_1.VR.LO,
'60003000': vr_1.VR.OW,
'60004000': vr_1.VR.LT,
'7f000010': vr_1.VR.OW,
'7f000011': vr_1.VR.US,
'7f000020': vr_1.VR.OW,
'7f000030': vr_1.VR.OW,
'7f000040': vr_1.VR.OW,
'7fe00008': vr_1.VR.OF,
'7fe00009': vr_1.VR.OD,
'7fe00010': vr_1.VR.OW,
'7fe00020': vr_1.VR.OW,
'7fe00030': vr_1.VR.OW,
'7fe00040': vr_1.VR.OW,
fffafffa: vr_1.VR.SQ,
fffcfffc: vr_1.VR.OB,
};
exports.TagToVR = TagToVR;
/***/ }),
/***/ "./src/tag-tree.ts":
/*!*************************!*\
!*** ./src/tag-tree.ts ***!
\*************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.TagTreeItem = exports.TagTreeAnyItem = exports.TagTreeTag = exports.emptyTagTree = exports.TagTreeTrunk = exports.TagTree = void 0;
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const lookup_1 = __webpack_require__(/*! ./lookup */ "./src/lookup.ts");
const tag_path_1 = __webpack_require__(/*! ./tag-path */ "./src/tag-path.ts");
const tag_path_like_1 = __webpack_require__(/*! ./tag-path-like */ "./src/tag-path-like.ts");
class TagTree extends tag_path_like_1.TagPathLike {
static fromTag(tag) {
return exports.emptyTagTree.thenTag(tag);
}
static fromAnyItem(tag) {
return exports.emptyTagTree.thenAnyItem(tag);
}
static fromItem(tag, item) {
return exports.emptyTagTree.thenItem(tag, item);
}
static fromPath(tagPath) {
let root;
const p = tagPath.head();
if (p instanceof tag_path_1.TagPathTag) {
root = TagTree.fromTag(p.tag());
}
else if (p instanceof tag_path_1.TagPathItem) {
root = TagTree.fromItem(p.tag(), p.item);
}
else if (p instanceof tag_path_1.TagPathItemEnd) {
root = TagTree.fromItem(p.tag(), p.item);
}
else if (p instanceof tag_path_1.TagPathSequence) {
root = TagTree.fromAnyItem(p.tag());
}
else if (p instanceof tag_path_1.TagPathSequenceEnd) {
root = TagTree.fromAnyItem(p.tag());
}
else {
root = exports.emptyTagTree;
}
return tagPath
.drop(1)
.toList()
.reduce((t, p1) => {
if (t instanceof TagTreeTrunk && p1 instanceof tag_path_1.TagPathTag) {
return t.thenTag(p1.tag());
}
if (t instanceof TagTreeTrunk && p1 instanceof tag_path_1.TagPathItem) {
return t.thenItem(p1.tag(), p1.item);
}
if (t instanceof TagTreeTrunk && p1 instanceof tag_path_1.TagPathItemEnd) {
return t.thenItem(p1.tag(), p1.item);
}
if (t instanceof TagTreeTrunk && p1 instanceof tag_path_1.TagPathSequence) {
return t.thenAnyItem(p1.tag());
}
if (t instanceof TagTreeTrunk && p1 instanceof tag_path_1.TagPathSequenceEnd) {
return t.thenAnyItem(p1.tag());
}
return t;
}, root);
}
static parse(str) {
const isSeq = (s) => s[s.length - 1] === ']';
const indexPart = (s) => s.substring(s.lastIndexOf('[') + 1, s.length - 1);
const tagPart = (s) => s.substring(0, s.indexOf('['));
const parseTag = (s) => {
const tag = lookup_1.Lookup.tagOf(s);
if (!tag) {
if (s.length === 11 && s[0] === '(' && s[5] === ',' && s[10] === ')') {
const i = parseInt(s.substring(1, 5) + s.substring(6, 10), 16);
if (!isNaN(i)) {
return i;
}
}
throw Error(s + ' is not a tag or name string');
}
return tag;
};
const parseIndex = (s) => {
if (s === '*') {
return undefined;
}
const i = parseInt(s, 10);
if (isNaN(i)) {
throw Error(s + ' is not a number');
}
return i;
};
const createTag = (s) => TagTree.fromTag(parseTag(s));
const addTag = (s, path) => path.thenTag(parseTag(s));
const createSeq = (s) => {
const tag = parseTag(tagPart(s));
const index = parseIndex(indexPart(s));
return index === undefined ? TagTree.fromAnyItem(tag) : TagTree.fromItem(tag, index);
};
const addSeq = (s, path) => {
const tag = parseTag(tagPart(s));
const index = parseIndex(indexPart(s));
return index === undefined ? path.thenAnyItem(tag) : path.thenItem(tag, index);
};
const tags = str.indexOf('.') > 0 ? str.split('.') : [str];
const seqTags = tags.length > 1 ? tags.slice(0, tags.length - 1) : []; // list of sequence tags, if any
const lastTag = tags[tags.length - 1]; // tag or sequence
try {
const first = seqTags.length > 0 ? seqTags[0] : undefined;
if (first) {
const tree = seqTags
.slice(1, seqTags.length)
.reduce((tr, tag) => addSeq(tag, tr), createSeq(first));
if (tree !== undefined) {
return isSeq(lastTag) ? addSeq(lastTag, tree) : addTag(lastTag, tree);
}
return isSeq(lastTag) ? createSeq(lastTag) : createTag(lastTag);
}
return createTag(lastTag);
}
catch (error) {
throw Error('Tag tree could not be parsed: ' + error.message);
}
}
constructor(tag, previous) {
super();
this.tagVal = tag;
this.previousVal = previous;
}
tag() {
return this.tagVal;
}
previous() {
return this.previousVal;
}
isEmpty() {
return this === exports.emptyTagTree;
}
isEqualTo(that) {
if (this.isEmpty() && that.isEmpty()) {
return true;
}
if (this instanceof TagTreeTag && that instanceof TagTreeTag) {
return this.tag() === that.tag() && this.previous().isEqualTo(that.previous());
}
if (this instanceof TagTreeItem && that instanceof TagTreeItem) {
return this.tag() === that.tag() && this.item === that.item && this.previous().isEqualTo(that.previous());
}
if (this instanceof TagTreeAnyItem && that instanceof TagTreeAnyItem) {
return this.tag() === that.tag() && this.previous().isEqualTo(that.previous());
}
return false;
}
isPath() {
if (this.isEmpty()) {
return true;
}
if (this instanceof TagTreeAnyItem) {
return false;
}
return this.previous().isPath();
}
hasPath(tagPath) {
if (this.isEmpty() && tagPath.isEmpty()) {
return true;
}
if (this instanceof TagTreeTag && tagPath instanceof tag_path_1.TagPathTag) {
return this.tag() === tagPath.tag() && this.previous().hasPath(tagPath.previous());
}
if (this instanceof TagTreeItem && 'item' in tagPath) {
return (this.item === tagPath.item &&
this.tag() === tagPath.tag() &&
this.previous().hasPath(tagPath.previous()));
}
if (this instanceof TagTreeAnyItem && 'item' in tagPath) {
return (this.tag() === tagPath.tag() && this.previous().hasPath(tagPath.previous()));
}
if (this instanceof TagTreeAnyItem && tagPath instanceof tag_path_1.TagPathSequence) {
return this.tag() === tagPath.tag() && this.previous().hasPath(tagPath.previous());
}
if (this instanceof TagTreeAnyItem && tagPath instanceof tag_path_1.TagPathSequenceEnd) {
return this.tag() === tagPath.tag() && this.previous().hasPath(tagPath.previous());
}
return false;
}
hasTrunk(tagPath) {
if (this.depth() >= tagPath.depth()) {
const thisList = this.toList();
const thatList = tagPath.toList();
for (let i = 0; i < Math.min(thisList.length, thatList.length); i++) {
const t = thisList[i];
const p = thatList[i];
let check = false;
if (p.isEmpty()) {
check = true;
}
else if (t instanceof TagTreeItem && 'item' in p) {
check = t.tag() === p.tag() && t.item === p.item;
}
else if (t instanceof TagTreeItem && p instanceof tag_path_1.TagPathSequence) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeItem && p instanceof tag_path_1.TagPathSequenceEnd) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeAnyItem && p.item !== undefined) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeAnyItem && p instanceof tag_path_1.TagPathSequence) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeAnyItem && p instanceof tag_path_1.TagPathSequenceEnd) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeTag && p instanceof tag_path_1.TagPathTag) {
check = t.tag() === p.tag();
}
if (!check) {
return false;
}
}
return true;
}
else {
return false;
}
}
isTrunkOf(tagPath) {
if (this.depth() <= tagPath.depth()) {
const thisList = this.toList();
const thatList = tagPath.toList();
for (let i = 0; i < Math.min(thisList.length, thatList.length); i++) {
const t = thisList[i];
const p = thatList[i];
let check = false;
if (p.isEmpty()) {
check = true;
}
else if (t instanceof TagTreeItem && 'item' in p) {
check = t.tag() === p.tag() && t.item === p.item;
}
else if (t instanceof TagTreeAnyItem && 'item' in p) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeAnyItem && p instanceof tag_path_1.TagPathSequence) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeAnyItem && p instanceof tag_path_1.TagPathSequenceEnd) {
check = t.tag() === p.tag();
}
else if (t instanceof TagTreeTag && p instanceof tag_path_1.TagPathTag) {
check = t.tag() === p.tag();
}
if (!check) {
return false;
}
}
return true;
}
else {
return false;
}
}
hasTwig(tagPath) {
let check = false;
if (this.isEmpty() && tagPath.isEmpty()) {
check = true;
}
else if (this instanceof TagTreeAnyItem && 'item' in tagPath) {
check = this.tag() === tagPath.tag();
}
else if (this instanceof TagTreeAnyItem && tagPath instanceof tag_path_1.TagPathSequence) {
check = this.tag() === tagPath.tag();
}
else if (this instanceof TagTreeAnyItem && tagPath instanceof tag_path_1.TagPathSequenceEnd) {
check = this.tag() === tagPath.tag();
}
else if (this instanceof TagTreeItem && 'item' in tagPath) {
check = this.tag() === tagPath.tag() && this.item === tagPath.item;
}
else if (this instanceof TagTreeTag && tagPath instanceof tag_path_1.TagPathTag) {
check = this.tag() === tagPath.tag();
}
if (tagPath.previous().isEmpty()) {
return check;
}
else if (this.previous().isEmpty()) {
return false;
}
return check && this.previous().hasTwig(tagPath.previous());
}
drop(n) {
const dropRec = (tree, i) => {
if (i < 0) {
return exports.emptyTagTree;
}
if (i === 0) {
if (tree.isEmpty()) {
return exports.emptyTagTree;
}
if (tree instanceof TagTreeItem) {
return TagTree.fromItem(tree.tag(), tree.item);
}
if (tree instanceof TagTreeAnyItem) {
return TagTree.fromAnyItem(tree.tag());
}
return TagTree.fromTag(tree.tag());
}
const t = dropRec(tree.previous(), i - 1);
if (tree instanceof TagTreeItem) {
return t.thenItem(tree.tag(), tree.item);
}
if (tree instanceof TagTreeAnyItem) {
return t.thenAnyItem(tree.tag());
}
if (tree instanceof TagTreeTag) {
return t.thenTag(tree.tag());
}
return exports.emptyTagTree;
};
return dropRec(this, this.depth() - n - 1);
}
toNamedString(lookup) {
const toTagString = (tag) => {
if (lookup) {
const keyword = lookup_1.Lookup.keywordOf(tag);
if (keyword) {
return keyword;
}
}
return (0, base_1.tagToString)(tag);
};
const toTagTreeString = (tree, tail) => {
const itemIndexSuffix = tree instanceof TagTreeAnyItem ? '[*]' : 'item' in tree ? '[' + tree.item + ']' : '';
const head = toTagString(tree.tag()) + itemIndexSuffix;
const part = head + tail;
return tree.isRoot() ? part : toTagTreeString(tree.previous(), '.' + part);
};
return this.isEmpty() ? '<empty tree>' : toTagTreeString(this, '');
}
}
exports.TagTree = TagTree;
class TagTreeTrunk extends TagTree {
thenTag(tag) {
return new TagTreeTag(tag, this);
}
thenAnyItem(tag) {
return new TagTreeAnyItem(tag, this);
}
thenItem(tag, item) {
return new TagTreeItem(tag, item, this);
}
}
exports.TagTreeTrunk = TagTreeTrunk;
class EmptyTagTree extends TagTreeTrunk {
tag() {
throw Error('Empty tag tree');
}
previous() {
return exports.emptyTagTree;
}
}
exports.emptyTagTree = new EmptyTagTree(-1, null);
class TagTreeTag extends TagTree {
constructor(tag, previous) {
super(tag, previous);
}
}
exports.TagTreeTag = TagTreeTag;
class TagTreeAnyItem extends TagTreeTrunk {
constructor(tag, previous) {
super(tag, previous);
}
}
exports.TagTreeAnyItem = TagTreeAnyItem;
class TagTreeItem extends TagTreeTrunk {
constructor(tag, item, previous) {
super(tag, previous);
this.item = item;
}
}
exports.TagTreeItem = TagTreeItem;
/***/ }),
/***/ "./src/tag.ts":
/*!********************!*\
!*** ./src/tag.ts ***!
\********************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.Tag = void 0;
exports.Tag = {
// command elements
CommandGroupLength: 0x00000000,
AffectedSOPClassUID: 0x00000002,
RequestedSOPClassUID: 0x00000003,
CommandField: 0x00000100,
MessageID: 0x00000110,
MessageIDBeingRespondedTo: 0x00000120,
MoveDestination: 0x00000600,
Priority: 0x00000700,
CommandDataSetType: 0x00000800,
Status: 0x00000900,
OffendingElement: 0x00000901,
ErrorComment: 0x00000902,
ErrorID: 0x00000903,
AffectedSOPInstanceUID: 0x00001000,
RequestedSOPInstanceUID: 0x00001001,
EventTypeID: 0x00001002,
AttributeIdentifierList: 0x00001005,
ActionTypeID: 0x00001008,
NumberOfRemainingSuboperations: 0x00001020,
NumberOfCompletedSuboperations: 0x00001021,
NumberOfFailedSuboperations: 0x00001022,
NumberOfWarningSuboperations: 0x00001023,
MoveOriginatorApplicationEntityTitle: 0x00001030,
MoveOriginatorMessageID: 0x00001031,
// file meta elements
FileMetaInformationGroupLength: 0x00020000,
FileMetaInformationVersion: 0x00020001,
MediaStorageSOPClassUID: 0x00020002,
MediaStorageSOPInstanceUID: 0x00020003,
TransferSyntaxUID: 0x00020010,
ImplementationClassUID: 0x00020012,
ImplementationVersionName: 0x00020013,
SourceApplicationEntityTitle: 0x00020016,
SendingApplicationEntityTitle: 0x00020017,
ReceivingApplicationEntityTitle: 0x00020018,
PrivateInformationCreatorUID: 0x00020100,
PrivateInformation: 0x00020102,
// directory elements
FileSetID: 0x00041130,
FileSetDescriptorFileID: 0x00041141,
SpecificCharacterSetOfFileSetDescriptorFile: 0x00041142,
OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity: 0x00041200,
OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity: 0x00041202,
FileSetConsistencyFlag: 0x00041212,
DirectoryRecordSequence: 0x00041220,
OffsetOfTheNextDirectoryRecord: 0x00041400,
RecordInUseFlag: 0x00041410,
OffsetOfReferencedLowerLevelDirectoryEntity: 0x00041420,
DirectoryRecordType: 0x00041430,
PrivateRecordUID: 0x00041432,
ReferencedFileID: 0x00041500,
MRDRDirectoryRecordOffset: 0x00041504,
ReferencedSOPClassUIDInFile: 0x00041510,
ReferencedSOPInstanceUIDInFile: 0x00041511,
ReferencedTransferSyntaxUIDInFile: 0x00041512,
ReferencedRelatedGeneralSOPClassUIDInFile: 0x0004151a,
NumberOfReferences: 0x00041600,
// data elements
LengthToEnd: 0x00080001,
SpecificCharacterSet: 0x00080005,
LanguageCodeSequence: 0x00080006,
ImageType: 0x00080008,
RecognitionCode: 0x00080010,
InstanceCreationDate: 0x00080012,
InstanceCreationTime: 0x00080013,
InstanceCreatorUID: 0x00080014,
InstanceCoercionDateTime: 0x00080015,
SOPClassUID: 0x00080016,
SOPInstanceUID: 0x00080018,
RelatedGeneralSOPClassUID: 0x0008001a,
OriginalSpecializedSOPClassUID: 0x0008001b,
StudyDate: 0x00080020,
SeriesDate: 0x00080021,
AcquisitionDate: 0x00080022,
ContentDate: 0x00080023,
OverlayDate: 0x00080024,
CurveDate: 0x00080025,
AcquisitionDateTime: 0x0008002a,
StudyTime: 0x00080030,
SeriesTime: 0x00080031,
AcquisitionTime: 0x00080032,
ContentTime: 0x00080033,
OverlayTime: 0x00080034,
CurveTime: 0x00080035,
DataSetType: 0x00080040,
DataSetSubtype: 0x00080041,
NuclearMedicineSeriesType: 0x00080042,
AccessionNumber: 0x00080050,
IssuerOfAccessionNumberSequence: 0x00080051,
QueryRetrieveLevel: 0x00080052,
QueryRetrieveView: 0x00080053,
RetrieveAETitle: 0x00080054,
StationAETitle: 0x00080055,
InstanceAvailability: 0x00080056,
FailedSOPInstanceUIDList: 0x00080058,
Modality: 0x00080060,
ModalitiesInStudy: 0x00080061,
SOPClassesInStudy: 0x00080062,
AnatomicRegionsInStudyCodeSequence: 0x00080063,
ConversionType: 0x00080064,
PresentationIntentType: 0x00080068,
Manufacturer: 0x00080070,
InstitutionName: 0x00080080,
InstitutionAddress: 0x00080081,
InstitutionCodeSequence: 0x00080082,
ReferringPhysicianName: 0x00080090,
ReferringPhysicianAddress: 0x00080092,
ReferringPhysicianTelephoneNumbers: 0x00080094,
ReferringPhysicianIdentificationSequence: 0x00080096,
ConsultingPhysicianName: 0x0008009c,
ConsultingPhysicianIdentificationSequence: 0x0008009d,
CodeValue: 0x00080100,
ExtendedCodeValue: 0x00080101,
CodingSchemeDesignator: 0x00080102,
CodingSchemeVersion: 0x00080103,
CodeMeaning: 0x00080104,
MappingResource: 0x00080105,
ContextGroupVersion: 0x00080106,
ContextGroupLocalVersion: 0x00080107,
ExtendedCodeMeaning: 0x00080108,
CodingSchemeResourcesSequence: 0x00080109,
CodingSchemeURLType: 0x0008010a,
ContextGroupExtensionFlag: 0x0008010b,
CodingSchemeUID: 0x0008010c,
ContextGroupExtensionCreatorUID: 0x0008010d,
CodingSchemeURL: 0x0008010e,
ContextIdentifier: 0x0008010f,
CodingSchemeIdentificationSequence: 0x00080110,
CodingSchemeRegistry: 0x00080112,
CodingSchemeExternalID: 0x00080114,
CodingSchemeName: 0x00080115,
CodingSchemeResponsibleOrganization: 0x00080116,
ContextUID: 0x00080117,
MappingResourceUID: 0x00080118,
LongCodeValue: 0x00080119,
URNCodeValue: 0x00080120,
EquivalentCodeSequence: 0x00080121,
MappingResourceName: 0x00080122,
ContextGroupIdentificationSequence: 0x00080123,
MappingResourceIdentificationSequence: 0x00080124,
TimezoneOffsetFromUTC: 0x00080201,
ResponsibleGroupCodeSequence: 0x00080220,
EquipmentModality: 0x00080221,
ManufacturerRelatedModelGroup: 0x00080222,
PrivateDataElementCharacteristicsSequence: 0x00080300,
PrivateGroupReference: 0x00080301,
PrivateCreatorReference: 0x00080302,
BlockIdentifyingInformationStatus: 0x00080303,
NonidentifyingPrivateElements: 0x00080304,
IdentifyingPrivateElements: 0x00080306,
DeidentificationActionSequence: 0x00080305,
DeidentificationAction: 0x00080307,
PrivateDataElement: 0x00080308,
PrivateDataElementValueMultiplicity: 0x00080309,
PrivateDataElementValueRepresentation: 0x0008030a,
PrivateDataElementNumberOfItems: 0x0008030b,
PrivateDataElementName: 0x0008030c,
PrivateDataElementKeyword: 0x0008030d,
PrivateDataElementDescription: 0x0008030e,
PrivateDataElementEncoding: 0x0008030f,
PrivateDataElementDefinitionSequence: 0x00080310,
NetworkID: 0x00081000,
StationName: 0x00081010,
StudyDescription: 0x00081030,
ProcedureCodeSequence: 0x00081032,
SeriesDescription: 0x0008103e,
SeriesDescriptionCodeSequence: 0x0008103f,
InstitutionalDepartmentName: 0x00081040,
PhysiciansOfRecord: 0x00081048,
PhysiciansOfRecordIdentificationSequence: 0x00081049,
PerformingPhysicianName: 0x00081050,
PerformingPhysicianIdentificationSequence: 0x00081052,
NameOfPhysiciansReadingStudy: 0x00081060,
PhysiciansReadingStudyIdentificationSequence: 0x00081062,
OperatorsName: 0x00081070,
OperatorIdentificationSequence: 0x00081072,
AdmittingDiagnosesDescription: 0x00081080,
AdmittingDiagnosesCodeSequence: 0x00081084,
ManufacturerModelName: 0x00081090,
ReferencedResultsSequence: 0x00081100,
ReferencedStudySequence: 0x00081110,
ReferencedPerformedProcedureStepSequence: 0x00081111,
ReferencedSeriesSequence: 0x00081115,
ReferencedPatientSequence: 0x00081120,
ReferencedVisitSequence: 0x00081125,
ReferencedOverlaySequence: 0x00081130,
ReferencedStereometricInstanceSequence: 0x00081134,
ReferencedWaveformSequence: 0x0008113a,
ReferencedImageSequence: 0x00081140,
ReferencedCurveSequence: 0x00081145,
ReferencedInstanceSequence: 0x0008114a,
ReferencedRealWorldValueMappingInstanceSequence: 0x0008114b,
ReferencedSOPClassUID: 0x00081150,
ReferencedSOPInstanceUID: 0x00081155,
DefinitionSourceSequence: 0x00081156,
SOPClassesSupported: 0x0008115a,
ReferencedFrameNumber: 0x00081160,
SimpleFrameList: 0x00081161,
CalculatedFrameList: 0x00081162,
TimeRange: 0x00081163,
FrameExtractionSequence: 0x00081164,
MultiFrameSourceSOPInstanceUID: 0x00081167,
RetrieveURL: 0x00081190,
TransactionUID: 0x00081195,
WarningReason: 0x00081196,
FailureReason: 0x00081197,
FailedSOPSequence: 0x00081198,
ReferencedSOPSequence: 0x00081199,
OtherFailuresSequence: 0x0008119a,
StudiesContainingOtherReferencedInstancesSequence: 0x00081200,
RelatedSeriesSequence: 0x00081250,
LossyImageCompressionRetired: 0x00082110,
DerivationDescription: 0x00082111,
SourceImageSequence: 0x00082112,
StageName: 0x00082120,
StageNumber: 0x00082122,
NumberOfStages: 0x00082124,
ViewName: 0x00082127,
ViewNumber: 0x00082128,
NumberOfEventTimers: 0x00082129,
NumberOfViewsInStage: 0x0008212a,
EventElapsedTimes: 0x00082130,
EventTimerNames: 0x00082132,
EventTimerSequence: 0x00082133,
EventTimeOffset: 0x00082134,
EventCodeSequence: 0x00082135,
StartTrim: 0x00082142,
StopTrim: 0x00082143,
RecommendedDisplayFrameRate: 0x00082144,
TransducerPosition: 0x00082200,
TransducerOrientation: 0x00082204,
AnatomicStructure: 0x00082208,
AnatomicRegionSequence: 0x00082218,
AnatomicRegionModifierSequence: 0x00082220,
PrimaryAnatomicStructureSequence: 0x00082228,
AnatomicStructureSpaceOrRegionSequence: 0x00082229,
PrimaryAnatomicStructureModifierSequence: 0x00082230,
TransducerPositionSequence: 0x00082240,
TransducerPositionModifierSequence: 0x00082242,
TransducerOrientationSequence: 0x00082244,
TransducerOrientationModifierSequence: 0x00082246,
AnatomicStructureSpaceOrRegionCodeSequenceTrial: 0x00082251,
AnatomicPortalOfEntranceCodeSequenceTrial: 0x00082253,
AnatomicApproachDirectionCodeSequenceTrial: 0x00082255,
AnatomicPerspectiveDescriptionTrial: 0x00082256,
AnatomicPerspectiveCodeSequenceTrial: 0x00082257,
AnatomicLocationOfExaminingInstrumentDescriptionTrial: 0x00082258,
AnatomicLocationOfExaminingInstrumentCodeSequenceTrial: 0x00082259,
AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial: 0x0008225a,
OnAxisBackgroundAnatomicStructureCodeSequenceTrial: 0x0008225c,
AlternateRepresentationSequence: 0x00083001,
IrradiationEventUID: 0x00083010,
SourceIrradiationEventSequence: 0x00083011,
RadiopharmaceuticalAdministrationEventUID: 0x00083012,
IdentifyingComments: 0x00084000,
FrameType: 0x00089007,
ReferencedImageEvidenceSequence: 0x00089092,
ReferencedRawDataSequence: 0x00089121,
CreatorVersionUID: 0x00089123,
DerivationImageSequence: 0x00089124,
SourceImageEvidenceSequence: 0x00089154,
PixelPresentation: 0x00089205,
VolumetricProperties: 0x00089206,
VolumeBasedCalculationTechnique: 0x00089207,
ComplexImageComponent: 0x00089208,
AcquisitionContrast: 0x00089209,
DerivationCodeSequence: 0x00089215,
ReferencedPresentationStateSequence: 0x00089237,
ReferencedOtherPlaneSequence: 0x00089410,
FrameDisplaySequence: 0x00089458,
RecommendedDisplayFrameRateInFloat: 0x00089459,
SkipFrameRangeFlag: 0x00089460,
PatientName: 0x00100010,
PatientID: 0x00100020,
IssuerOfPatientID: 0x00100021,
TypeOfPatientID: 0x00100022,
IssuerOfPatientIDQualifiersSequence: 0x00100024,
SourcePatientGroupIdentificationSequence: 0x00100026,
GroupOfPatientsIdentificationSequence: 0x00100027,
SubjectRelativePositionInImage: 0x00100028,
PatientBirthDate: 0x00100030,
PatientBirthTime: 0x00100032,
PatientBirthDateInAlternativeCalendar: 0x00100033,
PatientDeathDateInAlternativeCalendar: 0x00100034,
PatientAlternativeCalendar: 0x00100035,
PatientSex: 0x00100040,
PatientInsurancePlanCodeSequence: 0x00100050,
PatientPrimaryLanguageCodeSequence: 0x00100101,
PatientPrimaryLanguageModifierCodeSequence: 0x00100102,
QualityControlSubject: 0x00100200,
QualityControlSubjectTypeCodeSequence: 0x00100201,
StrainDescription: 0x00100212,
StrainNomenclature: 0x00100213,
StrainStockNumber: 0x00100214,
StrainSourceRegistryCodeSequence: 0x00100215,
StrainStockSequence: 0x00100216,
StrainSource: 0x00100217,
StrainAdditionalInformation: 0x00100218,
StrainCodeSequence: 0x00100219,
GeneticModificationsSequence: 0x00100221,
GeneticModificationsDescription: 0x00100222,
GeneticModificationsNomenclature: 0x00100223,
GeneticModificationsCodeSequence: 0x00100229,
OtherPatientIDs: 0x00101000,
OtherPatientNames: 0x00101001,
OtherPatientIDsSequence: 0x00101002,
PatientBirthName: 0x00101005,
PatientAge: 0x00101010,
PatientSize: 0x00101020,
PatientSizeCodeSequence: 0x00101021,
PatientBodyMassIndex: 0x00101022,
MeasuredAPDimension: 0x00101023,
MeasuredLateralDimension: 0x00101024,
PatientWeight: 0x00101030,
PatientAddress: 0x00101040,
InsurancePlanIdentification: 0x00101050,
PatientMotherBirthName: 0x00101060,
MilitaryRank: 0x00101080,
BranchOfService: 0x00101081,
MedicalRecordLocator: 0x00101090,
ReferencedPatientPhotoSequence: 0x00101100,
MedicalAlerts: 0x00102000,
Allergies: 0x00102110,
CountryOfResidence: 0x00102150,
RegionOfResidence: 0x00102152,
PatientTelephoneNumbers: 0x00102154,
PatientTelecomInformation: 0x00102155,
EthnicGroup: 0x00102160,
Occupation: 0x00102180,
SmokingStatus: 0x001021a0,
AdditionalPatientHistory: 0x001021b0,
PregnancyStatus: 0x001021c0,
LastMenstrualDate: 0x001021d0,
PatientReligiousPreference: 0x001021f0,
PatientSpeciesDescription: 0x00102201,
PatientSpeciesCodeSequence: 0x00102202,
PatientSexNeutered: 0x00102203,
AnatomicalOrientationType: 0x00102210,
PatientBreedDescription: 0x00102292,
PatientBreedCodeSequence: 0x00102293,
BreedRegistrationSequence: 0x00102294,
BreedRegistrationNumber: 0x00102295,
BreedRegistryCodeSequence: 0x00102296,
ResponsiblePerson: 0x00102297,
ResponsiblePersonRole: 0x00102298,
ResponsibleOrganization: 0x00102299,
PatientComments: 0x00104000,
ExaminedBodyThickness: 0x00109431,
ClinicalTrialSponsorName: 0x00120010,
ClinicalTrialProtocolID: 0x00120020,
ClinicalTrialProtocolName: 0x00120021,
ClinicalTrialSiteID: 0x00120030,
ClinicalTrialSiteName: 0x00120031,
ClinicalTrialSubjectID: 0x00120040,
ClinicalTrialSubjectReadingID: 0x00120042,
ClinicalTrialTimePointID: 0x00120050,
ClinicalTrialTimePointDescription: 0x00120051,
LongitudinalTemporalOffsetFromEvent: 0x00120052,
LongitudinalTemporalEventType: 0x00120053,
ClinicalTrialCoordinatingCenterName: 0x00120060,
PatientIdentityRemoved: 0x00120062,
DeidentificationMethod: 0x00120063,
DeidentificationMethodCodeSequence: 0x00120064,
ClinicalTrialSeriesID: 0x00120071,
ClinicalTrialSeriesDescription: 0x00120072,
ClinicalTrialProtocolEthicsCommitteeName: 0x00120081,
ClinicalTrialProtocolEthicsCommitteeApprovalNumber: 0x00120082,
ConsentForClinicalTrialUseSequence: 0x00120083,
DistributionType: 0x00120084,
ConsentForDistributionFlag: 0x00120085,
EthicsCommitteeApprovalEffectivenessStartDate: 0x00120086,
EthicsCommitteeApprovalEffectivenessEndDate: 0x00120087,
CADFileFormat: 0x00140023,
ComponentReferenceSystem: 0x00140024,
ComponentManufacturingProcedure: 0x00140025,
ComponentManufacturer: 0x00140028,
MaterialThickness: 0x00140030,
MaterialPipeDiameter: 0x00140032,
MaterialIsolationDiameter: 0x00140034,
MaterialGrade: 0x00140042,
MaterialPropertiesDescription: 0x00140044,
MaterialPropertiesFileFormatRetired: 0x00140045,
MaterialNotes: 0x00140046,
ComponentShape: 0x00140050,
CurvatureType: 0x00140052,
OuterDiameter: 0x00140054,
InnerDiameter: 0x00140056,
ComponentWelderIDs: 0x00140100,
SecondaryApprovalStatus: 0x00140101,
SecondaryReviewDate: 0x00140102,
SecondaryReviewTime: 0x00140103,
SecondaryReviewerName: 0x00140104,
RepairID: 0x00140105,
MultipleComponentApprovalSequence: 0x00140106,
OtherApprovalStatus: 0x00140107,
OtherSecondaryApprovalStatus: 0x00140108,
ActualEnvironmentalConditions: 0x00141010,
ExpiryDate: 0x00141020,
EnvironmentalConditions: 0x00141040,
EvaluatorSequence: 0x00142002,
EvaluatorNumber: 0x00142004,
EvaluatorName: 0x00142006,
EvaluationAttempt: 0x00142008,
IndicationSequence: 0x00142012,
IndicationNumber: 0x00142014,
IndicationLabel: 0x00142016,
IndicationDescription: 0x00142018,
IndicationType: 0x0014201a,
IndicationDisposition: 0x0014201c,
IndicationROISequence: 0x0014201e,
IndicationPhysicalPropertySequence: 0x00142030,
PropertyLabel: 0x00142032,
CoordinateSystemNumberOfAxes: 0x00142202,
CoordinateSystemAxesSequence: 0x00142204,
CoordinateSystemAxisDescription: 0x00142206,
CoordinateSystemDataSetMapping: 0x00142208,
CoordinateSystemAxisNumber: 0x0014220a,
CoordinateSystemAxisType: 0x0014220c,
CoordinateSystemAxisUnits: 0x0014220e,
CoordinateSystemAxisValues: 0x00142210,
CoordinateSystemTransformSequence: 0x00142220,
TransformDescription: 0x00142222,
TransformNumberOfAxes: 0x00142224,
TransformOrderOfAxes: 0x00142226,
TransformedAxisUnits: 0x00142228,
CoordinateSystemTransformRotationAndScaleMatrix: 0x0014222a,
CoordinateSystemTransformTranslationMatrix: 0x0014222c,
InternalDetectorFrameTime: 0x00143011,
NumberOfFramesIntegrated: 0x00143012,
DetectorTemperatureSequence: 0x00143020,
SensorName: 0x00143022,
HorizontalOffsetOfSensor: 0x00143024,
VerticalOffsetOfSensor: 0x00143026,
SensorTemperature: 0x00143028,
DarkCurrentSequence: 0x00143040,
DarkCurrentCounts: 0x00143050,
GainCorrectionReferenceSequence: 0x00143060,
AirCounts: 0x00143070,
KVUsedInGainCalibration: 0x00143071,
MAUsedInGainCalibration: 0x00143072,
NumberOfFramesUsedForIntegration: 0x00143073,
FilterMaterialUsedInGainCalibration: 0x00143074,
FilterThicknessUsedInGainCalibration: 0x00143075,
DateOfGainCalibration: 0x00143076,
TimeOfGainCalibration: 0x00143077,
BadPixelImage: 0x00143080,
CalibrationNotes: 0x00143099,
PulserEquipmentSequence: 0x00144002,
PulserType: 0x00144004,
PulserNotes: 0x00144006,
ReceiverEquipmentSequence: 0x00144008,
AmplifierType: 0x0014400a,
ReceiverNotes: 0x0014400c,
PreAmplifierEquipmentSequence: 0x0014400e,
PreAmplifierNotes: 0x0014400f,
TransmitTransducerSequence: 0x00144010,
ReceiveTransducerSequence: 0x00144011,
NumberOfElements: 0x00144012,
ElementShape: 0x00144013,
ElementDimensionA: 0x00144014,
ElementDimensionB: 0x00144015,
ElementPitchA: 0x00144016,
MeasuredBeamDimensionA: 0x00144017,
MeasuredBeamDimensionB: 0x00144018,
LocationOfMeasuredBeamDiameter: 0x00144019,
NominalFrequency: 0x0014401a,
MeasuredCenterFrequency: 0x0014401b,
MeasuredBandwidth: 0x0014401c,
ElementPitchB: 0x0014401d,
PulserSettingsSequence: 0x00144020,
PulseWidth: 0x00144022,
ExcitationFrequency: 0x00144024,
ModulationType: 0x00144026,
Damping: 0x00144028,
ReceiverSettingsSequence: 0x00144030,
AcquiredSoundpathLength: 0x00144031,
AcquisitionCompressionType: 0x00144032,
AcquisitionSampleSize: 0x00144033,
RectifierSmoothing: 0x00144034,
DACSequence: 0x00144035,
DACType: 0x00144036,
DACGainPoints: 0x00144038,
DACTimePoints: 0x0014403a,
DACAmplitude: 0x0014403c,
PreAmplifierSettingsSequence: 0x00144040,
TransmitTransducerSettingsSequence: 0x00144050,
ReceiveTransducerSettingsSequence: 0x00144051,
IncidentAngle: 0x00144052,
CouplingTechnique: 0x00144054,
CouplingMedium: 0x00144056,
CouplingVelocity: 0x00144057,
ProbeCenterLocationX: 0x00144058,
ProbeCenterLocationZ: 0x00144059,
SoundPathLength: 0x0014405a,
DelayLawIdentifier: 0x0014405c,
GateSettingsSequence: 0x00144060,
GateThreshold: 0x00144062,
VelocityOfSound: 0x00144064,
CalibrationSettingsSequence: 0x00144070,
CalibrationProcedure: 0x00144072,
ProcedureVersion: 0x00144074,
ProcedureCreationDate: 0x00144076,
ProcedureExpirationDate: 0x00144078,
ProcedureLastModifiedDate: 0x0014407a,
CalibrationTime: 0x0014407c,
CalibrationDate: 0x0014407e,
ProbeDriveEquipmentSequence: 0x00144080,
DriveType: 0x00144081,
ProbeDriveNotes: 0x00144082,
DriveProbeSequence: 0x00144083,
ProbeInductance: 0x00144084,
ProbeResistance: 0x00144085,
ReceiveProbeSequence: 0x00144086,
ProbeDriveSettingsSequence: 0x00144087,
BridgeResistors: 0x00144088,
ProbeOrientationAngle: 0x00144089,
UserSelectedGainY: 0x0014408b,
UserSelectedPhase: 0x0014408c,
UserSelectedOffsetX: 0x0014408d,
UserSelectedOffsetY: 0x0014408e,
ChannelSettingsSequence: 0x00144091,
ChannelThreshold: 0x00144092,
ScannerSettingsSequence: 0x0014409a,
ScanProcedure: 0x0014409b,
TranslationRateX: 0x0014409c,
TranslationRateY: 0x0014409d,
ChannelOverlap: 0x0014409f,
ImageQualityIndicatorType: 0x001440a0,
ImageQualityIndicatorMaterial: 0x001440a1,
ImageQualityIndicatorSize: 0x001440a2,
LINACEnergy: 0x00145002,
LINACOutput: 0x00145004,
ActiveAperture: 0x00145100,
TotalAperture: 0x00145101,
ApertureElevation: 0x00145102,
MainLobeAngle: 0x00145103,
MainRoofAngle: 0x00145104,
ConnectorType: 0x00145105,
WedgeModelNumber: 0x00145106,
WedgeAngleFloat: 0x00145107,
WedgeRoofAngle: 0x00145108,
WedgeElement1Position: 0x00145109,
WedgeMaterialVelocity: 0x0014510a,
WedgeMaterial: 0x0014510b,
WedgeOffsetZ: 0x0014510c,
WedgeOriginOffsetX: 0x0014510d,
WedgeTimeDelay: 0x0014510e,
WedgeName: 0x0014510f,
WedgeManufacturerName: 0x00145110,
WedgeDescription: 0x00145111,
NominalBeamAngle: 0x00145112,
WedgeOffsetX: 0x00145113,
WedgeOffsetY: 0x00145114,
WedgeTotalLength: 0x00145115,
WedgeInContactLength: 0x00145116,
WedgeFrontGap: 0x00145117,
WedgeTotalHeight: 0x00145118,
WedgeFrontHeight: 0x00145119,
WedgeRearHeight: 0x0014511a,
WedgeTotalWidth: 0x0014511b,
WedgeInContactWidth: 0x0014511c,
WedgeChamferHeight: 0x0014511d,
WedgeCurve: 0x0014511e,
RadiusAlongWedge: 0x0014511f,
ContrastBolusAgent: 0x00180010,
ContrastBolusAgentSequence: 0x00180012,
ContrastBolusT1Relaxivity: 0x00180013,
ContrastBolusAdministrationRouteSequence: 0x00180014,
BodyPartExamined: 0x00180015,
ScanningSequence: 0x00180020,
SequenceVariant: 0x00180021,
ScanOptions: 0x00180022,
MRAcquisitionType: 0x00180023,
SequenceName: 0x00180024,
AngioFlag: 0x00180025,
InterventionDrugInformationSequence: 0x00180026,
InterventionDrugStopTime: 0x00180027,
InterventionDrugDose: 0x00180028,
InterventionDrugCodeSequence: 0x00180029,
AdditionalDrugSequence: 0x0018002a,
Radionuclide: 0x00180030,
Radiopharmaceutical: 0x00180031,
EnergyWindowCenterline: 0x00180032,
EnergyWindowTotalWidth: 0x00180033,
InterventionDrugName: 0x00180034,
InterventionDrugStartTime: 0x00180035,
InterventionSequence: 0x00180036,
TherapyType: 0x00180037,
InterventionStatus: 0x00180038,
TherapyDescription: 0x00180039,
InterventionDescription: 0x0018003a,
CineRate: 0x00180040,
InitialCineRunState: 0x00180042,
SliceThickness: 0x00180050,
KVP: 0x00180060,
CountsAccumulated: 0x00180070,
AcquisitionTerminationCondition: 0x00180071,
EffectiveDuration: 0x00180072,
AcquisitionStartCondition: 0x00180073,
AcquisitionStartConditionData: 0x00180074,
AcquisitionTerminationConditionData: 0x00180075,
RepetitionTime: 0x00180080,
EchoTime: 0x00180081,
InversionTime: 0x00180082,
NumberOfAverages: 0x00180083,
ImagingFrequency: 0x00180084,
ImagedNucleus: 0x00180085,
EchoNumbers: 0x00180086,
MagneticFieldStrength: 0x00180087,
SpacingBetweenSlices: 0x00180088,
NumberOfPhaseEncodingSteps: 0x00180089,
DataCollectionDiameter: 0x00180090,
EchoTrainLength: 0x00180091,
PercentSampling: 0x00180093,
PercentPhaseFieldOfView: 0x00180094,
PixelBandwidth: 0x00180095,
DeviceSerialNumber: 0x00181000,
DeviceUID: 0x00181002,
DeviceID: 0x00181003,
PlateID: 0x00181004,
GeneratorID: 0x00181005,
GridID: 0x00181006,
CassetteID: 0x00181007,
GantryID: 0x00181008,
UniqueDeviceIdentifier: 0x00181009,
UDISequence: 0x0018100a,
SecondaryCaptureDeviceID: 0x00181010,
HardcopyCreationDeviceID: 0x00181011,
DateOfSecondaryCapture: 0x00181012,
TimeOfSecondaryCapture: 0x00181014,
SecondaryCaptureDeviceManufacturer: 0x00181016,
HardcopyDeviceManufacturer: 0x00181017,
SecondaryCaptureDeviceManufacturerModelName: 0x00181018,
SecondaryCaptureDeviceSoftwareVersions: 0x00181019,
HardcopyDeviceSoftwareVersion: 0x0018101a,
HardcopyDeviceManufacturerModelName: 0x0018101b,
SoftwareVersions: 0x00181020,
VideoImageFormatAcquired: 0x00181022,
DigitalImageFormatAcquired: 0x00181023,
ProtocolName: 0x00181030,
ContrastBolusRoute: 0x00181040,
ContrastBolusVolume: 0x00181041,
ContrastBolusStartTime: 0x00181042,
ContrastBolusStopTime: 0x00181043,
ContrastBolusTotalDose: 0x00181044,
SyringeCounts: 0x00181045,
ContrastFlowRate: 0x00181046,
ContrastFlowDuration: 0x00181047,
ContrastBolusIngredient: 0x00181048,
ContrastBolusIngredientConcentration: 0x00181049,
SpatialResolution: 0x00181050,
TriggerTime: 0x00181060,
TriggerSourceOrType: 0x00181061,
NominalInterval: 0x00181062,
FrameTime: 0x00181063,
CardiacFramingType: 0x00181064,
FrameTimeVector: 0x00181065,
FrameDelay: 0x00181066,
ImageTriggerDelay: 0x00181067,
MultiplexGroupTimeOffset: 0x00181068,
TriggerTimeOffset: 0x00181069,
SynchronizationTrigger: 0x0018106a,
SynchronizationChannel: 0x0018106c,
TriggerSamplePosition: 0x0018106e,
RadiopharmaceuticalRoute: 0x00181070,
RadiopharmaceuticalVolume: 0x00181071,
RadiopharmaceuticalStartTime: 0x00181072,
RadiopharmaceuticalStopTime: 0x00181073,
RadionuclideTotalDose: 0x00181074,
RadionuclideHalfLife: 0x00181075,
RadionuclidePositronFraction: 0x00181076,
RadiopharmaceuticalSpecificActivity: 0x00181077,
RadiopharmaceuticalStartDateTime: 0x00181078,
RadiopharmaceuticalStopDateTime: 0x00181079,
BeatRejectionFlag: 0x00181080,
LowRRValue: 0x00181081,
HighRRValue: 0x00181082,
IntervalsAcquired: 0x00181083,
IntervalsRejected: 0x00181084,
PVCRejection: 0x00181085,
SkipBeats: 0x00181086,
HeartRate: 0x00181088,
CardiacNumberOfImages: 0x00181090,
TriggerWindow: 0x00181094,
ReconstructionDiameter: 0x00181100,
DistanceSourceToDetector: 0x00181110,
DistanceSourceToPatient: 0x00181111,
EstimatedRadiographicMagnificationFactor: 0x00181114,
GantryDetectorTilt: 0x00181120,
GantryDetectorSlew: 0x00181121,
TableHeight: 0x00181130,
TableTraverse: 0x00181131,
TableMotion: 0x00181134,
TableVerticalIncrement: 0x00181135,
TableLateralIncrement: 0x00181136,
TableLongitudinalIncrement: 0x00181137,
TableAngle: 0x00181138,
TableType: 0x0018113a,
RotationDirection: 0x00181140,
AngularPosition: 0x00181141,
RadialPosition: 0x00181142,
ScanArc: 0x00181143,
AngularStep: 0x00181144,
CenterOfRotationOffset: 0x00181145,
RotationOffset: 0x00181146,
FieldOfViewShape: 0x00181147,
FieldOfViewDimensions: 0x00181149,
ExposureTime: 0x00181150,
XRayTubeCurrent: 0x00181151,
Exposure: 0x00181152,
ExposureInuAs: 0x00181153,
AveragePulseWidth: 0x00181154,
RadiationSetting: 0x00181155,
RectificationType: 0x00181156,
RadiationMode: 0x0018115a,
ImageAndFluoroscopyAreaDoseProduct: 0x0018115e,
FilterType: 0x00181160,
TypeOfFilters: 0x00181161,
IntensifierSize: 0x00181162,
ImagerPixelSpacing: 0x00181164,
Grid: 0x00181166,
GeneratorPower: 0x00181170,
CollimatorGridName: 0x00181180,
CollimatorType: 0x00181181,
FocalDistance: 0x00181182,
XFocusCenter: 0x00181183,
YFocusCenter: 0x00181184,
FocalSpots: 0x00181190,
AnodeTargetMaterial: 0x00181191,
BodyPartThickness: 0x001811a0,
CompressionForce: 0x001811a2,
CompressionPressure: 0x001811a3,
PaddleDescription: 0x001811a4,
CompressionContactArea: 0x001811a5,
DateOfLastCalibration: 0x00181200,
TimeOfLastCalibration: 0x00181201,
DateTimeOfLastCalibration: 0x00181202,
ConvolutionKernel: 0x00181210,
UpperLowerPixelValues: 0x00181240,
ActualFrameDuration: 0x00181242,
CountRate: 0x00181243,
PreferredPlaybackSequencing: 0x00181244,
ReceiveCoilName: 0x00181250,
TransmitCoilName: 0x00181251,
PlateType: 0x00181260,
PhosphorType: 0x00181261,
WaterEquivalentDiameter: 0x00181271,
WaterEquivalentDiameterCalculationMethodCodeSequence: 0x00181272,
ScanVelocity: 0x00181300,
WholeBodyTechnique: 0x00181301,
ScanLength: 0x00181302,
AcquisitionMatrix: 0x00181310,
InPlanePhaseEncodingDirection: 0x00181312,
FlipAngle: 0x00181314,
VariableFlipAngleFlag: 0x00181315,
SAR: 0x00181316,
dBdt: 0x00181318,
B1rms: 0x00181320,
AcquisitionDeviceProcessingDescription: 0x00181400,
AcquisitionDeviceProcessingCode: 0x00181401,
CassetteOrientation: 0x00181402,
CassetteSize: 0x00181403,
ExposuresOnPlate: 0x00181404,
RelativeXRayExposure: 0x00181405,
ExposureIndex: 0x00181411,
TargetExposureIndex: 0x00181412,
DeviationIndex: 0x00181413,
ColumnAngulation: 0x00181450,
TomoLayerHeight: 0x00181460,
TomoAngle: 0x00181470,
TomoTime: 0x00181480,
TomoType: 0x00181490,
TomoClass: 0x00181491,
NumberOfTomosynthesisSourceImages: 0x00181495,
PositionerMotion: 0x00181500,
PositionerType: 0x00181508,
PositionerPrimaryAngle: 0x00181510,
PositionerSecondaryAngle: 0x00181511,
PositionerPrimaryAngleIncrement: 0x00181520,
PositionerSecondaryAngleIncrement: 0x00181521,
DetectorPrimaryAngle: 0x00181530,
DetectorSecondaryAngle: 0x00181531,
ShutterShape: 0x00181600,
ShutterLeftVerticalEdge: 0x00181602,
ShutterRightVerticalEdge: 0x00181604,
ShutterUpperHorizontalEdge: 0x00181606,
ShutterLowerHorizontalEdge: 0x00181608,
CenterOfCircularShutter: 0x00181610,
RadiusOfCircularShutter: 0x00181612,
VerticesOfThePolygonalShutter: 0x00181620,
ShutterPresentationValue: 0x00181622,
ShutterOverlayGroup: 0x00181623,
ShutterPresentationColorCIELabValue: 0x00181624,
CollimatorShape: 0x00181700,
CollimatorLeftVerticalEdge: 0x00181702,
CollimatorRightVerticalEdge: 0x00181704,
CollimatorUpperHorizontalEdge: 0x00181706,
CollimatorLowerHorizontalEdge: 0x00181708,
CenterOfCircularCollimator: 0x00181710,
RadiusOfCircularCollimator: 0x00181712,
VerticesOfThePolygonalCollimator: 0x00181720,
AcquisitionTimeSynchronized: 0x00181800,
TimeSource: 0x00181801,
TimeDistributionProtocol: 0x00181802,
NTPSourceAddress: 0x00181803,
PageNumberVector: 0x00182001,
FrameLabelVector: 0x00182002,
FramePrimaryAngleVector: 0x00182003,
FrameSecondaryAngleVector: 0x00182004,
SliceLocationVector: 0x00182005,
DisplayWindowLabelVector: 0x00182006,
NominalScannedPixelSpacing: 0x00182010,
DigitizingDeviceTransportDirection: 0x00182020,
RotationOfScannedFilm: 0x00182030,
BiopsyTargetSequence: 0x00182041,
TargetUID: 0x00182042,
LocalizingCursorPosition: 0x00182043,
CalculatedTargetPosition: 0x00182044,
TargetLabel: 0x00182045,
DisplayedZValue: 0x00182046,
IVUSAcquisition: 0x00183100,
IVUSPullbackRate: 0x00183101,
IVUSGatedRate: 0x00183102,
IVUSPullbackStartFrameNumber: 0x00183103,
IVUSPullbackStopFrameNumber: 0x00183104,
LesionNumber: 0x00183105,
AcquisitionComments: 0x00184000,
OutputPower: 0x00185000,
TransducerData: 0x00185010,
FocusDepth: 0x00185012,
ProcessingFunction: 0x00185020,
PostprocessingFunction: 0x00185021,
MechanicalIndex: 0x00185022,
BoneThermalIndex: 0x00185024,
CranialThermalIndex: 0x00185026,
SoftTissueThermalIndex: 0x00185027,
SoftTissueFocusThermalIndex: 0x00185028,
SoftTissueSurfaceThermalIndex: 0x00185029,
DynamicRange: 0x00185030,
TotalGain: 0x00185040,
DepthOfScanField: 0x00185050,
PatientPosition: 0x00185100,
ViewPosition: 0x00185101,
ProjectionEponymousNameCodeSequence: 0x00185104,
ImageTransformationMatrix: 0x00185210,
ImageTranslationVector: 0x00185212,
Sensitivity: 0x00186000,
SequenceOfUltrasoundRegions: 0x00186011,
RegionSpatialFormat: 0x00186012,
RegionDataType: 0x00186014,
RegionFlags: 0x00186016,
RegionLocationMinX0: 0x00186018,
RegionLocationMinY0: 0x0018601a,
RegionLocationMaxX1: 0x0018601c,
RegionLocationMaxY1: 0x0018601e,
ReferencePixelX0: 0x00186020,
ReferencePixelY0: 0x00186022,
PhysicalUnitsXDirection: 0x00186024,
PhysicalUnitsYDirection: 0x00186026,
ReferencePixelPhysicalValueX: 0x00186028,
ReferencePixelPhysicalValueY: 0x0018602a,
PhysicalDeltaX: 0x0018602c,
PhysicalDeltaY: 0x0018602e,
TransducerFrequency: 0x00186030,
TransducerType: 0x00186031,
PulseRepetitionFrequency: 0x00186032,
DopplerCorrectionAngle: 0x00186034,
SteeringAngle: 0x00186036,
DopplerSampleVolumeXPositionRetired: 0x00186038,
DopplerSampleVolumeXPosition: 0x00186039,
DopplerSampleVolumeYPositionRetired: 0x0018603a,
DopplerSampleVolumeYPosition: 0x0018603b,
TMLinePositionX0Retired: 0x0018603c,
TMLinePositionX0: 0x0018603d,
TMLinePositionY0Retired: 0x0018603e,
TMLinePositionY0: 0x0018603f,
TMLinePositionX1Retired: 0x00186040,
TMLinePositionX1: 0x00186041,
TMLinePositionY1Retired: 0x00186042,
TMLinePositionY1: 0x00186043,
PixelComponentOrganization: 0x00186044,
PixelComponentMask: 0x00186046,
PixelComponentRangeStart: 0x00186048,
PixelComponentRangeStop: 0x0018604a,
PixelComponentPhysicalUnits: 0x0018604c,
PixelComponentDataType: 0x0018604e,
NumberOfTableBreakPoints: 0x00186050,
TableOfXBreakPoints: 0x00186052,
TableOfYBreakPoints: 0x00186054,
NumberOfTableEntries: 0x00186056,
TableOfPixelValues: 0x00186058,
TableOfParameterValues: 0x0018605a,
RWaveTimeVector: 0x00186060,
DetectorConditionsNominalFlag: 0x00187000,
DetectorTemperature: 0x00187001,
DetectorType: 0x00187004,
DetectorConfiguration: 0x00187005,
DetectorDescription: 0x00187006,
DetectorMode: 0x00187008,
DetectorID: 0x0018700a,
DateOfLastDetectorCalibration: 0x0018700c,
TimeOfLastDetectorCalibration: 0x0018700e,
ExposuresOnDetectorSinceLastCalibration: 0x00187010,
ExposuresOnDetectorSinceManufactured: 0x00187011,
DetectorTimeSinceLastExposure: 0x00187012,
DetectorActiveTime: 0x00187014,
DetectorActivationOffsetFromExposure: 0x00187016,
DetectorBinning: 0x0018701a,
DetectorElementPhysicalSize: 0x00187020,
DetectorElementSpacing: 0x00187022,
DetectorActiveShape: 0x00187024,
DetectorActiveDimensions: 0x00187026,
DetectorActiveOrigin: 0x00187028,
DetectorManufacturerName: 0x0018702a,
DetectorManufacturerModelName: 0x0018702b,
FieldOfViewOrigin: 0x00187030,
FieldOfViewRotation: 0x00187032,
FieldOfViewHorizontalFlip: 0x00187034,
PixelDataAreaOriginRelativeToFOV: 0x00187036,
PixelDataAreaRotationAngleRelativeToFOV: 0x00187038,
GridAbsorbingMaterial: 0x00187040,
GridSpacingMaterial: 0x00187041,
GridThickness: 0x00187042,
GridPitch: 0x00187044,
GridAspectRatio: 0x00187046,
GridPeriod: 0x00187048,
GridFocalDistance: 0x0018704c,
FilterMaterial: 0x00187050,
FilterThicknessMinimum: 0x00187052,
FilterThicknessMaximum: 0x00187054,
FilterBeamPathLengthMinimum: 0x00187056,
FilterBeamPathLengthMaximum: 0x00187058,
ExposureControlMode: 0x00187060,
ExposureControlModeDescription: 0x00187062,
ExposureStatus: 0x00187064,
PhototimerSetting: 0x00187065,
ExposureTimeInuS: 0x00188150,
XRayTubeCurrentInuA: 0x00188151,
ContentQualification: 0x00189004,
PulseSequenceName: 0x00189005,
MRImagingModifierSequence: 0x00189006,
EchoPulseSequence: 0x00189008,
InversionRecovery: 0x00189009,
FlowCompensation: 0x00189010,
MultipleSpinEcho: 0x00189011,
MultiPlanarExcitation: 0x00189012,
PhaseContrast: 0x00189014,
TimeOfFlightContrast: 0x00189015,
Spoiling: 0x00189016,
SteadyStatePulseSequence: 0x00189017,
EchoPlanarPulseSequence: 0x00189018,
TagAngleFirstAxis: 0x00189019,
MagnetizationTransfer: 0x00189020,
T2Preparation: 0x00189021,
BloodSignalNulling: 0x00189022,
SaturationRecovery: 0x00189024,
SpectrallySelectedSuppression: 0x00189025,
SpectrallySelectedExcitation: 0x00189026,
SpatialPresaturation: 0x00189027,
Tagging: 0x00189028,
OversamplingPhase: 0x00189029,
TagSpacingFirstDimension: 0x00189030,
GeometryOfKSpaceTraversal: 0x00189032,
SegmentedKSpaceTraversal: 0x00189033,
RectilinearPhaseEncodeReordering: 0x00189034,
TagThickness: 0x00189035,
PartialFourierDirection: 0x00189036,
CardiacSynchronizationTechnique: 0x00189037,
ReceiveCoilManufacturerName: 0x00189041,
MRReceiveCoilSequence: 0x00189042,
ReceiveCoilType: 0x00189043,
QuadratureReceiveCoil: 0x00189044,
MultiCoilDefinitionSequence: 0x00189045,
MultiCoilConfiguration: 0x00189046,
MultiCoilElementName: 0x00189047,
MultiCoilElementUsed: 0x00189048,
MRTransmitCoilSequence: 0x00189049,
TransmitCoilManufacturerName: 0x00189050,
TransmitCoilType: 0x00189051,
SpectralWidth: 0x00189052,
ChemicalShiftReference: 0x00189053,
VolumeLocalizationTechnique: 0x00189054,
MRAcquisitionFrequencyEncodingSteps: 0x00189058,
Decoupling: 0x00189059,
DecoupledNucleus: 0x00189060,
DecouplingFrequency: 0x00189061,
DecouplingMethod: 0x00189062,
DecouplingChemicalShiftReference: 0x00189063,
KSpaceFiltering: 0x00189064,
TimeDomainFiltering: 0x00189065,
NumberOfZeroFills: 0x00189066,
BaselineCorrection: 0x00189067,
ParallelReductionFactorInPlane: 0x00189069,
CardiacRRIntervalSpecified: 0x00189070,
AcquisitionDuration: 0x00189073,
FrameAcquisitionDateTime: 0x00189074,
DiffusionDirectionality: 0x00189075,
DiffusionGradientDirectionSequence: 0x00189076,
ParallelAcquisition: 0x00189077,
ParallelAcquisitionTechnique: 0x00189078,
InversionTimes: 0x00189079,
MetaboliteMapDescription: 0x00189080,
PartialFourier: 0x00189081,
EffectiveEchoTime: 0x00189082,
MetaboliteMapCodeSequence: 0x00189083,
ChemicalShiftSequence: 0x00189084,
CardiacSignalSource: 0x00189085,
DiffusionBValue: 0x00189087,
DiffusionGradientOrientation: 0x00189089,
VelocityEncodingDirection: 0x00189090,
VelocityEncodingMinimumValue: 0x00189091,
VelocityEncodingAcquisitionSequence: 0x00189092,
NumberOfKSpaceTrajectories: 0x00189093,
CoverageOfKSpace: 0x00189094,
SpectroscopyAcquisitionPhaseRows: 0x00189095,
ParallelReductionFactorInPlaneRetired: 0x00189096,
TransmitterFrequency: 0x00189098,
ResonantNucleus: 0x00189100,
FrequencyCorrection: 0x00189101,
MRSpectroscopyFOVGeometrySequence: 0x00189103,
SlabThickness: 0x00189104,
SlabOrientation: 0x00189105,
MidSlabPosition: 0x00189106,
MRSpatialSaturationSequence: 0x00189107,
MRTimingAndRelatedParametersSequence: 0x00189112,
MREchoSequence: 0x00189114,
MRModifierSequence: 0x00189115,
MRDiffusionSequence: 0x00189117,
CardiacSynchronizationSequence: 0x00189118,
MRAveragesSequence: 0x00189119,
MRFOVGeometrySequence: 0x00189125,
VolumeLocalizationSequence: 0x00189126,
SpectroscopyAcquisitionDataColumns: 0x00189127,
DiffusionAnisotropyType: 0x00189147,
FrameReferenceDateTime: 0x00189151,
MRMetaboliteMapSequence: 0x00189152,
ParallelReductionFactorOutOfPlane: 0x00189155,
SpectroscopyAcquisitionOutOfPlanePhaseSteps: 0x00189159,
BulkMotionStatus: 0x00189166,
ParallelReductionFactorSecondInPlane: 0x00189168,
CardiacBeatRejectionTechnique: 0x00189169,
RespiratoryMotionCompensationTechnique: 0x00189170,
RespiratorySignalSource: 0x00189171,
BulkMotionCompensationTechnique: 0x00189172,
BulkMotionSignalSource: 0x00189173,
ApplicableSafetyStandardAgency: 0x00189174,
ApplicableSafetyStandardDescription: 0x00189175,
OperatingModeSequence: 0x00189176,
OperatingModeType: 0x00189177,
OperatingMode: 0x00189178,
SpecificAbsorptionRateDefinition: 0x00189179,
GradientOutputType: 0x00189180,
SpecificAbsorptionRateValue: 0x00189181,
GradientOutput: 0x00189182,
FlowCompensationDirection: 0x00189183,
TaggingDelay: 0x00189184,
RespiratoryMotionCompensationTechniqueDescription: 0x00189185,
RespiratorySignalSourceID: 0x00189186,
ChemicalShiftMinimumIntegrationLimitInHz: 0x00189195,
ChemicalShiftMaximumIntegrationLimitInHz: 0x00189196,
MRVelocityEncodingSequence: 0x00189197,
FirstOrderPhaseCorrection: 0x00189198,
WaterReferencedPhaseCorrection: 0x00189199,
MRSpectroscopyAcquisitionType: 0x00189200,
RespiratoryCyclePosition: 0x00189214,
VelocityEncodingMaximumValue: 0x00189217,
TagSpacingSecondDimension: 0x00189218,
TagAngleSecondAxis: 0x00189219,
FrameAcquisitionDuration: 0x00189220,
MRImageFrameTypeSequence: 0x00189226,
MRSpectroscopyFrameTypeSequence: 0x00189227,
MRAcquisitionPhaseEncodingStepsInPlane: 0x00189231,
MRAcquisitionPhaseEncodingStepsOutOfPlane: 0x00189232,
SpectroscopyAcquisitionPhaseColumns: 0x00189234,
CardiacCyclePosition: 0x00189236,
SpecificAbsorptionRateSequence: 0x00189239,
RFEchoTrainLength: 0x00189240,
GradientEchoTrainLength: 0x00189241,
ArterialSpinLabelingContrast: 0x00189250,
MRArterialSpinLabelingSequence: 0x00189251,
ASLTechniqueDescription: 0x00189252,
ASLSlabNumber: 0x00189253,
ASLSlabThickness: 0x00189254,
ASLSlabOrientation: 0x00189255,
ASLMidSlabPosition: 0x00189256,
ASLContext: 0x00189257,
ASLPulseTrainDuration: 0x00189258,
ASLCrusherFlag: 0x00189259,
ASLCrusherFlowLimit: 0x0018925a,
ASLCrusherDescription: 0x0018925b,
ASLBolusCutoffFlag: 0x0018925c,
ASLBolusCutoffTimingSequence: 0x0018925d,
ASLBolusCutoffTechnique: 0x0018925e,
ASLBolusCutoffDelayTime: 0x0018925f,
ASLSlabSequence: 0x00189260,
ChemicalShiftMinimumIntegrationLimitInppm: 0x00189295,
ChemicalShiftMaximumIntegrationLimitInppm: 0x00189296,
WaterReferenceAcquisition: 0x00189297,
EchoPeakPosition: 0x00189298,
CTAcquisitionTypeSequence: 0x00189301,
AcquisitionType: 0x00189302,
TubeAngle: 0x00189303,
CTAcquisitionDetailsSequence: 0x00189304,
RevolutionTime: 0x00189305,
SingleCollimationWidth: 0x00189306,
TotalCollimationWidth: 0x00189307,
CTTableDynamicsSequence: 0x00189308,
TableSpeed: 0x00189309,
TableFeedPerRotation: 0x00189310,
SpiralPitchFactor: 0x00189311,
CTGeometrySequence: 0x00189312,
DataCollectionCenterPatient: 0x00189313,
CTReconstructionSequence: 0x00189314,
ReconstructionAlgorithm: 0x00189315,
ConvolutionKernelGroup: 0x00189316,
ReconstructionFieldOfView: 0x00189317,
ReconstructionTargetCenterPatient: 0x00189318,
ReconstructionAngle: 0x00189319,
ImageFilter: 0x00189320,
CTExposureSequence: 0x00189321,
ReconstructionPixelSpacing: 0x00189322,
ExposureModulationType: 0x00189323,
EstimatedDoseSaving: 0x00189324,
CTXRayDetailsSequence: 0x00189325,
CTPositionSequence: 0x00189326,
TablePosition: 0x00189327,
ExposureTimeInms: 0x00189328,
CTImageFrameTypeSequence: 0x00189329,
XRayTubeCurrentInmA: 0x00189330,
ExposureInmAs: 0x00189332,
ConstantVolumeFlag: 0x00189333,
FluoroscopyFlag: 0x00189334,
DistanceSourceToDataCollectionCenter: 0x00189335,
ContrastBolusAgentNumber: 0x00189337,
ContrastBolusIngredientCodeSequence: 0x00189338,
ContrastAdministrationProfileSequence: 0x00189340,
ContrastBolusUsageSequence: 0x00189341,
ContrastBolusAgentAdministered: 0x00189342,
ContrastBolusAgentDetected: 0x00189343,
ContrastBolusAgentPhase: 0x00189344,
CTDIvol: 0x00189345,
CTDIPhantomTypeCodeSequence: 0x00189346,
CalciumScoringMassFactorPatient: 0x00189351,
CalciumScoringMassFactorDevice: 0x00189352,
EnergyWeightingFactor: 0x00189353,
CTAdditionalXRaySourceSequence: 0x00189360,
ProjectionPixelCalibrationSequence: 0x00189401,
DistanceSourceToIsocenter: 0x00189402,
DistanceObjectToTableTop: 0x00189403,
ObjectPixelSpacingInCenterOfBeam: 0x00189404,
PositionerPositionSequence: 0x00189405,
TablePositionSequence: 0x00189406,
CollimatorShapeSequence: 0x00189407,
PlanesInAcquisition: 0x00189410,
XAXRFFrameCharacteristicsSequence: 0x00189412,
FrameAcquisitionSequence: 0x00189417,
XRayReceptorType: 0x00189420,
AcquisitionProtocolName: 0x00189423,
AcquisitionProtocolDescription: 0x00189424,
ContrastBolusIngredientOpaque: 0x00189425,
DistanceReceptorPlaneToDetectorHousing: 0x00189426,
IntensifierActiveShape: 0x00189427,
IntensifierActiveDimensions: 0x00189428,
PhysicalDetectorSize: 0x00189429,
PositionOfIsocenterProjection: 0x00189430,
FieldOfViewSequence: 0x00189432,
FieldOfViewDescription: 0x00189433,
ExposureControlSensingRegionsSequence: 0x00189434,
ExposureControlSensingRegionShape: 0x00189435,
ExposureControlSensingRegionLeftVerticalEdge: 0x00189436,
ExposureControlSensingRegionRightVerticalEdge: 0x00189437,
ExposureControlSensingRegionUpperHorizontalEdge: 0x00189438,
ExposureControlSensingRegionLowerHorizontalEdge: 0x00189439,
CenterOfCircularExposureControlSensingRegion: 0x00189440,
RadiusOfCircularExposureControlSensingRegion: 0x00189441,
VerticesOfThePolygonalExposureControlSensingRegion: 0x00189442,
ColumnAngulationPatient: 0x00189447,
BeamAngle: 0x00189449,
FrameDetectorParametersSequence: 0x00189451,
CalculatedAnatomyThickness: 0x00189452,
CalibrationSequence: 0x00189455,
ObjectThicknessSequence: 0x00189456,
PlaneIdentification: 0x00189457,
FieldOfViewDimensionsInFloat: 0x00189461,
IsocenterReferenceSystemSequence: 0x00189462,
PositionerIsocenterPrimaryAngle: 0x00189463,
PositionerIsocenterSecondaryAngle: 0x00189464,
PositionerIsocenterDetectorRotationAngle: 0x00189465,
TableXPositionToIsocenter: 0x00189466,
TableYPositionToIsocenter: 0x00189467,
TableZPositionToIsocenter: 0x00189468,
TableHorizontalRotationAngle: 0x00189469,
TableHeadTiltAngle: 0x00189470,
TableCradleTiltAngle: 0x00189471,
FrameDisplayShutterSequence: 0x00189472,
AcquiredImageAreaDoseProduct: 0x00189473,
CArmPositionerTabletopRelationship: 0x00189474,
XRayGeometrySequence: 0x00189476,
IrradiationEventIdentificationSequence: 0x00189477,
XRay3DFrameTypeSequence: 0x00189504,
ContributingSourcesSequence: 0x00189506,
XRay3DAcquisitionSequence: 0x00189507,
PrimaryPositionerScanArc: 0x00189508,
SecondaryPositionerScanArc: 0x00189509,
PrimaryPositionerScanStartAngle: 0x00189510,
SecondaryPositionerScanStartAngle: 0x00189511,
PrimaryPositionerIncrement: 0x00189514,
SecondaryPositionerIncrement: 0x00189515,
StartAcquisitionDateTime: 0x00189516,
EndAcquisitionDateTime: 0x00189517,
PrimaryPositionerIncrementSign: 0x00189518,
SecondaryPositionerIncrementSign: 0x00189519,
ApplicationName: 0x00189524,
ApplicationVersion: 0x00189525,
ApplicationManufacturer: 0x00189526,
AlgorithmType: 0x00189527,
AlgorithmDescription: 0x00189528,
XRay3DReconstructionSequence: 0x00189530,
ReconstructionDescription: 0x00189531,
PerProjectionAcquisitionSequence: 0x00189538,
DetectorPositionSequence: 0x00189541,
XRayAcquisitionDoseSequence: 0x00189542,
XRaySourceIsocenterPrimaryAngle: 0x00189543,
XRaySourceIsocenterSecondaryAngle: 0x00189544,
BreastSupportIsocenterPrimaryAngle: 0x00189545,
BreastSupportIsocenterSecondaryAngle: 0x00189546,
BreastSupportXPositionToIsocenter: 0x00189547,
BreastSupportYPositionToIsocenter: 0x00189548,
BreastSupportZPositionToIsocenter: 0x00189549,
DetectorIsocenterPrimaryAngle: 0x00189550,
DetectorIsocenterSecondaryAngle: 0x00189551,
DetectorXPositionToIsocenter: 0x00189552,
DetectorYPositionToIsocenter: 0x00189553,
DetectorZPositionToIsocenter: 0x00189554,
XRayGridSequence: 0x00189555,
XRayFilterSequence: 0x00189556,
DetectorActiveAreaTLHCPosition: 0x00189557,
DetectorActiveAreaOrientation: 0x00189558,
PositionerPrimaryAngleDirection: 0x00189559,
DiffusionBMatrixSequence: 0x00189601,
DiffusionBValueXX: 0x00189602,
DiffusionBValueXY: 0x00189603,
DiffusionBValueXZ: 0x00189604,
DiffusionBValueYY: 0x00189605,
DiffusionBValueYZ: 0x00189606,
DiffusionBValueZZ: 0x00189607,
FunctionalMRSequence: 0x00189621,
FunctionalSettlingPhaseFramesPresent: 0x00189622,
FunctionalSyncPulse: 0x00189623,
SettlingPhaseFrame: 0x00189624,
DecayCorrectionDateTime: 0x00189701,
StartDensityThreshold: 0x00189715,
StartRelativeDensityDifferenceThreshold: 0x00189716,
StartCardiacTriggerCountThreshold: 0x00189717,
StartRespiratoryTriggerCountThreshold: 0x00189718,
TerminationCountsThreshold: 0x00189719,
TerminationDensityThreshold: 0x00189720,
TerminationRelativeDensityThreshold: 0x00189721,
TerminationTimeThreshold: 0x00189722,
TerminationCardiacTriggerCountThreshold: 0x00189723,
TerminationRespiratoryTriggerCountThreshold: 0x00189724,
DetectorGeometry: 0x00189725,
TransverseDetectorSeparation: 0x00189726,
AxialDetectorDimension: 0x00189727,
RadiopharmaceuticalAgentNumber: 0x00189729,
PETFrameAcquisitionSequence: 0x00189732,
PETDetectorMotionDetailsSequence: 0x00189733,
PETTableDynamicsSequence: 0x00189734,
PETPositionSequence: 0x00189735,
PETFrameCorrectionFactorsSequence: 0x00189736,
RadiopharmaceuticalUsageSequence: 0x00189737,
AttenuationCorrectionSource: 0x00189738,
NumberOfIterations: 0x00189739,
NumberOfSubsets: 0x00189740,
PETReconstructionSequence: 0x00189749,
PETFrameTypeSequence: 0x00189751,
TimeOfFlightInformationUsed: 0x00189755,
ReconstructionType: 0x00189756,
DecayCorrected: 0x00189758,
AttenuationCorrected: 0x00189759,
ScatterCorrected: 0x00189760,
DeadTimeCorrected: 0x00189761,
GantryMotionCorrected: 0x00189762,
PatientMotionCorrected: 0x00189763,
CountLossNormalizationCorrected: 0x00189764,
RandomsCorrected: 0x00189765,
NonUniformRadialSamplingCorrected: 0x00189766,
SensitivityCalibrated: 0x00189767,
DetectorNormalizationCorrection: 0x00189768,
IterativeReconstructionMethod: 0x00189769,
AttenuationCorrectionTemporalRelationship: 0x00189770,
PatientPhysiologicalStateSequence: 0x00189771,
PatientPhysiologicalStateCodeSequence: 0x00189772,
DepthsOfFocus: 0x00189801,
ExcludedIntervalsSequence: 0x00189803,
ExclusionStartDateTime: 0x00189804,
ExclusionDuration: 0x00189805,
USImageDescriptionSequence: 0x00189806,
ImageDataTypeSequence: 0x00189807,
DataType: 0x00189808,
TransducerScanPatternCodeSequence: 0x00189809,
AliasedDataType: 0x0018980b,
PositionMeasuringDeviceUsed: 0x0018980c,
TransducerGeometryCodeSequence: 0x0018980d,
TransducerBeamSteeringCodeSequence: 0x0018980e,
TransducerApplicationCodeSequence: 0x0018980f,
ZeroVelocityPixelValue: 0x00189810,
ReferenceLocationLabel: 0x00189900,
ReferenceLocationDescription: 0x00189901,
ReferenceBasisCodeSequence: 0x00189902,
ReferenceGeometryCodeSequence: 0x00189903,
OffsetDistance: 0x00189904,
OffsetDirection: 0x00189905,
PotentialScheduledProtocolCodeSequence: 0x00189906,
PotentialRequestedProcedureCodeSequence: 0x00189907,
PotentialReasonsForProcedure: 0x00189908,
PotentialReasonsForProcedureCodeSequence: 0x00189909,
PotentialDiagnosticTasks: 0x0018990a,
ContraindicationsCodeSequence: 0x0018990b,
ReferencedDefinedProtocolSequence: 0x0018990c,
ReferencedPerformedProtocolSequence: 0x0018990d,
PredecessorProtocolSequence: 0x0018990e,
ProtocolPlanningInformation: 0x0018990f,
ProtocolDesignRationale: 0x00189910,
PatientSpecificationSequence: 0x00189911,
ModelSpecificationSequence: 0x00189912,
ParametersSpecificationSequence: 0x00189913,
InstructionSequence: 0x00189914,
InstructionIndex: 0x00189915,
InstructionText: 0x00189916,
InstructionDescription: 0x00189917,
InstructionPerformedFlag: 0x00189918,
InstructionPerformedDateTime: 0x00189919,
InstructionPerformanceComment: 0x0018991a,
PatientPositioningInstructionSequence: 0x0018991b,
PositioningMethodCodeSequence: 0x0018991c,
PositioningLandmarkSequence: 0x0018991d,
TargetFrameOfReferenceUID: 0x0018991e,
AcquisitionProtocolElementSpecificationSequence: 0x0018991f,
AcquisitionProtocolElementSequence: 0x00189920,
ProtocolElementNumber: 0x00189921,
ProtocolElementName: 0x00189922,
ProtocolElementCharacteristicsSummary: 0x00189923,
ProtocolElementPurpose: 0x00189924,
AcquisitionMotion: 0x00189930,
AcquisitionStartLocationSequence: 0x00189931,
AcquisitionEndLocationSequence: 0x00189932,
ReconstructionProtocolElementSpecificationSequence: 0x00189933,
ReconstructionProtocolElementSequence: 0x00189934,
StorageProtocolElementSpecificationSequence: 0x00189935,
StorageProtocolElementSequence: 0x00189936,
RequestedSeriesDescription: 0x00189937,
SourceAcquisitionProtocolElementNumber: 0x00189938,
SourceAcquisitionBeamNumber: 0x00189939,
SourceReconstructionProtocolElementNumber: 0x0018993a,
ReconstructionStartLocationSequence: 0x0018993b,
ReconstructionEndLocationSequence: 0x0018993c,
ReconstructionAlgorithmSequence: 0x0018993d,
ReconstructionTargetCenterLocationSequence: 0x0018993e,
ImageFilterDescription: 0x00189941,
CTDIvolNotificationTrigger: 0x00189942,
DLPNotificationTrigger: 0x00189943,
AutoKVPSelectionType: 0x00189944,
AutoKVPUpperBound: 0x00189945,
AutoKVPLowerBound: 0x00189946,
ProtocolDefinedPatientPosition: 0x00189947,
ContributingEquipmentSequence: 0x0018a001,
ContributionDateTime: 0x0018a002,
ContributionDescription: 0x0018a003,
StudyInstanceUID: 0x0020000d,
SeriesInstanceUID: 0x0020000e,
StudyID: 0x00200010,
SeriesNumber: 0x00200011,
AcquisitionNumber: 0x00200012,
InstanceNumber: 0x00200013,
IsotopeNumber: 0x00200014,
PhaseNumber: 0x00200015,
IntervalNumber: 0x00200016,
TimeSlotNumber: 0x00200017,
AngleNumber: 0x00200018,
ItemNumber: 0x00200019,
PatientOrientation: 0x00200020,
OverlayNumber: 0x00200022,
CurveNumber: 0x00200024,
LUTNumber: 0x00200026,
ImagePosition: 0x00200030,
ImagePositionPatient: 0x00200032,
ImageOrientation: 0x00200035,
ImageOrientationPatient: 0x00200037,
Location: 0x00200050,
FrameOfReferenceUID: 0x00200052,
Laterality: 0x00200060,
ImageLaterality: 0x00200062,
ImageGeometryType: 0x00200070,
MaskingImage: 0x00200080,
ReportNumber: 0x002000aa,
TemporalPositionIdentifier: 0x00200100,
NumberOfTemporalPositions: 0x00200105,
TemporalResolution: 0x00200110,
SynchronizationFrameOfReferenceUID: 0x00200200,
SOPInstanceUIDOfConcatenationSource: 0x00200242,
SeriesInStudy: 0x00201000,
AcquisitionsInSeries: 0x00201001,
ImagesInAcquisition: 0x00201002,
ImagesInSeries: 0x00201003,
AcquisitionsInStudy: 0x00201004,
ImagesInStudy: 0x00201005,
Reference: 0x00201020,
TargetPositionReferenceIndicator: 0x0020103f,
PositionReferenceIndicator: 0x00201040,
SliceLocation: 0x00201041,
OtherStudyNumbers: 0x00201070,
NumberOfPatientRelatedStudies: 0x00201200,
NumberOfPatientRelatedSeries: 0x00201202,
NumberOfPatientRelatedInstances: 0x00201204,
NumberOfStudyRelatedSeries: 0x00201206,
NumberOfStudyRelatedInstances: 0x00201208,
NumberOfSeriesRelatedInstances: 0x00201209,
SourceImageIDs: 0x00203100,
ModifyingDeviceID: 0x00203401,
ModifiedImageID: 0x00203402,
ModifiedImageDate: 0x00203403,
ModifyingDeviceManufacturer: 0x00203404,
ModifiedImageTime: 0x00203405,
ModifiedImageDescription: 0x00203406,
ImageComments: 0x00204000,
OriginalImageIdentification: 0x00205000,
OriginalImageIdentificationNomenclature: 0x00205002,
StackID: 0x00209056,
InStackPositionNumber: 0x00209057,
FrameAnatomySequence: 0x00209071,
FrameLaterality: 0x00209072,
FrameContentSequence: 0x00209111,
PlanePositionSequence: 0x00209113,
PlaneOrientationSequence: 0x00209116,
TemporalPositionIndex: 0x00209128,
NominalCardiacTriggerDelayTime: 0x00209153,
NominalCardiacTriggerTimePriorToRPeak: 0x00209154,
ActualCardiacTriggerTimePriorToRPeak: 0x00209155,
FrameAcquisitionNumber: 0x00209156,
DimensionIndexValues: 0x00209157,
FrameComments: 0x00209158,
ConcatenationUID: 0x00209161,
InConcatenationNumber: 0x00209162,
InConcatenationTotalNumber: 0x00209163,
DimensionOrganizationUID: 0x00209164,
DimensionIndexPointer: 0x00209165,
FunctionalGroupPointer: 0x00209167,
UnassignedSharedConvertedAttributesSequence: 0x00209170,
UnassignedPerFrameConvertedAttributesSequence: 0x00209171,
ConversionSourceAttributesSequence: 0x00209172,
DimensionIndexPrivateCreator: 0x00209213,
DimensionOrganizationSequence: 0x00209221,
DimensionIndexSequence: 0x00209222,
ConcatenationFrameOffsetNumber: 0x00209228,
FunctionalGroupPrivateCreator: 0x00209238,
NominalPercentageOfCardiacPhase: 0x00209241,
NominalPercentageOfRespiratoryPhase: 0x00209245,
StartingRespiratoryAmplitude: 0x00209246,
StartingRespiratoryPhase: 0x00209247,
EndingRespiratoryAmplitude: 0x00209248,
EndingRespiratoryPhase: 0x00209249,
RespiratoryTriggerType: 0x00209250,
RRIntervalTimeNominal: 0x00209251,
ActualCardiacTriggerDelayTime: 0x00209252,
RespiratorySynchronizationSequence: 0x00209253,
RespiratoryIntervalTime: 0x00209254,
NominalRespiratoryTriggerDelayTime: 0x00209255,
RespiratoryTriggerDelayThreshold: 0x00209256,
ActualRespiratoryTriggerDelayTime: 0x00209257,
ImagePositionVolume: 0x00209301,
ImageOrientationVolume: 0x00209302,
UltrasoundAcquisitionGeometry: 0x00209307,
ApexPosition: 0x00209308,
VolumeToTransducerMappingMatrix: 0x00209309,
VolumeToTableMappingMatrix: 0x0020930a,
VolumeToTransducerRelationship: 0x0020930b,
PatientFrameOfReferenceSource: 0x0020930c,
TemporalPositionTimeOffset: 0x0020930d,
PlanePositionVolumeSequence: 0x0020930e,
PlaneOrientationVolumeSequence: 0x0020930f,
TemporalPositionSequence: 0x00209310,
DimensionOrganizationType: 0x00209311,
VolumeFrameOfReferenceUID: 0x00209312,
TableFrameOfReferenceUID: 0x00209313,
DimensionDescriptionLabel: 0x00209421,
PatientOrientationInFrameSequence: 0x00209450,
FrameLabel: 0x00209453,
AcquisitionIndex: 0x00209518,
ContributingSOPInstancesReferenceSequence: 0x00209529,
ReconstructionIndex: 0x00209536,
LightPathFilterPassThroughWavelength: 0x00220001,
LightPathFilterPassBand: 0x00220002,
ImagePathFilterPassThroughWavelength: 0x00220003,
ImagePathFilterPassBand: 0x00220004,
PatientEyeMovementCommanded: 0x00220005,
PatientEyeMovementCommandCodeSequence: 0x00220006,
SphericalLensPower: 0x00220007,
CylinderLensPower: 0x00220008,
CylinderAxis: 0x00220009,
EmmetropicMagnification: 0x0022000a,
IntraOcularPressure: 0x0022000b,
HorizontalFieldOfView: 0x0022000c,
PupilDilated: 0x0022000d,
DegreeOfDilation: 0x0022000e,
StereoBaselineAngle: 0x00220010,
StereoBaselineDisplacement: 0x00220011,
StereoHorizontalPixelOffset: 0x00220012,
StereoVerticalPixelOffset: 0x00220013,
StereoRotation: 0x00220014,
AcquisitionDeviceTypeCodeSequence: 0x00220015,
IlluminationTypeCodeSequence: 0x00220016,
LightPathFilterTypeStackCodeSequence: 0x00220017,
ImagePathFilterTypeStackCodeSequence: 0x00220018,
LensesCodeSequence: 0x00220019,
ChannelDescriptionCodeSequence: 0x0022001a,
RefractiveStateSequence: 0x0022001b,
MydriaticAgentCodeSequence: 0x0022001c,
RelativeImagePositionCodeSequence: 0x0022001d,
CameraAngleOfView: 0x0022001e,
StereoPairsSequence: 0x00220020,
LeftImageSequence: 0x00220021,
RightImageSequence: 0x00220022,
StereoPairsPresent: 0x00220028,
AxialLengthOfTheEye: 0x00220030,
OphthalmicFrameLocationSequence: 0x00220031,
ReferenceCoordinates: 0x00220032,
DepthSpatialResolution: 0x00220035,
MaximumDepthDistortion: 0x00220036,
AlongScanSpatialResolution: 0x00220037,
MaximumAlongScanDistortion: 0x00220038,
OphthalmicImageOrientation: 0x00220039,
DepthOfTransverseImage: 0x00220041,
MydriaticAgentConcentrationUnitsSequence: 0x00220042,
AcrossScanSpatialResolution: 0x00220048,
MaximumAcrossScanDistortion: 0x00220049,
MydriaticAgentConcentration: 0x0022004e,
IlluminationWaveLength: 0x00220055,
IlluminationPower: 0x00220056,
IlluminationBandwidth: 0x00220057,
MydriaticAgentSequence: 0x00220058,
OphthalmicAxialMeasurementsRightEyeSequence: 0x00221007,
OphthalmicAxialMeasurementsLeftEyeSequence: 0x00221008,
OphthalmicAxialMeasurementsDeviceType: 0x00221009,
OphthalmicAxialLengthMeasurementsType: 0x00221010,
OphthalmicAxialLengthSequence: 0x00221012,
OphthalmicAxialLength: 0x00221019,
LensStatusCodeSequence: 0x00221024,
VitreousStatusCodeSequence: 0x00221025,
IOLFormulaCodeSequence: 0x00221028,
IOLFormulaDetail: 0x00221029,
KeratometerIndex: 0x00221033,
SourceOfOphthalmicAxialLengthCodeSequence: 0x00221035,
TargetRefraction: 0x00221037,
RefractiveProcedureOccurred: 0x00221039,
RefractiveSurgeryTypeCodeSequence: 0x00221040,
OphthalmicUltrasoundMethodCodeSequence: 0x00221044,
OphthalmicAxialLengthMeasurementsSequence: 0x00221050,
IOLPower: 0x00221053,
PredictedRefractiveError: 0x00221054,
OphthalmicAxialLengthVelocity: 0x00221059,
LensStatusDescription: 0x00221065,
VitreousStatusDescription: 0x00221066,
IOLPowerSequence: 0x00221090,
LensConstantSequence: 0x00221092,
IOLManufacturer: 0x00221093,
LensConstantDescription: 0x00221094,
ImplantName: 0x00221095,
KeratometryMeasurementTypeCodeSequence: 0x00221096,
ImplantPartNumber: 0x00221097,
ReferencedOphthalmicAxialMeasurementsSequence: 0x00221100,
OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence: 0x00221101,
RefractiveErrorBeforeRefractiveSurgeryCodeSequence: 0x00221103,
IOLPowerForExactEmmetropia: 0x00221121,
IOLPowerForExactTargetRefraction: 0x00221122,
AnteriorChamberDepthDefinitionCodeSequence: 0x00221125,
LensThicknessSequence: 0x00221127,
AnteriorChamberDepthSequence: 0x00221128,
LensThickness: 0x00221130,
AnteriorChamberDepth: 0x00221131,
SourceOfLensThicknessDataCodeSequence: 0x00221132,
SourceOfAnteriorChamberDepthDataCodeSequence: 0x00221133,
SourceOfRefractiveMeasurementsSequence: 0x00221134,
SourceOfRefractiveMeasurementsCodeSequence: 0x00221135,
OphthalmicAxialLengthMeasurementModified: 0x00221140,
OphthalmicAxialLengthDataSourceCodeSequence: 0x00221150,
OphthalmicAxialLengthAcquisitionMethodCodeSequence: 0x00221153,
SignalToNoiseRatio: 0x00221155,
OphthalmicAxialLengthDataSourceDescription: 0x00221159,
OphthalmicAxialLengthMeasurementsTotalLengthSequence: 0x00221210,
OphthalmicAxialLengthMeasurementsSegmentalLengthSequence: 0x00221211,
OphthalmicAxialLengthMeasurementsLengthSummationSequence: 0x00221212,
UltrasoundOphthalmicAxialLengthMeasurementsSequence: 0x00221220,
OpticalOphthalmicAxialLengthMeasurementsSequence: 0x00221225,
UltrasoundSelectedOphthalmicAxialLengthSequence: 0x00221230,
OphthalmicAxialLengthSelectionMethodCodeSequence: 0x00221250,
OpticalSelectedOphthalmicAxialLengthSequence: 0x00221255,
SelectedSegmentalOphthalmicAxialLengthSequence: 0x00221257,
SelectedTotalOphthalmicAxialLengthSequence: 0x00221260,
OphthalmicAxialLengthQualityMetricSequence: 0x00221262,
OphthalmicAxialLengthQualityMetricTypeCodeSequence: 0x00221265,
OphthalmicAxialLengthQualityMetricTypeDescription: 0x00221273,
IntraocularLensCalculationsRightEyeSequence: 0x00221300,
IntraocularLensCalculationsLeftEyeSequence: 0x00221310,
ReferencedOphthalmicAxialLengthMeasurementQCImageSequence: 0x00221330,
OphthalmicMappingDeviceType: 0x00221415,
AcquisitionMethodCodeSequence: 0x00221420,
AcquisitionMethodAlgorithmSequence: 0x00221423,
OphthalmicThicknessMapTypeCodeSequence: 0x00221436,
OphthalmicThicknessMappingNormalsSequence: 0x00221443,
RetinalThicknessDefinitionCodeSequence: 0x00221445,
PixelValueMappingToCodedConceptSequence: 0x00221450,
MappedPixelValue: 0x00221452,
PixelValueMappingExplanation: 0x00221454,
OphthalmicThicknessMapQualityThresholdSequence: 0x00221458,
OphthalmicThicknessMapThresholdQualityRating: 0x00221460,
AnatomicStructureReferencePoint: 0x00221463,
RegistrationToLocalizerSequence: 0x00221465,
RegisteredLocalizerUnits: 0x00221466,
RegisteredLocalizerTopLeftHandCorner: 0x00221467,
RegisteredLocalizerBottomRightHandCorner: 0x00221468,
OphthalmicThicknessMapQualityRatingSequence: 0x00221470,
RelevantOPTAttributesSequence: 0x00221472,
TransformationMethodCodeSequence: 0x00221512,
TransformationAlgorithmSequence: 0x00221513,
OphthalmicAxialLengthMethod: 0x00221515,
OphthalmicFOV: 0x00221517,
TwoDimensionalToThreeDimensionalMapSequence: 0x00221518,
WideFieldOphthalmicPhotographyQualityRatingSequence: 0x00221525,
WideFieldOphthalmicPhotographyQualityThresholdSequence: 0x00221526,
WideFieldOphthalmicPhotographyThresholdQualityRating: 0x00221527,
XCoordinatesCenterPixelViewAngle: 0x00221528,
YCoordinatesCenterPixelViewAngle: 0x00221529,
NumberOfMapPoints: 0x00221530,
TwoDimensionalToThreeDimensionalMapData: 0x00221531,
DerivationAlgorithmSequence: 0x00221612,
OphthalmicImageTypeCodeSequence: 0x00221615,
OphthalmicImageTypeDescription: 0x00221616,
ScanPatternTypeCodeSequence: 0x00221618,
ReferencedSurfaceMeshIdentificationSequence: 0x00221620,
OphthalmicVolumetricPropertiesFlag: 0x00221622,
OphthalmicAnatomicReferencePointXCoordinate: 0x00221624,
OphthalmicAnatomicReferencePointYCoordinate: 0x00221626,
OphthalmicEnFaceImageQualityRatingSequence: 0x00221628,
QualityThreshold: 0x00221630,
OCTBscanAnalysisAcquisitionParametersSequence: 0x00221640,
NumberofBscansPerFrame: 0x00221642,
BscanSlabThickness: 0x00221643,
DistanceBetweenBscanSlabs: 0x00221644,
BscanCycleTime: 0x00221645,
BscanCycleTimeVector: 0x00221646,
AscanRate: 0x00221649,
BscanRate: 0x00221650,
SurfaceMeshZPixelOffset: 0x00221658,
VisualFieldHorizontalExtent: 0x00240010,
VisualFieldVerticalExtent: 0x00240011,
VisualFieldShape: 0x00240012,
ScreeningTestModeCodeSequence: 0x00240016,
MaximumStimulusLuminance: 0x00240018,
BackgroundLuminance: 0x00240020,
StimulusColorCodeSequence: 0x00240021,
BackgroundIlluminationColorCodeSequence: 0x00240024,
StimulusArea: 0x00240025,
StimulusPresentationTime: 0x00240028,
FixationSequence: 0x00240032,
FixationMonitoringCodeSequence: 0x00240033,
VisualFieldCatchTrialSequence: 0x00240034,
FixationCheckedQuantity: 0x00240035,
PatientNotProperlyFixatedQuantity: 0x00240036,
PresentedVisualStimuliDataFlag: 0x00240037,
NumberOfVisualStimuli: 0x00240038,
ExcessiveFixationLossesDataFlag: 0x00240039,
ExcessiveFixationLosses: 0x00240040,
StimuliRetestingQuantity: 0x00240042,
CommentsOnPatientPerformanceOfVisualField: 0x00240044,
FalseNegativesEstimateFlag: 0x00240045,
FalseNegativesEstimate: 0x00240046,
NegativeCatchTrialsQuantity: 0x00240048,
FalseNegativesQuantity: 0x00240050,
ExcessiveFalseNegativesDataFlag: 0x00240051,
ExcessiveFalseNegatives: 0x00240052,
FalsePositivesEstimateFlag: 0x00240053,
FalsePositivesEstimate: 0x00240054,
CatchTrialsDataFlag: 0x00240055,
PositiveCatchTrialsQuantity: 0x00240056,
TestPointNormalsDataFlag: 0x00240057,
TestPointNormalsSequence: 0x00240058,
GlobalDeviationProbabilityNormalsFlag: 0x00240059,
FalsePositivesQuantity: 0x00240060,
ExcessiveFalsePositivesDataFlag: 0x00240061,
ExcessiveFalsePositives: 0x00240062,
VisualFieldTestNormalsFlag: 0x00240063,
ResultsNormalsSequence: 0x00240064,
AgeCorrectedSensitivityDeviationAlgorithmSequence: 0x00240065,
GlobalDeviationFromNormal: 0x00240066,
GeneralizedDefectSensitivityDeviationAlgorithmSequence: 0x00240067,
LocalizedDeviationFromNormal: 0x00240068,
PatientReliabilityIndicator: 0x00240069,
VisualFieldMeanSensitivity: 0x00240070,
GlobalDeviationProbability: 0x00240071,
LocalDeviationProbabilityNormalsFlag: 0x00240072,
LocalizedDeviationProbability: 0x00240073,
ShortTermFluctuationCalculated: 0x00240074,
ShortTermFluctuation: 0x00240075,
ShortTermFluctuationProbabilityCalculated: 0x00240076,
ShortTermFluctuationProbability: 0x00240077,
CorrectedLocalizedDeviationFromNormalCalculated: 0x00240078,
CorrectedLocalizedDeviationFromNormal: 0x00240079,
CorrectedLocalizedDeviationFromNormalProbabilityCalculated: 0x00240080,
CorrectedLocalizedDeviationFromNormalProbability: 0x00240081,
GlobalDeviationProbabilitySequence: 0x00240083,
LocalizedDeviationProbabilitySequence: 0x00240085,
FovealSensitivityMeasured: 0x00240086,
FovealSensitivity: 0x00240087,
VisualFieldTestDuration: 0x00240088,
VisualFieldTestPointSequence: 0x00240089,
VisualFieldTestPointXCoordinate: 0x00240090,
VisualFieldTestPointYCoordinate: 0x00240091,
AgeCorrectedSensitivityDeviationValue: 0x00240092,
StimulusResults: 0x00240093,
SensitivityValue: 0x00240094,
RetestStimulusSeen: 0x00240095,
RetestSensitivityValue: 0x00240096,
VisualFieldTestPointNormalsSequence: 0x00240097,
QuantifiedDefect: 0x00240098,
AgeCorrectedSensitivityDeviationProbabilityValue: 0x00240100,
GeneralizedDefectCorrectedSensitivityDeviationFlag: 0x00240102,
GeneralizedDefectCorrectedSensitivityDeviationValue: 0x00240103,
GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue: 0x00240104,
MinimumSensitivityValue: 0x00240105,
BlindSpotLocalized: 0x00240106,
BlindSpotXCoordinate: 0x00240107,
BlindSpotYCoordinate: 0x00240108,
VisualAcuityMeasurementSequence: 0x00240110,
RefractiveParametersUsedOnPatientSequence: 0x00240112,
MeasurementLaterality: 0x00240113,
OphthalmicPatientClinicalInformationLeftEyeSequence: 0x00240114,
OphthalmicPatientClinicalInformationRightEyeSequence: 0x00240115,
FovealPointNormativeDataFlag: 0x00240117,
FovealPointProbabilityValue: 0x00240118,
ScreeningBaselineMeasured: 0x00240120,
ScreeningBaselineMeasuredSequence: 0x00240122,
ScreeningBaselineType: 0x00240124,
ScreeningBaselineValue: 0x00240126,
AlgorithmSource: 0x00240202,
DataSetName: 0x00240306,
DataSetVersion: 0x00240307,
DataSetSource: 0x00240308,
DataSetDescription: 0x00240309,
VisualFieldTestReliabilityGlobalIndexSequence: 0x00240317,
VisualFieldGlobalResultsIndexSequence: 0x00240320,
DataObservationSequence: 0x00240325,
IndexNormalsFlag: 0x00240338,
IndexProbability: 0x00240341,
IndexProbabilitySequence: 0x00240344,
SamplesPerPixel: 0x00280002,
SamplesPerPixelUsed: 0x00280003,
PhotometricInterpretation: 0x00280004,
ImageDimensions: 0x00280005,
PlanarConfiguration: 0x00280006,
NumberOfFrames: 0x00280008,
FrameIncrementPointer: 0x00280009,
FrameDimensionPointer: 0x0028000a,
Rows: 0x00280010,
Columns: 0x00280011,
Planes: 0x00280012,
UltrasoundColorDataPresent: 0x00280014,
PixelSpacing: 0x00280030,
ZoomFactor: 0x00280031,
ZoomCenter: 0x00280032,
PixelAspectRatio: 0x00280034,
ImageFormat: 0x00280040,
ManipulatedImage: 0x00280050,
CorrectedImage: 0x00280051,
CompressionRecognitionCode: 0x0028005f,
CompressionCode: 0x00280060,
CompressionOriginator: 0x00280061,
CompressionLabel: 0x00280062,
CompressionDescription: 0x00280063,
CompressionSequence: 0x00280065,
CompressionStepPointers: 0x00280066,
RepeatInterval: 0x00280068,
BitsGrouped: 0x00280069,
PerimeterTable: 0x00280070,
PerimeterValue: 0x00280071,
PredictorRows: 0x00280080,
PredictorColumns: 0x00280081,
PredictorConstants: 0x00280082,
BlockedPixels: 0x00280090,
BlockRows: 0x00280091,
BlockColumns: 0x00280092,
RowOverlap: 0x00280093,
ColumnOverlap: 0x00280094,
BitsAllocated: 0x00280100,
BitsStored: 0x00280101,
HighBit: 0x00280102,
PixelRepresentation: 0x00280103,
SmallestValidPixelValue: 0x00280104,
LargestValidPixelValue: 0x00280105,
SmallestImagePixelValue: 0x00280106,
LargestImagePixelValue: 0x00280107,
SmallestPixelValueInSeries: 0x00280108,
LargestPixelValueInSeries: 0x00280109,
SmallestImagePixelValueInPlane: 0x00280110,
LargestImagePixelValueInPlane: 0x00280111,
PixelPaddingValue: 0x00280120,
PixelPaddingRangeLimit: 0x00280121,
FloatPixelPaddingValue: 0x00280122,
DoubleFloatPixelPaddingValue: 0x00280123,
FloatPixelPaddingRangeLimit: 0x00280124,
DoubleFloatPixelPaddingRangeLimit: 0x00280125,
ImageLocation: 0x00280200,
QualityControlImage: 0x00280300,
BurnedInAnnotation: 0x00280301,
RecognizableVisualFeatures: 0x00280302,
LongitudinalTemporalInformationModified: 0x00280303,
ReferencedColorPaletteInstanceUID: 0x00280304,
TransformLabel: 0x00280400,
TransformVersionNumber: 0x00280401,
NumberOfTransformSteps: 0x00280402,
SequenceOfCompressedData: 0x00280403,
DetailsOfCoefficients: 0x00280404,
RowsForNthOrderCoefficients: 0x00280400,
ColumnsForNthOrderCoefficients: 0x00280401,
CoefficientCoding: 0x00280402,
CoefficientCodingPointers: 0x00280403,
DCTLabel: 0x00280700,
DataBlockDescription: 0x00280701,
DataBlock: 0x00280702,
NormalizationFactorFormat: 0x00280710,
ZonalMapNumberFormat: 0x00280720,
ZonalMapLocation: 0x00280721,
ZonalMapFormat: 0x00280722,
AdaptiveMapFormat: 0x00280730,
CodeNumberFormat: 0x00280740,
CodeLabel: 0x00280800,
NumberOfTables: 0x00280802,
CodeTableLocation: 0x00280803,
BitsForCodeWord: 0x00280804,
ImageDataLocation: 0x00280808,
PixelSpacingCalibrationType: 0x00280a02,
PixelSpacingCalibrationDescription: 0x00280a04,
PixelIntensityRelationship: 0x00281040,
PixelIntensityRelationshipSign: 0x00281041,
WindowCenter: 0x00281050,
WindowWidth: 0x00281051,
RescaleIntercept: 0x00281052,
RescaleSlope: 0x00281053,
RescaleType: 0x00281054,
WindowCenterWidthExplanation: 0x00281055,
VOILUTFunction: 0x00281056,
GrayScale: 0x00281080,
RecommendedViewingMode: 0x00281090,
GrayLookupTableDescriptor: 0x00281100,
RedPaletteColorLookupTableDescriptor: 0x00281101,
GreenPaletteColorLookupTableDescriptor: 0x00281102,
BluePaletteColorLookupTableDescriptor: 0x00281103,
AlphaPaletteColorLookupTableDescriptor: 0x00281104,
LargeRedPaletteColorLookupTableDescriptor: 0x00281111,
LargeGreenPaletteColorLookupTableDescriptor: 0x00281112,
LargeBluePaletteColorLookupTableDescriptor: 0x00281113,
PaletteColorLookupTableUID: 0x00281199,
GrayLookupTableData: 0x00281200,
RedPaletteColorLookupTableData: 0x00281201,
GreenPaletteColorLookupTableData: 0x00281202,
BluePaletteColorLookupTableData: 0x00281203,
AlphaPaletteColorLookupTableData: 0x00281204,
LargeRedPaletteColorLookupTableData: 0x00281211,
LargeGreenPaletteColorLookupTableData: 0x00281212,
LargeBluePaletteColorLookupTableData: 0x00281213,
LargePaletteColorLookupTableUID: 0x00281214,
SegmentedRedPaletteColorLookupTableData: 0x00281221,
SegmentedGreenPaletteColorLookupTableData: 0x00281222,
SegmentedBluePaletteColorLookupTableData: 0x00281223,
SegmentedAlphaPaletteColorLookupTableData: 0x00281224,
StoredValueColorRangeSequence: 0x00281230,
MinimumStoredValueMapped: 0x00281231,
MaximumStoredValueMapped: 0x00281232,
BreastImplantPresent: 0x00281300,
PartialView: 0x00281350,
PartialViewDescription: 0x00281351,
PartialViewCodeSequence: 0x00281352,
SpatialLocationsPreserved: 0x0028135a,
DataFrameAssignmentSequence: 0x00281401,
DataPathAssignment: 0x00281402,
BitsMappedToColorLookupTable: 0x00281403,
BlendingLUT1Sequence: 0x00281404,
BlendingLUT1TransferFunction: 0x00281405,
BlendingWeightConstant: 0x00281406,
BlendingLookupTableDescriptor: 0x00281407,
BlendingLookupTableData: 0x00281408,
EnhancedPaletteColorLookupTableSequence: 0x0028140b,
BlendingLUT2Sequence: 0x0028140c,
BlendingLUT2TransferFunction: 0x0028140d,
DataPathID: 0x0028140e,
RGBLUTTransferFunction: 0x0028140f,
AlphaLUTTransferFunction: 0x00281410,
ICCProfile: 0x00282000,
ColorSpace: 0x00282002,
LossyImageCompression: 0x00282110,
LossyImageCompressionRatio: 0x00282112,
LossyImageCompressionMethod: 0x00282114,
ModalityLUTSequence: 0x00283000,
LUTDescriptor: 0x00283002,
LUTExplanation: 0x00283003,
ModalityLUTType: 0x00283004,
LUTData: 0x00283006,
VOILUTSequence: 0x00283010,
SoftcopyVOILUTSequence: 0x00283110,
ImagePresentationComments: 0x00284000,
BiPlaneAcquisitionSequence: 0x00285000,
RepresentativeFrameNumber: 0x00286010,
FrameNumbersOfInterest: 0x00286020,
FrameOfInterestDescription: 0x00286022,
FrameOfInterestType: 0x00286023,
MaskPointers: 0x00286030,
RWavePointer: 0x00286040,
MaskSubtractionSequence: 0x00286100,
MaskOperation: 0x00286101,
ApplicableFrameRange: 0x00286102,
MaskFrameNumbers: 0x00286110,
ContrastFrameAveraging: 0x00286112,
MaskSubPixelShift: 0x00286114,
TIDOffset: 0x00286120,
MaskOperationExplanation: 0x00286190,
EquipmentAdministratorSequence: 0x00287000,
NumberOfDisplaySubsystems: 0x00287001,
CurrentConfigurationID: 0x00287002,
DisplaySubsystemID: 0x00287003,
DisplaySubsystemName: 0x00287004,
DisplaySubsystemDescription: 0x00287005,
SystemStatus: 0x00287006,
SystemStatusComment: 0x00287007,
TargetLuminanceCharacteristicsSequence: 0x00287008,
LuminanceCharacteristicsID: 0x00287009,
DisplaySubsystemConfigurationSequence: 0x0028700a,
ConfigurationID: 0x0028700b,
ConfigurationName: 0x0028700c,
ConfigurationDescription: 0x0028700d,
ReferencedTargetLuminanceCharacteristicsID: 0x0028700e,
QAResultsSequence: 0x0028700f,
DisplaySubsystemQAResultsSequence: 0x00287010,
ConfigurationQAResultsSequence: 0x00287011,
MeasurementEquipmentSequence: 0x00287012,
MeasurementFunctions: 0x00287013,
MeasurementEquipmentType: 0x00287014,
VisualEvaluationResultSequence: 0x00287015,
DisplayCalibrationResultSequence: 0x00287016,
DDLValue: 0x00287017,
CIExyWhitePoint: 0x00287018,
DisplayFunctionType: 0x00287019,
GammaValue: 0x0028701a,
NumberOfLuminancePoints: 0x0028701b,
LuminanceResponseSequence: 0x0028701c,
TargetMinimumLuminance: 0x0028701d,
TargetMaximumLuminance: 0x0028701e,
LuminanceValue: 0x0028701f,
LuminanceResponseDescription: 0x00287020,
WhitePointFlag: 0x00287021,
DisplayDeviceTypeCodeSequence: 0x00287022,
DisplaySubsystemSequence: 0x00287023,
LuminanceResultSequence: 0x00287024,
AmbientLightValueSource: 0x00287025,
MeasuredCharacteristics: 0x00287026,
LuminanceUniformityResultSequence: 0x00287027,
VisualEvaluationTestSequence: 0x00287028,
TestResult: 0x00287029,
TestResultComment: 0x0028702a,
TestImageValidation: 0x0028702b,
TestPatternCodeSequence: 0x0028702c,
MeasurementPatternCodeSequence: 0x0028702d,
VisualEvaluationMethodCodeSequence: 0x0028702e,
PixelDataProviderURL: 0x00287fe0,
DataPointRows: 0x00289001,
DataPointColumns: 0x00289002,
SignalDomainColumns: 0x00289003,
LargestMonochromePixelValue: 0x00289099,
DataRepresentation: 0x00289108,
PixelMeasuresSequence: 0x00289110,
FrameVOILUTSequence: 0x00289132,
PixelValueTransformationSequence: 0x00289145,
SignalDomainRows: 0x00289235,
DisplayFilterPercentage: 0x00289411,
FramePixelShiftSequence: 0x00289415,
SubtractionItemID: 0x00289416,
PixelIntensityRelationshipLUTSequence: 0x00289422,
FramePixelDataPropertiesSequence: 0x00289443,
GeometricalProperties: 0x00289444,
GeometricMaximumDistortion: 0x00289445,
ImageProcessingApplied: 0x00289446,
MaskSelectionMode: 0x00289454,
LUTFunction: 0x00289474,
MaskVisibilityPercentage: 0x00289478,
PixelShiftSequence: 0x00289501,
RegionPixelShiftSequence: 0x00289502,
VerticesOfTheRegion: 0x00289503,
MultiFramePresentationSequence: 0x00289505,
PixelShiftFrameRange: 0x00289506,
LUTFrameRange: 0x00289507,
ImageToEquipmentMappingMatrix: 0x00289520,
EquipmentCoordinateSystemIdentification: 0x00289537,
StudyStatusID: 0x0032000a,
StudyPriorityID: 0x0032000c,
StudyIDIssuer: 0x00320012,
StudyVerifiedDate: 0x00320032,
StudyVerifiedTime: 0x00320033,
StudyReadDate: 0x00320034,
StudyReadTime: 0x00320035,
ScheduledStudyStartDate: 0x00321000,
ScheduledStudyStartTime: 0x00321001,
ScheduledStudyStopDate: 0x00321010,
ScheduledStudyStopTime: 0x00321011,
ScheduledStudyLocation: 0x00321020,
ScheduledStudyLocationAETitle: 0x00321021,
ReasonForStudy: 0x00321030,
RequestingPhysicianIdentificationSequence: 0x00321031,
RequestingPhysician: 0x00321032,
RequestingService: 0x00321033,
RequestingServiceCodeSequence: 0x00321034,
StudyArrivalDate: 0x00321040,
StudyArrivalTime: 0x00321041,
StudyCompletionDate: 0x00321050,
StudyCompletionTime: 0x00321051,
StudyComponentStatusID: 0x00321055,
RequestedProcedureDescription: 0x00321060,
RequestedProcedureCodeSequence: 0x00321064,
RequestedContrastAgent: 0x00321070,
StudyComments: 0x00324000,
ReferencedPatientAliasSequence: 0x00380004,
VisitStatusID: 0x00380008,
AdmissionID: 0x00380010,
IssuerOfAdmissionID: 0x00380011,
IssuerOfAdmissionIDSequence: 0x00380014,
RouteOfAdmissions: 0x00380016,
ScheduledAdmissionDate: 0x0038001a,
ScheduledAdmissionTime: 0x0038001b,
ScheduledDischargeDate: 0x0038001c,
ScheduledDischargeTime: 0x0038001d,
ScheduledPatientInstitutionResidence: 0x0038001e,
AdmittingDate: 0x00380020,
AdmittingTime: 0x00380021,
DischargeDate: 0x00380030,
DischargeTime: 0x00380032,
DischargeDiagnosisDescription: 0x00380040,
DischargeDiagnosisCodeSequence: 0x00380044,
SpecialNeeds: 0x00380050,
ServiceEpisodeID: 0x00380060,
IssuerOfServiceEpisodeID: 0x00380061,
ServiceEpisodeDescription: 0x00380062,
IssuerOfServiceEpisodeIDSequence: 0x00380064,
PertinentDocumentsSequence: 0x00380100,
PertinentResourcesSequence: 0x00380101,
ResourceDescription: 0x00380102,
CurrentPatientLocation: 0x00380300,
PatientInstitutionResidence: 0x00380400,
PatientState: 0x00380500,
PatientClinicalTrialParticipationSequence: 0x00380502,
VisitComments: 0x00384000,
WaveformOriginality: 0x003a0004,
NumberOfWaveformChannels: 0x003a0005,
NumberOfWaveformSamples: 0x003a0010,
SamplingFrequency: 0x003a001a,
MultiplexGroupLabel: 0x003a0020,
ChannelDefinitionSequence: 0x003a0200,
WaveformChannelNumber: 0x003a0202,
ChannelLabel: 0x003a0203,
ChannelStatus: 0x003a0205,
ChannelSourceSequence: 0x003a0208,
ChannelSourceModifiersSequence: 0x003a0209,
SourceWaveformSequence: 0x003a020a,
ChannelDerivationDescription: 0x003a020c,
ChannelSensitivity: 0x003a0210,
ChannelSensitivityUnitsSequence: 0x003a0211,
ChannelSensitivityCorrectionFactor: 0x003a0212,
ChannelBaseline: 0x003a0213,
ChannelTimeSkew: 0x003a0214,
ChannelSampleSkew: 0x003a0215,
ChannelOffset: 0x003a0218,
WaveformBitsStored: 0x003a021a,
FilterLowFrequency: 0x003a0220,
FilterHighFrequency: 0x003a0221,
NotchFilterFrequency: 0x003a0222,
NotchFilterBandwidth: 0x003a0223,
WaveformDataDisplayScale: 0x003a0230,
WaveformDisplayBackgroundCIELabValue: 0x003a0231,
WaveformPresentationGroupSequence: 0x003a0240,
PresentationGroupNumber: 0x003a0241,
ChannelDisplaySequence: 0x003a0242,
ChannelRecommendedDisplayCIELabValue: 0x003a0244,
ChannelPosition: 0x003a0245,
DisplayShadingFlag: 0x003a0246,
FractionalChannelDisplayScale: 0x003a0247,
AbsoluteChannelDisplayScale: 0x003a0248,
MultiplexedAudioChannelsDescriptionCodeSequence: 0x003a0300,
ChannelIdentificationCode: 0x003a0301,
ChannelMode: 0x003a0302,
ScheduledStationAETitle: 0x00400001,
ScheduledProcedureStepStartDate: 0x00400002,
ScheduledProcedureStepStartTime: 0x00400003,
ScheduledProcedureStepEndDate: 0x00400004,
ScheduledProcedureStepEndTime: 0x00400005,
ScheduledPerformingPhysicianName: 0x00400006,
ScheduledProcedureStepDescription: 0x00400007,
ScheduledProtocolCodeSequence: 0x00400008,
ScheduledProcedureStepID: 0x00400009,
StageCodeSequence: 0x0040000a,
ScheduledPerformingPhysicianIdentificationSequence: 0x0040000b,
ScheduledStationName: 0x00400010,
ScheduledProcedureStepLocation: 0x00400011,
PreMedication: 0x00400012,
ScheduledProcedureStepStatus: 0x00400020,
OrderPlacerIdentifierSequence: 0x00400026,
OrderFillerIdentifierSequence: 0x00400027,
LocalNamespaceEntityID: 0x00400031,
UniversalEntityID: 0x00400032,
UniversalEntityIDType: 0x00400033,
IdentifierTypeCode: 0x00400035,
AssigningFacilitySequence: 0x00400036,
AssigningJurisdictionCodeSequence: 0x00400039,
AssigningAgencyOrDepartmentCodeSequence: 0x0040003a,
ScheduledProcedureStepSequence: 0x00400100,
ReferencedNonImageCompositeSOPInstanceSequence: 0x00400220,
PerformedStationAETitle: 0x00400241,
PerformedStationName: 0x00400242,
PerformedLocation: 0x00400243,
PerformedProcedureStepStartDate: 0x00400244,
PerformedProcedureStepStartTime: 0x00400245,
PerformedProcedureStepEndDate: 0x00400250,
PerformedProcedureStepEndTime: 0x00400251,
PerformedProcedureStepStatus: 0x00400252,
PerformedProcedureStepID: 0x00400253,
PerformedProcedureStepDescription: 0x00400254,
PerformedProcedureTypeDescription: 0x00400255,
PerformedProtocolCodeSequence: 0x00400260,
PerformedProtocolType: 0x00400261,
ScheduledStepAttributesSequence: 0x00400270,
RequestAttributesSequence: 0x00400275,
CommentsOnThePerformedProcedureStep: 0x00400280,
PerformedProcedureStepDiscontinuationReasonCodeSequence: 0x00400281,
QuantitySequence: 0x00400293,
Quantity: 0x00400294,
MeasuringUnitsSequence: 0x00400295,
BillingItemSequence: 0x00400296,
TotalTimeOfFluoroscopy: 0x00400300,
TotalNumberOfExposures: 0x00400301,
EntranceDose: 0x00400302,
ExposedArea: 0x00400303,
DistanceSourceToEntrance: 0x00400306,
DistanceSourceToSupport: 0x00400307,
ExposureDoseSequence: 0x0040030e,
CommentsOnRadiationDose: 0x00400310,
XRayOutput: 0x00400312,
HalfValueLayer: 0x00400314,
OrganDose: 0x00400316,
OrganExposed: 0x00400318,
BillingProcedureStepSequence: 0x00400320,
FilmConsumptionSequence: 0x00400321,
BillingSuppliesAndDevicesSequence: 0x00400324,
ReferencedProcedureStepSequence: 0x00400330,
PerformedSeriesSequence: 0x00400340,
CommentsOnTheScheduledProcedureStep: 0x00400400,
ProtocolContextSequence: 0x00400440,
ContentItemModifierSequence: 0x00400441,
ScheduledSpecimenSequence: 0x00400500,
SpecimenAccessionNumber: 0x0040050a,
ContainerIdentifier: 0x00400512,
IssuerOfTheContainerIdentifierSequence: 0x00400513,
AlternateContainerIdentifierSequence: 0x00400515,
ContainerTypeCodeSequence: 0x00400518,
ContainerDescription: 0x0040051a,
ContainerComponentSequence: 0x00400520,
SpecimenSequence: 0x00400550,
SpecimenIdentifier: 0x00400551,
SpecimenDescriptionSequenceTrial: 0x00400552,
SpecimenDescriptionTrial: 0x00400553,
SpecimenUID: 0x00400554,
AcquisitionContextSequence: 0x00400555,
AcquisitionContextDescription: 0x00400556,
SpecimenTypeCodeSequence: 0x0040059a,
SpecimenDescriptionSequence: 0x00400560,
IssuerOfTheSpecimenIdentifierSequence: 0x00400562,
SpecimenShortDescription: 0x00400600,
SpecimenDetailedDescription: 0x00400602,
SpecimenPreparationSequence: 0x00400610,
SpecimenPreparationStepContentItemSequence: 0x00400612,
SpecimenLocalizationContentItemSequence: 0x00400620,
SlideIdentifier: 0x004006fa,
ImageCenterPointCoordinatesSequence: 0x0040071a,
XOffsetInSlideCoordinateSystem: 0x0040072a,
YOffsetInSlideCoordinateSystem: 0x0040073a,
ZOffsetInSlideCoordinateSystem: 0x0040074a,
PixelSpacingSequence: 0x004008d8,
CoordinateSystemAxisCodeSequence: 0x004008da,
MeasurementUnitsCodeSequence: 0x004008ea,
VitalStainCodeSequenceTrial: 0x004009f8,
RequestedProcedureID: 0x00401001,
ReasonForTheRequestedProcedure: 0x00401002,
RequestedProcedurePriority: 0x00401003,
PatientTransportArrangements: 0x00401004,
RequestedProcedureLocation: 0x00401005,
PlacerOrderNumberProcedure: 0x00401006,
FillerOrderNumberProcedure: 0x00401007,
ConfidentialityCode: 0x00401008,
ReportingPriority: 0x00401009,
ReasonForRequestedProcedureCodeSequence: 0x0040100a,
NamesOfIntendedRecipientsOfResults: 0x00401010,
IntendedRecipientsOfResultsIdentificationSequence: 0x00401011,
ReasonForPerformedProcedureCodeSequence: 0x00401012,
RequestedProcedureDescriptionTrial: 0x00401060,
PersonIdentificationCodeSequence: 0x00401101,
PersonAddress: 0x00401102,
PersonTelephoneNumbers: 0x00401103,
PersonTelecomInformation: 0x00401104,
RequestedProcedureComments: 0x00401400,
ReasonForTheImagingServiceRequest: 0x00402001,
IssueDateOfImagingServiceRequest: 0x00402004,
IssueTimeOfImagingServiceRequest: 0x00402005,
PlacerOrderNumberImagingServiceRequestRetired: 0x00402006,
FillerOrderNumberImagingServiceRequestRetired: 0x00402007,
OrderEnteredBy: 0x00402008,
OrderEntererLocation: 0x00402009,
OrderCallbackPhoneNumber: 0x00402010,
OrderCallbackTelecomInformation: 0x00402011,
PlacerOrderNumberImagingServiceRequest: 0x00402016,
FillerOrderNumberImagingServiceRequest: 0x00402017,
ImagingServiceRequestComments: 0x00402400,
ConfidentialityConstraintOnPatientDataDescription: 0x00403001,
GeneralPurposeScheduledProcedureStepStatus: 0x00404001,
GeneralPurposePerformedProcedureStepStatus: 0x00404002,
GeneralPurposeScheduledProcedureStepPriority: 0x00404003,
ScheduledProcessingApplicationsCodeSequence: 0x00404004,
ScheduledProcedureStepStartDateTime: 0x00404005,
MultipleCopiesFlag: 0x00404006,
PerformedProcessingApplicationsCodeSequence: 0x00404007,
HumanPerformerCodeSequence: 0x00404009,
ScheduledProcedureStepModificationDateTime: 0x00404010,
ExpectedCompletionDateTime: 0x00404011,
ResultingGeneralPurposePerformedProcedureStepsSequence: 0x00404015,
ReferencedGeneralPurposeScheduledProcedureStepSequence: 0x00404016,
ScheduledWorkitemCodeSequence: 0x00404018,
PerformedWorkitemCodeSequence: 0x00404019,
InputAvailabilityFlag: 0x00404020,
InputInformationSequence: 0x00404021,
RelevantInformationSequence: 0x00404022,
ReferencedGeneralPurposeScheduledProcedureStepTransactionUID: 0x00404023,
ScheduledStationNameCodeSequence: 0x00404025,
ScheduledStationClassCodeSequence: 0x00404026,
ScheduledStationGeographicLocationCodeSequence: 0x00404027,
PerformedStationNameCodeSequence: 0x00404028,
PerformedStationClassCodeSequence: 0x00404029,
PerformedStationGeographicLocationCodeSequence: 0x00404030,
RequestedSubsequentWorkitemCodeSequence: 0x00404031,
NonDICOMOutputCodeSequence: 0x00404032,
OutputInformationSequence: 0x00404033,
ScheduledHumanPerformersSequence: 0x00404034,
ActualHumanPerformersSequence: 0x00404035,
HumanPerformerOrganization: 0x00404036,
HumanPerformerName: 0x00404037,
RawDataHandling: 0x00404040,
InputReadinessState: 0x00404041,
PerformedProcedureStepStartDateTime: 0x00404050,
PerformedProcedureStepEndDateTime: 0x00404051,
ProcedureStepCancellationDateTime: 0x00404052,
OutputDestinationSequence: 0x00404070,
DICOMStorageSequence: 0x00404071,
STOWRSStorageSequence: 0x00404072,
StorageURL: 0x00404073,
XDSStorageSequence: 0x00404074,
EntranceDoseInmGy: 0x00408302,
EntranceDoseDerivation: 0x00408303,
ParametricMapFrameTypeSequence: 0x00409092,
ReferencedImageRealWorldValueMappingSequence: 0x00409094,
RealWorldValueMappingSequence: 0x00409096,
PixelValueMappingCodeSequence: 0x00409098,
LUTLabel: 0x00409210,
RealWorldValueLastValueMapped: 0x00409211,
RealWorldValueLUTData: 0x00409212,
DoubleFloatRealWorldValueLastValueMapped: 0x00409213,
DoubleFloatRealWorldValueFirstValueMapped: 0x00409214,
RealWorldValueFirstValueMapped: 0x00409216,
QuantityDefinitionSequence: 0x00409220,
RealWorldValueIntercept: 0x00409224,
RealWorldValueSlope: 0x00409225,
FindingsFlagTrial: 0x0040a007,
RelationshipType: 0x0040a010,
FindingsSequenceTrial: 0x0040a020,
FindingsGroupUIDTrial: 0x0040a021,
ReferencedFindingsGroupUIDTrial: 0x0040a022,
FindingsGroupRecordingDateTrial: 0x0040a023,
FindingsGroupRecordingTimeTrial: 0x0040a024,
FindingsSourceCategoryCodeSequenceTrial: 0x0040a026,
VerifyingOrganization: 0x0040a027,
DocumentingOrganizationIdentifierCodeSequenceTrial: 0x0040a028,
VerificationDateTime: 0x0040a030,
ObservationDateTime: 0x0040a032,
ValueType: 0x0040a040,
ConceptNameCodeSequence: 0x0040a043,
MeasurementPrecisionDescriptionTrial: 0x0040a047,
ContinuityOfContent: 0x0040a050,
UrgencyOrPriorityAlertsTrial: 0x0040a057,
SequencingIndicatorTrial: 0x0040a060,
DocumentIdentifierCodeSequenceTrial: 0x0040a066,
DocumentAuthorTrial: 0x0040a067,
DocumentAuthorIdentifierCodeSequenceTrial: 0x0040a068,
IdentifierCodeSequenceTrial: 0x0040a070,
VerifyingObserverSequence: 0x0040a073,
ObjectBinaryIdentifierTrial: 0x0040a074,
VerifyingObserverName: 0x0040a075,
DocumentingObserverIdentifierCodeSequenceTrial: 0x0040a076,
AuthorObserverSequence: 0x0040a078,
ParticipantSequence: 0x0040a07a,
CustodialOrganizationSequence: 0x0040a07c,
ParticipationType: 0x0040a080,
ParticipationDateTime: 0x0040a082,
ObserverType: 0x0040a084,
ProcedureIdentifierCodeSequenceTrial: 0x0040a085,
VerifyingObserverIdentificationCodeSequence: 0x0040a088,
ObjectDirectoryBinaryIdentifierTrial: 0x0040a089,
EquivalentCDADocumentSequence: 0x0040a090,
ReferencedWaveformChannels: 0x0040a0b0,
DateOfDocumentOrVerbalTransactionTrial: 0x0040a110,
TimeOfDocumentCreationOrVerbalTransactionTrial: 0x0040a112,
DateTime: 0x0040a120,
Date: 0x0040a121,
Time: 0x0040a122,
PersonName: 0x0040a123,
UID: 0x0040a124,
ReportStatusIDTrial: 0x0040a125,
TemporalRangeType: 0x0040a130,
ReferencedSamplePositions: 0x0040a132,
ReferencedFrameNumbers: 0x0040a136,
ReferencedTimeOffsets: 0x0040a138,
ReferencedDateTime: 0x0040a13a,
TextValue: 0x0040a160,
FloatingPointValue: 0x0040a161,
RationalNumeratorValue: 0x0040a162,
RationalDenominatorValue: 0x0040a163,
ObservationCategoryCodeSequenceTrial: 0x0040a167,
ConceptCodeSequence: 0x0040a168,
BibliographicCitationTrial: 0x0040a16a,
PurposeOfReferenceCodeSequence: 0x0040a170,
ObservationUID: 0x0040a171,
ReferencedObservationUIDTrial: 0x0040a172,
ReferencedObservationClassTrial: 0x0040a173,
ReferencedObjectObservationClassTrial: 0x0040a174,
AnnotationGroupNumber: 0x0040a180,
ObservationDateTrial: 0x0040a192,
ObservationTimeTrial: 0x0040a193,
MeasurementAutomationTrial: 0x0040a194,
ModifierCodeSequence: 0x0040a195,
IdentificationDescriptionTrial: 0x0040a224,
CoordinatesSetGeometricTypeTrial: 0x0040a290,
AlgorithmCodeSequenceTrial: 0x0040a296,
AlgorithmDescriptionTrial: 0x0040a297,
PixelCoordinatesSetTrial: 0x0040a29a,
MeasuredValueSequence: 0x0040a300,
NumericValueQualifierCodeSequence: 0x0040a301,
CurrentObserverTrial: 0x0040a307,
NumericValue: 0x0040a30a,
ReferencedAccessionSequenceTrial: 0x0040a313,
ReportStatusCommentTrial: 0x0040a33a,
ProcedureContextSequenceTrial: 0x0040a340,
VerbalSourceTrial: 0x0040a352,
AddressTrial: 0x0040a353,
TelephoneNumberTrial: 0x0040a354,
VerbalSourceIdentifierCodeSequenceTrial: 0x0040a358,
PredecessorDocumentsSequence: 0x0040a360,
ReferencedRequestSequence: 0x0040a370,
PerformedProcedureCodeSequence: 0x0040a372,
CurrentRequestedProcedureEvidenceSequence: 0x0040a375,
ReportDetailSequenceTrial: 0x0040a380,
PertinentOtherEvidenceSequence: 0x0040a385,
HL7StructuredDocumentReferenceSequence: 0x0040a390,
ObservationSubjectUIDTrial: 0x0040a402,
ObservationSubjectClassTrial: 0x0040a403,
ObservationSubjectTypeCodeSequenceTrial: 0x0040a404,
CompletionFlag: 0x0040a491,
CompletionFlagDescription: 0x0040a492,
VerificationFlag: 0x0040a493,
ArchiveRequested: 0x0040a494,
PreliminaryFlag: 0x0040a496,
ContentTemplateSequence: 0x0040a504,
IdenticalDocumentsSequence: 0x0040a525,
ObservationSubjectContextFlagTrial: 0x0040a600,
ObserverContextFlagTrial: 0x0040a601,
ProcedureContextFlagTrial: 0x0040a603,
ContentSequence: 0x0040a730,
RelationshipSequenceTrial: 0x0040a731,
RelationshipTypeCodeSequenceTrial: 0x0040a732,
LanguageCodeSequenceTrial: 0x0040a744,
UniformResourceLocatorTrial: 0x0040a992,
WaveformAnnotationSequence: 0x0040b020,
TemplateIdentifier: 0x0040db00,
TemplateVersion: 0x0040db06,
TemplateLocalVersion: 0x0040db07,
TemplateExtensionFlag: 0x0040db0b,
TemplateExtensionOrganizationUID: 0x0040db0c,
TemplateExtensionCreatorUID: 0x0040db0d,
ReferencedContentItemIdentifier: 0x0040db73,
HL7InstanceIdentifier: 0x0040e001,
HL7DocumentEffectiveTime: 0x0040e004,
HL7DocumentTypeCodeSequence: 0x0040e006,
DocumentClassCodeSequence: 0x0040e008,
RetrieveURI: 0x0040e010,
RetrieveLocationUID: 0x0040e011,
TypeOfInstances: 0x0040e020,
DICOMRetrievalSequence: 0x0040e021,
DICOMMediaRetrievalSequence: 0x0040e022,
WADORetrievalSequence: 0x0040e023,
XDSRetrievalSequence: 0x0040e024,
WADORSRetrievalSequence: 0x0040e025,
RepositoryUniqueID: 0x0040e030,
HomeCommunityID: 0x0040e031,
DocumentTitle: 0x00420010,
EncapsulatedDocument: 0x00420011,
MIMETypeOfEncapsulatedDocument: 0x00420012,
SourceInstanceSequence: 0x00420013,
ListOfMIMETypes: 0x00420014,
ProductPackageIdentifier: 0x00440001,
SubstanceAdministrationApproval: 0x00440002,
ApprovalStatusFurtherDescription: 0x00440003,
ApprovalStatusDateTime: 0x00440004,
ProductTypeCodeSequence: 0x00440007,
ProductName: 0x00440008,
ProductDescription: 0x00440009,
ProductLotIdentifier: 0x0044000a,
ProductExpirationDateTime: 0x0044000b,
SubstanceAdministrationDateTime: 0x00440010,
SubstanceAdministrationNotes: 0x00440011,
SubstanceAdministrationDeviceID: 0x00440012,
ProductParameterSequence: 0x00440013,
SubstanceAdministrationParameterSequence: 0x00440019,
ApprovalSequence: 0x00440100,
AssertionCodeSequence: 0x00440101,
AssertionUID: 0x00440102,
AsserterIdentificationSequence: 0x00440103,
AssertionDateTime: 0x00440104,
AssertionExpirationDateTime: 0x00440105,
AssertionComments: 0x00440106,
RelatedAssertionSequence: 0x00440107,
ReferencedAssertionUID: 0x00440108,
ApprovalSubjectSequence: 0x00440109,
OrganizationalRoleCodeSequence: 0x0044010a,
LensDescription: 0x00460012,
RightLensSequence: 0x00460014,
LeftLensSequence: 0x00460015,
UnspecifiedLateralityLensSequence: 0x00460016,
CylinderSequence: 0x00460018,
PrismSequence: 0x00460028,
HorizontalPrismPower: 0x00460030,
HorizontalPrismBase: 0x00460032,
VerticalPrismPower: 0x00460034,
VerticalPrismBase: 0x00460036,
LensSegmentType: 0x00460038,
OpticalTransmittance: 0x00460040,
ChannelWidth: 0x00460042,
PupilSize: 0x00460044,
CornealSize: 0x00460046,
AutorefractionRightEyeSequence: 0x00460050,
AutorefractionLeftEyeSequence: 0x00460052,
DistancePupillaryDistance: 0x00460060,
NearPupillaryDistance: 0x00460062,
IntermediatePupillaryDistance: 0x00460063,
OtherPupillaryDistance: 0x00460064,
KeratometryRightEyeSequence: 0x00460070,
KeratometryLeftEyeSequence: 0x00460071,
SteepKeratometricAxisSequence: 0x00460074,
RadiusOfCurvature: 0x00460075,
KeratometricPower: 0x00460076,
KeratometricAxis: 0x00460077,
FlatKeratometricAxisSequence: 0x00460080,
BackgroundColor: 0x00460092,
Optotype: 0x00460094,
OptotypePresentation: 0x00460095,
SubjectiveRefractionRightEyeSequence: 0x00460097,
SubjectiveRefractionLeftEyeSequence: 0x00460098,
AddNearSequence: 0x00460100,
AddIntermediateSequence: 0x00460101,
AddOtherSequence: 0x00460102,
AddPower: 0x00460104,
ViewingDistance: 0x00460106,
VisualAcuityTypeCodeSequence: 0x00460121,
VisualAcuityRightEyeSequence: 0x00460122,
VisualAcuityLeftEyeSequence: 0x00460123,
VisualAcuityBothEyesOpenSequence: 0x00460124,
ViewingDistanceType: 0x00460125,
VisualAcuityModifiers: 0x00460135,
DecimalVisualAcuity: 0x00460137,
OptotypeDetailedDefinition: 0x00460139,
ReferencedRefractiveMeasurementsSequence: 0x00460145,
SpherePower: 0x00460146,
CylinderPower: 0x00460147,
CornealTopographySurface: 0x00460201,
CornealVertexLocation: 0x00460202,
PupilCentroidXCoordinate: 0x00460203,
PupilCentroidYCoordinate: 0x00460204,
EquivalentPupilRadius: 0x00460205,
CornealTopographyMapTypeCodeSequence: 0x00460207,
VerticesOfTheOutlineOfPupil: 0x00460208,
CornealTopographyMappingNormalsSequence: 0x00460210,
MaximumCornealCurvatureSequence: 0x00460211,
MaximumCornealCurvature: 0x00460212,
MaximumCornealCurvatureLocation: 0x00460213,
MinimumKeratometricSequence: 0x00460215,
SimulatedKeratometricCylinderSequence: 0x00460218,
AverageCornealPower: 0x00460220,
CornealISValue: 0x00460224,
AnalyzedArea: 0x00460227,
SurfaceRegularityIndex: 0x00460230,
SurfaceAsymmetryIndex: 0x00460232,
CornealEccentricityIndex: 0x00460234,
KeratoconusPredictionIndex: 0x00460236,
DecimalPotentialVisualAcuity: 0x00460238,
CornealTopographyMapQualityEvaluation: 0x00460242,
SourceImageCornealProcessedDataSequence: 0x00460244,
CornealPointLocation: 0x00460247,
CornealPointEstimated: 0x00460248,
AxialPower: 0x00460249,
TangentialPower: 0x00460250,
RefractivePower: 0x00460251,
RelativeElevation: 0x00460252,
CornealWavefront: 0x00460253,
ImagedVolumeWidth: 0x00480001,
ImagedVolumeHeight: 0x00480002,
ImagedVolumeDepth: 0x00480003,
TotalPixelMatrixColumns: 0x00480006,
TotalPixelMatrixRows: 0x00480007,
TotalPixelMatrixOriginSequence: 0x00480008,
SpecimenLabelInImage: 0x00480010,
FocusMethod: 0x00480011,
ExtendedDepthOfField: 0x00480012,
NumberOfFocalPlanes: 0x00480013,
DistanceBetweenFocalPlanes: 0x00480014,
RecommendedAbsentPixelCIELabValue: 0x00480015,
IlluminatorTypeCodeSequence: 0x00480100,
ImageOrientationSlide: 0x00480102,
OpticalPathSequence: 0x00480105,
OpticalPathIdentifier: 0x00480106,
OpticalPathDescription: 0x00480107,
IlluminationColorCodeSequence: 0x00480108,
SpecimenReferenceSequence: 0x00480110,
CondenserLensPower: 0x00480111,
ObjectiveLensPower: 0x00480112,
ObjectiveLensNumericalAperture: 0x00480113,
PaletteColorLookupTableSequence: 0x00480120,
ReferencedImageNavigationSequence: 0x00480200,
TopLeftHandCornerOfLocalizerArea: 0x00480201,
BottomRightHandCornerOfLocalizerArea: 0x00480202,
OpticalPathIdentificationSequence: 0x00480207,
PlanePositionSlideSequence: 0x0048021a,
ColumnPositionInTotalImagePixelMatrix: 0x0048021e,
RowPositionInTotalImagePixelMatrix: 0x0048021f,
PixelOriginInterpretation: 0x00480301,
CalibrationImage: 0x00500004,
DeviceSequence: 0x00500010,
ContainerComponentTypeCodeSequence: 0x00500012,
ContainerComponentThickness: 0x00500013,
DeviceLength: 0x00500014,
ContainerComponentWidth: 0x00500015,
DeviceDiameter: 0x00500016,
DeviceDiameterUnits: 0x00500017,
DeviceVolume: 0x00500018,
InterMarkerDistance: 0x00500019,
ContainerComponentMaterial: 0x0050001a,
ContainerComponentID: 0x0050001b,
ContainerComponentLength: 0x0050001c,
ContainerComponentDiameter: 0x0050001d,
ContainerComponentDescription: 0x0050001e,
DeviceDescription: 0x00500020,
ContrastBolusIngredientPercentByVolume: 0x00520001,
OCTFocalDistance: 0x00520002,
BeamSpotSize: 0x00520003,
EffectiveRefractiveIndex: 0x00520004,
OCTAcquisitionDomain: 0x00520006,
OCTOpticalCenterWavelength: 0x00520007,
AxialResolution: 0x00520008,
RangingDepth: 0x00520009,
ALineRate: 0x00520011,
ALinesPerFrame: 0x00520012,
CatheterRotationalRate: 0x00520013,
ALinePixelSpacing: 0x00520014,
ModeOfPercutaneousAccessSequence: 0x00520016,
IntravascularOCTFrameTypeSequence: 0x00520025,
OCTZOffsetApplied: 0x00520026,
IntravascularFrameContentSequence: 0x00520027,
IntravascularLongitudinalDistance: 0x00520028,
IntravascularOCTFrameContentSequence: 0x00520029,
OCTZOffsetCorrection: 0x00520030,
CatheterDirectionOfRotation: 0x00520031,
SeamLineLocation: 0x00520033,
FirstALineLocation: 0x00520034,
SeamLineIndex: 0x00520036,
NumberOfPaddedALines: 0x00520038,
InterpolationType: 0x00520039,
RefractiveIndexApplied: 0x0052003a,
EnergyWindowVector: 0x00540010,
NumberOfEnergyWindows: 0x00540011,
EnergyWindowInformationSequence: 0x00540012,
EnergyWindowRangeSequence: 0x00540013,
EnergyWindowLowerLimit: 0x00540014,
EnergyWindowUpperLimit: 0x00540015,
RadiopharmaceuticalInformationSequence: 0x00540016,
ResidualSyringeCounts: 0x00540017,
EnergyWindowName: 0x00540018,
DetectorVector: 0x00540020,
NumberOfDetectors: 0x00540021,
DetectorInformationSequence: 0x00540022,
PhaseVector: 0x00540030,
NumberOfPhases: 0x00540031,
PhaseInformationSequence: 0x00540032,
NumberOfFramesInPhase: 0x00540033,
PhaseDelay: 0x00540036,
PauseBetweenFrames: 0x00540038,
PhaseDescription: 0x00540039,
RotationVector: 0x00540050,
NumberOfRotations: 0x00540051,
RotationInformationSequence: 0x00540052,
NumberOfFramesInRotation: 0x00540053,
RRIntervalVector: 0x00540060,
NumberOfRRIntervals: 0x00540061,
GatedInformationSequence: 0x00540062,
DataInformationSequence: 0x00540063,
TimeSlotVector: 0x00540070,
NumberOfTimeSlots: 0x00540071,
TimeSlotInformationSequence: 0x00540072,
TimeSlotTime: 0x00540073,
SliceVector: 0x00540080,
NumberOfSlices: 0x00540081,
AngularViewVector: 0x00540090,
TimeSliceVector: 0x00540100,
NumberOfTimeSlices: 0x00540101,
StartAngle: 0x00540200,
TypeOfDetectorMotion: 0x00540202,
TriggerVector: 0x00540210,
NumberOfTriggersInPhase: 0x00540211,
ViewCodeSequence: 0x00540220,
ViewModifierCodeSequence: 0x00540222,
RadionuclideCodeSequence: 0x00540300,
AdministrationRouteCodeSequence: 0x00540302,
RadiopharmaceuticalCodeSequence: 0x00540304,
CalibrationDataSequence: 0x00540306,
EnergyWindowNumber: 0x00540308,
ImageID: 0x00540400,
PatientOrientationCodeSequence: 0x00540410,
PatientOrientationModifierCodeSequence: 0x00540412,
PatientGantryRelationshipCodeSequence: 0x00540414,
SliceProgressionDirection: 0x00540500,
ScanProgressionDirection: 0x00540501,
SeriesType: 0x00541000,
Units: 0x00541001,
CountsSource: 0x00541002,
ReprojectionMethod: 0x00541004,
SUVType: 0x00541006,
RandomsCorrectionMethod: 0x00541100,
AttenuationCorrectionMethod: 0x00541101,
DecayCorrection: 0x00541102,
ReconstructionMethod: 0x00541103,
DetectorLinesOfResponseUsed: 0x00541104,
ScatterCorrectionMethod: 0x00541105,
AxialAcceptance: 0x00541200,
AxialMash: 0x00541201,
TransverseMash: 0x00541202,
DetectorElementSize: 0x00541203,
CoincidenceWindowWidth: 0x00541210,
SecondaryCountsType: 0x00541220,
FrameReferenceTime: 0x00541300,
PrimaryPromptsCountsAccumulated: 0x00541310,
SecondaryCountsAccumulated: 0x00541311,
SliceSensitivityFactor: 0x00541320,
DecayFactor: 0x00541321,
DoseCalibrationFactor: 0x00541322,
ScatterFractionFactor: 0x00541323,
DeadTimeFactor: 0x00541324,
ImageIndex: 0x00541330,
CountsIncluded: 0x00541400,
DeadTimeCorrectionFlag: 0x00541401,
HistogramSequence: 0x00603000,
HistogramNumberOfBins: 0x00603002,
HistogramFirstBinValue: 0x00603004,
HistogramLastBinValue: 0x00603006,
HistogramBinWidth: 0x00603008,
HistogramExplanation: 0x00603010,
HistogramData: 0x00603020,
SegmentationType: 0x00620001,
SegmentSequence: 0x00620002,
SegmentedPropertyCategoryCodeSequence: 0x00620003,
SegmentNumber: 0x00620004,
SegmentLabel: 0x00620005,
SegmentDescription: 0x00620006,
SegmentationAlgorithmIdentificationSequence: 0x00620007,
SegmentAlgorithmType: 0x00620008,
SegmentAlgorithmName: 0x00620009,
SegmentIdentificationSequence: 0x0062000a,
ReferencedSegmentNumber: 0x0062000b,
RecommendedDisplayGrayscaleValue: 0x0062000c,
RecommendedDisplayCIELabValue: 0x0062000d,
MaximumFractionalValue: 0x0062000e,
SegmentedPropertyTypeCodeSequence: 0x0062000f,
SegmentationFractionalType: 0x00620010,
SegmentedPropertyTypeModifierCodeSequence: 0x00620011,
UsedSegmentsSequence: 0x00620012,
TrackingID: 0x00620020,
TrackingUID: 0x00620021,
DeformableRegistrationSequence: 0x00640002,
SourceFrameOfReferenceUID: 0x00640003,
DeformableRegistrationGridSequence: 0x00640005,
GridDimensions: 0x00640007,
GridResolution: 0x00640008,
VectorGridData: 0x00640009,
PreDeformationMatrixRegistrationSequence: 0x0064000f,
PostDeformationMatrixRegistrationSequence: 0x00640010,
NumberOfSurfaces: 0x00660001,
SurfaceSequence: 0x00660002,
SurfaceNumber: 0x00660003,
SurfaceComments: 0x00660004,
SurfaceProcessing: 0x00660009,
SurfaceProcessingRatio: 0x0066000a,
SurfaceProcessingDescription: 0x0066000b,
RecommendedPresentationOpacity: 0x0066000c,
RecommendedPresentationType: 0x0066000d,
FiniteVolume: 0x0066000e,
Manifold: 0x00660010,
SurfacePointsSequence: 0x00660011,
SurfacePointsNormalsSequence: 0x00660012,
SurfaceMeshPrimitivesSequence: 0x00660013,
NumberOfSurfacePoints: 0x00660015,
PointCoordinatesData: 0x00660016,
PointPositionAccuracy: 0x00660017,
MeanPointDistance: 0x00660018,
MaximumPointDistance: 0x00660019,
PointsBoundingBoxCoordinates: 0x0066001a,
AxisOfRotation: 0x0066001b,
CenterOfRotation: 0x0066001c,
NumberOfVectors: 0x0066001e,
VectorDimensionality: 0x0066001f,
VectorAccuracy: 0x00660020,
VectorCoordinateData: 0x00660021,
TrianglePointIndexList: 0x00660023,
EdgePointIndexList: 0x00660024,
VertexPointIndexList: 0x00660025,
TriangleStripSequence: 0x00660026,
TriangleFanSequence: 0x00660027,
LineSequence: 0x00660028,
PrimitivePointIndexList: 0x00660029,
SurfaceCount: 0x0066002a,
ReferencedSurfaceSequence: 0x0066002b,
ReferencedSurfaceNumber: 0x0066002c,
SegmentSurfaceGenerationAlgorithmIdentificationSequence: 0x0066002d,
SegmentSurfaceSourceInstanceSequence: 0x0066002e,
AlgorithmFamilyCodeSequence: 0x0066002f,
AlgorithmNameCodeSequence: 0x00660030,
AlgorithmVersion: 0x00660031,
AlgorithmParameters: 0x00660032,
FacetSequence: 0x00660034,
SurfaceProcessingAlgorithmIdentificationSequence: 0x00660035,
AlgorithmName: 0x00660036,
RecommendedPointRadius: 0x00660037,
RecommendedLineThickness: 0x00660038,
LongPrimitivePointIndexList: 0x00660040,
LongTrianglePointIndexList: 0x00660041,
LongEdgePointIndexList: 0x00660042,
LongVertexPointIndexList: 0x00660043,
TrackSetSequence: 0x00660101,
TrackSequence: 0x00660102,
RecommendedDisplayCIELabValueList: 0x00660103,
TrackingAlgorithmIdentificationSequence: 0x00660104,
TrackSetNumber: 0x00660105,
TrackSetLabel: 0x00660106,
TrackSetDescription: 0x00660107,
TrackSetAnatomicalTypeCodeSequence: 0x00660108,
MeasurementsSequence: 0x00660121,
TrackSetStatisticsSequence: 0x00660124,
FloatingPointValues: 0x00660125,
TrackPointIndexList: 0x00660129,
TrackStatisticsSequence: 0x00660130,
MeasurementValuesSequence: 0x00660132,
DiffusionAcquisitionCodeSequence: 0x00660133,
DiffusionModelCodeSequence: 0x00660134,
ImplantSize: 0x00686210,
ImplantTemplateVersion: 0x00686221,
ReplacedImplantTemplateSequence: 0x00686222,
ImplantType: 0x00686223,
DerivationImplantTemplateSequence: 0x00686224,
OriginalImplantTemplateSequence: 0x00686225,
EffectiveDateTime: 0x00686226,
ImplantTargetAnatomySequence: 0x00686230,
InformationFromManufacturerSequence: 0x00686260,
NotificationFromManufacturerSequence: 0x00686265,
InformationIssueDateTime: 0x00686270,
InformationSummary: 0x00686280,
ImplantRegulatoryDisapprovalCodeSequence: 0x006862a0,
OverallTemplateSpatialTolerance: 0x006862a5,
HPGLDocumentSequence: 0x006862c0,
HPGLDocumentID: 0x006862d0,
HPGLDocumentLabel: 0x006862d5,
ViewOrientationCodeSequence: 0x006862e0,
ViewOrientationModifierCodeSequence: 0x006862f0,
HPGLDocumentScaling: 0x006862f2,
HPGLDocument: 0x00686300,
HPGLContourPenNumber: 0x00686310,
HPGLPenSequence: 0x00686320,
HPGLPenNumber: 0x00686330,
HPGLPenLabel: 0x00686340,
HPGLPenDescription: 0x00686345,
RecommendedRotationPoint: 0x00686346,
BoundingRectangle: 0x00686347,
ImplantTemplate3DModelSurfaceNumber: 0x00686350,
SurfaceModelDescriptionSequence: 0x00686360,
SurfaceModelLabel: 0x00686380,
SurfaceModelScalingFactor: 0x00686390,
MaterialsCodeSequence: 0x006863a0,
CoatingMaterialsCodeSequence: 0x006863a4,
ImplantTypeCodeSequence: 0x006863a8,
FixationMethodCodeSequence: 0x006863ac,
MatingFeatureSetsSequence: 0x006863b0,
MatingFeatureSetID: 0x006863c0,
MatingFeatureSetLabel: 0x006863d0,
MatingFeatureSequence: 0x006863e0,
MatingFeatureID: 0x006863f0,
MatingFeatureDegreeOfFreedomSequence: 0x00686400,
DegreeOfFreedomID: 0x00686410,
DegreeOfFreedomType: 0x00686420,
TwoDMatingFeatureCoordinatesSequence: 0x00686430,
ReferencedHPGLDocumentID: 0x00686440,
TwoDMatingPoint: 0x00686450,
TwoDMatingAxes: 0x00686460,
TwoDDegreeOfFreedomSequence: 0x00686470,
ThreeDDegreeOfFreedomAxis: 0x00686490,
RangeOfFreedom: 0x006864a0,
ThreeDMatingPoint: 0x006864c0,
ThreeDMatingAxes: 0x006864d0,
TwoDDegreeOfFreedomAxis: 0x006864f0,
PlanningLandmarkPointSequence: 0x00686500,
PlanningLandmarkLineSequence: 0x00686510,
PlanningLandmarkPlaneSequence: 0x00686520,
PlanningLandmarkID: 0x00686530,
PlanningLandmarkDescription: 0x00686540,
PlanningLandmarkIdentificationCodeSequence: 0x00686545,
TwoDPointCoordinatesSequence: 0x00686550,
TwoDPointCoordinates: 0x00686560,
ThreeDPointCoordinates: 0x00686590,
TwoDLineCoordinatesSequence: 0x006865a0,
TwoDLineCoordinates: 0x006865b0,
ThreeDLineCoordinates: 0x006865d0,
TwoDPlaneCoordinatesSequence: 0x006865e0,
TwoDPlaneIntersection: 0x006865f0,
ThreeDPlaneOrigin: 0x00686610,
ThreeDPlaneNormal: 0x00686620,
GraphicAnnotationSequence: 0x00700001,
GraphicLayer: 0x00700002,
BoundingBoxAnnotationUnits: 0x00700003,
AnchorPointAnnotationUnits: 0x00700004,
GraphicAnnotationUnits: 0x00700005,
UnformattedTextValue: 0x00700006,
TextObjectSequence: 0x00700008,
GraphicObjectSequence: 0x00700009,
BoundingBoxTopLeftHandCorner: 0x00700010,
BoundingBoxBottomRightHandCorner: 0x00700011,
BoundingBoxTextHorizontalJustification: 0x00700012,
AnchorPoint: 0x00700014,
AnchorPointVisibility: 0x00700015,
GraphicDimensions: 0x00700020,
NumberOfGraphicPoints: 0x00700021,
GraphicData: 0x00700022,
GraphicType: 0x00700023,
GraphicFilled: 0x00700024,
ImageRotationRetired: 0x00700040,
ImageHorizontalFlip: 0x00700041,
ImageRotation: 0x00700042,
DisplayedAreaTopLeftHandCornerTrial: 0x00700050,
DisplayedAreaBottomRightHandCornerTrial: 0x00700051,
DisplayedAreaTopLeftHandCorner: 0x00700052,
DisplayedAreaBottomRightHandCorner: 0x00700053,
DisplayedAreaSelectionSequence: 0x0070005a,
GraphicLayerSequence: 0x00700060,
GraphicLayerOrder: 0x00700062,
GraphicLayerRecommendedDisplayGrayscaleValue: 0x00700066,
GraphicLayerRecommendedDisplayRGBValue: 0x00700067,
GraphicLayerDescription: 0x00700068,
ContentLabel: 0x00700080,
ContentDescription: 0x00700081,
PresentationCreationDate: 0x00700082,
PresentationCreationTime: 0x00700083,
ContentCreatorName: 0x00700084,
ContentCreatorIdentificationCodeSequence: 0x00700086,
AlternateContentDescriptionSequence: 0x00700087,
PresentationSizeMode: 0x00700100,
PresentationPixelSpacing: 0x00700101,
PresentationPixelAspectRatio: 0x00700102,
PresentationPixelMagnificationRatio: 0x00700103,
GraphicGroupLabel: 0x00700207,
GraphicGroupDescription: 0x00700208,
CompoundGraphicSequence: 0x00700209,
CompoundGraphicInstanceID: 0x00700226,
FontName: 0x00700227,
FontNameType: 0x00700228,
CSSFontName: 0x00700229,
RotationAngle: 0x00700230,
TextStyleSequence: 0x00700231,
LineStyleSequence: 0x00700232,
FillStyleSequence: 0x00700233,
GraphicGroupSequence: 0x00700234,
TextColorCIELabValue: 0x00700241,
HorizontalAlignment: 0x00700242,
VerticalAlignment: 0x00700243,
ShadowStyle: 0x00700244,
ShadowOffsetX: 0x00700245,
ShadowOffsetY: 0x00700246,
ShadowColorCIELabValue: 0x00700247,
Underlined: 0x00700248,
Bold: 0x00700249,
Italic: 0x00700250,
PatternOnColorCIELabValue: 0x00700251,
PatternOffColorCIELabValue: 0x00700252,
LineThickness: 0x00700253,
LineDashingStyle: 0x00700254,
LinePattern: 0x00700255,
FillPattern: 0x00700256,
FillMode: 0x00700257,
ShadowOpacity: 0x00700258,
GapLength: 0x00700261,
DiameterOfVisibility: 0x00700262,
RotationPoint: 0x00700273,
TickAlignment: 0x00700274,
ShowTickLabel: 0x00700278,
TickLabelAlignment: 0x00700279,
CompoundGraphicUnits: 0x00700282,
PatternOnOpacity: 0x00700284,
PatternOffOpacity: 0x00700285,
MajorTicksSequence: 0x00700287,
TickPosition: 0x00700288,
TickLabel: 0x00700289,
CompoundGraphicType: 0x00700294,
GraphicGroupID: 0x00700295,
ShapeType: 0x00700306,
RegistrationSequence: 0x00700308,
MatrixRegistrationSequence: 0x00700309,
MatrixSequence: 0x0070030a,
FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix: 0x0070030b,
FrameOfReferenceTransformationMatrixType: 0x0070030c,
RegistrationTypeCodeSequence: 0x0070030d,
FiducialDescription: 0x0070030f,
FiducialIdentifier: 0x00700310,
FiducialIdentifierCodeSequence: 0x00700311,
ContourUncertaintyRadius: 0x00700312,
UsedFiducialsSequence: 0x00700314,
GraphicCoordinatesDataSequence: 0x00700318,
FiducialUID: 0x0070031a,
ReferencedFiducialUID: 0x0070031b,
FiducialSetSequence: 0x0070031c,
FiducialSequence: 0x0070031e,
FiducialsPropertyCategoryCodeSequence: 0x0070031f,
GraphicLayerRecommendedDisplayCIELabValue: 0x00700401,
BlendingSequence: 0x00700402,
RelativeOpacity: 0x00700403,
ReferencedSpatialRegistrationSequence: 0x00700404,
BlendingPosition: 0x00700405,
PresentationDisplayCollectionUID: 0x00701101,
PresentationSequenceCollectionUID: 0x00701102,
PresentationSequencePositionIndex: 0x00701103,
RenderedImageReferenceSequence: 0x00701104,
VolumetricPresentationStateInputSequence: 0x00701201,
PresentationInputType: 0x00701202,
InputSequencePositionIndex: 0x00701203,
Crop: 0x00701204,
CroppingSpecificationIndex: 0x00701205,
CompositingMethod: 0x00701206,
VolumetricPresentationInputNumber: 0x00701207,
ImageVolumeGeometry: 0x00701208,
VolumetricPresentationInputSetUID: 0x00701209,
VolumetricPresentationInputSetSequence: 0x0070120a,
GlobalCrop: 0x0070120b,
GlobalCroppingSpecificationIndex: 0x0070120c,
RenderingMethod: 0x0070120d,
VolumeCroppingSequence: 0x00701301,
VolumeCroppingMethod: 0x00701302,
BoundingBoxCrop: 0x00701303,
ObliqueCroppingPlaneSequence: 0x00701304,
Plane: 0x00701305,
PlaneNormal: 0x00701306,
CroppingSpecificationNumber: 0x00701309,
MultiPlanarReconstructionStyle: 0x00701501,
MPRThicknessType: 0x00701502,
MPRSlabThickness: 0x00701503,
MPRTopLeftHandCorner: 0x00701505,
MPRViewWidthDirection: 0x00701507,
MPRViewWidth: 0x00701508,
NumberOfVolumetricCurvePoints: 0x0070150c,
VolumetricCurvePoints: 0x0070150d,
MPRViewHeightDirection: 0x00701511,
MPRViewHeight: 0x00701512,
RenderProjection: 0x00701602,
ViewpointPosition: 0x00701603,
ViewpointLookAtPoint: 0x00701604,
ViewpointUpDirection: 0x00701605,
RenderFieldOfView: 0x00701606,
SamplingStepSize: 0x00701607,
ShadingStyle: 0x00701701,
AmbientReflectionIntensity: 0x00701702,
LightDirection: 0x00701703,
DiffuseReflectionIntensity: 0x00701704,
SpecularReflectionIntensity: 0x00701705,
Shininess: 0x00701706,
PresentationStateClassificationComponentSequence: 0x00701801,
ComponentType: 0x00701802,
ComponentInputSequence: 0x00701803,
VolumetricPresentationInputIndex: 0x00701804,
PresentationStateCompositorComponentSequence: 0x00701805,
WeightingTransferFunctionSequence: 0x00701806,
WeightingLookupTableDescriptor: 0x00701807,
WeightingLookupTableData: 0x00701808,
VolumetricAnnotationSequence: 0x00701901,
ReferencedStructuredContextSequence: 0x00701903,
ReferencedContentItem: 0x00701904,
VolumetricPresentationInputAnnotationSequence: 0x00701905,
AnnotationClipping: 0x00701907,
PresentationAnimationStyle: 0x00701a01,
RecommendedAnimationRate: 0x00701a03,
AnimationCurveSequence: 0x00701a04,
AnimationStepSize: 0x00701a05,
SwivelRange: 0x00701a06,
VolumetricCurveUpDirections: 0x00701a07,
VolumeStreamSequence: 0x00701a08,
RGBATransferFunctionDescription: 0x00701a09,
AdvancedBlendingSequence: 0x00701b01,
BlendingInputNumber: 0x00701b02,
BlendingDisplayInputSequence: 0x00701b03,
BlendingDisplaySequence: 0x00701b04,
BlendingMode: 0x00701b06,
TimeSeriesBlending: 0x00701b07,
GeometryForDisplay: 0x00701b08,
ThresholdSequence: 0x00701b11,
ThresholdValueSequence: 0x00701b12,
ThresholdType: 0x00701b13,
ThresholdValue: 0x00701b14,
HangingProtocolName: 0x00720002,
HangingProtocolDescription: 0x00720004,
HangingProtocolLevel: 0x00720006,
HangingProtocolCreator: 0x00720008,
HangingProtocolCreationDateTime: 0x0072000a,
HangingProtocolDefinitionSequence: 0x0072000c,
HangingProtocolUserIdentificationCodeSequence: 0x0072000e,
HangingProtocolUserGroupName: 0x00720010,
SourceHangingProtocolSequence: 0x00720012,
NumberOfPriorsReferenced: 0x00720014,
ImageSetsSequence: 0x00720020,
ImageSetSelectorSequence: 0x00720022,
ImageSetSelectorUsageFlag: 0x00720024,
SelectorAttribute: 0x00720026,
SelectorValueNumber: 0x00720028,
TimeBasedImageSetsSequence: 0x00720030,
ImageSetNumber: 0x00720032,
ImageSetSelectorCategory: 0x00720034,
RelativeTime: 0x00720038,
RelativeTimeUnits: 0x0072003a,
AbstractPriorValue: 0x0072003c,
AbstractPriorCodeSequence: 0x0072003e,
ImageSetLabel: 0x00720040,
SelectorAttributeVR: 0x00720050,
SelectorSequencePointer: 0x00720052,
SelectorSequencePointerPrivateCreator: 0x00720054,
SelectorAttributePrivateCreator: 0x00720056,
SelectorAEValue: 0x0072005e,
SelectorASValue: 0x0072005f,
SelectorATValue: 0x00720060,
SelectorDAValue: 0x00720061,
SelectorCSValue: 0x00720062,
SelectorDTValue: 0x00720063,
SelectorISValue: 0x00720064,
SelectorOBValue: 0x00720065,
SelectorLOValue: 0x00720066,
SelectorOFValue: 0x00720067,
SelectorLTValue: 0x00720068,
SelectorOWValue: 0x00720069,
SelectorPNValue: 0x0072006a,
SelectorTMValue: 0x0072006b,
SelectorSHValue: 0x0072006c,
SelectorUNValue: 0x0072006d,
SelectorSTValue: 0x0072006e,
SelectorUCValue: 0x0072006f,
SelectorUTValue: 0x00720070,
SelectorURValue: 0x00720071,
SelectorDSValue: 0x00720072,
SelectorODValue: 0x00720073,
SelectorFDValue: 0x00720074,
SelectorOLValue: 0x00720075,
SelectorFLValue: 0x00720076,
SelectorULValue: 0x00720078,
SelectorUSValue: 0x0072007a,
SelectorSLValue: 0x0072007c,
SelectorSSValue: 0x0072007e,
SelectorUIValue: 0x0072007f,
SelectorCodeSequenceValue: 0x00720080,
NumberOfScreens: 0x00720100,
NominalScreenDefinitionSequence: 0x00720102,
NumberOfVerticalPixels: 0x00720104,
NumberOfHorizontalPixels: 0x00720106,
DisplayEnvironmentSpatialPosition: 0x00720108,
ScreenMinimumGrayscaleBitDepth: 0x0072010a,
ScreenMinimumColorBitDepth: 0x0072010c,
ApplicationMaximumRepaintTime: 0x0072010e,
DisplaySetsSequence: 0x00720200,
DisplaySetNumber: 0x00720202,
DisplaySetLabel: 0x00720203,
DisplaySetPresentationGroup: 0x00720204,
DisplaySetPresentationGroupDescription: 0x00720206,
PartialDataDisplayHandling: 0x00720208,
SynchronizedScrollingSequence: 0x00720210,
DisplaySetScrollingGroup: 0x00720212,
NavigationIndicatorSequence: 0x00720214,
NavigationDisplaySet: 0x00720216,
ReferenceDisplaySets: 0x00720218,
ImageBoxesSequence: 0x00720300,
ImageBoxNumber: 0x00720302,
ImageBoxLayoutType: 0x00720304,
ImageBoxTileHorizontalDimension: 0x00720306,
ImageBoxTileVerticalDimension: 0x00720308,
ImageBoxScrollDirection: 0x00720310,
ImageBoxSmallScrollType: 0x00720312,
ImageBoxSmallScrollAmount: 0x00720314,
ImageBoxLargeScrollType: 0x00720316,
ImageBoxLargeScrollAmount: 0x00720318,
ImageBoxOverlapPriority: 0x00720320,
CineRelativeToRealTime: 0x00720330,
FilterOperationsSequence: 0x00720400,
FilterByCategory: 0x00720402,
FilterByAttributePresence: 0x00720404,
FilterByOperator: 0x00720406,
StructuredDisplayBackgroundCIELabValue: 0x00720420,
EmptyImageBoxCIELabValue: 0x00720421,
StructuredDisplayImageBoxSequence: 0x00720422,
StructuredDisplayTextBoxSequence: 0x00720424,
ReferencedFirstFrameSequence: 0x00720427,
ImageBoxSynchronizationSequence: 0x00720430,
SynchronizedImageBoxList: 0x00720432,
TypeOfSynchronization: 0x00720434,
BlendingOperationType: 0x00720500,
ReformattingOperationType: 0x00720510,
ReformattingThickness: 0x00720512,
ReformattingInterval: 0x00720514,
ReformattingOperationInitialViewDirection: 0x00720516,
ThreeDRenderingType: 0x00720520,
SortingOperationsSequence: 0x00720600,
SortByCategory: 0x00720602,
SortingDirection: 0x00720604,
DisplaySetPatientOrientation: 0x00720700,
VOIType: 0x00720702,
PseudoColorType: 0x00720704,
PseudoColorPaletteInstanceReferenceSequence: 0x00720705,
ShowGrayscaleInverted: 0x00720706,
ShowImageTrueSizeFlag: 0x00720710,
ShowGraphicAnnotationFlag: 0x00720712,
ShowPatientDemographicsFlag: 0x00720714,
ShowAcquisitionTechniquesFlag: 0x00720716,
DisplaySetHorizontalJustification: 0x00720717,
DisplaySetVerticalJustification: 0x00720718,
ContinuationStartMeterset: 0x00740120,
ContinuationEndMeterset: 0x00740121,
ProcedureStepState: 0x00741000,
ProcedureStepProgressInformationSequence: 0x00741002,
ProcedureStepProgress: 0x00741004,
ProcedureStepProgressDescription: 0x00741006,
ProcedureStepProgressParametersSequence: 0x00741007,
ProcedureStepCommunicationsURISequence: 0x00741008,
ContactURI: 0x0074100a,
ContactDisplayName: 0x0074100c,
ProcedureStepDiscontinuationReasonCodeSequence: 0x0074100e,
BeamTaskSequence: 0x00741020,
BeamTaskType: 0x00741022,
BeamOrderIndexTrial: 0x00741024,
AutosequenceFlag: 0x00741025,
TableTopVerticalAdjustedPosition: 0x00741026,
TableTopLongitudinalAdjustedPosition: 0x00741027,
TableTopLateralAdjustedPosition: 0x00741028,
PatientSupportAdjustedAngle: 0x0074102a,
TableTopEccentricAdjustedAngle: 0x0074102b,
TableTopPitchAdjustedAngle: 0x0074102c,
TableTopRollAdjustedAngle: 0x0074102d,
DeliveryVerificationImageSequence: 0x00741030,
VerificationImageTiming: 0x00741032,
DoubleExposureFlag: 0x00741034,
DoubleExposureOrdering: 0x00741036,
DoubleExposureMetersetTrial: 0x00741038,
DoubleExposureFieldDeltaTrial: 0x0074103a,
RelatedReferenceRTImageSequence: 0x00741040,
GeneralMachineVerificationSequence: 0x00741042,
ConventionalMachineVerificationSequence: 0x00741044,
IonMachineVerificationSequence: 0x00741046,
FailedAttributesSequence: 0x00741048,
OverriddenAttributesSequence: 0x0074104a,
ConventionalControlPointVerificationSequence: 0x0074104c,
IonControlPointVerificationSequence: 0x0074104e,
AttributeOccurrenceSequence: 0x00741050,
AttributeOccurrencePointer: 0x00741052,
AttributeItemSelector: 0x00741054,
AttributeOccurrencePrivateCreator: 0x00741056,
SelectorSequencePointerItems: 0x00741057,
ScheduledProcedureStepPriority: 0x00741200,
WorklistLabel: 0x00741202,
ProcedureStepLabel: 0x00741204,
ScheduledProcessingParametersSequence: 0x00741210,
PerformedProcessingParametersSequence: 0x00741212,
UnifiedProcedureStepPerformedProcedureSequence: 0x00741216,
RelatedProcedureStepSequence: 0x00741220,
ProcedureStepRelationshipType: 0x00741222,
ReplacedProcedureStepSequence: 0x00741224,
DeletionLock: 0x00741230,
ReceivingAE: 0x00741234,
RequestingAE: 0x00741236,
ReasonForCancellation: 0x00741238,
SCPStatus: 0x00741242,
SubscriptionListStatus: 0x00741244,
UnifiedProcedureStepListStatus: 0x00741246,
BeamOrderIndex: 0x00741324,
DoubleExposureMeterset: 0x00741338,
DoubleExposureFieldDelta: 0x0074133a,
BrachyTaskSequence: 0x00741401,
ContinuationStartTotalReferenceAirKerma: 0x00741402,
ContinuationEndTotalReferenceAirKerma: 0x00741403,
ContinuationPulseNumber: 0x00741404,
ChannelDeliveryOrderSequence: 0x00741405,
ReferencedChannelNumber: 0x00741406,
StartCumulativeTimeWeight: 0x00741407,
EndCumulativeTimeWeight: 0x00741408,
OmittedChannelSequence: 0x00741409,
ReasonForChannelOmission: 0x0074140a,
ReasonForChannelOmissionDescription: 0x0074140b,
ChannelDeliveryOrderIndex: 0x0074140c,
ChannelDeliveryContinuationSequence: 0x0074140d,
OmittedApplicationSetupSequence: 0x0074140e,
ImplantAssemblyTemplateName: 0x00760001,
ImplantAssemblyTemplateIssuer: 0x00760003,
ImplantAssemblyTemplateVersion: 0x00760006,
ReplacedImplantAssemblyTemplateSequence: 0x00760008,
ImplantAssemblyTemplateType: 0x0076000a,
OriginalImplantAssemblyTemplateSequence: 0x0076000c,
DerivationImplantAssemblyTemplateSequence: 0x0076000e,
ImplantAssemblyTemplateTargetAnatomySequence: 0x00760010,
ProcedureTypeCodeSequence: 0x00760020,
SurgicalTechnique: 0x00760030,
ComponentTypesSequence: 0x00760032,
ComponentTypeCodeSequence: 0x00760034,
ExclusiveComponentType: 0x00760036,
MandatoryComponentType: 0x00760038,
ComponentSequence: 0x00760040,
ComponentID: 0x00760055,
ComponentAssemblySequence: 0x00760060,
Component1ReferencedID: 0x00760070,
Component1ReferencedMatingFeatureSetID: 0x00760080,
Component1ReferencedMatingFeatureID: 0x00760090,
Component2ReferencedID: 0x007600a0,
Component2ReferencedMatingFeatureSetID: 0x007600b0,
Component2ReferencedMatingFeatureID: 0x007600c0,
ImplantTemplateGroupName: 0x00780001,
ImplantTemplateGroupDescription: 0x00780010,
ImplantTemplateGroupIssuer: 0x00780020,
ImplantTemplateGroupVersion: 0x00780024,
ReplacedImplantTemplateGroupSequence: 0x00780026,
ImplantTemplateGroupTargetAnatomySequence: 0x00780028,
ImplantTemplateGroupMembersSequence: 0x0078002a,
ImplantTemplateGroupMemberID: 0x0078002e,
ThreeDImplantTemplateGroupMemberMatchingPoint: 0x00780050,
ThreeDImplantTemplateGroupMemberMatchingAxes: 0x00780060,
ImplantTemplateGroupMemberMatching2DCoordinatesSequence: 0x00780070,
TwoDImplantTemplateGroupMemberMatchingPoint: 0x00780090,
TwoDImplantTemplateGroupMemberMatchingAxes: 0x007800a0,
ImplantTemplateGroupVariationDimensionSequence: 0x007800b0,
ImplantTemplateGroupVariationDimensionName: 0x007800b2,
ImplantTemplateGroupVariationDimensionRankSequence: 0x007800b4,
ReferencedImplantTemplateGroupMemberID: 0x007800b6,
ImplantTemplateGroupVariationDimensionRank: 0x007800b8,
SurfaceScanAcquisitionTypeCodeSequence: 0x00800001,
SurfaceScanModeCodeSequence: 0x00800002,
RegistrationMethodCodeSequence: 0x00800003,
ShotDurationTime: 0x00800004,
ShotOffsetTime: 0x00800005,
SurfacePointPresentationValueData: 0x00800006,
SurfacePointColorCIELabValueData: 0x00800007,
UVMappingSequence: 0x00800008,
TextureLabel: 0x00800009,
UValueData: 0x00800010,
VValueData: 0x00800011,
ReferencedTextureSequence: 0x00800012,
ReferencedSurfaceDataSequence: 0x00800013,
AssessmentSummary: 0x00820001,
AssessmentSummaryDescription: 0x00820003,
AssessedSOPInstanceSequence: 0x00820004,
ReferencedComparisonSOPInstanceSequence: 0x00820005,
NumberOfAssessmentObservations: 0x00820006,
AssessmentObservationsSequence: 0x00820007,
ObservationSignificance: 0x00820008,
ObservationDescription: 0x0082000a,
StructuredConstraintObservationSequence: 0x0082000c,
AssessedAttributeValueSequence: 0x00820010,
AssessmentSetID: 0x00820016,
AssessmentRequesterSequence: 0x00820017,
SelectorAttributeName: 0x00820018,
SelectorAttributeKeyword: 0x00820019,
AssessmentTypeCodeSequence: 0x00820021,
ObservationBasisCodeSequence: 0x00820022,
AssessmentLabel: 0x00820023,
ConstraintType: 0x00820032,
SpecificationSelectionGuidance: 0x00820033,
ConstraintValueSequence: 0x00820034,
RecommendedDefaultValueSequence: 0x00820035,
ConstraintViolationSignificance: 0x00820036,
ConstraintViolationCondition: 0x00820037,
ModifiableConstraintFlag: 0x00820038,
StorageMediaFileSetID: 0x00880130,
StorageMediaFileSetUID: 0x00880140,
IconImageSequence: 0x00880200,
TopicTitle: 0x00880904,
TopicSubject: 0x00880906,
TopicAuthor: 0x00880910,
TopicKeywords: 0x00880912,
SOPInstanceStatus: 0x01000410,
SOPAuthorizationDateTime: 0x01000420,
SOPAuthorizationComment: 0x01000424,
AuthorizationEquipmentCertificationNumber: 0x01000426,
MACIDNumber: 0x04000005,
MACCalculationTransferSyntaxUID: 0x04000010,
MACAlgorithm: 0x04000015,
DataElementsSigned: 0x04000020,
DigitalSignatureUID: 0x04000100,
DigitalSignatureDateTime: 0x04000105,
CertificateType: 0x04000110,
CertificateOfSigner: 0x04000115,
Signature: 0x04000120,
CertifiedTimestampType: 0x04000305,
CertifiedTimestamp: 0x04000310,
DigitalSignaturePurposeCodeSequence: 0x04000401,
ReferencedDigitalSignatureSequence: 0x04000402,
ReferencedSOPInstanceMACSequence: 0x04000403,
MAC: 0x04000404,
EncryptedAttributesSequence: 0x04000500,
EncryptedContentTransferSyntaxUID: 0x04000510,
EncryptedContent: 0x04000520,
ModifiedAttributesSequence: 0x04000550,
OriginalAttributesSequence: 0x04000561,
AttributeModificationDateTime: 0x04000562,
ModifyingSystem: 0x04000563,
SourceOfPreviousValues: 0x04000564,
ReasonForTheAttributeModification: 0x04000565,
EscapeTriplet: 0x10000000,
RunLengthTriplet: 0x10000001,
HuffmanTableSize: 0x10000002,
HuffmanTableTriplet: 0x10000003,
ShiftTableSize: 0x10000004,
ShiftTableTriplet: 0x10000005,
ZonalMap: 0x10100000,
NumberOfCopies: 0x20000010,
PrinterConfigurationSequence: 0x2000001e,
PrintPriority: 0x20000020,
MediumType: 0x20000030,
FilmDestination: 0x20000040,
FilmSessionLabel: 0x20000050,
MemoryAllocation: 0x20000060,
MaximumMemoryAllocation: 0x20000061,
ColorImagePrintingFlag: 0x20000062,
CollationFlag: 0x20000063,
AnnotationFlag: 0x20000065,
ImageOverlayFlag: 0x20000067,
PresentationLUTFlag: 0x20000069,
ImageBoxPresentationLUTFlag: 0x2000006a,
MemoryBitDepth: 0x200000a0,
PrintingBitDepth: 0x200000a1,
MediaInstalledSequence: 0x200000a2,
OtherMediaAvailableSequence: 0x200000a4,
SupportedImageDisplayFormatsSequence: 0x200000a8,
ReferencedFilmBoxSequence: 0x20000500,
ReferencedStoredPrintSequence: 0x20000510,
ImageDisplayFormat: 0x20100010,
AnnotationDisplayFormatID: 0x20100030,
FilmOrientation: 0x20100040,
FilmSizeID: 0x20100050,
PrinterResolutionID: 0x20100052,
DefaultPrinterResolutionID: 0x20100054,
MagnificationType: 0x20100060,
SmoothingType: 0x20100080,
DefaultMagnificationType: 0x201000a6,
OtherMagnificationTypesAvailable: 0x201000a7,
DefaultSmoothingType: 0x201000a8,
OtherSmoothingTypesAvailable: 0x201000a9,
BorderDensity: 0x20100100,
EmptyImageDensity: 0x20100110,
MinDensity: 0x20100120,
MaxDensity: 0x20100130,
Trim: 0x20100140,
ConfigurationInformation: 0x20100150,
ConfigurationInformationDescription: 0x20100152,
MaximumCollatedFilms: 0x20100154,
Illumination: 0x2010015e,
ReflectedAmbientLight: 0x20100160,
PrinterPixelSpacing: 0x20100376,
ReferencedFilmSessionSequence: 0x20100500,
ReferencedImageBoxSequence: 0x20100510,
ReferencedBasicAnnotationBoxSequence: 0x20100520,
ImageBoxPosition: 0x20200010,
Polarity: 0x20200020,
RequestedImageSize: 0x20200030,
RequestedDecimateCropBehavior: 0x20200040,
RequestedResolutionID: 0x20200050,
RequestedImageSizeFlag: 0x202000a0,
DecimateCropResult: 0x202000a2,
BasicGrayscaleImageSequence: 0x20200110,
BasicColorImageSequence: 0x20200111,
ReferencedImageOverlayBoxSequence: 0x20200130,
ReferencedVOILUTBoxSequence: 0x20200140,
AnnotationPosition: 0x20300010,
TextString: 0x20300020,
ReferencedOverlayPlaneSequence: 0x20400010,
ReferencedOverlayPlaneGroups: 0x20400011,
OverlayPixelDataSequence: 0x20400020,
OverlayMagnificationType: 0x20400060,
OverlaySmoothingType: 0x20400070,
OverlayOrImageMagnification: 0x20400072,
MagnifyToNumberOfColumns: 0x20400074,
OverlayForegroundDensity: 0x20400080,
OverlayBackgroundDensity: 0x20400082,
OverlayMode: 0x20400090,
ThresholdDensity: 0x20400100,
ReferencedImageBoxSequenceRetired: 0x20400500,
PresentationLUTSequence: 0x20500010,
PresentationLUTShape: 0x20500020,
ReferencedPresentationLUTSequence: 0x20500500,
PrintJobID: 0x21000010,
ExecutionStatus: 0x21000020,
ExecutionStatusInfo: 0x21000030,
CreationDate: 0x21000040,
CreationTime: 0x21000050,
Originator: 0x21000070,
DestinationAE: 0x21000140,
OwnerID: 0x21000160,
NumberOfFilms: 0x21000170,
ReferencedPrintJobSequencePullStoredPrint: 0x21000500,
PrinterStatus: 0x21100010,
PrinterStatusInfo: 0x21100020,
PrinterName: 0x21100030,
PrintQueueID: 0x21100099,
QueueStatus: 0x21200010,
PrintJobDescriptionSequence: 0x21200050,
ReferencedPrintJobSequence: 0x21200070,
PrintManagementCapabilitiesSequence: 0x21300010,
PrinterCharacteristicsSequence: 0x21300015,
FilmBoxContentSequence: 0x21300030,
ImageBoxContentSequence: 0x21300040,
AnnotationContentSequence: 0x21300050,
ImageOverlayBoxContentSequence: 0x21300060,
PresentationLUTContentSequence: 0x21300080,
ProposedStudySequence: 0x213000a0,
OriginalImageSequence: 0x213000c0,
LabelUsingInformationExtractedFromInstances: 0x22000001,
LabelText: 0x22000002,
LabelStyleSelection: 0x22000003,
MediaDisposition: 0x22000004,
BarcodeValue: 0x22000005,
BarcodeSymbology: 0x22000006,
AllowMediaSplitting: 0x22000007,
IncludeNonDICOMObjects: 0x22000008,
IncludeDisplayApplication: 0x22000009,
PreserveCompositeInstancesAfterMediaCreation: 0x2200000a,
TotalNumberOfPiecesOfMediaCreated: 0x2200000b,
RequestedMediaApplicationProfile: 0x2200000c,
ReferencedStorageMediaSequence: 0x2200000d,
FailureAttributes: 0x2200000e,
AllowLossyCompression: 0x2200000f,
RequestPriority: 0x22000020,
RTImageLabel: 0x30020002,
RTImageName: 0x30020003,
RTImageDescription: 0x30020004,
ReportedValuesOrigin: 0x3002000a,
RTImagePlane: 0x3002000c,
XRayImageReceptorTranslation: 0x3002000d,
XRayImageReceptorAngle: 0x3002000e,
RTImageOrientation: 0x30020010,
ImagePlanePixelSpacing: 0x30020011,
RTImagePosition: 0x30020012,
RadiationMachineName: 0x30020020,
RadiationMachineSAD: 0x30020022,
RadiationMachineSSD: 0x30020024,
RTImageSID: 0x30020026,
SourceToReferenceObjectDistance: 0x30020028,
FractionNumber: 0x30020029,
ExposureSequence: 0x30020030,
MetersetExposure: 0x30020032,
DiaphragmPosition: 0x30020034,
FluenceMapSequence: 0x30020040,
FluenceDataSource: 0x30020041,
FluenceDataScale: 0x30020042,
PrimaryFluenceModeSequence: 0x30020050,
FluenceMode: 0x30020051,
FluenceModeID: 0x30020052,
DVHType: 0x30040001,
DoseUnits: 0x30040002,
DoseType: 0x30040004,
SpatialTransformOfDose: 0x30040005,
DoseComment: 0x30040006,
NormalizationPoint: 0x30040008,
DoseSummationType: 0x3004000a,
GridFrameOffsetVector: 0x3004000c,
DoseGridScaling: 0x3004000e,
RTDoseROISequence: 0x30040010,
DoseValue: 0x30040012,
TissueHeterogeneityCorrection: 0x30040014,
DVHNormalizationPoint: 0x30040040,
DVHNormalizationDoseValue: 0x30040042,
DVHSequence: 0x30040050,
DVHDoseScaling: 0x30040052,
DVHVolumeUnits: 0x30040054,
DVHNumberOfBins: 0x30040056,
DVHData: 0x30040058,
DVHReferencedROISequence: 0x30040060,
DVHROIContributionType: 0x30040062,
DVHMinimumDose: 0x30040070,
DVHMaximumDose: 0x30040072,
DVHMeanDose: 0x30040074,
StructureSetLabel: 0x30060002,
StructureSetName: 0x30060004,
StructureSetDescription: 0x30060006,
StructureSetDate: 0x30060008,
StructureSetTime: 0x30060009,
ReferencedFrameOfReferenceSequence: 0x30060010,
RTReferencedStudySequence: 0x30060012,
RTReferencedSeriesSequence: 0x30060014,
ContourImageSequence: 0x30060016,
PredecessorStructureSetSequence: 0x30060018,
StructureSetROISequence: 0x30060020,
ROINumber: 0x30060022,
ReferencedFrameOfReferenceUID: 0x30060024,
ROIName: 0x30060026,
ROIDescription: 0x30060028,
ROIDisplayColor: 0x3006002a,
ROIVolume: 0x3006002c,
RTRelatedROISequence: 0x30060030,
RTROIRelationship: 0x30060033,
ROIGenerationAlgorithm: 0x30060036,
ROIGenerationDescription: 0x30060038,
ROIContourSequence: 0x30060039,
ContourSequence: 0x30060040,
ContourGeometricType: 0x30060042,
ContourSlabThickness: 0x30060044,
ContourOffsetVector: 0x30060045,
NumberOfContourPoints: 0x30060046,
ContourNumber: 0x30060048,
AttachedContours: 0x30060049,
ContourData: 0x30060050,
RTROIObservationsSequence: 0x30060080,
ObservationNumber: 0x30060082,
ReferencedROINumber: 0x30060084,
ROIObservationLabel: 0x30060085,
RTROIIdentificationCodeSequence: 0x30060086,
ROIObservationDescription: 0x30060088,
RelatedRTROIObservationsSequence: 0x300600a0,
RTROIInterpretedType: 0x300600a4,
ROIInterpreter: 0x300600a6,
ROIPhysicalPropertiesSequence: 0x300600b0,
ROIPhysicalProperty: 0x300600b2,
ROIPhysicalPropertyValue: 0x300600b4,
ROIElementalCompositionSequence: 0x300600b6,
ROIElementalCompositionAtomicNumber: 0x300600b7,
ROIElementalCompositionAtomicMassFraction: 0x300600b8,
AdditionalRTROIIdentificationCodeSequence: 0x300600b9,
FrameOfReferenceRelationshipSequence: 0x300600c0,
RelatedFrameOfReferenceUID: 0x300600c2,
FrameOfReferenceTransformationType: 0x300600c4,
FrameOfReferenceTransformationMatrix: 0x300600c6,
FrameOfReferenceTransformationComment: 0x300600c8,
MeasuredDoseReferenceSequence: 0x30080010,
MeasuredDoseDescription: 0x30080012,
MeasuredDoseType: 0x30080014,
MeasuredDoseValue: 0x30080016,
TreatmentSessionBeamSequence: 0x30080020,
TreatmentSessionIonBeamSequence: 0x30080021,
CurrentFractionNumber: 0x30080022,
TreatmentControlPointDate: 0x30080024,
TreatmentControlPointTime: 0x30080025,
TreatmentTerminationStatus: 0x3008002a,
TreatmentTerminationCode: 0x3008002b,
TreatmentVerificationStatus: 0x3008002c,
ReferencedTreatmentRecordSequence: 0x30080030,
SpecifiedPrimaryMeterset: 0x30080032,
SpecifiedSecondaryMeterset: 0x30080033,
DeliveredPrimaryMeterset: 0x30080036,
DeliveredSecondaryMeterset: 0x30080037,
SpecifiedTreatmentTime: 0x3008003a,
DeliveredTreatmentTime: 0x3008003b,
ControlPointDeliverySequence: 0x30080040,
IonControlPointDeliverySequence: 0x30080041,
SpecifiedMeterset: 0x30080042,
DeliveredMeterset: 0x30080044,
MetersetRateSet: 0x30080045,
MetersetRateDelivered: 0x30080046,
ScanSpotMetersetsDelivered: 0x30080047,
DoseRateDelivered: 0x30080048,
TreatmentSummaryCalculatedDoseReferenceSequence: 0x30080050,
CumulativeDoseToDoseReference: 0x30080052,
FirstTreatmentDate: 0x30080054,
MostRecentTreatmentDate: 0x30080056,
NumberOfFractionsDelivered: 0x3008005a,
OverrideSequence: 0x30080060,
ParameterSequencePointer: 0x30080061,
OverrideParameterPointer: 0x30080062,
ParameterItemIndex: 0x30080063,
MeasuredDoseReferenceNumber: 0x30080064,
ParameterPointer: 0x30080065,
OverrideReason: 0x30080066,
ParameterValueNumber: 0x30080067,
CorrectedParameterSequence: 0x30080068,
CorrectionValue: 0x3008006a,
CalculatedDoseReferenceSequence: 0x30080070,
CalculatedDoseReferenceNumber: 0x30080072,
CalculatedDoseReferenceDescription: 0x30080074,
CalculatedDoseReferenceDoseValue: 0x30080076,
StartMeterset: 0x30080078,
EndMeterset: 0x3008007a,
ReferencedMeasuredDoseReferenceSequence: 0x30080080,
ReferencedMeasuredDoseReferenceNumber: 0x30080082,
ReferencedCalculatedDoseReferenceSequence: 0x30080090,
ReferencedCalculatedDoseReferenceNumber: 0x30080092,
BeamLimitingDeviceLeafPairsSequence: 0x300800a0,
RecordedWedgeSequence: 0x300800b0,
RecordedCompensatorSequence: 0x300800c0,
RecordedBlockSequence: 0x300800d0,
TreatmentSummaryMeasuredDoseReferenceSequence: 0x300800e0,
RecordedSnoutSequence: 0x300800f0,
RecordedRangeShifterSequence: 0x300800f2,
RecordedLateralSpreadingDeviceSequence: 0x300800f4,
RecordedRangeModulatorSequence: 0x300800f6,
RecordedSourceSequence: 0x30080100,
SourceSerialNumber: 0x30080105,
TreatmentSessionApplicationSetupSequence: 0x30080110,
ApplicationSetupCheck: 0x30080116,
RecordedBrachyAccessoryDeviceSequence: 0x30080120,
ReferencedBrachyAccessoryDeviceNumber: 0x30080122,
RecordedChannelSequence: 0x30080130,
SpecifiedChannelTotalTime: 0x30080132,
DeliveredChannelTotalTime: 0x30080134,
SpecifiedNumberOfPulses: 0x30080136,
DeliveredNumberOfPulses: 0x30080138,
SpecifiedPulseRepetitionInterval: 0x3008013a,
DeliveredPulseRepetitionInterval: 0x3008013c,
RecordedSourceApplicatorSequence: 0x30080140,
ReferencedSourceApplicatorNumber: 0x30080142,
RecordedChannelShieldSequence: 0x30080150,
ReferencedChannelShieldNumber: 0x30080152,
BrachyControlPointDeliveredSequence: 0x30080160,
SafePositionExitDate: 0x30080162,
SafePositionExitTime: 0x30080164,
SafePositionReturnDate: 0x30080166,
SafePositionReturnTime: 0x30080168,
PulseSpecificBrachyControlPointDeliveredSequence: 0x30080171,
PulseNumber: 0x30080172,
BrachyPulseControlPointDeliveredSequence: 0x30080173,
CurrentTreatmentStatus: 0x30080200,
TreatmentStatusComment: 0x30080202,
FractionGroupSummarySequence: 0x30080220,
ReferencedFractionNumber: 0x30080223,
FractionGroupType: 0x30080224,
BeamStopperPosition: 0x30080230,
FractionStatusSummarySequence: 0x30080240,
TreatmentDate: 0x30080250,
TreatmentTime: 0x30080251,
RTPlanLabel: 0x300a0002,
RTPlanName: 0x300a0003,
RTPlanDescription: 0x300a0004,
RTPlanDate: 0x300a0006,
RTPlanTime: 0x300a0007,
TreatmentProtocols: 0x300a0009,
PlanIntent: 0x300a000a,
TreatmentSites: 0x300a000b,
RTPlanGeometry: 0x300a000c,
PrescriptionDescription: 0x300a000e,
DoseReferenceSequence: 0x300a0010,
DoseReferenceNumber: 0x300a0012,
DoseReferenceUID: 0x300a0013,
DoseReferenceStructureType: 0x300a0014,
NominalBeamEnergyUnit: 0x300a0015,
DoseReferenceDescription: 0x300a0016,
DoseReferencePointCoordinates: 0x300a0018,
NominalPriorDose: 0x300a001a,
DoseReferenceType: 0x300a0020,
ConstraintWeight: 0x300a0021,
DeliveryWarningDose: 0x300a0022,
DeliveryMaximumDose: 0x300a0023,
TargetMinimumDose: 0x300a0025,
TargetPrescriptionDose: 0x300a0026,
TargetMaximumDose: 0x300a0027,
TargetUnderdoseVolumeFraction: 0x300a0028,
OrganAtRiskFullVolumeDose: 0x300a002a,
OrganAtRiskLimitDose: 0x300a002b,
OrganAtRiskMaximumDose: 0x300a002c,
OrganAtRiskOverdoseVolumeFraction: 0x300a002d,
ToleranceTableSequence: 0x300a0040,
ToleranceTableNumber: 0x300a0042,
ToleranceTableLabel: 0x300a0043,
GantryAngleTolerance: 0x300a0044,
BeamLimitingDeviceAngleTolerance: 0x300a0046,
BeamLimitingDeviceToleranceSequence: 0x300a0048,
BeamLimitingDevicePositionTolerance: 0x300a004a,
SnoutPositionTolerance: 0x300a004b,
PatientSupportAngleTolerance: 0x300a004c,
TableTopEccentricAngleTolerance: 0x300a004e,
TableTopPitchAngleTolerance: 0x300a004f,
TableTopRollAngleTolerance: 0x300a0050,
TableTopVerticalPositionTolerance: 0x300a0051,
TableTopLongitudinalPositionTolerance: 0x300a0052,
TableTopLateralPositionTolerance: 0x300a0053,
RTPlanRelationship: 0x300a0055,
FractionGroupSequence: 0x300a0070,
FractionGroupNumber: 0x300a0071,
FractionGroupDescription: 0x300a0072,
NumberOfFractionsPlanned: 0x300a0078,
NumberOfFractionPatternDigitsPerDay: 0x300a0079,
RepeatFractionCycleLength: 0x300a007a,
FractionPattern: 0x300a007b,
NumberOfBeams: 0x300a0080,
BeamDoseSpecificationPoint: 0x300a0082,
ReferencedDoseReferenceUID: 0x300a0083,
BeamDose: 0x300a0084,
BeamMeterset: 0x300a0086,
BeamDosePointDepth: 0x300a0088,
BeamDosePointEquivalentDepth: 0x300a0089,
BeamDosePointSSD: 0x300a008a,
BeamDoseMeaning: 0x300a008b,
BeamDoseVerificationControlPointSequence: 0x300a008c,
AverageBeamDosePointDepth: 0x300a008d,
AverageBeamDosePointEquivalentDepth: 0x300a008e,
AverageBeamDosePointSSD: 0x300a008f,
BeamDoseType: 0x300a0090,
AlternateBeamDose: 0x300a0091,
AlternateBeamDoseType: 0x300a0092,
DepthValueAveragingFlag: 0x300a0093,
NumberOfBrachyApplicationSetups: 0x300a00a0,
BrachyApplicationSetupDoseSpecificationPoint: 0x300a00a2,
BrachyApplicationSetupDose: 0x300a00a4,
BeamSequence: 0x300a00b0,
TreatmentMachineName: 0x300a00b2,
PrimaryDosimeterUnit: 0x300a00b3,
SourceAxisDistance: 0x300a00b4,
BeamLimitingDeviceSequence: 0x300a00b6,
RTBeamLimitingDeviceType: 0x300a00b8,
SourceToBeamLimitingDeviceDistance: 0x300a00ba,
IsocenterToBeamLimitingDeviceDistance: 0x300a00bb,
NumberOfLeafJawPairs: 0x300a00bc,
LeafPositionBoundaries: 0x300a00be,
BeamNumber: 0x300a00c0,
BeamName: 0x300a00c2,
BeamDescription: 0x300a00c3,
BeamType: 0x300a00c4,
BeamDeliveryDurationLimit: 0x300a00c5,
RadiationType: 0x300a00c6,
HighDoseTechniqueType: 0x300a00c7,
ReferenceImageNumber: 0x300a00c8,
PlannedVerificationImageSequence: 0x300a00ca,
ImagingDeviceSpecificAcquisitionParameters: 0x300a00cc,
TreatmentDeliveryType: 0x300a00ce,
NumberOfWedges: 0x300a00d0,
WedgeSequence: 0x300a00d1,
WedgeNumber: 0x300a00d2,
WedgeType: 0x300a00d3,
WedgeID: 0x300a00d4,
WedgeAngle: 0x300a00d5,
WedgeFactor: 0x300a00d6,
TotalWedgeTrayWaterEquivalentThickness: 0x300a00d7,
WedgeOrientation: 0x300a00d8,
IsocenterToWedgeTrayDistance: 0x300a00d9,
SourceToWedgeTrayDistance: 0x300a00da,
WedgeThinEdgePosition: 0x300a00db,
BolusID: 0x300a00dc,
BolusDescription: 0x300a00dd,
EffectiveWedgeAngle: 0x300a00de,
NumberOfCompensators: 0x300a00e0,
MaterialID: 0x300a00e1,
TotalCompensatorTrayFactor: 0x300a00e2,
CompensatorSequence: 0x300a00e3,
CompensatorNumber: 0x300a00e4,
CompensatorID: 0x300a00e5,
SourceToCompensatorTrayDistance: 0x300a00e6,
CompensatorRows: 0x300a00e7,
CompensatorColumns: 0x300a00e8,
CompensatorPixelSpacing: 0x300a00e9,
CompensatorPosition: 0x300a00ea,
CompensatorTransmissionData: 0x300a00eb,
CompensatorThicknessData: 0x300a00ec,
NumberOfBoli: 0x300a00ed,
CompensatorType: 0x300a00ee,
CompensatorTrayID: 0x300a00ef,
NumberOfBlocks: 0x300a00f0,
TotalBlockTrayFactor: 0x300a00f2,
TotalBlockTrayWaterEquivalentThickness: 0x300a00f3,
BlockSequence: 0x300a00f4,
BlockTrayID: 0x300a00f5,
SourceToBlockTrayDistance: 0x300a00f6,
IsocenterToBlockTrayDistance: 0x300a00f7,
BlockType: 0x300a00f8,
AccessoryCode: 0x300a00f9,
BlockDivergence: 0x300a00fa,
BlockMountingPosition: 0x300a00fb,
BlockNumber: 0x300a00fc,
BlockName: 0x300a00fe,
BlockThickness: 0x300a0100,
BlockTransmission: 0x300a0102,
BlockNumberOfPoints: 0x300a0104,
BlockData: 0x300a0106,
ApplicatorSequence: 0x300a0107,
ApplicatorID: 0x300a0108,
ApplicatorType: 0x300a0109,
ApplicatorDescription: 0x300a010a,
CumulativeDoseReferenceCoefficient: 0x300a010c,
FinalCumulativeMetersetWeight: 0x300a010e,
NumberOfControlPoints: 0x300a0110,
ControlPointSequence: 0x300a0111,
ControlPointIndex: 0x300a0112,
NominalBeamEnergy: 0x300a0114,
DoseRateSet: 0x300a0115,
WedgePositionSequence: 0x300a0116,
WedgePosition: 0x300a0118,
BeamLimitingDevicePositionSequence: 0x300a011a,
LeafJawPositions: 0x300a011c,
GantryAngle: 0x300a011e,
GantryRotationDirection: 0x300a011f,
BeamLimitingDeviceAngle: 0x300a0120,
BeamLimitingDeviceRotationDirection: 0x300a0121,
PatientSupportAngle: 0x300a0122,
PatientSupportRotationDirection: 0x300a0123,
TableTopEccentricAxisDistance: 0x300a0124,
TableTopEccentricAngle: 0x300a0125,
TableTopEccentricRotationDirection: 0x300a0126,
TableTopVerticalPosition: 0x300a0128,
TableTopLongitudinalPosition: 0x300a0129,
TableTopLateralPosition: 0x300a012a,
IsocenterPosition: 0x300a012c,
SurfaceEntryPoint: 0x300a012e,
SourceToSurfaceDistance: 0x300a0130,
AverageBeamDosePointSourceToExternalContourDistance: 0x300a0131,
SourceToExternalContourDistance: 0x300a0132,
ExternalContourEntryPoint: 0x300a0133,
CumulativeMetersetWeight: 0x300a0134,
TableTopPitchAngle: 0x300a0140,
TableTopPitchRotationDirection: 0x300a0142,
TableTopRollAngle: 0x300a0144,
TableTopRollRotationDirection: 0x300a0146,
HeadFixationAngle: 0x300a0148,
GantryPitchAngle: 0x300a014a,
GantryPitchRotationDirection: 0x300a014c,
GantryPitchAngleTolerance: 0x300a014e,
FixationEye: 0x300a0150,
ChairHeadFramePosition: 0x300a0151,
HeadFixationAngleTolerance: 0x300a0152,
ChairHeadFramePositionTolerance: 0x300a0153,
FixationLightAzimuthalAngleTolerance: 0x300a0154,
FixationLightPolarAngleTolerance: 0x300a0155,
PatientSetupSequence: 0x300a0180,
PatientSetupNumber: 0x300a0182,
PatientSetupLabel: 0x300a0183,
PatientAdditionalPosition: 0x300a0184,
FixationDeviceSequence: 0x300a0190,
FixationDeviceType: 0x300a0192,
FixationDeviceLabel: 0x300a0194,
FixationDeviceDescription: 0x300a0196,
FixationDevicePosition: 0x300a0198,
FixationDevicePitchAngle: 0x300a0199,
FixationDeviceRollAngle: 0x300a019a,
ShieldingDeviceSequence: 0x300a01a0,
ShieldingDeviceType: 0x300a01a2,
ShieldingDeviceLabel: 0x300a01a4,
ShieldingDeviceDescription: 0x300a01a6,
ShieldingDevicePosition: 0x300a01a8,
SetupTechnique: 0x300a01b0,
SetupTechniqueDescription: 0x300a01b2,
SetupDeviceSequence: 0x300a01b4,
SetupDeviceType: 0x300a01b6,
SetupDeviceLabel: 0x300a01b8,
SetupDeviceDescription: 0x300a01ba,
SetupDeviceParameter: 0x300a01bc,
SetupReferenceDescription: 0x300a01d0,
TableTopVerticalSetupDisplacement: 0x300a01d2,
TableTopLongitudinalSetupDisplacement: 0x300a01d4,
TableTopLateralSetupDisplacement: 0x300a01d6,
BrachyTreatmentTechnique: 0x300a0200,
BrachyTreatmentType: 0x300a0202,
TreatmentMachineSequence: 0x300a0206,
SourceSequence: 0x300a0210,
SourceNumber: 0x300a0212,
SourceType: 0x300a0214,
SourceManufacturer: 0x300a0216,
ActiveSourceDiameter: 0x300a0218,
ActiveSourceLength: 0x300a021a,
SourceModelID: 0x300a021b,
SourceDescription: 0x300a021c,
SourceEncapsulationNominalThickness: 0x300a0222,
SourceEncapsulationNominalTransmission: 0x300a0224,
SourceIsotopeName: 0x300a0226,
SourceIsotopeHalfLife: 0x300a0228,
SourceStrengthUnits: 0x300a0229,
ReferenceAirKermaRate: 0x300a022a,
SourceStrength: 0x300a022b,
SourceStrengthReferenceDate: 0x300a022c,
SourceStrengthReferenceTime: 0x300a022e,
ApplicationSetupSequence: 0x300a0230,
ApplicationSetupType: 0x300a0232,
ApplicationSetupNumber: 0x300a0234,
ApplicationSetupName: 0x300a0236,
ApplicationSetupManufacturer: 0x300a0238,
TemplateNumber: 0x300a0240,
TemplateType: 0x300a0242,
TemplateName: 0x300a0244,
TotalReferenceAirKerma: 0x300a0250,
BrachyAccessoryDeviceSequence: 0x300a0260,
BrachyAccessoryDeviceNumber: 0x300a0262,
BrachyAccessoryDeviceID: 0x300a0263,
BrachyAccessoryDeviceType: 0x300a0264,
BrachyAccessoryDeviceName: 0x300a0266,
BrachyAccessoryDeviceNominalThickness: 0x300a026a,
BrachyAccessoryDeviceNominalTransmission: 0x300a026c,
ChannelEffectiveLength: 0x300a0271,
ChannelInnerLength: 0x300a0272,
AfterloaderChannelID: 0x300a0273,
SourceApplicatorTipLength: 0x300a0274,
ChannelSequence: 0x300a0280,
ChannelNumber: 0x300a0282,
ChannelLength: 0x300a0284,
ChannelTotalTime: 0x300a0286,
SourceMovementType: 0x300a0288,
NumberOfPulses: 0x300a028a,
PulseRepetitionInterval: 0x300a028c,
SourceApplicatorNumber: 0x300a0290,
SourceApplicatorID: 0x300a0291,
SourceApplicatorType: 0x300a0292,
SourceApplicatorName: 0x300a0294,
SourceApplicatorLength: 0x300a0296,
SourceApplicatorManufacturer: 0x300a0298,
SourceApplicatorWallNominalThickness: 0x300a029c,
SourceApplicatorWallNominalTransmission: 0x300a029e,
SourceApplicatorStepSize: 0x300a02a0,
TransferTubeNumber: 0x300a02a2,
TransferTubeLength: 0x300a02a4,
ChannelShieldSequence: 0x300a02b0,
ChannelShieldNumber: 0x300a02b2,
ChannelShieldID: 0x300a02b3,
ChannelShieldName: 0x300a02b4,
ChannelShieldNominalThickness: 0x300a02b8,
ChannelShieldNominalTransmission: 0x300a02ba,
FinalCumulativeTimeWeight: 0x300a02c8,
BrachyControlPointSequence: 0x300a02d0,
ControlPointRelativePosition: 0x300a02d2,
ControlPoint3DPosition: 0x300a02d4,
CumulativeTimeWeight: 0x300a02d6,
CompensatorDivergence: 0x300a02e0,
CompensatorMountingPosition: 0x300a02e1,
SourceToCompensatorDistance: 0x300a02e2,
TotalCompensatorTrayWaterEquivalentThickness: 0x300a02e3,
IsocenterToCompensatorTrayDistance: 0x300a02e4,
CompensatorColumnOffset: 0x300a02e5,
IsocenterToCompensatorDistances: 0x300a02e6,
CompensatorRelativeStoppingPowerRatio: 0x300a02e7,
CompensatorMillingToolDiameter: 0x300a02e8,
IonRangeCompensatorSequence: 0x300a02ea,
CompensatorDescription: 0x300a02eb,
RadiationMassNumber: 0x300a0302,
RadiationAtomicNumber: 0x300a0304,
RadiationChargeState: 0x300a0306,
ScanMode: 0x300a0308,
ModulatedScanModeType: 0x300a0309,
VirtualSourceAxisDistances: 0x300a030a,
SnoutSequence: 0x300a030c,
SnoutPosition: 0x300a030d,
SnoutID: 0x300a030f,
NumberOfRangeShifters: 0x300a0312,
RangeShifterSequence: 0x300a0314,
RangeShifterNumber: 0x300a0316,
RangeShifterID: 0x300a0318,
RangeShifterType: 0x300a0320,
RangeShifterDescription: 0x300a0322,
NumberOfLateralSpreadingDevices: 0x300a0330,
LateralSpreadingDeviceSequence: 0x300a0332,
LateralSpreadingDeviceNumber: 0x300a0334,
LateralSpreadingDeviceID: 0x300a0336,
LateralSpreadingDeviceType: 0x300a0338,
LateralSpreadingDeviceDescription: 0x300a033a,
LateralSpreadingDeviceWaterEquivalentThickness: 0x300a033c,
NumberOfRangeModulators: 0x300a0340,
RangeModulatorSequence: 0x300a0342,
RangeModulatorNumber: 0x300a0344,
RangeModulatorID: 0x300a0346,
RangeModulatorType: 0x300a0348,
RangeModulatorDescription: 0x300a034a,
BeamCurrentModulationID: 0x300a034c,
PatientSupportType: 0x300a0350,
PatientSupportID: 0x300a0352,
PatientSupportAccessoryCode: 0x300a0354,
TrayAccessoryCode: 0x300a0355,
FixationLightAzimuthalAngle: 0x300a0356,
FixationLightPolarAngle: 0x300a0358,
MetersetRate: 0x300a035a,
RangeShifterSettingsSequence: 0x300a0360,
RangeShifterSetting: 0x300a0362,
IsocenterToRangeShifterDistance: 0x300a0364,
RangeShifterWaterEquivalentThickness: 0x300a0366,
LateralSpreadingDeviceSettingsSequence: 0x300a0370,
LateralSpreadingDeviceSetting: 0x300a0372,
IsocenterToLateralSpreadingDeviceDistance: 0x300a0374,
RangeModulatorSettingsSequence: 0x300a0380,
RangeModulatorGatingStartValue: 0x300a0382,
RangeModulatorGatingStopValue: 0x300a0384,
RangeModulatorGatingStartWaterEquivalentThickness: 0x300a0386,
RangeModulatorGatingStopWaterEquivalentThickness: 0x300a0388,
IsocenterToRangeModulatorDistance: 0x300a038a,
ScanSpotTimeOffset: 0x300a038f,
ScanSpotTuneID: 0x300a0390,
ScanSpotPrescribedIndices: 0x300a0391,
NumberOfScanSpotPositions: 0x300a0392,
ScanSpotReordered: 0x300a0393,
ScanSpotPositionMap: 0x300a0394,
ScanSpotReorderingAllowed: 0x300a0395,
ScanSpotMetersetWeights: 0x300a0396,
ScanningSpotSize: 0x300a0398,
NumberOfPaintings: 0x300a039a,
IonToleranceTableSequence: 0x300a03a0,
IonBeamSequence: 0x300a03a2,
IonBeamLimitingDeviceSequence: 0x300a03a4,
IonBlockSequence: 0x300a03a6,
IonControlPointSequence: 0x300a03a8,
IonWedgeSequence: 0x300a03aa,
IonWedgePositionSequence: 0x300a03ac,
ReferencedSetupImageSequence: 0x300a0401,
SetupImageComment: 0x300a0402,
MotionSynchronizationSequence: 0x300a0410,
ControlPointOrientation: 0x300a0412,
GeneralAccessorySequence: 0x300a0420,
GeneralAccessoryID: 0x300a0421,
GeneralAccessoryDescription: 0x300a0422,
GeneralAccessoryType: 0x300a0423,
GeneralAccessoryNumber: 0x300a0424,
SourceToGeneralAccessoryDistance: 0x300a0425,
ApplicatorGeometrySequence: 0x300a0431,
ApplicatorApertureShape: 0x300a0432,
ApplicatorOpening: 0x300a0433,
ApplicatorOpeningX: 0x300a0434,
ApplicatorOpeningY: 0x300a0435,
SourceToApplicatorMountingPositionDistance: 0x300a0436,
NumberOfBlockSlabItems: 0x300a0440,
BlockSlabSequence: 0x300a0441,
BlockSlabThickness: 0x300a0442,
BlockSlabNumber: 0x300a0443,
DeviceMotionControlSequence: 0x300a0450,
DeviceMotionExecutionMode: 0x300a0451,
DeviceMotionObservationMode: 0x300a0452,
DeviceMotionParameterCodeSequence: 0x300a0453,
DistalDepthFraction: 0x300a0501,
DistalDepth: 0x300a0502,
NominalRangeModulationFractions: 0x300a0503,
NominalRangeModulatedRegionDepths: 0x300a0504,
DepthDoseParametersSequence: 0x300a0505,
DeliveredDepthDoseParametersSequence: 0x300a0506,
DeliveredDistalDepthFraction: 0x300a0507,
DeliveredDistalDepth: 0x300a0508,
DeliveredNominalRangeModulationFractions: 0x300a0509,
DeliveredNominalRangeModulatedRegionDepths: 0x300a0510,
DeliveredReferenceDoseDefinition: 0x300a0511,
ReferenceDoseDefinition: 0x300a0512,
ReferencedRTPlanSequence: 0x300c0002,
ReferencedBeamSequence: 0x300c0004,
ReferencedBeamNumber: 0x300c0006,
ReferencedReferenceImageNumber: 0x300c0007,
StartCumulativeMetersetWeight: 0x300c0008,
EndCumulativeMetersetWeight: 0x300c0009,
ReferencedBrachyApplicationSetupSequence: 0x300c000a,
ReferencedBrachyApplicationSetupNumber: 0x300c000c,
ReferencedSourceNumber: 0x300c000e,
ReferencedFractionGroupSequence: 0x300c0020,
ReferencedFractionGroupNumber: 0x300c0022,
ReferencedVerificationImageSequence: 0x300c0040,
ReferencedReferenceImageSequence: 0x300c0042,
ReferencedDoseReferenceSequence: 0x300c0050,
ReferencedDoseReferenceNumber: 0x300c0051,
BrachyReferencedDoseReferenceSequence: 0x300c0055,
ReferencedStructureSetSequence: 0x300c0060,
ReferencedPatientSetupNumber: 0x300c006a,
ReferencedDoseSequence: 0x300c0080,
ReferencedToleranceTableNumber: 0x300c00a0,
ReferencedBolusSequence: 0x300c00b0,
ReferencedWedgeNumber: 0x300c00c0,
ReferencedCompensatorNumber: 0x300c00d0,
ReferencedBlockNumber: 0x300c00e0,
ReferencedControlPointIndex: 0x300c00f0,
ReferencedControlPointSequence: 0x300c00f2,
ReferencedStartControlPointIndex: 0x300c00f4,
ReferencedStopControlPointIndex: 0x300c00f6,
ReferencedRangeShifterNumber: 0x300c0100,
ReferencedLateralSpreadingDeviceNumber: 0x300c0102,
ReferencedRangeModulatorNumber: 0x300c0104,
OmittedBeamTaskSequence: 0x300c0111,
ReasonForOmission: 0x300c0112,
ReasonForOmissionDescription: 0x300c0113,
ApprovalStatus: 0x300e0002,
ReviewDate: 0x300e0004,
ReviewTime: 0x300e0005,
ReviewerName: 0x300e0008,
Arbitrary: 0x40000010,
TextComments: 0x40004000,
ResultsID: 0x40080040,
ResultsIDIssuer: 0x40080042,
ReferencedInterpretationSequence: 0x40080050,
ReportProductionStatusTrial: 0x400800ff,
InterpretationRecordedDate: 0x40080100,
InterpretationRecordedTime: 0x40080101,
InterpretationRecorder: 0x40080102,
ReferenceToRecordedSound: 0x40080103,
InterpretationTranscriptionDate: 0x40080108,
InterpretationTranscriptionTime: 0x40080109,
InterpretationTranscriber: 0x4008010a,
InterpretationText: 0x4008010b,
InterpretationAuthor: 0x4008010c,
InterpretationApproverSequence: 0x40080111,
InterpretationApprovalDate: 0x40080112,
InterpretationApprovalTime: 0x40080113,
PhysicianApprovingInterpretation: 0x40080114,
InterpretationDiagnosisDescription: 0x40080115,
InterpretationDiagnosisCodeSequence: 0x40080117,
ResultsDistributionListSequence: 0x40080118,
DistributionName: 0x40080119,
DistributionAddress: 0x4008011a,
InterpretationID: 0x40080200,
InterpretationIDIssuer: 0x40080202,
InterpretationTypeID: 0x40080210,
InterpretationStatusID: 0x40080212,
Impressions: 0x40080300,
ResultsComments: 0x40084000,
LowEnergyDetectors: 0x40100001,
HighEnergyDetectors: 0x40100002,
DetectorGeometrySequence: 0x40100004,
ThreatROIVoxelSequence: 0x40101001,
ThreatROIBase: 0x40101004,
ThreatROIExtents: 0x40101005,
ThreatROIBitmap: 0x40101006,
RouteSegmentID: 0x40101007,
GantryType: 0x40101008,
OOIOwnerType: 0x40101009,
RouteSegmentSequence: 0x4010100a,
PotentialThreatObjectID: 0x40101010,
ThreatSequence: 0x40101011,
ThreatCategory: 0x40101012,
ThreatCategoryDescription: 0x40101013,
ATDAbilityAssessment: 0x40101014,
ATDAssessmentFlag: 0x40101015,
ATDAssessmentProbability: 0x40101016,
Mass: 0x40101017,
Density: 0x40101018,
ZEffective: 0x40101019,
BoardingPassID: 0x4010101a,
CenterOfMass: 0x4010101b,
CenterOfPTO: 0x4010101c,
BoundingPolygon: 0x4010101d,
RouteSegmentStartLocationID: 0x4010101e,
RouteSegmentEndLocationID: 0x4010101f,
RouteSegmentLocationIDType: 0x40101020,
AbortReason: 0x40101021,
VolumeOfPTO: 0x40101023,
AbortFlag: 0x40101024,
RouteSegmentStartTime: 0x40101025,
RouteSegmentEndTime: 0x40101026,
TDRType: 0x40101027,
InternationalRouteSegment: 0x40101028,
ThreatDetectionAlgorithmandVersion: 0x40101029,
AssignedLocation: 0x4010102a,
AlarmDecisionTime: 0x4010102b,
AlarmDecision: 0x40101031,
NumberOfTotalObjects: 0x40101033,
NumberOfAlarmObjects: 0x40101034,
PTORepresentationSequence: 0x40101037,
ATDAssessmentSequence: 0x40101038,
TIPType: 0x40101039,
DICOSVersion: 0x4010103a,
OOIOwnerCreationTime: 0x40101041,
OOIType: 0x40101042,
OOISize: 0x40101043,
AcquisitionStatus: 0x40101044,
BasisMaterialsCodeSequence: 0x40101045,
PhantomType: 0x40101046,
OOIOwnerSequence: 0x40101047,
ScanType: 0x40101048,
ItineraryID: 0x40101051,
ItineraryIDType: 0x40101052,
ItineraryIDAssigningAuthority: 0x40101053,
RouteID: 0x40101054,
RouteIDAssigningAuthority: 0x40101055,
InboundArrivalType: 0x40101056,
CarrierID: 0x40101058,
CarrierIDAssigningAuthority: 0x40101059,
SourceOrientation: 0x40101060,
SourcePosition: 0x40101061,
BeltHeight: 0x40101062,
AlgorithmRoutingCodeSequence: 0x40101064,
TransportClassification: 0x40101067,
OOITypeDescriptor: 0x40101068,
TotalProcessingTime: 0x40101069,
DetectorCalibrationData: 0x4010106c,
AdditionalScreeningPerformed: 0x4010106d,
AdditionalInspectionSelectionCriteria: 0x4010106e,
AdditionalInspectionMethodSequence: 0x4010106f,
AITDeviceType: 0x40101070,
QRMeasurementsSequence: 0x40101071,
TargetMaterialSequence: 0x40101072,
SNRThreshold: 0x40101073,
ImageScaleRepresentation: 0x40101075,
ReferencedPTOSequence: 0x40101076,
ReferencedTDRInstanceSequence: 0x40101077,
PTOLocationDescription: 0x40101078,
AnomalyLocatorIndicatorSequence: 0x40101079,
AnomalyLocatorIndicator: 0x4010107a,
PTORegionSequence: 0x4010107b,
InspectionSelectionCriteria: 0x4010107c,
SecondaryInspectionMethodSequence: 0x4010107d,
PRCSToRCSOrientation: 0x4010107e,
MACParametersSequence: 0x4ffe0001,
CurveDimensions: 0x50000005,
NumberOfPoints: 0x50000010,
TypeOfData: 0x50000020,
CurveDescription: 0x50000022,
AxisUnits: 0x50000030,
AxisLabels: 0x50000040,
DataValueRepresentation: 0x50000103,
MinimumCoordinateValue: 0x50000104,
MaximumCoordinateValue: 0x50000105,
CurveRange: 0x50000106,
CurveDataDescriptor: 0x50000110,
CoordinateStartValue: 0x50000112,
CoordinateStepValue: 0x50000114,
CurveActivationLayer: 0x50001001,
AudioType: 0x50002000,
AudioSampleFormat: 0x50002002,
NumberOfChannels: 0x50002004,
NumberOfSamples: 0x50002006,
SampleRate: 0x50002008,
TotalTime: 0x5000200a,
AudioSampleData: 0x5000200c,
AudioComments: 0x5000200e,
CurveLabel: 0x50002500,
CurveReferencedOverlaySequence: 0x50002600,
CurveReferencedOverlayGroup: 0x50002610,
CurveData: 0x50003000,
SharedFunctionalGroupsSequence: 0x52009229,
PerFrameFunctionalGroupsSequence: 0x52009230,
WaveformSequence: 0x54000100,
ChannelMinimumValue: 0x54000110,
ChannelMaximumValue: 0x54000112,
WaveformBitsAllocated: 0x54001004,
WaveformSampleInterpretation: 0x54001006,
WaveformPaddingValue: 0x5400100a,
WaveformData: 0x54001010,
FirstOrderPhaseCorrectionAngle: 0x56000010,
SpectroscopyData: 0x56000020,
OverlayRows: 0x60000010,
OverlayColumns: 0x60000011,
OverlayPlanes: 0x60000012,
NumberOfFramesInOverlay: 0x60000015,
OverlayDescription: 0x60000022,
OverlayType: 0x60000040,
OverlaySubtype: 0x60000045,
OverlayOrigin: 0x60000050,
ImageFrameOrigin: 0x60000051,
OverlayPlaneOrigin: 0x60000052,
OverlayCompressionCode: 0x60000060,
OverlayCompressionOriginator: 0x60000061,
OverlayCompressionLabel: 0x60000062,
OverlayCompressionDescription: 0x60000063,
OverlayCompressionStepPointers: 0x60000066,
OverlayRepeatInterval: 0x60000068,
OverlayBitsGrouped: 0x60000069,
OverlayBitsAllocated: 0x60000100,
OverlayBitPosition: 0x60000102,
OverlayFormat: 0x60000110,
OverlayLocation: 0x60000200,
OverlayCodeLabel: 0x60000800,
OverlayNumberOfTables: 0x60000802,
OverlayCodeTableLocation: 0x60000803,
OverlayBitsForCodeWord: 0x60000804,
OverlayActivationLayer: 0x60001001,
OverlayDescriptorGray: 0x60001100,
OverlayDescriptorRed: 0x60001101,
OverlayDescriptorGreen: 0x60001102,
OverlayDescriptorBlue: 0x60001103,
OverlaysGray: 0x60001200,
OverlaysRed: 0x60001201,
OverlaysGreen: 0x60001202,
OverlaysBlue: 0x60001203,
ROIArea: 0x60001301,
ROIMean: 0x60001302,
ROIStandardDeviation: 0x60001303,
OverlayLabel: 0x60001500,
OverlayData: 0x60003000,
OverlayComments: 0x60004000,
FloatPixelData: 0x7fe00008,
DoubleFloatPixelData: 0x7fe00009,
PixelData: 0x7fe00010,
CoefficientsSDVN: 0x7fe00020,
CoefficientsSDHN: 0x7fe00030,
CoefficientsSDDN: 0x7fe00040,
VariablePixelData: 0x7f000010,
VariableNextDataGroup: 0x7f000011,
VariableCoefficientsSDVN: 0x7f000020,
VariableCoefficientsSDHN: 0x7f000030,
VariableCoefficientsSDDN: 0x7f000040,
DigitalSignaturesSequence: 0xfffafffa,
DataSetTrailingPadding: 0xfffcfffc,
Item: 0xfffee000,
ItemDelimitationItem: 0xfffee00d,
SequenceDelimitationItem: 0xfffee0dd,
// private tags
PhilipsSUVScaleFactor: 0x70531000,
PhilipsActivityConcentrationFactor: 0x70531009,
PhilipsCreatorDataElements: 0x70530010,
};
/***/ }),
/***/ "./src/uid-to-name.ts":
/*!****************************!*\
!*** ./src/uid-to-name.ts ***!
\****************************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UIDToName = void 0;
class UIDToName {
static nameOf(uid) {
return UIDToName.dict[uid];
}
}
UIDToName.dict = {
'1.2.840.10008.1.1': 'Verification SOP Class',
'1.2.840.10008.1.2': 'Implicit VR Little Endian',
'1.2.840.10008.1.2.1': 'Explicit VR Little Endian',
'1.2.840.10008.1.2.1.99': 'Deflated Explicit VR Little Endian',
'1.2.840.10008.1.2.2': 'Explicit VR Big Endian (Retired,',
'1.2.840.10008.1.2.4.50': 'JPEG Baseline (Process 1,',
'1.2.840.10008.1.2.4.51': 'JPEG Extended (Process 2 & 4,',
'1.2.840.10008.1.2.4.52': 'JPEG Extended (Process 3 & 5, (Retired,',
'1.2.840.10008.1.2.4.53': 'JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8, (Retired,',
'1.2.840.10008.1.2.4.54': 'JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9, (Retired,',
'1.2.840.10008.1.2.4.55': 'JPEG Full Progression, Non-Hierarchical (Process 10 & 12, (Retired,',
'1.2.840.10008.1.2.4.56': 'JPEG Full Progression, Non-Hierarchical (Process 11 & 13, (Retired,',
'1.2.840.10008.1.2.4.57': 'JPEG Lossless, Non-Hierarchical (Process 14,',
'1.2.840.10008.1.2.4.58': 'JPEG Lossless, Non-Hierarchical (Process 15, (Retired,',
'1.2.840.10008.1.2.4.59': 'JPEG Extended, Hierarchical (Process 16 & 18, (Retired,',
'1.2.840.10008.1.2.4.60': 'JPEG Extended, Hierarchical (Process 17 & 19, (Retired,',
'1.2.840.10008.1.2.4.61': 'JPEG Spectral Selection, Hierarchical (Process 20 & 22, (Retired,',
'1.2.840.10008.1.2.4.62': 'JPEG Spectral Selection, Hierarchical (Process 21 & 23, (Retired,',
'1.2.840.10008.1.2.4.63': 'JPEG Full Progression, Hierarchical (Process 24 & 26, (Retired,',
'1.2.840.10008.1.2.4.64': 'JPEG Full Progression, Hierarchical (Process 25 & 27, (Retired,',
'1.2.840.10008.1.2.4.65': 'JPEG Lossless, Hierarchical (Process 28, (Retired,',
'1.2.840.10008.1.2.4.66': 'JPEG Lossless, Hierarchical (Process 29, (Retired,',
'1.2.840.10008.1.2.4.70': 'JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1],',
'1.2.840.10008.1.2.4.80': 'JPEG-LS Lossless Image Compression',
'1.2.840.10008.1.2.4.81': 'JPEG-LS Lossy (Near-Lossless, Image Compression',
'1.2.840.10008.1.2.4.90': 'JPEG 2000 Image Compression (Lossless Only,',
'1.2.840.10008.1.2.4.91': 'JPEG 2000 Image Compression',
'1.2.840.10008.1.2.4.92': 'JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only,',
'1.2.840.10008.1.2.4.93': 'JPEG 2000 Part 2 Multi-component Image Compression',
'1.2.840.10008.1.2.4.94': 'JPIP Referenced',
'1.2.840.10008.1.2.4.95': 'JPIP Referenced Deflate',
'1.2.840.10008.1.2.4.100': 'MPEG2 Main Profile / Main Level',
'1.2.840.10008.1.2.4.101': 'MPEG2 Main Profile / High Level',
'1.2.840.10008.1.2.4.102': 'MPEG-4 AVC/H.264 High Profile / Level 4.1',
'1.2.840.10008.1.2.4.103': 'MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1',
'1.2.840.10008.1.2.4.104': 'MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video',
'1.2.840.10008.1.2.4.105': 'MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video',
'1.2.840.10008.1.2.4.106': 'MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2',
'1.2.840.10008.1.2.4.107': 'HEVC/H.265 Main Profile / Level 5.1',
'1.2.840.10008.1.2.4.108': 'HEVC/H.265 Main 10 Profile / Level 5.1',
'1.2.840.10008.1.2.5': 'RLE Lossless',
'1.2.840.10008.1.2.6.1': 'RFC 2557 MIME encapsulation (Retired,',
'1.2.840.10008.1.2.6.2': 'XML Encoding (Retired,',
'1.2.840.10008.1.3.10': 'Media Storage Directory Storage',
'1.2.840.10008.1.4.1.1': 'Talairach Brain Atlas Frame of Reference',
'1.2.840.10008.1.4.1.2': 'SPM2 T1 Frame of Reference',
'1.2.840.10008.1.4.1.3': 'SPM2 T2 Frame of Reference',
'1.2.840.10008.1.4.1.4': 'SPM2 PD Frame of Reference',
'1.2.840.10008.1.4.1.5': 'SPM2 EPI Frame of Reference',
'1.2.840.10008.1.4.1.6': 'SPM2 FIL T1 Frame of Reference',
'1.2.840.10008.1.4.1.7': 'SPM2 PET Frame of Reference',
'1.2.840.10008.1.4.1.8': 'SPM2 TRANSM Frame of Reference',
'1.2.840.10008.1.4.1.9': 'SPM2 SPECT Frame of Reference',
'1.2.840.10008.1.4.1.10': 'SPM2 GRAY Frame of Reference',
'1.2.840.10008.1.4.1.11': 'SPM2 WHITE Frame of Reference',
'1.2.840.10008.1.4.1.12': 'SPM2 CSF Frame of Reference',
'1.2.840.10008.1.4.1.13': 'SPM2 BRAINMASK Frame of Reference',
'1.2.840.10008.1.4.1.14': 'SPM2 AVG305T1 Frame of Reference',
'1.2.840.10008.1.4.1.15': 'SPM2 AVG152T1 Frame of Reference',
'1.2.840.10008.1.4.1.16': 'SPM2 AVG152T2 Frame of Reference',
'1.2.840.10008.1.4.1.17': 'SPM2 AVG152PD Frame of Reference',
'1.2.840.10008.1.4.1.18': 'SPM2 SINGLESUBJT1 Frame of Reference',
'1.2.840.10008.1.4.2.1': 'ICBM 452 T1 Frame of Reference',
'1.2.840.10008.1.4.2.2': 'ICBM Single Subject MRI Frame of Reference',
'1.2.840.10008.1.5.1': 'Hot Iron Color Palette SOP Instance',
'1.2.840.10008.1.5.2': 'PET Color Palette SOP Instance',
'1.2.840.10008.1.5.3': 'Hot Metal Blue Color Palette SOP Instance',
'1.2.840.10008.1.5.4': 'PET 20 Step Color Palette SOP Instance',
'1.2.840.10008.1.5.5': 'Spring Color Palette SOP Instance',
'1.2.840.10008.1.5.6': 'Summer Color Palette SOP Instance',
'1.2.840.10008.1.5.7': 'Fall Color Palette SOP Instance',
'1.2.840.10008.1.5.8': 'Winter Color Palette SOP Instance',
'1.2.840.10008.1.9': 'Basic Study Content Notification SOP Class (Retired,',
'1.2.840.10008.1.20': 'Papyrus 3 Implicit VR Little Endian (Retired,',
'1.2.840.10008.1.20.1': 'Storage Commitment Push Model SOP Class',
'1.2.840.10008.1.20.1.1': 'Storage Commitment Push Model SOP Instance',
'1.2.840.10008.1.20.2': 'Storage Commitment Pull Model SOP Class (Retired,',
'1.2.840.10008.1.20.2.1': 'Storage Commitment Pull Model SOP Instance (Retired,',
'1.2.840.10008.1.40': 'Procedural Event Logging SOP Class',
'1.2.840.10008.1.40.1': 'Procedural Event Logging SOP Instance',
'1.2.840.10008.1.42': 'Substance Administration Logging SOP Class',
'1.2.840.10008.1.42.1': 'Substance Administration Logging SOP Instance',
'1.2.840.10008.2.6.1': 'DICOM UID Registry',
'1.2.840.10008.2.16.4': 'DICOM Controlled Terminology',
'1.2.840.10008.2.16.5': 'Adult Mouse Anatomy Ontology',
'1.2.840.10008.2.16.6': 'Uberon Ontology',
'1.2.840.10008.2.16.7': 'Integrated Taxonomic Information System',
'1.2.840.10008.2.16.8': 'Mouse Genome Initiative (MGI,',
'1.2.840.10008.2.16.9': 'PubChem Compound CID',
'1.2.840.10008.2.16.10': 'ICD-11',
'1.2.840.10008.2.16.11': 'New York University Melanoma Clinical Cooperative Group',
'1.2.840.10008.2.16.12': 'Mayo Clinic Non-radiological Images Specific Body Structure Anatomical Surface Region Guide',
'1.2.840.10008.2.16.13': 'Image Biomarker Standardisation Initiative',
'1.2.840.10008.2.16.14': 'Radiomics Ontology',
'1.2.840.10008.3.1.1.1': 'DICOM Application Context Name',
'1.2.840.10008.3.1.2.1.1': 'Detached Patient Management SOP Class (Retired,',
'1.2.840.10008.3.1.2.1.4': 'Detached Patient Management Meta SOP Class (Retired,',
'1.2.840.10008.3.1.2.2.1': 'Detached Visit Management SOP Class (Retired,',
'1.2.840.10008.3.1.2.3.1': 'Detached Study Management SOP Class (Retired,',
'1.2.840.10008.3.1.2.3.2': 'Study Component Management SOP Class (Retired,',
'1.2.840.10008.3.1.2.3.3': 'Modality Performed Procedure Step SOP Class',
'1.2.840.10008.3.1.2.3.4': 'Modality Performed Procedure Step Retrieve SOP Class',
'1.2.840.10008.3.1.2.3.5': 'Modality Performed Procedure Step Notification SOP Class',
'1.2.840.10008.3.1.2.5.1': 'Detached Results Management SOP Class (Retired,',
'1.2.840.10008.3.1.2.5.4': 'Detached Results Management Meta SOP Class (Retired,',
'1.2.840.10008.3.1.2.5.5': 'Detached Study Management Meta SOP Class (Retired,',
'1.2.840.10008.3.1.2.6.1': 'Detached Interpretation Management SOP Class (Retired,',
'1.2.840.10008.4.2': 'Storage Service Class',
'1.2.840.10008.5.1.1.1': 'Basic Film Session SOP Class',
'1.2.840.10008.5.1.1.2': 'Basic Film Box SOP Class',
'1.2.840.10008.5.1.1.4': 'Basic Grayscale Image Box SOP Class',
'1.2.840.10008.5.1.1.4.1': 'Basic Color Image Box SOP Class',
'1.2.840.10008.5.1.1.4.2': 'Referenced Image Box SOP Class (Retired,',
'1.2.840.10008.5.1.1.9': 'Basic Grayscale Print Management Meta SOP Class',
'1.2.840.10008.5.1.1.9.1': 'Referenced Grayscale Print Management Meta SOP Class (Retired,',
'1.2.840.10008.5.1.1.14': 'Print Job SOP Class',
'1.2.840.10008.5.1.1.15': 'Basic Annotation Box SOP Class',
'1.2.840.10008.5.1.1.16': 'Printer SOP Class',
'1.2.840.10008.5.1.1.16.376': 'Printer Configuration Retrieval SOP Class',
'1.2.840.10008.5.1.1.17': 'Printer SOP Instance',
'1.2.840.10008.5.1.1.17.376': 'Printer Configuration Retrieval SOP Instance',
'1.2.840.10008.5.1.1.18': 'Basic Color Print Management Meta SOP Class',
'1.2.840.10008.5.1.1.18.1': 'Referenced Color Print Management Meta SOP Class (Retired,',
'1.2.840.10008.5.1.1.22': 'VOI LUT Box SOP Class',
'1.2.840.10008.5.1.1.23': 'Presentation LUT SOP Class',
'1.2.840.10008.5.1.1.24': 'Image Overlay Box SOP Class (Retired,',
'1.2.840.10008.5.1.1.24.1': 'Basic Print Image Overlay Box SOP Class (Retired,',
'1.2.840.10008.5.1.1.25': 'Print Queue SOP Instance (Retired,',
'1.2.840.10008.5.1.1.26': 'Print Queue Management SOP Class (Retired,',
'1.2.840.10008.5.1.1.27': 'Stored Print Storage SOP Class (Retired,',
'1.2.840.10008.5.1.1.29': 'Hardcopy Grayscale Image Storage SOP Class (Retired,',
'1.2.840.10008.5.1.1.30': 'Hardcopy Color Image Storage SOP Class (Retired,',
'1.2.840.10008.5.1.1.31': 'Pull Print Request SOP Class (Retired,',
'1.2.840.10008.5.1.1.32': 'Pull Stored Print Management Meta SOP Class (Retired,',
'1.2.840.10008.5.1.1.33': 'Media Creation Management SOP Class UID',
'1.2.840.10008.5.1.1.40': 'Display System SOP Class',
'1.2.840.10008.5.1.1.40.1': 'Display System SOP Instance',
'1.2.840.10008.5.1.4.1.1.1': 'Computed Radiography Image Storage',
'1.2.840.10008.5.1.4.1.1.1.1': 'Digital X-Ray Image Storage - For Presentation',
'1.2.840.10008.5.1.4.1.1.1.1.1': 'Digital X-Ray Image Storage - For Processing',
'1.2.840.10008.5.1.4.1.1.1.2': 'Digital Mammography X-Ray Image Storage - For Presentation',
'1.2.840.10008.5.1.4.1.1.1.2.1': 'Digital Mammography X-Ray Image Storage - For Processing',
'1.2.840.10008.5.1.4.1.1.1.3': 'Digital Intra-Oral X-Ray Image Storage - For Presentation',
'1.2.840.10008.5.1.4.1.1.1.3.1': 'Digital Intra-Oral X-Ray Image Storage - For Processing',
'1.2.840.10008.5.1.4.1.1.2': 'CT Image Storage',
'1.2.840.10008.5.1.4.1.1.2.1': 'Enhanced CT Image Storage',
'1.2.840.10008.5.1.4.1.1.2.2': 'Legacy Converted Enhanced CT Image Storage',
'1.2.840.10008.5.1.4.1.1.3': 'Ultrasound Multi-frame Image Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.3.1': 'Ultrasound Multi-frame Image Storage',
'1.2.840.10008.5.1.4.1.1.4': 'MR Image Storage',
'1.2.840.10008.5.1.4.1.1.4.1': 'Enhanced MR Image Storage',
'1.2.840.10008.5.1.4.1.1.4.2': 'MR Spectroscopy Storage',
'1.2.840.10008.5.1.4.1.1.4.3': 'Enhanced MR Color Image Storage',
'1.2.840.10008.5.1.4.1.1.4.4': 'Legacy Converted Enhanced MR Image Storage',
'1.2.840.10008.5.1.4.1.1.5': 'Nuclear Medicine Image Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.6': 'Ultrasound Image Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.6.1': 'Ultrasound Image Storage',
'1.2.840.10008.5.1.4.1.1.6.2': 'Enhanced US Volume Storage',
'1.2.840.10008.5.1.4.1.1.7': 'Secondary Capture Image Storage',
'1.2.840.10008.5.1.4.1.1.7.1': 'Multi-frame Single Bit Secondary Capture Image Storage',
'1.2.840.10008.5.1.4.1.1.7.2': 'Multi-frame Grayscale Byte Secondary Capture Image Storage',
'1.2.840.10008.5.1.4.1.1.7.3': 'Multi-frame Grayscale Word Secondary Capture Image Storage',
'1.2.840.10008.5.1.4.1.1.7.4': 'Multi-frame True Color Secondary Capture Image Storage',
'1.2.840.10008.5.1.4.1.1.8': 'Standalone Overlay Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.9': 'Standalone Curve Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.9.1': 'Waveform Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.1.1.9.1.1': '12-lead ECG Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.1.2': 'General ECG Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.1.3': 'Ambulatory ECG Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.2.1': 'Hemodynamic Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.3.1': 'Cardiac Electrophysiology Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.4.1': 'Basic Voice Audio Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.4.2': 'General Audio Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.5.1': 'Arterial Pulse Waveform Storage',
'1.2.840.10008.5.1.4.1.1.9.6.1': 'Respiratory Waveform Storage',
'1.2.840.10008.5.1.4.1.1.10': 'Standalone Modality LUT Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.11': 'Standalone VOI LUT Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.11.1': 'Grayscale Softcopy Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.2': 'Color Softcopy Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.3': 'Pseudo-Color Softcopy Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.4': 'Blending Softcopy Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.5': 'XA/XRF Grayscale Softcopy Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.6': 'Grayscale Planar MPR Volumetric Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.7': 'Compositing Planar MPR Volumetric Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.8': 'Advanced Blending Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.9': 'Volume Rendering Volumetric Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.10': 'Segmented Volume Rendering Volumetric Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.11.11': 'Multiple Volume Rendering Volumetric Presentation State Storage',
'1.2.840.10008.5.1.4.1.1.12.1': 'X-Ray Angiographic Image Storage',
'1.2.840.10008.5.1.4.1.1.12.1.1': 'Enhanced XA Image Storage',
'1.2.840.10008.5.1.4.1.1.12.2': 'X-Ray Radiofluoroscopic Image Storage',
'1.2.840.10008.5.1.4.1.1.12.2.1': 'Enhanced XRF Image Storage',
'1.2.840.10008.5.1.4.1.1.12.3': 'X-Ray Angiographic Bi-Plane Image Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.12.77': '(Retired,',
'1.2.840.10008.5.1.4.1.1.13.1.1': 'X-Ray 3D Angiographic Image Storage',
'1.2.840.10008.5.1.4.1.1.13.1.2': 'X-Ray 3D Craniofacial Image Storage',
'1.2.840.10008.5.1.4.1.1.13.1.3': 'Breast Tomosynthesis Image Storage',
'1.2.840.10008.5.1.4.1.1.13.1.4': 'Breast Projection X-Ray Image Storage - For Presentation',
'1.2.840.10008.5.1.4.1.1.13.1.5': 'Breast Projection X-Ray Image Storage - For Processing',
'1.2.840.10008.5.1.4.1.1.14.1': 'Intravascular Optical Coherence Tomography Image Storage - For Presentation',
'1.2.840.10008.5.1.4.1.1.14.2': 'Intravascular Optical Coherence Tomography Image Storage - For Processing',
'1.2.840.10008.5.1.4.1.1.20': 'Nuclear Medicine Image Storage',
'1.2.840.10008.5.1.4.1.1.30': 'Parametric Map Storage',
'1.2.840.10008.5.1.4.1.1.40': '(Retired,',
'1.2.840.10008.5.1.4.1.1.66': 'Raw Data Storage',
'1.2.840.10008.5.1.4.1.1.66.1': 'Spatial Registration Storage',
'1.2.840.10008.5.1.4.1.1.66.2': 'Spatial Fiducials Storage',
'1.2.840.10008.5.1.4.1.1.66.3': 'Deformable Spatial Registration Storage',
'1.2.840.10008.5.1.4.1.1.66.4': 'Segmentation Storage',
'1.2.840.10008.5.1.4.1.1.66.5': 'Surface Segmentation Storage',
'1.2.840.10008.5.1.4.1.1.66.6': 'Tractography Results Storage',
'1.2.840.10008.5.1.4.1.1.67': 'Real World Value Mapping Storage',
'1.2.840.10008.5.1.4.1.1.68.1': 'Surface Scan Mesh Storage',
'1.2.840.10008.5.1.4.1.1.68.2': 'Surface Scan Point Cloud Storage',
'1.2.840.10008.5.1.4.1.1.77.1': 'VL Image Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.1.1.77.2': 'VL Multi-frame Image Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.1.1.77.1.1': 'VL Endoscopic Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.1.1': 'Video Endoscopic Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.2': 'VL Microscopic Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.2.1': 'Video Microscopic Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.3': 'VL Slide-Coordinates Microscopic Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.4': 'VL Photographic Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.4.1': 'Video Photographic Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.1': 'Ophthalmic Photography 8 Bit Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.2': 'Ophthalmic Photography 16 Bit Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.3': 'Stereometric Relationship Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.4': 'Ophthalmic Tomography Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.5': 'Wide Field Ophthalmic Photography Stereographic Projection Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.6': 'Wide Field Ophthalmic Photography 3D Coordinates Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.7': 'Ophthalmic Optical Coherence Tomography En Face Image Storage',
'1.2.840.10008.5.1.4.1.1.77.1.5.8': 'Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage',
'1.2.840.10008.5.1.4.1.1.77.1.6': 'VL Whole Slide Microscopy Image Storage',
'1.2.840.10008.5.1.4.1.1.78.1': 'Lensometry Measurements Storage',
'1.2.840.10008.5.1.4.1.1.78.2': 'Autorefraction Measurements Storage',
'1.2.840.10008.5.1.4.1.1.78.3': 'Keratometry Measurements Storage',
'1.2.840.10008.5.1.4.1.1.78.4': 'Subjective Refraction Measurements Storage',
'1.2.840.10008.5.1.4.1.1.78.5': 'Visual Acuity Measurements Storage',
'1.2.840.10008.5.1.4.1.1.78.6': 'Spectacle Prescription Report Storage',
'1.2.840.10008.5.1.4.1.1.78.7': 'Ophthalmic Axial Measurements Storage',
'1.2.840.10008.5.1.4.1.1.78.8': 'Intraocular Lens Calculations Storage',
'1.2.840.10008.5.1.4.1.1.79.1': 'Macular Grid Thickness and Volume Report Storage',
'1.2.840.10008.5.1.4.1.1.80.1': 'Ophthalmic Visual Field Static Perimetry Measurements Storage',
'1.2.840.10008.5.1.4.1.1.81.1': 'Ophthalmic Thickness Map Storage',
'1.2.840.10008.5.1.4.1.1.82.1': 'Corneal Topography Map Storage',
'1.2.840.10008.5.1.4.1.1.88.1': 'Text SR Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.1.1.88.2': 'Audio SR Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.1.1.88.3': 'Detail SR Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.1.1.88.4': 'Comprehensive SR Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.1.1.88.11': 'Basic Text SR Storage',
'1.2.840.10008.5.1.4.1.1.88.22': 'Enhanced SR Storage',
'1.2.840.10008.5.1.4.1.1.88.33': 'Comprehensive SR Storage',
'1.2.840.10008.5.1.4.1.1.88.34': 'Comprehensive 3D SR Storage',
'1.2.840.10008.5.1.4.1.1.88.35': 'Extensible SR Storage',
'1.2.840.10008.5.1.4.1.1.88.40': 'Procedure Log Storage',
'1.2.840.10008.5.1.4.1.1.88.50': 'Mammography CAD SR Storage',
'1.2.840.10008.5.1.4.1.1.88.59': 'Key Object Selection Document Storage',
'1.2.840.10008.5.1.4.1.1.88.65': 'Chest CAD SR Storage',
'1.2.840.10008.5.1.4.1.1.88.67': 'X-Ray Radiation Dose SR Storage',
'1.2.840.10008.5.1.4.1.1.88.68': 'Radiopharmaceutical Radiation Dose SR Storage',
'1.2.840.10008.5.1.4.1.1.88.69': 'Colon CAD SR Storage',
'1.2.840.10008.5.1.4.1.1.88.70': 'Implantation Plan SR Storage',
'1.2.840.10008.5.1.4.1.1.88.71': 'Acquisition Context SR Storage',
'1.2.840.10008.5.1.4.1.1.88.72': 'Simplified Adult Echo SR Storage',
'1.2.840.10008.5.1.4.1.1.88.73': 'Patient Radiation Dose SR Storage',
'1.2.840.10008.5.1.4.1.1.88.74': 'Planned Imaging Agent Administration SR Storage',
'1.2.840.10008.5.1.4.1.1.88.75': 'Performed Imaging Agent Administration SR Storage',
'1.2.840.10008.5.1.4.1.1.90.1': 'Content Assessment Results Storage',
'1.2.840.10008.5.1.4.1.1.104.1': 'Encapsulated PDF Storage',
'1.2.840.10008.5.1.4.1.1.104.2': 'Encapsulated CDA Storage',
'1.2.840.10008.5.1.4.1.1.104.3': 'Encapsulated STL Storage',
'1.2.840.10008.5.1.4.1.1.128': 'Positron Emission Tomography Image Storage',
'1.2.840.10008.5.1.4.1.1.128.1': 'Legacy Converted Enhanced PET Image Storage',
'1.2.840.10008.5.1.4.1.1.129': 'Standalone PET Curve Storage (Retired,',
'1.2.840.10008.5.1.4.1.1.130': 'Enhanced PET Image Storage',
'1.2.840.10008.5.1.4.1.1.131': 'Basic Structured Display Storage',
'1.2.840.10008.5.1.4.1.1.200.1': 'CT Defined Procedure Protocol Storage',
'1.2.840.10008.5.1.4.1.1.200.2': 'CT Performed Procedure Protocol Storage',
'1.2.840.10008.5.1.4.1.1.200.3': 'Protocol Approval Storage',
'1.2.840.10008.5.1.4.1.1.200.4': 'Protocol Approval Information Model - FIND',
'1.2.840.10008.5.1.4.1.1.200.5': 'Protocol Approval Information Model - MOVE',
'1.2.840.10008.5.1.4.1.1.200.6': 'Protocol Approval Information Model - GET',
'1.2.840.10008.5.1.4.1.1.481.1': 'RT Image Storage',
'1.2.840.10008.5.1.4.1.1.481.2': 'RT Dose Storage',
'1.2.840.10008.5.1.4.1.1.481.3': 'RT Structure Set Storage',
'1.2.840.10008.5.1.4.1.1.481.4': 'RT Beams Treatment Record Storage',
'1.2.840.10008.5.1.4.1.1.481.5': 'RT Plan Storage',
'1.2.840.10008.5.1.4.1.1.481.6': 'RT Brachy Treatment Record Storage',
'1.2.840.10008.5.1.4.1.1.481.7': 'RT Treatment Summary Record Storage',
'1.2.840.10008.5.1.4.1.1.481.8': 'RT Ion Plan Storage',
'1.2.840.10008.5.1.4.1.1.481.9': 'RT Ion Beams Treatment Record Storage',
'1.2.840.10008.5.1.4.1.1.481.10': 'RT Physician Intent Storage',
'1.2.840.10008.5.1.4.1.1.481.11': 'RT Segment Annotation Storage',
'1.2.840.10008.5.1.4.1.1.501.1': 'DICOS CT Image Storage',
'1.2.840.10008.5.1.4.1.1.501.2.1': 'DICOS Digital X-Ray Image Storage - For Presentation',
'1.2.840.10008.5.1.4.1.1.501.2.2': 'DICOS Digital X-Ray Image Storage - For Processing',
'1.2.840.10008.5.1.4.1.1.501.3': 'DICOS Threat Detection Report Storage',
'1.2.840.10008.5.1.4.1.1.501.4': 'DICOS 2D AIT Storage',
'1.2.840.10008.5.1.4.1.1.501.5': 'DICOS 3D AIT Storage',
'1.2.840.10008.5.1.4.1.1.501.6': 'DICOS Quadrupole Resonance (QR, Storage',
'1.2.840.10008.5.1.4.1.1.601.1': 'Eddy Current Image Storage',
'1.2.840.10008.5.1.4.1.1.601.2': 'Eddy Current Multi-frame Image Storage',
'1.2.840.10008.5.1.4.1.2.1.1': 'Patient Root Query/Retrieve Information Model - FIND',
'1.2.840.10008.5.1.4.1.2.1.2': 'Patient Root Query/Retrieve Information Model - MOVE',
'1.2.840.10008.5.1.4.1.2.1.3': 'Patient Root Query/Retrieve Information Model - GET',
'1.2.840.10008.5.1.4.1.2.2.1': 'Study Root Query/Retrieve Information Model - FIND',
'1.2.840.10008.5.1.4.1.2.2.2': 'Study Root Query/Retrieve Information Model - MOVE',
'1.2.840.10008.5.1.4.1.2.2.3': 'Study Root Query/Retrieve Information Model - GET',
'1.2.840.10008.5.1.4.1.2.3.1': 'Patient/Study Only Query/Retrieve Information Model - FIND (Retired,',
'1.2.840.10008.5.1.4.1.2.3.2': 'Patient/Study Only Query/Retrieve Information Model - MOVE (Retired,',
'1.2.840.10008.5.1.4.1.2.3.3': 'Patient/Study Only Query/Retrieve Information Model - GET (Retired,',
'1.2.840.10008.5.1.4.1.2.4.2': 'Composite Instance Root Retrieve - MOVE',
'1.2.840.10008.5.1.4.1.2.4.3': 'Composite Instance Root Retrieve - GET',
'1.2.840.10008.5.1.4.1.2.5.3': 'Composite Instance Retrieve Without Bulk Data - GET',
'1.2.840.10008.5.1.4.20.1': 'Defined Procedure Protocol Information Model - FIND',
'1.2.840.10008.5.1.4.20.2': 'Defined Procedure Protocol Information Model - MOVE',
'1.2.840.10008.5.1.4.20.3': 'Defined Procedure Protocol Information Model - GET',
'1.2.840.10008.5.1.4.31': 'Modality Worklist Information Model - FIND',
'1.2.840.10008.5.1.4.32': 'General Purpose Worklist Management Meta SOP Class (Retired,',
'1.2.840.10008.5.1.4.32.1': 'General Purpose Worklist Information Model - FIND (Retired,',
'1.2.840.10008.5.1.4.32.2': 'General Purpose Scheduled Procedure Step SOP Class (Retired,',
'1.2.840.10008.5.1.4.32.3': 'General Purpose Performed Procedure Step SOP Class (Retired,',
'1.2.840.10008.5.1.4.33': 'Instance Availability Notification SOP Class',
'1.2.840.10008.5.1.4.34.1': 'RT Beams Delivery Instruction Storage - Trial (Retired,',
'1.2.840.10008.5.1.4.34.2': 'RT Conventional Machine Verification - Trial (Retired,',
'1.2.840.10008.5.1.4.34.3': 'RT Ion Machine Verification - Trial (Retired,',
'1.2.840.10008.5.1.4.34.4': 'Unified Worklist and Procedure Step Service Class - Trial (Retired,',
'1.2.840.10008.5.1.4.34.4.1': 'Unified Procedure Step - Push SOP Class - Trial (Retired,',
'1.2.840.10008.5.1.4.34.4.2': 'Unified Procedure Step - Watch SOP Class - Trial (Retired,',
'1.2.840.10008.5.1.4.34.4.3': 'Unified Procedure Step - Pull SOP Class - Trial (Retired,',
'1.2.840.10008.5.1.4.34.4.4': 'Unified Procedure Step - Event SOP Class - Trial (Retired,',
'1.2.840.10008.5.1.4.34.5': 'UPS Global Subscription SOP Instance',
'1.2.840.10008.5.1.4.34.5.1': 'UPS Filtered Global Subscription SOP Instance',
'1.2.840.10008.5.1.4.34.6': 'Unified Worklist and Procedure Step Service Class',
'1.2.840.10008.5.1.4.34.6.1': 'Unified Procedure Step - Push SOP Class',
'1.2.840.10008.5.1.4.34.6.2': 'Unified Procedure Step - Watch SOP Class',
'1.2.840.10008.5.1.4.34.6.3': 'Unified Procedure Step - Pull SOP Class',
'1.2.840.10008.5.1.4.34.6.4': 'Unified Procedure Step - Event SOP Class',
'1.2.840.10008.5.1.4.34.7': 'RT Beams Delivery Instruction Storage',
'1.2.840.10008.5.1.4.34.8': 'RT Conventional Machine Verification',
'1.2.840.10008.5.1.4.34.9': 'RT Ion Machine Verification',
'1.2.840.10008.5.1.4.34.10': 'RT Brachy Application Setup Delivery Instruction Storage',
'1.2.840.10008.5.1.4.37.1': 'General Relevant Patient Information Query',
'1.2.840.10008.5.1.4.37.2': 'Breast Imaging Relevant Patient Information Query',
'1.2.840.10008.5.1.4.37.3': 'Cardiac Relevant Patient Information Query',
'1.2.840.10008.5.1.4.38.1': 'Hanging Protocol Storage',
'1.2.840.10008.5.1.4.38.2': 'Hanging Protocol Information Model - FIND',
'1.2.840.10008.5.1.4.38.3': 'Hanging Protocol Information Model - MOVE',
'1.2.840.10008.5.1.4.38.4': 'Hanging Protocol Information Model - GET',
'1.2.840.10008.5.1.4.39.1': 'Color Palette Storage',
'1.2.840.10008.5.1.4.39.2': 'Color Palette Query/Retrieve Information Model - FIND',
'1.2.840.10008.5.1.4.39.3': 'Color Palette Query/Retrieve Information Model - MOVE',
'1.2.840.10008.5.1.4.39.4': 'Color Palette Query/Retrieve Information Model - GET',
'1.2.840.10008.5.1.4.41': 'Product Characteristics Query SOP Class',
'1.2.840.10008.5.1.4.42': 'Substance Approval Query SOP Class',
'1.2.840.10008.5.1.4.43.1': 'Generic Implant Template Storage',
'1.2.840.10008.5.1.4.43.2': 'Generic Implant Template Information Model - FIND',
'1.2.840.10008.5.1.4.43.3': 'Generic Implant Template Information Model - MOVE',
'1.2.840.10008.5.1.4.43.4': 'Generic Implant Template Information Model - GET',
'1.2.840.10008.5.1.4.44.1': 'Implant Assembly Template Storage',
'1.2.840.10008.5.1.4.44.2': 'Implant Assembly Template Information Model - FIND',
'1.2.840.10008.5.1.4.44.3': 'Implant Assembly Template Information Model - MOVE',
'1.2.840.10008.5.1.4.44.4': 'Implant Assembly Template Information Model - GET',
'1.2.840.10008.5.1.4.45.1': 'Implant Template Group Storage',
'1.2.840.10008.5.1.4.45.2': 'Implant Template Group Information Model - FIND',
'1.2.840.10008.5.1.4.45.3': 'Implant Template Group Information Model - MOVE',
'1.2.840.10008.5.1.4.45.4': 'Implant Template Group Information Model - GET',
'1.2.840.10008.7.1.1': 'Native DICOM Model',
'1.2.840.10008.7.1.2': 'Abstract Multi-Dimensional Image Model',
'1.2.840.10008.8.1.1': 'DICOM Content Mapping Resource',
'1.2.840.10008.15.0.3.1': 'dicom​Device​Name',
'1.2.840.10008.15.0.3.2': 'dicom​Description',
'1.2.840.10008.15.0.3.3': 'dicom​Manufacturer',
'1.2.840.10008.15.0.3.4': 'dicom​Manufacturer​Model​Name',
'1.2.840.10008.15.0.3.5': 'dicom​Software​Version',
'1.2.840.10008.15.0.3.6': 'dicom​Vendor​Data',
'1.2.840.10008.15.0.3.7': 'dicomAE​Title',
'1.2.840.10008.15.0.3.8': 'dicom​Network​Connection​Reference',
'1.2.840.10008.15.0.3.9': 'dicom​Application​Cluster',
'1.2.840.10008.15.0.3.10': 'dicom​Association​Initiator',
'1.2.840.10008.15.0.3.11': 'dicom​Association​Acceptor',
'1.2.840.10008.15.0.3.12': 'dicom​Hostname',
'1.2.840.10008.15.0.3.13': 'dicom​Port',
'1.2.840.10008.15.0.3.14': 'dicomSOP​Class',
'1.2.840.10008.15.0.3.15': 'dicom​Transfer​Role',
'1.2.840.10008.15.0.3.16': 'dicom​Transfer​Syntax',
'1.2.840.10008.15.0.3.17': 'dicom​Primary​Device​Type',
'1.2.840.10008.15.0.3.18': 'dicom​Related​Device​Reference',
'1.2.840.10008.15.0.3.19': 'dicom​Preferred​CalledAE​Title',
'1.2.840.10008.15.0.3.20': 'dicomTLS​Cyphersuite',
'1.2.840.10008.15.0.3.21': 'dicom​Authorized​Node​Certificate​Reference',
'1.2.840.10008.15.0.3.22': 'dicom​This​Node​Certificate​Reference',
'1.2.840.10008.15.0.3.23': 'dicom​Installed',
'1.2.840.10008.15.0.3.24': 'dicom​Station​Name',
'1.2.840.10008.15.0.3.25': 'dicom​Device​Serial​Number',
'1.2.840.10008.15.0.3.26': 'dicom​Institution​Name',
'1.2.840.10008.15.0.3.27': 'dicom​Institution​Address',
'1.2.840.10008.15.0.3.28': 'dicom​Institution​Department​Name',
'1.2.840.10008.15.0.3.29': 'dicom​Issuer​OfPatientID',
'1.2.840.10008.15.0.3.30': 'dicom​Preferred​CallingAE​Title',
'1.2.840.10008.15.0.3.31': 'dicom​Supported​Character​Set',
'1.2.840.10008.15.0.4.1': 'dicom​Configuration​Root',
'1.2.840.10008.15.0.4.2': 'dicom​Devices​Root',
'1.2.840.10008.15.0.4.3': 'dicom​UniqueAE​Titles​Registry​Root',
'1.2.840.10008.15.0.4.4': 'dicom​Device',
'1.2.840.10008.15.0.4.5': 'dicom​NetworkAE',
'1.2.840.10008.15.0.4.6': 'dicom​Network​Connection',
'1.2.840.10008.15.0.4.7': 'dicom​UniqueAE​Title',
'1.2.840.10008.15.0.4.8': 'dicom​Transfer​Capability',
'1.2.840.10008.15.1.1': 'Universal Coordinated Time',
};
exports.UIDToName = UIDToName;
/***/ }),
/***/ "./src/uid.ts":
/*!********************!*\
!*** ./src/uid.ts ***!
\********************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.UID = void 0;
exports.UID = {
VerificationSOPClass: '1.2.840.10008.1.1',
ImplicitVRLittleEndian: '1.2.840.10008.1.2',
ExplicitVRLittleEndian: '1.2.840.10008.1.2.1',
DeflatedExplicitVRLittleEndian: '1.2.840.10008.1.2.1.99',
ExplicitVRBigEndianRetired: '1.2.840.10008.1.2.2',
JPEGBaselineProcess1: '1.2.840.10008.1.2.4.50',
JPEGExtendedProcess24: '1.2.840.10008.1.2.4.51',
JPEGExtendedProcess35Retired: '1.2.840.10008.1.2.4.52',
JPEGSpectralSelectionNonHierarchicalProcess68Retired: '1.2.840.10008.1.2.4.53',
JPEGSpectralSelectionNonHierarchicalProcess79Retired: '1.2.840.10008.1.2.4.54',
JPEGFullProgressionNonHierarchicalProcess1012Retired: '1.2.840.10008.1.2.4.55',
JPEGFullProgressionNonHierarchicalProcess1113Retired: '1.2.840.10008.1.2.4.56',
JPEGLosslessNonHierarchicalProcess14: '1.2.840.10008.1.2.4.57',
JPEGLosslessNonHierarchicalProcess15Retired: '1.2.840.10008.1.2.4.58',
JPEGExtendedHierarchicalProcess1618Retired: '1.2.840.10008.1.2.4.59',
JPEGExtendedHierarchicalProcess1719Retired: '1.2.840.10008.1.2.4.60',
JPEGSpectralSelectionHierarchicalProcess2022Retired: '1.2.840.10008.1.2.4.61',
JPEGSpectralSelectionHierarchicalProcess2123Retired: '1.2.840.10008.1.2.4.62',
JPEGFullProgressionHierarchicalProcess2426Retired: '1.2.840.10008.1.2.4.63',
JPEGFullProgressionHierarchicalProcess2527Retired: '1.2.840.10008.1.2.4.64',
JPEGLosslessHierarchicalProcess28Retired: '1.2.840.10008.1.2.4.65',
JPEGLosslessHierarchicalProcess29Retired: '1.2.840.10008.1.2.4.66',
JPEGLosslessNonHierarchicalFirstOrderPredictionProcess14SelectionValue1: '1.2.840.10008.1.2.4.70',
JPEGLSLosslessImageCompression: '1.2.840.10008.1.2.4.80',
JPEGLSLossyNearLosslessImageCompression: '1.2.840.10008.1.2.4.81',
JPEG2000ImageCompressionLosslessOnly: '1.2.840.10008.1.2.4.90',
JPEG2000ImageCompression: '1.2.840.10008.1.2.4.91',
JPEG2000Part2MulticomponentImageCompressionLosslessOnly: '1.2.840.10008.1.2.4.92',
JPEG2000Part2MulticomponentImageCompression: '1.2.840.10008.1.2.4.93',
JPIPReferenced: '1.2.840.10008.1.2.4.94',
JPIPReferencedDeflate: '1.2.840.10008.1.2.4.95',
MPEG2MainProfileMainLevel: '1.2.840.10008.1.2.4.100',
MPEG2MainProfileHighLevel: '1.2.840.10008.1.2.4.101',
MPEG4AVCH264HighProfileLevel41: '1.2.840.10008.1.2.4.102',
MPEG4AVCH264BDcompatibleHighProfileLevel41: '1.2.840.10008.1.2.4.103',
MPEG4AVCH264HighProfileLevel42For2DVideo: '1.2.840.10008.1.2.4.104',
MPEG4AVCH264HighProfileLevel42For3DVideo: '1.2.840.10008.1.2.4.105',
MPEG4AVCH264StereoHighProfileLevel42: '1.2.840.10008.1.2.4.106',
HEVCH265MainProfileLevel51: '1.2.840.10008.1.2.4.107',
HEVCH265Main10ProfileLevel51: '1.2.840.10008.1.2.4.108',
RLELossless: '1.2.840.10008.1.2.5',
RFC2557MIMEencapsulation: '1.2.840.10008.1.2.6.1',
XMLEncoding: '1.2.840.10008.1.2.6.2',
MediaStorageDirectoryStorage: '1.2.840.10008.1.3.10',
TalairachBrainAtlasFrameofReference: '1.2.840.10008.1.4.1.1',
SPM2T1FrameofReference: '1.2.840.10008.1.4.1.2',
SPM2T2FrameofReference: '1.2.840.10008.1.4.1.3',
SPM2PDFrameofReference: '1.2.840.10008.1.4.1.4',
SPM2EPIFrameofReference: '1.2.840.10008.1.4.1.5',
SPM2FILT1FrameofReference: '1.2.840.10008.1.4.1.6',
SPM2PETFrameofReference: '1.2.840.10008.1.4.1.7',
SPM2TRANSMFrameofReference: '1.2.840.10008.1.4.1.8',
SPM2SPECTFrameofReference: '1.2.840.10008.1.4.1.9',
SPM2GRAYFrameofReference: '1.2.840.10008.1.4.1.10',
SPM2WHITEFrameofReference: '1.2.840.10008.1.4.1.11',
SPM2CSFFrameofReference: '1.2.840.10008.1.4.1.12',
SPM2BRAINMASKFrameofReference: '1.2.840.10008.1.4.1.13',
SPM2AVG305T1FrameofReference: '1.2.840.10008.1.4.1.14',
SPM2AVG152T1FrameofReference: '1.2.840.10008.1.4.1.15',
SPM2AVG152T2FrameofReference: '1.2.840.10008.1.4.1.16',
SPM2AVG152PDFrameofReference: '1.2.840.10008.1.4.1.17',
SPM2SINGLESUBJT1FrameofReference: '1.2.840.10008.1.4.1.18',
ICBM452T1FrameofReference: '1.2.840.10008.1.4.2.1',
ICBMSingleSubjectMRIFrameofReference: '1.2.840.10008.1.4.2.2',
HotIronColorPaletteSOPInstance: '1.2.840.10008.1.5.1',
PETColorPaletteSOPInstance: '1.2.840.10008.1.5.2',
HotMetalBlueColorPaletteSOPInstance: '1.2.840.10008.1.5.3',
PET20StepColorPaletteSOPInstance: '1.2.840.10008.1.5.4',
SpringColorPaletteSOPInstance: '1.2.840.10008.1.5.5',
SummerColorPaletteSOPInstance: '1.2.840.10008.1.5.6',
FallColorPaletteSOPInstance: '1.2.840.10008.1.5.7',
WinterColorPaletteSOPInstance: '1.2.840.10008.1.5.8',
BasicStudyContentNotificationSOPClassRetired: '1.2.840.10008.1.9',
Papyrus3ImplicitVRLittleEndianRetired: '1.2.840.10008.1.20',
StorageCommitmentPushModelSOPClass: '1.2.840.10008.1.20.1',
StorageCommitmentPushModelSOPInstance: '1.2.840.10008.1.20.1.1',
StorageCommitmentPullModelSOPClassRetired: '1.2.840.10008.1.20.2',
StorageCommitmentPullModelSOPInstanceRetired: '1.2.840.10008.1.20.2.1',
ProceduralEventLoggingSOPClass: '1.2.840.10008.1.40',
ProceduralEventLoggingSOPInstance: '1.2.840.10008.1.40.1',
SubstanceAdministrationLoggingSOPClass: '1.2.840.10008.1.42',
SubstanceAdministrationLoggingSOPInstance: '1.2.840.10008.1.42.1',
DICOMUIDRegistry: '1.2.840.10008.2.6.1',
DICOMControlledTerminology: '1.2.840.10008.2.16.4',
AdultMouseAnatomyOntology: '1.2.840.10008.2.16.5',
UberonOntology: '1.2.840.10008.2.16.6',
IntegratedTaxonomicInformationSystemITISTaxonomicSerialNumberTSN: '1.2.840.10008.2.16.7',
MouseGenomeInitiativeMGI: '1.2.840.10008.2.16.8',
PubChemCompoundCID: '1.2.840.10008.2.16.9',
DICOMApplicationContextName: '1.2.840.10008.3.1.1.1',
DetachedPatientManagementSOPClassRetired: '1.2.840.10008.3.1.2.1.1',
DetachedPatientManagementMetaSOPClassRetired: '1.2.840.10008.3.1.2.1.4',
DetachedVisitManagementSOPClassRetired: '1.2.840.10008.3.1.2.2.1',
DetachedStudyManagementSOPClassRetired: '1.2.840.10008.3.1.2.3.1',
StudyComponentManagementSOPClassRetired: '1.2.840.10008.3.1.2.3.2',
ModalityPerformedProcedureStepSOPClass: '1.2.840.10008.3.1.2.3.3',
ModalityPerformedProcedureStepRetrieveSOPClass: '1.2.840.10008.3.1.2.3.4',
ModalityPerformedProcedureStepNotificationSOPClass: '1.2.840.10008.3.1.2.3.5',
DetachedResultsManagementSOPClassRetired: '1.2.840.10008.3.1.2.5.1',
DetachedResultsManagementMetaSOPClassRetired: '1.2.840.10008.3.1.2.5.4',
DetachedStudyManagementMetaSOPClassRetired: '1.2.840.10008.3.1.2.5.5',
DetachedInterpretationManagementSOPClassRetired: '1.2.840.10008.3.1.2.6.1',
StorageServiceClass: '1.2.840.10008.4.2',
BasicFilmSessionSOPClass: '1.2.840.10008.5.1.1.1',
BasicFilmBoxSOPClass: '1.2.840.10008.5.1.1.2',
BasicGrayscaleImageBoxSOPClass: '1.2.840.10008.5.1.1.4',
BasicColorImageBoxSOPClass: '1.2.840.10008.5.1.1.4.1',
ReferencedImageBoxSOPClassRetired: '1.2.840.10008.5.1.1.4.2',
BasicGrayscalePrintManagementMetaSOPClass: '1.2.840.10008.5.1.1.9',
ReferencedGrayscalePrintManagementMetaSOPClassRetired: '1.2.840.10008.5.1.1.9.1',
PrintJobSOPClass: '1.2.840.10008.5.1.1.14',
BasicAnnotationBoxSOPClass: '1.2.840.10008.5.1.1.15',
PrinterSOPClass: '1.2.840.10008.5.1.1.16',
PrinterConfigurationRetrievalSOPClass: '1.2.840.10008.5.1.1.16.376',
PrinterSOPInstance: '1.2.840.10008.5.1.1.17',
PrinterConfigurationRetrievalSOPInstance: '1.2.840.10008.5.1.1.17.376',
BasicColorPrintManagementMetaSOPClass: '1.2.840.10008.5.1.1.18',
ReferencedColorPrintManagementMetaSOPClassRetired: '1.2.840.10008.5.1.1.18.1',
VOILUTBoxSOPClass: '1.2.840.10008.5.1.1.22',
PresentationLUTSOPClass: '1.2.840.10008.5.1.1.23',
ImageOverlayBoxSOPClassRetired: '1.2.840.10008.5.1.1.24',
BasicPrintImageOverlayBoxSOPClassRetired: '1.2.840.10008.5.1.1.24.1',
PrintQueueSOPInstanceRetired: '1.2.840.10008.5.1.1.25',
PrintQueueManagementSOPClassRetired: '1.2.840.10008.5.1.1.26',
StoredPrintStorageSOPClassRetired: '1.2.840.10008.5.1.1.27',
HardcopyGrayscaleImageStorageSOPClassRetired: '1.2.840.10008.5.1.1.29',
HardcopyColorImageStorageSOPClassRetired: '1.2.840.10008.5.1.1.30',
PullPrintRequestSOPClassRetired: '1.2.840.10008.5.1.1.31',
PullStoredPrintManagementMetaSOPClassRetired: '1.2.840.10008.5.1.1.32',
MediaCreationManagementSOPClassUID: '1.2.840.10008.5.1.1.33',
DisplaySystemSOPClass: '1.2.840.10008.5.1.1.40',
DisplaySystemSOPInstance: '1.2.840.10008.5.1.1.40.1',
ComputedRadiographyImageStorage: '1.2.840.10008.5.1.4.1.1.1',
DigitalXRayImageStorageForPresentation: '1.2.840.10008.5.1.4.1.1.1.1',
DigitalXRayImageStorageForProcessing: '1.2.840.10008.5.1.4.1.1.1.1.1',
DigitalMammographyXRayImageStorageForPresentation: '1.2.840.10008.5.1.4.1.1.1.2',
DigitalMammographyXRayImageStorageForProcessing: '1.2.840.10008.5.1.4.1.1.1.2.1',
DigitalIntraOralXRayImageStorageForPresentation: '1.2.840.10008.5.1.4.1.1.1.3',
DigitalIntraOralXRayImageStorageForProcessing: '1.2.840.10008.5.1.4.1.1.1.3.1',
CTImageStorage: '1.2.840.10008.5.1.4.1.1.2',
EnhancedCTImageStorage: '1.2.840.10008.5.1.4.1.1.2.1',
LegacyConvertedEnhancedCTImageStorage: '1.2.840.10008.5.1.4.1.1.2.2',
UltrasoundMultiframeImageStorageRetired: '1.2.840.10008.5.1.4.1.1.3',
UltrasoundMultiframeImageStorage: '1.2.840.10008.5.1.4.1.1.3.1',
MRImageStorage: '1.2.840.10008.5.1.4.1.1.4',
EnhancedMRImageStorage: '1.2.840.10008.5.1.4.1.1.4.1',
MRSpectroscopyStorage: '1.2.840.10008.5.1.4.1.1.4.2',
EnhancedMRColorImageStorage: '1.2.840.10008.5.1.4.1.1.4.3',
LegacyConvertedEnhancedMRImageStorage: '1.2.840.10008.5.1.4.1.1.4.4',
NuclearMedicineImageStorageRetired: '1.2.840.10008.5.1.4.1.1.5',
UltrasoundImageStorageRetired: '1.2.840.10008.5.1.4.1.1.6',
UltrasoundImageStorage: '1.2.840.10008.5.1.4.1.1.6.1',
EnhancedUSVolumeStorage: '1.2.840.10008.5.1.4.1.1.6.2',
SecondaryCaptureImageStorage: '1.2.840.10008.5.1.4.1.1.7',
MultiframeSingleBitSecondaryCaptureImageStorage: '1.2.840.10008.5.1.4.1.1.7.1',
MultiframeGrayscaleByteSecondaryCaptureImageStorage: '1.2.840.10008.5.1.4.1.1.7.2',
MultiframeGrayscaleWordSecondaryCaptureImageStorage: '1.2.840.10008.5.1.4.1.1.7.3',
MultiframeTrueColorSecondaryCaptureImageStorage: '1.2.840.10008.5.1.4.1.1.7.4',
StandaloneOverlayStorageRetired: '1.2.840.10008.5.1.4.1.1.8',
StandaloneCurveStorageRetired: '1.2.840.10008.5.1.4.1.1.9',
WaveformStorageTrialRetired: '1.2.840.10008.5.1.4.1.1.9.1',
TwelveleadECGWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.1.1',
GeneralECGWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.1.2',
AmbulatoryECGWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.1.3',
HemodynamicWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.2.1',
CardiacElectrophysiologyWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.3.1',
BasicVoiceAudioWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.4.1',
GeneralAudioWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.4.2',
ArterialPulseWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.5.1',
RespiratoryWaveformStorage: '1.2.840.10008.5.1.4.1.1.9.6.1',
StandaloneModalityLUTStorageRetired: '1.2.840.10008.5.1.4.1.1.10',
StandaloneVOILUTStorageRetired: '1.2.840.10008.5.1.4.1.1.11',
GrayscaleSoftcopyPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.1',
ColorSoftcopyPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.2',
PseudoColorSoftcopyPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.3',
BlendingSoftcopyPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.4',
XAXRFGrayscaleSoftcopyPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.5',
GrayscalePlanarMPRVolumetricPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.6',
CompositingPlanarMPRVolumetricPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.7',
AdvancedBlendingPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.8',
VolumeRenderingVolumetricPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.9',
SegmentedVolumeRenderingVolumetricPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.10',
MultipleVolumeRenderingVolumetricPresentationStateStorage: '1.2.840.10008.5.1.4.1.1.11.11',
XRayAngiographicImageStorage: '1.2.840.10008.5.1.4.1.1.12.1',
EnhancedXAImageStorage: '1.2.840.10008.5.1.4.1.1.12.1.1',
XRayRadiofluoroscopicImageStorage: '1.2.840.10008.5.1.4.1.1.12.2',
EnhancedXRFImageStorage: '1.2.840.10008.5.1.4.1.1.12.2.1',
XRayAngiographicBiPlaneImageStorageRetired: '1.2.840.10008.5.1.4.1.1.12.3',
XRay3DAngiographicImageStorage: '1.2.840.10008.5.1.4.1.1.13.1.1',
XRay3DCraniofacialImageStorage: '1.2.840.10008.5.1.4.1.1.13.1.2',
BreastTomosynthesisImageStorage: '1.2.840.10008.5.1.4.1.1.13.1.3',
BreastProjectionXRayImageStorageForPresentation: '1.2.840.10008.5.1.4.1.1.13.1.4',
BreastProjectionXRayImageStorageForProcessing: '1.2.840.10008.5.1.4.1.1.13.1.5',
IntravascularOpticalCoherenceTomographyImageStorageForPresentation: '1.2.840.10008.5.1.4.1.1.14.1',
IntravascularOpticalCoherenceTomographyImageStorageForProcessing: '1.2.840.10008.5.1.4.1.1.14.2',
NuclearMedicineImageStorage: '1.2.840.10008.5.1.4.1.1.20',
ParametricMapStorage: '1.2.840.10008.5.1.4.1.1.30',
RawDataStorage: '1.2.840.10008.5.1.4.1.1.66',
SpatialRegistrationStorage: '1.2.840.10008.5.1.4.1.1.66.1',
SpatialFiducialsStorage: '1.2.840.10008.5.1.4.1.1.66.2',
DeformableSpatialRegistrationStorage: '1.2.840.10008.5.1.4.1.1.66.3',
SegmentationStorage: '1.2.840.10008.5.1.4.1.1.66.4',
SurfaceSegmentationStorage: '1.2.840.10008.5.1.4.1.1.66.5',
TractographyResultsStorage: '1.2.840.10008.5.1.4.1.1.66.6',
RealWorldValueMappingStorage: '1.2.840.10008.5.1.4.1.1.67',
SurfaceScanMeshStorage: '1.2.840.10008.5.1.4.1.1.68.1',
SurfaceScanPointCloudStorage: '1.2.840.10008.5.1.4.1.1.68.2',
VLImageStorageTrialRetired: '1.2.840.10008.5.1.4.1.1.77.1',
VLMultiframeImageStorageTrialRetired: '1.2.840.10008.5.1.4.1.1.77.2',
VLEndoscopicImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.1',
VideoEndoscopicImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.1.1',
VLMicroscopicImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.2',
VideoMicroscopicImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.2.1',
VLSlideCoordinatesMicroscopicImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.3',
VLPhotographicImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.4',
VideoPhotographicImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.4.1',
OphthalmicPhotography8BitImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.1',
OphthalmicPhotography16BitImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.2',
StereometricRelationshipStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.3',
OphthalmicTomographyImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.4',
WideFieldOphthalmicPhotographyStereographicProjectionImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.5',
WideFieldOphthalmicPhotography3DCoordinatesImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.6',
OphthalmicOpticalCoherenceTomographyEnFaceImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.7',
OphthalmicOpticalCoherenceTomographyBscanVolumeAnalysisStorage: '1.2.840.10008.5.1.4.1.1.77.1.5.8',
VLWholeSlideMicroscopyImageStorage: '1.2.840.10008.5.1.4.1.1.77.1.6',
LensometryMeasurementsStorage: '1.2.840.10008.5.1.4.1.1.78.1',
AutorefractionMeasurementsStorage: '1.2.840.10008.5.1.4.1.1.78.2',
KeratometryMeasurementsStorage: '1.2.840.10008.5.1.4.1.1.78.3',
SubjectiveRefractionMeasurementsStorage: '1.2.840.10008.5.1.4.1.1.78.4',
VisualAcuityMeasurementsStorage: '1.2.840.10008.5.1.4.1.1.78.5',
SpectaclePrescriptionReportStorage: '1.2.840.10008.5.1.4.1.1.78.6',
OphthalmicAxialMeasurementsStorage: '1.2.840.10008.5.1.4.1.1.78.7',
IntraocularLensCalculationsStorage: '1.2.840.10008.5.1.4.1.1.78.8',
MacularGridThicknessandVolumeReportStorage: '1.2.840.10008.5.1.4.1.1.79.1',
OphthalmicVisualFieldStaticPerimetryMeasurementsStorage: '1.2.840.10008.5.1.4.1.1.80.1',
OphthalmicThicknessMapStorage: '1.2.840.10008.5.1.4.1.1.81.1',
CornealTopographyMapStorage: '1.2.840.10008.5.1.4.1.1.82.1',
TextSRStorageTrialRetired: '1.2.840.10008.5.1.4.1.1.88.1',
AudioSRStorageTrialRetired: '1.2.840.10008.5.1.4.1.1.88.2',
DetailSRStorageTrialRetired: '1.2.840.10008.5.1.4.1.1.88.3',
ComprehensiveSRStorageTrialRetired: '1.2.840.10008.5.1.4.1.1.88.4',
BasicTextSRStorage: '1.2.840.10008.5.1.4.1.1.88.11',
EnhancedSRStorage: '1.2.840.10008.5.1.4.1.1.88.22',
ComprehensiveSRStorage: '1.2.840.10008.5.1.4.1.1.88.33',
Comprehensive3DSRStorage: '1.2.840.10008.5.1.4.1.1.88.34',
ExtensibleSRStorage: '1.2.840.10008.5.1.4.1.1.88.35',
ProcedureLogStorage: '1.2.840.10008.5.1.4.1.1.88.40',
MammographyCADSRStorage: '1.2.840.10008.5.1.4.1.1.88.50',
KeyObjectSelectionDocumentStorage: '1.2.840.10008.5.1.4.1.1.88.59',
ChestCADSRStorage: '1.2.840.10008.5.1.4.1.1.88.65',
XRayRadiationDoseSRStorage: '1.2.840.10008.5.1.4.1.1.88.67',
RadiopharmaceuticalRadiationDoseSRStorage: '1.2.840.10008.5.1.4.1.1.88.68',
ColonCADSRStorage: '1.2.840.10008.5.1.4.1.1.88.69',
ImplantationPlanSRStorage: '1.2.840.10008.5.1.4.1.1.88.70',
AcquisitionContextSRStorage: '1.2.840.10008.5.1.4.1.1.88.71',
SimplifiedAdultEchoSRStorage: '1.2.840.10008.5.1.4.1.1.88.72',
PatientRadiationDoseSRStorage: '1.2.840.10008.5.1.4.1.1.88.73',
ContentAssessmentResultsStorage: '1.2.840.10008.5.1.4.1.1.90.1',
EncapsulatedPDFStorage: '1.2.840.10008.5.1.4.1.1.104.1',
EncapsulatedCDAStorage: '1.2.840.10008.5.1.4.1.1.104.2',
PositronEmissionTomographyImageStorage: '1.2.840.10008.5.1.4.1.1.128',
LegacyConvertedEnhancedPETImageStorage: '1.2.840.10008.5.1.4.1.1.128.1',
StandalonePETCurveStorageRetired: '1.2.840.10008.5.1.4.1.1.129',
EnhancedPETImageStorage: '1.2.840.10008.5.1.4.1.1.130',
BasicStructuredDisplayStorage: '1.2.840.10008.5.1.4.1.1.131',
CTDefinedProcedureProtocolStorage: '1.2.840.10008.5.1.4.1.1.200.1',
CTPerformedProcedureProtocolStorage: '1.2.840.10008.5.1.4.1.1.200.2',
ProtocolApprovalStorage: '1.2.840.10008.5.1.4.1.1.200.3',
ProtocolApprovalInformationModelFIND: '1.2.840.10008.5.1.4.1.1.200.4',
ProtocolApprovalInformationModelMOVE: '1.2.840.10008.5.1.4.1.1.200.5',
ProtocolApprovalInformationModelGET: '1.2.840.10008.5.1.4.1.1.200.6',
RTImageStorage: '1.2.840.10008.5.1.4.1.1.481.1',
RTDoseStorage: '1.2.840.10008.5.1.4.1.1.481.2',
RTStructureSetStorage: '1.2.840.10008.5.1.4.1.1.481.3',
RTBeamsTreatmentRecordStorage: '1.2.840.10008.5.1.4.1.1.481.4',
RTPlanStorage: '1.2.840.10008.5.1.4.1.1.481.5',
RTBrachyTreatmentRecordStorage: '1.2.840.10008.5.1.4.1.1.481.6',
RTTreatmentSummaryRecordStorage: '1.2.840.10008.5.1.4.1.1.481.7',
RTIonPlanStorage: '1.2.840.10008.5.1.4.1.1.481.8',
RTIonBeamsTreatmentRecordStorage: '1.2.840.10008.5.1.4.1.1.481.9',
DICOSCTImageStorage: '1.2.840.10008.5.1.4.1.1.501.1',
DICOSDigitalXRayImageStorageForPresentation: '1.2.840.10008.5.1.4.1.1.501.2.1',
DICOSDigitalXRayImageStorageForProcessing: '1.2.840.10008.5.1.4.1.1.501.2.2',
DICOSThreatDetectionReportStorage: '1.2.840.10008.5.1.4.1.1.501.3',
DICOS2DAITStorage: '1.2.840.10008.5.1.4.1.1.501.4',
DICOS3DAITStorage: '1.2.840.10008.5.1.4.1.1.501.5',
DICOSQuadrupoleResonanceQRStorage: '1.2.840.10008.5.1.4.1.1.501.6',
EddyCurrentImageStorage: '1.2.840.10008.5.1.4.1.1.601.1',
EddyCurrentMultiframeImageStorage: '1.2.840.10008.5.1.4.1.1.601.2',
PatientRootQueryRetrieveInformationModelFIND: '1.2.840.10008.5.1.4.1.2.1.1',
PatientRootQueryRetrieveInformationModelMOVE: '1.2.840.10008.5.1.4.1.2.1.2',
PatientRootQueryRetrieveInformationModelGET: '1.2.840.10008.5.1.4.1.2.1.3',
StudyRootQueryRetrieveInformationModelFIND: '1.2.840.10008.5.1.4.1.2.2.1',
StudyRootQueryRetrieveInformationModelMOVE: '1.2.840.10008.5.1.4.1.2.2.2',
StudyRootQueryRetrieveInformationModelGET: '1.2.840.10008.5.1.4.1.2.2.3',
PatientStudyOnlyQueryRetrieveInformationModelFINDRetired: '1.2.840.10008.5.1.4.1.2.3.1',
PatientStudyOnlyQueryRetrieveInformationModelMOVERetired: '1.2.840.10008.5.1.4.1.2.3.2',
PatientStudyOnlyQueryRetrieveInformationModelGETRetired: '1.2.840.10008.5.1.4.1.2.3.3',
CompositeInstanceRootRetrieveMOVE: '1.2.840.10008.5.1.4.1.2.4.2',
CompositeInstanceRootRetrieveGET: '1.2.840.10008.5.1.4.1.2.4.3',
CompositeInstanceRetrieveWithoutBulkDataGET: '1.2.840.10008.5.1.4.1.2.5.3',
DefinedProcedureProtocolInformationModelFIND: '1.2.840.10008.5.1.4.20.1',
DefinedProcedureProtocolInformationModelMOVE: '1.2.840.10008.5.1.4.20.2',
DefinedProcedureProtocolInformationModelGET: '1.2.840.10008.5.1.4.20.3',
ModalityWorklistInformationModelFIND: '1.2.840.10008.5.1.4.31',
GeneralPurposeWorklistManagementMetaSOPClassRetired: '1.2.840.10008.5.1.4.32',
GeneralPurposeWorklistInformationModelFINDRetired: '1.2.840.10008.5.1.4.32.1',
GeneralPurposeScheduledProcedureStepSOPClassRetired: '1.2.840.10008.5.1.4.32.2',
GeneralPurposePerformedProcedureStepSOPClassRetired: '1.2.840.10008.5.1.4.32.3',
InstanceAvailabilityNotificationSOPClass: '1.2.840.10008.5.1.4.33',
RTBeamsDeliveryInstructionStorageTrialRetired: '1.2.840.10008.5.1.4.34.1',
RTConventionalMachineVerificationTrialRetired: '1.2.840.10008.5.1.4.34.2',
RTIonMachineVerificationTrialRetired: '1.2.840.10008.5.1.4.34.3',
UnifiedWorklistandProcedureStepServiceClassTrialRetired: '1.2.840.10008.5.1.4.34.4',
UnifiedProcedureStepPushSOPClassTrialRetired: '1.2.840.10008.5.1.4.34.4.1',
UnifiedProcedureStepWatchSOPClassTrialRetired: '1.2.840.10008.5.1.4.34.4.2',
UnifiedProcedureStepPullSOPClassTrialRetired: '1.2.840.10008.5.1.4.34.4.3',
UnifiedProcedureStepEventSOPClassTrialRetired: '1.2.840.10008.5.1.4.34.4.4',
UPSGlobalSubscriptionSOPInstance: '1.2.840.10008.5.1.4.34.5',
UPSFilteredGlobalSubscriptionSOPInstance: '1.2.840.10008.5.1.4.34.5.1',
UnifiedWorklistandProcedureStepServiceClass: '1.2.840.10008.5.1.4.34.6',
UnifiedProcedureStepPushSOPClass: '1.2.840.10008.5.1.4.34.6.1',
UnifiedProcedureStepWatchSOPClass: '1.2.840.10008.5.1.4.34.6.2',
UnifiedProcedureStepPullSOPClass: '1.2.840.10008.5.1.4.34.6.3',
UnifiedProcedureStepEventSOPClass: '1.2.840.10008.5.1.4.34.6.4',
RTBeamsDeliveryInstructionStorage: '1.2.840.10008.5.1.4.34.7',
RTConventionalMachineVerification: '1.2.840.10008.5.1.4.34.8',
RTIonMachineVerification: '1.2.840.10008.5.1.4.34.9',
RTBrachyApplicationSetupDeliveryInstructionStorage: '1.2.840.10008.5.1.4.34.10',
GeneralRelevantPatientInformationQuery: '1.2.840.10008.5.1.4.37.1',
BreastImagingRelevantPatientInformationQuery: '1.2.840.10008.5.1.4.37.2',
CardiacRelevantPatientInformationQuery: '1.2.840.10008.5.1.4.37.3',
HangingProtocolStorage: '1.2.840.10008.5.1.4.38.1',
HangingProtocolInformationModelFIND: '1.2.840.10008.5.1.4.38.2',
HangingProtocolInformationModelMOVE: '1.2.840.10008.5.1.4.38.3',
HangingProtocolInformationModelGET: '1.2.840.10008.5.1.4.38.4',
ColorPaletteStorage: '1.2.840.10008.5.1.4.39.1',
ColorPaletteQueryRetrieveInformationModelFIND: '1.2.840.10008.5.1.4.39.2',
ColorPaletteQueryRetrieveInformationModelMOVE: '1.2.840.10008.5.1.4.39.3',
ColorPaletteQueryRetrieveInformationModelGET: '1.2.840.10008.5.1.4.39.4',
ProductCharacteristicsQuerySOPClass: '1.2.840.10008.5.1.4.41',
SubstanceApprovalQuerySOPClass: '1.2.840.10008.5.1.4.42',
GenericImplantTemplateStorage: '1.2.840.10008.5.1.4.43.1',
GenericImplantTemplateInformationModelFIND: '1.2.840.10008.5.1.4.43.2',
GenericImplantTemplateInformationModelMOVE: '1.2.840.10008.5.1.4.43.3',
GenericImplantTemplateInformationModelGET: '1.2.840.10008.5.1.4.43.4',
ImplantAssemblyTemplateStorage: '1.2.840.10008.5.1.4.44.1',
ImplantAssemblyTemplateInformationModelFIND: '1.2.840.10008.5.1.4.44.2',
ImplantAssemblyTemplateInformationModelMOVE: '1.2.840.10008.5.1.4.44.3',
ImplantAssemblyTemplateInformationModelGET: '1.2.840.10008.5.1.4.44.4',
ImplantTemplateGroupStorage: '1.2.840.10008.5.1.4.45.1',
ImplantTemplateGroupInformationModelFIND: '1.2.840.10008.5.1.4.45.2',
ImplantTemplateGroupInformationModelMOVE: '1.2.840.10008.5.1.4.45.3',
ImplantTemplateGroupInformationModelGET: '1.2.840.10008.5.1.4.45.4',
NativeDICOMModel: '1.2.840.10008.7.1.1',
AbstractMultiDimensionalImageModel: '1.2.840.10008.7.1.2',
DICOMContentMappingResource: '1.2.840.10008.8.1.1',
dicomDeviceName: '1.2.840.10008.15.0.3.1',
dicomDescription: '1.2.840.10008.15.0.3.2',
dicomManufacturer: '1.2.840.10008.15.0.3.3',
dicomManufacturerModelName: '1.2.840.10008.15.0.3.4',
dicomSoftwareVersion: '1.2.840.10008.15.0.3.5',
dicomVendorData: '1.2.840.10008.15.0.3.6',
dicomAETitle: '1.2.840.10008.15.0.3.7',
dicomNetworkConnectionReference: '1.2.840.10008.15.0.3.8',
dicomApplicationCluster: '1.2.840.10008.15.0.3.9',
dicomAssociationInitiator: '1.2.840.10008.15.0.3.10',
dicomAssociationAcceptor: '1.2.840.10008.15.0.3.11',
dicomHostname: '1.2.840.10008.15.0.3.12',
dicomPort: '1.2.840.10008.15.0.3.13',
dicomSOPClass: '1.2.840.10008.15.0.3.14',
dicomTransferRole: '1.2.840.10008.15.0.3.15',
dicomTransferSyntax: '1.2.840.10008.15.0.3.16',
dicomPrimaryDeviceType: '1.2.840.10008.15.0.3.17',
dicomRelatedDeviceReference: '1.2.840.10008.15.0.3.18',
dicomPreferredCalledAETitle: '1.2.840.10008.15.0.3.19',
dicomTLSCyphersuite: '1.2.840.10008.15.0.3.20',
dicomAuthorizedNodeCertificateReference: '1.2.840.10008.15.0.3.21',
dicomThisNodeCertificateReference: '1.2.840.10008.15.0.3.22',
dicomInstalled: '1.2.840.10008.15.0.3.23',
dicomStationName: '1.2.840.10008.15.0.3.24',
dicomDeviceSerialNumber: '1.2.840.10008.15.0.3.25',
dicomInstitutionName: '1.2.840.10008.15.0.3.26',
dicomInstitutionAddress: '1.2.840.10008.15.0.3.27',
dicomInstitutionDepartmentName: '1.2.840.10008.15.0.3.28',
dicomIssuerOfPatientID: '1.2.840.10008.15.0.3.29',
dicomPreferredCallingAETitle: '1.2.840.10008.15.0.3.30',
dicomSupportedCharacterSet: '1.2.840.10008.15.0.3.31',
dicomConfigurationRoot: '1.2.840.10008.15.0.4.1',
dicomDevicesRoot: '1.2.840.10008.15.0.4.2',
dicomUniqueAETitlesRegistryRoot: '1.2.840.10008.15.0.4.3',
dicomDevice: '1.2.840.10008.15.0.4.4',
dicomNetworkAE: '1.2.840.10008.15.0.4.5',
dicomNetworkConnection: '1.2.840.10008.15.0.4.6',
dicomUniqueAETitle: '1.2.840.10008.15.0.4.7',
dicomTransferCapability: '1.2.840.10008.15.0.4.8',
UniversalCoordinatedTime: '1.2.840.10008.15.1.1',
};
/***/ }),
/***/ "./src/value.ts":
/*!**********************!*\
!*** ./src/value.ts ***!
\**********************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.parsePersonName = exports.Value = void 0;
const js_joda_1 = __webpack_require__(/*! js-joda */ "js-joda");
const base_1 = __webpack_require__(/*! ./base */ "./src/base.ts");
const character_sets_1 = __webpack_require__(/*! ./character-sets */ "./src/character-sets.ts");
const vr_1 = __webpack_require__(/*! ./vr */ "./src/vr.ts");
const person_name_1 = __webpack_require__(/*! ./person-name */ "./src/person-name.ts");
class Value {
static fromString(vr, value, bigEndian = false) {
return create(stringBytes(vr, value, bigEndian), vr);
}
static fromStrings(vr, values, bigEndian = false) {
return create(combine(values.map((v) => stringBytes(vr, v, bigEndian)), vr), vr);
}
static fromBuffer(vr, buffer) {
return create(buffer, vr);
}
static fromBytes(vr, bytes) {
return Value.fromBuffer(vr, Buffer.from(bytes));
}
static fromNumber(vr, value, bigEndian = false) {
return create(numberBytes(vr, value, bigEndian), vr);
}
static fromNumbers(vr, values, bigEndian = false) {
return create(combine(values.map((v) => numberBytes(vr, v, bigEndian)), vr), vr);
}
static fromDate(vr, value) {
return create(dateBytes(vr, value), vr);
}
static fromDates(vr, values) {
return create(combine(values.map((v) => dateBytes(vr, v)), vr), vr);
}
static fromTime(vr, value) {
return create(timeBytes(vr, value), vr);
}
static fromTimes(vr, values) {
return create(combine(values.map((v) => timeBytes(vr, v)), vr), vr);
}
static fromDateTime(vr, value) {
return create(dateTimeBytes(vr, value), vr);
}
static fromDateTimes(vr, values) {
return create(combine(values.map((v) => dateTimeBytes(vr, v)), vr), vr);
}
static fromPersonName(vr, value) {
return Value.fromBuffer(vr, personNameBytes(vr, value));
}
static fromPersonNames(vr, values) {
return Value.fromBuffer(vr, combine(values.map((v) => personNameBytes(vr, v)), vr));
}
static fromURL(vr, value) {
return create(urlBytes(vr, value), vr);
}
static empty() {
return new Value(base_1.emptyBuffer);
}
static headOption(array) {
return array.length > 0 ? array[0] : undefined;
}
constructor(bytes) {
this.bytes = bytes;
this.length = bytes.length;
}
toStrings(vr, bigEndian = false, characterSets = character_sets_1.defaultCharacterSet) {
if (this.length === 0) {
return [];
}
if (vr === vr_1.VR.AT) {
return parseAT(this.bytes, bigEndian).map(base_1.tagToString);
}
if (vr === vr_1.VR.FL) {
return parseFL(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.FD) {
return parseFD(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.SS) {
return parseSS(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.SL) {
return parseSL(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.SV) {
return parseSV(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.US) {
return parseUS(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.UL) {
return parseUL(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.UV) {
return parseSV(this.bytes, bigEndian).map((v) => v.toString());
}
if (vr === vr_1.VR.OB) {
return [this.bytes.length + ' bytes'];
}
if (vr === vr_1.VR.OW) {
return [this.bytes.length / 2 + ' words'];
}
if (vr === vr_1.VR.OL) {
return [this.bytes.length / 4 + ' longs'];
}
if (vr === vr_1.VR.OV) {
return [this.bytes.length / 8 + ' very longs'];
}
if (vr === vr_1.VR.OF) {
return [this.bytes.length / 4 + ' floats'];
}
if (vr === vr_1.VR.OD) {
return [this.bytes.length / 8 + ' doubles'];
}
if (vr === vr_1.VR.ST || vr === vr_1.VR.LT || vr === vr_1.VR.UT) {
return [trimTrailing(characterSets.decode(this.bytes, vr), vr.paddingByte)];
}
if (vr === vr_1.VR.LO || vr === vr_1.VR.SH || vr === vr_1.VR.UC) {
return splitString(characterSets.decode(this.bytes, vr));
}
if (vr == vr_1.VR.PN) {
return splitString(characterSets.decode(this.bytes, vr)).map(base_1.trim);
}
return splitString(this.bytes.toString()).map(base_1.trim);
}
toSingleString(vr, bigEndian = false, characterSets = character_sets_1.defaultCharacterSet) {
const strings = this.toStrings(vr, bigEndian, characterSets);
return strings.length === 0 ? '' : strings.join(base_1.multiValueDelimiter);
}
toNumbers(vr, bigEndian = false) {
if (this.length === 0) {
return [];
}
if (vr === vr_1.VR.AT) {
return parseAT(this.bytes, bigEndian);
}
if (vr === vr_1.VR.DS) {
return parseDS(this.bytes).filter((n) => !isNaN(n));
}
if (vr === vr_1.VR.FL) {
return parseFL(this.bytes, bigEndian);
}
if (vr === vr_1.VR.FD) {
return parseFD(this.bytes, bigEndian);
}
if (vr === vr_1.VR.IS) {
return parseIS(this.bytes).filter((n) => !isNaN(n));
}
if (vr === vr_1.VR.SL) {
return parseSL(this.bytes, bigEndian);
}
if (vr === vr_1.VR.SS) {
return parseSS(this.bytes, bigEndian);
}
if (vr === vr_1.VR.UL) {
return parseUL(this.bytes, bigEndian);
}
if (vr === vr_1.VR.US) {
return parseUS(this.bytes, bigEndian);
}
return [];
}
toDates(vr = vr_1.VR.DA) {
if (vr === vr_1.VR.DA) {
return parseDA(this.bytes);
}
if (vr === vr_1.VR.DT) {
return parseDT(this.bytes, base_1.systemZone).map((dt) => dt.toLocalDate());
}
return [];
}
toTimes(vr = vr_1.VR.TM) {
if (vr === vr_1.VR.DT) {
return parseDT(this.bytes, base_1.systemZone).map((dt) => dt.toLocalTime());
}
if (vr === vr_1.VR.TM) {
return parseTM(this.bytes);
}
return [];
}
toDateTimes(vr = vr_1.VR.DT, zone = base_1.systemZone) {
if (vr === vr_1.VR.DA) {
return parseDA(this.bytes).map((da) => da.atStartOfDay(zone));
}
if (vr === vr_1.VR.DT) {
return parseDT(this.bytes, zone);
}
return [];
}
toPersonNames(vr = vr_1.VR.PN, characterSets = character_sets_1.defaultCharacterSet) {
if (vr === vr_1.VR.PN) {
return parsePN(this.bytes, characterSets);
}
return [];
}
toURL(vr = vr_1.VR.UR) {
if (vr === vr_1.VR.UR) {
return parseUR(this.bytes);
}
return undefined;
}
toString(vr, bigEndian = false, characterSets = character_sets_1.defaultCharacterSet) {
return Value.headOption(this.toStrings(vr, bigEndian, characterSets));
}
toNumber(vr, bigEndian = false) {
return Value.headOption(this.toNumbers(vr, bigEndian));
}
toDate(vr) {
return Value.headOption(this.toDates(vr));
}
toTime(vr) {
return Value.headOption(this.toTimes(vr));
}
toDateTime(vr, zone) {
return Value.headOption(this.toDateTimes(vr, zone));
}
toPersonName(vr = vr_1.VR.PN, characterSets = character_sets_1.defaultCharacterSet) {
return Value.headOption(this.toPersonNames(vr, characterSets));
}
append(bytes) {
return new Value((0, base_1.concat)(this.bytes, bytes));
}
ensurePadding(vr) {
return Value.fromBuffer(vr, this.bytes);
}
}
exports.Value = Value;
function trimTrailing(s, paddingByte) {
let index = s.length;
while (index > 0 && s.charCodeAt(index - 1) <= paddingByte) {
index -= 1;
}
return s.substring(0, index);
}
function combine(values, vr) {
if (vr === vr_1.VR.AT ||
vr === vr_1.VR.FL ||
vr === vr_1.VR.FD ||
vr === vr_1.VR.SL ||
vr === vr_1.VR.SS ||
vr === vr_1.VR.UL ||
vr === vr_1.VR.US ||
vr === vr_1.VR.OB ||
vr === vr_1.VR.OW ||
vr === vr_1.VR.OL ||
vr === vr_1.VR.OF ||
vr === vr_1.VR.OD) {
return values.reduce(base_1.concat, base_1.emptyBuffer);
}
const delim = Buffer.from('\\');
return values.reduce((prev, curr) => (0, base_1.concatv)(prev, delim, curr));
}
function create(bytes, vr) {
return vr ? new Value((0, base_1.padToEvenLength)(bytes, vr)) : new Value(bytes);
}
function stringBytes(vr, value, bigEndian = false) {
if (vr === vr_1.VR.AT) {
return (0, base_1.tagToBytes)(parseInt(value, 16), bigEndian);
}
if (vr === vr_1.VR.FL) {
return (0, base_1.floatToBytes)(parseFloat(value), bigEndian);
}
if (vr === vr_1.VR.FD) {
return (0, base_1.doubleToBytes)(parseFloat(value), bigEndian);
}
if (vr === vr_1.VR.SL) {
return (0, base_1.intToBytes)(parseInt(value, 10), bigEndian);
}
if (vr === vr_1.VR.SS) {
return (0, base_1.shortToBytes)(parseInt(value, 10), bigEndian);
}
if (vr === vr_1.VR.UL) {
return (0, base_1.intToBytes)(parseInt(value, 10), bigEndian);
}
if (vr === vr_1.VR.US) {
return (0, base_1.shortToBytes)(parseInt(value, 10), bigEndian);
}
if (vr === vr_1.VR.OB || vr === vr_1.VR.OW || vr === vr_1.VR.OL || vr === vr_1.VR.OF || vr === vr_1.VR.OD) {
throw Error('Cannot create binary array from string');
}
return Buffer.from(value);
}
function numberBytes(vr, value, bigEndian = false) {
if (vr === vr_1.VR.AT) {
return (0, base_1.tagToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.FL) {
return (0, base_1.floatToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.FD) {
return (0, base_1.doubleToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.SL) {
return (0, base_1.intToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.SS) {
return (0, base_1.shortToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.UL) {
return (0, base_1.intToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.US) {
return (0, base_1.shortToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.AT) {
return (0, base_1.tagToBytes)(value, bigEndian);
}
if (vr === vr_1.VR.OB || vr === vr_1.VR.OW || vr === vr_1.VR.OL || vr === vr_1.VR.OF || vr === vr_1.VR.OD) {
throw Error('Cannot create value of VR ' + vr + ' from int');
}
return Buffer.from(value + '');
}
function dateBytes(vr, value) {
if (vr === vr_1.VR.AT ||
vr === vr_1.VR.FL ||
vr === vr_1.VR.FD ||
vr === vr_1.VR.SL ||
vr === vr_1.VR.SS ||
vr === vr_1.VR.UL ||
vr === vr_1.VR.US ||
vr === vr_1.VR.OB ||
vr === vr_1.VR.OW ||
vr === vr_1.VR.OL ||
vr === vr_1.VR.OF ||
vr === vr_1.VR.OD) {
throw Error('Cannot create value of VR ' + vr + ' from date');
}
return Buffer.from(formatDate(value));
}
function timeBytes(vr, value) {
if (vr === vr_1.VR.AT ||
vr === vr_1.VR.FL ||
vr === vr_1.VR.FD ||
vr === vr_1.VR.SL ||
vr === vr_1.VR.SS ||
vr === vr_1.VR.UL ||
vr === vr_1.VR.US ||
vr === vr_1.VR.OB ||
vr === vr_1.VR.OW ||
vr === vr_1.VR.OL ||
vr === vr_1.VR.OF ||
vr === vr_1.VR.OD) {
throw Error('Cannot create value of VR ' + vr + ' from time');
}
return Buffer.from(formatTime(value));
}
function dateTimeBytes(vr, value) {
if (vr === vr_1.VR.AT ||
vr === vr_1.VR.FL ||
vr === vr_1.VR.FD ||
vr === vr_1.VR.SL ||
vr === vr_1.VR.SS ||
vr === vr_1.VR.UL ||
vr === vr_1.VR.US ||
vr === vr_1.VR.OB ||
vr === vr_1.VR.OW ||
vr === vr_1.VR.OL ||
vr === vr_1.VR.OF ||
vr === vr_1.VR.OD) {
throw Error('Cannot create value of VR ' + vr + ' from date-time');
}
return Buffer.from(formatDateTime(value));
}
function personNameBytes(vr, value) {
if (vr === vr_1.VR.PN) {
return Buffer.from(value.toString());
}
throw Error('Cannot create value of VR ' + vr + ' from person name');
}
function urlBytes(vr, value) {
if (vr === vr_1.VR.UR) {
return Buffer.from(value.toString());
}
throw Error('Cannot create value of VR ' + vr + ' from URL');
}
function chunk(arr, len) {
const chunks = [];
const n = arr.length;
let i = 0;
while (i < n) {
chunks.push(arr.slice(i, (i += len)));
}
return chunks;
}
function splitFixed(bytes, size) {
return chunk(bytes, size).filter((g) => g.length === size);
}
function splitString(s) {
return s.split(base_1.multiValueDelimiter);
}
function parseAT(value, bigEndian = false) {
return splitFixed(value, 4).map((b) => (0, base_1.bytesToTag)(b, bigEndian));
}
function parseSL(value, bigEndian = false) {
return splitFixed(value, 4).map((b) => (0, base_1.bytesToInt)(b, bigEndian));
}
function parseSV(value, bigEndian = false) {
return splitFixed(value, 8).map((b) => (0, base_1.bytesToFloat)(b, bigEndian));
}
function parseSS(value, bigEndian = false) {
return splitFixed(value, 2).map((b) => (0, base_1.bytesToShort)(b, bigEndian));
}
function parseUL(value, bigEndian = false) {
return splitFixed(value, 4).map((b) => (0, base_1.bytesToUInt)(b, bigEndian));
}
function parseUS(value, bigEndian = false) {
return splitFixed(value, 2).map((b) => (0, base_1.bytesToUShort)(b, bigEndian));
}
function parseFL(value, bigEndian = false) {
return splitFixed(value, 4).map((b) => (0, base_1.bytesToFloat)(b, bigEndian));
}
function parseFD(value, bigEndian = false) {
return splitFixed(value, 8).map((b) => (0, base_1.bytesToDouble)(b, bigEndian));
}
function parseDS(value) {
return splitString(value.toString())
.map(base_1.trim)
.map((s) => parseFloat(s));
}
function parseIS(value) {
return splitString(value.toString())
.map(base_1.trim)
.map((s) => parseInt(s, 10));
}
function parseDA(value) {
return splitString(value.toString())
.map(parseDate)
.filter((d) => d !== undefined);
}
function parseTM(value) {
return splitString(value.toString())
.map(parseTime)
.filter((d) => d !== undefined);
}
function parseDT(value, zone) {
return splitString(value.toString())
.map((s) => parseDateTime(s, zone))
.filter((d) => d !== undefined);
}
function parsePN(value, characterSets) {
return splitString(characterSets.decode(value, vr_1.VR.PN))
.map(base_1.trim)
.map((s) => parsePersonName(s));
}
function parseUR(value) {
return parseURL(value.toString().trim());
}
const dateFormat1 = js_joda_1.DateTimeFormatter.ofPattern('uuuuMMdd');
const dateFormat2 = js_joda_1.DateTimeFormatter.ofPattern("uuuu'.'MM'.'dd");
const timeFormat = new js_joda_1.DateTimeFormatterBuilder()
.appendPattern("HH[[':']mm[[':']ss[")
.appendFraction(js_joda_1.ChronoField.MICRO_OF_SECOND, 1, 6, true)
.appendPattern(']]]')
.toFormatter(js_joda_1.ResolverStyle.LENIENT);
const timeFormatForEncoding = js_joda_1.DateTimeFormatter.ofPattern("HHmmss'.'SSSSSS");
const dateTimeFormatForEncoding = js_joda_1.DateTimeFormatter.ofPattern("uuuuMMddHHmmss'.'SSSSSSZ");
function formatDate(date) {
return date.format(dateFormat1);
}
function formatTime(time) {
return time.format(timeFormatForEncoding);
}
function formatDateTime(dateTime) {
return dateTime.format(dateTimeFormatForEncoding);
}
function parseDate(s) {
const trimmed = s.trim();
try {
return js_joda_1.LocalDate.parse(trimmed, dateFormat1);
}
catch (error) {
try {
return js_joda_1.LocalDate.parse(trimmed, dateFormat2);
}
catch (error) {
return undefined;
}
}
}
function parseTime(s) {
try {
return js_joda_1.LocalTime.parse(s.trim(), timeFormat);
}
catch (error) {
return undefined;
}
}
function parseDateTime(s, zone = base_1.systemZone) {
try {
s = s.trim();
let len = s.length;
if (len < 4) {
throw Error('Malformed date-time, must at least include year.');
}
// parse zone if present and trim this part from string
const zoneStart = Math.max(s.indexOf('+'), s.indexOf('-'));
if (zoneStart >= 4 && s.length === zoneStart + 5) {
const signString = s.substring(zoneStart, zoneStart + 1);
const zoneString = s.substring(zoneStart + 1, zoneStart + 5);
zone = js_joda_1.ZoneOffset.ofHoursMinutes(parseInt(signString + zoneString.substring(0, 2), 10), parseInt(signString + zoneString.substring(2, 4), 10));
s = s.substring(0, zoneStart);
len = s.length;
}
else if (zoneStart >= 0) {
throw Error('Malformed date-time. Zone is present but misplaced or not of length 5');
}
const validLengths = [4, 6, 8, 10, 12, 14, 16, 17, 18, 19, 20, 21];
if (validLengths.indexOf(len) < 0) {
throw Error('Malformed date-time, invalid length ' + len);
}
const year = parseInt(s.substring(0, 4), 10);
let month = 1;
let dayOfMonth = 1;
let hour = 0;
let minute = 0;
let second = 0;
let nanoOfSecond = 0;
if (len >= 6) {
month = parseInt(s.substring(4, 6), 10);
if (len >= 8) {
dayOfMonth = parseInt(s.substring(6, 8), 10);
if (len >= 10) {
hour = parseInt(s.substring(8, 10), 10);
if (len >= 12) {
minute = parseInt(s.substring(10, 12), 10);
if (len >= 14) {
second = parseInt(s.substring(12, 14), 10);
if (s.charAt(14) === '.' && len >= 15) {
const end = Math.min(len, 21);
const precision = end - 15;
const exponent = 9 - precision;
nanoOfSecond = parseInt(s.substring(15, end), 10) * Math.pow(10, exponent);
}
}
}
}
}
}
return js_joda_1.ZonedDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond, zone);
}
catch (error) {
return undefined;
}
}
function parsePersonName(s) {
function ensureLength(ss, n) {
return ss.concat(new Array(Math.max(0, n - ss.length)).fill(''));
}
function transpose(matrix) {
return matrix[0].map((_, i) => matrix.map((col) => col[i]));
}
const matrix = ensureLength(s.split(/=/), 3)
.map(base_1.trim)
.map((s1) => ensureLength(s1.split(/\^/), 5));
const comps = transpose(matrix).map((c) => new person_name_1.ComponentGroup(c[0], c[1], c[2]));
return new person_name_1.PersonName(comps[0], comps[1], comps[2], comps[3], comps[4]);
}
exports.parsePersonName = parsePersonName;
function parseURL(s) {
try {
return new URL(s);
}
catch (error) {
return undefined;
}
}
/***/ }),
/***/ "./src/vr.ts":
/*!*******************!*\
!*** ./src/vr.ts ***!
\*******************/
/***/ ((__unused_webpack_module, exports) => {
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.VR = void 0;
class VR {
static valueOf(code) {
return VR.map.get(code);
}
constructor(name, code, headerLength, paddingByte) {
this.name = name;
this.code = code;
this.headerLength = headerLength;
this.paddingByte = paddingByte;
}
}
VR.AE = new VR('AE', 0x4145, 8, 0x20);
VR.AS = new VR('AS', 0x4153, 8, 0x20);
VR.AT = new VR('AT', 0x4154, 8, 0);
VR.CS = new VR('CS', 0x4353, 8, 0x20);
VR.DA = new VR('DA', 0x4441, 8, 0x20);
VR.DS = new VR('DS', 0x4453, 8, 0x20);
VR.DT = new VR('DT', 0x4454, 8, 0x20);
VR.FD = new VR('FD', 0x4644, 8, 0);
VR.FL = new VR('FL', 0x464c, 8, 0);
VR.IS = new VR('IS', 0x4953, 8, 0x20);
VR.LO = new VR('LO', 0x4c4f, 8, 0x20);
VR.LT = new VR('LT', 0x4c54, 8, 0x20);
VR.OB = new VR('OB', 0x4f42, 12, 0);
VR.OD = new VR('OD', 0x4f44, 12, 0);
VR.OF = new VR('OF', 0x4f46, 12, 0);
VR.OL = new VR('OL', 0x4f4c, 12, 0);
VR.OV = new VR('OV', 0x4f56, 12, 0);
VR.OW = new VR('OW', 0x4f57, 12, 0);
VR.PN = new VR('PN', 0x504e, 8, 0x20);
VR.SH = new VR('SH', 0x5348, 8, 0x20);
VR.SL = new VR('SL', 0x534c, 8, 0);
VR.SQ = new VR('SQ', 0x5351, 12, 0);
VR.SS = new VR('SS', 0x5353, 8, 0);
VR.ST = new VR('ST', 0x5354, 8, 0x20);
VR.SV = new VR('SV', 0x5356, 12, 0);
VR.TM = new VR('TM', 0x544d, 8, 0x20);
VR.UC = new VR('UC', 0x5543, 12, 0x20);
VR.UI = new VR('UI', 0x5549, 8, 0);
VR.UL = new VR('UL', 0x554c, 8, 0);
VR.UN = new VR('UN', 0x554e, 12, 0);
VR.UR = new VR('UR', 0x5552, 12, 0x20);
VR.US = new VR('US', 0x5553, 8, 0);
VR.UT = new VR('UT', 0x5554, 12, 0x20);
VR.UV = new VR('UV', 0x5556, 12, 0);
VR.values = [
VR.AE,
VR.AS,
VR.AT,
VR.CS,
VR.DA,
VR.DS,
VR.DT,
VR.FD,
VR.FL,
VR.IS,
VR.LO,
VR.LT,
VR.OB,
VR.OD,
VR.OF,
VR.OL,
VR.OV,
VR.OW,
VR.PN,
VR.SH,
VR.SL,
VR.SQ,
VR.SS,
VR.ST,
VR.SV,
VR.TM,
VR.UC,
VR.UI,
VR.UL,
VR.UN,
VR.UR,
VR.US,
VR.UT,
VR.UV,
];
VR.map = VR.values.reduce((m, vr) => {
m.set(vr.code, vr);
return m;
}, new Map());
exports.VR = VR;
/***/ }),
/***/ "dicom-character-set":
/*!**************************************!*\
!*** external "dicom-character-set" ***!
\**************************************/
/***/ ((module) => {
module.exports = require("dicom-character-set");
/***/ }),
/***/ "js-joda":
/*!**************************!*\
!*** external "js-joda" ***!
\**************************/
/***/ ((module) => {
module.exports = require("js-joda");
/***/ }),
/***/ "multipipe":
/*!****************************!*\
!*** external "multipipe" ***!
\****************************/
/***/ ((module) => {
module.exports = require("multipipe");
/***/ }),
/***/ "uuid":
/*!***********************!*\
!*** external "uuid" ***!
\***********************/
/***/ ((module) => {
module.exports = require("uuid");
/***/ }),
/***/ "stream":
/*!*************************!*\
!*** external "stream" ***!
\*************************/
/***/ ((module) => {
module.exports = require("stream");
/***/ }),
/***/ "zlib":
/*!***********************!*\
!*** external "zlib" ***!
\***********************/
/***/ ((module) => {
module.exports = require("zlib");
/***/ })
/******/ });
/************************************************************************/
/******/ // The module cache
/******/ var __webpack_module_cache__ = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ var cachedModule = __webpack_module_cache__[moduleId];
/******/ if (cachedModule !== undefined) {
/******/ return cachedModule.exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = __webpack_module_cache__[moduleId] = {
/******/ // no module.id needed
/******/ // no module.loaded needed
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/************************************************************************/
/******/
/******/ // startup
/******/ // Load entry module and return exports
/******/ // This entry module is referenced by other modules so it can't be inlined
/******/ var __webpack_exports__ = __webpack_require__("./src/index.ts");
/******/ module.exports = __webpack_exports__;
/******/
/******/ })()
;
//# sourceMappingURL=index.js.map
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment