From b851ffe10ae8589772da5996f93c50f3bd75d56b Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Tue, 15 Dec 2015 15:49:31 -0500 Subject: [PATCH] Add DIMSE-Service package from Medken branch --- .../etc/sampleOrthancConfig.json | 6 + Packages/dimse-service/package.js | 22 + Packages/dimse-service/server/Connection.js | 635 +++ Packages/dimse-service/server/DIMSE.js | 185 + Packages/dimse-service/server/Data.js | 927 +++++ Packages/dimse-service/server/Field.js | 128 + Packages/dimse-service/server/Message.js | 444 ++ Packages/dimse-service/server/PDU.js | 660 +++ Packages/dimse-service/server/RWStream.js | 229 ++ Packages/dimse-service/server/constants.js | 98 + .../dimse-service/server/elements_data.js | 3601 +++++++++++++++++ Packages/dimse-service/server/methods.js | 3 + Packages/dimse-service/server/require.js | 1 + 13 files changed, 6939 insertions(+) create mode 100644 Packages/dimse-service/etc/sampleOrthancConfig.json create mode 100755 Packages/dimse-service/package.js create mode 100755 Packages/dimse-service/server/Connection.js create mode 100755 Packages/dimse-service/server/DIMSE.js create mode 100755 Packages/dimse-service/server/Data.js create mode 100755 Packages/dimse-service/server/Field.js create mode 100755 Packages/dimse-service/server/Message.js create mode 100755 Packages/dimse-service/server/PDU.js create mode 100755 Packages/dimse-service/server/RWStream.js create mode 100755 Packages/dimse-service/server/constants.js create mode 100755 Packages/dimse-service/server/elements_data.js create mode 100755 Packages/dimse-service/server/methods.js create mode 100755 Packages/dimse-service/server/require.js diff --git a/Packages/dimse-service/etc/sampleOrthancConfig.json b/Packages/dimse-service/etc/sampleOrthancConfig.json new file mode 100644 index 000000000..46c4db930 --- /dev/null +++ b/Packages/dimse-service/etc/sampleOrthancConfig.json @@ -0,0 +1,6 @@ +// The list of the known DICOM modalities +// If you are running Orthanc with Docker, you need to put the contents of this file in +// /etc/orthanc/orthanc.json +"DicomModalities" : { + "OHIFDCM" : [ "OHIFDCM", "localhost", 3000 ] +}, \ No newline at end of file diff --git a/Packages/dimse-service/package.js b/Packages/dimse-service/package.js new file mode 100755 index 000000000..44fd0c8d9 --- /dev/null +++ b/Packages/dimse-service/package.js @@ -0,0 +1,22 @@ +Package.describe({ + name: "dimseservice", + summary: "DICOM DIMSE C-Service", + version: '0.0.1' +}); + +Package.onUse(function (api) { + //api.use("weiwei:dicomservices"); + + api.addFiles('server/require.js', 'server'); + api.addFiles('server/constants.js', 'server'); + api.addFiles('server/elements_data.js', 'server'); + api.addFiles('server/Field.js', 'server'); + api.addFiles('server/RWStream.js', 'server'); + api.addFiles('server/Data.js', 'server'); + api.addFiles('server/Message.js', 'server'); + api.addFiles('server/PDU.js', 'server'); + api.addFiles('server/Connection.js', 'server'); + api.addFiles('server/DIMSE.js', 'server'); + + api.export("DIMSE", 'server'); +}); diff --git a/Packages/dimse-service/server/Connection.js b/Packages/dimse-service/server/Connection.js new file mode 100755 index 000000000..c8d86fed8 --- /dev/null +++ b/Packages/dimse-service/server/Connection.js @@ -0,0 +1,635 @@ +var EventEmitter = Npm.require('events').EventEmitter; + +function time() { + return Math.floor(Date.now() / 1000); +} + +var DEFAULT_MAX_PACKAGE_SIZE = 32768; +var DEFAULT_SOURCE_AE = "OHIFDCM"; + +var Envelope = function(conn, command, dataset) { + EventEmitter.call(this); + this.command = command; + this.dataset = dataset; + this.conn = conn; +} +util.inherits(Envelope, EventEmitter); + +Envelope.prototype.send = function() { + return this; +} + +Connection = function(socket, options) { + EventEmitter.call(this); + this.socket = socket; + this.options = Object.assign({ + hostAE: "", + sourceAE: "OHIFDCM", + maxPackageSize: 32768, + idle: 60, + reconnect: true, + vr: { + split: true + } + }, options); + + this.connected = false; + this.started = null; + this.lastReceived = null; + this.associated = false; + this.receiving = null; + this.receiveLength = null; + this.minRecv = null; + this.pendingPDVs = null; + this.server = null; + //this.retrieveModel = RETRIEVE_MODEL_STUDY_ROOT; + this.presentationContexts = []; + this.transferSyntaxes = []; + this.negotiatedContexts = {}; + this.messages = {}; + this.messageIdCounter = 0; + this.services = []; + this.lastCommand = null; + this.lastSent = null; + this.lastGets = []; + this.findContext = C.SOP_STUDY_ROOT_FIND; + + //register hooks + var o = this; + this.socket.on("data", function(data) { + o.received(data); + }); + this.socket.on("close", function(he) { + o.closed(he); + o.emit("close", he); + }); + this.socket.on("error", function(he) { + o.error(he); + }); + this.socket.on("end", function() { + if (o.intervalId) { + clearInterval(o.intervalId); + } + if (o.server) { + console.log("Closing server"); + o.server.close(); + } + console.log('ended'); + }) + this.on("released", function() { + this.released(); + }); + this.on('aborted', function() { + this.released(); + }) + this.on('message', function(pdvs) { + this.receivedMessage(pdvs); + }); + this.on("init", this.ready); + + //this.pause(); + if (this.options.listenHost && this.options.listenPort) { + this.server = net.createServer(); + this.server.listen(this.options.listenPort, this.options.listenHost); + this.server.on('listening', function() { + console.log("listening on %j", this.address()); + }); + this.server.on('connection', function(socket) { + + }); + } + this.emit("init"); +} + +util.inherits(Connection, EventEmitter); + +Connection.prototype.checkIdle = function() { + var current = time(), + idl = this.options.idle; + if (!this.lastReceived && (current - this.started >= idl)) { + this.idleClose(); + } else if (this.lastReceived && (current - this.lastReceived >= idl)) { + this.idleClose(); + } else { + //console.log('keep idling') + } +}; + +Connection.prototype.released = function() { + this.socket.end(); +}; + +Connection.prototype.idleClose = function() { + console.log('Exceed idle time, closing connection'); + this.release(); +}; + +Connection.prototype.getSoureceAE = function() { + return this.options.sourceAE; +}; + +Connection.prototype.ready = function() { + console.log("Connection established"); + this.connected = true; + this.started = time(); + + var o = this; + this.intervalId = setInterval(function() { + o.checkIdle(); + }, 3000); + + //this.emit("init"); + //this.startAssociationRequest(); +}; + +Connection.prototype.resetReceive = function() { + this.receiving = this.receiveLength = null; +}; + +Connection.prototype.received = function(data) { + var i = 0; + do { + data = this.process(data); + } while (data !== null); + this.lastReceived = time(); +}; + +Connection.prototype.process = function(data) { + //console.log("Data received"); + if (this.receiving === null) { + if (this.minRecv) { + data = Buffer.concat([this.minRecv, data], this.minRecv.length + data.length); + this.minRecv = null; + } + + if (data.length < 6) { + this.minRecv = data; + return null; + } + + var stream = new ReadStream(data); + var type = stream.read(C.TYPE_UINT8); + stream.increment(1); + var len = stream.read(C.TYPE_UINT32), + cmp = data.length - 6; + if (len > cmp) { + this.receiving = data; + this.receiveLength = len; + } else { + var process = data, + remaining = null; + if (len < cmp) { + process = data.slice(0, len + 6); + remaining = data.slice(len + 6, cmp + 6); + } + this.resetReceive(); + this.interpret(new ReadStream(process)); + if (remaining) { + return remaining; + } + } + } else { + var newData = Buffer.concat([this.receiving, data], this.receiving.length + data.length), + pduLength = newData.length - 6; + + if (pduLength < this.receiveLength) { + this.receiving = newData; + } else { + var remaining = null; + if (pduLength > this.receiveLength) { + remaining = newData.slice(this.receiveLength + 6, pduLength + 6); + newData = newData.slice(0, this.receiveLength + 6); + } + this.resetReceive(); + this.interpret(new ReadStream(newData)); + if (remaining) { + return remaining; + } + } + } + return null; +}; + +Connection.prototype.interpret = function(stream) { + var pdatas = [], + size = stream.size(), + o = this; + while (stream.offset < size) { + var pdu = pduByStream(stream); + //console.log("Received PDU-TYPE " + pdu.type); + if (pdu.is(C.ITEM_TYPE_PDU_ASSOCIATE_AC)) { + pdu.presentationContextItems.forEach(function(ctx) { + var requested = o.getContext(ctx.presentationContextID); + if (!requested) { + throw "Accepted presentation context not found"; + } + o.negotiatedContexts[ctx.presentationContextID] = { + id: ctx.presentationContextID, + transferSyntax: ctx.transferSyntaxesItems[0].transferSyntaxName, + abstractSyntax: requested.abstractSyntax + }; + + var notfound = false; + o.services.forEach(function(service) { + if (service.contextUID == requested.abstractSyntax) { + service.contextID = ctx.presentationContextID; + } + }); + }); + + //console.log('Accepted'); + this.associated = true; + this.emit('associated', pdu); + } else if (pdu.is(C.ITEM_TYPE_PDU_RELEASE_RP)) { + //console.log('Released'); + this.associated = false; + this.emit('released'); + } else if (pdu.is(C.ITEM_TYPE_PDU_AABORT)) { + //console.log('Aborted'); + this.emit('aborted'); + } else if (pdu.is(C.ITEM_TYPE_PDU_PDATA)) { + pdatas.push(pdu); + } + } + + if (pdatas) { + var pdvs = this.pendingPDVs ? this.pendingPDVs : []; + pdatas.forEach(function(pdata) { + pdvs = pdvs.concat(pdata.presentationDataValueItems); + }); + this.pendingPDVs = null; + var i = 0, + count = pdvs.length; + while (i < count) { + if (!pdvs[i].isLast) { + var j = i + 1; + while (j < count) { + pdvs[i].messageStream.concat(pdvs[j].messageStream); + if (pdvs[j++].isLast) { + pdvs[i].isLast = true; + break; + } + } + if (pdvs[i].isLast) { + this.emit('message', pdvs[i]); + } else { + this.pendingPDVs = [pdvs[i]]; + } + i = j; + } else { + this.emit('message', pdvs[i++]); + } + } + } + + //this.release(); +}; + +Connection.prototype.newMessageId = function() { + return (++this.messageIdCounter) % 255; +} + +Connection.prototype.closed = function(had_error) { + this.connected = false; + console.log("Connection closed", had_error); + //this.destroy(); +} + +Connection.prototype.error = function(err) { + console.log("Error: ", err); +} + +Connection.prototype.send = function(pdu, afterCbk) { + //console.log('SEND PDU-TYPE: ', pdu.type); + var toSend = pdu.buffer(); + //console.log('send buffer', toSend.toString('hex')); + this.socket.write(toSend, afterCbk ? afterCbk : function() { + //console.log('Data written'); + }); +} + +Connection.prototype.getSyntax = function(contextId) { + if (!this.negotiatedContexts[contextId]) return null; + + return this.negotiatedContexts[contextId].transferSyntax; +} + +Connection.prototype.getContextByUID = function(uid) { + for (var k in this.negotiatedContexts) { + var ctx = this.negotiatedContexts[k]; + if (ctx.abstractSyntax == uid) { + return ctx; + } + } + return null; +} + +Connection.prototype.getContextId = function(contextId) { + if (!this.negotiatedContexts[contextId]) return null; + + return this.negotiatedContexts[contextId].id; +} + +Connection.prototype.getContext = function(id) { + for (var k in this.presentationContexts) { + var ctx = this.presentationContexts[k]; + if (id == ctx.id) return ctx; + } + return null; +} + +Connection.prototype.setPresentationContexts = function(uids) { + var contexts = [], + id = 0; + uids.forEach(function(uid) { + contexts.push({ + id: ++id, + abstractSyntax: uid, + transferSyntaxes: [C.IMPLICIT_LITTLE_ENDIAN, C.EXPLICIT_LITTLE_ENDIAN, C.EXPLICIT_BIG_ENDIAN] + }); + }); + this.presentationContexts = contexts; +} + +Connection.prototype.verify = function() { + this.setPresentationContexts([C.SOP_VERIFICATION]); + this.startAssociationRequest(function() { + //associated, we can release now + this.release(); + }); +} + +Connection.prototype.release = function() { + var releaseRQ = new ReleaseRQ(); + this.send(releaseRQ); +} + +Connection.prototype.addService = function(service) { + service.setConnection(this); + this.services.push(service); +} + +Connection.prototype.receivedMessage = function(pdv) { + var syntax = this.getSyntax(pdv.contextId), + msg = readMessage(pdv.messageStream, pdv.type, syntax, this.options.vr); + + if (msg.isCommand()) { + this.lastCommand = msg; + + if (msg.isResponse()) { + if (msg.is(C.COMMAND_C_GET_RSP) || msg.is(C.COMMAND_C_MOVE_RSP)) { + //console.log('remaining', msg.getNumOfRemainingSubOperations(), msg.getNumOfCompletedSubOperations()); + } + if (msg.failure()) { + //console.log("message failed with status ", msg.getStatus().toString(16)); + } + if (msg.isFinal()) { + var replyId = msg.respondedTo(); + if (this.messages[replyId].listener) { + this.messages[replyId].listener.emit('end', msg); + /*if (this.messages[replyId].listener[1]) { + this.messages[replyId].listener[1].call(this, msg); + }*/ + if (!msg.haveData()) + delete this.messages[replyId]; + } + + if (msg.is(C.COMMAND_C_GET_RSP)) { + if (!msg.getNumOfRemainingSubOperations()) { + if (this.lastGets && this.lastGets.length > 0) this.lastGets.shift(); + } + } + } + } else { + /*if (msg.is(0x01)) { + console.log('ae title ', msg.getValue(0x00001031)) + }*/ + } + + } else { + if (!this.lastCommand) { + throw "Only dataset?"; + } else if (!this.lastCommand.haveData()) { + throw "Last command didn't indicate presence of data"; + } + + if (this.lastCommand.isResponse()) { + var replyId = this.lastCommand.respondedTo(); + if (this.messages[replyId].listener) { + var flag = this.lastCommand.failure() ? true : false; + + this.messages[replyId].listener.emit("result", msg, flag); + + if (this.lastCommand.failure()) { + delete this.messages[replyId]; + } + } + } else { + if (this.lastCommand.is(C.COMMAND_C_STORE_RQ)) { + var moveMessageId = this.lastCommand.getMoveMessageId(), + useId = moveMessageId; + if (!moveMessageId) { + //!! Going to deprecate now + //kinda hacky but we know this c-store is came from a c-get + if (this.lastGets.length > 0) { + useId = this.lastGets[0]; + } else { + throw "Where does this c-store came from?"; + } + } else console.log('move ', moveMessageId); + //this.storeResponse(useId, msg); + } + } + } +} + +Connection.prototype.storeResponse = function(messageId, msg) { + var rq = this.messages[messageId]; + + if (rq.listener[2]) { + var status = rq.listener[2].call(this, msg); + if (status !== undefined && status !== null && rq.command.store) { + //store ok, ready to send c-store-rsp + var storeSr = rq.command.store, + replyMessage = storeSr.replyWith(status); + replyMessage.setAffectedSOPInstanceUID(this.lastCommand.getSOPInstanceUID()); + replyMessage.setReplyMessageId(this.lastCommand.messageId); + this.sendMessage(replyMessage, null, null, storeSr); + } else { + throw "Missing store status"; + } + } +} + +Connection.prototype.sendMessage = function(context, command, dataset, listener) { + var nContext = this.getContextByUID(context), + syntax = nContext.transferSyntax, + cid = nContext.id, + messageId = this.newMessageId(), + msgData = {}; + + /*if (listener) { + if (typeof listener != 'object') { + listener = [listener, null]; + } + msgData.listener = listener; + }*/ + msgData.listener = new Envelope(); + + var pdata = new PDataTF(), + pdv = new PresentationDataValueItem(cid); + + command.setSyntax(C.IMPLICIT_LITTLE_ENDIAN); + command.setContextId(context); + command.setMessageId(messageId); + if (dataset) + command.setDataSetPresent(C.DATA_SET_PRESENT); + + this.lastSent = command; + if (command.is(C.COMMAND_C_GET_RQ)) { + this.lastGets.push(messageId); + } + pdv.setMessage(command); + pdata.setPresentationDataValueItems([pdv]); + + msgData.command = command; + this.messages[messageId] = msgData; + + /*var stream = new ReadStream(pdata.buffer()), np = pduByStream(stream), pdv = np.presentationDataValueItems[0]; + var msg = readMessage(pdv.messageStream, pdv.type, C.IMPLICIT_LITTLE_ENDIAN); + console.log(msg.isCommand()); + return;*/ + + this.send(pdata); + if (dataset) { + dataset.setSyntax(syntax); + var dsData = new PDataTF(), + dPdv = new PresentationDataValueItem(cid); + + dPdv.setMessage(dataset); + dsData.setPresentationDataValueItems([dPdv]); + this.send(dsData); + } + return msgData.listener; +}; + +Connection.prototype.associate = function(options, callback) { + if (callback) { + this.once('associated', callback); + } + if (this.associated) { + this.emit('associated'); + return; + } + + if (options.contexts) { + this.setPresentationContexts(options.contexts); + } else { + throw "No services attached"; + } + + var associateRQ = new AssociateRQ(); + associateRQ.setCalledAETitle(options.hostAE); + var sourceAE = options.sourceAE ? options.sourceAE : DEFAULT_SOURCE_AE; + associateRQ.setCallingAETitle(sourceAE); + associateRQ.setApplicationContextItem(new ApplicationContextItem()); + + var contextItems = [] + this.presentationContexts.forEach(function(context) { + var contextItem = new PresentationContextItem(), + syntaxes = []; + context.transferSyntaxes.forEach(function(transferSyntax) { + var transfer = new TransferSyntaxItem(); + transfer.setTransferSyntaxName(transferSyntax); + syntaxes.push(transfer); + }); + contextItem.setTransferSyntaxesItems(syntaxes); + contextItem.setPresentationContextID(context.id); + + var abstractItem = new AbstractSyntaxItem(); + abstractItem.setAbstractSyntaxName(context.abstractSyntax); + contextItem.setAbstractSyntaxItem(abstractItem); + contextItems.push(contextItem); + }); + associateRQ.setPresentationContextItems(contextItems); + + var maxLengthItem = new MaximumLengthItem(), + classUIDItem = new ImplementationClassUIDItem(), + versionItem = new ImplementationVersionNameItem(); + + classUIDItem.setImplementationClassUID(C.IMPLEM_UID); + versionItem.setImplementationVersionName(C.IMPLEM_VERSION); + var packageSize = options.maxPackageSize ? options.maxPackageSize : DEFAULT_MAX_PACKAGE_SIZE; + maxLengthItem.setMaximumLengthReceived(packageSize); + + var userInfo = new UserInformationItem(); + userInfo.setUserDataItems([maxLengthItem, classUIDItem, versionItem]); + + associateRQ.setUserInformationItem(userInfo); + + this.send(associateRQ); +} + +Connection.prototype.wrapMessage = function(data) { + if (data) { + var datasetMessage = new DataSetMessage(); + datasetMessage.setElements(data); + return datasetMessage; + } else return data; +} + +Connection.prototype.setFindContext = function(ctx) { + this.findContext = ctx; +} + +Connection.prototype.find = function(params, callback) { + return this.sendMessage(this.findContext, new CFindRQ(), this.wrapMessage(params), callback); +} + +Connection.prototype.findPatients = function(params, callback) { + var sendParams = Object.assign({ + 0x00080052: C.QUERY_RETRIEVE_LEVEL_PATIENT, + 0x00100010: "", + 0x00100020: "", + 0x00100030: "", + 0x00100040: "", + }, params); + + return this.find(sendParams, callback); +} + +Connection.prototype.findStudies = function(params, callback) { + var sendParams = Object.assign({ + 0x00080052: C.QUERY_RETRIEVE_LEVEL_STUDY, + 0x00080020: "", + 0x00100010: "", + 0x00080061: "", + 0x0020000D: "" + }, params); + + return this.find(sendParams, callback); +} + +Connection.prototype.findSeries = function(params, callback) { + var sendParams = Object.assign({ + 0x00080052: C.QUERY_RETRIEVE_LEVEL_SERIES, + 0x00080020: "", + 0x0020000E: "", + 0x0008103E: "", + 0x0020000D: "" + }, params); + + return this.find(sendParams, callback); +} + +Connection.prototype.findInstances = function(params, callback) { + var sendParams = Object.assign({ + 0x00080052: C.QUERY_RETRIEVE_LEVEL_IMAGE, + 0x00080020: "", + 0x0020000E: "", + 0x0008103E: "", + 0x0020000D: "" + }, params); + + return this.find(sendParams, callback); +} \ No newline at end of file diff --git a/Packages/dimse-service/server/DIMSE.js b/Packages/dimse-service/server/DIMSE.js new file mode 100755 index 000000000..3be3d5a0d --- /dev/null +++ b/Packages/dimse-service/server/DIMSE.js @@ -0,0 +1,185 @@ +var net = Npm.require('net'), + Future = Npm.require('fibers/future'); + +DIMSE = {}; + +DIMSE.associate = function(contexts, callback) { + var host = Meteor.settings.dimse.host, + port = Meteor.settings.dimse.port, + ae = Meteor.settings.dimse.hostAE; + + var client = net.connect({ + host: host, + port: port + }, + function() { //'connect' listener + console.log('==Connected'); + + var conn = new Connection(client, { + vr: { + split: false + } + }); + conn.associate({ + contexts: contexts, + hostAE: ae + }, function(pdu) { + // associated + console.log('==Associated'); + callback.call(conn, pdu); + }); + }); +}; + +DIMSE.retrievePatients = function(params) { + //var start = new Date(); + var future = new Future; + DIMSE.associate([C.SOP_PATIENT_ROOT_FIND], function(pdu) { + var defaultParams = { + 0x00100010: "", + 0x00100020: "", + 0x00100030: "", + 0x00100040: "", + 0x00101010: "", + 0x00101040: "" + }; + + this.setFindContext(C.SOP_PATIENT_ROOT_FIND); + var result = this.findPatients(Object.assign(defaultParams, params)), + o = this; + + var patients = []; + result.on('result', function(msg) { + patients.push(msg); + }); + + result.on('end', function() { + o.release(); + }); + + this.on('close', function() { + //var time = new Date() - start;console.log(time + 'ms taken'); + future.return(patients); + }); + }); + return future.wait(); +}; + +DIMSE.retrieveStudies = function(params) { + //var start = new Date(); + var future = new Future; + DIMSE.associate([C.SOP_STUDY_ROOT_FIND], function(pdu) { + var defaultParams = { + 0x0020000D: "", + 0x00080060: "", + 0x00080005: "", + 0x00080020: "", + 0x00080030: "", + 0x00080090: "", + 0x00100010: "", + 0x00100020: "", + 0x00200010: "", + 0x00100030: "" + }; + + this.setFindContext(C.SOP_STUDY_ROOT_FIND); + var result = this.findStudies(Object.assign(defaultParams, params)), + o = this; + + var studies = []; + result.on('result', function(msg) { + studies.push(msg); + }); + + result.on('end', function() { + o.release(); + }); + + this.on('close', function() { + //var time = new Date() - start;console.log(time + 'ms taken'); + future.return(studies); + }); + }); + return future.wait(); +}; + +DIMSE.retrieveSeries = function(studyInstanceUID, params) { + var future = new Future; + DIMSE.associate([C.SOP_STUDY_ROOT_FIND], function(pdu) { + var defaultParams = { + 0x0020000D: studyInstanceUID ? studyInstanceUID : "", + 0x00080005: "", + 0x00080020: "", + 0x00080030: "", + 0x00080090: "", + 0x00100010: "", + 0x00100020: "", + 0x00200010: "", + 0x0008103E: "", + 0x0020000E: "", + 0x00200011: "" + }; + + this.setFindContext(C.SOP_STUDY_ROOT_FIND); + var result = this.findSeries(Object.assign(defaultParams, params)), + o = this; + + var series = []; + result.on('result', function(msg) { + series.push(msg); + }); + + result.on('end', function() { + o.release(); + }); + + this.on('close', function() { + future.return(series); + }); + }); + return future.wait(); +}; + +DIMSE.retrieveInstances = function(studyInstanceUID, seriesInstanceUID, params) { + var future = new Future; + DIMSE.associate([C.SOP_STUDY_ROOT_FIND], function(pdu) { + var defaultParams = { + 0x0020000D: studyInstanceUID ? studyInstanceUID : "", + 0x0020000E: (studyInstanceUID && seriesInstanceUID) ? seriesInstanceUID : "", + 0x00080005: "", + 0x00080020: "", + 0x00080030: "", + 0x00080090: "", + 0x00100010: "", + 0x00100020: "", + 0x00200010: "", + 0x0008103E: "", + 0x00200011: "", + 0x00080016: "", + 0x00080018: "", + 0x00200013: "", + 0x00280010: "", + 0x00280011: "", + 0x00280100: "", + 0x00280103: "" + }; + + this.setFindContext(C.SOP_STUDY_ROOT_FIND); + var result = this.findInstances(Object.assign(defaultParams, params)), + o = this; + + var instances = []; + result.on('result', function(msg) { + instances.push(msg); + }); + + result.on('end', function() { + o.release(); + }); + + this.on('close', function() { + future.return(instances); + }); + }); + return future.wait(); +}; \ No newline at end of file diff --git a/Packages/dimse-service/server/Data.js b/Packages/dimse-service/server/Data.js new file mode 100755 index 000000000..afa88b772 --- /dev/null +++ b/Packages/dimse-service/server/Data.js @@ -0,0 +1,927 @@ +function paddingLeft(paddingValue, string) { + return String(paddingValue + string).slice(-paddingValue.length); +}; + +function rtrim(str) { + return str.replace(/\s*$/g, ''); +} + +function ltrim(str) { + return str.replace(/^\s*/g, ''); +} + +function fieldsLength(fields) { + var length = 0; + fields.forEach(function(field) { + length += field.length(); + }); + return length; +}; + +Tag = function(value) { + this.value = value; +}; + +Tag.prototype.toString = function() { + return "(" + paddingLeft("0000", this.group().toString(16)) + "," + + paddingLeft("0000", this.element().toString(16)) + ")"; +} + +Tag.prototype.is = function(t) { + return this.value == t; +} + +Tag.prototype.group = function() { + return this.value >>> 16; +} + +Tag.prototype.element = function() { + return this.value & 0xffff; +} + +tagFromNumbers = function(group, element) { + return new Tag(((group << 16) | element) >>> 0); +} + +function readTag(stream) { + var group = stream.read(C.TYPE_UINT16), + element = stream.read(C.TYPE_UINT16); + + var tag = tagFromNumbers(group, element); + return tag; +} + +parseElements = function (stream, syntax) { + var pairs = {}; + stream.reset(); + while (!stream.end()) { + var elem = new DataElement(); + elem.setSyntax(syntax); + elem.readBytes(stream); + pairs[elem.tag.value] = elem; + } + return pairs; +} + +ValueRepresentation = function(type) { + this.type = type; + this.multi = false; +} + +ValueRepresentation.prototype.read = function(stream, length, syntax) { + if (this.fixed && this.maxLength) { + if (!length) + return this.defaultValue; + if (this.maxLength != length) + throw "Invalid length for fixed length tag, vr " + this.type + ", length " + this.maxLength + " != " + length; + } + return this.readBytes(stream, length, syntax); +} + +ValueRepresentation.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_ASCII, length); +} + +ValueRepresentation.prototype.readNullPaddedString = function(stream, length) { + if (!length) return ""; + + var str = stream.read(C.TYPE_ASCII, length - 1); + if (stream.read(C.TYPE_UINT8) != 0) { + stream.increment(-1); + str += stream.read(C.TYPE_ASCII, 1); + } + return str; +} + +ValueRepresentation.prototype.getFields = function(fields) { + var valid = true; + if (this.checkLength) { + valid = this.checkLength(fields); + } else if (this.maxCharLength) { + var check = this.maxCharLength, length = 0; + fields.forEach(function(field){ + if (typeof field.value == 'string') + length += field.value.length; + }); + valid = length <= check; + } else if (this.maxLength) { + var check = this.maxLength, length = fieldsLength(fields); + valid = length <= check; + } + if (!valid) + throw "Value exceeds max length"; + + //check for odd + var length = fieldsLength(fields); + if (length & 1) { + fields.push(new HexField(this.padByte)); + } + + for (var i = 0;i < fields.length;i++) { + if (fields[i].isNumeric() && (fields[i].value === "" || fields[i].value === null)) { + fields[i] = new StringField(""); + } + } + + return fields; +} + +ApplicationEntity = function() { + ValueRepresentation.call(this, "AE"); + this.maxLength = 16; + this.padByte = "20"; +}; +util.inherits(ApplicationEntity, ValueRepresentation); + +ApplicationEntity.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_ASCII, length).trim(); +} + +ApplicationEntity.prototype.getFields = function(value) { + return ApplicationEntity.super_.prototype.getFields.call(this, [new FilledField(value, 16)]); +} + +CodeString = function() { + ValueRepresentation.call(this, "CS"); + this.maxLength = 16; + this.padByte = "20"; +}; +util.inherits(CodeString, ValueRepresentation); + +CodeString.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return str.trim(); +} + +CodeString.prototype.getFields = function(value) { + return CodeString.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +AgeString = function() { + ValueRepresentation.call(this, "AS"); + this.maxLength = 4; + this.padByte = "20"; + this.fixed = true; + this.defaultValue = ""; +}; +util.inherits(AgeString, ValueRepresentation); + +AgeString.prototype.getFields = function(value) { + var str = ""; + if (value) { + if (value.days) { + str = paddingLeft("000" + value.days) + "D"; + } else if (value.weeks) { + str = paddingLeft("000" + value.weeks) + "W"; + } else if (value.months) { + str = paddingLeft("000" + value.months) + "M"; + } else if (value.years) { + str = paddingLeft("000" + value.years) + "Y"; + } else { + throw "Invalid age string"; + } + } + + return AgeString.super_.prototype.getFields.call(this, [new StringField(str)]); +} + +AttributeTag = function() { + ValueRepresentation.call(this, "AT"); + this.maxLength = 4; + this.padByte = "00"; + this.fixed = true; +}; +util.inherits(AttributeTag, ValueRepresentation); + +AttributeTag.prototype.readBytes = function(stream, length) { + var group = stream.read(C.TYPE_UINT16), element = stream.read(C.TYPE_UINT16); + return tagFromNumbers(group, element); +} + +AttributeTag.prototype.getFields = function(value) { + return AttributeTag.super_.prototype.getFields.call(this, [new UInt16Field(value.group()), new UInt16Field(value.element())]); +} + +DateValue = function() { + ValueRepresentation.call(this, "DA"); + this.maxLength = 8; + this.padByte = "20"; + this.fixed = true; + this.defaultValue = ""; +}; +util.inherits(DateValue, ValueRepresentation); + +DateValue.prototype.readBytes = function(stream, length) { + var datestr = stream.read(C.TYPE_ASCII, 8); + + var year = parseInt(datestr.substring(0,4)), + month = parseInt(datestr.substring(4,6)), + day = parseInt(datestr.substring(6,8)); + return datestr;//new Date(year, month, day); +} + +DateValue.prototype.getFields = function(date) { + var str = null; + if (typeof date == 'object') { + var year = date.getFullYear(), month = paddingLeft("00", date.getMonth()), day = paddingLeft("00", date.getDate()); + str = year + month + day; + } else if (date && date.length > 0) { + this.maxLength = 18; + this.fixed = false; + str = date; + } else { + str = ""; + } + + return DateValue.super_.prototype.getFields.call(this, [new StringField(str)]); +} + +DecimalString = function() { + ValueRepresentation.call(this, "DS"); + this.maxLength = 16; + this.padByte = "20"; +}; +util.inherits(DecimalString, ValueRepresentation); + +DecimalString.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return str.trim(); +} + +DecimalString.prototype.getFields = function(value) { + var f = parseFloat(value); + return DecimalString.super_.prototype.getFields.call(this, [new StringField(isNaN(f) ? '' : f.toExponential())]); +} + +DateTime = function() { + ValueRepresentation.call(this, "DT"); + this.maxLength = 26; + this.padByte = "20"; +}; +util.inherits(DateTime, ValueRepresentation); + +DateTime.prototype.getFields = function(value) { + var year = date.getUTCFullYear(), month = paddingLeft("00", date.getUTCMonth()), + day = paddingLeft("00", date.getUTCDate()), hour = paddingLeft("00", date.getUTCHours()), + minute = paddingLeft("00", date.getUTCMinutes()), second = paddingLeft("00", date.getUTCSeconds()), + millisecond = paddingLeft("000", date.getUTCMilliseconds()); + + return DateTime.super_.prototype.getFields.call(this, [new StringField(year + month + day + hour + minute + second + "." + millisecond + "+0000")]); +} + +FloatingPointSingle = function() { + ValueRepresentation.call(this, "FL"); + this.maxLength = 4; + this.padByte = "00"; + this.fixed = true; + this.defaultValue = 0.0; +}; +util.inherits(FloatingPointSingle, ValueRepresentation); + +FloatingPointSingle.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_FLOAT); +} + +FloatingPointSingle.prototype.getFields = function(value) { + return FloatingPointSingle.super_.prototype.getFields.call(this, [new FloatField(value)]); +} + +FloatingPointDouble = function() { + ValueRepresentation.call(this, "FD"); + this.maxLength = 8; + this.padByte = "00"; + this.fixed = true; + this.defaultValue = 0.0; +}; +util.inherits(FloatingPointDouble, ValueRepresentation); + +FloatingPointDouble.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_DOUBLE); +} + +FloatingPointDouble.prototype.getFields = function(value) { + return FloatingPointDouble.super_.prototype.getFields.call(this, [new DoubleField(value)]); +} + +IntegerString = function() { + ValueRepresentation.call(this, "IS"); + this.maxLength = 12; + this.padByte = "20"; +}; +util.inherits(IntegerString, ValueRepresentation); + +IntegerString.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return str.trim(); +} + +IntegerString.prototype.getFields = function(value) { + return IntegerString.super_.prototype.getFields.call(this, [new StringField(value.toString())]); +} + +LongString = function() { + ValueRepresentation.call(this, "LO"); + this.maxCharLength = 64; + this.padByte = "20"; +}; +util.inherits(LongString, ValueRepresentation); + +LongString.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return str.trim(); +} + +LongString.prototype.getFields = function(value) { + return LongString.super_.prototype.getFields.call(this, [new StringField(value ? value : "")]); +} + +LongText = function() { + ValueRepresentation.call(this, "LT"); + this.maxCharLength = 10240; + this.padByte = "20"; +}; +util.inherits(LongText, ValueRepresentation); + +LongText.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return rtrim(str); +} + +LongText.prototype.getFields = function(value) { + return LongText.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +PersonName = function() { + ValueRepresentation.call(this, "PN"); + this.maxLength = null; + this.padByte = "20"; +}; +util.inherits(PersonName, ValueRepresentation); + +PersonName.prototype.checkLength = function(field) { + var cmps = field[0].value.split(/\^/); + for (var i in cmps) { + var cmp = cmps[i]; + if (cmp.length > 64) return false; + } + return true; +} + +PersonName.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return rtrim(str); +} + +PersonName.prototype.getFields = function(value) { + var str = null; + if (typeof value == 'string') { + str = value; + } else if (value) { + var fName = value.family || "", gName = value.given || "", + middle = value.middle || "", prefix = value.prefix || "", suffix = value.suffix || ""; + + str = [fName, gName, middle, prefix, suffix].join("^"); + } else str = ''; + + return PersonName.super_.prototype.getFields.call(this, [new StringField(str)]); +} + +ShortString = function() { + ValueRepresentation.call(this, "SH"); + this.maxCharLength = 16; + this.padByte = "20"; +}; +util.inherits(ShortString, ValueRepresentation); + +ShortString.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return str.trim(); +} + +ShortString.prototype.getFields = function(value) { + return ShortString.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +SignedLong = function() { + ValueRepresentation.call(this, "SL"); + this.maxLength = 4; + this.padByte = "00"; + this.fixed = true; + this.defaultValue = 0; +}; +util.inherits(SignedLong, ValueRepresentation); + +SignedLong.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_INT32); +} + +SignedLong.prototype.getFields = function(value) { + return SignedLong.super_.prototype.getFields.call(this, [new Int32Field(value)]); +} + +SequenceOfItems = function() { + ValueRepresentation.call(this, "SQ"); + this.maxLength = null; + this.padByte = "00"; +}; +util.inherits(SequenceOfItems, ValueRepresentation); + +SequenceOfItems.prototype.readBytes = function(stream, sqlength, syntax) { + if (sqlength == 0x0) { + return []; //contains no dataset + } else { + var undefLength = sqlength == 0xffffffff, elements = [], read = 0; + + while (true) { + var tag = readTag(stream), length = null; + read += 4; + + if (tag.is(0xfffee0dd)) { + stream.read(C.TYPE_UINT32) + break; + } else if (!undefLength && (read == sqlength)) { + break; + } else if (tag.is(0xfffee000)) { + length = stream.read(C.TYPE_UINT32); + read += 4; + var itemStream = null, toRead = 0, undef = length == 0xffffffff; + + if (undef) { + var stack = 0; + while (1) { + var g = stream.read(C.TYPE_UINT16); + if (g == 0xfffe) { + var ge = stream.read(C.TYPE_UINT16); + if (ge == 0xe00d) { + stack--; + if (stack < 0) { + stream.increment(4); + read += 8; + break; + } else { + toRead += 4; + } + } else if (ge == 0xe000) { + stack++; + toRead += 4; + } else { + toRead += 2; + stream.increment(-2); + } + } else { + toRead += 2; + } + } + } else { + toRead = length; + } + + if (toRead) { + stream.increment(undef ? (-toRead-8) : 0); + itemStream = stream.more(toRead);//parseElements + read += toRead; + if (undef) + stream.increment(8); + + elements.push(parseElements(itemStream, syntax)); + } + if (!undefLength && (read == sqlength)) { + break; + } + } + } + return elements; + } +} + +SequenceOfItems.prototype.getFields = function(value, syntax) { + var fields = []; + if (value) { + value.forEach(function(message) { + fields.push(new UInt16Field(0xfffe)); + fields.push(new UInt16Field(0xe000)); + fields.push(new UInt32Field(0xffffffff)); + + message.forEach(function(element) { + element.setSyntax(syntax); + fields = fields.concat(element.getFields()); + }); + + fields.push(new UInt16Field(0xfffe)); + fields.push(new UInt16Field(0xe00d)); + fields.push(new UInt32Field(0x00000000)); + }); + } + + fields.push(new UInt16Field(0xfffe)); + fields.push(new UInt16Field(0xe0dd)); + fields.push(new UInt32Field(0x00000000)); + + return SequenceOfItems.super_.prototype.getFields.call(this, fields); +} + +SignedShort = function() { + ValueRepresentation.call(this, "SS"); + this.maxLength = 2; + this.padByte = "00"; + this.fixed = true; + this.defaultValue = 0; +}; +util.inherits(SignedShort, ValueRepresentation); + +SignedShort.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_INT16); +} + +SignedShort.prototype.getFields = function(value) { + return SignedShort.super_.prototype.getFields.call(this, [new Int16Field(value)]); +} + +ShortText = function() { + ValueRepresentation.call(this, "ST"); + this.maxCharLength = 1024; + this.padByte = "20"; +}; +util.inherits(ShortText, ValueRepresentation); + +ShortText.prototype.readBytes = function(stream, length) { + var str = this.readNullPaddedString(stream, length); + return rtrim(str); +} + +ShortText.prototype.getFields = function(value) { + return ShortText.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +TimeValue = function() { + ValueRepresentation.call(this, "TM"); + this.maxLength = 14; + this.padByte = "20"; +}; +util.inherits(TimeValue, ValueRepresentation); + +TimeValue.prototype.readBytes = function(stream, length) { + return rtrim(stream.read(C.TYPE_ASCII, length)); +} + +TimeValue.prototype.getFields = function(date) { + var dateStr = ''; + if (date) { + var hour = paddingLeft("00", date.getHours()), + minute = paddingLeft("00", date.getMinutes()), second = paddingLeft("00", date.getSeconds()), + millisecond = paddingLeft("000", date.getMilliseconds()); + dateStr = hour + minute + second + "." + millisecond; + } + + return TimeValue.super_.prototype.getFields.call(this, [new StringField(dateStr)]); +} + +UnlimitedCharacters = function() { + ValueRepresentation.call(this, "UC"); + this.maxLength = null; + this.multi = true; + this.padByte = "20"; +}; +util.inherits(UnlimitedCharacters, ValueRepresentation); + +UnlimitedCharacters.prototype.readBytes = function(stream, length) { + return rtrim(stream.read(C.TYPE_ASCII, length)); +} + +UnlimitedCharacters.prototype.getFields = function(value) { + return UnlimitedCharacters.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +UnlimitedText = function() { + ValueRepresentation.call(this, "UT"); + this.maxLength = null; + this.padByte = "20"; +}; +util.inherits(UnlimitedText, ValueRepresentation); + +UnlimitedText.prototype.readBytes = function(stream, length) { + return this.readNullPaddedString(stream, length); +} + +UnlimitedText.prototype.getFields = function(value) { + return UnlimitedText.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +UnsignedShort = function() { + ValueRepresentation.call(this, "US"); + this.maxLength = 2; + this.padByte = "00"; + this.fixed = true; + this.defaultValue = 0; +}; +util.inherits(UnsignedShort, ValueRepresentation); + +UnsignedShort.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_UINT16); +} + +UnsignedShort.prototype.getFields = function(value) { + return UnsignedShort.super_.prototype.getFields.call(this, [new UInt16Field(value)]); +} + +UnsignedLong = function() { + ValueRepresentation.call(this, "UL"); + this.maxLength = 4; + this.padByte = "00"; + this.fixed = true; + this.defaultValue = 0; +}; +util.inherits(UnsignedLong, ValueRepresentation); + +UnsignedLong.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_UINT32); +} + +UnsignedLong.prototype.getFields = function(value) { + return UnsignedLong.super_.prototype.getFields.call(this, [new UInt32Field(value)]); +} + +UniqueIdentifier = function() { + ValueRepresentation.call(this, "UI"); + this.maxLength = 64; + this.padByte = "00"; +}; +util.inherits(UniqueIdentifier, ValueRepresentation); + +UniqueIdentifier.prototype.readBytes = function(stream, length) { + return this.readNullPaddedString(stream, length); +} + +UniqueIdentifier.prototype.getFields = function(value) { + return UniqueIdentifier.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +UniversalResource = function() { + ValueRepresentation.call(this, "UR"); + this.maxLength = null; + this.padByte = "20"; +}; +util.inherits(UniversalResource, ValueRepresentation); + +UniversalResource.prototype.readBytes = function(stream, length) { + return rtrim(stream.read(C.TYPE_ASCII, length)); +} + +UniversalResource.prototype.getFields = function(value) { + return UniversalResource.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +UnknownValue = function() { + ValueRepresentation.call(this, "UN"); + this.maxLength = null; + this.padByte = "00"; +}; +util.inherits(UnknownValue, ValueRepresentation); + +UnknownValue.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_ASCII, length); +} + +UnknownValue.prototype.getFields = function(value) { + return UnknownValue.super_.prototype.getFields.call(this, [new StringField(value)]); +} + +OtherWordString = function() { + ValueRepresentation.call(this, "OW"); + this.maxLength = null; + this.padByte = "00"; +}; +util.inherits(OtherWordString, ValueRepresentation); + +OtherWordString.prototype.readBytes = function(stream, length) { + return stream.read(C.TYPE_ASCII, length); +} + +OtherWordString.prototype.getFields = function(value) { + return OtherWordString.super_.prototype.getFields.call(this, [new StringField(value)]); +} + + +elementByType = function(type, value, syntax) { + var elem = null, nk = DicomElements.dicomNDict[type]; + if (nk) { + if (nk.vr == 'SQ') { + var sq = []; + if (value) + value.forEach(function(el) { + var values = []; + for (var tag in el) { + values.push(elementByType(tag, el[tag], syntax)); + } + sq.push(values); + }); + elem = new DataElement(type, nk.vr, nk.vm, sq, false, syntax); + } else { + elem = new DataElement(type, nk.vr, nk.vm, value, false, syntax); + } + } else { + throw "Unrecognized element type"; + } + return elem; +} + +elementDataByTag = function(tag) { + var nk = DicomElements.dicomNDict[tag]; + if (nk) { + return nk; + } + throw ("Unrecognized tag " + (tag >>> 0).toString(16)); +} + +elementKeywordByTag = function(tag) { + var nk = elementDataByTag(tag); + return nk.keyword; +} + +vrByType = function(type) { + var vr = null; + if (type == "AE") vr = new ApplicationEntity(); + else if (type == "AS") vr = new AgeString(); + else if (type == "AT") vr = new AttributeTag(); + else if (type == "CS") vr = new CodeString(); + else if (type == "DA") vr = new DateValue(); + else if (type == "DS") vr = new DecimalString(); + else if (type == "DT") vr = new DateTime(); + else if (type == "FL") vr = new FloatingPointSingle(); + else if (type == "FD") vr = new FloatingPointDouble(); + else if (type == "IS") vr = new IntegerString(); + else if (type == "LO") vr = new LongString(); + else if (type == "LT") vr = new LongText(); + else if (type == "OB") vr = new OtherByteString(); + else if (type == "OD") vr = new OtherDoubleString(); + else if (type == "OF") vr = new OtherFloatString(); + else if (type == "OW") vr = new OtherWordString(); + else if (type == "PN") vr = new PersonName(); + else if (type == "SH") vr = new ShortString(); + else if (type == "SL") vr = new SignedLong(); + else if (type == "SQ") vr = new SequenceOfItems(); + else if (type == "SS") vr = new SignedShort(); + else if (type == "ST") vr = new ShortText(); + else if (type == "TM") vr = new TimeValue(); + else if (type == "UC") vr = new UnlimitedCharacters(); + else if (type == "UI") vr = new UniqueIdentifier(); + else if (type == "UL") vr = new UnsignedLong(); + else if (type == "UN") vr = new UnknownValue(); + else if (type == "UR") vr = new UniversalResource(); + else if (type == "US") vr = new UnsignedShort(); + else if (type == "UT") vr = new UnlimitedText(); + else throw "Invalid vr type " + type; + + return vr; +} + +readElements = function(stream, syntax) { + if (stream.end()) return false; + + var oldEndian = stream.endian; + stream.setEndian(this.endian); + + var group = stream.read(C.TYPE_UINT16), + element = stream.read(C.TYPE_UINT16), + tag = new Tag((group << 16) | element), + length = stream.read(C.TYPE_UINT32); + + stream.setEndian(oldEndian); +} + +var explicitVRList = ["OB", "OW", "OF", "SQ", "UC", "UR", "UT", "UN"], + binaryVRs = ["FL", "FD", "SL", "SS", "UL", "US"]; + +DataElement = function(tag, vr, vm, value, vvr, syntax, options) { + this.vr = vr ? vrByType(vr) : null; + this.tag = !vvr ? new Tag(tag) : tag; + this.value = value; + this.vm = vm; + this.vvr = vvr ? true : false; + this.setOptions(options); + this.setSyntax(syntax ? syntax : C.IMPLICIT_LITTLE_ENDIAN); +}; + +DataElement.prototype.setOptions = function(options) { + this.options = Object.assign({split : true}, options); +} + +DataElement.prototype.setSyntax = function(syn) { + this.syntax = syn; + this.implicit = this.syntax == C.IMPLICIT_LITTLE_ENDIAN ? true : false; + this.endian = (this.syntax == C.IMPLICIT_LITTLE_ENDIAN || this.syntax == C.EXPLICIT_LITTLE_ENDIAN) ? C.LITTLE_ENDIAN : C.BIG_ENDIAN; +} + +DataElement.prototype.getValue = function() { + if (!this.singleValue() && !this.isBinaryNumber()) { + return this.options.split ? this.value.split(String.fromCharCode(0x5c)) : this.value; + } else { + return this.value; + } +} + +DataElement.prototype.singleValue = function() { + return this.vm == C.VM_SINGLE ? true : false; +} + +DataElement.prototype.getVMNum = function() { + var num = 1; + switch(this.vm) { + case C.VM_SINGLE : num = 1; break; + case C.VM_TWO : num = 2; break; + case C.VM_THREE : num = 3; break; + case C.VM_FOUR : num = 4; break; + case C.VM_16 : num = 16; break; + default : break; + } + return num; +} + +DataElement.prototype.isBinaryNumber = function() { + return binaryVRs.indexOf(this.vr.type) != -1; +} + +DataElement.prototype.length = function(fields) { + //let fields = this.vr.getFields(this.value); + return fieldsLength(fields); +} + +DataElement.prototype.readBytes = function(stream) { + var oldEndian = stream.endian; + stream.setEndian(this.endian); + + var group = stream.read(C.TYPE_UINT16), + element = stream.read(C.TYPE_UINT16), + tag = tagFromNumbers(group, element); + + var length = null, vr = null, edata = elementDataByTag(tag.value), + vm = edata.vm; + + if (this.implicit) { + length = stream.read(C.TYPE_UINT32); + vr = edata.vr; + } else { + vr = stream.read(C.TYPE_ASCII, 2); + if (explicitVRList.indexOf(vr) != -1) { + stream.increment(2); + length = stream.read(C.TYPE_UINT32); + } else { + length = stream.read(C.TYPE_UINT16); + } + } + + this.vr = vrByType(vr); + this.tag = tag; + this.vm = vm; + //try { + if (this.isBinaryNumber() && length > this.vr.maxLength) { + var times = length / this.vr.maxLength, i = 0; + this.value = [];//console.log(times, length, this.vr.maxLength);return; + //try { + while (i++ < times) { + this.value.push(this.vr.read(stream, this.vr.maxLength)); + } + //} catch (e) { } + } else { + this.value = this.vr.read(stream, length, this.syntax); + } + //} catch (e) { console.log('error', vr, length); } + + stream.setEndian(oldEndian); +} + +DataElement.prototype.write = function(stream) { + var oldEndian = stream.endian; + stream.setEndian(this.endian); + + var fields = this.getFields(); + fields.forEach(function(field){ + field.write(stream); + }); + + stream.setEndian(oldEndian); +} + +DataElement.prototype.getFields = function() { + var fields = [new UInt16Field(this.tag.group()), new UInt16Field(this.tag.element())], + valueFields = this.vr.getFields(this.value, this.syntax), valueLength = fieldsLength(valueFields), vrType = this.vr.type; + + if (vrType == "SQ") { + valueLength = 0xffffffff; + } + + if (this.implicit) { + fields.push(new UInt32Field(valueLength)); + } else { + if (explicitVRList.indexOf(vrType) != -1) { + fields.push(new StringField(vrType), new ReservedField(2), new UInt32Field(valueLength)); + } else { + fields.push(new StringField(vrType), new UInt16Field(valueLength)); + } + } + + fields = fields.concat(valueFields); + return fields; +} + + diff --git a/Packages/dimse-service/server/Field.js b/Packages/dimse-service/server/Field.js new file mode 100755 index 000000000..c1e5a6b2a --- /dev/null +++ b/Packages/dimse-service/server/Field.js @@ -0,0 +1,128 @@ +Field = function(type, value) { + this.type = type; + this.value = value; +}; + +Field.prototype.length = function() { + return calcLength(this.type, this.value); +} + +Field.prototype.write = function(stream) { + stream.write(this.type, this.value); +} + +Field.prototype.isNumeric = function() { + return false; +} + +StringField = function(str) { + Field.call(this, C.TYPE_ASCII, typeof str == 'string' ? str : ""); +} +util.inherits(StringField, Field); + +FilledField = function(value, length) { + Field.call(this, C.TYPE_COMPOSITE, value); + this.fillLength = length; +} +util.inherits(FilledField, Field); + +FilledField.prototype.length = function() { + return this.fillLength; +} + +FilledField.prototype.write = function(stream) { + var len = this.value.length; + if (len < this.fillLength && len >= 0) { + if (len > 0) + stream.write(C.TYPE_ASCII, this.value); + var zeroLength = this.fillLength - len; + stream.write(C.TYPE_HEX, "20".repeat(zeroLength)); + } else if (len == this.fillLength) { + stream.write(C.TYPE_ASCII, this.value); + } else { + throw "Length mismatch"; + } +} + +HexField = function(hex) { + Field.call(this, C.TYPE_HEX, hex); +} +util.inherits(HexField, Field); + +ReservedField = function(length) { + length = length || 1; + Field.call(this, C.TYPE_HEX, "00".repeat(length)); +} +util.inherits(ReservedField, Field); + +UInt8Field = function(value) { + Field.call(this, C.TYPE_UINT8, value); +} +util.inherits(UInt8Field, Field); + +UInt8Field.prototype.isNumeric = function() { + return true; +} + +UInt16Field = function(value) { + Field.call(this, C.TYPE_UINT16, value); +} +util.inherits(UInt16Field, Field); + +UInt16Field.prototype.isNumeric = function() { + return true; +} + +UInt32Field = function(value) { + Field.call(this, C.TYPE_UINT32, value); +} +util.inherits(UInt32Field, Field); + +UInt32Field.prototype.isNumeric = function() { + return true; +} + +Int8Field = function(value) { + Field.call(this, C.TYPE_INT8, value); +} +util.inherits(Int8Field, Field); + +Int8Field.prototype.isNumeric = function() { + return true; +} + +Int16Field = function(value) { + Field.call(this, C.TYPE_INT16, value); +} +util.inherits(Int16Field, Field); + +Int16Field.prototype.isNumeric = function() { + return true; +} + +Int32Field = function(value) { + Field.call(this, C.TYPE_INT32, value); +} +util.inherits(Int32Field, Field); + +Int32Field.prototype.isNumeric = function() { + return true; +} + +FloatField = function(value) { + Field.call(this, C.TYPE_FLOAT, value); +} +util.inherits(FloatField, Field); + +FloatField.prototype.isNumeric = function() { + return true; +} + +DoubleField = function(value) { + Field.call(this, C.TYPE_DOUBLE, value); +} +util.inherits(DoubleField, Field); + +DoubleField.prototype.isNumeric = function() { + return true; +} \ No newline at end of file diff --git a/Packages/dimse-service/server/Message.js b/Packages/dimse-service/server/Message.js new file mode 100755 index 000000000..4d862c436 --- /dev/null +++ b/Packages/dimse-service/server/Message.js @@ -0,0 +1,444 @@ +DicomMessage = function(syntax) { + this.syntax = syntax ? syntax : null; + this.type = C.DATA_TYPE_COMMAND; + this.messageId = C.DEFAULT_MESSAGE_ID; + this.elementPairs = {}; +}; + +DicomMessage.prototype.isCommand = function() { + return this.type == C.DATA_TYPE_COMMAND; +} + +DicomMessage.prototype.setSyntax = function(syntax) { + this.syntax = syntax; + + for (var tag in this.elementPairs) { + this.elementPairs[tag].setSyntax(this.syntax); + } +} + +DicomMessage.prototype.setMessageId = function(id) { + this.messageId = id; +} + +DicomMessage.prototype.setReplyMessageId = function(id) { + this.replyMessageId = id; +} + +DicomMessage.prototype.command = function(cmds) { + cmds.unshift(this.newElement(0x00000800, this.dataSetPresent ? C.DATA_SET_PRESENT : C.DATE_SET_ABSENCE)); + cmds.unshift(this.newElement(0x00000700, this.priority)); + cmds.unshift(this.newElement(0x00000110, this.messageId)); + cmds.unshift(this.newElement(0x00000100, this.commandType)); + cmds.unshift(this.newElement(0x00000002, this.contextUID)); + + var length = 0; + cmds.forEach(function(cmd) { + length += cmd.length(cmd.getFields()); + }); + + cmds.unshift(this.newElement(0x00000000, length)); + return cmds; +} + +DicomMessage.prototype.response = function(cmds) { + cmds.unshift(this.newElement(0x00000800, this.dataSetPresent ? C.DATA_SET_PRESENT : C.DATE_SET_ABSENCE)); + cmds.unshift(this.newElement(0x00000120, this.replyMessageId)); + cmds.unshift(this.newElement(0x00000100, this.commandType)); + cmds.unshift(this.newElement(0x00000002, this.contextUID)); + + var length = 0; + cmds.forEach(function(cmd) { + length += cmd.length(cmd.getFields()); + }); + + cmds.unshift(this.newElement(0x00000000, length)); + return cmds; +} + +DicomMessage.prototype.setElements = function(pairs) { + var p = {}; + for (var tag in pairs) { + p[tag] = this.newElement(tag, pairs[tag]); + } + this.elementPairs = p; +} + +DicomMessage.prototype.newElement = function(tag, value) { + return elementByType(tag, value, this.syntax); +} + +DicomMessage.prototype.setElement = function(key, value) { + this.elementPairs[key] = elementByType(key, value); +} + +DicomMessage.prototype.setElementPairs = function(pairs) { + this.elementPairs = pairs; +} + +DicomMessage.prototype.setContextId = function(context) { + this.contextUID = context; +} + +DicomMessage.prototype.setPriority = function(pri) { + this.priority = pri; +} + +DicomMessage.prototype.setType = function(type) { + this.type = type; +} + +DicomMessage.prototype.setDataSetPresent = function(present) { + this.dataSetPresent = present == 0x0101 ? false : true; +} + +DicomMessage.prototype.haveData = function() { + return this.dataSetPresent; +} + +DicomMessage.prototype.tags = function() { + return Object.keys(this.elementPairs); +} + +DicomMessage.prototype.key = function(tag) { + return elementKeywordByTag(tag); +} + +DicomMessage.prototype.getValue = function(tag) { + return this.elementPairs[tag] ? this.elementPairs[tag].getValue() : null; +} + +DicomMessage.prototype.affectedSOPClassUID = function() { + return this.getValue(0x00000002); +} + +DicomMessage.prototype.getMessageId = function() { + return this.getValue(0x00000110); +} + +DicomMessage.prototype.getFields = function() { + var eles = []; + for (var tag in this.elementPairs) { + eles.push(this.elementPairs[tag]); + } + return eles; +} + +DicomMessage.prototype.length = function(elems) { + var len = 0; + elems.forEach(function(elem){ + len += elem.length(elem.getFields()); + }); + return len; +} + +DicomMessage.prototype.isResponse = function() { + return false; +} + +DicomMessage.prototype.is = function(type) { + return this.commandType == type; +} + +DicomMessage.prototype.write = function(stream) { + var fields = this.getFields(), o = this; + fields.forEach(function(field){ + field.setSyntax(o.syntax); + field.write(stream); + }); +} + +DicomMessage.prototype.printElements = function(pairs, indent) { + var typeName = ""; + for (var tag in pairs) { + var value = pairs[tag].getValue(); + typeName += (" ".repeat(indent)) + this.key(tag) + " : "; + if (value instanceof Array) { + var o = this; + value.forEach(function(p) { + if (typeof p == "object") { + typeName += "[\n" + o.printElements(p, indent + 2) + (" ".repeat(indent)) + "]"; + } else { + typeName += "[" + p + "]"; + } + }); + if (typeName[typeName.length-1] != "\n") { + typeName += "\n"; + } + } else { + typeName += value + "\n"; + } + } + return typeName; +} + +DicomMessage.prototype.toString = function() { + var typeName = ""; + if (!this.isCommand()) { + typeName = "DateSet Message"; + } else { + switch (this.commandType) { + case C.COMMAND_C_GET_RSP : typeName = "C-GET-RSP"; break; + case C.COMMAND_C_MOVE_RSP : typeName = "C-MOVE-RSP"; break; + case C.COMMAND_C_GET_RQ : typeName = "C-GET-RQ"; break; + case C.COMMAND_C_STORE_RQ : typeName = "C-STORE-RQ"; break; + case C.COMMAND_C_FIND_RSP : typeName = "C-FIND-RSP"; break; + case C.COMMAND_C_MOVE_RQ : typeName = "C-MOVE-RQ"; break; + case C.COMMAND_C_FIND_RQ : typeName = "C-FIND-RQ"; break; + case C.COMMAND_C_STORE_RSP : typeName = "C-STORE-RSP"; break; + } + } + typeName += " [\n"; + typeName += this.printElements(this.elementPairs, 0); + typeName += "]"; + return typeName; +} + +DicomMessage.prototype.walkObject = function(pairs) { + var obj = {}, o = this; + for (var tag in pairs) { + var v = pairs[tag].getValue(), u = v; + if (v instanceof Array) { + u = []; + v.forEach(function(a) { + if (typeof a == 'object') { + u.push(o.walkObject(a)); + } else u.push(a); + }); + } + obj[tag] = u; + } + + return obj; +} + +DicomMessage.prototype.toObject = function() { + return this.walkObject(this.elementPairs); +} + +readMessage = function(stream, type, syntax, options) { + var elements = [], pairs = {}, useSyntax = type == C.DATA_TYPE_COMMAND ? C.IMPLICIT_LITTLE_ENDIAN : syntax; + stream.reset(); + while (!stream.end()) { + var elem = new DataElement(); + if (options) { + elem.setOptions(options); + } + elem.setSyntax(useSyntax); + elem.readBytes(stream);//return; + pairs[elem.tag.value] = elem; + } + + var message = null; + if (type == C.DATA_TYPE_COMMAND) { + var cmdType = pairs[0x00000100].value; + + switch (cmdType) { + case 0x8020 : message = new CFindRSP(useSyntax); break; + case 0x8021 : message = new CMoveRSP(useSyntax); break; + case 0x8010 : message = new CGetRSP(useSyntax); break; + case 0x0001 : message = new CStoreRQ(useSyntax); break; + case 0x0020 : message = new CFindRQ(useSyntax); break; + default : throw "Unrecognized command type " + cmdType.toString(16); break; + } + + message.setElementPairs(pairs); + message.setDataSetPresent(message.getValue(0x00000800)); + message.setContextId(message.getValue(0x00000002)); + if (!message.isResponse()) { + message.setMessageId(message.getValue(0x00000110)); + } else { + message.setReplyMessageId(message.getValue(0x00000120)); + } + } else if (type == C.DATA_TYPE_DATA) { + message = new DataSetMessage(useSyntax); + message.setElementPairs(pairs); + } else { + throw "Unrecognized message type"; + } + return message; +} + +DataSetMessage = function(syntax){ + DicomMessage.call(this, syntax); + this.type = C.DATA_TYPE_DATA; +}; +util.inherits(DataSetMessage, DicomMessage); + +DataSetMessage.prototype.is = function(type) { + return false; +} + +CommandMessage = function(syntax) { + DicomMessage.call(this, syntax); + this.type = C.DATA_TYPE_COMMAND; + this.priority = C.PRIORITY_MEDIUM; + this.dataSetPresent = true; +} +util.inherits(CommandMessage, DicomMessage); + +CommandMessage.prototype.getFields = function() { + return this.command(CommandMessage.super_.prototype.getFields.call(this)); +} + +CommandResponse = function(syntax) { + DicomMessage.call(this, syntax); + this.type = C.DATA_TYPE_COMMAND; + this.dataSetPresent = true; +}; +util.inherits(CommandResponse, DicomMessage); + +CommandResponse.prototype.isResponse = function() { + return true; +} + +CommandResponse.prototype.respondedTo = function() { + return this.getValue(0x00000120); +} + +CommandResponse.prototype.isFinal = function() { + return this.success() || this.failure() || this.cancel(); +} + +CommandResponse.prototype.warning = function() { + var status = this.getStatus(); + return (status == 0x0001) || (status >> 12 == 0xb); +} + +CommandResponse.prototype.success = function() { + return this.getStatus() == 0x0000; +} + +CommandResponse.prototype.failure = function() { + var status = this.getStatus(); + return (status >> 12 == 0xa) || (status >> 12 == 0xc) || (status >> 8 == 0x1) +} + +CommandResponse.prototype.cancel = function() { + return this.getStatus() == C.STATUS_CANCEL; +} + +CommandResponse.prototype.pending = function() { + var status = this.getStatus(); + return (status == 0xff00) || (status == 0xff01); +} + +CommandResponse.prototype.getStatus = function() { + return this.getValue(0x00000900); +} + +CommandResponse.prototype.setStatus = function(status) { + this.setElement(0x00000900, status); +} + +// following four methods only available to C-GET-RSP and C-MOVE-RSP +CommandResponse.prototype.getNumOfRemainingSubOperations = function() { + return this.getValue(0x00001020); +} + +CommandResponse.prototype.getNumOfCompletedSubOperations = function() { + return this.getValue(0x00001021); +} + +CommandResponse.prototype.getNumOfFailedSubOperations = function() { + return this.getValue(0x00001022); +} + +CommandResponse.prototype.getNumOfWarningSubOperations = function() { + return this.getValue(0x00001023); +} +//end + +CommandResponse.prototype.getFields = function() { + return this.response(CommandResponse.super_.prototype.getFields.call(this)); +} + +CFindRSP = function(syntax) { + CommandResponse.call(this, syntax); + this.commandType = 0x8020; +}; +util.inherits(CFindRSP, CommandResponse); + +CGetRSP = function(syntax) { + CommandResponse.call(this, syntax); + this.commandType = 0x8010; +}; +util.inherits(CGetRSP, CommandResponse); + +CMoveRSP = function(syntax) { + CommandResponse.call(this, syntax); + this.commandType = 0x8021; +}; +util.inherits(CMoveRSP, CommandResponse); + +CFindRQ = function(syntax) { + CommandMessage.call(this, syntax); + this.commandType = 0x20; + this.contextUID = C.SOP_STUDY_ROOT_FIND; +}; +util.inherits(CFindRQ, CommandMessage); + +CMoveRQ = function(syntax, destination) { + CommandMessage.call(this, syntax); + this.commandType = 0x21; + this.contextUID = C.SOP_STUDY_ROOT_MOVE; + this.setDestination(destination || ""); +}; +util.inherits(CMoveRQ, CommandMessage); + +CMoveRQ.prototype.setStore = function(cstr) { + this.store = cstr; +} + +CMoveRQ.prototype.setDestination = function(dest) { + this.setElements({ + 0x00000600 : dest + }); +} + +CGetRQ = function(syntax) { + CommandMessage.call(this, syntax); + this.commandType = 0x10; + this.contextUID = C.SOP_STUDY_ROOT_GET; + this.store = null; +}; +util.inherits(CGetRQ, CommandMessage); + +CGetRQ.prototype.setStore = function(cstr) { + this.store = cstr; +} + +CStoreRQ = function(syntax) { + CommandMessage.call(this, syntax); + this.commandType = 0x01; + this.contextUID = C.SOP_STUDY_ROOT_GET; +}; +util.inherits(CStoreRQ, CommandMessage); + +CStoreRQ.prototype.getOriginAETitle = function() { + return this.getValue(0x00001030); +} + +CStoreRQ.prototype.getMoveMessageId = function() { + return this.getValue(0x00001031); +} + +CStoreRQ.prototype.getSOPInstanceUID = function() { + return this.getValue(0x00001000); +} + +CStoreRSP = function(syntax) { + CommandResponse.call(this, syntax); + this.commandType = 0x8001; + this.contextUID = C.SOP_STUDY_ROOT_GET; + this.dataSetPresent = false; +}; +util.inherits(CStoreRSP, CommandResponse); + +CStoreRSP.prototype.setAffectedSOPInstanceUID = function(uid) { + this.setElement(0x00001000, uid); +} + +CStoreRSP.prototype.getAffectedSOPInstanceUID = function(uid) { + return this.getValue(0x00001000); +} \ No newline at end of file diff --git a/Packages/dimse-service/server/PDU.js b/Packages/dimse-service/server/PDU.js new file mode 100755 index 000000000..32cd9e42a --- /dev/null +++ b/Packages/dimse-service/server/PDU.js @@ -0,0 +1,660 @@ +PDU = function() { + this.fields = []; + this.lengthBytes = 4; +} + +PDU.prototype.length = function(fields) { + var len = 0; + fields.forEach(function(f) { + len += !f.getFields ? f.length() : f.length(f.getFields()); + }); + return len; +} + +PDU.prototype.is = function(type) { + return this.type == type; +} + +PDU.prototype.getFields = function(fields) { + var len = this.lengthField(fields); + fields.unshift(len); + if (this.type !== null) { + fields.unshift(new ReservedField()); + fields.unshift(new HexField(this.type)); + } + + return fields; +} + +PDU.prototype.lengthField = function(fields) { + if (this.lengthBytes == 4) { + return new UInt32Field(this.length(fields)); + } else if (this.lengthBytes == 2) { + return new UInt16Field(this.length(fields)); + } else { + throw "Invalid length bytes"; + } +} + +PDU.prototype.read = function(stream) { + stream.read(C.TYPE_HEX, 1); + var length = stream.read(C.TYPE_UINT32); + this.readBytes(stream, length); +} + +PDU.prototype.load = function(stream) { + return pduByStream(stream); +} + +PDU.prototype.loadPDV = function(stream, length) { + if (stream.end()) return false; + var bytesRead = 0, pdvs = []; + while (bytesRead < length) { + var plength = stream.read(C.TYPE_UINT32), + pdv = new PresentationDataValueItem(); + pdv.readBytes(stream, plength); + bytesRead += plength + 4; + + pdvs.push(pdv); + } + + return pdvs; +} + +PDU.prototype.loadDicomMessage = function(stream, isCommand, isLast) { + var message = readMessage(stream, isCommand, isLast); + return message; +} + +PDU.prototype.stream = function() { + var stream = new WriteStream(), + fields = this.getFields(); + + // writing to buffer + fields.forEach(function(field){ + field.write(stream); + }); + + return stream; +} + +PDU.prototype.buffer = function() { + return this.stream().buffer(); +} + +var interpretCommand = function(stream, isLast) { + parseDicomMessage(stream); +} + +mergePDVs = function(pdvs) { + var merges = [], count = pdvs.length, i = 0; + while (i < count) {console.log(pdvs[i].isLast, pdvs[i].type); + if (!pdvs[i].isLast) { + var j = i; + while (!pdvs[j++].isLast && j < count) { + pdvs[i].messageStream.concat(pdvs[j].messageStream); + } + merges.push(pdvs[i]); + i = j; + } else { + merges.push(pdvs[i++]); + } + } + return merges; +} + +pduByStream = function(stream) { + if (stream.end()) return null; + + var pduType = stream.read(C.TYPE_HEX, 1), typeNum = parseInt(pduType, 16), pdu = null; + //console.log("RECEIVED PDU-TYPE ", pduType); + switch (typeNum) { + case 0x01 : pdu = new AssociateRQ(); break; + case 0x02 : pdu = new AssociateAC(); break; + case 0x04 : pdu = new PDataTF(); break; + case 0x06 : pdu = new ReleaseRP(); break; + case 0x07 : pdu = new AssociateAbort(); break; + case 0x10 : pdu = new ApplicationContextItem(); break; + case 0x20 : pdu = new PresentationContextItem(); break; + case 0x21 : pdu = new PresentationContextItemAC(); break; + case 0x30 : pdu = new AbstractSyntaxItem(); break; + case 0x40 : pdu = new TransferSyntaxItem(); break; + case 0x50 : pdu = new UserInformationItem(); break; + case 0x51 : pdu = new MaximumLengthItem(); break; + case 0x52 : pdu = new ImplementationClassUIDItem(); break; + case 0x55 : pdu = new ImplementationVersionNameItem(); break; + default : throw "Unrecoginized pdu type " + pduType; break; + } + if (pdu) + pdu.read(stream); + + return pdu; +} + +var nextItemIs = function(stream, pduType) { + if (stream.end()) return false; + + var nextType = stream.read(C.TYPE_HEX, 1); + stream.increment(-1); + return pduType == nextType; +} + +AssociateRQ = function() { + PDU.call(this); + this.type = C.ITEM_TYPE_PDU_ASSOCIATE_RQ; + this.protocolVersion = 1; +} + +util.inherits(AssociateRQ, PDU); + +AssociateRQ.prototype.setProtocolVersion = function(version) { + this.protocolVersion = version; +} + +AssociateRQ.prototype.setCalledAETitle = function(title) { + this.calledAETitle = title; +} + +AssociateRQ.prototype.setCallingAETitle = function(title) { + this.callingAETitle = title; +} + +AssociateRQ.prototype.setApplicationContextItem = function(item) { + this.applicationContextItem = item; +} + +AssociateRQ.prototype.setPresentationContextItems = function(items) { + this.presentationContextItems = items; +} + +AssociateRQ.prototype.setUserInformationItem = function(item) { + this.userInformationItem = item; +} + +AssociateRQ.prototype.allAccepted = function() { + for (var i in this.presentationContextItems) { + var item = this.presentationContextItems[i]; + if (!item.accepted()) return false; + } + return true; +} + +AssociateRQ.prototype.getFields = function() { + var f = [ + new UInt16Field(this.protocolVersion), new ReservedField(2), + new FilledField(this.calledAETitle, 16), new FilledField(this.callingAETitle, 16), + new ReservedField(32), this.applicationContextItem + ]; + this.presentationContextItems.forEach(function(context){ + f.push(context); + }); + f.push(this.userInformationItem); + return AssociateRQ.super_.prototype.getFields.call(this, f); +} + +AssociateRQ.prototype.readBytes = function(stream, length) { + this.type = C.ITEM_TYPE_PDU_ASSOCIATE_RQ; + var version = stream.read(C.TYPE_UINT16); + this.setProtocolVersion(version); + stream.increment(2); + var calledAE = stream.read(C.TYPE_ASCII, 16); + this.setCalledAETitle(calledAE); + var callingAE = stream.read(C.TYPE_ASCII, 16); + this.setCallingAETitle(callingAE); + stream.increment(32); + + var appContext = this.load(stream); + this.setApplicationContextItem(appContext); + + var presContexts = []; + do { + presContexts.push(this.load(stream)); + } while (nextItemIs(stream, C.ITEM_TYPE_PRESENTATION_CONTEXT_AC)); + this.setPresentationContextItems(presContexts); + + var userItem = this.load(stream); + this.setUserInformationItem(userItem); +} + +AssociateRQ.prototype.buffer = function() { + return AssociateRQ.super_.prototype.buffer.call(this); +} + +AssociateAC = function() { + AssociateRQ.call(this); +}; + +util.inherits(AssociateAC, AssociateRQ); + +AssociateAC.prototype.readBytes = function(stream, length) { + this.type = C.ITEM_TYPE_PDU_ASSOCIATE_AC; + var version = stream.read(C.TYPE_UINT16); + this.setProtocolVersion(version); + stream.increment(66); + + var appContext = this.load(stream); + this.setApplicationContextItem(appContext); + + var presContexts = []; + do { + presContexts.push(this.load(stream)); + } while (nextItemIs(stream, C.ITEM_TYPE_PRESENTATION_CONTEXT_AC)); + this.setPresentationContextItems(presContexts); + + var userItem = this.load(stream); + this.setUserInformationItem(userItem); +} + +AssociateAbort = function() { + this.type = C.ITEM_TYPE_PDU_AABORT; + this.source = 1; + this.reason = 0; + PDU.call(this); +} + +util.inherits(AssociateAbort, PDU); + +AssociateAbort.prototype.setSource = function(src) { + this.source = src; +} + +AssociateAbort.prototype.setReason = function(reason) { + this.reason = reason; +} + +AssociateAbort.prototype.readBytes = function(stream, length) { + stream.increment(2); + + var source = stream.read(C.TYPE_UINT8); + this.setSource(source); + + var reason = stream.read(C.TYPE_UINT8); + this.setReason(reason); +} + +AssociateAbort.prototype.getFields = function() { + return AssociateAbort.super_.prototype.getFields.call(this, [ + new ReservedField(), new ReservedField(), + new UInt8Field(this.source), new UInt8Field(this.reason) + ]); +} + +ReleaseRQ = function() { + this.type = C.ITEM_TYPE_PDU_RELEASE_RQ; + PDU.call(this); +}; + +util.inherits(ReleaseRQ, PDU); + +ReleaseRQ.prototype.getFields = function() { + return ReleaseRQ.super_.prototype.getFields.call(this, [new ReservedField(4)]); +}; + +ReleaseRP = function() { + this.type = C.ITEM_TYPE_PDU_RELEASE_RP; + PDU.call(this); +} + +util.inherits(ReleaseRP, PDU); + +ReleaseRP.prototype.readBytes = function(stream, length) { + stream.increment(4); +}; + +ReleaseRP.prototype.getFields = function() { + return ReleaseRP.super_.prototype.getFields.call(this, [new ReservedField(4)]); +} + +PDataTF = function() { + this.type = C.ITEM_TYPE_PDU_PDATA; + this.presentationDataValueItems = []; + PDU.call(this); +} +util.inherits(PDataTF, PDU); + +PDataTF.prototype.setPresentationDataValueItems = function(items) { + this.presentationDataValueItems = items ? items : []; +} + +PDataTF.prototype.getFields = function() { + var fields = this.presentationDataValueItems; + + return PDataTF.super_.prototype.getFields.call(this, fields); +} + +PDataTF.prototype.readBytes = function(stream, length) { + var pdvs = this.loadPDV(stream, length); + //let merges = mergePDVs(pdvs); + + this.setPresentationDataValueItems(pdvs); +} + +Item = function() { + PDU.call(this); + this.lengthBytes = 2; +}; +util.inherits(Item, PDU); + +Item.prototype.read = function(stream) { + stream.read(C.TYPE_HEX, 1); + var length = stream.read(C.TYPE_UINT16); + this.readBytes(stream, length); +} + +Item.prototype.write = function(stream) { + stream.concat(this.stream()); +} + +Item.prototype.getFields = function(fields) { + return Item.super_.prototype.getFields.call(this, fields); +} + +PresentationDataValueItem = function(context) { + this.type = null; + this.isLast = true; + this.dataFragment = null; + this.contextId = context; + this.messageStream = null; + Item.call(this); + + this.lengthBytes = 4; +}; +util.inherits(PresentationDataValueItem, Item); + +PresentationDataValueItem.prototype.setContextId = function(id) { + this.contextId = id; +} + +PresentationDataValueItem.prototype.setFlag = function(flag) { + this.flag = flag; +} + +PresentationDataValueItem.prototype.setPresentationDataValue = function(pdv) { + this.pdv = pdv; +} + +PresentationDataValueItem.prototype.setMessage = function(msg) { + this.dataFragment = msg; +} + +PresentationDataValueItem.prototype.getMessage = function() { + return this.dataFragment; +} + +PresentationDataValueItem.prototype.readBytes = function(stream, length) { + this.contextId = stream.read(C.TYPE_UINT8); + var messageHeader = stream.read(C.TYPE_UINT8); + this.isLast = messageHeader >> 1; + this.type = messageHeader & 1 ? C.DATA_TYPE_COMMAND : C.DATA_TYPE_DATA; + + //load dicom messages + this.messageStream = stream.more(length - 2); +} + +PresentationDataValueItem.prototype.getFields = function() { + var fields = [new UInt8Field(this.contextId)]; + //define header + var messageHeader = (1 & this.dataFragment.type) | ((this.isLast ? 1 : 0) << 1); + fields.push(new UInt8Field(messageHeader)); + + fields.push(this.dataFragment); +/*var stream = new WriteStream();this.dataFragment.write(stream); +//var f = this.dataFragment.getFields(); +//var wr = new WriteStream();f[0].setSyntax(this.dataFragment.syntax);f[0].write(wr); +var rst = stream.toReadBuffer(); +rst.setEndian(C.LITTLE_ENDIAN); + var group = rst.read(C.TYPE_UINT16), + element = rst.read(C.TYPE_UINT16), + tag = tagFromNumbers(group, element); + + console.log(tag.toString(), rst.read(C.TYPE_UINT32));*/ + return PresentationDataValueItem.super_.prototype.getFields.call(this, fields); +} + +ApplicationContextItem = function() { + this.type = C.ITEM_TYPE_APPLICATION_CONTEXT; + this.applicationContextName = C.APPLICATION_CONTEXT_NAME; + Item.call(this); +} +util.inherits(ApplicationContextItem, Item); + +ApplicationContextItem.prototype.setApplicationContextName = function(name) { + this.applicationContextName = name; +} + +ApplicationContextItem.prototype.getFields = function() { + return ApplicationContextItem.super_.prototype.getFields.call(this, [new StringField(this.applicationContextName)]); +} + +ApplicationContextItem.prototype.readBytes = function(stream, length) { + var appContext = stream.read(C.TYPE_ASCII, length); + this.setApplicationContextName(appContext); +} + +ApplicationContextItem.prototype.buffer = function() { + return ApplicationContextItem.super_.prototype.buffer.call(this); +} + +PresentationContextItem = function() { + this.type = C.ITEM_TYPE_PRESENTATION_CONTEXT; + Item.call(this); +}; +util.inherits(PresentationContextItem, Item); + +PresentationContextItem.prototype.setPresentationContextID = function(id) { + this.presentationContextID = id; +} + +PresentationContextItem.prototype.setAbstractSyntaxItem = function(item) { + this.abstractSyntaxItem = item; +} + +PresentationContextItem.prototype.setTransferSyntaxesItems = function(items) { + this.transferSyntaxesItems = items; +} + +PresentationContextItem.prototype.setResultReason = function(reason) { + this.resultReason = reason; +} + +PresentationContextItem.prototype.accepted = function() { + return this.resultReason == 0; +} + +PresentationContextItem.prototype.readBytes = function(stream, length) { + var contextId = stream.read(C.TYPE_UINT8); + this.setPresentationContextID(contextId); + stream.increment(1); + stream.increment(1); + stream.increment(1); + + var abstractItem = this.load(stream); + this.setAbstractSyntaxItem(abstractItem); + + var transContexts = []; + do { + transContexts.push(this.load(stream)); + } while (nextItemIs(stream, C.ITEM_TYPE_TRANSFER_CONTEXT)); + this.setTransferSyntaxesItems(transContexts); +} + +PresentationContextItem.prototype.getFields = function() { + var f = [ + new UInt8Field(this.presentationContextID), + new ReservedField(), new ReservedField(), new ReservedField(), this.abstractSyntaxItem + ]; + this.transferSyntaxesItems.forEach(function(syntaxItem){ + f.push(syntaxItem); + }); + return PresentationContextItem.super_.prototype.getFields.call(this, f); +} + +PresentationContextItem.prototype.buffer = function() { + return PresentationContextItem.super_.prototype.buffer.call(this); +} + +PresentationContextItemAC = function() { + this.type = C.ITEM_TYPE_PRESENTATION_CONTEXT_AC; + Item.call(this); +}; +util.inherits(PresentationContextItemAC, PresentationContextItem); + +PresentationContextItemAC.prototype.readBytes = function(stream, length) { + var contextId = stream.read(C.TYPE_UINT8); + this.setPresentationContextID(contextId); + stream.increment(1); + var resultReason = stream.read(C.TYPE_UINT8); + this.setResultReason(resultReason); + stream.increment(1); + + var transItem = this.load(stream); + this.setTransferSyntaxesItems([transItem]); +} + +AbstractSyntaxItem = function() { + this.type = C.ITEM_TYPE_ABSTRACT_CONTEXT; + Item.call(this); +} +util.inherits(AbstractSyntaxItem, Item); + +AbstractSyntaxItem.prototype.setAbstractSyntaxName = function(name) { + this.abstractSyntaxName = name; +} + +AbstractSyntaxItem.prototype.getFields = function() { + return AbstractSyntaxItem.super_.prototype.getFields.call(this, [new StringField(this.abstractSyntaxName)]); +} + +AbstractSyntaxItem.prototype.buffer = function() { + return AbstractSyntaxItem.super_.prototype.buffer.call(this); +} + +AbstractSyntaxItem.prototype.readBytes = function(stream, length) { + var name = stream.read(C.TYPE_ASCII, length); + this.setAbstractSyntaxName(name); +} + +TransferSyntaxItem = function() { + this.type = C.ITEM_TYPE_TRANSFER_CONTEXT; + Item.call(this); +}; +util.inherits(TransferSyntaxItem, Item); + +TransferSyntaxItem.prototype.setTransferSyntaxName = function(name) { + this.transferSyntaxName = name; +} + +TransferSyntaxItem.prototype.readBytes = function(stream, length) { + var transfer = stream.read(C.TYPE_ASCII, length); + this.setTransferSyntaxName(transfer); +} + +TransferSyntaxItem.prototype.getFields = function() { + return TransferSyntaxItem.super_.prototype.getFields.call(this, [new StringField(this.transferSyntaxName)]); +} + +TransferSyntaxItem.prototype.buffer = function() { + return TransferSyntaxItem.super_.prototype.buffer.call(this); +} + +UserInformationItem = function() { + this.type = C.ITEM_TYPE_USER_INFORMATION; + Item.call(this); +}; +util.inherits(UserInformationItem, Item); + +UserInformationItem.prototype.setUserDataItems = function(items) { + this.userDataItems = items; +} + +UserInformationItem.prototype.readBytes = function(stream, length) { + var items = [], pdu = this.load(stream); + + do { + items.push(pdu); + } while (pdu = this.load(stream)); + this.setUserDataItems(items); +} + +UserInformationItem.prototype.getFields = function() { + var f = []; + this.userDataItems.forEach(function(userData){ + f.push(userData); + }); + return UserInformationItem.super_.prototype.getFields.call(this, f); +} + +UserInformationItem.prototype.buffer = function() { + return UserInformationItem.super_.prototype.buffer.call(this); +} + +ImplementationClassUIDItem = function() { + this.type = C.ITEM_TYPE_IMPLEMENTATION_UID; + Item.call(this); +} +util.inherits(ImplementationClassUIDItem, Item); + +ImplementationClassUIDItem.prototype.setImplementationClassUID = function(id) { + this.implementationClassUID = id; +} + +ImplementationClassUIDItem.prototype.readBytes = function(stream, length) { + var uid = stream.read(C.TYPE_ASCII, length); + this.setImplementationClassUID(uid); +} + +ImplementationClassUIDItem.prototype.getFields = function() { + return ImplementationClassUIDItem.super_.prototype.getFields.call(this, [new StringField(this.implementationClassUID)]); +} + +ImplementationClassUIDItem.prototype.buffer = function() { + return ImplementationClassUIDItem.super_.prototype.buffer.call(this); +} + +ImplementationVersionNameItem = function() { + this.type = C.ITEM_TYPE_IMPLEMENTATION_VERSION; + Item.call(this); +} +util.inherits(ImplementationVersionNameItem, Item); + +ImplementationVersionNameItem.prototype.setImplementationVersionName = function(name) { + this.implementationVersionName = name; +} + +ImplementationVersionNameItem.prototype.readBytes = function(stream, length) { + var name = stream.read(C.TYPE_ASCII, length); + this.setImplementationVersionName(name); +} + +ImplementationVersionNameItem.prototype.getFields = function() { + return ImplementationVersionNameItem.super_.prototype.getFields.call(this, [new StringField(this.implementationVersionName)]); +} + +ImplementationVersionNameItem.prototype.buffer = function() { + return ImplementationVersionNameItem.super_.prototype.buffer.call(this); +} + +MaximumLengthItem = function() { + this.type = C.ITEM_TYPE_MAXIMUM_LENGTH; + this.maximumLengthReceived = 32768; + Item.call(this); +} +util.inherits(MaximumLengthItem, Item); + +MaximumLengthItem.prototype.setMaximumLengthReceived = function(length) { + this.maximumLengthReceived = length; +} + +MaximumLengthItem.prototype.readBytes = function(stream, length) { + var l = stream.read(C.TYPE_UINT32); + this.setMaximumLengthReceived(l); +} + +MaximumLengthItem.prototype.getFields = function() { + return MaximumLengthItem.super_.prototype.getFields.call(this, [new UInt32Field(this.maximumLengthReceived)]); +} + +MaximumLengthItem.prototype.buffer = function() { + return MaximumLengthItem.super_.prototype.buffer.call(this); +} + diff --git a/Packages/dimse-service/server/RWStream.js b/Packages/dimse-service/server/RWStream.js new file mode 100755 index 000000000..8c8d4e37a --- /dev/null +++ b/Packages/dimse-service/server/RWStream.js @@ -0,0 +1,229 @@ +var isString = function(type) { + if (type == C.TYPE_ASCII || type == C.TYPE_HEX) { + return true; + } else return false; +}; + +calcLength = function(type, value) { + var size = NaN; + switch (type) { + case C.TYPE_HEX : size = Buffer.byteLength(value, 'hex'); break; + case C.TYPE_ASCII : size = Buffer.byteLength(value, 'ascii'); break; + case C.TYPE_UINT8 : size = 1; break; + case C.TYPE_UINT16 : size = 2; break; + case C.TYPE_UINT32 : size = 4; break; + case C.TYPE_FLOAT : size = 4; break; + case C.TYPE_DOUBLE : size = 8; break; + case C.TYPE_INT8 : size = 1; break; + case C.TYPE_INT16 : size = 2; break; + case C.TYPE_INT32 : size = 4; break; + default :break; + } + return size; +} + +var RWStream = function() { + this.endian = C.BIG_ENDIAN; +}; + +RWStream.prototype.setEndian = function(endian) { + this.endian = endian; +} + +RWStream.prototype.getEncoding = function(type) { + return RWStream.encodings[type]; +} + +RWStream.prototype.getWriteType = function(type) { + return RWStream.writes[this.endian][type]; +} + +RWStream.prototype.getReadType = function(type) { + return RWStream.reads[this.endian][type]; +} + +WriteStream = function() { + RWStream.call(this); + this.defaultBufferSize = 512; //512 bytes + this.rawBuffer = new Buffer(this.defaultBufferSize); + this.offset = 0; + this.contentSize = 0; +} + +util.inherits(WriteStream, RWStream); + +WriteStream.prototype.increment = function(add) { + this.offset += add; + if (this.offset > this.contentSize) { + this.contentSize = this.offset; + } +} + +WriteStream.prototype.size = function() { + return this.contentSize; +} + +WriteStream.prototype.skip = function(amount) { + this.increment(amount); +} + +WriteStream.prototype.checkSize = function(length) { + if (this.offset + length > this.rawBuffer.length) { + // we need more size, copying old one to new buffer + var oldLength = this.rawBuffer.length, + newBuffer = new Buffer(oldLength + length + (oldLength / 2)); + this.rawBuffer.copy(newBuffer, 0, 0, this.contentSize); + this.rawBuffer = newBuffer; + } +} + +WriteStream.prototype.writeToBuffer = function(type, value, length) { + if (value === "" || value === null) return; + + this.checkSize(length); + this.rawBuffer[this.getWriteType(type)](value, this.offset); + this.increment(length); +} + +WriteStream.prototype.write = function(type, value) { + if (isString(type)) { + this.writeString(value, type); + } else { + this.writeToBuffer(type, value, calcLength(type)); + } +} + +WriteStream.prototype.writeString = function(string, type) { + var encoding = this.getEncoding(type), length = Buffer.byteLength(string, encoding); + this.rawBuffer.write(string, this.offset, length, encoding); + this.increment(length); +} + +WriteStream.prototype.buffer = function() { + return this.rawBuffer.slice(0, this.contentSize); +} + +WriteStream.prototype.toReadBuffer = function() { + return new ReadStream(this.buffer()); +} + +WriteStream.prototype.concat = function(newStream) { + var newSize = this.size() + newStream.size(); + this.rawBuffer = Buffer.concat([this.buffer(), newStream.buffer()], newSize); + this.contentSize = newSize; + this.offset = newSize; +} + +ReadStream = function(buffer) { + RWStream.call(this); + this.rawBuffer = buffer; + this.offset = 0; +}; + +util.inherits(ReadStream, RWStream); + +ReadStream.prototype.size = function() { + return this.rawBuffer.length; +} + +ReadStream.prototype.increment = function(add) { + this.offset += add; +} + +ReadStream.prototype.more = function(length) { + var newBuf = this.rawBuffer.slice(this.offset, this.offset + length); + this.increment(length); + return new ReadStream(newBuf); +} + +ReadStream.prototype.reset = function() { + this.offset = 0; + return this; +} + +ReadStream.prototype.end = function() { + return this.offset >= this.size(); +} + +ReadStream.prototype.readFromBuffer = function(type, length) { + //this.checkSize(length); + //if (this.offset + length > this.rawBuffer.length) throw ("out of bound " + this.offset + "," + length + "," + this.rawBuffer.length); + var value = this.rawBuffer[this.getReadType(type)](this.offset); + this.increment(length); + return value; +} + +ReadStream.prototype.read = function(type, length) { + var value = null; + if (isString(type)) { + value = this.readString(length, type); + } else { + value = this.readFromBuffer(type, calcLength(type)); + } + + return value; +} + +ReadStream.prototype.readString = function(length, type) { + var encoding = this.getEncoding(type), + str = this.rawBuffer.toString(encoding, this.offset, this.offset + length); + this.increment(length); + return str; +} + +ReadStream.prototype.buffer = function() { + return this.rawBuffer; +} + +ReadStream.prototype.concat = function(newStream) { + var newSize = this.size() + newStream.size(); + this.rawBuffer = Buffer.concat([this.buffer(), newStream.buffer()], newSize); + this.contentSize = newSize; + this.offset = newSize; +} + +RWStream.writes = {}; +RWStream.writes[C.BIG_ENDIAN] = {}; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_UINT8] = "writeUInt8"; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_UINT16] = "writeUInt16BE"; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_UINT32] = "writeUInt32BE"; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_INT8] = "writeInt8"; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_INT16] = "writeInt16BE"; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_INT32] = "writeInt32BE"; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_FLOAT] = "writeFloatBE"; +RWStream.writes[C.BIG_ENDIAN][C.TYPE_DOUBLE] = "writeDoubleBE"; + +RWStream.writes[C.LITTLE_ENDIAN] = {}; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_UINT8] = "writeUInt8"; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_UINT16] = "writeUInt16LE"; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_UINT32] = "writeUInt32LE"; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_INT8] = "writeInt8"; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_INT16] = "writeInt16LE"; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_INT32] = "writeInt32LE"; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_FLOAT] = "writeFloatLE"; +RWStream.writes[C.LITTLE_ENDIAN][C.TYPE_DOUBLE] = "writeDoubleLE"; + +RWStream.reads = {}; +RWStream.reads[C.BIG_ENDIAN] = {}; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_UINT8] = "readUInt8"; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_UINT16] = "readUInt16BE"; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_UINT32] = "readUInt32BE"; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_INT8] = "readInt8"; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_INT16] = "readInt16BE"; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_INT32] = "readInt32BE"; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_FLOAT] = "readFloatBE"; +RWStream.reads[C.BIG_ENDIAN][C.TYPE_DOUBLE] = "readDoubleBE"; + +RWStream.reads[C.LITTLE_ENDIAN] = {}; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_UINT8] = "readUInt8"; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_UINT16] = "readUInt16LE"; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_UINT32] = "readUInt32LE"; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_INT8] = "readInt8"; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_INT16] = "readInt16LE"; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_INT32] = "readInt32LE"; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_FLOAT] = "readFloatLE"; +RWStream.reads[C.LITTLE_ENDIAN][C.TYPE_DOUBLE] = "readDoubleLE"; + +RWStream.encodings = {}; +RWStream.encodings[C.TYPE_HEX] = "hex"; +RWStream.encodings[C.TYPE_ASCII] = "ascii"; \ No newline at end of file diff --git a/Packages/dimse-service/server/constants.js b/Packages/dimse-service/server/constants.js new file mode 100755 index 000000000..9fbba80e3 --- /dev/null +++ b/Packages/dimse-service/server/constants.js @@ -0,0 +1,98 @@ +C = { + IMPLEM_UID : "1.2.840.0.1.3680045.8.641", + IMPLEM_VERSION : "OHIF-DCM-0.1", + APPLICATION_CONTEXT_NAME : "1.2.840.10008.3.1.1.1", + PROTOCOL_VERSION : "0001", + ITEM_TYPE_RESERVED : "00", + ITEM_TYPE_APPLICATION_CONTEXT : "10", + ITEM_TYPE_PDU_ASSOCIATE_RQ : "01", + ITEM_TYPE_PDU_ASSOCIATE_AC : "02", + ITEM_TYPE_PDU_PDATA : "04", + ITEM_TYPE_PDU_RELEASE_RQ : "05", + ITEM_TYPE_PDU_RELEASE_RP : "06", + ITEM_TYPE_PDU_AABORT : "07", + ITEM_TYPE_PRESENTATION_CONTEXT : "20", + ITEM_TYPE_PRESENTATION_CONTEXT_AC : "21", + ITEM_TYPE_ABSTRACT_CONTEXT : "30", + ITEM_TYPE_TRANSFER_CONTEXT : "40", + ITEM_TYPE_USER_INFORMATION : "50", + ITEM_TYPE_MAXIMUM_LENGTH : "51", + ITEM_TYPE_IMPLEMENTATION_UID : "52", + ITEM_TYPE_IMPLEMENTATION_VERSION : "55", + IMPLICIT_LITTLE_ENDIAN : "1.2.840.10008.1.2", + EXPLICIT_LITTLE_ENDIAN : "1.2.840.10008.1.2.1", + EXPLICIT_BIG_ENDIAN : "1.2.840.10008.1.2.2", + SOP_PATIENT_ROOT_FIND : "1.2.840.10008.5.1.4.1.2.1.1", + SOP_PATIENT_ROOT_MOVE : "1.2.840.10008.5.1.4.1.2.1.2", + SOP_PATIENT_ROOT_GET : "1.2.840.10008.5.1.4.1.2.1.3", + SOP_STUDY_ROOT_FIND : "1.2.840.10008.5.1.4.1.2.2.1", + SOP_STUDY_ROOT_MOVE : "1.2.840.10008.5.1.4.1.2.2.2", + SOP_STUDY_ROOT_GET : "1.2.840.10008.5.1.4.1.2.2.3", + SOP_VERIFICATION : "1.2.840.10008.1.1", + SOP_HANGING_PROTOCOL_FIND : "1.2.840.10008.5.1.4.38.2", + SOP_MR_IMAGE_STORAGE : "1.2.840.10008.5.1.4.1.1.4", + TYPE_ASCII : 1, + TYPE_HEX : 2, + TYPE_UINT8 : 3, + TYPE_UINT16 : 4, + TYPE_UINT32 : 5, + TYPE_COMPOSITE : 6, + TYPE_FLOAT : 7, + TYPE_DOUBLE : 8, + TYPE_INT8 : 9, + TYPE_INT16 : 10, + TYPE_INT32 : 11, + RESULT_REASON_ACCEPTANCE : 0, + RESULT_REASON_USER_REJECTION : 1, + RESULT_REASON_NO_REASON :2, + RESULT_REASON_ABSTRACT_NOT_SUPPORTED : 3, + RESULT_REASON_TRANSFER_NOT_SUPPORTED : 4, + DEFAULT_MESSAGE_ID : 1, + LITTLE_ENDIAN : 1, + BIG_ENDIAN : 2, + VM_SINGLE :1, + VM_TWO : 3, + VM_THREE : 4, + VM_FOUR : 5, + VM_1N : 6, + VM_2N :7, + VM_3N :8, + VM_6N :9, + VM_3_3N : 10, + VM_2_2N : 11, + VM_16 : 12, + VM_1_2 : 13, + VM_1_3 : 18, + VM_SIX : 14, + VM_NINE : 15, + VM_1_32 : 16, + VM_1_99 : 17, + PRIORITY_LOW : 0x2, + PRIORITY_MEDIUM : 0x0, + PRIORITY_HIGH : 0x1, + DATA_SET_PRESENT : 1, + DATE_SET_ABSENCE : 0x0101, + DATA_TYPE_COMMAND : 1, + DATA_TYPE_DATA : 0, + DATA_IS_LAST : 1, + DATA_NOT_LAST : 0, + SOURCE_SERVICE_USER : 0, + SOURCE_SERVICE_PROVIDER : 2, + QUERY_RETRIEVE_LEVEL_PATIENT : "PATIENT", + QUERY_RETRIEVE_LEVEL_STUDY : "STUDY", + QUERY_RETRIEVE_LEVEL_SERIES : "SERIES", + QUERY_RETRIEVE_LEVEL_IMAGE : "IMAGE", + VALUE_LENGTH_UNDEFINED : 0xffffffff, + STATUS_SUCCESS : 0x0000, + STATUS_CANCEL : 0xfe00, + STATUS_CFIND_CONT_OK : 0xff00, + STATUS_CFIND_CONT_WARN : 0xff01, + COMMAND_C_GET_RSP : 0x8010, + COMMAND_C_MOVE_RSP : 0x8021, + COMMAND_C_GET_RQ : 0x10, + COMMAND_C_STORE_RQ : 0x01, + COMMAND_C_FIND_RSP : 0x8020, + COMMAND_C_MOVE_RQ : 0x21, + COMMAND_C_FIND_RQ : 0x20, + COMMAND_C_STORE_RSP : 0x8001 +}; \ No newline at end of file diff --git a/Packages/dimse-service/server/elements_data.js b/Packages/dimse-service/server/elements_data.js new file mode 100755 index 000000000..daf8c82c6 --- /dev/null +++ b/Packages/dimse-service/server/elements_data.js @@ -0,0 +1,3601 @@ +var dicomNDict = { + 0x00080001 : { vr : "UL", vm : C.VM_SINGLE, keyword : "LengthToEnd"}, + 0x00080005 : { vr : "CS", vm : C.VM_1N, keyword : "SpecificCharacterSet"}, + 0x00080006 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LanguageCodeSequence"}, + 0x00080008 : { vr : "CS", vm : C.VM_2N, keyword : "ImageType"}, + 0x00080010 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RecognitionCode"}, + 0x00080012 : { vr : "DA", vm : C.VM_SINGLE, keyword : "InstanceCreationDate"}, + 0x00080013 : { vr : "TM", vm : C.VM_SINGLE, keyword : "InstanceCreationTime"}, + 0x00080014 : { vr : "UI", vm : C.VM_SINGLE, keyword : "InstanceCreatorUID"}, + 0x00080016 : { vr : "UI", vm : C.VM_SINGLE, keyword : "SOPClassUID"}, + 0x00080018 : { vr : "UI", vm : C.VM_SINGLE, keyword : "SOPInstanceUID"}, + 0x0008001A : { vr : "UI", vm : C.VM_1N, keyword : "RelatedGeneralSOPClassUID"}, + 0x0008001B : { vr : "UI", vm : C.VM_SINGLE, keyword : "OriginalSpecializedSOPClassUID"}, + 0x00080020 : { vr : "DA", vm : C.VM_SINGLE, keyword : "StudyDate"}, + 0x00080021 : { vr : "DA", vm : C.VM_SINGLE, keyword : "SeriesDate"}, + 0x00080022 : { vr : "DA", vm : C.VM_SINGLE, keyword : "AcquisitionDate"}, + 0x00080023 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ContentDate"}, + 0x00080024 : { vr : "DA", vm : C.VM_SINGLE, keyword : "OverlayDate"}, + 0x00080025 : { vr : "DA", vm : C.VM_SINGLE, keyword : "CurveDate"}, + 0x0008002A : { vr : "DT", vm : C.VM_SINGLE, keyword : "AcquisitionDateTime"}, + 0x00080030 : { vr : "TM", vm : C.VM_SINGLE, keyword : "StudyTime"}, + 0x00080031 : { vr : "TM", vm : C.VM_SINGLE, keyword : "SeriesTime"}, + 0x00080032 : { vr : "TM", vm : C.VM_SINGLE, keyword : "AcquisitionTime"}, + 0x00080033 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ContentTime"}, + 0x00080034 : { vr : "TM", vm : C.VM_SINGLE, keyword : "OverlayTime"}, + 0x00080035 : { vr : "TM", vm : C.VM_SINGLE, keyword : "CurveTime"}, + 0x00080040 : { vr : "US", vm : C.VM_SINGLE, keyword : "DataSetType"}, + 0x00080041 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DataSetSubtype"}, + 0x00080042 : { vr : "CS", vm : C.VM_SINGLE, keyword : "NuclearMedicineSeriesType"}, + 0x00080050 : { vr : "SH", vm : C.VM_SINGLE, keyword : "AccessionNumber"}, + 0x00080051 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IssuerOfAccessionNumberSequence"}, + 0x00080052 : { vr : "CS", vm : C.VM_SINGLE, keyword : "QueryRetrieveLevel"}, + 0x00080054 : { vr : "AE", vm : C.VM_1N, keyword : "RetrieveAETitle"}, + 0x00080056 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InstanceAvailability"}, + 0x00080058 : { vr : "UI", vm : C.VM_1N, keyword : "FailedSOPInstanceUIDList"}, + 0x00080060 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Modality"}, + 0x00080061 : { vr : "CS", vm : C.VM_1N, keyword : "ModalitiesInStudy"}, + 0x00080062 : { vr : "UI", vm : C.VM_1N, keyword : "SOPClassesInStudy"}, + 0x00080064 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ConversionType"}, + 0x00080068 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PresentationIntentType"}, + 0x00080070 : { vr : "LO", vm : C.VM_SINGLE, keyword : "Manufacturer"}, + 0x00080080 : { vr : "LO", vm : C.VM_SINGLE, keyword : "InstitutionName"}, + 0x00080081 : { vr : "ST", vm : C.VM_SINGLE, keyword : "InstitutionAddress"}, + 0x00080082 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InstitutionCodeSequence"}, + 0x00080090 : { vr : "PN", vm : C.VM_SINGLE, keyword : "ReferringPhysicianName"}, + 0x00080092 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ReferringPhysicianAddress"}, + 0x00080094 : { vr : "SH", vm : C.VM_1N, keyword : "ReferringPhysicianTelephoneNumbers"}, + 0x00080096 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferringPhysicianIdentificationSequence"}, + 0x00080100 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CodeValue"}, + 0x00080102 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CodingSchemeDesignator"}, + 0x00080103 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CodingSchemeVersion"}, + 0x00080104 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CodeMeaning"}, + 0x00080105 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MappingResource"}, + 0x00080106 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ContextGroupVersion"}, + 0x00080107 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ContextGroupLocalVersion"}, + 0x0008010B : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContextGroupExtensionFlag"}, + 0x0008010C : { vr : "UI", vm : C.VM_SINGLE, keyword : "CodingSchemeUID"}, + 0x0008010D : { vr : "UI", vm : C.VM_SINGLE, keyword : "ContextGroupExtensionCreatorUID"}, + 0x0008010F : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContextIdentifier"}, + 0x00080110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CodingSchemeIdentificationSequence"}, + 0x00080112 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CodingSchemeRegistry"}, + 0x00080114 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CodingSchemeExternalID"}, + 0x00080115 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CodingSchemeName"}, + 0x00080116 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CodingSchemeResponsibleOrganization"}, + 0x00080117 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ContextUID"}, + 0x00080201 : { vr : "SH", vm : C.VM_SINGLE, keyword : "TimezoneOffsetFromUTC"}, + 0x00081000 : { vr : "AE", vm : C.VM_SINGLE, keyword : "NetworkID"}, + 0x00081010 : { vr : "SH", vm : C.VM_SINGLE, keyword : "StationName"}, + 0x00081030 : { vr : "LO", vm : C.VM_SINGLE, keyword : "StudyDescription"}, + 0x00081032 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProcedureCodeSequence"}, + 0x0008103E : { vr : "LO", vm : C.VM_SINGLE, keyword : "SeriesDescription"}, + 0x0008103F : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SeriesDescriptionCodeSequence"}, + 0x00081040 : { vr : "LO", vm : C.VM_SINGLE, keyword : "InstitutionalDepartmentName"}, + 0x00081048 : { vr : "PN", vm : C.VM_1N, keyword : "PhysiciansOfRecord"}, + 0x00081049 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PhysiciansOfRecordIdentificationSequence"}, + 0x00081050 : { vr : "PN", vm : C.VM_1N, keyword : "PerformingPhysicianName"}, + 0x00081052 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformingPhysicianIdentificationSequence"}, + 0x00081060 : { vr : "PN", vm : C.VM_1N, keyword : "NameOfPhysiciansReadingStudy"}, + 0x00081062 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PhysiciansReadingStudyIdentificationSequence"}, + 0x00081070 : { vr : "PN", vm : C.VM_1N, keyword : "OperatorsName"}, + 0x00081072 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OperatorIdentificationSequence"}, + 0x00081080 : { vr : "LO", vm : C.VM_1N, keyword : "AdmittingDiagnosesDescription"}, + 0x00081084 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AdmittingDiagnosesCodeSequence"}, + 0x00081090 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ManufacturerModelName"}, + 0x00081100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedResultsSequence"}, + 0x00081110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedStudySequence"}, + 0x00081111 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedPerformedProcedureStepSequence"}, + 0x00081115 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedSeriesSequence"}, + 0x00081120 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedPatientSequence"}, + 0x00081125 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedVisitSequence"}, + 0x00081130 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedOverlaySequence"}, + 0x00081134 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedStereometricInstanceSequence"}, + 0x0008113A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedWaveformSequence"}, + 0x00081140 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedImageSequence"}, + 0x00081145 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedCurveSequence"}, + 0x0008114A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedInstanceSequence"}, + 0x0008114B : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedRealWorldValueMappingInstanceSequence"}, + 0x00081150 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ReferencedSOPClassUID"}, + 0x00081155 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ReferencedSOPInstanceUID"}, + 0x0008115A : { vr : "UI", vm : C.VM_1N, keyword : "SOPClassesSupported"}, + 0x00081160 : { vr : "IS", vm : C.VM_1N, keyword : "ReferencedFrameNumber"}, + 0x00081161 : { vr : "UL", vm : C.VM_1N, keyword : "SimpleFrameList"}, + 0x00081162 : { vr : "UL", vm : C.VM_3_3N, keyword : "CalculatedFrameList"}, + 0x00081163 : { vr : "FD", vm : C.VM_TWO, keyword : "TimeRange"}, + 0x00081164 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameExtractionSequence"}, + 0x00081167 : { vr : "UI", vm : C.VM_SINGLE, keyword : "MultiFrameSourceSOPInstanceUID"}, + 0x00081195 : { vr : "UI", vm : C.VM_SINGLE, keyword : "TransactionUID"}, + 0x00081197 : { vr : "US", vm : C.VM_SINGLE, keyword : "FailureReason"}, + 0x00081198 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FailedSOPSequence"}, + 0x00081199 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedSOPSequence"}, + 0x00081200 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "StudiesContainingOtherReferencedInstancesSequence"}, + 0x00081250 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelatedSeriesSequence"}, + 0x00082110 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LossyImageCompressionRetired"}, + 0x00082111 : { vr : "ST", vm : C.VM_SINGLE, keyword : "DerivationDescription"}, + 0x00082112 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceImageSequence"}, + 0x00082120 : { vr : "SH", vm : C.VM_SINGLE, keyword : "StageName"}, + 0x00082122 : { vr : "IS", vm : C.VM_SINGLE, keyword : "StageNumber"}, + 0x00082124 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfStages"}, + 0x00082127 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ViewName"}, + 0x00082128 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ViewNumber"}, + 0x00082129 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfEventTimers"}, + 0x0008212A : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfViewsInStage"}, + 0x00082130 : { vr : "DS", vm : C.VM_1N, keyword : "EventElapsedTimes"}, + 0x00082132 : { vr : "LO", vm : C.VM_1N, keyword : "EventTimerNames"}, + 0x00082133 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EventTimerSequence"}, + 0x00082134 : { vr : "FD", vm : C.VM_SINGLE, keyword : "EventTimeOffset"}, + 0x00082135 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EventCodeSequence"}, + 0x00082142 : { vr : "IS", vm : C.VM_SINGLE, keyword : "StartTrim"}, + 0x00082143 : { vr : "IS", vm : C.VM_SINGLE, keyword : "StopTrim"}, + 0x00082144 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RecommendedDisplayFrameRate"}, + 0x00082200 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TransducerPosition"}, + 0x00082204 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TransducerOrientation"}, + 0x00082208 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AnatomicStructure"}, + 0x00082218 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicRegionSequence"}, + 0x00082220 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicRegionModifierSequence"}, + 0x00082228 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrimaryAnatomicStructureSequence"}, + 0x00082229 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicStructureSpaceOrRegionSequence"}, + 0x00082230 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrimaryAnatomicStructureModifierSequence"}, + 0x00082240 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerPositionSequence"}, + 0x00082242 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerPositionModifierSequence"}, + 0x00082244 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerOrientationSequence"}, + 0x00082246 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerOrientationModifierSequence"}, + 0x00082251 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicStructureSpaceOrRegionCodeSequenceTrial"}, + 0x00082253 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicPortalOfEntranceCodeSequenceTrial"}, + 0x00082255 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicApproachDirectionCodeSequenceTrial"}, + 0x00082256 : { vr : "ST", vm : C.VM_SINGLE, keyword : "AnatomicPerspectiveDescriptionTrial"}, + 0x00082257 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicPerspectiveCodeSequenceTrial"}, + 0x00082258 : { vr : "ST", vm : C.VM_SINGLE, keyword : "AnatomicLocationOfExaminingInstrumentDescriptionTrial"}, + 0x00082259 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"}, + 0x0008225A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"}, + 0x0008225C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OnAxisBackgroundAnatomicStructureCodeSequenceTrial"}, + 0x00083001 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AlternateRepresentationSequence"}, + 0x00083010 : { vr : "UI", vm : C.VM_SINGLE, keyword : "IrradiationEventUID"}, + 0x00084000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "IdentifyingComments"}, + 0x00089007 : { vr : "CS", vm : C.VM_FOUR, keyword : "FrameType"}, + 0x00089092 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedImageEvidenceSequence"}, + 0x00089121 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedRawDataSequence"}, + 0x00089123 : { vr : "UI", vm : C.VM_SINGLE, keyword : "CreatorVersionUID"}, + 0x00089124 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DerivationImageSequence"}, + 0x00089154 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceImageEvidenceSequence"}, + 0x00089205 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PixelPresentation"}, + 0x00089206 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VolumetricProperties"}, + 0x00089207 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VolumeBasedCalculationTechnique"}, + 0x00089208 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ComplexImageComponent"}, + 0x00089209 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AcquisitionContrast"}, + 0x00089215 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DerivationCodeSequence"}, + 0x00089237 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedPresentationStateSequence"}, + 0x00089410 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedOtherPlaneSequence"}, + 0x00089458 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameDisplaySequence"}, + 0x00089459 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RecommendedDisplayFrameRateInFloat"}, + 0x00089460 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SkipFrameRangeFlag"}, + 0x00100010 : { vr : "PN", vm : C.VM_SINGLE, keyword : "PatientName"}, + 0x00100020 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientID"}, + 0x00100021 : { vr : "LO", vm : C.VM_SINGLE, keyword : "IssuerOfPatientID"}, + 0x00100022 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TypeOfPatientID"}, + 0x00100024 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IssuerOfPatientIDQualifiersSequence"}, + 0x00100030 : { vr : "DA", vm : C.VM_SINGLE, keyword : "PatientBirthDate"}, + 0x00100032 : { vr : "TM", vm : C.VM_SINGLE, keyword : "PatientBirthTime"}, + 0x00100040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientSex"}, + 0x00100050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientInsurancePlanCodeSequence"}, + 0x00100101 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientPrimaryLanguageCodeSequence"}, + 0x00100102 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientPrimaryLanguageModifierCodeSequence"}, + 0x00101000 : { vr : "LO", vm : C.VM_1N, keyword : "OtherPatientIDs"}, + 0x00101001 : { vr : "PN", vm : C.VM_1N, keyword : "OtherPatientNames"}, + 0x00101002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OtherPatientIDsSequence"}, + 0x00101005 : { vr : "PN", vm : C.VM_SINGLE, keyword : "PatientBirthName"}, + 0x00101010 : { vr : "AS", vm : C.VM_SINGLE, keyword : "PatientAge"}, + 0x00101020 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PatientSize"}, + 0x00101021 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientSizeCodeSequence"}, + 0x00101030 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PatientWeight"}, + 0x00101040 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientAddress"}, + 0x00101050 : { vr : "LO", vm : C.VM_1N, keyword : "InsurancePlanIdentification"}, + 0x00101060 : { vr : "PN", vm : C.VM_SINGLE, keyword : "PatientMotherBirthName"}, + 0x00101080 : { vr : "LO", vm : C.VM_SINGLE, keyword : "MilitaryRank"}, + 0x00101081 : { vr : "LO", vm : C.VM_SINGLE, keyword : "BranchOfService"}, + 0x00101090 : { vr : "LO", vm : C.VM_SINGLE, keyword : "MedicalRecordLocator"}, + 0x00102000 : { vr : "LO", vm : C.VM_1N, keyword : "MedicalAlerts"}, + 0x00102110 : { vr : "LO", vm : C.VM_1N, keyword : "Allergies"}, + 0x00102150 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CountryOfResidence"}, + 0x00102152 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RegionOfResidence"}, + 0x00102154 : { vr : "SH", vm : C.VM_1N, keyword : "PatientTelephoneNumbers"}, + 0x00102160 : { vr : "SH", vm : C.VM_SINGLE, keyword : "EthnicGroup"}, + 0x00102180 : { vr : "SH", vm : C.VM_SINGLE, keyword : "Occupation"}, + 0x001021A0 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SmokingStatus"}, + 0x001021B0 : { vr : "LT", vm : C.VM_SINGLE, keyword : "AdditionalPatientHistory"}, + 0x001021C0 : { vr : "US", vm : C.VM_SINGLE, keyword : "PregnancyStatus"}, + 0x001021D0 : { vr : "DA", vm : C.VM_SINGLE, keyword : "LastMenstrualDate"}, + 0x001021F0 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientReligiousPreference"}, + 0x00102201 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientSpeciesDescription"}, + 0x00102202 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientSpeciesCodeSequence"}, + 0x00102203 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientSexNeutered"}, + 0x00102210 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AnatomicalOrientationType"}, + 0x00102292 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientBreedDescription"}, + 0x00102293 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientBreedCodeSequence"}, + 0x00102294 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BreedRegistrationSequence"}, + 0x00102295 : { vr : "LO", vm : C.VM_SINGLE, keyword : "BreedRegistrationNumber"}, + 0x00102296 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BreedRegistryCodeSequence"}, + 0x00102297 : { vr : "PN", vm : C.VM_SINGLE, keyword : "ResponsiblePerson"}, + 0x00102298 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ResponsiblePersonRole"}, + 0x00102299 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ResponsibleOrganization"}, + 0x00104000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "PatientComments"}, + 0x00109431 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ExaminedBodyThickness"}, + 0x00120010 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialSponsorName"}, + 0x00120020 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialProtocolID"}, + 0x00120021 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialProtocolName"}, + 0x00120030 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialSiteID"}, + 0x00120031 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialSiteName"}, + 0x00120040 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialSubjectID"}, + 0x00120042 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialSubjectReadingID"}, + 0x00120050 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialTimePointID"}, + 0x00120051 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ClinicalTrialTimePointDescription"}, + 0x00120060 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialCoordinatingCenterName"}, + 0x00120062 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientIdentityRemoved"}, + 0x00120063 : { vr : "LO", vm : C.VM_1N, keyword : "DeidentificationMethod"}, + 0x00120064 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DeidentificationMethodCodeSequence"}, + 0x00120071 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialSeriesID"}, + 0x00120072 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialSeriesDescription"}, + 0x00120081 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialProtocolEthicsCommitteeName"}, + 0x00120082 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ClinicalTrialProtocolEthicsCommitteeApprovalNumber"}, + 0x00120083 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ConsentForClinicalTrialUseSequence"}, + 0x00120084 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DistributionType"}, + 0x00120085 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ConsentForDistributionFlag"}, + 0x00140023 : { vr : "ST", vm : C.VM_1N, keyword : "CADFileFormat"}, + 0x00140024 : { vr : "ST", vm : C.VM_1N, keyword : "ComponentReferenceSystem"}, + 0x00140025 : { vr : "ST", vm : C.VM_1N, keyword : "ComponentManufacturingProcedure"}, + 0x00140028 : { vr : "ST", vm : C.VM_1N, keyword : "ComponentManufacturer"}, + 0x00140030 : { vr : "DS", vm : C.VM_1N, keyword : "MaterialThickness"}, + 0x00140032 : { vr : "DS", vm : C.VM_1N, keyword : "MaterialPipeDiameter"}, + 0x00140034 : { vr : "DS", vm : C.VM_1N, keyword : "MaterialIsolationDiameter"}, + 0x00140042 : { vr : "ST", vm : C.VM_1N, keyword : "MaterialGrade"}, + 0x00140044 : { vr : "ST", vm : C.VM_1N, keyword : "MaterialPropertiesFileID"}, + 0x00140045 : { vr : "ST", vm : C.VM_1N, keyword : "MaterialPropertiesFileFormat"}, + 0x00140046 : { vr : "LT", vm : C.VM_SINGLE, keyword : "MaterialNotes"}, + 0x00140050 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ComponentShape"}, + 0x00140052 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CurvatureType"}, + 0x00140054 : { vr : "DS", vm : C.VM_SINGLE, keyword : "OuterDiameter"}, + 0x00140056 : { vr : "DS", vm : C.VM_SINGLE, keyword : "InnerDiameter"}, + 0x00141010 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ActualEnvironmentalConditions"}, + 0x00141020 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ExpiryDate"}, + 0x00141040 : { vr : "ST", vm : C.VM_SINGLE, keyword : "EnvironmentalConditions"}, + 0x00142002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EvaluatorSequence"}, + 0x00142004 : { vr : "IS", vm : C.VM_SINGLE, keyword : "EvaluatorNumber"}, + 0x00142006 : { vr : "PN", vm : C.VM_SINGLE, keyword : "EvaluatorName"}, + 0x00142008 : { vr : "IS", vm : C.VM_SINGLE, keyword : "EvaluationAttempt"}, + 0x00142012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IndicationSequence"}, + 0x00142014 : { vr : "IS", vm : C.VM_SINGLE, keyword : "IndicationNumber"}, + 0x00142016 : { vr : "SH", vm : C.VM_SINGLE, keyword : "IndicationLabel"}, + 0x00142018 : { vr : "ST", vm : C.VM_SINGLE, keyword : "IndicationDescription"}, + 0x0014201A : { vr : "CS", vm : C.VM_1N, keyword : "IndicationType"}, + 0x0014201C : { vr : "CS", vm : C.VM_SINGLE, keyword : "IndicationDisposition"}, + 0x0014201E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IndicationROISequence"}, + 0x00142030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IndicationPhysicalPropertySequence"}, + 0x00142032 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PropertyLabel"}, + 0x00142202 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CoordinateSystemNumberOfAxes"}, + 0x00142204 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CoordinateSystemAxesSequence"}, + 0x00142206 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CoordinateSystemAxisDescription"}, + 0x00142208 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CoordinateSystemDataSetMapping"}, + 0x0014220A : { vr : "IS", vm : C.VM_SINGLE, keyword : "CoordinateSystemAxisNumber"}, + 0x0014220C : { vr : "CS", vm : C.VM_SINGLE, keyword : "CoordinateSystemAxisType"}, + 0x0014220E : { vr : "CS", vm : C.VM_SINGLE, keyword : "CoordinateSystemAxisUnits"}, + 0x00142210 : { vr : "OB", vm : C.VM_SINGLE, keyword : "CoordinateSystemAxisValues"}, + 0x00142220 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CoordinateSystemTransformSequence"}, + 0x00142222 : { vr : "ST", vm : C.VM_SINGLE, keyword : "TransformDescription"}, + 0x00142224 : { vr : "IS", vm : C.VM_SINGLE, keyword : "TransformNumberOfAxes"}, + 0x00142226 : { vr : "IS", vm : C.VM_1N, keyword : "TransformOrderOfAxes"}, + 0x00142228 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TransformedAxisUnits"}, + 0x0014222A : { vr : "DS", vm : C.VM_1N, keyword : "CoordinateSystemTransformRotationAndScaleMatrix"}, + 0x0014222C : { vr : "DS", vm : C.VM_1N, keyword : "CoordinateSystemTransformTranslationMatrix"}, + 0x00143011 : { vr : "DS", vm : C.VM_SINGLE, keyword : "InternalDetectorFrameTime"}, + 0x00143012 : { vr : "DS", vm : C.VM_SINGLE, keyword : "NumberOfFramesIntegrated"}, + 0x00143020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DetectorTemperatureSequence"}, + 0x00143022 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SensorName"}, + 0x00143024 : { vr : "DS", vm : C.VM_SINGLE, keyword : "HorizontalOffsetOfSensor"}, + 0x00143026 : { vr : "DS", vm : C.VM_SINGLE, keyword : "VerticalOffsetOfSensor"}, + 0x00143028 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SensorTemperature"}, + 0x00143040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DarkCurrentSequence"}, + 0x00143050 : { vr : "OB", vm : C.VM_SINGLE, keyword : "DarkCurrentCounts"}, + 0x00143060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GainCorrectionReferenceSequence"}, + 0x00143070 : { vr : "OB", vm : C.VM_SINGLE, keyword : "AirCounts"}, + 0x00143071 : { vr : "DS", vm : C.VM_SINGLE, keyword : "KVUsedInGainCalibration"}, + 0x00143072 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MAUsedInGainCalibration"}, + 0x00143073 : { vr : "DS", vm : C.VM_SINGLE, keyword : "NumberOfFramesUsedForIntegration"}, + 0x00143074 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FilterMaterialUsedInGainCalibration"}, + 0x00143075 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FilterThicknessUsedInGainCalibration"}, + 0x00143076 : { vr : "DA", vm : C.VM_SINGLE, keyword : "DateOfGainCalibration"}, + 0x00143077 : { vr : "TM", vm : C.VM_SINGLE, keyword : "TimeOfGainCalibration"}, + 0x00143080 : { vr : "OB", vm : C.VM_SINGLE, keyword : "BadPixelImage"}, + 0x00143099 : { vr : "LT", vm : C.VM_SINGLE, keyword : "CalibrationNotes"}, + 0x00144002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PulserEquipmentSequence"}, + 0x00144004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PulserType"}, + 0x00144006 : { vr : "LT", vm : C.VM_SINGLE, keyword : "PulserNotes"}, + 0x00144008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReceiverEquipmentSequence"}, + 0x0014400A : { vr : "CS", vm : C.VM_SINGLE, keyword : "AmplifierType"}, + 0x0014400C : { vr : "LT", vm : C.VM_SINGLE, keyword : "ReceiverNotes"}, + 0x0014400E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PreAmplifierEquipmentSequence"}, + 0x0014400F : { vr : "LT", vm : C.VM_SINGLE, keyword : "PreAmplifierNotes"}, + 0x00144010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransmitTransducerSequence"}, + 0x00144011 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReceiveTransducerSequence"}, + 0x00144012 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfElements"}, + 0x00144013 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ElementShape"}, + 0x00144014 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ElementDimensionA"}, + 0x00144015 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ElementDimensionB"}, + 0x00144016 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ElementPitch"}, + 0x00144017 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MeasuredBeamDimensionA"}, + 0x00144018 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MeasuredBeamDimensionB"}, + 0x00144019 : { vr : "DS", vm : C.VM_SINGLE, keyword : "LocationOfMeasuredBeamDiameter"}, + 0x0014401A : { vr : "DS", vm : C.VM_SINGLE, keyword : "NominalFrequency"}, + 0x0014401B : { vr : "DS", vm : C.VM_SINGLE, keyword : "MeasuredCenterFrequency"}, + 0x0014401C : { vr : "DS", vm : C.VM_SINGLE, keyword : "MeasuredBandwidth"}, + 0x00144020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PulserSettingsSequence"}, + 0x00144022 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PulseWidth"}, + 0x00144024 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ExcitationFrequency"}, + 0x00144026 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ModulationType"}, + 0x00144028 : { vr : "DS", vm : C.VM_SINGLE, keyword : "Damping"}, + 0x00144030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReceiverSettingsSequence"}, + 0x00144031 : { vr : "DS", vm : C.VM_SINGLE, keyword : "AcquiredSoundpathLength"}, + 0x00144032 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AcquisitionCompressionType"}, + 0x00144033 : { vr : "IS", vm : C.VM_SINGLE, keyword : "AcquisitionSampleSize"}, + 0x00144034 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RectifierSmoothing"}, + 0x00144035 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DACSequence"}, + 0x00144036 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DACType"}, + 0x00144038 : { vr : "DS", vm : C.VM_1N, keyword : "DACGainPoints"}, + 0x0014403A : { vr : "DS", vm : C.VM_1N, keyword : "DACTimePoints"}, + 0x0014403C : { vr : "DS", vm : C.VM_1N, keyword : "DACAmplitude"}, + 0x00144040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PreAmplifierSettingsSequence"}, + 0x00144050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransmitTransducerSettingsSequence"}, + 0x00144051 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReceiveTransducerSettingsSequence"}, + 0x00144052 : { vr : "DS", vm : C.VM_SINGLE, keyword : "IncidentAngle"}, + 0x00144054 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CouplingTechnique"}, + 0x00144056 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CouplingMedium"}, + 0x00144057 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CouplingVelocity"}, + 0x00144058 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CrystalCenterLocationX"}, + 0x00144059 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CrystalCenterLocationZ"}, + 0x0014405A : { vr : "DS", vm : C.VM_SINGLE, keyword : "SoundPathLength"}, + 0x0014405C : { vr : "ST", vm : C.VM_SINGLE, keyword : "DelayLawIdentifier"}, + 0x00144060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GateSettingsSequence"}, + 0x00144062 : { vr : "DS", vm : C.VM_SINGLE, keyword : "GateThreshold"}, + 0x00144064 : { vr : "DS", vm : C.VM_SINGLE, keyword : "VelocityOfSound"}, + 0x00144070 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CalibrationSettingsSequence"}, + 0x00144072 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CalibrationProcedure"}, + 0x00144074 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ProcedureVersion"}, + 0x00144076 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ProcedureCreationDate"}, + 0x00144078 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ProcedureExpirationDate"}, + 0x0014407A : { vr : "DA", vm : C.VM_SINGLE, keyword : "ProcedureLastModifiedDate"}, + 0x0014407C : { vr : "TM", vm : C.VM_1N, keyword : "CalibrationTime"}, + 0x0014407E : { vr : "DA", vm : C.VM_1N, keyword : "CalibrationDate"}, + 0x00145002 : { vr : "IS", vm : C.VM_SINGLE, keyword : "LINACEnergy"}, + 0x00145004 : { vr : "IS", vm : C.VM_SINGLE, keyword : "LINACOutput"}, + 0x00180010 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContrastBolusAgent"}, + 0x00180012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContrastBolusAgentSequence"}, + 0x00180014 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContrastBolusAdministrationRouteSequence"}, + 0x00180015 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BodyPartExamined"}, + 0x00180020 : { vr : "CS", vm : C.VM_1N, keyword : "ScanningSequence"}, + 0x00180021 : { vr : "CS", vm : C.VM_1N, keyword : "SequenceVariant"}, + 0x00180022 : { vr : "CS", vm : C.VM_1N, keyword : "ScanOptions"}, + 0x00180023 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MRAcquisitionType"}, + 0x00180024 : { vr : "SH", vm : C.VM_SINGLE, keyword : "SequenceName"}, + 0x00180025 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AngioFlag"}, + 0x00180026 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InterventionDrugInformationSequence"}, + 0x00180027 : { vr : "TM", vm : C.VM_SINGLE, keyword : "InterventionDrugStopTime"}, + 0x00180028 : { vr : "DS", vm : C.VM_SINGLE, keyword : "InterventionDrugDose"}, + 0x00180029 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InterventionDrugCodeSequence"}, + 0x0018002A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AdditionalDrugSequence"}, + 0x00180030 : { vr : "LO", vm : C.VM_1N, keyword : "Radionuclide"}, + 0x00180031 : { vr : "LO", vm : C.VM_SINGLE, keyword : "Radiopharmaceutical"}, + 0x00180032 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EnergyWindowCenterline"}, + 0x00180033 : { vr : "DS", vm : C.VM_1N, keyword : "EnergyWindowTotalWidth"}, + 0x00180034 : { vr : "LO", vm : C.VM_SINGLE, keyword : "InterventionDrugName"}, + 0x00180035 : { vr : "TM", vm : C.VM_SINGLE, keyword : "InterventionDrugStartTime"}, + 0x00180036 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InterventionSequence"}, + 0x00180037 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TherapyType"}, + 0x00180038 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InterventionStatus"}, + 0x00180039 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TherapyDescription"}, + 0x0018003A : { vr : "ST", vm : C.VM_SINGLE, keyword : "InterventionDescription"}, + 0x00180040 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CineRate"}, + 0x00180042 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InitialCineRunState"}, + 0x00180050 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SliceThickness"}, + 0x00180060 : { vr : "DS", vm : C.VM_SINGLE, keyword : "KVP"}, + 0x00180070 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CountsAccumulated"}, + 0x00180071 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AcquisitionTerminationCondition"}, + 0x00180072 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EffectiveDuration"}, + 0x00180073 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AcquisitionStartCondition"}, + 0x00180074 : { vr : "IS", vm : C.VM_SINGLE, keyword : "AcquisitionStartConditionData"}, + 0x00180075 : { vr : "IS", vm : C.VM_SINGLE, keyword : "AcquisitionTerminationConditionData"}, + 0x00180080 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RepetitionTime"}, + 0x00180081 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EchoTime"}, + 0x00180082 : { vr : "DS", vm : C.VM_SINGLE, keyword : "InversionTime"}, + 0x00180083 : { vr : "DS", vm : C.VM_SINGLE, keyword : "NumberOfAverages"}, + 0x00180084 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ImagingFrequency"}, + 0x00180085 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ImagedNucleus"}, + 0x00180086 : { vr : "IS", vm : C.VM_1N, keyword : "EchoNumbers"}, + 0x00180087 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MagneticFieldStrength"}, + 0x00180088 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpacingBetweenSlices"}, + 0x00180089 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfPhaseEncodingSteps"}, + 0x00180090 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DataCollectionDiameter"}, + 0x00180091 : { vr : "IS", vm : C.VM_SINGLE, keyword : "EchoTrainLength"}, + 0x00180093 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PercentSampling"}, + 0x00180094 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PercentPhaseFieldOfView"}, + 0x00180095 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PixelBandwidth"}, + 0x00181000 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DeviceSerialNumber"}, + 0x00181002 : { vr : "UI", vm : C.VM_SINGLE, keyword : "DeviceUID"}, + 0x00181003 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DeviceID"}, + 0x00181004 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PlateID"}, + 0x00181005 : { vr : "LO", vm : C.VM_SINGLE, keyword : "GeneratorID"}, + 0x00181006 : { vr : "LO", vm : C.VM_SINGLE, keyword : "GridID"}, + 0x00181007 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CassetteID"}, + 0x00181008 : { vr : "LO", vm : C.VM_SINGLE, keyword : "GantryID"}, + 0x00181010 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SecondaryCaptureDeviceID"}, + 0x00181011 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HardcopyCreationDeviceID"}, + 0x00181012 : { vr : "DA", vm : C.VM_SINGLE, keyword : "DateOfSecondaryCapture"}, + 0x00181014 : { vr : "TM", vm : C.VM_SINGLE, keyword : "TimeOfSecondaryCapture"}, + 0x00181016 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SecondaryCaptureDeviceManufacturer"}, + 0x00181017 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HardcopyDeviceManufacturer"}, + 0x00181018 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SecondaryCaptureDeviceManufacturerModelName"}, + 0x00181019 : { vr : "LO", vm : C.VM_1N, keyword : "SecondaryCaptureDeviceSoftwareVersions"}, + 0x0018101A : { vr : "LO", vm : C.VM_1N, keyword : "HardcopyDeviceSoftwareVersion"}, + 0x0018101B : { vr : "LO", vm : C.VM_SINGLE, keyword : "HardcopyDeviceManufacturerModelName"}, + 0x00181020 : { vr : "LO", vm : C.VM_1N, keyword : "SoftwareVersions"}, + 0x00181022 : { vr : "SH", vm : C.VM_SINGLE, keyword : "VideoImageFormatAcquired"}, + 0x00181023 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DigitalImageFormatAcquired"}, + 0x00181030 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ProtocolName"}, + 0x00181040 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContrastBolusRoute"}, + 0x00181041 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ContrastBolusVolume"}, + 0x00181042 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ContrastBolusStartTime"}, + 0x00181043 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ContrastBolusStopTime"}, + 0x00181044 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ContrastBolusTotalDose"}, + 0x00181045 : { vr : "IS", vm : C.VM_SINGLE, keyword : "SyringeCounts"}, + 0x00181046 : { vr : "DS", vm : C.VM_1N, keyword : "ContrastFlowRate"}, + 0x00181047 : { vr : "DS", vm : C.VM_1N, keyword : "ContrastFlowDuration"}, + 0x00181048 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContrastBolusIngredient"}, + 0x00181049 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ContrastBolusIngredientConcentration"}, + 0x00181050 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpatialResolution"}, + 0x00181060 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TriggerTime"}, + 0x00181061 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TriggerSourceOrType"}, + 0x00181062 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NominalInterval"}, + 0x00181063 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FrameTime"}, + 0x00181064 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CardiacFramingType"}, + 0x00181065 : { vr : "DS", vm : C.VM_1N, keyword : "FrameTimeVector"}, + 0x00181066 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FrameDelay"}, + 0x00181067 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ImageTriggerDelay"}, + 0x00181068 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MultiplexGroupTimeOffset"}, + 0x00181069 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TriggerTimeOffset"}, + 0x0018106A : { vr : "CS", vm : C.VM_SINGLE, keyword : "SynchronizationTrigger"}, + 0x0018106C : { vr : "US", vm : C.VM_TWO, keyword : "SynchronizationChannel"}, + 0x0018106E : { vr : "UL", vm : C.VM_SINGLE, keyword : "TriggerSamplePosition"}, + 0x00181070 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalRoute"}, + 0x00181071 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalVolume"}, + 0x00181072 : { vr : "TM", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalStartTime"}, + 0x00181073 : { vr : "TM", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalStopTime"}, + 0x00181074 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RadionuclideTotalDose"}, + 0x00181075 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RadionuclideHalfLife"}, + 0x00181076 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RadionuclidePositronFraction"}, + 0x00181077 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalSpecificActivity"}, + 0x00181078 : { vr : "DT", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalStartDateTime"}, + 0x00181079 : { vr : "DT", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalStopDateTime"}, + 0x00181080 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BeatRejectionFlag"}, + 0x00181081 : { vr : "IS", vm : C.VM_SINGLE, keyword : "LowRRValue"}, + 0x00181082 : { vr : "IS", vm : C.VM_SINGLE, keyword : "HighRRValue"}, + 0x00181083 : { vr : "IS", vm : C.VM_SINGLE, keyword : "IntervalsAcquired"}, + 0x00181084 : { vr : "IS", vm : C.VM_SINGLE, keyword : "IntervalsRejected"}, + 0x00181085 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PVCRejection"}, + 0x00181086 : { vr : "IS", vm : C.VM_SINGLE, keyword : "SkipBeats"}, + 0x00181088 : { vr : "IS", vm : C.VM_SINGLE, keyword : "HeartRate"}, + 0x00181090 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CardiacNumberOfImages"}, + 0x00181094 : { vr : "IS", vm : C.VM_SINGLE, keyword : "TriggerWindow"}, + 0x00181100 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ReconstructionDiameter"}, + 0x00181110 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DistanceSourceToDetector"}, + 0x00181111 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DistanceSourceToPatient"}, + 0x00181114 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EstimatedRadiographicMagnificationFactor"}, + 0x00181120 : { vr : "DS", vm : C.VM_SINGLE, keyword : "GantryDetectorTilt"}, + 0x00181121 : { vr : "DS", vm : C.VM_SINGLE, keyword : "GantryDetectorSlew"}, + 0x00181130 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableHeight"}, + 0x00181131 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTraverse"}, + 0x00181134 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TableMotion"}, + 0x00181135 : { vr : "DS", vm : C.VM_1N, keyword : "TableVerticalIncrement"}, + 0x00181136 : { vr : "DS", vm : C.VM_1N, keyword : "TableLateralIncrement"}, + 0x00181137 : { vr : "DS", vm : C.VM_1N, keyword : "TableLongitudinalIncrement"}, + 0x00181138 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableAngle"}, + 0x0018113A : { vr : "CS", vm : C.VM_SINGLE, keyword : "TableType"}, + 0x00181140 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RotationDirection"}, + 0x00181141 : { vr : "DS", vm : C.VM_SINGLE, keyword : "AngularPosition"}, + 0x00181142 : { vr : "DS", vm : C.VM_1N, keyword : "RadialPosition"}, + 0x00181143 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ScanArc"}, + 0x00181144 : { vr : "DS", vm : C.VM_SINGLE, keyword : "AngularStep"}, + 0x00181145 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CenterOfRotationOffset"}, + 0x00181146 : { vr : "DS", vm : C.VM_1N, keyword : "RotationOffset"}, + 0x00181147 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FieldOfViewShape"}, + 0x00181149 : { vr : "IS", vm : C.VM_1_2, keyword : "FieldOfViewDimensions"}, + 0x00181150 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ExposureTime"}, + 0x00181151 : { vr : "IS", vm : C.VM_SINGLE, keyword : "XRayTubeCurrent"}, + 0x00181152 : { vr : "IS", vm : C.VM_SINGLE, keyword : "Exposure"}, + 0x00181153 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ExposureInuAs"}, + 0x00181154 : { vr : "DS", vm : C.VM_SINGLE, keyword : "AveragePulseWidth"}, + 0x00181155 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RadiationSetting"}, + 0x00181156 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RectificationType"}, + 0x0018115A : { vr : "CS", vm : C.VM_SINGLE, keyword : "RadiationMode"}, + 0x0018115E : { vr : "DS", vm : C.VM_SINGLE, keyword : "ImageAndFluoroscopyAreaDoseProduct"}, + 0x00181160 : { vr : "SH", vm : C.VM_SINGLE, keyword : "FilterType"}, + 0x00181161 : { vr : "LO", vm : C.VM_1N, keyword : "TypeOfFilters"}, + 0x00181162 : { vr : "DS", vm : C.VM_SINGLE, keyword : "IntensifierSize"}, + 0x00181164 : { vr : "DS", vm : C.VM_TWO, keyword : "ImagerPixelSpacing"}, + 0x00181166 : { vr : "CS", vm : C.VM_1N, keyword : "Grid"}, + 0x00181170 : { vr : "IS", vm : C.VM_SINGLE, keyword : "GeneratorPower"}, + 0x00181180 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CollimatorGridName"}, + 0x00181181 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CollimatorType"}, + 0x00181182 : { vr : "IS", vm : C.VM_1_2, keyword : "FocalDistance"}, + 0x00181183 : { vr : "DS", vm : C.VM_1_2, keyword : "XFocusCenter"}, + 0x00181184 : { vr : "DS", vm : C.VM_1_2, keyword : "YFocusCenter"}, + 0x00181190 : { vr : "DS", vm : C.VM_1N, keyword : "FocalSpots"}, + 0x00181191 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AnodeTargetMaterial"}, + 0x001811A0 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BodyPartThickness"}, + 0x001811A2 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CompressionForce"}, + 0x00181200 : { vr : "DA", vm : C.VM_1N, keyword : "DateOfLastCalibration"}, + 0x00181201 : { vr : "TM", vm : C.VM_1N, keyword : "TimeOfLastCalibration"}, + 0x00181210 : { vr : "SH", vm : C.VM_1N, keyword : "ConvolutionKernel"}, + 0x00181240 : { vr : "IS", vm : C.VM_1N, keyword : "UpperLowerPixelValues"}, + 0x00181242 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ActualFrameDuration"}, + 0x00181243 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CountRate"}, + 0x00181244 : { vr : "US", vm : C.VM_SINGLE, keyword : "PreferredPlaybackSequencing"}, + 0x00181250 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ReceiveCoilName"}, + 0x00181251 : { vr : "SH", vm : C.VM_SINGLE, keyword : "TransmitCoilName"}, + 0x00181260 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PlateType"}, + 0x00181261 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PhosphorType"}, + 0x00181300 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ScanVelocity"}, + 0x00181301 : { vr : "CS", vm : C.VM_1N, keyword : "WholeBodyTechnique"}, + 0x00181302 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ScanLength"}, + 0x00181310 : { vr : "US", vm : C.VM_FOUR, keyword : "AcquisitionMatrix"}, + 0x00181312 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InPlanePhaseEncodingDirection"}, + 0x00181314 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FlipAngle"}, + 0x00181315 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VariableFlipAngleFlag"}, + 0x00181316 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SAR"}, + 0x00181318 : { vr : "DS", vm : C.VM_SINGLE, keyword : "dBdt"}, + 0x00181400 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AcquisitionDeviceProcessingDescription"}, + 0x00181401 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AcquisitionDeviceProcessingCode"}, + 0x00181402 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CassetteOrientation"}, + 0x00181403 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CassetteSize"}, + 0x00181404 : { vr : "US", vm : C.VM_SINGLE, keyword : "ExposuresOnPlate"}, + 0x00181405 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RelativeXRayExposure"}, + 0x00181411 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ExposureIndex"}, + 0x00181412 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TargetExposureIndex"}, + 0x00181413 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeviationIndex"}, + 0x00181450 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ColumnAngulation"}, + 0x00181460 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TomoLayerHeight"}, + 0x00181470 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TomoAngle"}, + 0x00181480 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TomoTime"}, + 0x00181490 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TomoType"}, + 0x00181491 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TomoClass"}, + 0x00181495 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfTomosynthesisSourceImages"}, + 0x00181500 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PositionerMotion"}, + 0x00181508 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PositionerType"}, + 0x00181510 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PositionerPrimaryAngle"}, + 0x00181511 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PositionerSecondaryAngle"}, + 0x00181520 : { vr : "DS", vm : C.VM_1N, keyword : "PositionerPrimaryAngleIncrement"}, + 0x00181521 : { vr : "DS", vm : C.VM_1N, keyword : "PositionerSecondaryAngleIncrement"}, + 0x00181530 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DetectorPrimaryAngle"}, + 0x00181531 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DetectorSecondaryAngle"}, + 0x00181600 : { vr : "CS", vm : C.VM_1_3, keyword : "ShutterShape"}, + 0x00181602 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ShutterLeftVerticalEdge"}, + 0x00181604 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ShutterRightVerticalEdge"}, + 0x00181606 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ShutterUpperHorizontalEdge"}, + 0x00181608 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ShutterLowerHorizontalEdge"}, + 0x00181610 : { vr : "IS", vm : C.VM_TWO, keyword : "CenterOfCircularShutter"}, + 0x00181612 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RadiusOfCircularShutter"}, + 0x00181620 : { vr : "IS", vm : C.VM_2_2N, keyword : "VerticesOfThePolygonalShutter"}, + 0x00181622 : { vr : "US", vm : C.VM_SINGLE, keyword : "ShutterPresentationValue"}, + 0x00181623 : { vr : "US", vm : C.VM_SINGLE, keyword : "ShutterOverlayGroup"}, + 0x00181624 : { vr : "US", vm : C.VM_THREE, keyword : "ShutterPresentationColorCIELabValue"}, + 0x00181700 : { vr : "CS", vm : C.VM_1_3, keyword : "CollimatorShape"}, + 0x00181702 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CollimatorLeftVerticalEdge"}, + 0x00181704 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CollimatorRightVerticalEdge"}, + 0x00181706 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CollimatorUpperHorizontalEdge"}, + 0x00181708 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CollimatorLowerHorizontalEdge"}, + 0x00181710 : { vr : "IS", vm : C.VM_TWO, keyword : "CenterOfCircularCollimator"}, + 0x00181712 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RadiusOfCircularCollimator"}, + 0x00181720 : { vr : "IS", vm : C.VM_2_2N, keyword : "VerticesOfThePolygonalCollimator"}, + 0x00181800 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AcquisitionTimeSynchronized"}, + 0x00181801 : { vr : "SH", vm : C.VM_SINGLE, keyword : "TimeSource"}, + 0x00181802 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TimeDistributionProtocol"}, + 0x00181803 : { vr : "LO", vm : C.VM_SINGLE, keyword : "NTPSourceAddress"}, + 0x00182001 : { vr : "IS", vm : C.VM_1N, keyword : "PageNumberVector"}, + 0x00182002 : { vr : "SH", vm : C.VM_1N, keyword : "FrameLabelVector"}, + 0x00182003 : { vr : "DS", vm : C.VM_1N, keyword : "FramePrimaryAngleVector"}, + 0x00182004 : { vr : "DS", vm : C.VM_1N, keyword : "FrameSecondaryAngleVector"}, + 0x00182005 : { vr : "DS", vm : C.VM_1N, keyword : "SliceLocationVector"}, + 0x00182006 : { vr : "SH", vm : C.VM_1N, keyword : "DisplayWindowLabelVector"}, + 0x00182010 : { vr : "DS", vm : C.VM_TWO, keyword : "NominalScannedPixelSpacing"}, + 0x00182020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DigitizingDeviceTransportDirection"}, + 0x00182030 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RotationOfScannedFilm"}, + 0x00183100 : { vr : "CS", vm : C.VM_SINGLE, keyword : "IVUSAcquisition"}, + 0x00183101 : { vr : "DS", vm : C.VM_SINGLE, keyword : "IVUSPullbackRate"}, + 0x00183102 : { vr : "DS", vm : C.VM_SINGLE, keyword : "IVUSGatedRate"}, + 0x00183103 : { vr : "IS", vm : C.VM_SINGLE, keyword : "IVUSPullbackStartFrameNumber"}, + 0x00183104 : { vr : "IS", vm : C.VM_SINGLE, keyword : "IVUSPullbackStopFrameNumber"}, + 0x00183105 : { vr : "IS", vm : C.VM_1N, keyword : "LesionNumber"}, + 0x00184000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "AcquisitionComments"}, + 0x00185000 : { vr : "SH", vm : C.VM_1N, keyword : "OutputPower"}, + 0x00185010 : { vr : "LO", vm : C.VM_1N, keyword : "TransducerData"}, + 0x00185012 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FocusDepth"}, + 0x00185020 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ProcessingFunction"}, + 0x00185021 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PostprocessingFunction"}, + 0x00185022 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MechanicalIndex"}, + 0x00185024 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BoneThermalIndex"}, + 0x00185026 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CranialThermalIndex"}, + 0x00185027 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SoftTissueThermalIndex"}, + 0x00185028 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SoftTissueFocusThermalIndex"}, + 0x00185029 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SoftTissueSurfaceThermalIndex"}, + 0x00185030 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DynamicRange"}, + 0x00185040 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TotalGain"}, + 0x00185050 : { vr : "IS", vm : C.VM_SINGLE, keyword : "DepthOfScanField"}, + 0x00185100 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientPosition"}, + 0x00185101 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ViewPosition"}, + 0x00185104 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProjectionEponymousNameCodeSequence"}, + 0x00185210 : { vr : "DS", vm : C.VM_SIX, keyword : "ImageTransformationMatrix"}, + 0x00185212 : { vr : "DS", vm : C.VM_THREE, keyword : "ImageTranslationVector"}, + 0x00186000 : { vr : "DS", vm : C.VM_SINGLE, keyword : "Sensitivity"}, + 0x00186011 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SequenceOfUltrasoundRegions"}, + 0x00186012 : { vr : "US", vm : C.VM_SINGLE, keyword : "RegionSpatialFormat"}, + 0x00186014 : { vr : "US", vm : C.VM_SINGLE, keyword : "RegionDataType"}, + 0x00186016 : { vr : "UL", vm : C.VM_SINGLE, keyword : "RegionFlags"}, + 0x00186018 : { vr : "UL", vm : C.VM_SINGLE, keyword : "RegionLocationMinX0"}, + 0x0018601A : { vr : "UL", vm : C.VM_SINGLE, keyword : "RegionLocationMinY0"}, + 0x0018601C : { vr : "UL", vm : C.VM_SINGLE, keyword : "RegionLocationMaxX1"}, + 0x0018601E : { vr : "UL", vm : C.VM_SINGLE, keyword : "RegionLocationMaxY1"}, + 0x00186020 : { vr : "SL", vm : C.VM_SINGLE, keyword : "ReferencePixelX0"}, + 0x00186022 : { vr : "SL", vm : C.VM_SINGLE, keyword : "ReferencePixelY0"}, + 0x00186024 : { vr : "US", vm : C.VM_SINGLE, keyword : "PhysicalUnitsXDirection"}, + 0x00186026 : { vr : "US", vm : C.VM_SINGLE, keyword : "PhysicalUnitsYDirection"}, + 0x00186028 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ReferencePixelPhysicalValueX"}, + 0x0018602A : { vr : "FD", vm : C.VM_SINGLE, keyword : "ReferencePixelPhysicalValueY"}, + 0x0018602C : { vr : "FD", vm : C.VM_SINGLE, keyword : "PhysicalDeltaX"}, + 0x0018602E : { vr : "FD", vm : C.VM_SINGLE, keyword : "PhysicalDeltaY"}, + 0x00186030 : { vr : "UL", vm : C.VM_SINGLE, keyword : "TransducerFrequency"}, + 0x00186031 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TransducerType"}, + 0x00186032 : { vr : "UL", vm : C.VM_SINGLE, keyword : "PulseRepetitionFrequency"}, + 0x00186034 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DopplerCorrectionAngle"}, + 0x00186036 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SteeringAngle"}, + 0x00186038 : { vr : "UL", vm : C.VM_SINGLE, keyword : "DopplerSampleVolumeXPositionRetired"}, + 0x00186039 : { vr : "SL", vm : C.VM_SINGLE, keyword : "DopplerSampleVolumeXPosition"}, + 0x0018603A : { vr : "UL", vm : C.VM_SINGLE, keyword : "DopplerSampleVolumeYPositionRetired"}, + 0x0018603B : { vr : "SL", vm : C.VM_SINGLE, keyword : "DopplerSampleVolumeYPosition"}, + 0x0018603C : { vr : "UL", vm : C.VM_SINGLE, keyword : "TMLinePositionX0Retired"}, + 0x0018603D : { vr : "SL", vm : C.VM_SINGLE, keyword : "TMLinePositionX0"}, + 0x0018603E : { vr : "UL", vm : C.VM_SINGLE, keyword : "TMLinePositionY0Retired"}, + 0x0018603F : { vr : "SL", vm : C.VM_SINGLE, keyword : "TMLinePositionY0"}, + 0x00186040 : { vr : "UL", vm : C.VM_SINGLE, keyword : "TMLinePositionX1Retired"}, + 0x00186041 : { vr : "SL", vm : C.VM_SINGLE, keyword : "TMLinePositionX1"}, + 0x00186042 : { vr : "UL", vm : C.VM_SINGLE, keyword : "TMLinePositionY1Retired"}, + 0x00186043 : { vr : "SL", vm : C.VM_SINGLE, keyword : "TMLinePositionY1"}, + 0x00186044 : { vr : "US", vm : C.VM_SINGLE, keyword : "PixelComponentOrganization"}, + 0x00186046 : { vr : "UL", vm : C.VM_SINGLE, keyword : "PixelComponentMask"}, + 0x00186048 : { vr : "UL", vm : C.VM_SINGLE, keyword : "PixelComponentRangeStart"}, + 0x0018604A : { vr : "UL", vm : C.VM_SINGLE, keyword : "PixelComponentRangeStop"}, + 0x0018604C : { vr : "US", vm : C.VM_SINGLE, keyword : "PixelComponentPhysicalUnits"}, + 0x0018604E : { vr : "US", vm : C.VM_SINGLE, keyword : "PixelComponentDataType"}, + 0x00186050 : { vr : "UL", vm : C.VM_SINGLE, keyword : "NumberOfTableBreakPoints"}, + 0x00186052 : { vr : "UL", vm : C.VM_1N, keyword : "TableOfXBreakPoints"}, + 0x00186054 : { vr : "FD", vm : C.VM_1N, keyword : "TableOfYBreakPoints"}, + 0x00186056 : { vr : "UL", vm : C.VM_SINGLE, keyword : "NumberOfTableEntries"}, + 0x00186058 : { vr : "UL", vm : C.VM_1N, keyword : "TableOfPixelValues"}, + 0x0018605A : { vr : "FL", vm : C.VM_1N, keyword : "TableOfParameterValues"}, + 0x00186060 : { vr : "FL", vm : C.VM_1N, keyword : "RWaveTimeVector"}, + 0x00187000 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DetectorConditionsNominalFlag"}, + 0x00187001 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DetectorTemperature"}, + 0x00187004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DetectorType"}, + 0x00187005 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DetectorConfiguration"}, + 0x00187006 : { vr : "LT", vm : C.VM_SINGLE, keyword : "DetectorDescription"}, + 0x00187008 : { vr : "LT", vm : C.VM_SINGLE, keyword : "DetectorMode"}, + 0x0018700A : { vr : "SH", vm : C.VM_SINGLE, keyword : "DetectorID"}, + 0x0018700C : { vr : "DA", vm : C.VM_SINGLE, keyword : "DateOfLastDetectorCalibration"}, + 0x0018700E : { vr : "TM", vm : C.VM_SINGLE, keyword : "TimeOfLastDetectorCalibration"}, + 0x00187010 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ExposuresOnDetectorSinceLastCalibration"}, + 0x00187011 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ExposuresOnDetectorSinceManufactured"}, + 0x00187012 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DetectorTimeSinceLastExposure"}, + 0x00187014 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DetectorActiveTime"}, + 0x00187016 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DetectorActivationOffsetFromExposure"}, + 0x0018701A : { vr : "DS", vm : C.VM_TWO, keyword : "DetectorBinning"}, + 0x00187020 : { vr : "DS", vm : C.VM_TWO, keyword : "DetectorElementPhysicalSize"}, + 0x00187022 : { vr : "DS", vm : C.VM_TWO, keyword : "DetectorElementSpacing"}, + 0x00187024 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DetectorActiveShape"}, + 0x00187026 : { vr : "DS", vm : C.VM_1_2, keyword : "DetectorActiveDimensions"}, + 0x00187028 : { vr : "DS", vm : C.VM_TWO, keyword : "DetectorActiveOrigin"}, + 0x0018702A : { vr : "LO", vm : C.VM_SINGLE, keyword : "DetectorManufacturerName"}, + 0x0018702B : { vr : "LO", vm : C.VM_SINGLE, keyword : "DetectorManufacturerModelName"}, + 0x00187030 : { vr : "DS", vm : C.VM_TWO, keyword : "FieldOfViewOrigin"}, + 0x00187032 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FieldOfViewRotation"}, + 0x00187034 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FieldOfViewHorizontalFlip"}, + 0x00187036 : { vr : "FL", vm : C.VM_TWO, keyword : "PixelDataAreaOriginRelativeToFOV"}, + 0x00187038 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PixelDataAreaRotationAngleRelativeToFOV"}, + 0x00187040 : { vr : "LT", vm : C.VM_SINGLE, keyword : "GridAbsorbingMaterial"}, + 0x00187041 : { vr : "LT", vm : C.VM_SINGLE, keyword : "GridSpacingMaterial"}, + 0x00187042 : { vr : "DS", vm : C.VM_SINGLE, keyword : "GridThickness"}, + 0x00187044 : { vr : "DS", vm : C.VM_SINGLE, keyword : "GridPitch"}, + 0x00187046 : { vr : "IS", vm : C.VM_TWO, keyword : "GridAspectRatio"}, + 0x00187048 : { vr : "DS", vm : C.VM_SINGLE, keyword : "GridPeriod"}, + 0x0018704C : { vr : "DS", vm : C.VM_SINGLE, keyword : "GridFocalDistance"}, + 0x00187050 : { vr : "CS", vm : C.VM_1N, keyword : "FilterMaterial"}, + 0x00187052 : { vr : "DS", vm : C.VM_1N, keyword : "FilterThicknessMinimum"}, + 0x00187054 : { vr : "DS", vm : C.VM_1N, keyword : "FilterThicknessMaximum"}, + 0x00187056 : { vr : "FL", vm : C.VM_1N, keyword : "FilterBeamPathLengthMinimum"}, + 0x00187058 : { vr : "FL", vm : C.VM_1N, keyword : "FilterBeamPathLengthMaximum"}, + 0x00187060 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExposureControlMode"}, + 0x00187062 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ExposureControlModeDescription"}, + 0x00187064 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExposureStatus"}, + 0x00187065 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PhototimerSetting"}, + 0x00188150 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ExposureTimeInuS"}, + 0x00188151 : { vr : "DS", vm : C.VM_SINGLE, keyword : "XRayTubeCurrentInuA"}, + 0x00189004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContentQualification"}, + 0x00189005 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PulseSequenceName"}, + 0x00189006 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRImagingModifierSequence"}, + 0x00189008 : { vr : "CS", vm : C.VM_SINGLE, keyword : "EchoPulseSequence"}, + 0x00189009 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InversionRecovery"}, + 0x00189010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FlowCompensation"}, + 0x00189011 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MultipleSpinEcho"}, + 0x00189012 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MultiPlanarExcitation"}, + 0x00189014 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PhaseContrast"}, + 0x00189015 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TimeOfFlightContrast"}, + 0x00189016 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Spoiling"}, + 0x00189017 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SteadyStatePulseSequence"}, + 0x00189018 : { vr : "CS", vm : C.VM_SINGLE, keyword : "EchoPlanarPulseSequence"}, + 0x00189019 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TagAngleFirstAxis"}, + 0x00189020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MagnetizationTransfer"}, + 0x00189021 : { vr : "CS", vm : C.VM_SINGLE, keyword : "T2Preparation"}, + 0x00189022 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BloodSignalNulling"}, + 0x00189024 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SaturationRecovery"}, + 0x00189025 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SpectrallySelectedSuppression"}, + 0x00189026 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SpectrallySelectedExcitation"}, + 0x00189027 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SpatialPresaturation"}, + 0x00189028 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Tagging"}, + 0x00189029 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OversamplingPhase"}, + 0x00189030 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TagSpacingFirstDimension"}, + 0x00189032 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GeometryOfKSpaceTraversal"}, + 0x00189033 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SegmentedKSpaceTraversal"}, + 0x00189034 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RectilinearPhaseEncodeReordering"}, + 0x00189035 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TagThickness"}, + 0x00189036 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PartialFourierDirection"}, + 0x00189037 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CardiacSynchronizationTechnique"}, + 0x00189041 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ReceiveCoilManufacturerName"}, + 0x00189042 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRReceiveCoilSequence"}, + 0x00189043 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReceiveCoilType"}, + 0x00189044 : { vr : "CS", vm : C.VM_SINGLE, keyword : "QuadratureReceiveCoil"}, + 0x00189045 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MultiCoilDefinitionSequence"}, + 0x00189046 : { vr : "LO", vm : C.VM_SINGLE, keyword : "MultiCoilConfiguration"}, + 0x00189047 : { vr : "SH", vm : C.VM_SINGLE, keyword : "MultiCoilElementName"}, + 0x00189048 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MultiCoilElementUsed"}, + 0x00189049 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRTransmitCoilSequence"}, + 0x00189050 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TransmitCoilManufacturerName"}, + 0x00189051 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TransmitCoilType"}, + 0x00189052 : { vr : "FD", vm : C.VM_1_2, keyword : "SpectralWidth"}, + 0x00189053 : { vr : "FD", vm : C.VM_1_2, keyword : "ChemicalShiftReference"}, + 0x00189054 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VolumeLocalizationTechnique"}, + 0x00189058 : { vr : "US", vm : C.VM_SINGLE, keyword : "MRAcquisitionFrequencyEncodingSteps"}, + 0x00189059 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Decoupling"}, + 0x00189060 : { vr : "CS", vm : C.VM_1_2, keyword : "DecoupledNucleus"}, + 0x00189061 : { vr : "FD", vm : C.VM_1_2, keyword : "DecouplingFrequency"}, + 0x00189062 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DecouplingMethod"}, + 0x00189063 : { vr : "FD", vm : C.VM_1_2, keyword : "DecouplingChemicalShiftReference"}, + 0x00189064 : { vr : "CS", vm : C.VM_SINGLE, keyword : "KSpaceFiltering"}, + 0x00189065 : { vr : "CS", vm : C.VM_1_2, keyword : "TimeDomainFiltering"}, + 0x00189066 : { vr : "US", vm : C.VM_1_2, keyword : "NumberOfZeroFills"}, + 0x00189067 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BaselineCorrection"}, + 0x00189069 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ParallelReductionFactorInPlane"}, + 0x00189070 : { vr : "FD", vm : C.VM_SINGLE, keyword : "CardiacRRIntervalSpecified"}, + 0x00189073 : { vr : "FD", vm : C.VM_SINGLE, keyword : "AcquisitionDuration"}, + 0x00189074 : { vr : "DT", vm : C.VM_SINGLE, keyword : "FrameAcquisitionDateTime"}, + 0x00189075 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DiffusionDirectionality"}, + 0x00189076 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DiffusionGradientDirectionSequence"}, + 0x00189077 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ParallelAcquisition"}, + 0x00189078 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ParallelAcquisitionTechnique"}, + 0x00189079 : { vr : "FD", vm : C.VM_1N, keyword : "InversionTimes"}, + 0x00189080 : { vr : "ST", vm : C.VM_SINGLE, keyword : "MetaboliteMapDescription"}, + 0x00189081 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PartialFourier"}, + 0x00189082 : { vr : "FD", vm : C.VM_SINGLE, keyword : "EffectiveEchoTime"}, + 0x00189083 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MetaboliteMapCodeSequence"}, + 0x00189084 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChemicalShiftSequence"}, + 0x00189085 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CardiacSignalSource"}, + 0x00189087 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DiffusionBValue"}, + 0x00189089 : { vr : "FD", vm : C.VM_THREE, keyword : "DiffusionGradientOrientation"}, + 0x00189090 : { vr : "FD", vm : C.VM_THREE, keyword : "VelocityEncodingDirection"}, + 0x00189091 : { vr : "FD", vm : C.VM_SINGLE, keyword : "VelocityEncodingMinimumValue"}, + 0x00189092 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VelocityEncodingAcquisitionSequence"}, + 0x00189093 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfKSpaceTrajectories"}, + 0x00189094 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CoverageOfKSpace"}, + 0x00189095 : { vr : "UL", vm : C.VM_SINGLE, keyword : "SpectroscopyAcquisitionPhaseRows"}, + 0x00189096 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ParallelReductionFactorInPlaneRetired"}, + 0x00189098 : { vr : "FD", vm : C.VM_1_2, keyword : "TransmitterFrequency"}, + 0x00189100 : { vr : "CS", vm : C.VM_1_2, keyword : "ResonantNucleus"}, + 0x00189101 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FrequencyCorrection"}, + 0x00189103 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRSpectroscopyFOVGeometrySequence"}, + 0x00189104 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SlabThickness"}, + 0x00189105 : { vr : "FD", vm : C.VM_THREE, keyword : "SlabOrientation"}, + 0x00189106 : { vr : "FD", vm : C.VM_THREE, keyword : "MidSlabPosition"}, + 0x00189107 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRSpatialSaturationSequence"}, + 0x00189112 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRTimingAndRelatedParametersSequence"}, + 0x00189114 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MREchoSequence"}, + 0x00189115 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRModifierSequence"}, + 0x00189117 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRDiffusionSequence"}, + 0x00189118 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CardiacSynchronizationSequence"}, + 0x00189119 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRAveragesSequence"}, + 0x00189125 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRFOVGeometrySequence"}, + 0x00189126 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VolumeLocalizationSequence"}, + 0x00189127 : { vr : "UL", vm : C.VM_SINGLE, keyword : "SpectroscopyAcquisitionDataColumns"}, + 0x00189147 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DiffusionAnisotropyType"}, + 0x00189151 : { vr : "DT", vm : C.VM_SINGLE, keyword : "FrameReferenceDateTime"}, + 0x00189152 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRMetaboliteMapSequence"}, + 0x00189155 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ParallelReductionFactorOutOfPlane"}, + 0x00189159 : { vr : "UL", vm : C.VM_SINGLE, keyword : "SpectroscopyAcquisitionOutOfPlanePhaseSteps"}, + 0x00189166 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BulkMotionStatus"}, + 0x00189168 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ParallelReductionFactorSecondInPlane"}, + 0x00189169 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CardiacBeatRejectionTechnique"}, + 0x00189170 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RespiratoryMotionCompensationTechnique"}, + 0x00189171 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RespiratorySignalSource"}, + 0x00189172 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BulkMotionCompensationTechnique"}, + 0x00189173 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BulkMotionSignalSource"}, + 0x00189174 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ApplicableSafetyStandardAgency"}, + 0x00189175 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ApplicableSafetyStandardDescription"}, + 0x00189176 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OperatingModeSequence"}, + 0x00189177 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OperatingModeType"}, + 0x00189178 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OperatingMode"}, + 0x00189179 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SpecificAbsorptionRateDefinition"}, + 0x00189180 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GradientOutputType"}, + 0x00189181 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SpecificAbsorptionRateValue"}, + 0x00189182 : { vr : "FD", vm : C.VM_SINGLE, keyword : "GradientOutput"}, + 0x00189183 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FlowCompensationDirection"}, + 0x00189184 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TaggingDelay"}, + 0x00189185 : { vr : "ST", vm : C.VM_SINGLE, keyword : "RespiratoryMotionCompensationTechniqueDescription"}, + 0x00189186 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RespiratorySignalSourceID"}, + 0x00189195 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ChemicalShiftMinimumIntegrationLimitInHz"}, + 0x00189196 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ChemicalShiftMaximumIntegrationLimitInHz"}, + 0x00189197 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRVelocityEncodingSequence"}, + 0x00189198 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FirstOrderPhaseCorrection"}, + 0x00189199 : { vr : "CS", vm : C.VM_SINGLE, keyword : "WaterReferencedPhaseCorrection"}, + 0x00189200 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MRSpectroscopyAcquisitionType"}, + 0x00189214 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RespiratoryCyclePosition"}, + 0x00189217 : { vr : "FD", vm : C.VM_SINGLE, keyword : "VelocityEncodingMaximumValue"}, + 0x00189218 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TagSpacingSecondDimension"}, + 0x00189219 : { vr : "SS", vm : C.VM_SINGLE, keyword : "TagAngleSecondAxis"}, + 0x00189220 : { vr : "FD", vm : C.VM_SINGLE, keyword : "FrameAcquisitionDuration"}, + 0x00189226 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRImageFrameTypeSequence"}, + 0x00189227 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRSpectroscopyFrameTypeSequence"}, + 0x00189231 : { vr : "US", vm : C.VM_SINGLE, keyword : "MRAcquisitionPhaseEncodingStepsInPlane"}, + 0x00189232 : { vr : "US", vm : C.VM_SINGLE, keyword : "MRAcquisitionPhaseEncodingStepsOutOfPlane"}, + 0x00189234 : { vr : "UL", vm : C.VM_SINGLE, keyword : "SpectroscopyAcquisitionPhaseColumns"}, + 0x00189236 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CardiacCyclePosition"}, + 0x00189239 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecificAbsorptionRateSequence"}, + 0x00189240 : { vr : "US", vm : C.VM_SINGLE, keyword : "RFEchoTrainLength"}, + 0x00189241 : { vr : "US", vm : C.VM_SINGLE, keyword : "GradientEchoTrainLength"}, + 0x00189250 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ArterialSpinLabelingContrast"}, + 0x00189251 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MRArterialSpinLabelingSequence"}, + 0x00189252 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ASLTechniqueDescription"}, + 0x00189253 : { vr : "US", vm : C.VM_SINGLE, keyword : "ASLSlabNumber"}, + 0x00189254 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ASLSlabThickness"}, + 0x00189255 : { vr : "FD", vm : C.VM_THREE, keyword : "ASLSlabOrientation"}, + 0x00189256 : { vr : "FD", vm : C.VM_THREE, keyword : "ASLMidSlabPosition"}, + 0x00189257 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ASLContext"}, + 0x00189258 : { vr : "UL", vm : C.VM_SINGLE, keyword : "ASLPulseTrainDuration"}, + 0x00189259 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ASLCrusherFlag"}, + 0x0018925A : { vr : "FD", vm : C.VM_SINGLE, keyword : "ASLCrusherFlow"}, + 0x0018925B : { vr : "LO", vm : C.VM_SINGLE, keyword : "ASLCrusherDescription"}, + 0x0018925C : { vr : "CS", vm : C.VM_SINGLE, keyword : "ASLBolusCutoffFlag"}, + 0x0018925D : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ASLBolusCutoffTimingSequence"}, + 0x0018925E : { vr : "LO", vm : C.VM_SINGLE, keyword : "ASLBolusCutoffTechnique"}, + 0x0018925F : { vr : "UL", vm : C.VM_SINGLE, keyword : "ASLBolusCutoffDelayTime"}, + 0x00189260 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ASLSlabSequence"}, + 0x00189295 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ChemicalShiftMinimumIntegrationLimitInppm"}, + 0x00189296 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ChemicalShiftMaximumIntegrationLimitInppm"}, + 0x00189301 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTAcquisitionTypeSequence"}, + 0x00189302 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AcquisitionType"}, + 0x00189303 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TubeAngle"}, + 0x00189304 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTAcquisitionDetailsSequence"}, + 0x00189305 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RevolutionTime"}, + 0x00189306 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SingleCollimationWidth"}, + 0x00189307 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TotalCollimationWidth"}, + 0x00189308 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTTableDynamicsSequence"}, + 0x00189309 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableSpeed"}, + 0x00189310 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableFeedPerRotation"}, + 0x00189311 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SpiralPitchFactor"}, + 0x00189312 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTGeometrySequence"}, + 0x00189313 : { vr : "FD", vm : C.VM_THREE, keyword : "DataCollectionCenterPatient"}, + 0x00189314 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTReconstructionSequence"}, + 0x00189315 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReconstructionAlgorithm"}, + 0x00189316 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ConvolutionKernelGroup"}, + 0x00189317 : { vr : "FD", vm : C.VM_TWO, keyword : "ReconstructionFieldOfView"}, + 0x00189318 : { vr : "FD", vm : C.VM_THREE, keyword : "ReconstructionTargetCenterPatient"}, + 0x00189319 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ReconstructionAngle"}, + 0x00189320 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ImageFilter"}, + 0x00189321 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTExposureSequence"}, + 0x00189322 : { vr : "FD", vm : C.VM_TWO, keyword : "ReconstructionPixelSpacing"}, + 0x00189323 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExposureModulationType"}, + 0x00189324 : { vr : "FD", vm : C.VM_SINGLE, keyword : "EstimatedDoseSaving"}, + 0x00189325 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTXRayDetailsSequence"}, + 0x00189326 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTPositionSequence"}, + 0x00189327 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TablePosition"}, + 0x00189328 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ExposureTimeInms"}, + 0x00189329 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTImageFrameTypeSequence"}, + 0x00189330 : { vr : "FD", vm : C.VM_SINGLE, keyword : "XRayTubeCurrentInmA"}, + 0x00189332 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ExposureInmAs"}, + 0x00189333 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ConstantVolumeFlag"}, + 0x00189334 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FluoroscopyFlag"}, + 0x00189335 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DistanceSourceToDataCollectionCenter"}, + 0x00189337 : { vr : "US", vm : C.VM_SINGLE, keyword : "ContrastBolusAgentNumber"}, + 0x00189338 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContrastBolusIngredientCodeSequence"}, + 0x00189340 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContrastAdministrationProfileSequence"}, + 0x00189341 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContrastBolusUsageSequence"}, + 0x00189342 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContrastBolusAgentAdministered"}, + 0x00189343 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContrastBolusAgentDetected"}, + 0x00189344 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContrastBolusAgentPhase"}, + 0x00189345 : { vr : "FD", vm : C.VM_SINGLE, keyword : "CTDIvol"}, + 0x00189346 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTDIPhantomTypeCodeSequence"}, + 0x00189351 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CalciumScoringMassFactorPatient"}, + 0x00189352 : { vr : "FL", vm : C.VM_THREE, keyword : "CalciumScoringMassFactorDevice"}, + 0x00189353 : { vr : "FL", vm : C.VM_SINGLE, keyword : "EnergyWeightingFactor"}, + 0x00189360 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CTAdditionalXRaySourceSequence"}, + 0x00189401 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProjectionPixelCalibrationSequence"}, + 0x00189402 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DistanceSourceToIsocenter"}, + 0x00189403 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DistanceObjectToTableTop"}, + 0x00189404 : { vr : "FL", vm : C.VM_TWO, keyword : "ObjectPixelSpacingInCenterOfBeam"}, + 0x00189405 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PositionerPositionSequence"}, + 0x00189406 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TablePositionSequence"}, + 0x00189407 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CollimatorShapeSequence"}, + 0x00189410 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PlanesInAcquisition"}, + 0x00189412 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "XAXRFFrameCharacteristicsSequence"}, + 0x00189417 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameAcquisitionSequence"}, + 0x00189420 : { vr : "CS", vm : C.VM_SINGLE, keyword : "XRayReceptorType"}, + 0x00189423 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AcquisitionProtocolName"}, + 0x00189424 : { vr : "LT", vm : C.VM_SINGLE, keyword : "AcquisitionProtocolDescription"}, + 0x00189425 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContrastBolusIngredientOpaque"}, + 0x00189426 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DistanceReceptorPlaneToDetectorHousing"}, + 0x00189427 : { vr : "CS", vm : C.VM_SINGLE, keyword : "IntensifierActiveShape"}, + 0x00189428 : { vr : "FL", vm : C.VM_1_2, keyword : "IntensifierActiveDimensions"}, + 0x00189429 : { vr : "FL", vm : C.VM_TWO, keyword : "PhysicalDetectorSize"}, + 0x00189430 : { vr : "FL", vm : C.VM_TWO, keyword : "PositionOfIsocenterProjection"}, + 0x00189432 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FieldOfViewSequence"}, + 0x00189433 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FieldOfViewDescription"}, + 0x00189434 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ExposureControlSensingRegionsSequence"}, + 0x00189435 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExposureControlSensingRegionShape"}, + 0x00189436 : { vr : "SS", vm : C.VM_SINGLE, keyword : "ExposureControlSensingRegionLeftVerticalEdge"}, + 0x00189437 : { vr : "SS", vm : C.VM_SINGLE, keyword : "ExposureControlSensingRegionRightVerticalEdge"}, + 0x00189438 : { vr : "SS", vm : C.VM_SINGLE, keyword : "ExposureControlSensingRegionUpperHorizontalEdge"}, + 0x00189439 : { vr : "SS", vm : C.VM_SINGLE, keyword : "ExposureControlSensingRegionLowerHorizontalEdge"}, + 0x00189440 : { vr : "SS", vm : C.VM_TWO, keyword : "CenterOfCircularExposureControlSensingRegion"}, + 0x00189441 : { vr : "US", vm : C.VM_SINGLE, keyword : "RadiusOfCircularExposureControlSensingRegion"}, + 0x00189442 : { vr : "SS", vm : C.VM_2N, keyword : "VerticesOfThePolygonalExposureControlSensingRegion"}, + 0x00189447 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ColumnAngulationPatient"}, + 0x00189449 : { vr : "FL", vm : C.VM_SINGLE, keyword : "BeamAngle"}, + 0x00189451 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameDetectorParametersSequence"}, + 0x00189452 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CalculatedAnatomyThickness"}, + 0x00189455 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CalibrationSequence"}, + 0x00189456 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ObjectThicknessSequence"}, + 0x00189457 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PlaneIdentification"}, + 0x00189461 : { vr : "FL", vm : C.VM_1_2, keyword : "FieldOfViewDimensionsInFloat"}, + 0x00189462 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IsocenterReferenceSystemSequence"}, + 0x00189463 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PositionerIsocenterPrimaryAngle"}, + 0x00189464 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PositionerIsocenterSecondaryAngle"}, + 0x00189465 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PositionerIsocenterDetectorRotationAngle"}, + 0x00189466 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableXPositionToIsocenter"}, + 0x00189467 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableYPositionToIsocenter"}, + 0x00189468 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableZPositionToIsocenter"}, + 0x00189469 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableHorizontalRotationAngle"}, + 0x00189470 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableHeadTiltAngle"}, + 0x00189471 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableCradleTiltAngle"}, + 0x00189472 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameDisplayShutterSequence"}, + 0x00189473 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AcquiredImageAreaDoseProduct"}, + 0x00189474 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CArmPositionerTabletopRelationship"}, + 0x00189476 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "XRayGeometrySequence"}, + 0x00189477 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IrradiationEventIdentificationSequence"}, + 0x00189504 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "XRay3DFrameTypeSequence"}, + 0x00189506 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContributingSourcesSequence"}, + 0x00189507 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "XRay3DAcquisitionSequence"}, + 0x00189508 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PrimaryPositionerScanArc"}, + 0x00189509 : { vr : "FL", vm : C.VM_SINGLE, keyword : "SecondaryPositionerScanArc"}, + 0x00189510 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PrimaryPositionerScanStartAngle"}, + 0x00189511 : { vr : "FL", vm : C.VM_SINGLE, keyword : "SecondaryPositionerScanStartAngle"}, + 0x00189514 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PrimaryPositionerIncrement"}, + 0x00189515 : { vr : "FL", vm : C.VM_SINGLE, keyword : "SecondaryPositionerIncrement"}, + 0x00189516 : { vr : "DT", vm : C.VM_SINGLE, keyword : "StartAcquisitionDateTime"}, + 0x00189517 : { vr : "DT", vm : C.VM_SINGLE, keyword : "EndAcquisitionDateTime"}, + 0x00189524 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ApplicationName"}, + 0x00189525 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ApplicationVersion"}, + 0x00189526 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ApplicationManufacturer"}, + 0x00189527 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AlgorithmType"}, + 0x00189528 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AlgorithmDescription"}, + 0x00189530 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "XRay3DReconstructionSequence"}, + 0x00189531 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ReconstructionDescription"}, + 0x00189538 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerProjectionAcquisitionSequence"}, + 0x00189601 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DiffusionBMatrixSequence"}, + 0x00189602 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DiffusionBValueXX"}, + 0x00189603 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DiffusionBValueXY"}, + 0x00189604 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DiffusionBValueXZ"}, + 0x00189605 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DiffusionBValueYY"}, + 0x00189606 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DiffusionBValueYZ"}, + 0x00189607 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DiffusionBValueZZ"}, + 0x00189701 : { vr : "DT", vm : C.VM_SINGLE, keyword : "DecayCorrectionDateTime"}, + 0x00189715 : { vr : "FD", vm : C.VM_SINGLE, keyword : "StartDensityThreshold"}, + 0x00189716 : { vr : "FD", vm : C.VM_SINGLE, keyword : "StartRelativeDensityDifferenceThreshold"}, + 0x00189717 : { vr : "FD", vm : C.VM_SINGLE, keyword : "StartCardiacTriggerCountThreshold"}, + 0x00189718 : { vr : "FD", vm : C.VM_SINGLE, keyword : "StartRespiratoryTriggerCountThreshold"}, + 0x00189719 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TerminationCountsThreshold"}, + 0x00189720 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TerminationDensityThreshold"}, + 0x00189721 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TerminationRelativeDensityThreshold"}, + 0x00189722 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TerminationTimeThreshold"}, + 0x00189723 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TerminationCardiacTriggerCountThreshold"}, + 0x00189724 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TerminationRespiratoryTriggerCountThreshold"}, + 0x00189725 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DetectorGeometry"}, + 0x00189726 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TransverseDetectorSeparation"}, + 0x00189727 : { vr : "FD", vm : C.VM_SINGLE, keyword : "AxialDetectorDimension"}, + 0x00189729 : { vr : "US", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalAgentNumber"}, + 0x00189732 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PETFrameAcquisitionSequence"}, + 0x00189733 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PETDetectorMotionDetailsSequence"}, + 0x00189734 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PETTableDynamicsSequence"}, + 0x00189735 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PETPositionSequence"}, + 0x00189736 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PETFrameCorrectionFactorsSequence"}, + 0x00189737 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalUsageSequence"}, + 0x00189738 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AttenuationCorrectionSource"}, + 0x00189739 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfIterations"}, + 0x00189740 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfSubsets"}, + 0x00189749 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PETReconstructionSequence"}, + 0x00189751 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PETFrameTypeSequence"}, + 0x00189755 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TimeOfFlightInformationUsed"}, + 0x00189756 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReconstructionType"}, + 0x00189758 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DecayCorrected"}, + 0x00189759 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AttenuationCorrected"}, + 0x00189760 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ScatterCorrected"}, + 0x00189761 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DeadTimeCorrected"}, + 0x00189762 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GantryMotionCorrected"}, + 0x00189763 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientMotionCorrected"}, + 0x00189764 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CountLossNormalizationCorrected"}, + 0x00189765 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RandomsCorrected"}, + 0x00189766 : { vr : "CS", vm : C.VM_SINGLE, keyword : "NonUniformRadialSamplingCorrected"}, + 0x00189767 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SensitivityCalibrated"}, + 0x00189768 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DetectorNormalizationCorrection"}, + 0x00189769 : { vr : "CS", vm : C.VM_SINGLE, keyword : "IterativeReconstructionMethod"}, + 0x00189770 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AttenuationCorrectionTemporalRelationship"}, + 0x00189771 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientPhysiologicalStateSequence"}, + 0x00189772 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientPhysiologicalStateCodeSequence"}, + 0x00189801 : { vr : "FD", vm : C.VM_1N, keyword : "DepthsOfFocus"}, + 0x00189803 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ExcludedIntervalsSequence"}, + 0x00189804 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ExclusionStartDatetime"}, + 0x00189805 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ExclusionDuration"}, + 0x00189806 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "USImageDescriptionSequence"}, + 0x00189807 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageDataTypeSequence"}, + 0x00189808 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DataType"}, + 0x00189809 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerScanPatternCodeSequence"}, + 0x0018980B : { vr : "CS", vm : C.VM_SINGLE, keyword : "AliasedDataType"}, + 0x0018980C : { vr : "CS", vm : C.VM_SINGLE, keyword : "PositionMeasuringDeviceUsed"}, + 0x0018980D : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerGeometryCodeSequence"}, + 0x0018980E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerBeamSteeringCodeSequence"}, + 0x0018980F : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TransducerApplicationCodeSequence"}, + 0x0018A001 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContributingEquipmentSequence"}, + 0x0018A002 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ContributionDateTime"}, + 0x0018A003 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ContributionDescription"}, + 0x0020000D : { vr : "UI", vm : C.VM_SINGLE, keyword : "StudyInstanceUID"}, + 0x0020000E : { vr : "UI", vm : C.VM_SINGLE, keyword : "SeriesInstanceUID"}, + 0x00200010 : { vr : "SH", vm : C.VM_SINGLE, keyword : "StudyID"}, + 0x00200011 : { vr : "IS", vm : C.VM_SINGLE, keyword : "SeriesNumber"}, + 0x00200012 : { vr : "IS", vm : C.VM_SINGLE, keyword : "AcquisitionNumber"}, + 0x00200013 : { vr : "IS", vm : C.VM_SINGLE, keyword : "InstanceNumber"}, + 0x00200014 : { vr : "IS", vm : C.VM_SINGLE, keyword : "IsotopeNumber"}, + 0x00200015 : { vr : "IS", vm : C.VM_SINGLE, keyword : "PhaseNumber"}, + 0x00200016 : { vr : "IS", vm : C.VM_SINGLE, keyword : "IntervalNumber"}, + 0x00200017 : { vr : "IS", vm : C.VM_SINGLE, keyword : "TimeSlotNumber"}, + 0x00200018 : { vr : "IS", vm : C.VM_SINGLE, keyword : "AngleNumber"}, + 0x00200019 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ItemNumber"}, + 0x00200020 : { vr : "CS", vm : C.VM_TWO, keyword : "PatientOrientation"}, + 0x00200022 : { vr : "IS", vm : C.VM_SINGLE, keyword : "OverlayNumber"}, + 0x00200024 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CurveNumber"}, + 0x00200026 : { vr : "IS", vm : C.VM_SINGLE, keyword : "LUTNumber"}, + 0x00200030 : { vr : "DS", vm : C.VM_THREE, keyword : "ImagePosition"}, + 0x00200032 : { vr : "DS", vm : C.VM_THREE, keyword : "ImagePositionPatient"}, + 0x00200035 : { vr : "DS", vm : C.VM_SIX, keyword : "ImageOrientation"}, + 0x00200037 : { vr : "DS", vm : C.VM_SIX, keyword : "ImageOrientationPatient"}, + 0x00200050 : { vr : "DS", vm : C.VM_SINGLE, keyword : "Location"}, + 0x00200052 : { vr : "UI", vm : C.VM_SINGLE, keyword : "FrameOfReferenceUID"}, + 0x00200060 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Laterality"}, + 0x00200062 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageLaterality"}, + 0x00200070 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImageGeometryType"}, + 0x00200080 : { vr : "CS", vm : C.VM_1N, keyword : "MaskingImage"}, + 0x002000AA : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReportNumber"}, + 0x00200100 : { vr : "IS", vm : C.VM_SINGLE, keyword : "TemporalPositionIdentifier"}, + 0x00200105 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfTemporalPositions"}, + 0x00200110 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TemporalResolution"}, + 0x00200200 : { vr : "UI", vm : C.VM_SINGLE, keyword : "SynchronizationFrameOfReferenceUID"}, + 0x00200242 : { vr : "UI", vm : C.VM_SINGLE, keyword : "SOPInstanceUIDOfConcatenationSource"}, + 0x00201000 : { vr : "IS", vm : C.VM_SINGLE, keyword : "SeriesInStudy"}, + 0x00201001 : { vr : "IS", vm : C.VM_SINGLE, keyword : "AcquisitionsInSeries"}, + 0x00201002 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ImagesInAcquisition"}, + 0x00201003 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ImagesInSeries"}, + 0x00201004 : { vr : "IS", vm : C.VM_SINGLE, keyword : "AcquisitionsInStudy"}, + 0x00201005 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ImagesInStudy"}, + 0x00201020 : { vr : "LO", vm : C.VM_1N, keyword : "Reference"}, + 0x00201040 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PositionReferenceIndicator"}, + 0x00201041 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SliceLocation"}, + 0x00201070 : { vr : "IS", vm : C.VM_1N, keyword : "OtherStudyNumbers"}, + 0x00201200 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfPatientRelatedStudies"}, + 0x00201202 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfPatientRelatedSeries"}, + 0x00201204 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfPatientRelatedInstances"}, + 0x00201206 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfStudyRelatedSeries"}, + 0x00201208 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfStudyRelatedInstances"}, + 0x00201209 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfSeriesRelatedInstances"}, + 0x00203401 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ModifyingDeviceID"}, + 0x00203402 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ModifiedImageID"}, + 0x00203403 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ModifiedImageDate"}, + 0x00203404 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ModifyingDeviceManufacturer"}, + 0x00203405 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ModifiedImageTime"}, + 0x00203406 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ModifiedImageDescription"}, + 0x00204000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ImageComments"}, + 0x00205000 : { vr : "AT", vm : C.VM_1N, keyword : "OriginalImageIdentification"}, + 0x00205002 : { vr : "LO", vm : C.VM_1N, keyword : "OriginalImageIdentificationNomenclature"}, + 0x00209056 : { vr : "SH", vm : C.VM_SINGLE, keyword : "StackID"}, + 0x00209057 : { vr : "UL", vm : C.VM_SINGLE, keyword : "InStackPositionNumber"}, + 0x00209071 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameAnatomySequence"}, + 0x00209072 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FrameLaterality"}, + 0x00209111 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameContentSequence"}, + 0x00209113 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlanePositionSequence"}, + 0x00209116 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlaneOrientationSequence"}, + 0x00209128 : { vr : "UL", vm : C.VM_SINGLE, keyword : "TemporalPositionIndex"}, + 0x00209153 : { vr : "FD", vm : C.VM_SINGLE, keyword : "NominalCardiacTriggerDelayTime"}, + 0x00209154 : { vr : "FL", vm : C.VM_SINGLE, keyword : "NominalCardiacTriggerTimePriorToRPeak"}, + 0x00209155 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ActualCardiacTriggerTimePriorToRPeak"}, + 0x00209156 : { vr : "US", vm : C.VM_SINGLE, keyword : "FrameAcquisitionNumber"}, + 0x00209157 : { vr : "UL", vm : C.VM_1N, keyword : "DimensionIndexValues"}, + 0x00209158 : { vr : "LT", vm : C.VM_SINGLE, keyword : "FrameComments"}, + 0x00209161 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ConcatenationUID"}, + 0x00209162 : { vr : "US", vm : C.VM_SINGLE, keyword : "InConcatenationNumber"}, + 0x00209163 : { vr : "US", vm : C.VM_SINGLE, keyword : "InConcatenationTotalNumber"}, + 0x00209164 : { vr : "UI", vm : C.VM_SINGLE, keyword : "DimensionOrganizationUID"}, + 0x00209165 : { vr : "AT", vm : C.VM_SINGLE, keyword : "DimensionIndexPointer"}, + 0x00209167 : { vr : "AT", vm : C.VM_SINGLE, keyword : "FunctionalGroupPointer"}, + 0x00209213 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DimensionIndexPrivateCreator"}, + 0x00209221 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DimensionOrganizationSequence"}, + 0x00209222 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DimensionIndexSequence"}, + 0x00209228 : { vr : "UL", vm : C.VM_SINGLE, keyword : "ConcatenationFrameOffsetNumber"}, + 0x00209238 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FunctionalGroupPrivateCreator"}, + 0x00209241 : { vr : "FL", vm : C.VM_SINGLE, keyword : "NominalPercentageOfCardiacPhase"}, + 0x00209245 : { vr : "FL", vm : C.VM_SINGLE, keyword : "NominalPercentageOfRespiratoryPhase"}, + 0x00209246 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StartingRespiratoryAmplitude"}, + 0x00209247 : { vr : "CS", vm : C.VM_SINGLE, keyword : "StartingRespiratoryPhase"}, + 0x00209248 : { vr : "FL", vm : C.VM_SINGLE, keyword : "EndingRespiratoryAmplitude"}, + 0x00209249 : { vr : "CS", vm : C.VM_SINGLE, keyword : "EndingRespiratoryPhase"}, + 0x00209250 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RespiratoryTriggerType"}, + 0x00209251 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RRIntervalTimeNominal"}, + 0x00209252 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ActualCardiacTriggerDelayTime"}, + 0x00209253 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RespiratorySynchronizationSequence"}, + 0x00209254 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RespiratoryIntervalTime"}, + 0x00209255 : { vr : "FD", vm : C.VM_SINGLE, keyword : "NominalRespiratoryTriggerDelayTime"}, + 0x00209256 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RespiratoryTriggerDelayThreshold"}, + 0x00209257 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ActualRespiratoryTriggerDelayTime"}, + 0x00209301 : { vr : "FD", vm : C.VM_THREE, keyword : "ImagePositionVolume"}, + 0x00209302 : { vr : "FD", vm : C.VM_SIX, keyword : "ImageOrientationVolume"}, + 0x00209307 : { vr : "CS", vm : C.VM_SINGLE, keyword : "UltrasoundAcquisitionGeometry"}, + 0x00209308 : { vr : "FD", vm : C.VM_THREE, keyword : "ApexPosition"}, + 0x00209309 : { vr : "FD", vm : C.VM_16, keyword : "VolumeToTransducerMappingMatrix"}, + 0x0020930A : { vr : "FD", vm : C.VM_16, keyword : "VolumeToTableMappingMatrix"}, + 0x0020930C : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientFrameOfReferenceSource"}, + 0x0020930D : { vr : "FD", vm : C.VM_SINGLE, keyword : "TemporalPositionTimeOffset"}, + 0x0020930E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlanePositionVolumeSequence"}, + 0x0020930F : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlaneOrientationVolumeSequence"}, + 0x00209310 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TemporalPositionSequence"}, + 0x00209311 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DimensionOrganizationType"}, + 0x00209312 : { vr : "UI", vm : C.VM_SINGLE, keyword : "VolumeFrameOfReferenceUID"}, + 0x00209313 : { vr : "UI", vm : C.VM_SINGLE, keyword : "TableFrameOfReferenceUID"}, + 0x00209421 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DimensionDescriptionLabel"}, + 0x00209450 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientOrientationInFrameSequence"}, + 0x00209453 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FrameLabel"}, + 0x00209518 : { vr : "US", vm : C.VM_1N, keyword : "AcquisitionIndex"}, + 0x00209529 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContributingSOPInstancesReferenceSequence"}, + 0x00209536 : { vr : "US", vm : C.VM_SINGLE, keyword : "ReconstructionIndex"}, + 0x00220001 : { vr : "US", vm : C.VM_SINGLE, keyword : "LightPathFilterPassThroughWavelength"}, + 0x00220002 : { vr : "US", vm : C.VM_TWO, keyword : "LightPathFilterPassBand"}, + 0x00220003 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImagePathFilterPassThroughWavelength"}, + 0x00220004 : { vr : "US", vm : C.VM_TWO, keyword : "ImagePathFilterPassBand"}, + 0x00220005 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientEyeMovementCommanded"}, + 0x00220006 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientEyeMovementCommandCodeSequence"}, + 0x00220007 : { vr : "FL", vm : C.VM_SINGLE, keyword : "SphericalLensPower"}, + 0x00220008 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CylinderLensPower"}, + 0x00220009 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CylinderAxis"}, + 0x0022000A : { vr : "FL", vm : C.VM_SINGLE, keyword : "EmmetropicMagnification"}, + 0x0022000B : { vr : "FL", vm : C.VM_SINGLE, keyword : "IntraOcularPressure"}, + 0x0022000C : { vr : "FL", vm : C.VM_SINGLE, keyword : "HorizontalFieldOfView"}, + 0x0022000D : { vr : "CS", vm : C.VM_SINGLE, keyword : "PupilDilated"}, + 0x0022000E : { vr : "FL", vm : C.VM_SINGLE, keyword : "DegreeOfDilation"}, + 0x00220010 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StereoBaselineAngle"}, + 0x00220011 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StereoBaselineDisplacement"}, + 0x00220012 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StereoHorizontalPixelOffset"}, + 0x00220013 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StereoVerticalPixelOffset"}, + 0x00220014 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StereoRotation"}, + 0x00220015 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AcquisitionDeviceTypeCodeSequence"}, + 0x00220016 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IlluminationTypeCodeSequence"}, + 0x00220017 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LightPathFilterTypeStackCodeSequence"}, + 0x00220018 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImagePathFilterTypeStackCodeSequence"}, + 0x00220019 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LensesCodeSequence"}, + 0x0022001A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelDescriptionCodeSequence"}, + 0x0022001B : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RefractiveStateSequence"}, + 0x0022001C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MydriaticAgentCodeSequence"}, + 0x0022001D : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelativeImagePositionCodeSequence"}, + 0x0022001E : { vr : "FL", vm : C.VM_SINGLE, keyword : "CameraAngleOfView"}, + 0x00220020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "StereoPairsSequence"}, + 0x00220021 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LeftImageSequence"}, + 0x00220022 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RightImageSequence"}, + 0x00220030 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AxialLengthOfTheEye"}, + 0x00220031 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicFrameLocationSequence"}, + 0x00220032 : { vr : "FL", vm : C.VM_2_2N, keyword : "ReferenceCoordinates"}, + 0x00220035 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DepthSpatialResolution"}, + 0x00220036 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MaximumDepthDistortion"}, + 0x00220037 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AlongScanSpatialResolution"}, + 0x00220038 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MaximumAlongScanDistortion"}, + 0x00220039 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OphthalmicImageOrientation"}, + 0x00220041 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DepthOfTransverseImage"}, + 0x00220042 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MydriaticAgentConcentrationUnitsSequence"}, + 0x00220048 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AcrossScanSpatialResolution"}, + 0x00220049 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MaximumAcrossScanDistortion"}, + 0x0022004E : { vr : "DS", vm : C.VM_SINGLE, keyword : "MydriaticAgentConcentration"}, + 0x00220055 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IlluminationWaveLength"}, + 0x00220056 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IlluminationPower"}, + 0x00220057 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IlluminationBandwidth"}, + 0x00220058 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MydriaticAgentSequence"}, + 0x00221007 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialMeasurementsRightEyeSequence"}, + 0x00221008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialMeasurementsLeftEyeSequence"}, + 0x00221010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthMeasurementsType"}, + 0x00221019 : { vr : "FL", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLength"}, + 0x00221024 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LensStatusCodeSequence"}, + 0x00221025 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VitreousStatusCodeSequence"}, + 0x00221028 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IOLFormulaCodeSequence"}, + 0x00221029 : { vr : "LO", vm : C.VM_SINGLE, keyword : "IOLFormulaDetail"}, + 0x00221033 : { vr : "FL", vm : C.VM_SINGLE, keyword : "KeratometerIndex"}, + 0x00221035 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceOfOphthalmicAxialLengthCodeSequence"}, + 0x00221037 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TargetRefraction"}, + 0x00221039 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RefractiveProcedureOccurred"}, + 0x00221040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RefractiveSurgeryTypeCodeSequence"}, + 0x00221044 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicUltrasoundAxialMeasurementsTypeCodeSequence"}, + 0x00221050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthMeasurementsSequence"}, + 0x00221053 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IOLPower"}, + 0x00221054 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PredictedRefractiveError"}, + 0x00221059 : { vr : "FL", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthVelocity"}, + 0x00221065 : { vr : "LO", vm : C.VM_SINGLE, keyword : "LensStatusDescription"}, + 0x00221066 : { vr : "LO", vm : C.VM_SINGLE, keyword : "VitreousStatusDescription"}, + 0x00221090 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IOLPowerSequence"}, + 0x00221092 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LensConstantSequence"}, + 0x00221093 : { vr : "LO", vm : C.VM_SINGLE, keyword : "IOLManufacturer"}, + 0x00221094 : { vr : "LO", vm : C.VM_SINGLE, keyword : "LensConstantDescription"}, + 0x00221096 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "KeratometryMeasurementTypeCodeSequence"}, + 0x00221100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedOphthalmicAxialMeasurementsSequence"}, + 0x00221101 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"}, + 0x00221103 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RefractiveErrorBeforeRefractiveSurgeryCodeSequence"}, + 0x00221121 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IOLPowerForExactEmmetropia"}, + 0x00221122 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IOLPowerForExactTargetRefraction"}, + 0x00221125 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnteriorChamberDepthDefinitionCodeSequence"}, + 0x00221130 : { vr : "FL", vm : C.VM_SINGLE, keyword : "LensThickness"}, + 0x00221131 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AnteriorChamberDepth"}, + 0x00221132 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceOfLensThicknessDataCodeSequence"}, + 0x00221133 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceOfAnteriorChamberDepthDataCodeSequence"}, + 0x00221135 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceOfRefractiveErrorDataCodeSequence"}, + 0x00221140 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthMeasurementModified"}, + 0x00221150 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthDataSourceCodeSequence"}, + 0x00221153 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthAcquisitionMethodCodeSequence"}, + 0x00221155 : { vr : "FL", vm : C.VM_SINGLE, keyword : "SignalToNoiseRatio"}, + 0x00221159 : { vr : "LO", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthDataSourceDescription"}, + 0x00221210 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthMeasurementsTotalLengthSequence"}, + 0x00221211 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"}, + 0x00221212 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthMeasurementsLengthSummationSequence"}, + 0x00221220 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "UltrasoundOphthalmicAxialLengthMeasurementsSequence"}, + 0x00221225 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OpticalOphthalmicAxialLengthMeasurementsSequence"}, + 0x00221230 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "UltrasoundSelectedOphthalmicAxialLengthSequence"}, + 0x00221250 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthSelectionMethodCodeSequence"}, + 0x00221255 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OpticalSelectedOphthalmicAxialLengthSequence"}, + 0x00221257 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SelectedSegmentalOphthalmicAxialLengthSequence"}, + 0x00221260 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SelectedTotalOphthalmicAxialLengthSequence"}, + 0x00221262 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthQualityMetricSequence"}, + 0x00221273 : { vr : "LO", vm : C.VM_SINGLE, keyword : "OphthalmicAxialLengthQualityMetricTypeDescription"}, + 0x00221300 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IntraocularLensCalculationsRightEyeSequence"}, + 0x00221310 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IntraocularLensCalculationsLeftEyeSequence"}, + 0x00221330 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"}, + 0x00240010 : { vr : "FL", vm : C.VM_SINGLE, keyword : "VisualFieldHorizontalExtent"}, + 0x00240011 : { vr : "FL", vm : C.VM_SINGLE, keyword : "VisualFieldVerticalExtent"}, + 0x00240012 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VisualFieldShape"}, + 0x00240016 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScreeningTestModeCodeSequence"}, + 0x00240018 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MaximumStimulusLuminance"}, + 0x00240020 : { vr : "FL", vm : C.VM_SINGLE, keyword : "BackgroundLuminance"}, + 0x00240021 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "StimulusColorCodeSequence"}, + 0x00240024 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BackgroundIlluminationColorCodeSequence"}, + 0x00240025 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StimulusArea"}, + 0x00240028 : { vr : "FL", vm : C.VM_SINGLE, keyword : "StimulusPresentationTime"}, + 0x00240032 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FixationSequence"}, + 0x00240033 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FixationMonitoringCodeSequence"}, + 0x00240034 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualFieldCatchTrialSequence"}, + 0x00240035 : { vr : "US", vm : C.VM_SINGLE, keyword : "FixationCheckedQuantity"}, + 0x00240036 : { vr : "US", vm : C.VM_SINGLE, keyword : "PatientNotProperlyFixatedQuantity"}, + 0x00240037 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PresentedVisualStimuliDataFlag"}, + 0x00240038 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfVisualStimuli"}, + 0x00240039 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExcessiveFixationLossesDataFlag"}, + 0x00240040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExcessiveFixationLosses"}, + 0x00240042 : { vr : "US", vm : C.VM_SINGLE, keyword : "StimuliRetestingQuantity"}, + 0x00240044 : { vr : "LT", vm : C.VM_SINGLE, keyword : "CommentsOnPatientPerformanceOfVisualField"}, + 0x00240045 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FalseNegativesEstimateFlag"}, + 0x00240046 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FalseNegativesEstimate"}, + 0x00240048 : { vr : "US", vm : C.VM_SINGLE, keyword : "NegativeCatchTrialsQuantity"}, + 0x00240050 : { vr : "US", vm : C.VM_SINGLE, keyword : "FalseNegativesQuantity"}, + 0x00240051 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExcessiveFalseNegativesDataFlag"}, + 0x00240052 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExcessiveFalseNegatives"}, + 0x00240053 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FalsePositivesEstimateFlag"}, + 0x00240054 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FalsePositivesEstimate"}, + 0x00240055 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CatchTrialsDataFlag"}, + 0x00240056 : { vr : "US", vm : C.VM_SINGLE, keyword : "PositiveCatchTrialsQuantity"}, + 0x00240057 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TestPointNormalsDataFlag"}, + 0x00240058 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TestPointNormalsSequence"}, + 0x00240059 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GlobalDeviationProbabilityNormalsFlag"}, + 0x00240060 : { vr : "US", vm : C.VM_SINGLE, keyword : "FalsePositivesQuantity"}, + 0x00240061 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExcessiveFalsePositivesDataFlag"}, + 0x00240062 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExcessiveFalsePositives"}, + 0x00240063 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VisualFieldTestNormalsFlag"}, + 0x00240064 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ResultsNormalsSequence"}, + 0x00240065 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AgeCorrectedSensitivityDeviationAlgorithmSequence"}, + 0x00240066 : { vr : "FL", vm : C.VM_SINGLE, keyword : "GlobalDeviationFromNormal"}, + 0x00240067 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GeneralizedDefectSensitivityDeviationAlgorithmSequence"}, + 0x00240068 : { vr : "FL", vm : C.VM_SINGLE, keyword : "LocalizedDeviationfromNormal"}, + 0x00240069 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientReliabilityIndicator"}, + 0x00240070 : { vr : "FL", vm : C.VM_SINGLE, keyword : "VisualFieldMeanSensitivity"}, + 0x00240071 : { vr : "FL", vm : C.VM_SINGLE, keyword : "GlobalDeviationProbability"}, + 0x00240072 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LocalDeviationProbabilityNormalsFlag"}, + 0x00240073 : { vr : "FL", vm : C.VM_SINGLE, keyword : "LocalizedDeviationProbability"}, + 0x00240074 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShortTermFluctuationCalculated"}, + 0x00240075 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ShortTermFluctuation"}, + 0x00240076 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShortTermFluctuationProbabilityCalculated"}, + 0x00240077 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ShortTermFluctuationProbability"}, + 0x00240078 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CorrectedLocalizedDeviationFromNormalCalculated"}, + 0x00240079 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CorrectedLocalizedDeviationFromNormal"}, + 0x00240080 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CorrectedLocalizedDeviationFromNormalProbabilityCalculated"}, + 0x00240081 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CorrectedLocalizedDeviationFromNormalProbability"}, + 0x00240083 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GlobalDeviationProbabilitySequence"}, + 0x00240085 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LocalizedDeviationProbabilitySequence"}, + 0x00240086 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FovealSensitivityMeasured"}, + 0x00240087 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FovealSensitivity"}, + 0x00240088 : { vr : "FL", vm : C.VM_SINGLE, keyword : "VisualFieldTestDuration"}, + 0x00240089 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualFieldTestPointSequence"}, + 0x00240090 : { vr : "FL", vm : C.VM_SINGLE, keyword : "VisualFieldTestPointXCoordinate"}, + 0x00240091 : { vr : "FL", vm : C.VM_SINGLE, keyword : "VisualFieldTestPointYCoordinate"}, + 0x00240092 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AgeCorrectedSensitivityDeviationValue"}, + 0x00240093 : { vr : "CS", vm : C.VM_SINGLE, keyword : "StimulusResults"}, + 0x00240094 : { vr : "FL", vm : C.VM_SINGLE, keyword : "SensitivityValue"}, + 0x00240095 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RetestStimulusSeen"}, + 0x00240096 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RetestSensitivityValue"}, + 0x00240097 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualFieldTestPointNormalsSequence"}, + 0x00240098 : { vr : "FL", vm : C.VM_SINGLE, keyword : "QuantifiedDefect"}, + 0x00240100 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AgeCorrectedSensitivityDeviationProbabilityValue"}, + 0x00240102 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GeneralizedDefectCorrectedSensitivityDeviationFlag"}, + 0x00240103 : { vr : "FL", vm : C.VM_SINGLE, keyword : "GeneralizedDefectCorrectedSensitivityDeviationValue"}, + 0x00240104 : { vr : "FL", vm : C.VM_SINGLE, keyword : "GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"}, + 0x00240105 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MinimumSensitivityValue"}, + 0x00240106 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlindSpotLocalized"}, + 0x00240107 : { vr : "FL", vm : C.VM_SINGLE, keyword : "BlindSpotXCoordinate"}, + 0x00240108 : { vr : "FL", vm : C.VM_SINGLE, keyword : "BlindSpotYCoordinate"}, + 0x00240110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualAcuityMeasurementSequence"}, + 0x00240112 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RefractiveParametersUsedOnPatientSequence"}, + 0x00240113 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MeasurementLaterality"}, + 0x00240114 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicPatientClinicalInformationLeftEyeSequence"}, + 0x00240115 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OphthalmicPatientClinicalInformationRightEyeSequence"}, + 0x00240117 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FovealPointNormativeDataFlag"}, + 0x00240118 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FovealPointProbabilityValue"}, + 0x00240120 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ScreeningBaselineMeasured"}, + 0x00240122 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScreeningBaselineMeasuredSequence"}, + 0x00240124 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ScreeningBaselineType"}, + 0x00240126 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ScreeningBaselineValue"}, + 0x00240202 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AlgorithmSource"}, + 0x00240306 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DataSetName"}, + 0x00240307 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DataSetVersion"}, + 0x00240308 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DataSetSource"}, + 0x00240309 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DataSetDescription"}, + 0x00240317 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualFieldTestReliabilityGlobalIndexSequence"}, + 0x00240320 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualFieldGlobalResultsIndexSequence"}, + 0x00240325 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DataObservationSequence"}, + 0x00240338 : { vr : "CS", vm : C.VM_SINGLE, keyword : "IndexNormalsFlag"}, + 0x00240341 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IndexProbability"}, + 0x00240344 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IndexProbabilitySequence"}, + 0x00280002 : { vr : "US", vm : C.VM_SINGLE, keyword : "SamplesPerPixel"}, + 0x00280003 : { vr : "US", vm : C.VM_SINGLE, keyword : "SamplesPerPixelUsed"}, + 0x00280004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PhotometricInterpretation"}, + 0x00280005 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageDimensions"}, + 0x00280006 : { vr : "US", vm : C.VM_SINGLE, keyword : "PlanarConfiguration"}, + 0x00280008 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfFrames"}, + 0x00280009 : { vr : "AT", vm : C.VM_1N, keyword : "FrameIncrementPointer"}, + 0x0028000A : { vr : "AT", vm : C.VM_1N, keyword : "FrameDimensionPointer"}, + 0x00280010 : { vr : "US", vm : C.VM_SINGLE, keyword : "Rows"}, + 0x00280011 : { vr : "US", vm : C.VM_SINGLE, keyword : "Columns"}, + 0x00280012 : { vr : "US", vm : C.VM_SINGLE, keyword : "Planes"}, + 0x00280014 : { vr : "US", vm : C.VM_SINGLE, keyword : "UltrasoundColorDataPresent"}, + 0x00280030 : { vr : "DS", vm : C.VM_TWO, keyword : "PixelSpacing"}, + 0x00280031 : { vr : "DS", vm : C.VM_TWO, keyword : "ZoomFactor"}, + 0x00280032 : { vr : "DS", vm : C.VM_TWO, keyword : "ZoomCenter"}, + 0x00280034 : { vr : "IS", vm : C.VM_TWO, keyword : "PixelAspectRatio"}, + 0x00280040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageFormat"}, + 0x00280050 : { vr : "LO", vm : C.VM_1N, keyword : "ManipulatedImage"}, + 0x00280051 : { vr : "CS", vm : C.VM_1N, keyword : "CorrectedImage"}, + 0x0028005F : { vr : "LO", vm : C.VM_SINGLE, keyword : "CompressionRecognitionCode"}, + 0x00280060 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CompressionCode"}, + 0x00280061 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CompressionOriginator"}, + 0x00280062 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CompressionLabel"}, + 0x00280063 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CompressionDescription"}, + 0x00280065 : { vr : "CS", vm : C.VM_1N, keyword : "CompressionSequence"}, + 0x00280066 : { vr : "AT", vm : C.VM_1N, keyword : "CompressionStepPointers"}, + 0x00280068 : { vr : "US", vm : C.VM_SINGLE, keyword : "RepeatInterval"}, + 0x00280069 : { vr : "US", vm : C.VM_SINGLE, keyword : "BitsGrouped"}, + 0x00280070 : { vr : "US", vm : C.VM_1N, keyword : "PerimeterTable"}, + 0x00280071 : { vr : "US", vm : C.VM_SINGLE, keyword : "PerimeterValue"}, + 0x00280080 : { vr : "US", vm : C.VM_SINGLE, keyword : "PredictorRows"}, + 0x00280081 : { vr : "US", vm : C.VM_SINGLE, keyword : "PredictorColumns"}, + 0x00280082 : { vr : "US", vm : C.VM_1N, keyword : "PredictorConstants"}, + 0x00280090 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlockedPixels"}, + 0x00280091 : { vr : "US", vm : C.VM_SINGLE, keyword : "BlockRows"}, + 0x00280092 : { vr : "US", vm : C.VM_SINGLE, keyword : "BlockColumns"}, + 0x00280093 : { vr : "US", vm : C.VM_SINGLE, keyword : "RowOverlap"}, + 0x00280094 : { vr : "US", vm : C.VM_SINGLE, keyword : "ColumnOverlap"}, + 0x00280100 : { vr : "US", vm : C.VM_SINGLE, keyword : "BitsAllocated"}, + 0x00280101 : { vr : "US", vm : C.VM_SINGLE, keyword : "BitsStored"}, + 0x00280102 : { vr : "US", vm : C.VM_SINGLE, keyword : "HighBit"}, + 0x00280103 : { vr : "US", vm : C.VM_SINGLE, keyword : "PixelRepresentation"}, + 0x00280104 : { vr : "US", vm : C.VM_SINGLE, keyword : "SmallestValidPixelValue"}, + 0x00280105 : { vr : "US", vm : C.VM_SINGLE, keyword : "LargestValidPixelValue"}, + 0x00280106 : { vr : "US", vm : C.VM_SINGLE, keyword : "SmallestImagePixelValue"}, + 0x00280107 : { vr : "US", vm : C.VM_SINGLE, keyword : "LargestImagePixelValue"}, + 0x00280108 : { vr : "US", vm : C.VM_SINGLE, keyword : "SmallestPixelValueInSeries"}, + 0x00280109 : { vr : "US", vm : C.VM_SINGLE, keyword : "LargestPixelValueInSeries"}, + 0x00280110 : { vr : "US", vm : C.VM_SINGLE, keyword : "SmallestImagePixelValueInPlane"}, + 0x00280111 : { vr : "US", vm : C.VM_SINGLE, keyword : "LargestImagePixelValueInPlane"}, + 0x00280120 : { vr : "US", vm : C.VM_SINGLE, keyword : "PixelPaddingValue"}, + 0x00280121 : { vr : "US", vm : C.VM_SINGLE, keyword : "PixelPaddingRangeLimit"}, + 0x00280200 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageLocation"}, + 0x00280300 : { vr : "CS", vm : C.VM_SINGLE, keyword : "QualityControlImage"}, + 0x00280301 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BurnedInAnnotation"}, + 0x00280302 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RecognizableVisualFeatures"}, + 0x00280303 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LongitudinalTemporalInformationModified"}, + 0x00280400 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TransformLabel"}, + 0x00280401 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TransformVersionNumber"}, + 0x00280402 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfTransformSteps"}, + 0x00280403 : { vr : "LO", vm : C.VM_1N, keyword : "SequenceOfCompressedData"}, + 0x00280404 : { vr : "AT", vm : C.VM_1N, keyword : "DetailsOfCoefficients"}, + 0x00280700 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DCTLabel"}, + 0x00280701 : { vr : "CS", vm : C.VM_1N, keyword : "DataBlockDescription"}, + 0x00280702 : { vr : "AT", vm : C.VM_1N, keyword : "DataBlock"}, + 0x00280710 : { vr : "US", vm : C.VM_SINGLE, keyword : "NormalizationFactorFormat"}, + 0x00280720 : { vr : "US", vm : C.VM_SINGLE, keyword : "ZonalMapNumberFormat"}, + 0x00280721 : { vr : "AT", vm : C.VM_1N, keyword : "ZonalMapLocation"}, + 0x00280722 : { vr : "US", vm : C.VM_SINGLE, keyword : "ZonalMapFormat"}, + 0x00280730 : { vr : "US", vm : C.VM_SINGLE, keyword : "AdaptiveMapFormat"}, + 0x00280740 : { vr : "US", vm : C.VM_SINGLE, keyword : "CodeNumberFormat"}, + 0x00280A02 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PixelSpacingCalibrationType"}, + 0x00280A04 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PixelSpacingCalibrationDescription"}, + 0x00281040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PixelIntensityRelationship"}, + 0x00281041 : { vr : "SS", vm : C.VM_SINGLE, keyword : "PixelIntensityRelationshipSign"}, + 0x00281050 : { vr : "DS", vm : C.VM_1N, keyword : "WindowCenter"}, + 0x00281051 : { vr : "DS", vm : C.VM_1N, keyword : "WindowWidth"}, + 0x00281052 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RescaleIntercept"}, + 0x00281053 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RescaleSlope"}, + 0x00281054 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RescaleType"}, + 0x00281055 : { vr : "LO", vm : C.VM_1N, keyword : "WindowCenterWidthExplanation"}, + 0x00281056 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VOILUTFunction"}, + 0x00281080 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GrayScale"}, + 0x00281090 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RecommendedViewingMode"}, + 0x00281100 : { vr : "US", vm : C.VM_THREE, keyword : "GrayLookupTableDescriptor"}, + 0x00281101 : { vr : "US", vm : C.VM_THREE, keyword : "RedPaletteColorLookupTableDescriptor"}, + 0x00281102 : { vr : "US", vm : C.VM_THREE, keyword : "GreenPaletteColorLookupTableDescriptor"}, + 0x00281103 : { vr : "US", vm : C.VM_THREE, keyword : "BluePaletteColorLookupTableDescriptor"}, + 0x00281104 : { vr : "US", vm : C.VM_THREE, keyword : "AlphaPaletteColorLookupTableDescriptor"}, + 0x00281111 : { vr : "US", vm : C.VM_FOUR, keyword : "LargeRedPaletteColorLookupTableDescriptor"}, + 0x00281112 : { vr : "US", vm : C.VM_FOUR, keyword : "LargeGreenPaletteColorLookupTableDescriptor"}, + 0x00281113 : { vr : "US", vm : C.VM_FOUR, keyword : "LargeBluePaletteColorLookupTableDescriptor"}, + 0x00281199 : { vr : "UI", vm : C.VM_SINGLE, keyword : "PaletteColorLookupTableUID"}, + 0x00281200 : { vr : "US", vm : C.VM_1N, keyword : "GrayLookupTableData"}, + 0x00281201 : { vr : "OW", vm : C.VM_SINGLE, keyword : "RedPaletteColorLookupTableData"}, + 0x00281202 : { vr : "OW", vm : C.VM_SINGLE, keyword : "GreenPaletteColorLookupTableData"}, + 0x00281203 : { vr : "OW", vm : C.VM_SINGLE, keyword : "BluePaletteColorLookupTableData"}, + 0x00281204 : { vr : "OW", vm : C.VM_SINGLE, keyword : "AlphaPaletteColorLookupTableData"}, + 0x00281211 : { vr : "OW", vm : C.VM_SINGLE, keyword : "LargeRedPaletteColorLookupTableData"}, + 0x00281212 : { vr : "OW", vm : C.VM_SINGLE, keyword : "LargeGreenPaletteColorLookupTableData"}, + 0x00281213 : { vr : "OW", vm : C.VM_SINGLE, keyword : "LargeBluePaletteColorLookupTableData"}, + 0x00281214 : { vr : "UI", vm : C.VM_SINGLE, keyword : "LargePaletteColorLookupTableUID"}, + 0x00281221 : { vr : "OW", vm : C.VM_SINGLE, keyword : "SegmentedRedPaletteColorLookupTableData"}, + 0x00281222 : { vr : "OW", vm : C.VM_SINGLE, keyword : "SegmentedGreenPaletteColorLookupTableData"}, + 0x00281223 : { vr : "OW", vm : C.VM_SINGLE, keyword : "SegmentedBluePaletteColorLookupTableData"}, + 0x00281300 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BreastImplantPresent"}, + 0x00281350 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PartialView"}, + 0x00281351 : { vr : "ST", vm : C.VM_SINGLE, keyword : "PartialViewDescription"}, + 0x00281352 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PartialViewCodeSequence"}, + 0x0028135A : { vr : "CS", vm : C.VM_SINGLE, keyword : "SpatialLocationsPreserved"}, + 0x00281401 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DataFrameAssignmentSequence"}, + 0x00281402 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DataPathAssignment"}, + 0x00281403 : { vr : "US", vm : C.VM_SINGLE, keyword : "BitsMappedToColorLookupTable"}, + 0x00281404 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BlendingLUT1Sequence"}, + 0x00281405 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlendingLUT1TransferFunction"}, + 0x00281406 : { vr : "FD", vm : C.VM_SINGLE, keyword : "BlendingWeightConstant"}, + 0x00281407 : { vr : "US", vm : C.VM_THREE, keyword : "BlendingLookupTableDescriptor"}, + 0x00281408 : { vr : "OW", vm : C.VM_SINGLE, keyword : "BlendingLookupTableData"}, + 0x0028140B : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EnhancedPaletteColorLookupTableSequence"}, + 0x0028140C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BlendingLUT2Sequence"}, + 0x0028140D : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlendingLUT2TransferFunction"}, + 0x0028140E : { vr : "CS", vm : C.VM_SINGLE, keyword : "DataPathID"}, + 0x0028140F : { vr : "CS", vm : C.VM_SINGLE, keyword : "RGBLUTTransferFunction"}, + 0x00281410 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AlphaLUTTransferFunction"}, + 0x00282000 : { vr : "OB", vm : C.VM_SINGLE, keyword : "ICCProfile"}, + 0x00282110 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LossyImageCompression"}, + 0x00282112 : { vr : "DS", vm : C.VM_1N, keyword : "LossyImageCompressionRatio"}, + 0x00282114 : { vr : "CS", vm : C.VM_1N, keyword : "LossyImageCompressionMethod"}, + 0x00283000 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ModalityLUTSequence"}, + 0x00283002 : { vr : "US", vm : C.VM_THREE, keyword : "LUTDescriptor"}, + 0x00283003 : { vr : "LO", vm : C.VM_SINGLE, keyword : "LUTExplanation"}, + 0x00283004 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ModalityLUTType"}, + 0x00283006 : { vr : "US", vm : C.VM_1N, keyword : "LUTData"}, + 0x00283010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VOILUTSequence"}, + 0x00283110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SoftcopyVOILUTSequence"}, + 0x00284000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ImagePresentationComments"}, + 0x00285000 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BiPlaneAcquisitionSequence"}, + 0x00286010 : { vr : "US", vm : C.VM_SINGLE, keyword : "RepresentativeFrameNumber"}, + 0x00286020 : { vr : "US", vm : C.VM_1N, keyword : "FrameNumbersOfInterest"}, + 0x00286022 : { vr : "LO", vm : C.VM_1N, keyword : "FrameOfInterestDescription"}, + 0x00286023 : { vr : "CS", vm : C.VM_1N, keyword : "FrameOfInterestType"}, + 0x00286030 : { vr : "US", vm : C.VM_1N, keyword : "MaskPointers"}, + 0x00286040 : { vr : "US", vm : C.VM_1N, keyword : "RWavePointer"}, + 0x00286100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MaskSubtractionSequence"}, + 0x00286101 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MaskOperation"}, + 0x00286102 : { vr : "US", vm : C.VM_2_2N, keyword : "ApplicableFrameRange"}, + 0x00286110 : { vr : "US", vm : C.VM_1N, keyword : "MaskFrameNumbers"}, + 0x00286112 : { vr : "US", vm : C.VM_SINGLE, keyword : "ContrastFrameAveraging"}, + 0x00286114 : { vr : "FL", vm : C.VM_TWO, keyword : "MaskSubPixelShift"}, + 0x00286120 : { vr : "SS", vm : C.VM_SINGLE, keyword : "TIDOffset"}, + 0x00286190 : { vr : "ST", vm : C.VM_SINGLE, keyword : "MaskOperationExplanation"}, + 0x00287FE0 : { vr : "UT", vm : C.VM_SINGLE, keyword : "PixelDataProviderURL"}, + 0x00289001 : { vr : "UL", vm : C.VM_SINGLE, keyword : "DataPointRows"}, + 0x00289002 : { vr : "UL", vm : C.VM_SINGLE, keyword : "DataPointColumns"}, + 0x00289003 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SignalDomainColumns"}, + 0x00289099 : { vr : "US", vm : C.VM_SINGLE, keyword : "LargestMonochromePixelValue"}, + 0x00289108 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DataRepresentation"}, + 0x00289110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PixelMeasuresSequence"}, + 0x00289132 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameVOILUTSequence"}, + 0x00289145 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PixelValueTransformationSequence"}, + 0x00289235 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SignalDomainRows"}, + 0x00289411 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DisplayFilterPercentage"}, + 0x00289415 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FramePixelShiftSequence"}, + 0x00289416 : { vr : "US", vm : C.VM_SINGLE, keyword : "SubtractionItemID"}, + 0x00289422 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PixelIntensityRelationshipLUTSequence"}, + 0x00289443 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FramePixelDataPropertiesSequence"}, + 0x00289444 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GeometricalProperties"}, + 0x00289445 : { vr : "FL", vm : C.VM_SINGLE, keyword : "GeometricMaximumDistortion"}, + 0x00289446 : { vr : "CS", vm : C.VM_1N, keyword : "ImageProcessingApplied"}, + 0x00289454 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MaskSelectionMode"}, + 0x00289474 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LUTFunction"}, + 0x00289478 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MaskVisibilityPercentage"}, + 0x00289501 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PixelShiftSequence"}, + 0x00289502 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RegionPixelShiftSequence"}, + 0x00289503 : { vr : "SS", vm : C.VM_2_2N, keyword : "VerticesOfTheRegion"}, + 0x00289505 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MultiFramePresentationSequence"}, + 0x00289506 : { vr : "US", vm : C.VM_2_2N, keyword : "PixelShiftFrameRange"}, + 0x00289507 : { vr : "US", vm : C.VM_2_2N, keyword : "LUTFrameRange"}, + 0x00289520 : { vr : "DS", vm : C.VM_16, keyword : "ImageToEquipmentMappingMatrix"}, + 0x00289537 : { vr : "CS", vm : C.VM_SINGLE, keyword : "EquipmentCoordinateSystemIdentification"}, + 0x0032000A : { vr : "CS", vm : C.VM_SINGLE, keyword : "StudyStatusID"}, + 0x0032000C : { vr : "CS", vm : C.VM_SINGLE, keyword : "StudyPriorityID"}, + 0x00320012 : { vr : "LO", vm : C.VM_SINGLE, keyword : "StudyIDIssuer"}, + 0x00320032 : { vr : "DA", vm : C.VM_SINGLE, keyword : "StudyVerifiedDate"}, + 0x00320033 : { vr : "TM", vm : C.VM_SINGLE, keyword : "StudyVerifiedTime"}, + 0x00320034 : { vr : "DA", vm : C.VM_SINGLE, keyword : "StudyReadDate"}, + 0x00320035 : { vr : "TM", vm : C.VM_SINGLE, keyword : "StudyReadTime"}, + 0x00321000 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ScheduledStudyStartDate"}, + 0x00321001 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ScheduledStudyStartTime"}, + 0x00321010 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ScheduledStudyStopDate"}, + 0x00321011 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ScheduledStudyStopTime"}, + 0x00321020 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ScheduledStudyLocation"}, + 0x00321021 : { vr : "AE", vm : C.VM_1N, keyword : "ScheduledStudyLocationAETitle"}, + 0x00321030 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ReasonForStudy"}, + 0x00321031 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RequestingPhysicianIdentificationSequence"}, + 0x00321032 : { vr : "PN", vm : C.VM_SINGLE, keyword : "RequestingPhysician"}, + 0x00321033 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RequestingService"}, + 0x00321034 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RequestingServiceCodeSequence"}, + 0x00321040 : { vr : "DA", vm : C.VM_SINGLE, keyword : "StudyArrivalDate"}, + 0x00321041 : { vr : "TM", vm : C.VM_SINGLE, keyword : "StudyArrivalTime"}, + 0x00321050 : { vr : "DA", vm : C.VM_SINGLE, keyword : "StudyCompletionDate"}, + 0x00321051 : { vr : "TM", vm : C.VM_SINGLE, keyword : "StudyCompletionTime"}, + 0x00321055 : { vr : "CS", vm : C.VM_SINGLE, keyword : "StudyComponentStatusID"}, + 0x00321060 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RequestedProcedureDescription"}, + 0x00321064 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RequestedProcedureCodeSequence"}, + 0x00321070 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RequestedContrastAgent"}, + 0x00324000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "StudyComments"}, + 0x00380004 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedPatientAliasSequence"}, + 0x00380008 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VisitStatusID"}, + 0x00380010 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AdmissionID"}, + 0x00380011 : { vr : "LO", vm : C.VM_SINGLE, keyword : "IssuerOfAdmissionID"}, + 0x00380014 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IssuerOfAdmissionIDSequence"}, + 0x00380016 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RouteOfAdmissions"}, + 0x0038001A : { vr : "DA", vm : C.VM_SINGLE, keyword : "ScheduledAdmissionDate"}, + 0x0038001B : { vr : "TM", vm : C.VM_SINGLE, keyword : "ScheduledAdmissionTime"}, + 0x0038001C : { vr : "DA", vm : C.VM_SINGLE, keyword : "ScheduledDischargeDate"}, + 0x0038001D : { vr : "TM", vm : C.VM_SINGLE, keyword : "ScheduledDischargeTime"}, + 0x0038001E : { vr : "LO", vm : C.VM_SINGLE, keyword : "ScheduledPatientInstitutionResidence"}, + 0x00380020 : { vr : "DA", vm : C.VM_SINGLE, keyword : "AdmittingDate"}, + 0x00380021 : { vr : "TM", vm : C.VM_SINGLE, keyword : "AdmittingTime"}, + 0x00380030 : { vr : "DA", vm : C.VM_SINGLE, keyword : "DischargeDate"}, + 0x00380032 : { vr : "TM", vm : C.VM_SINGLE, keyword : "DischargeTime"}, + 0x00380040 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DischargeDiagnosisDescription"}, + 0x00380044 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DischargeDiagnosisCodeSequence"}, + 0x00380050 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SpecialNeeds"}, + 0x00380060 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ServiceEpisodeID"}, + 0x00380061 : { vr : "LO", vm : C.VM_SINGLE, keyword : "IssuerOfServiceEpisodeID"}, + 0x00380062 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ServiceEpisodeDescription"}, + 0x00380064 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IssuerOfServiceEpisodeIDSequence"}, + 0x00380100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PertinentDocumentsSequence"}, + 0x00380300 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CurrentPatientLocation"}, + 0x00380400 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientInstitutionResidence"}, + 0x00380500 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientState"}, + 0x00380502 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientClinicalTrialParticipationSequence"}, + 0x00384000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "VisitComments"}, + 0x003A0004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "WaveformOriginality"}, + 0x003A0005 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfWaveformChannels"}, + 0x003A0010 : { vr : "UL", vm : C.VM_SINGLE, keyword : "NumberOfWaveformSamples"}, + 0x003A001A : { vr : "DS", vm : C.VM_SINGLE, keyword : "SamplingFrequency"}, + 0x003A0020 : { vr : "SH", vm : C.VM_SINGLE, keyword : "MultiplexGroupLabel"}, + 0x003A0200 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelDefinitionSequence"}, + 0x003A0202 : { vr : "IS", vm : C.VM_SINGLE, keyword : "WaveformChannelNumber"}, + 0x003A0203 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ChannelLabel"}, + 0x003A0205 : { vr : "CS", vm : C.VM_1N, keyword : "ChannelStatus"}, + 0x003A0208 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelSourceSequence"}, + 0x003A0209 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelSourceModifiersSequence"}, + 0x003A020A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceWaveformSequence"}, + 0x003A020C : { vr : "LO", vm : C.VM_SINGLE, keyword : "ChannelDerivationDescription"}, + 0x003A0210 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelSensitivity"}, + 0x003A0211 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelSensitivityUnitsSequence"}, + 0x003A0212 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelSensitivityCorrectionFactor"}, + 0x003A0213 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelBaseline"}, + 0x003A0214 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelTimeSkew"}, + 0x003A0215 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelSampleSkew"}, + 0x003A0218 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelOffset"}, + 0x003A021A : { vr : "US", vm : C.VM_SINGLE, keyword : "WaveformBitsStored"}, + 0x003A0220 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FilterLowFrequency"}, + 0x003A0221 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FilterHighFrequency"}, + 0x003A0222 : { vr : "DS", vm : C.VM_SINGLE, keyword : "NotchFilterFrequency"}, + 0x003A0223 : { vr : "DS", vm : C.VM_SINGLE, keyword : "NotchFilterBandwidth"}, + 0x003A0230 : { vr : "FL", vm : C.VM_SINGLE, keyword : "WaveformDataDisplayScale"}, + 0x003A0231 : { vr : "US", vm : C.VM_THREE, keyword : "WaveformDisplayBackgroundCIELabValue"}, + 0x003A0240 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "WaveformPresentationGroupSequence"}, + 0x003A0241 : { vr : "US", vm : C.VM_SINGLE, keyword : "PresentationGroupNumber"}, + 0x003A0242 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelDisplaySequence"}, + 0x003A0244 : { vr : "US", vm : C.VM_THREE, keyword : "ChannelRecommendedDisplayCIELabValue"}, + 0x003A0245 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ChannelPosition"}, + 0x003A0246 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DisplayShadingFlag"}, + 0x003A0247 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FractionalChannelDisplayScale"}, + 0x003A0248 : { vr : "FL", vm : C.VM_SINGLE, keyword : "AbsoluteChannelDisplayScale"}, + 0x003A0300 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MultiplexedAudioChannelsDescriptionCodeSequence"}, + 0x003A0301 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ChannelIdentificationCode"}, + 0x003A0302 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ChannelMode"}, + 0x00400001 : { vr : "AE", vm : C.VM_1N, keyword : "ScheduledStationAETitle"}, + 0x00400002 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepStartDate"}, + 0x00400003 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepStartTime"}, + 0x00400004 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepEndDate"}, + 0x00400005 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepEndTime"}, + 0x00400006 : { vr : "PN", vm : C.VM_SINGLE, keyword : "ScheduledPerformingPhysicianName"}, + 0x00400007 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepDescription"}, + 0x00400008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledProtocolCodeSequence"}, + 0x00400009 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepID"}, + 0x0040000A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "StageCodeSequence"}, + 0x0040000B : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledPerformingPhysicianIdentificationSequence"}, + 0x00400010 : { vr : "SH", vm : C.VM_1N, keyword : "ScheduledStationName"}, + 0x00400011 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepLocation"}, + 0x00400012 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PreMedication"}, + 0x00400020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepStatus"}, + 0x00400026 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OrderPlacerIdentifierSequence"}, + 0x00400027 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OrderFillerIdentifierSequence"}, + 0x00400031 : { vr : "UT", vm : C.VM_SINGLE, keyword : "LocalNamespaceEntityID"}, + 0x00400032 : { vr : "UT", vm : C.VM_SINGLE, keyword : "UniversalEntityID"}, + 0x00400033 : { vr : "CS", vm : C.VM_SINGLE, keyword : "UniversalEntityIDType"}, + 0x00400035 : { vr : "CS", vm : C.VM_SINGLE, keyword : "IdentifierTypeCode"}, + 0x00400036 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AssigningFacilitySequence"}, + 0x00400039 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AssigningJurisdictionCodeSequence"}, + 0x0040003A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AssigningAgencyOrDepartmentCodeSequence"}, + 0x00400100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepSequence"}, + 0x00400220 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedNonImageCompositeSOPInstanceSequence"}, + 0x00400241 : { vr : "AE", vm : C.VM_SINGLE, keyword : "PerformedStationAETitle"}, + 0x00400242 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PerformedStationName"}, + 0x00400243 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PerformedLocation"}, + 0x00400244 : { vr : "DA", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepStartDate"}, + 0x00400245 : { vr : "TM", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepStartTime"}, + 0x00400250 : { vr : "DA", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepEndDate"}, + 0x00400251 : { vr : "TM", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepEndTime"}, + 0x00400252 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepStatus"}, + 0x00400253 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepID"}, + 0x00400254 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepDescription"}, + 0x00400255 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PerformedProcedureTypeDescription"}, + 0x00400260 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedProtocolCodeSequence"}, + 0x00400261 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PerformedProtocolType"}, + 0x00400270 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledStepAttributesSequence"}, + 0x00400275 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RequestAttributesSequence"}, + 0x00400280 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CommentsOnThePerformedProcedureStep"}, + 0x00400281 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepDiscontinuationReasonCodeSequence"}, + 0x00400293 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "QuantitySequence"}, + 0x00400294 : { vr : "DS", vm : C.VM_SINGLE, keyword : "Quantity"}, + 0x00400295 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MeasuringUnitsSequence"}, + 0x00400296 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BillingItemSequence"}, + 0x00400300 : { vr : "US", vm : C.VM_SINGLE, keyword : "TotalTimeOfFluoroscopy"}, + 0x00400301 : { vr : "US", vm : C.VM_SINGLE, keyword : "TotalNumberOfExposures"}, + 0x00400302 : { vr : "US", vm : C.VM_SINGLE, keyword : "EntranceDose"}, + 0x00400303 : { vr : "US", vm : C.VM_1_2, keyword : "ExposedArea"}, + 0x00400306 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DistanceSourceToEntrance"}, + 0x00400307 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DistanceSourceToSupport"}, + 0x0040030E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ExposureDoseSequence"}, + 0x00400310 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CommentsOnRadiationDose"}, + 0x00400312 : { vr : "DS", vm : C.VM_SINGLE, keyword : "XRayOutput"}, + 0x00400314 : { vr : "DS", vm : C.VM_SINGLE, keyword : "HalfValueLayer"}, + 0x00400316 : { vr : "DS", vm : C.VM_SINGLE, keyword : "OrganDose"}, + 0x00400318 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OrganExposed"}, + 0x00400320 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BillingProcedureStepSequence"}, + 0x00400321 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FilmConsumptionSequence"}, + 0x00400324 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BillingSuppliesAndDevicesSequence"}, + 0x00400330 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedProcedureStepSequence"}, + 0x00400340 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedSeriesSequence"}, + 0x00400400 : { vr : "LT", vm : C.VM_SINGLE, keyword : "CommentsOnTheScheduledProcedureStep"}, + 0x00400440 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProtocolContextSequence"}, + 0x00400441 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContentItemModifierSequence"}, + 0x00400500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledSpecimenSequence"}, + 0x0040050A : { vr : "LO", vm : C.VM_SINGLE, keyword : "SpecimenAccessionNumber"}, + 0x00400512 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContainerIdentifier"}, + 0x00400513 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IssuerOfTheContainerIdentifierSequence"}, + 0x00400515 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AlternateContainerIdentifierSequence"}, + 0x00400518 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContainerTypeCodeSequence"}, + 0x0040051A : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContainerDescription"}, + 0x00400520 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContainerComponentSequence"}, + 0x00400550 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenSequence"}, + 0x00400551 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SpecimenIdentifier"}, + 0x00400552 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenDescriptionSequenceTrial"}, + 0x00400553 : { vr : "ST", vm : C.VM_SINGLE, keyword : "SpecimenDescriptionTrial"}, + 0x00400554 : { vr : "UI", vm : C.VM_SINGLE, keyword : "SpecimenUID"}, + 0x00400555 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AcquisitionContextSequence"}, + 0x00400556 : { vr : "ST", vm : C.VM_SINGLE, keyword : "AcquisitionContextDescription"}, + 0x0040059A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenTypeCodeSequence"}, + 0x00400560 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenDescriptionSequence"}, + 0x00400562 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IssuerOfTheSpecimenIdentifierSequence"}, + 0x00400600 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SpecimenShortDescription"}, + 0x00400602 : { vr : "UT", vm : C.VM_SINGLE, keyword : "SpecimenDetailedDescription"}, + 0x00400610 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenPreparationSequence"}, + 0x00400612 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenPreparationStepContentItemSequence"}, + 0x00400620 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenLocalizationContentItemSequence"}, + 0x004006FA : { vr : "LO", vm : C.VM_SINGLE, keyword : "SlideIdentifier"}, + 0x0040071A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageCenterPointCoordinatesSequence"}, + 0x0040072A : { vr : "DS", vm : C.VM_SINGLE, keyword : "XOffsetInSlideCoordinateSystem"}, + 0x0040073A : { vr : "DS", vm : C.VM_SINGLE, keyword : "YOffsetInSlideCoordinateSystem"}, + 0x0040074A : { vr : "DS", vm : C.VM_SINGLE, keyword : "ZOffsetInSlideCoordinateSystem"}, + 0x004008D8 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PixelSpacingSequence"}, + 0x004008DA : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CoordinateSystemAxisCodeSequence"}, + 0x004008EA : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MeasurementUnitsCodeSequence"}, + 0x004009F8 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VitalStainCodeSequenceTrial"}, + 0x00401001 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RequestedProcedureID"}, + 0x00401002 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ReasonForTheRequestedProcedure"}, + 0x00401003 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RequestedProcedurePriority"}, + 0x00401004 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientTransportArrangements"}, + 0x00401005 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RequestedProcedureLocation"}, + 0x00401006 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PlacerOrderNumberProcedure"}, + 0x00401007 : { vr : "SH", vm : C.VM_SINGLE, keyword : "FillerOrderNumberProcedure"}, + 0x00401008 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ConfidentialityCode"}, + 0x00401009 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ReportingPriority"}, + 0x0040100A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReasonForRequestedProcedureCodeSequence"}, + 0x00401010 : { vr : "PN", vm : C.VM_1N, keyword : "NamesOfIntendedRecipientsOfResults"}, + 0x00401011 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IntendedRecipientsOfResultsIdentificationSequence"}, + 0x00401012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReasonForPerformedProcedureCodeSequence"}, + 0x00401060 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RequestedProcedureDescriptionTrial"}, + 0x00401101 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PersonIdentificationCodeSequence"}, + 0x00401102 : { vr : "ST", vm : C.VM_SINGLE, keyword : "PersonAddress"}, + 0x00401103 : { vr : "LO", vm : C.VM_1N, keyword : "PersonTelephoneNumbers"}, + 0x00401400 : { vr : "LT", vm : C.VM_SINGLE, keyword : "RequestedProcedureComments"}, + 0x00402001 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ReasonForTheImagingServiceRequest"}, + 0x00402004 : { vr : "DA", vm : C.VM_SINGLE, keyword : "IssueDateOfImagingServiceRequest"}, + 0x00402005 : { vr : "TM", vm : C.VM_SINGLE, keyword : "IssueTimeOfImagingServiceRequest"}, + 0x00402006 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PlacerOrderNumberImagingServiceRequestRetired"}, + 0x00402007 : { vr : "SH", vm : C.VM_SINGLE, keyword : "FillerOrderNumberImagingServiceRequestRetired"}, + 0x00402008 : { vr : "PN", vm : C.VM_SINGLE, keyword : "OrderEnteredBy"}, + 0x00402009 : { vr : "SH", vm : C.VM_SINGLE, keyword : "OrderEntererLocation"}, + 0x00402010 : { vr : "SH", vm : C.VM_SINGLE, keyword : "OrderCallbackPhoneNumber"}, + 0x00402016 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PlacerOrderNumberImagingServiceRequest"}, + 0x00402017 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FillerOrderNumberImagingServiceRequest"}, + 0x00402400 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ImagingServiceRequestComments"}, + 0x00403001 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ConfidentialityConstraintOnPatientDataDescription"}, + 0x00404001 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GeneralPurposeScheduledProcedureStepStatus"}, + 0x00404002 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GeneralPurposePerformedProcedureStepStatus"}, + 0x00404003 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GeneralPurposeScheduledProcedureStepPriority"}, + 0x00404004 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledProcessingApplicationsCodeSequence"}, + 0x00404005 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepStartDateTime"}, + 0x00404006 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MultipleCopiesFlag"}, + 0x00404007 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedProcessingApplicationsCodeSequence"}, + 0x00404009 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HumanPerformerCodeSequence"}, + 0x00404010 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepModificationDateTime"}, + 0x00404011 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ExpectedCompletionDateTime"}, + 0x00404015 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ResultingGeneralPurposePerformedProcedureStepsSequence"}, + 0x00404016 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedGeneralPurposeScheduledProcedureStepSequence"}, + 0x00404018 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledWorkitemCodeSequence"}, + 0x00404019 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedWorkitemCodeSequence"}, + 0x00404020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InputAvailabilityFlag"}, + 0x00404021 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InputInformationSequence"}, + 0x00404022 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelevantInformationSequence"}, + 0x00404023 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"}, + 0x00404025 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledStationNameCodeSequence"}, + 0x00404026 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledStationClassCodeSequence"}, + 0x00404027 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledStationGeographicLocationCodeSequence"}, + 0x00404028 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedStationNameCodeSequence"}, + 0x00404029 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedStationClassCodeSequence"}, + 0x00404030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedStationGeographicLocationCodeSequence"}, + 0x00404031 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RequestedSubsequentWorkitemCodeSequence"}, + 0x00404032 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "NonDICOMOutputCodeSequence"}, + 0x00404033 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OutputInformationSequence"}, + 0x00404034 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledHumanPerformersSequence"}, + 0x00404035 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ActualHumanPerformersSequence"}, + 0x00404036 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HumanPerformerOrganization"}, + 0x00404037 : { vr : "PN", vm : C.VM_SINGLE, keyword : "HumanPerformerName"}, + 0x00404040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RawDataHandling"}, + 0x00404041 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InputReadinessState"}, + 0x00404050 : { vr : "DT", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepStartDateTime"}, + 0x00404051 : { vr : "DT", vm : C.VM_SINGLE, keyword : "PerformedProcedureStepEndDateTime"}, + 0x00404052 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ProcedureStepCancellationDateTime"}, + 0x00408302 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EntranceDoseInmGy"}, + 0x00409094 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedImageRealWorldValueMappingSequence"}, + 0x00409096 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RealWorldValueMappingSequence"}, + 0x00409098 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PixelValueMappingCodeSequence"}, + 0x00409210 : { vr : "SH", vm : C.VM_SINGLE, keyword : "LUTLabel"}, + 0x00409211 : { vr : "US", vm : C.VM_SINGLE, keyword : "RealWorldValueLastValueMapped"}, + 0x00409212 : { vr : "FD", vm : C.VM_1N, keyword : "RealWorldValueLUTData"}, + 0x00409216 : { vr : "US", vm : C.VM_SINGLE, keyword : "RealWorldValueFirstValueMapped"}, + 0x00409224 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RealWorldValueIntercept"}, + 0x00409225 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RealWorldValueSlope"}, + 0x0040A007 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FindingsFlagTrial"}, + 0x0040A010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RelationshipType"}, + 0x0040A020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FindingsSequenceTrial"}, + 0x0040A021 : { vr : "UI", vm : C.VM_SINGLE, keyword : "FindingsGroupUIDTrial"}, + 0x0040A022 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ReferencedFindingsGroupUIDTrial"}, + 0x0040A023 : { vr : "DA", vm : C.VM_SINGLE, keyword : "FindingsGroupRecordingDateTrial"}, + 0x0040A024 : { vr : "TM", vm : C.VM_SINGLE, keyword : "FindingsGroupRecordingTimeTrial"}, + 0x0040A026 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FindingsSourceCategoryCodeSequenceTrial"}, + 0x0040A027 : { vr : "LO", vm : C.VM_SINGLE, keyword : "VerifyingOrganization"}, + 0x0040A028 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DocumentingOrganizationIdentifierCodeSequenceTrial"}, + 0x0040A030 : { vr : "DT", vm : C.VM_SINGLE, keyword : "VerificationDateTime"}, + 0x0040A032 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ObservationDateTime"}, + 0x0040A040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ValueType"}, + 0x0040A043 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ConceptNameCodeSequence"}, + 0x0040A047 : { vr : "LO", vm : C.VM_SINGLE, keyword : "MeasurementPrecisionDescriptionTrial"}, + 0x0040A050 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContinuityOfContent"}, + 0x0040A057 : { vr : "CS", vm : C.VM_1N, keyword : "UrgencyOrPriorityAlertsTrial"}, + 0x0040A060 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SequencingIndicatorTrial"}, + 0x0040A066 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DocumentIdentifierCodeSequenceTrial"}, + 0x0040A067 : { vr : "PN", vm : C.VM_SINGLE, keyword : "DocumentAuthorTrial"}, + 0x0040A068 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DocumentAuthorIdentifierCodeSequenceTrial"}, + 0x0040A070 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IdentifierCodeSequenceTrial"}, + 0x0040A073 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VerifyingObserverSequence"}, + 0x0040A074 : { vr : "OB", vm : C.VM_SINGLE, keyword : "ObjectBinaryIdentifierTrial"}, + 0x0040A075 : { vr : "PN", vm : C.VM_SINGLE, keyword : "VerifyingObserverName"}, + 0x0040A076 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DocumentingObserverIdentifierCodeSequenceTrial"}, + 0x0040A078 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AuthorObserverSequence"}, + 0x0040A07A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ParticipantSequence"}, + 0x0040A07C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CustodialOrganizationSequence"}, + 0x0040A080 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ParticipationType"}, + 0x0040A082 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ParticipationDateTime"}, + 0x0040A084 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ObserverType"}, + 0x0040A085 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProcedureIdentifierCodeSequenceTrial"}, + 0x0040A088 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VerifyingObserverIdentificationCodeSequence"}, + 0x0040A089 : { vr : "OB", vm : C.VM_SINGLE, keyword : "ObjectDirectoryBinaryIdentifierTrial"}, + 0x0040A090 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EquivalentCDADocumentSequence"}, + 0x0040A0B0 : { vr : "US", vm : C.VM_2_2N, keyword : "ReferencedWaveformChannels"}, + 0x0040A110 : { vr : "DA", vm : C.VM_SINGLE, keyword : "DateOfDocumentOrVerbalTransactionTrial"}, + 0x0040A112 : { vr : "TM", vm : C.VM_SINGLE, keyword : "TimeOfDocumentCreationOrVerbalTransactionTrial"}, + 0x0040A120 : { vr : "DT", vm : C.VM_SINGLE, keyword : "DateTime"}, + 0x0040A121 : { vr : "DA", vm : C.VM_SINGLE, keyword : "Date"}, + 0x0040A122 : { vr : "TM", vm : C.VM_SINGLE, keyword : "Time"}, + 0x0040A123 : { vr : "PN", vm : C.VM_SINGLE, keyword : "PersonName"}, + 0x0040A124 : { vr : "UI", vm : C.VM_SINGLE, keyword : "UID"}, + 0x0040A125 : { vr : "CS", vm : C.VM_TWO, keyword : "ReportStatusIDTrial"}, + 0x0040A130 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TemporalRangeType"}, + 0x0040A132 : { vr : "UL", vm : C.VM_1N, keyword : "ReferencedSamplePositions"}, + 0x0040A136 : { vr : "US", vm : C.VM_1N, keyword : "ReferencedFrameNumbers"}, + 0x0040A138 : { vr : "DS", vm : C.VM_1N, keyword : "ReferencedTimeOffsets"}, + 0x0040A13A : { vr : "DT", vm : C.VM_1N, keyword : "ReferencedDateTime"}, + 0x0040A160 : { vr : "UT", vm : C.VM_SINGLE, keyword : "TextValue"}, + 0x0040A167 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ObservationCategoryCodeSequenceTrial"}, + 0x0040A168 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ConceptCodeSequence"}, + 0x0040A16A : { vr : "ST", vm : C.VM_SINGLE, keyword : "BibliographicCitationTrial"}, + 0x0040A170 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PurposeOfReferenceCodeSequence"}, + 0x0040A171 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ObservationUIDTrial"}, + 0x0040A172 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ReferencedObservationUIDTrial"}, + 0x0040A173 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReferencedObservationClassTrial"}, + 0x0040A174 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReferencedObjectObservationClassTrial"}, + 0x0040A180 : { vr : "US", vm : C.VM_SINGLE, keyword : "AnnotationGroupNumber"}, + 0x0040A192 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ObservationDateTrial"}, + 0x0040A193 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ObservationTimeTrial"}, + 0x0040A194 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MeasurementAutomationTrial"}, + 0x0040A195 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ModifierCodeSequence"}, + 0x0040A224 : { vr : "ST", vm : C.VM_SINGLE, keyword : "IdentificationDescriptionTrial"}, + 0x0040A290 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CoordinatesSetGeometricTypeTrial"}, + 0x0040A296 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AlgorithmCodeSequenceTrial"}, + 0x0040A297 : { vr : "ST", vm : C.VM_SINGLE, keyword : "AlgorithmDescriptionTrial"}, + 0x0040A29A : { vr : "SL", vm : C.VM_2_2N, keyword : "PixelCoordinatesSetTrial"}, + 0x0040A300 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MeasuredValueSequence"}, + 0x0040A301 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "NumericValueQualifierCodeSequence"}, + 0x0040A307 : { vr : "PN", vm : C.VM_SINGLE, keyword : "CurrentObserverTrial"}, + 0x0040A30A : { vr : "DS", vm : C.VM_1N, keyword : "NumericValue"}, + 0x0040A313 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedAccessionSequenceTrial"}, + 0x0040A33A : { vr : "ST", vm : C.VM_SINGLE, keyword : "ReportStatusCommentTrial"}, + 0x0040A340 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProcedureContextSequenceTrial"}, + 0x0040A352 : { vr : "PN", vm : C.VM_SINGLE, keyword : "VerbalSourceTrial"}, + 0x0040A353 : { vr : "ST", vm : C.VM_SINGLE, keyword : "AddressTrial"}, + 0x0040A354 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TelephoneNumberTrial"}, + 0x0040A358 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VerbalSourceIdentifierCodeSequenceTrial"}, + 0x0040A360 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PredecessorDocumentsSequence"}, + 0x0040A370 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedRequestSequence"}, + 0x0040A372 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedProcedureCodeSequence"}, + 0x0040A375 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CurrentRequestedProcedureEvidenceSequence"}, + 0x0040A380 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReportDetailSequenceTrial"}, + 0x0040A385 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PertinentOtherEvidenceSequence"}, + 0x0040A390 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HL7StructuredDocumentReferenceSequence"}, + 0x0040A402 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ObservationSubjectUIDTrial"}, + 0x0040A403 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ObservationSubjectClassTrial"}, + 0x0040A404 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ObservationSubjectTypeCodeSequenceTrial"}, + 0x0040A491 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CompletionFlag"}, + 0x0040A492 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CompletionFlagDescription"}, + 0x0040A493 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VerificationFlag"}, + 0x0040A494 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ArchiveRequested"}, + 0x0040A496 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PreliminaryFlag"}, + 0x0040A504 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContentTemplateSequence"}, + 0x0040A525 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IdenticalDocumentsSequence"}, + 0x0040A600 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ObservationSubjectContextFlagTrial"}, + 0x0040A601 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ObserverContextFlagTrial"}, + 0x0040A603 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ProcedureContextFlagTrial"}, + 0x0040A730 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContentSequence"}, + 0x0040A731 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelationshipSequenceTrial"}, + 0x0040A732 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelationshipTypeCodeSequenceTrial"}, + 0x0040A744 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LanguageCodeSequenceTrial"}, + 0x0040A992 : { vr : "ST", vm : C.VM_SINGLE, keyword : "UniformResourceLocatorTrial"}, + 0x0040B020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "WaveformAnnotationSequence"}, + 0x0040DB00 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TemplateIdentifier"}, + 0x0040DB06 : { vr : "DT", vm : C.VM_SINGLE, keyword : "TemplateVersion"}, + 0x0040DB07 : { vr : "DT", vm : C.VM_SINGLE, keyword : "TemplateLocalVersion"}, + 0x0040DB0B : { vr : "CS", vm : C.VM_SINGLE, keyword : "TemplateExtensionFlag"}, + 0x0040DB0C : { vr : "UI", vm : C.VM_SINGLE, keyword : "TemplateExtensionOrganizationUID"}, + 0x0040DB0D : { vr : "UI", vm : C.VM_SINGLE, keyword : "TemplateExtensionCreatorUID"}, + 0x0040DB73 : { vr : "UL", vm : C.VM_1N, keyword : "ReferencedContentItemIdentifier"}, + 0x0040E001 : { vr : "ST", vm : C.VM_SINGLE, keyword : "HL7InstanceIdentifier"}, + 0x0040E004 : { vr : "DT", vm : C.VM_SINGLE, keyword : "HL7DocumentEffectiveTime"}, + 0x0040E006 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HL7DocumentTypeCodeSequence"}, + 0x0040E008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DocumentClassCodeSequence"}, + 0x0040E010 : { vr : "UT", vm : C.VM_SINGLE, keyword : "RetrieveURI"}, + 0x0040E011 : { vr : "UI", vm : C.VM_SINGLE, keyword : "RetrieveLocationUID"}, + 0x0040E020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TypeOfInstances"}, + 0x0040E021 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DICOMRetrievalSequence"}, + 0x0040E022 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DICOMMediaRetrievalSequence"}, + 0x0040E023 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "WADORetrievalSequence"}, + 0x0040E024 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "XDSRetrievalSequence"}, + 0x0040E030 : { vr : "UI", vm : C.VM_SINGLE, keyword : "RepositoryUniqueID"}, + 0x0040E031 : { vr : "UI", vm : C.VM_SINGLE, keyword : "HomeCommunityID"}, + 0x00420010 : { vr : "ST", vm : C.VM_SINGLE, keyword : "DocumentTitle"}, + 0x00420011 : { vr : "OB", vm : C.VM_SINGLE, keyword : "EncapsulatedDocument"}, + 0x00420012 : { vr : "LO", vm : C.VM_SINGLE, keyword : "MIMETypeOfEncapsulatedDocument"}, + 0x00420013 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceInstanceSequence"}, + 0x00420014 : { vr : "LO", vm : C.VM_1N, keyword : "ListOfMIMETypes"}, + 0x00440001 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ProductPackageIdentifier"}, + 0x00440002 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SubstanceAdministrationApproval"}, + 0x00440003 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ApprovalStatusFurtherDescription"}, + 0x00440004 : { vr : "DT", vm : C.VM_SINGLE, keyword : "ApprovalStatusDateTime"}, + 0x00440007 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProductTypeCodeSequence"}, + 0x00440008 : { vr : "LO", vm : C.VM_1N, keyword : "ProductName"}, + 0x00440009 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ProductDescription"}, + 0x0044000A : { vr : "LO", vm : C.VM_SINGLE, keyword : "ProductLotIdentifier"}, + 0x0044000B : { vr : "DT", vm : C.VM_SINGLE, keyword : "ProductExpirationDateTime"}, + 0x00440010 : { vr : "DT", vm : C.VM_SINGLE, keyword : "SubstanceAdministrationDateTime"}, + 0x00440011 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SubstanceAdministrationNotes"}, + 0x00440012 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SubstanceAdministrationDeviceID"}, + 0x00440013 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProductParameterSequence"}, + 0x00440019 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SubstanceAdministrationParameterSequence"}, + 0x00460012 : { vr : "LO", vm : C.VM_SINGLE, keyword : "LensDescription"}, + 0x00460014 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RightLensSequence"}, + 0x00460015 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LeftLensSequence"}, + 0x00460016 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "UnspecifiedLateralityLensSequence"}, + 0x00460018 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CylinderSequence"}, + 0x00460028 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrismSequence"}, + 0x00460030 : { vr : "FD", vm : C.VM_SINGLE, keyword : "HorizontalPrismPower"}, + 0x00460032 : { vr : "CS", vm : C.VM_SINGLE, keyword : "HorizontalPrismBase"}, + 0x00460034 : { vr : "FD", vm : C.VM_SINGLE, keyword : "VerticalPrismPower"}, + 0x00460036 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VerticalPrismBase"}, + 0x00460038 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LensSegmentType"}, + 0x00460040 : { vr : "FD", vm : C.VM_SINGLE, keyword : "OpticalTransmittance"}, + 0x00460042 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ChannelWidth"}, + 0x00460044 : { vr : "FD", vm : C.VM_SINGLE, keyword : "PupilSize"}, + 0x00460046 : { vr : "FD", vm : C.VM_SINGLE, keyword : "CornealSize"}, + 0x00460050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AutorefractionRightEyeSequence"}, + 0x00460052 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AutorefractionLeftEyeSequence"}, + 0x00460060 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DistancePupillaryDistance"}, + 0x00460062 : { vr : "FD", vm : C.VM_SINGLE, keyword : "NearPupillaryDistance"}, + 0x00460063 : { vr : "FD", vm : C.VM_SINGLE, keyword : "IntermediatePupillaryDistance"}, + 0x00460064 : { vr : "FD", vm : C.VM_SINGLE, keyword : "OtherPupillaryDistance"}, + 0x00460070 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "KeratometryRightEyeSequence"}, + 0x00460071 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "KeratometryLeftEyeSequence"}, + 0x00460074 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SteepKeratometricAxisSequence"}, + 0x00460075 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RadiusOfCurvature"}, + 0x00460076 : { vr : "FD", vm : C.VM_SINGLE, keyword : "KeratometricPower"}, + 0x00460077 : { vr : "FD", vm : C.VM_SINGLE, keyword : "KeratometricAxis"}, + 0x00460080 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FlatKeratometricAxisSequence"}, + 0x00460092 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BackgroundColor"}, + 0x00460094 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Optotype"}, + 0x00460095 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OptotypePresentation"}, + 0x00460097 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SubjectiveRefractionRightEyeSequence"}, + 0x00460098 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SubjectiveRefractionLeftEyeSequence"}, + 0x00460100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AddNearSequence"}, + 0x00460101 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AddIntermediateSequence"}, + 0x00460102 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AddOtherSequence"}, + 0x00460104 : { vr : "FD", vm : C.VM_SINGLE, keyword : "AddPower"}, + 0x00460106 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ViewingDistance"}, + 0x00460121 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualAcuityTypeCodeSequence"}, + 0x00460122 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualAcuityRightEyeSequence"}, + 0x00460123 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualAcuityLeftEyeSequence"}, + 0x00460124 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "VisualAcuityBothEyesOpenSequence"}, + 0x00460125 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ViewingDistanceType"}, + 0x00460135 : { vr : "SS", vm : C.VM_TWO, keyword : "VisualAcuityModifiers"}, + 0x00460137 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DecimalVisualAcuity"}, + 0x00460139 : { vr : "LO", vm : C.VM_SINGLE, keyword : "OptotypeDetailedDefinition"}, + 0x00460145 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedRefractiveMeasurementsSequence"}, + 0x00460146 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SpherePower"}, + 0x00460147 : { vr : "FD", vm : C.VM_SINGLE, keyword : "CylinderPower"}, + 0x00480001 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ImagedVolumeWidth"}, + 0x00480002 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ImagedVolumeHeight"}, + 0x00480003 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ImagedVolumeDepth"}, + 0x00480006 : { vr : "UL", vm : C.VM_SINGLE, keyword : "TotalPixelMatrixColumns"}, + 0x00480007 : { vr : "UL", vm : C.VM_SINGLE, keyword : "TotalPixelMatrixRows"}, + 0x00480008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TotalPixelMatrixOriginSequence"}, + 0x00480010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SpecimenLabelInImage"}, + 0x00480011 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FocusMethod"}, + 0x00480012 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExtendedDepthOfField"}, + 0x00480013 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfFocalPlanes"}, + 0x00480014 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DistanceBetweenFocalPlanes"}, + 0x00480015 : { vr : "US", vm : C.VM_THREE, keyword : "RecommendedAbsentPixelCIELabValue"}, + 0x00480100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IlluminatorTypeCodeSequence"}, + 0x00480102 : { vr : "DS", vm : C.VM_SIX, keyword : "ImageOrientationSlide"}, + 0x00480105 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OpticalPathSequence"}, + 0x00480106 : { vr : "SH", vm : C.VM_SINGLE, keyword : "OpticalPathIdentifier"}, + 0x00480107 : { vr : "ST", vm : C.VM_SINGLE, keyword : "OpticalPathDescription"}, + 0x00480108 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IlluminationColorCodeSequence"}, + 0x00480110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SpecimenReferenceSequence"}, + 0x00480111 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CondenserLensPower"}, + 0x00480112 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ObjectiveLensPower"}, + 0x00480113 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ObjectiveLensNumericalAperture"}, + 0x00480120 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PaletteColorLookupTableSequence"}, + 0x00480200 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedImageNavigationSequence"}, + 0x00480201 : { vr : "US", vm : C.VM_TWO, keyword : "TopLeftHandCornerOfLocalizerArea"}, + 0x00480202 : { vr : "US", vm : C.VM_TWO, keyword : "BottomRightHandCornerOfLocalizerArea"}, + 0x00480207 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OpticalPathIdentificationSequence"}, + 0x0048021A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlanePositionSlideSequence"}, + 0x0048021E : { vr : "SL", vm : C.VM_SINGLE, keyword : "RowPositionInTotalImagePixelMatrix"}, + 0x0048021F : { vr : "SL", vm : C.VM_SINGLE, keyword : "ColumnPositionInTotalImagePixelMatrix"}, + 0x00480301 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PixelOriginInterpretation"}, + 0x00500004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CalibrationImage"}, + 0x00500010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DeviceSequence"}, + 0x00500012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContainerComponentTypeCodeSequence"}, + 0x00500013 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ContainerComponentThickness"}, + 0x00500014 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeviceLength"}, + 0x00500015 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ContainerComponentWidth"}, + 0x00500016 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeviceDiameter"}, + 0x00500017 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DeviceDiameterUnits"}, + 0x00500018 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeviceVolume"}, + 0x00500019 : { vr : "DS", vm : C.VM_SINGLE, keyword : "InterMarkerDistance"}, + 0x0050001A : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContainerComponentMaterial"}, + 0x0050001B : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContainerComponentID"}, + 0x0050001C : { vr : "FD", vm : C.VM_SINGLE, keyword : "ContainerComponentLength"}, + 0x0050001D : { vr : "FD", vm : C.VM_SINGLE, keyword : "ContainerComponentDiameter"}, + 0x0050001E : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContainerComponentDescription"}, + 0x00500020 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DeviceDescription"}, + 0x00520001 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ContrastBolusIngredientPercentByVolume"}, + 0x00520002 : { vr : "FD", vm : C.VM_SINGLE, keyword : "OCTFocalDistance"}, + 0x00520003 : { vr : "FD", vm : C.VM_SINGLE, keyword : "BeamSpotSize"}, + 0x00520004 : { vr : "FD", vm : C.VM_SINGLE, keyword : "EffectiveRefractiveIndex"}, + 0x00520006 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OCTAcquisitionDomain"}, + 0x00520007 : { vr : "FD", vm : C.VM_SINGLE, keyword : "OCTOpticalCenterWavelength"}, + 0x00520008 : { vr : "FD", vm : C.VM_SINGLE, keyword : "AxialResolution"}, + 0x00520009 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RangingDepth"}, + 0x00520011 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ALineRate"}, + 0x00520012 : { vr : "US", vm : C.VM_SINGLE, keyword : "ALinesPerFrame"}, + 0x00520013 : { vr : "FD", vm : C.VM_SINGLE, keyword : "CatheterRotationalRate"}, + 0x00520014 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ALinePixelSpacing"}, + 0x00520016 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ModeOfPercutaneousAccessSequence"}, + 0x00520025 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IntravascularOCTFrameTypeSequence"}, + 0x00520026 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OCTZOffsetApplied"}, + 0x00520027 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IntravascularFrameContentSequence"}, + 0x00520028 : { vr : "FD", vm : C.VM_SINGLE, keyword : "IntravascularLongitudinalDistance"}, + 0x00520029 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IntravascularOCTFrameContentSequence"}, + 0x00520030 : { vr : "SS", vm : C.VM_SINGLE, keyword : "OCTZOffsetCorrection"}, + 0x00520031 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CatheterDirectionOfRotation"}, + 0x00520033 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SeamLineLocation"}, + 0x00520034 : { vr : "FD", vm : C.VM_SINGLE, keyword : "FirstALineLocation"}, + 0x00520036 : { vr : "US", vm : C.VM_SINGLE, keyword : "SeamLineIndex"}, + 0x00520038 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfPaddedAlines"}, + 0x00520039 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InterpolationType"}, + 0x0052003A : { vr : "CS", vm : C.VM_SINGLE, keyword : "RefractiveIndexApplied"}, + 0x00540010 : { vr : "US", vm : C.VM_1N, keyword : "EnergyWindowVector"}, + 0x00540011 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfEnergyWindows"}, + 0x00540012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EnergyWindowInformationSequence"}, + 0x00540013 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EnergyWindowRangeSequence"}, + 0x00540014 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EnergyWindowLowerLimit"}, + 0x00540015 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EnergyWindowUpperLimit"}, + 0x00540016 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalInformationSequence"}, + 0x00540017 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ResidualSyringeCounts"}, + 0x00540018 : { vr : "SH", vm : C.VM_SINGLE, keyword : "EnergyWindowName"}, + 0x00540020 : { vr : "US", vm : C.VM_1N, keyword : "DetectorVector"}, + 0x00540021 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfDetectors"}, + 0x00540022 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DetectorInformationSequence"}, + 0x00540030 : { vr : "US", vm : C.VM_1N, keyword : "PhaseVector"}, + 0x00540031 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfPhases"}, + 0x00540032 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PhaseInformationSequence"}, + 0x00540033 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfFramesInPhase"}, + 0x00540036 : { vr : "IS", vm : C.VM_SINGLE, keyword : "PhaseDelay"}, + 0x00540038 : { vr : "IS", vm : C.VM_SINGLE, keyword : "PauseBetweenFrames"}, + 0x00540039 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PhaseDescription"}, + 0x00540050 : { vr : "US", vm : C.VM_1N, keyword : "RotationVector"}, + 0x00540051 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfRotations"}, + 0x00540052 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RotationInformationSequence"}, + 0x00540053 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfFramesInRotation"}, + 0x00540060 : { vr : "US", vm : C.VM_1N, keyword : "RRIntervalVector"}, + 0x00540061 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfRRIntervals"}, + 0x00540062 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GatedInformationSequence"}, + 0x00540063 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DataInformationSequence"}, + 0x00540070 : { vr : "US", vm : C.VM_1N, keyword : "TimeSlotVector"}, + 0x00540071 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfTimeSlots"}, + 0x00540072 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TimeSlotInformationSequence"}, + 0x00540073 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TimeSlotTime"}, + 0x00540080 : { vr : "US", vm : C.VM_1N, keyword : "SliceVector"}, + 0x00540081 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfSlices"}, + 0x00540090 : { vr : "US", vm : C.VM_1N, keyword : "AngularViewVector"}, + 0x00540100 : { vr : "US", vm : C.VM_1N, keyword : "TimeSliceVector"}, + 0x00540101 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfTimeSlices"}, + 0x00540200 : { vr : "DS", vm : C.VM_SINGLE, keyword : "StartAngle"}, + 0x00540202 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TypeOfDetectorMotion"}, + 0x00540210 : { vr : "IS", vm : C.VM_1N, keyword : "TriggerVector"}, + 0x00540211 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfTriggersInPhase"}, + 0x00540220 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ViewCodeSequence"}, + 0x00540222 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ViewModifierCodeSequence"}, + 0x00540300 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RadionuclideCodeSequence"}, + 0x00540302 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AdministrationRouteCodeSequence"}, + 0x00540304 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RadiopharmaceuticalCodeSequence"}, + 0x00540306 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CalibrationDataSequence"}, + 0x00540308 : { vr : "US", vm : C.VM_SINGLE, keyword : "EnergyWindowNumber"}, + 0x00540400 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ImageID"}, + 0x00540410 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientOrientationCodeSequence"}, + 0x00540412 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientOrientationModifierCodeSequence"}, + 0x00540414 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientGantryRelationshipCodeSequence"}, + 0x00540500 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SliceProgressionDirection"}, + 0x00541000 : { vr : "CS", vm : C.VM_TWO, keyword : "SeriesType"}, + 0x00541001 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Units"}, + 0x00541002 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CountsSource"}, + 0x00541004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReprojectionMethod"}, + 0x00541006 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SUVType"}, + 0x00541100 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RandomsCorrectionMethod"}, + 0x00541101 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AttenuationCorrectionMethod"}, + 0x00541102 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DecayCorrection"}, + 0x00541103 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ReconstructionMethod"}, + 0x00541104 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DetectorLinesOfResponseUsed"}, + 0x00541105 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ScatterCorrectionMethod"}, + 0x00541200 : { vr : "DS", vm : C.VM_SINGLE, keyword : "AxialAcceptance"}, + 0x00541201 : { vr : "IS", vm : C.VM_TWO, keyword : "AxialMash"}, + 0x00541202 : { vr : "IS", vm : C.VM_SINGLE, keyword : "TransverseMash"}, + 0x00541203 : { vr : "DS", vm : C.VM_TWO, keyword : "DetectorElementSize"}, + 0x00541210 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CoincidenceWindowWidth"}, + 0x00541220 : { vr : "CS", vm : C.VM_1N, keyword : "SecondaryCountsType"}, + 0x00541300 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FrameReferenceTime"}, + 0x00541310 : { vr : "IS", vm : C.VM_SINGLE, keyword : "PrimaryPromptsCountsAccumulated"}, + 0x00541311 : { vr : "IS", vm : C.VM_1N, keyword : "SecondaryCountsAccumulated"}, + 0x00541320 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SliceSensitivityFactor"}, + 0x00541321 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DecayFactor"}, + 0x00541322 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DoseCalibrationFactor"}, + 0x00541323 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ScatterFractionFactor"}, + 0x00541324 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeadTimeFactor"}, + 0x00541330 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageIndex"}, + 0x00541400 : { vr : "CS", vm : C.VM_1N, keyword : "CountsIncluded"}, + 0x00541401 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DeadTimeCorrectionFlag"}, + 0x00603000 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HistogramSequence"}, + 0x00603002 : { vr : "US", vm : C.VM_SINGLE, keyword : "HistogramNumberOfBins"}, + 0x00603004 : { vr : "US", vm : C.VM_SINGLE, keyword : "HistogramFirstBinValue"}, + 0x00603006 : { vr : "US", vm : C.VM_SINGLE, keyword : "HistogramLastBinValue"}, + 0x00603008 : { vr : "US", vm : C.VM_SINGLE, keyword : "HistogramBinWidth"}, + 0x00603010 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HistogramExplanation"}, + 0x00603020 : { vr : "UL", vm : C.VM_1N, keyword : "HistogramData"}, + 0x00620001 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SegmentationType"}, + 0x00620002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SegmentSequence"}, + 0x00620003 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SegmentedPropertyCategoryCodeSequence"}, + 0x00620004 : { vr : "US", vm : C.VM_SINGLE, keyword : "SegmentNumber"}, + 0x00620005 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SegmentLabel"}, + 0x00620006 : { vr : "ST", vm : C.VM_SINGLE, keyword : "SegmentDescription"}, + 0x00620008 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SegmentAlgorithmType"}, + 0x00620009 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SegmentAlgorithmName"}, + 0x0062000A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SegmentIdentificationSequence"}, + 0x0062000B : { vr : "US", vm : C.VM_1N, keyword : "ReferencedSegmentNumber"}, + 0x0062000C : { vr : "US", vm : C.VM_SINGLE, keyword : "RecommendedDisplayGrayscaleValue"}, + 0x0062000D : { vr : "US", vm : C.VM_THREE, keyword : "RecommendedDisplayCIELabValue"}, + 0x0062000E : { vr : "US", vm : C.VM_SINGLE, keyword : "MaximumFractionalValue"}, + 0x0062000F : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SegmentedPropertyTypeCodeSequence"}, + 0x00620010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SegmentationFractionalType"}, + 0x00640002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DeformableRegistrationSequence"}, + 0x00640003 : { vr : "UI", vm : C.VM_SINGLE, keyword : "SourceFrameOfReferenceUID"}, + 0x00640005 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DeformableRegistrationGridSequence"}, + 0x00640007 : { vr : "UL", vm : C.VM_THREE, keyword : "GridDimensions"}, + 0x00640008 : { vr : "FD", vm : C.VM_THREE, keyword : "GridResolution"}, + 0x00640009 : { vr : "OF", vm : C.VM_SINGLE, keyword : "VectorGridData"}, + 0x0064000F : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PreDeformationMatrixRegistrationSequence"}, + 0x00640010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PostDeformationMatrixRegistrationSequence"}, + 0x00660001 : { vr : "UL", vm : C.VM_SINGLE, keyword : "NumberOfSurfaces"}, + 0x00660002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SurfaceSequence"}, + 0x00660003 : { vr : "UL", vm : C.VM_SINGLE, keyword : "SurfaceNumber"}, + 0x00660004 : { vr : "LT", vm : C.VM_SINGLE, keyword : "SurfaceComments"}, + 0x00660009 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SurfaceProcessing"}, + 0x0066000A : { vr : "FL", vm : C.VM_SINGLE, keyword : "SurfaceProcessingRatio"}, + 0x0066000B : { vr : "LO", vm : C.VM_SINGLE, keyword : "SurfaceProcessingDescription"}, + 0x0066000C : { vr : "FL", vm : C.VM_SINGLE, keyword : "RecommendedPresentationOpacity"}, + 0x0066000D : { vr : "CS", vm : C.VM_SINGLE, keyword : "RecommendedPresentationType"}, + 0x0066000E : { vr : "CS", vm : C.VM_SINGLE, keyword : "FiniteVolume"}, + 0x00660010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Manifold"}, + 0x00660011 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SurfacePointsSequence"}, + 0x00660012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SurfacePointsNormalsSequence"}, + 0x00660013 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SurfaceMeshPrimitivesSequence"}, + 0x00660015 : { vr : "UL", vm : C.VM_SINGLE, keyword : "NumberOfSurfacePoints"}, + 0x00660016 : { vr : "OF", vm : C.VM_SINGLE, keyword : "PointCoordinatesData"}, + 0x00660017 : { vr : "FL", vm : C.VM_THREE, keyword : "PointPositionAccuracy"}, + 0x00660018 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MeanPointDistance"}, + 0x00660019 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MaximumPointDistance"}, + 0x0066001A : { vr : "FL", vm : C.VM_SIX, keyword : "PointsBoundingBoxCoordinates"}, + 0x0066001B : { vr : "FL", vm : C.VM_THREE, keyword : "AxisOfRotation"}, + 0x0066001C : { vr : "FL", vm : C.VM_THREE, keyword : "CenterOfRotation"}, + 0x0066001E : { vr : "UL", vm : C.VM_SINGLE, keyword : "NumberOfVectors"}, + 0x0066001F : { vr : "US", vm : C.VM_SINGLE, keyword : "VectorDimensionality"}, + 0x00660020 : { vr : "FL", vm : C.VM_1N, keyword : "VectorAccuracy"}, + 0x00660021 : { vr : "OF", vm : C.VM_SINGLE, keyword : "VectorCoordinateData"}, + 0x00660023 : { vr : "OW", vm : C.VM_SINGLE, keyword : "TrianglePointIndexList"}, + 0x00660024 : { vr : "OW", vm : C.VM_SINGLE, keyword : "EdgePointIndexList"}, + 0x00660025 : { vr : "OW", vm : C.VM_SINGLE, keyword : "VertexPointIndexList"}, + 0x00660026 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TriangleStripSequence"}, + 0x00660027 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TriangleFanSequence"}, + 0x00660028 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LineSequence"}, + 0x00660029 : { vr : "OW", vm : C.VM_SINGLE, keyword : "PrimitivePointIndexList"}, + 0x0066002A : { vr : "UL", vm : C.VM_SINGLE, keyword : "SurfaceCount"}, + 0x0066002B : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedSurfaceSequence"}, + 0x0066002C : { vr : "UL", vm : C.VM_SINGLE, keyword : "ReferencedSurfaceNumber"}, + 0x0066002D : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SegmentSurfaceGenerationAlgorithmIdentificationSequence"}, + 0x0066002E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SegmentSurfaceSourceInstanceSequence"}, + 0x0066002F : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AlgorithmFamilyCodeSequence"}, + 0x00660030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AlgorithmNameCodeSequence"}, + 0x00660031 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AlgorithmVersion"}, + 0x00660032 : { vr : "LT", vm : C.VM_SINGLE, keyword : "AlgorithmParameters"}, + 0x00660034 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FacetSequence"}, + 0x00660035 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SurfaceProcessingAlgorithmIdentificationSequence"}, + 0x00660036 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AlgorithmName"}, + 0x00686210 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantSize"}, + 0x00686221 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantTemplateVersion"}, + 0x00686222 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReplacedImplantTemplateSequence"}, + 0x00686223 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImplantType"}, + 0x00686224 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DerivationImplantTemplateSequence"}, + 0x00686225 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OriginalImplantTemplateSequence"}, + 0x00686226 : { vr : "DT", vm : C.VM_SINGLE, keyword : "EffectiveDateTime"}, + 0x00686230 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantTargetAnatomySequence"}, + 0x00686260 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InformationFromManufacturerSequence"}, + 0x00686265 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "NotificationFromManufacturerSequence"}, + 0x00686270 : { vr : "DT", vm : C.VM_SINGLE, keyword : "InformationIssueDateTime"}, + 0x00686280 : { vr : "ST", vm : C.VM_SINGLE, keyword : "InformationSummary"}, + 0x006862A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantRegulatoryDisapprovalCodeSequence"}, + 0x006862A5 : { vr : "FD", vm : C.VM_SINGLE, keyword : "OverallTemplateSpatialTolerance"}, + 0x006862C0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HPGLDocumentSequence"}, + 0x006862D0 : { vr : "US", vm : C.VM_SINGLE, keyword : "HPGLDocumentID"}, + 0x006862D5 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HPGLDocumentLabel"}, + 0x006862E0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ViewOrientationCodeSequence"}, + 0x006862F0 : { vr : "FD", vm : C.VM_NINE, keyword : "ViewOrientationModifier"}, + 0x006862F2 : { vr : "FD", vm : C.VM_SINGLE, keyword : "HPGLDocumentScaling"}, + 0x00686300 : { vr : "OB", vm : C.VM_SINGLE, keyword : "HPGLDocument"}, + 0x00686310 : { vr : "US", vm : C.VM_SINGLE, keyword : "HPGLContourPenNumber"}, + 0x00686320 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HPGLPenSequence"}, + 0x00686330 : { vr : "US", vm : C.VM_SINGLE, keyword : "HPGLPenNumber"}, + 0x00686340 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HPGLPenLabel"}, + 0x00686345 : { vr : "ST", vm : C.VM_SINGLE, keyword : "HPGLPenDescription"}, + 0x00686346 : { vr : "FD", vm : C.VM_TWO, keyword : "RecommendedRotationPoint"}, + 0x00686347 : { vr : "FD", vm : C.VM_FOUR, keyword : "BoundingRectangle"}, + 0x00686350 : { vr : "US", vm : C.VM_1N, keyword : "ImplantTemplate3DModelSurfaceNumber"}, + 0x00686360 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SurfaceModelDescriptionSequence"}, + 0x00686380 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SurfaceModelLabel"}, + 0x00686390 : { vr : "FD", vm : C.VM_SINGLE, keyword : "SurfaceModelScalingFactor"}, + 0x006863A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MaterialsCodeSequence"}, + 0x006863A4 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CoatingMaterialsCodeSequence"}, + 0x006863A8 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantTypeCodeSequence"}, + 0x006863AC : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FixationMethodCodeSequence"}, + 0x006863B0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MatingFeatureSetsSequence"}, + 0x006863C0 : { vr : "US", vm : C.VM_SINGLE, keyword : "MatingFeatureSetID"}, + 0x006863D0 : { vr : "LO", vm : C.VM_SINGLE, keyword : "MatingFeatureSetLabel"}, + 0x006863E0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MatingFeatureSequence"}, + 0x006863F0 : { vr : "US", vm : C.VM_SINGLE, keyword : "MatingFeatureID"}, + 0x00686400 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MatingFeatureDegreeOfFreedomSequence"}, + 0x00686410 : { vr : "US", vm : C.VM_SINGLE, keyword : "DegreeOfFreedomID"}, + 0x00686420 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DegreeOfFreedomType"}, + 0x00686430 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TwoDMatingFeatureCoordinatesSequence"}, + 0x00686440 : { vr : "US", vm : C.VM_SINGLE, keyword : "ReferencedHPGLDocumentID"}, + 0x00686450 : { vr : "FD", vm : C.VM_TWO, keyword : "TwoDMatingPoint"}, + 0x00686460 : { vr : "FD", vm : C.VM_FOUR, keyword : "TwoDMatingAxes"}, + 0x00686470 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TwoDDegreeOfFreedomSequence"}, + 0x00686490 : { vr : "FD", vm : C.VM_THREE, keyword : "ThreeDDegreeOfFreedomAxis"}, + 0x006864A0 : { vr : "FD", vm : C.VM_TWO, keyword : "RangeOfFreedom"}, + 0x006864C0 : { vr : "FD", vm : C.VM_THREE, keyword : "ThreeDMatingPoint"}, + 0x006864D0 : { vr : "FD", vm : C.VM_NINE, keyword : "ThreeDMatingAxes"}, + 0x006864F0 : { vr : "FD", vm : C.VM_THREE, keyword : "TwoDDegreeOfFreedomAxis"}, + 0x00686500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlanningLandmarkPointSequence"}, + 0x00686510 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlanningLandmarkLineSequence"}, + 0x00686520 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlanningLandmarkPlaneSequence"}, + 0x00686530 : { vr : "US", vm : C.VM_SINGLE, keyword : "PlanningLandmarkID"}, + 0x00686540 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PlanningLandmarkDescription"}, + 0x00686545 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlanningLandmarkIdentificationCodeSequence"}, + 0x00686550 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TwoDPointCoordinatesSequence"}, + 0x00686560 : { vr : "FD", vm : C.VM_TWO, keyword : "TwoDPointCoordinates"}, + 0x00686590 : { vr : "FD", vm : C.VM_THREE, keyword : "ThreeDPointCoordinates"}, + 0x006865A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TwoDLineCoordinatesSequence"}, + 0x006865B0 : { vr : "FD", vm : C.VM_FOUR, keyword : "TwoDLineCoordinates"}, + 0x006865D0 : { vr : "FD", vm : C.VM_SIX, keyword : "ThreeDLineCoordinates"}, + 0x006865E0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TwoDPlaneCoordinatesSequence"}, + 0x006865F0 : { vr : "FD", vm : C.VM_FOUR, keyword : "TwoDPlaneIntersection"}, + 0x00686610 : { vr : "FD", vm : C.VM_THREE, keyword : "ThreeDPlaneOrigin"}, + 0x00686620 : { vr : "FD", vm : C.VM_THREE, keyword : "ThreeDPlaneNormal"}, + 0x00700001 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GraphicAnnotationSequence"}, + 0x00700002 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GraphicLayer"}, + 0x00700003 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BoundingBoxAnnotationUnits"}, + 0x00700004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AnchorPointAnnotationUnits"}, + 0x00700005 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GraphicAnnotationUnits"}, + 0x00700006 : { vr : "ST", vm : C.VM_SINGLE, keyword : "UnformattedTextValue"}, + 0x00700008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TextObjectSequence"}, + 0x00700009 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GraphicObjectSequence"}, + 0x00700010 : { vr : "FL", vm : C.VM_TWO, keyword : "BoundingBoxTopLeftHandCorner"}, + 0x00700011 : { vr : "FL", vm : C.VM_TWO, keyword : "BoundingBoxBottomRightHandCorner"}, + 0x00700012 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BoundingBoxTextHorizontalJustification"}, + 0x00700014 : { vr : "FL", vm : C.VM_TWO, keyword : "AnchorPoint"}, + 0x00700015 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AnchorPointVisibility"}, + 0x00700020 : { vr : "US", vm : C.VM_SINGLE, keyword : "GraphicDimensions"}, + 0x00700021 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfGraphicPoints"}, + 0x00700022 : { vr : "FL", vm : C.VM_2N, keyword : "GraphicData"}, + 0x00700023 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GraphicType"}, + 0x00700024 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GraphicFilled"}, + 0x00700040 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ImageRotationRetired"}, + 0x00700041 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageHorizontalFlip"}, + 0x00700042 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageRotation"}, + 0x00700050 : { vr : "US", vm : C.VM_TWO, keyword : "DisplayedAreaTopLeftHandCornerTrial"}, + 0x00700051 : { vr : "US", vm : C.VM_TWO, keyword : "DisplayedAreaBottomRightHandCornerTrial"}, + 0x00700052 : { vr : "SL", vm : C.VM_TWO, keyword : "DisplayedAreaTopLeftHandCorner"}, + 0x00700053 : { vr : "SL", vm : C.VM_TWO, keyword : "DisplayedAreaBottomRightHandCorner"}, + 0x0070005A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DisplayedAreaSelectionSequence"}, + 0x00700060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GraphicLayerSequence"}, + 0x00700062 : { vr : "IS", vm : C.VM_SINGLE, keyword : "GraphicLayerOrder"}, + 0x00700066 : { vr : "US", vm : C.VM_SINGLE, keyword : "GraphicLayerRecommendedDisplayGrayscaleValue"}, + 0x00700067 : { vr : "US", vm : C.VM_THREE, keyword : "GraphicLayerRecommendedDisplayRGBValue"}, + 0x00700068 : { vr : "LO", vm : C.VM_SINGLE, keyword : "GraphicLayerDescription"}, + 0x00700080 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContentLabel"}, + 0x00700081 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContentDescription"}, + 0x00700082 : { vr : "DA", vm : C.VM_SINGLE, keyword : "PresentationCreationDate"}, + 0x00700083 : { vr : "TM", vm : C.VM_SINGLE, keyword : "PresentationCreationTime"}, + 0x00700084 : { vr : "PN", vm : C.VM_SINGLE, keyword : "ContentCreatorName"}, + 0x00700086 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContentCreatorIdentificationCodeSequence"}, + 0x00700087 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AlternateContentDescriptionSequence"}, + 0x00700100 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PresentationSizeMode"}, + 0x00700101 : { vr : "DS", vm : C.VM_TWO, keyword : "PresentationPixelSpacing"}, + 0x00700102 : { vr : "IS", vm : C.VM_TWO, keyword : "PresentationPixelAspectRatio"}, + 0x00700103 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PresentationPixelMagnificationRatio"}, + 0x00700207 : { vr : "LO", vm : C.VM_SINGLE, keyword : "GraphicGroupLabel"}, + 0x00700208 : { vr : "ST", vm : C.VM_SINGLE, keyword : "GraphicGroupDescription"}, + 0x00700209 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CompoundGraphicSequence"}, + 0x00700226 : { vr : "UL", vm : C.VM_SINGLE, keyword : "CompoundGraphicInstanceID"}, + 0x00700227 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FontName"}, + 0x00700228 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FontNameType"}, + 0x00700229 : { vr : "LO", vm : C.VM_SINGLE, keyword : "CSSFontName"}, + 0x00700230 : { vr : "FD", vm : C.VM_SINGLE, keyword : "RotationAngle"}, + 0x00700231 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TextStyleSequence"}, + 0x00700232 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LineStyleSequence"}, + 0x00700233 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FillStyleSequence"}, + 0x00700234 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GraphicGroupSequence"}, + 0x00700241 : { vr : "US", vm : C.VM_THREE, keyword : "TextColorCIELabValue"}, + 0x00700242 : { vr : "CS", vm : C.VM_SINGLE, keyword : "HorizontalAlignment"}, + 0x00700243 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VerticalAlignment"}, + 0x00700244 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShadowStyle"}, + 0x00700245 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ShadowOffsetX"}, + 0x00700246 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ShadowOffsetY"}, + 0x00700247 : { vr : "US", vm : C.VM_THREE, keyword : "ShadowColorCIELabValue"}, + 0x00700248 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Underlined"}, + 0x00700249 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Bold"}, + 0x00700250 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Italic"}, + 0x00700251 : { vr : "US", vm : C.VM_THREE, keyword : "PatternOnColorCIELabValue"}, + 0x00700252 : { vr : "US", vm : C.VM_THREE, keyword : "PatternOffColorCIELabValue"}, + 0x00700253 : { vr : "FL", vm : C.VM_SINGLE, keyword : "LineThickness"}, + 0x00700254 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LineDashingStyle"}, + 0x00700255 : { vr : "UL", vm : C.VM_SINGLE, keyword : "LinePattern"}, + 0x00700256 : { vr : "OB", vm : C.VM_SINGLE, keyword : "FillPattern"}, + 0x00700257 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FillMode"}, + 0x00700258 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ShadowOpacity"}, + 0x00700261 : { vr : "FL", vm : C.VM_SINGLE, keyword : "GapLength"}, + 0x00700262 : { vr : "FL", vm : C.VM_SINGLE, keyword : "DiameterOfVisibility"}, + 0x00700273 : { vr : "FL", vm : C.VM_TWO, keyword : "RotationPoint"}, + 0x00700274 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TickAlignment"}, + 0x00700278 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShowTickLabel"}, + 0x00700279 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TickLabelAlignment"}, + 0x00700282 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CompoundGraphicUnits"}, + 0x00700284 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PatternOnOpacity"}, + 0x00700285 : { vr : "FL", vm : C.VM_SINGLE, keyword : "PatternOffOpacity"}, + 0x00700287 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MajorTicksSequence"}, + 0x00700288 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TickPosition"}, + 0x00700289 : { vr : "SH", vm : C.VM_SINGLE, keyword : "TickLabel"}, + 0x00700294 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CompoundGraphicType"}, + 0x00700295 : { vr : "UL", vm : C.VM_SINGLE, keyword : "GraphicGroupID"}, + 0x00700306 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShapeType"}, + 0x00700308 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RegistrationSequence"}, + 0x00700309 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MatrixRegistrationSequence"}, + 0x0070030A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MatrixSequence"}, + 0x0070030C : { vr : "CS", vm : C.VM_SINGLE, keyword : "FrameOfReferenceTransformationMatrixType"}, + 0x0070030D : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RegistrationTypeCodeSequence"}, + 0x0070030F : { vr : "ST", vm : C.VM_SINGLE, keyword : "FiducialDescription"}, + 0x00700310 : { vr : "SH", vm : C.VM_SINGLE, keyword : "FiducialIdentifier"}, + 0x00700311 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FiducialIdentifierCodeSequence"}, + 0x00700312 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ContourUncertaintyRadius"}, + 0x00700314 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "UsedFiducialsSequence"}, + 0x00700318 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GraphicCoordinatesDataSequence"}, + 0x0070031A : { vr : "UI", vm : C.VM_SINGLE, keyword : "FiducialUID"}, + 0x0070031C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FiducialSetSequence"}, + 0x0070031E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FiducialSequence"}, + 0x00700401 : { vr : "US", vm : C.VM_THREE, keyword : "GraphicLayerRecommendedDisplayCIELabValue"}, + 0x00700402 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BlendingSequence"}, + 0x00700403 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RelativeOpacity"}, + 0x00700404 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedSpatialRegistrationSequence"}, + 0x00700405 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlendingPosition"}, + 0x00720002 : { vr : "SH", vm : C.VM_SINGLE, keyword : "HangingProtocolName"}, + 0x00720004 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HangingProtocolDescription"}, + 0x00720006 : { vr : "CS", vm : C.VM_SINGLE, keyword : "HangingProtocolLevel"}, + 0x00720008 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HangingProtocolCreator"}, + 0x0072000A : { vr : "DT", vm : C.VM_SINGLE, keyword : "HangingProtocolCreationDateTime"}, + 0x0072000C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HangingProtocolDefinitionSequence"}, + 0x0072000E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "HangingProtocolUserIdentificationCodeSequence"}, + 0x00720010 : { vr : "LO", vm : C.VM_SINGLE, keyword : "HangingProtocolUserGroupName"}, + 0x00720012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceHangingProtocolSequence"}, + 0x00720014 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfPriorsReferenced"}, + 0x00720020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageSetsSequence"}, + 0x00720022 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageSetSelectorSequence"}, + 0x00720024 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageSetSelectorUsageFlag"}, + 0x00720026 : { vr : "AT", vm : C.VM_SINGLE, keyword : "SelectorAttribute"}, + 0x00720028 : { vr : "US", vm : C.VM_SINGLE, keyword : "SelectorValueNumber"}, + 0x00720030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TimeBasedImageSetsSequence"}, + 0x00720032 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageSetNumber"}, + 0x00720034 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageSetSelectorCategory"}, + 0x00720038 : { vr : "US", vm : C.VM_TWO, keyword : "RelativeTime"}, + 0x0072003A : { vr : "CS", vm : C.VM_SINGLE, keyword : "RelativeTimeUnits"}, + 0x0072003C : { vr : "SS", vm : C.VM_TWO, keyword : "AbstractPriorValue"}, + 0x0072003E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AbstractPriorCodeSequence"}, + 0x00720040 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImageSetLabel"}, + 0x00720050 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SelectorAttributeVR"}, + 0x00720052 : { vr : "AT", vm : C.VM_1N, keyword : "SelectorSequencePointer"}, + 0x00720054 : { vr : "LO", vm : C.VM_1N, keyword : "SelectorSequencePointerPrivateCreator"}, + 0x00720056 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SelectorAttributePrivateCreator"}, + 0x00720060 : { vr : "AT", vm : C.VM_1N, keyword : "SelectorATValue"}, + 0x00720062 : { vr : "CS", vm : C.VM_1N, keyword : "SelectorCSValue"}, + 0x00720064 : { vr : "IS", vm : C.VM_1N, keyword : "SelectorISValue"}, + 0x00720066 : { vr : "LO", vm : C.VM_1N, keyword : "SelectorLOValue"}, + 0x00720068 : { vr : "LT", vm : C.VM_SINGLE, keyword : "SelectorLTValue"}, + 0x0072006A : { vr : "PN", vm : C.VM_1N, keyword : "SelectorPNValue"}, + 0x0072006C : { vr : "SH", vm : C.VM_1N, keyword : "SelectorSHValue"}, + 0x0072006E : { vr : "ST", vm : C.VM_SINGLE, keyword : "SelectorSTValue"}, + 0x00720070 : { vr : "UT", vm : C.VM_SINGLE, keyword : "SelectorUTValue"}, + 0x00720072 : { vr : "DS", vm : C.VM_1N, keyword : "SelectorDSValue"}, + 0x00720074 : { vr : "FD", vm : C.VM_1N, keyword : "SelectorFDValue"}, + 0x00720076 : { vr : "FL", vm : C.VM_1N, keyword : "SelectorFLValue"}, + 0x00720078 : { vr : "UL", vm : C.VM_1N, keyword : "SelectorULValue"}, + 0x0072007A : { vr : "US", vm : C.VM_1N, keyword : "SelectorUSValue"}, + 0x0072007C : { vr : "SL", vm : C.VM_1N, keyword : "SelectorSLValue"}, + 0x0072007E : { vr : "SS", vm : C.VM_1N, keyword : "SelectorSSValue"}, + 0x00720080 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SelectorCodeSequenceValue"}, + 0x00720100 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfScreens"}, + 0x00720102 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "NominalScreenDefinitionSequence"}, + 0x00720104 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfVerticalPixels"}, + 0x00720106 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfHorizontalPixels"}, + 0x00720108 : { vr : "FD", vm : C.VM_FOUR, keyword : "DisplayEnvironmentSpatialPosition"}, + 0x0072010A : { vr : "US", vm : C.VM_SINGLE, keyword : "ScreenMinimumGrayscaleBitDepth"}, + 0x0072010C : { vr : "US", vm : C.VM_SINGLE, keyword : "ScreenMinimumColorBitDepth"}, + 0x0072010E : { vr : "US", vm : C.VM_SINGLE, keyword : "ApplicationMaximumRepaintTime"}, + 0x00720200 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DisplaySetsSequence"}, + 0x00720202 : { vr : "US", vm : C.VM_SINGLE, keyword : "DisplaySetNumber"}, + 0x00720203 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DisplaySetLabel"}, + 0x00720204 : { vr : "US", vm : C.VM_SINGLE, keyword : "DisplaySetPresentationGroup"}, + 0x00720206 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DisplaySetPresentationGroupDescription"}, + 0x00720208 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PartialDataDisplayHandling"}, + 0x00720210 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SynchronizedScrollingSequence"}, + 0x00720212 : { vr : "US", vm : C.VM_2N, keyword : "DisplaySetScrollingGroup"}, + 0x00720214 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "NavigationIndicatorSequence"}, + 0x00720216 : { vr : "US", vm : C.VM_SINGLE, keyword : "NavigationDisplaySet"}, + 0x00720218 : { vr : "US", vm : C.VM_1N, keyword : "ReferenceDisplaySets"}, + 0x00720300 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageBoxesSequence"}, + 0x00720302 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageBoxNumber"}, + 0x00720304 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageBoxLayoutType"}, + 0x00720306 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageBoxTileHorizontalDimension"}, + 0x00720308 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageBoxTileVerticalDimension"}, + 0x00720310 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageBoxScrollDirection"}, + 0x00720312 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageBoxSmallScrollType"}, + 0x00720314 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageBoxSmallScrollAmount"}, + 0x00720316 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageBoxLargeScrollType"}, + 0x00720318 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageBoxLargeScrollAmount"}, + 0x00720320 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageBoxOverlapPriority"}, + 0x00720330 : { vr : "FD", vm : C.VM_SINGLE, keyword : "CineRelativeToRealTime"}, + 0x00720400 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FilterOperationsSequence"}, + 0x00720402 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FilterByCategory"}, + 0x00720404 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FilterByAttributePresence"}, + 0x00720406 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FilterByOperator"}, + 0x00720420 : { vr : "US", vm : C.VM_THREE, keyword : "StructuredDisplayBackgroundCIELabValue"}, + 0x00720421 : { vr : "US", vm : C.VM_THREE, keyword : "EmptyImageBoxCIELabValue"}, + 0x00720422 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "StructuredDisplayImageBoxSequence"}, + 0x00720424 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "StructuredDisplayTextBoxSequence"}, + 0x00720427 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedFirstFrameSequence"}, + 0x00720430 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageBoxSynchronizationSequence"}, + 0x00720432 : { vr : "US", vm : C.VM_2N, keyword : "SynchronizedImageBoxList"}, + 0x00720434 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TypeOfSynchronization"}, + 0x00720500 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlendingOperationType"}, + 0x00720510 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReformattingOperationType"}, + 0x00720512 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ReformattingThickness"}, + 0x00720514 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ReformattingInterval"}, + 0x00720516 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReformattingOperationInitialViewDirection"}, + 0x00720520 : { vr : "CS", vm : C.VM_1N, keyword : "ThreeDRenderingType"}, + 0x00720600 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SortingOperationsSequence"}, + 0x00720602 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SortByCategory"}, + 0x00720604 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SortingDirection"}, + 0x00720700 : { vr : "CS", vm : C.VM_TWO, keyword : "DisplaySetPatientOrientation"}, + 0x00720702 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VOIType"}, + 0x00720704 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PseudoColorType"}, + 0x00720705 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PseudoColorPaletteInstanceReferenceSequence"}, + 0x00720706 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShowGrayscaleInverted"}, + 0x00720710 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShowImageTrueSizeFlag"}, + 0x00720712 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShowGraphicAnnotationFlag"}, + 0x00720714 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShowPatientDemographicsFlag"}, + 0x00720716 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShowAcquisitionTechniquesFlag"}, + 0x00720717 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DisplaySetHorizontalJustification"}, + 0x00720718 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DisplaySetVerticalJustification"}, + 0x00740120 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ContinuationStartMeterset"}, + 0x00740121 : { vr : "FD", vm : C.VM_SINGLE, keyword : "ContinuationEndMeterset"}, + 0x00741000 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ProcedureStepState"}, + 0x00741002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProcedureStepProgressInformationSequence"}, + 0x00741004 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ProcedureStepProgress"}, + 0x00741006 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ProcedureStepProgressDescription"}, + 0x00741008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProcedureStepCommunicationsURISequence"}, + 0x0074100a : { vr : "ST", vm : C.VM_SINGLE, keyword : "ContactURI"}, + 0x0074100c : { vr : "LO", vm : C.VM_SINGLE, keyword : "ContactDisplayName"}, + 0x0074100e : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProcedureStepDiscontinuationReasonCodeSequence"}, + 0x00741020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BeamTaskSequence"}, + 0x00741022 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BeamTaskType"}, + 0x00741024 : { vr : "IS", vm : C.VM_SINGLE, keyword : "BeamOrderIndexTrial"}, + 0x00741026 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableTopVerticalAdjustedPosition"}, + 0x00741027 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableTopLongitudinalAdjustedPosition"}, + 0x00741028 : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableTopLateralAdjustedPosition"}, + 0x0074102A : { vr : "FD", vm : C.VM_SINGLE, keyword : "PatientSupportAdjustedAngle"}, + 0x0074102B : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableTopEccentricAdjustedAngle"}, + 0x0074102C : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableTopPitchAdjustedAngle"}, + 0x0074102D : { vr : "FD", vm : C.VM_SINGLE, keyword : "TableTopRollAdjustedAngle"}, + 0x00741030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DeliveryVerificationImageSequence"}, + 0x00741032 : { vr : "CS", vm : C.VM_SINGLE, keyword : "VerificationImageTiming"}, + 0x00741034 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DoubleExposureFlag"}, + 0x00741036 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DoubleExposureOrdering"}, + 0x00741038 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DoubleExposureMetersetTrial"}, + 0x0074103A : { vr : "DS", vm : C.VM_FOUR, keyword : "DoubleExposureFieldDeltaTrial"}, + 0x00741040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelatedReferenceRTImageSequence"}, + 0x00741042 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GeneralMachineVerificationSequence"}, + 0x00741044 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ConventionalMachineVerificationSequence"}, + 0x00741046 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonMachineVerificationSequence"}, + 0x00741048 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FailedAttributesSequence"}, + 0x0074104A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OverriddenAttributesSequence"}, + 0x0074104C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ConventionalControlPointVerificationSequence"}, + 0x0074104E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonControlPointVerificationSequence"}, + 0x00741050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AttributeOccurrenceSequence"}, + 0x00741052 : { vr : "AT", vm : C.VM_SINGLE, keyword : "AttributeOccurrencePointer"}, + 0x00741054 : { vr : "UL", vm : C.VM_SINGLE, keyword : "AttributeItemSelector"}, + 0x00741056 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AttributeOccurrencePrivateCreator"}, + 0x00741057 : { vr : "IS", vm : C.VM_1N, keyword : "SelectorSequencePointerItems"}, + 0x00741200 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ScheduledProcedureStepPriority"}, + 0x00741202 : { vr : "LO", vm : C.VM_SINGLE, keyword : "WorklistLabel"}, + 0x00741204 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ProcedureStepLabel"}, + 0x00741210 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ScheduledProcessingParametersSequence"}, + 0x00741212 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerformedProcessingParametersSequence"}, + 0x00741216 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "UnifiedProcedureStepPerformedProcedureSequence"}, + 0x00741220 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelatedProcedureStepSequence"}, + 0x00741222 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ProcedureStepRelationshipType"}, + 0x00741224 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReplacedProcedureStepSequence"}, + 0x00741230 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DeletionLock"}, + 0x00741234 : { vr : "AE", vm : C.VM_SINGLE, keyword : "ReceivingAE"}, + 0x00741236 : { vr : "AE", vm : C.VM_SINGLE, keyword : "RequestingAE"}, + 0x00741238 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ReasonForCancellation"}, + 0x00741242 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SCPStatus"}, + 0x00741244 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SubscriptionListStatus"}, + 0x00741246 : { vr : "CS", vm : C.VM_SINGLE, keyword : "UnifiedProcedureStepListStatus"}, + 0x00741324 : { vr : "UL", vm : C.VM_SINGLE, keyword : "BeamOrderIndex"}, + 0x00741338 : { vr : "FD", vm : C.VM_SINGLE, keyword : "DoubleExposureMeterset"}, + 0x0074133A : { vr : "FD", vm : C.VM_FOUR, keyword : "DoubleExposureFieldDelta"}, + 0x00760001 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantAssemblyTemplateName"}, + 0x00760003 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantAssemblyTemplateIssuer"}, + 0x00760006 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantAssemblyTemplateVersion"}, + 0x00760008 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReplacedImplantAssemblyTemplateSequence"}, + 0x0076000A : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImplantAssemblyTemplateType"}, + 0x0076000C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OriginalImplantAssemblyTemplateSequence"}, + 0x0076000E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DerivationImplantAssemblyTemplateSequence"}, + 0x00760010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantAssemblyTemplateTargetAnatomySequence"}, + 0x00760020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProcedureTypeCodeSequence"}, + 0x00760030 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SurgicalTechnique"}, + 0x00760032 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ComponentTypesSequence"}, + 0x00760034 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ComponentTypeCodeSequence"}, + 0x00760036 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExclusiveComponentType"}, + 0x00760038 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MandatoryComponentType"}, + 0x00760040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ComponentSequence"}, + 0x00760055 : { vr : "US", vm : C.VM_SINGLE, keyword : "ComponentID"}, + 0x00760060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ComponentAssemblySequence"}, + 0x00760070 : { vr : "US", vm : C.VM_SINGLE, keyword : "Component1ReferencedID"}, + 0x00760080 : { vr : "US", vm : C.VM_SINGLE, keyword : "Component1ReferencedMatingFeatureSetID"}, + 0x00760090 : { vr : "US", vm : C.VM_SINGLE, keyword : "Component1ReferencedMatingFeatureID"}, + 0x007600A0 : { vr : "US", vm : C.VM_SINGLE, keyword : "Component2ReferencedID"}, + 0x007600B0 : { vr : "US", vm : C.VM_SINGLE, keyword : "Component2ReferencedMatingFeatureSetID"}, + 0x007600C0 : { vr : "US", vm : C.VM_SINGLE, keyword : "Component2ReferencedMatingFeatureID"}, + 0x00780001 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupName"}, + 0x00780010 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupDescription"}, + 0x00780020 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupIssuer"}, + 0x00780024 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupVersion"}, + 0x00780026 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReplacedImplantTemplateGroupSequence"}, + 0x00780028 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupTargetAnatomySequence"}, + 0x0078002A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupMembersSequence"}, + 0x0078002E : { vr : "US", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupMemberID"}, + 0x00780050 : { vr : "FD", vm : C.VM_THREE, keyword : "ThreeDImplantTemplateGroupMemberMatchingPoint"}, + 0x00780060 : { vr : "FD", vm : C.VM_NINE, keyword : "ThreeDImplantTemplateGroupMemberMatchingAxes"}, + 0x00780070 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupMemberMatching2DCoordinatesSequence"}, + 0x00780090 : { vr : "FD", vm : C.VM_TWO, keyword : "TwoDImplantTemplateGroupMemberMatchingPoint"}, + 0x007800A0 : { vr : "FD", vm : C.VM_FOUR, keyword : "TwoDImplantTemplateGroupMemberMatchingAxes"}, + 0x007800B0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupVariationDimensionSequence"}, + 0x007800B2 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupVariationDimensionName"}, + 0x007800B4 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupVariationDimensionRankSequence"}, + 0x007800B6 : { vr : "US", vm : C.VM_SINGLE, keyword : "ReferencedImplantTemplateGroupMemberID"}, + 0x007800B8 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImplantTemplateGroupVariationDimensionRank"}, + 0x00880130 : { vr : "SH", vm : C.VM_SINGLE, keyword : "StorageMediaFileSetID"}, + 0x00880140 : { vr : "UI", vm : C.VM_SINGLE, keyword : "StorageMediaFileSetUID"}, + 0x00880200 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IconImageSequence"}, + 0x00880904 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TopicTitle"}, + 0x00880906 : { vr : "ST", vm : C.VM_SINGLE, keyword : "TopicSubject"}, + 0x00880910 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TopicAuthor"}, + 0x00880912 : { vr : "LO", vm : C.VM_1_32, keyword : "TopicKeywords"}, + 0x01000410 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SOPInstanceStatus"}, + 0x01000420 : { vr : "DT", vm : C.VM_SINGLE, keyword : "SOPAuthorizationDateTime"}, + 0x01000424 : { vr : "LT", vm : C.VM_SINGLE, keyword : "SOPAuthorizationComment"}, + 0x01000426 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AuthorizationEquipmentCertificationNumber"}, + 0x04000005 : { vr : "US", vm : C.VM_SINGLE, keyword : "MACIDNumber"}, + 0x04000010 : { vr : "UI", vm : C.VM_SINGLE, keyword : "MACCalculationTransferSyntaxUID"}, + 0x04000015 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MACAlgorithm"}, + 0x04000020 : { vr : "AT", vm : C.VM_1N, keyword : "DataElementsSigned"}, + 0x04000100 : { vr : "UI", vm : C.VM_SINGLE, keyword : "DigitalSignatureUID"}, + 0x04000105 : { vr : "DT", vm : C.VM_SINGLE, keyword : "DigitalSignatureDateTime"}, + 0x04000110 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CertificateType"}, + 0x04000115 : { vr : "OB", vm : C.VM_SINGLE, keyword : "CertificateOfSigner"}, + 0x04000120 : { vr : "OB", vm : C.VM_SINGLE, keyword : "Signature"}, + 0x04000305 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CertifiedTimestampType"}, + 0x04000310 : { vr : "OB", vm : C.VM_SINGLE, keyword : "CertifiedTimestamp"}, + 0x04000401 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DigitalSignaturePurposeCodeSequence"}, + 0x04000402 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedDigitalSignatureSequence"}, + 0x04000403 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedSOPInstanceMACSequence"}, + 0x04000404 : { vr : "OB", vm : C.VM_SINGLE, keyword : "MAC"}, + 0x04000500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "EncryptedAttributesSequence"}, + 0x04000510 : { vr : "UI", vm : C.VM_SINGLE, keyword : "EncryptedContentTransferSyntaxUID"}, + 0x04000520 : { vr : "OB", vm : C.VM_SINGLE, keyword : "EncryptedContent"}, + 0x04000550 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ModifiedAttributesSequence"}, + 0x04000561 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OriginalAttributesSequence"}, + 0x04000562 : { vr : "DT", vm : C.VM_SINGLE, keyword : "AttributeModificationDateTime"}, + 0x04000563 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ModifyingSystem"}, + 0x04000564 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SourceOfPreviousValues"}, + 0x04000565 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReasonForTheAttributeModification"}, + 0x20000010 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfCopies"}, + 0x2000001E : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrinterConfigurationSequence"}, + 0x20000020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PrintPriority"}, + 0x20000030 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MediumType"}, + 0x20000040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FilmDestination"}, + 0x20000050 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FilmSessionLabel"}, + 0x20000060 : { vr : "IS", vm : C.VM_SINGLE, keyword : "MemoryAllocation"}, + 0x20000061 : { vr : "IS", vm : C.VM_SINGLE, keyword : "MaximumMemoryAllocation"}, + 0x20000062 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ColorImagePrintingFlag"}, + 0x20000063 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CollationFlag"}, + 0x20000065 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AnnotationFlag"}, + 0x20000067 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageOverlayFlag"}, + 0x20000069 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PresentationLUTFlag"}, + 0x2000006A : { vr : "CS", vm : C.VM_SINGLE, keyword : "ImageBoxPresentationLUTFlag"}, + 0x200000A0 : { vr : "US", vm : C.VM_SINGLE, keyword : "MemoryBitDepth"}, + 0x200000A1 : { vr : "US", vm : C.VM_SINGLE, keyword : "PrintingBitDepth"}, + 0x200000A2 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MediaInstalledSequence"}, + 0x200000A4 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OtherMediaAvailableSequence"}, + 0x200000A8 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SupportedImageDisplayFormatsSequence"}, + 0x20000500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedFilmBoxSequence"}, + 0x20000510 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedStoredPrintSequence"}, + 0x20100010 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ImageDisplayFormat"}, + 0x20100030 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AnnotationDisplayFormatID"}, + 0x20100040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FilmOrientation"}, + 0x20100050 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FilmSizeID"}, + 0x20100052 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PrinterResolutionID"}, + 0x20100054 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DefaultPrinterResolutionID"}, + 0x20100060 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MagnificationType"}, + 0x20100080 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SmoothingType"}, + 0x201000A6 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DefaultMagnificationType"}, + 0x201000A7 : { vr : "CS", vm : C.VM_1N, keyword : "OtherMagnificationTypesAvailable"}, + 0x201000A8 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DefaultSmoothingType"}, + 0x201000A9 : { vr : "CS", vm : C.VM_1N, keyword : "OtherSmoothingTypesAvailable"}, + 0x20100100 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BorderDensity"}, + 0x20100110 : { vr : "CS", vm : C.VM_SINGLE, keyword : "EmptyImageDensity"}, + 0x20100120 : { vr : "US", vm : C.VM_SINGLE, keyword : "MinDensity"}, + 0x20100130 : { vr : "US", vm : C.VM_SINGLE, keyword : "MaxDensity"}, + 0x20100140 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Trim"}, + 0x20100150 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ConfigurationInformation"}, + 0x20100152 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ConfigurationInformationDescription"}, + 0x20100154 : { vr : "IS", vm : C.VM_SINGLE, keyword : "MaximumCollatedFilms"}, + 0x2010015E : { vr : "US", vm : C.VM_SINGLE, keyword : "Illumination"}, + 0x20100160 : { vr : "US", vm : C.VM_SINGLE, keyword : "ReflectedAmbientLight"}, + 0x20100376 : { vr : "DS", vm : C.VM_TWO, keyword : "PrinterPixelSpacing"}, + 0x20100500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedFilmSessionSequence"}, + 0x20100510 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedImageBoxSequence"}, + 0x20100520 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedBasicAnnotationBoxSequence"}, + 0x20200010 : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageBoxPosition"}, + 0x20200020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "Polarity"}, + 0x20200030 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RequestedImageSize"}, + 0x20200040 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RequestedDecimateCropBehavior"}, + 0x20200050 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RequestedResolutionID"}, + 0x202000A0 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RequestedImageSizeFlag"}, + 0x202000A2 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DecimateCropResult"}, + 0x20200110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BasicGrayscaleImageSequence"}, + 0x20200111 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BasicColorImageSequence"}, + 0x20200130 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedImageOverlayBoxSequence"}, + 0x20200140 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedVOILUTBoxSequence"}, + 0x20300010 : { vr : "US", vm : C.VM_SINGLE, keyword : "AnnotationPosition"}, + 0x20300020 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TextString"}, + 0x20400010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedOverlayPlaneSequence"}, + 0x20400011 : { vr : "US", vm : C.VM_1_99, keyword : "ReferencedOverlayPlaneGroups"}, + 0x20400020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OverlayPixelDataSequence"}, + 0x20400060 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayMagnificationType"}, + 0x20400070 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlaySmoothingType"}, + 0x20400072 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayOrImageMagnification"}, + 0x20400074 : { vr : "US", vm : C.VM_SINGLE, keyword : "MagnifyToNumberOfColumns"}, + 0x20400080 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayForegroundDensity"}, + 0x20400082 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayBackgroundDensity"}, + 0x20400090 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayMode"}, + 0x20400100 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ThresholdDensity"}, + 0x20400500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedImageBoxSequenceRetired"}, + 0x20500010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PresentationLUTSequence"}, + 0x20500020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PresentationLUTShape"}, + 0x20500500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedPresentationLUTSequence"}, + 0x21000010 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PrintJobID"}, + 0x21000020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExecutionStatus"}, + 0x21000030 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ExecutionStatusInfo"}, + 0x21000040 : { vr : "DA", vm : C.VM_SINGLE, keyword : "CreationDate"}, + 0x21000050 : { vr : "TM", vm : C.VM_SINGLE, keyword : "CreationTime"}, + 0x21000070 : { vr : "AE", vm : C.VM_SINGLE, keyword : "Originator"}, + 0x21000140 : { vr : "AE", vm : C.VM_SINGLE, keyword : "DestinationAE"}, + 0x21000160 : { vr : "SH", vm : C.VM_SINGLE, keyword : "OwnerID"}, + 0x21000170 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfFilms"}, + 0x21000500 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedPrintJobSequencePullStoredPrint"}, + 0x21100010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PrinterStatus"}, + 0x21100020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PrinterStatusInfo"}, + 0x21100030 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PrinterName"}, + 0x21100099 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PrintQueueID"}, + 0x21200010 : { vr : "CS", vm : C.VM_SINGLE, keyword : "QueueStatus"}, + 0x21200050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrintJobDescriptionSequence"}, + 0x21200070 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedPrintJobSequence"}, + 0x21300010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrintManagementCapabilitiesSequence"}, + 0x21300015 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrinterCharacteristicsSequence"}, + 0x21300030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FilmBoxContentSequence"}, + 0x21300040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageBoxContentSequence"}, + 0x21300050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AnnotationContentSequence"}, + 0x21300060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ImageOverlayBoxContentSequence"}, + 0x21300080 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PresentationLUTContentSequence"}, + 0x213000A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ProposedStudySequence"}, + 0x213000C0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OriginalImageSequence"}, + 0x22000001 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LabelUsingInformationExtractedFromInstances"}, + 0x22000002 : { vr : "UT", vm : C.VM_SINGLE, keyword : "LabelText"}, + 0x22000003 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LabelStyleSelection"}, + 0x22000004 : { vr : "LT", vm : C.VM_SINGLE, keyword : "MediaDisposition"}, + 0x22000005 : { vr : "LT", vm : C.VM_SINGLE, keyword : "BarcodeValue"}, + 0x22000006 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BarcodeSymbology"}, + 0x22000007 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AllowMediaSplitting"}, + 0x22000008 : { vr : "CS", vm : C.VM_SINGLE, keyword : "IncludeNonDICOMObjects"}, + 0x22000009 : { vr : "CS", vm : C.VM_SINGLE, keyword : "IncludeDisplayApplication"}, + 0x2200000A : { vr : "CS", vm : C.VM_SINGLE, keyword : "PreserveCompositeInstancesAfterMediaCreation"}, + 0x2200000B : { vr : "US", vm : C.VM_SINGLE, keyword : "TotalNumberOfPiecesOfMediaCreated"}, + 0x2200000C : { vr : "LO", vm : C.VM_SINGLE, keyword : "RequestedMediaApplicationProfile"}, + 0x2200000D : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedStorageMediaSequence"}, + 0x2200000E : { vr : "AT", vm : C.VM_1N, keyword : "FailureAttributes"}, + 0x2200000F : { vr : "CS", vm : C.VM_SINGLE, keyword : "AllowLossyCompression"}, + 0x22000020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RequestPriority"}, + 0x30020002 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RTImageLabel"}, + 0x30020003 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RTImageName"}, + 0x30020004 : { vr : "ST", vm : C.VM_SINGLE, keyword : "RTImageDescription"}, + 0x3002000A : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReportedValuesOrigin"}, + 0x3002000C : { vr : "CS", vm : C.VM_SINGLE, keyword : "RTImagePlane"}, + 0x3002000D : { vr : "DS", vm : C.VM_THREE, keyword : "XRayImageReceptorTranslation"}, + 0x3002000E : { vr : "DS", vm : C.VM_SINGLE, keyword : "XRayImageReceptorAngle"}, + 0x30020010 : { vr : "DS", vm : C.VM_SIX, keyword : "RTImageOrientation"}, + 0x30020011 : { vr : "DS", vm : C.VM_TWO, keyword : "ImagePlanePixelSpacing"}, + 0x30020012 : { vr : "DS", vm : C.VM_TWO, keyword : "RTImagePosition"}, + 0x30020020 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RadiationMachineName"}, + 0x30020022 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RadiationMachineSAD"}, + 0x30020024 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RadiationMachineSSD"}, + 0x30020026 : { vr : "DS", vm : C.VM_SINGLE, keyword : "RTImageSID"}, + 0x30020028 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceToReferenceObjectDistance"}, + 0x30020029 : { vr : "IS", vm : C.VM_SINGLE, keyword : "FractionNumber"}, + 0x30020030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ExposureSequence"}, + 0x30020032 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MetersetExposure"}, + 0x30020034 : { vr : "DS", vm : C.VM_FOUR, keyword : "DiaphragmPosition"}, + 0x30020040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FluenceMapSequence"}, + 0x30020041 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FluenceDataSource"}, + 0x30020042 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FluenceDataScale"}, + 0x30020050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PrimaryFluenceModeSequence"}, + 0x30020051 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FluenceMode"}, + 0x30020052 : { vr : "SH", vm : C.VM_SINGLE, keyword : "FluenceModeID"}, + 0x30040001 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DVHType"}, + 0x30040002 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DoseUnits"}, + 0x30040004 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DoseType"}, + 0x30040006 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DoseComment"}, + 0x30040008 : { vr : "DS", vm : C.VM_THREE, keyword : "NormalizationPoint"}, + 0x3004000A : { vr : "CS", vm : C.VM_SINGLE, keyword : "DoseSummationType"}, + 0x3004000C : { vr : "DS", vm : C.VM_2N, keyword : "GridFrameOffsetVector"}, + 0x3004000E : { vr : "DS", vm : C.VM_SINGLE, keyword : "DoseGridScaling"}, + 0x30040010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RTDoseROISequence"}, + 0x30040012 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DoseValue"}, + 0x30040014 : { vr : "CS", vm : C.VM_1_3, keyword : "TissueHeterogeneityCorrection"}, + 0x30040040 : { vr : "DS", vm : C.VM_THREE, keyword : "DVHNormalizationPoint"}, + 0x30040042 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DVHNormalizationDoseValue"}, + 0x30040050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DVHSequence"}, + 0x30040052 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DVHDoseScaling"}, + 0x30040054 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DVHVolumeUnits"}, + 0x30040056 : { vr : "IS", vm : C.VM_SINGLE, keyword : "DVHNumberOfBins"}, + 0x30040058 : { vr : "DS", vm : C.VM_2_2N, keyword : "DVHData"}, + 0x30040060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DVHReferencedROISequence"}, + 0x30040062 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DVHROIContributionType"}, + 0x30040070 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DVHMinimumDose"}, + 0x30040072 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DVHMaximumDose"}, + 0x30040074 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DVHMeanDose"}, + 0x30060002 : { vr : "SH", vm : C.VM_SINGLE, keyword : "StructureSetLabel"}, + 0x30060004 : { vr : "LO", vm : C.VM_SINGLE, keyword : "StructureSetName"}, + 0x30060006 : { vr : "ST", vm : C.VM_SINGLE, keyword : "StructureSetDescription"}, + 0x30060008 : { vr : "DA", vm : C.VM_SINGLE, keyword : "StructureSetDate"}, + 0x30060009 : { vr : "TM", vm : C.VM_SINGLE, keyword : "StructureSetTime"}, + 0x30060010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedFrameOfReferenceSequence"}, + 0x30060012 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RTReferencedStudySequence"}, + 0x30060014 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RTReferencedSeriesSequence"}, + 0x30060016 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContourImageSequence"}, + 0x30060020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "StructureSetROISequence"}, + 0x30060022 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ROINumber"}, + 0x30060024 : { vr : "UI", vm : C.VM_SINGLE, keyword : "ReferencedFrameOfReferenceUID"}, + 0x30060026 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ROIName"}, + 0x30060028 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ROIDescription"}, + 0x3006002A : { vr : "IS", vm : C.VM_THREE, keyword : "ROIDisplayColor"}, + 0x3006002C : { vr : "DS", vm : C.VM_SINGLE, keyword : "ROIVolume"}, + 0x30060030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RTRelatedROISequence"}, + 0x30060033 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RTROIRelationship"}, + 0x30060036 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ROIGenerationAlgorithm"}, + 0x30060038 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ROIGenerationDescription"}, + 0x30060039 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ROIContourSequence"}, + 0x30060040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ContourSequence"}, + 0x30060042 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ContourGeometricType"}, + 0x30060044 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ContourSlabThickness"}, + 0x30060045 : { vr : "DS", vm : C.VM_THREE, keyword : "ContourOffsetVector"}, + 0x30060046 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfContourPoints"}, + 0x30060048 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ContourNumber"}, + 0x30060049 : { vr : "IS", vm : C.VM_1N, keyword : "AttachedContours"}, + 0x30060050 : { vr : "DS", vm : C.VM_3_3N, keyword : "ContourData"}, + 0x30060080 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RTROIObservationsSequence"}, + 0x30060082 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ObservationNumber"}, + 0x30060084 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedROINumber"}, + 0x30060085 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ROIObservationLabel"}, + 0x30060086 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RTROIIdentificationCodeSequence"}, + 0x30060088 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ROIObservationDescription"}, + 0x300600A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RelatedRTROIObservationsSequence"}, + 0x300600A4 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RTROIInterpretedType"}, + 0x300600A6 : { vr : "PN", vm : C.VM_SINGLE, keyword : "ROIInterpreter"}, + 0x300600B0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ROIPhysicalPropertiesSequence"}, + 0x300600B2 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ROIPhysicalProperty"}, + 0x300600B4 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ROIPhysicalPropertyValue"}, + 0x300600B6 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ROIElementalCompositionSequence"}, + 0x300600B7 : { vr : "US", vm : C.VM_SINGLE, keyword : "ROIElementalCompositionAtomicNumber"}, + 0x300600B8 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ROIElementalCompositionAtomicMassFraction"}, + 0x300600C0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FrameOfReferenceRelationshipSequence"}, + 0x300600C2 : { vr : "UI", vm : C.VM_SINGLE, keyword : "RelatedFrameOfReferenceUID"}, + 0x300600C4 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FrameOfReferenceTransformationType"}, + 0x300600C6 : { vr : "DS", vm : C.VM_16, keyword : "FrameOfReferenceTransformationMatrix"}, + 0x300600C8 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FrameOfReferenceTransformationComment"}, + 0x30080010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MeasuredDoseReferenceSequence"}, + 0x30080012 : { vr : "ST", vm : C.VM_SINGLE, keyword : "MeasuredDoseDescription"}, + 0x30080014 : { vr : "CS", vm : C.VM_SINGLE, keyword : "MeasuredDoseType"}, + 0x30080016 : { vr : "DS", vm : C.VM_SINGLE, keyword : "MeasuredDoseValue"}, + 0x30080020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TreatmentSessionBeamSequence"}, + 0x30080021 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TreatmentSessionIonBeamSequence"}, + 0x30080022 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CurrentFractionNumber"}, + 0x30080024 : { vr : "DA", vm : C.VM_SINGLE, keyword : "TreatmentControlPointDate"}, + 0x30080025 : { vr : "TM", vm : C.VM_SINGLE, keyword : "TreatmentControlPointTime"}, + 0x3008002A : { vr : "CS", vm : C.VM_SINGLE, keyword : "TreatmentTerminationStatus"}, + 0x3008002B : { vr : "SH", vm : C.VM_SINGLE, keyword : "TreatmentTerminationCode"}, + 0x3008002C : { vr : "CS", vm : C.VM_SINGLE, keyword : "TreatmentVerificationStatus"}, + 0x30080030 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedTreatmentRecordSequence"}, + 0x30080032 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpecifiedPrimaryMeterset"}, + 0x30080033 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpecifiedSecondaryMeterset"}, + 0x30080036 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveredPrimaryMeterset"}, + 0x30080037 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveredSecondaryMeterset"}, + 0x3008003A : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpecifiedTreatmentTime"}, + 0x3008003B : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveredTreatmentTime"}, + 0x30080040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ControlPointDeliverySequence"}, + 0x30080041 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonControlPointDeliverySequence"}, + 0x30080042 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpecifiedMeterset"}, + 0x30080044 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveredMeterset"}, + 0x30080045 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MetersetRateSet"}, + 0x30080046 : { vr : "FL", vm : C.VM_SINGLE, keyword : "MetersetRateDelivered"}, + 0x30080047 : { vr : "FL", vm : C.VM_1N, keyword : "ScanSpotMetersetsDelivered"}, + 0x30080048 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DoseRateDelivered"}, + 0x30080050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TreatmentSummaryCalculatedDoseReferenceSequence"}, + 0x30080052 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CumulativeDoseToDoseReference"}, + 0x30080054 : { vr : "DA", vm : C.VM_SINGLE, keyword : "FirstTreatmentDate"}, + 0x30080056 : { vr : "DA", vm : C.VM_SINGLE, keyword : "MostRecentTreatmentDate"}, + 0x3008005A : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfFractionsDelivered"}, + 0x30080060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OverrideSequence"}, + 0x30080061 : { vr : "AT", vm : C.VM_SINGLE, keyword : "ParameterSequencePointer"}, + 0x30080062 : { vr : "AT", vm : C.VM_SINGLE, keyword : "OverrideParameterPointer"}, + 0x30080063 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ParameterItemIndex"}, + 0x30080064 : { vr : "IS", vm : C.VM_SINGLE, keyword : "MeasuredDoseReferenceNumber"}, + 0x30080065 : { vr : "AT", vm : C.VM_SINGLE, keyword : "ParameterPointer"}, + 0x30080066 : { vr : "ST", vm : C.VM_SINGLE, keyword : "OverrideReason"}, + 0x30080068 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CorrectedParameterSequence"}, + 0x3008006A : { vr : "FL", vm : C.VM_SINGLE, keyword : "CorrectionValue"}, + 0x30080070 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CalculatedDoseReferenceSequence"}, + 0x30080072 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CalculatedDoseReferenceNumber"}, + 0x30080074 : { vr : "ST", vm : C.VM_SINGLE, keyword : "CalculatedDoseReferenceDescription"}, + 0x30080076 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CalculatedDoseReferenceDoseValue"}, + 0x30080078 : { vr : "DS", vm : C.VM_SINGLE, keyword : "StartMeterset"}, + 0x3008007A : { vr : "DS", vm : C.VM_SINGLE, keyword : "EndMeterset"}, + 0x30080080 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedMeasuredDoseReferenceSequence"}, + 0x30080082 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedMeasuredDoseReferenceNumber"}, + 0x30080090 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedCalculatedDoseReferenceSequence"}, + 0x30080092 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedCalculatedDoseReferenceNumber"}, + 0x300800A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BeamLimitingDeviceLeafPairsSequence"}, + 0x300800B0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedWedgeSequence"}, + 0x300800C0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedCompensatorSequence"}, + 0x300800D0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedBlockSequence"}, + 0x300800E0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TreatmentSummaryMeasuredDoseReferenceSequence"}, + 0x300800F0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedSnoutSequence"}, + 0x300800F2 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedRangeShifterSequence"}, + 0x300800F4 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedLateralSpreadingDeviceSequence"}, + 0x300800F6 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedRangeModulatorSequence"}, + 0x30080100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedSourceSequence"}, + 0x30080105 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SourceSerialNumber"}, + 0x30080110 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TreatmentSessionApplicationSetupSequence"}, + 0x30080116 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ApplicationSetupCheck"}, + 0x30080120 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedBrachyAccessoryDeviceSequence"}, + 0x30080122 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedBrachyAccessoryDeviceNumber"}, + 0x30080130 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedChannelSequence"}, + 0x30080132 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpecifiedChannelTotalTime"}, + 0x30080134 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveredChannelTotalTime"}, + 0x30080136 : { vr : "IS", vm : C.VM_SINGLE, keyword : "SpecifiedNumberOfPulses"}, + 0x30080138 : { vr : "IS", vm : C.VM_SINGLE, keyword : "DeliveredNumberOfPulses"}, + 0x3008013A : { vr : "DS", vm : C.VM_SINGLE, keyword : "SpecifiedPulseRepetitionInterval"}, + 0x3008013C : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveredPulseRepetitionInterval"}, + 0x30080140 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedSourceApplicatorSequence"}, + 0x30080142 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedSourceApplicatorNumber"}, + 0x30080150 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RecordedChannelShieldSequence"}, + 0x30080152 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedChannelShieldNumber"}, + 0x30080160 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BrachyControlPointDeliveredSequence"}, + 0x30080162 : { vr : "DA", vm : C.VM_SINGLE, keyword : "SafePositionExitDate"}, + 0x30080164 : { vr : "TM", vm : C.VM_SINGLE, keyword : "SafePositionExitTime"}, + 0x30080166 : { vr : "DA", vm : C.VM_SINGLE, keyword : "SafePositionReturnDate"}, + 0x30080168 : { vr : "TM", vm : C.VM_SINGLE, keyword : "SafePositionReturnTime"}, + 0x30080200 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CurrentTreatmentStatus"}, + 0x30080202 : { vr : "ST", vm : C.VM_SINGLE, keyword : "TreatmentStatusComment"}, + 0x30080220 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FractionGroupSummarySequence"}, + 0x30080223 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedFractionNumber"}, + 0x30080224 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FractionGroupType"}, + 0x30080230 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BeamStopperPosition"}, + 0x30080240 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FractionStatusSummarySequence"}, + 0x30080250 : { vr : "DA", vm : C.VM_SINGLE, keyword : "TreatmentDate"}, + 0x30080251 : { vr : "TM", vm : C.VM_SINGLE, keyword : "TreatmentTime"}, + 0x300A0002 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RTPlanLabel"}, + 0x300A0003 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RTPlanName"}, + 0x300A0004 : { vr : "ST", vm : C.VM_SINGLE, keyword : "RTPlanDescription"}, + 0x300A0006 : { vr : "DA", vm : C.VM_SINGLE, keyword : "RTPlanDate"}, + 0x300A0007 : { vr : "TM", vm : C.VM_SINGLE, keyword : "RTPlanTime"}, + 0x300A0009 : { vr : "LO", vm : C.VM_1N, keyword : "TreatmentProtocols"}, + 0x300A000A : { vr : "CS", vm : C.VM_SINGLE, keyword : "PlanIntent"}, + 0x300A000B : { vr : "LO", vm : C.VM_1N, keyword : "TreatmentSites"}, + 0x300A000C : { vr : "CS", vm : C.VM_SINGLE, keyword : "RTPlanGeometry"}, + 0x300A000E : { vr : "ST", vm : C.VM_SINGLE, keyword : "PrescriptionDescription"}, + 0x300A0010 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DoseReferenceSequence"}, + 0x300A0012 : { vr : "IS", vm : C.VM_SINGLE, keyword : "DoseReferenceNumber"}, + 0x300A0013 : { vr : "UI", vm : C.VM_SINGLE, keyword : "DoseReferenceUID"}, + 0x300A0014 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DoseReferenceStructureType"}, + 0x300A0015 : { vr : "CS", vm : C.VM_SINGLE, keyword : "NominalBeamEnergyUnit"}, + 0x300A0016 : { vr : "LO", vm : C.VM_SINGLE, keyword : "DoseReferenceDescription"}, + 0x300A0018 : { vr : "DS", vm : C.VM_THREE, keyword : "DoseReferencePointCoordinates"}, + 0x300A001A : { vr : "DS", vm : C.VM_SINGLE, keyword : "NominalPriorDose"}, + 0x300A0020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "DoseReferenceType"}, + 0x300A0021 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ConstraintWeight"}, + 0x300A0022 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveryWarningDose"}, + 0x300A0023 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DeliveryMaximumDose"}, + 0x300A0025 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TargetMinimumDose"}, + 0x300A0026 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TargetPrescriptionDose"}, + 0x300A0027 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TargetMaximumDose"}, + 0x300A0028 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TargetUnderdoseVolumeFraction"}, + 0x300A002A : { vr : "DS", vm : C.VM_SINGLE, keyword : "OrganAtRiskFullVolumeDose"}, + 0x300A002B : { vr : "DS", vm : C.VM_SINGLE, keyword : "OrganAtRiskLimitDose"}, + 0x300A002C : { vr : "DS", vm : C.VM_SINGLE, keyword : "OrganAtRiskMaximumDose"}, + 0x300A002D : { vr : "DS", vm : C.VM_SINGLE, keyword : "OrganAtRiskOverdoseVolumeFraction"}, + 0x300A0040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ToleranceTableSequence"}, + 0x300A0042 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ToleranceTableNumber"}, + 0x300A0043 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ToleranceTableLabel"}, + 0x300A0044 : { vr : "DS", vm : C.VM_SINGLE, keyword : "GantryAngleTolerance"}, + 0x300A0046 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BeamLimitingDeviceAngleTolerance"}, + 0x300A0048 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BeamLimitingDeviceToleranceSequence"}, + 0x300A004A : { vr : "DS", vm : C.VM_SINGLE, keyword : "BeamLimitingDevicePositionTolerance"}, + 0x300A004B : { vr : "FL", vm : C.VM_SINGLE, keyword : "SnoutPositionTolerance"}, + 0x300A004C : { vr : "DS", vm : C.VM_SINGLE, keyword : "PatientSupportAngleTolerance"}, + 0x300A004E : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopEccentricAngleTolerance"}, + 0x300A004F : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableTopPitchAngleTolerance"}, + 0x300A0050 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableTopRollAngleTolerance"}, + 0x300A0051 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopVerticalPositionTolerance"}, + 0x300A0052 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopLongitudinalPositionTolerance"}, + 0x300A0053 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopLateralPositionTolerance"}, + 0x300A0055 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RTPlanRelationship"}, + 0x300A0070 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FractionGroupSequence"}, + 0x300A0071 : { vr : "IS", vm : C.VM_SINGLE, keyword : "FractionGroupNumber"}, + 0x300A0072 : { vr : "LO", vm : C.VM_SINGLE, keyword : "FractionGroupDescription"}, + 0x300A0078 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfFractionsPlanned"}, + 0x300A0079 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfFractionPatternDigitsPerDay"}, + 0x300A007A : { vr : "IS", vm : C.VM_SINGLE, keyword : "RepeatFractionCycleLength"}, + 0x300A007B : { vr : "LT", vm : C.VM_SINGLE, keyword : "FractionPattern"}, + 0x300A0080 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfBeams"}, + 0x300A0082 : { vr : "DS", vm : C.VM_THREE, keyword : "BeamDoseSpecificationPoint"}, + 0x300A0084 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BeamDose"}, + 0x300A0086 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BeamMeterset"}, + 0x300A0088 : { vr : "FL", vm : C.VM_SINGLE, keyword : "BeamDosePointDepth"}, + 0x300A0089 : { vr : "FL", vm : C.VM_SINGLE, keyword : "BeamDosePointEquivalentDepth"}, + 0x300A008A : { vr : "FL", vm : C.VM_SINGLE, keyword : "BeamDosePointSSD"}, + 0x300A00A0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfBrachyApplicationSetups"}, + 0x300A00A2 : { vr : "DS", vm : C.VM_THREE, keyword : "BrachyApplicationSetupDoseSpecificationPoint"}, + 0x300A00A4 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BrachyApplicationSetupDose"}, + 0x300A00B0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BeamSequence"}, + 0x300A00B2 : { vr : "SH", vm : C.VM_SINGLE, keyword : "TreatmentMachineName"}, + 0x300A00B3 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PrimaryDosimeterUnit"}, + 0x300A00B4 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceAxisDistance"}, + 0x300A00B6 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BeamLimitingDeviceSequence"}, + 0x300A00B8 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RTBeamLimitingDeviceType"}, + 0x300A00BA : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceToBeamLimitingDeviceDistance"}, + 0x300A00BB : { vr : "FL", vm : C.VM_SINGLE, keyword : "IsocenterToBeamLimitingDeviceDistance"}, + 0x300A00BC : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfLeafJawPairs"}, + 0x300A00BE : { vr : "DS", vm : C.VM_3N, keyword : "LeafPositionBoundaries"}, + 0x300A00C0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "BeamNumber"}, + 0x300A00C2 : { vr : "LO", vm : C.VM_SINGLE, keyword : "BeamName"}, + 0x300A00C3 : { vr : "ST", vm : C.VM_SINGLE, keyword : "BeamDescription"}, + 0x300A00C4 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BeamType"}, + 0x300A00C6 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RadiationType"}, + 0x300A00C7 : { vr : "CS", vm : C.VM_SINGLE, keyword : "HighDoseTechniqueType"}, + 0x300A00C8 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferenceImageNumber"}, + 0x300A00CA : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PlannedVerificationImageSequence"}, + 0x300A00CC : { vr : "LO", vm : C.VM_1N, keyword : "ImagingDeviceSpecificAcquisitionParameters"}, + 0x300A00CE : { vr : "CS", vm : C.VM_SINGLE, keyword : "TreatmentDeliveryType"}, + 0x300A00D0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfWedges"}, + 0x300A00D1 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "WedgeSequence"}, + 0x300A00D2 : { vr : "IS", vm : C.VM_SINGLE, keyword : "WedgeNumber"}, + 0x300A00D3 : { vr : "CS", vm : C.VM_SINGLE, keyword : "WedgeType"}, + 0x300A00D4 : { vr : "SH", vm : C.VM_SINGLE, keyword : "WedgeID"}, + 0x300A00D5 : { vr : "IS", vm : C.VM_SINGLE, keyword : "WedgeAngle"}, + 0x300A00D6 : { vr : "DS", vm : C.VM_SINGLE, keyword : "WedgeFactor"}, + 0x300A00D7 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TotalWedgeTrayWaterEquivalentThickness"}, + 0x300A00D8 : { vr : "DS", vm : C.VM_SINGLE, keyword : "WedgeOrientation"}, + 0x300A00D9 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IsocenterToWedgeTrayDistance"}, + 0x300A00DA : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceToWedgeTrayDistance"}, + 0x300A00DB : { vr : "FL", vm : C.VM_SINGLE, keyword : "WedgeThinEdgePosition"}, + 0x300A00DC : { vr : "SH", vm : C.VM_SINGLE, keyword : "BolusID"}, + 0x300A00DD : { vr : "ST", vm : C.VM_SINGLE, keyword : "BolusDescription"}, + 0x300A00E0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfCompensators"}, + 0x300A00E1 : { vr : "SH", vm : C.VM_SINGLE, keyword : "MaterialID"}, + 0x300A00E2 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TotalCompensatorTrayFactor"}, + 0x300A00E3 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CompensatorSequence"}, + 0x300A00E4 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CompensatorNumber"}, + 0x300A00E5 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CompensatorID"}, + 0x300A00E6 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceToCompensatorTrayDistance"}, + 0x300A00E7 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CompensatorRows"}, + 0x300A00E8 : { vr : "IS", vm : C.VM_SINGLE, keyword : "CompensatorColumns"}, + 0x300A00E9 : { vr : "DS", vm : C.VM_TWO, keyword : "CompensatorPixelSpacing"}, + 0x300A00EA : { vr : "DS", vm : C.VM_TWO, keyword : "CompensatorPosition"}, + 0x300A00EB : { vr : "DS", vm : C.VM_1N, keyword : "CompensatorTransmissionData"}, + 0x300A00EC : { vr : "DS", vm : C.VM_1N, keyword : "CompensatorThicknessData"}, + 0x300A00ED : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfBoli"}, + 0x300A00EE : { vr : "CS", vm : C.VM_SINGLE, keyword : "CompensatorType"}, + 0x300A00F0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfBlocks"}, + 0x300A00F2 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TotalBlockTrayFactor"}, + 0x300A00F3 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TotalBlockTrayWaterEquivalentThickness"}, + 0x300A00F4 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BlockSequence"}, + 0x300A00F5 : { vr : "SH", vm : C.VM_SINGLE, keyword : "BlockTrayID"}, + 0x300A00F6 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceToBlockTrayDistance"}, + 0x300A00F7 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IsocenterToBlockTrayDistance"}, + 0x300A00F8 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlockType"}, + 0x300A00F9 : { vr : "LO", vm : C.VM_SINGLE, keyword : "AccessoryCode"}, + 0x300A00FA : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlockDivergence"}, + 0x300A00FB : { vr : "CS", vm : C.VM_SINGLE, keyword : "BlockMountingPosition"}, + 0x300A00FC : { vr : "IS", vm : C.VM_SINGLE, keyword : "BlockNumber"}, + 0x300A00FE : { vr : "LO", vm : C.VM_SINGLE, keyword : "BlockName"}, + 0x300A0100 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BlockThickness"}, + 0x300A0102 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BlockTransmission"}, + 0x300A0104 : { vr : "IS", vm : C.VM_SINGLE, keyword : "BlockNumberOfPoints"}, + 0x300A0106 : { vr : "DS", vm : C.VM_2_2N, keyword : "BlockData"}, + 0x300A0107 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ApplicatorSequence"}, + 0x300A0108 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ApplicatorID"}, + 0x300A0109 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ApplicatorType"}, + 0x300A010A : { vr : "LO", vm : C.VM_SINGLE, keyword : "ApplicatorDescription"}, + 0x300A010C : { vr : "DS", vm : C.VM_SINGLE, keyword : "CumulativeDoseReferenceCoefficient"}, + 0x300A010E : { vr : "DS", vm : C.VM_SINGLE, keyword : "FinalCumulativeMetersetWeight"}, + 0x300A0110 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfControlPoints"}, + 0x300A0111 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ControlPointSequence"}, + 0x300A0112 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ControlPointIndex"}, + 0x300A0114 : { vr : "DS", vm : C.VM_SINGLE, keyword : "NominalBeamEnergy"}, + 0x300A0115 : { vr : "DS", vm : C.VM_SINGLE, keyword : "DoseRateSet"}, + 0x300A0116 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "WedgePositionSequence"}, + 0x300A0118 : { vr : "CS", vm : C.VM_SINGLE, keyword : "WedgePosition"}, + 0x300A011A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BeamLimitingDevicePositionSequence"}, + 0x300A011C : { vr : "DS", vm : C.VM_2_2N, keyword : "LeafJawPositions"}, + 0x300A011E : { vr : "DS", vm : C.VM_SINGLE, keyword : "GantryAngle"}, + 0x300A011F : { vr : "CS", vm : C.VM_SINGLE, keyword : "GantryRotationDirection"}, + 0x300A0120 : { vr : "DS", vm : C.VM_SINGLE, keyword : "BeamLimitingDeviceAngle"}, + 0x300A0121 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BeamLimitingDeviceRotationDirection"}, + 0x300A0122 : { vr : "DS", vm : C.VM_SINGLE, keyword : "PatientSupportAngle"}, + 0x300A0123 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientSupportRotationDirection"}, + 0x300A0124 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopEccentricAxisDistance"}, + 0x300A0125 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopEccentricAngle"}, + 0x300A0126 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TableTopEccentricRotationDirection"}, + 0x300A0128 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopVerticalPosition"}, + 0x300A0129 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopLongitudinalPosition"}, + 0x300A012A : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopLateralPosition"}, + 0x300A012C : { vr : "DS", vm : C.VM_THREE, keyword : "IsocenterPosition"}, + 0x300A012E : { vr : "DS", vm : C.VM_THREE, keyword : "SurfaceEntryPoint"}, + 0x300A0130 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceToSurfaceDistance"}, + 0x300A0134 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CumulativeMetersetWeight"}, + 0x300A0140 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableTopPitchAngle"}, + 0x300A0142 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TableTopPitchRotationDirection"}, + 0x300A0144 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TableTopRollAngle"}, + 0x300A0146 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TableTopRollRotationDirection"}, + 0x300A0148 : { vr : "FL", vm : C.VM_SINGLE, keyword : "HeadFixationAngle"}, + 0x300A014A : { vr : "FL", vm : C.VM_SINGLE, keyword : "GantryPitchAngle"}, + 0x300A014C : { vr : "CS", vm : C.VM_SINGLE, keyword : "GantryPitchRotationDirection"}, + 0x300A014E : { vr : "FL", vm : C.VM_SINGLE, keyword : "GantryPitchAngleTolerance"}, + 0x300A0180 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PatientSetupSequence"}, + 0x300A0182 : { vr : "IS", vm : C.VM_SINGLE, keyword : "PatientSetupNumber"}, + 0x300A0183 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientSetupLabel"}, + 0x300A0184 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientAdditionalPosition"}, + 0x300A0190 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "FixationDeviceSequence"}, + 0x300A0192 : { vr : "CS", vm : C.VM_SINGLE, keyword : "FixationDeviceType"}, + 0x300A0194 : { vr : "SH", vm : C.VM_SINGLE, keyword : "FixationDeviceLabel"}, + 0x300A0196 : { vr : "ST", vm : C.VM_SINGLE, keyword : "FixationDeviceDescription"}, + 0x300A0198 : { vr : "SH", vm : C.VM_SINGLE, keyword : "FixationDevicePosition"}, + 0x300A0199 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FixationDevicePitchAngle"}, + 0x300A019A : { vr : "FL", vm : C.VM_SINGLE, keyword : "FixationDeviceRollAngle"}, + 0x300A01A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ShieldingDeviceSequence"}, + 0x300A01A2 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ShieldingDeviceType"}, + 0x300A01A4 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ShieldingDeviceLabel"}, + 0x300A01A6 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ShieldingDeviceDescription"}, + 0x300A01A8 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ShieldingDevicePosition"}, + 0x300A01B0 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SetupTechnique"}, + 0x300A01B2 : { vr : "ST", vm : C.VM_SINGLE, keyword : "SetupTechniqueDescription"}, + 0x300A01B4 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SetupDeviceSequence"}, + 0x300A01B6 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SetupDeviceType"}, + 0x300A01B8 : { vr : "SH", vm : C.VM_SINGLE, keyword : "SetupDeviceLabel"}, + 0x300A01BA : { vr : "ST", vm : C.VM_SINGLE, keyword : "SetupDeviceDescription"}, + 0x300A01BC : { vr : "DS", vm : C.VM_SINGLE, keyword : "SetupDeviceParameter"}, + 0x300A01D0 : { vr : "ST", vm : C.VM_SINGLE, keyword : "SetupReferenceDescription"}, + 0x300A01D2 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopVerticalSetupDisplacement"}, + 0x300A01D4 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopLongitudinalSetupDisplacement"}, + 0x300A01D6 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TableTopLateralSetupDisplacement"}, + 0x300A0200 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BrachyTreatmentTechnique"}, + 0x300A0202 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BrachyTreatmentType"}, + 0x300A0206 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "TreatmentMachineSequence"}, + 0x300A0210 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SourceSequence"}, + 0x300A0212 : { vr : "IS", vm : C.VM_SINGLE, keyword : "SourceNumber"}, + 0x300A0214 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SourceType"}, + 0x300A0216 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SourceManufacturer"}, + 0x300A0218 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ActiveSourceDiameter"}, + 0x300A021A : { vr : "DS", vm : C.VM_SINGLE, keyword : "ActiveSourceLength"}, + 0x300A0222 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceEncapsulationNominalThickness"}, + 0x300A0224 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceEncapsulationNominalTransmission"}, + 0x300A0226 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SourceIsotopeName"}, + 0x300A0228 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceIsotopeHalfLife"}, + 0x300A0229 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SourceStrengthUnits"}, + 0x300A022A : { vr : "DS", vm : C.VM_SINGLE, keyword : "ReferenceAirKermaRate"}, + 0x300A022B : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceStrength"}, + 0x300A022C : { vr : "DA", vm : C.VM_SINGLE, keyword : "SourceStrengthReferenceDate"}, + 0x300A022E : { vr : "TM", vm : C.VM_SINGLE, keyword : "SourceStrengthReferenceTime"}, + 0x300A0230 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ApplicationSetupSequence"}, + 0x300A0232 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ApplicationSetupType"}, + 0x300A0234 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ApplicationSetupNumber"}, + 0x300A0236 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ApplicationSetupName"}, + 0x300A0238 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ApplicationSetupManufacturer"}, + 0x300A0240 : { vr : "IS", vm : C.VM_SINGLE, keyword : "TemplateNumber"}, + 0x300A0242 : { vr : "SH", vm : C.VM_SINGLE, keyword : "TemplateType"}, + 0x300A0244 : { vr : "LO", vm : C.VM_SINGLE, keyword : "TemplateName"}, + 0x300A0250 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TotalReferenceAirKerma"}, + 0x300A0260 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BrachyAccessoryDeviceSequence"}, + 0x300A0262 : { vr : "IS", vm : C.VM_SINGLE, keyword : "BrachyAccessoryDeviceNumber"}, + 0x300A0263 : { vr : "SH", vm : C.VM_SINGLE, keyword : "BrachyAccessoryDeviceID"}, + 0x300A0264 : { vr : "CS", vm : C.VM_SINGLE, keyword : "BrachyAccessoryDeviceType"}, + 0x300A0266 : { vr : "LO", vm : C.VM_SINGLE, keyword : "BrachyAccessoryDeviceName"}, + 0x300A026A : { vr : "DS", vm : C.VM_SINGLE, keyword : "BrachyAccessoryDeviceNominalThickness"}, + 0x300A026C : { vr : "DS", vm : C.VM_SINGLE, keyword : "BrachyAccessoryDeviceNominalTransmission"}, + 0x300A0280 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelSequence"}, + 0x300A0282 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ChannelNumber"}, + 0x300A0284 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelLength"}, + 0x300A0286 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelTotalTime"}, + 0x300A0288 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SourceMovementType"}, + 0x300A028A : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfPulses"}, + 0x300A028C : { vr : "DS", vm : C.VM_SINGLE, keyword : "PulseRepetitionInterval"}, + 0x300A0290 : { vr : "IS", vm : C.VM_SINGLE, keyword : "SourceApplicatorNumber"}, + 0x300A0291 : { vr : "SH", vm : C.VM_SINGLE, keyword : "SourceApplicatorID"}, + 0x300A0292 : { vr : "CS", vm : C.VM_SINGLE, keyword : "SourceApplicatorType"}, + 0x300A0294 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SourceApplicatorName"}, + 0x300A0296 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceApplicatorLength"}, + 0x300A0298 : { vr : "LO", vm : C.VM_SINGLE, keyword : "SourceApplicatorManufacturer"}, + 0x300A029C : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceApplicatorWallNominalThickness"}, + 0x300A029E : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceApplicatorWallNominalTransmission"}, + 0x300A02A0 : { vr : "DS", vm : C.VM_SINGLE, keyword : "SourceApplicatorStepSize"}, + 0x300A02A2 : { vr : "IS", vm : C.VM_SINGLE, keyword : "TransferTubeNumber"}, + 0x300A02A4 : { vr : "DS", vm : C.VM_SINGLE, keyword : "TransferTubeLength"}, + 0x300A02B0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ChannelShieldSequence"}, + 0x300A02B2 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ChannelShieldNumber"}, + 0x300A02B3 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ChannelShieldID"}, + 0x300A02B4 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ChannelShieldName"}, + 0x300A02B8 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelShieldNominalThickness"}, + 0x300A02BA : { vr : "DS", vm : C.VM_SINGLE, keyword : "ChannelShieldNominalTransmission"}, + 0x300A02C8 : { vr : "DS", vm : C.VM_SINGLE, keyword : "FinalCumulativeTimeWeight"}, + 0x300A02D0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BrachyControlPointSequence"}, + 0x300A02D2 : { vr : "DS", vm : C.VM_SINGLE, keyword : "ControlPointRelativePosition"}, + 0x300A02D4 : { vr : "DS", vm : C.VM_THREE, keyword : "ControlPoint3DPosition"}, + 0x300A02D6 : { vr : "DS", vm : C.VM_SINGLE, keyword : "CumulativeTimeWeight"}, + 0x300A02E0 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CompensatorDivergence"}, + 0x300A02E1 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CompensatorMountingPosition"}, + 0x300A02E2 : { vr : "DS", vm : C.VM_1N, keyword : "SourceToCompensatorDistance"}, + 0x300A02E3 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TotalCompensatorTrayWaterEquivalentThickness"}, + 0x300A02E4 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IsocenterToCompensatorTrayDistance"}, + 0x300A02E5 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CompensatorColumnOffset"}, + 0x300A02E6 : { vr : "FL", vm : C.VM_1N, keyword : "IsocenterToCompensatorDistances"}, + 0x300A02E7 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CompensatorRelativeStoppingPowerRatio"}, + 0x300A02E8 : { vr : "FL", vm : C.VM_SINGLE, keyword : "CompensatorMillingToolDiameter"}, + 0x300A02EA : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonRangeCompensatorSequence"}, + 0x300A02EB : { vr : "LT", vm : C.VM_SINGLE, keyword : "CompensatorDescription"}, + 0x300A0302 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RadiationMassNumber"}, + 0x300A0304 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RadiationAtomicNumber"}, + 0x300A0306 : { vr : "SS", vm : C.VM_SINGLE, keyword : "RadiationChargeState"}, + 0x300A0308 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ScanMode"}, + 0x300A030A : { vr : "FL", vm : C.VM_TWO, keyword : "VirtualSourceAxisDistances"}, + 0x300A030C : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SnoutSequence"}, + 0x300A030D : { vr : "FL", vm : C.VM_SINGLE, keyword : "SnoutPosition"}, + 0x300A030F : { vr : "SH", vm : C.VM_SINGLE, keyword : "SnoutID"}, + 0x300A0312 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfRangeShifters"}, + 0x300A0314 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RangeShifterSequence"}, + 0x300A0316 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RangeShifterNumber"}, + 0x300A0318 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RangeShifterID"}, + 0x300A0320 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RangeShifterType"}, + 0x300A0322 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RangeShifterDescription"}, + 0x300A0330 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfLateralSpreadingDevices"}, + 0x300A0332 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceSequence"}, + 0x300A0334 : { vr : "IS", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceNumber"}, + 0x300A0336 : { vr : "SH", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceID"}, + 0x300A0338 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceType"}, + 0x300A033A : { vr : "LO", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceDescription"}, + 0x300A033C : { vr : "FL", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceWaterEquivalentThickness"}, + 0x300A0340 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfRangeModulators"}, + 0x300A0342 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RangeModulatorSequence"}, + 0x300A0344 : { vr : "IS", vm : C.VM_SINGLE, keyword : "RangeModulatorNumber"}, + 0x300A0346 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RangeModulatorID"}, + 0x300A0348 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RangeModulatorType"}, + 0x300A034A : { vr : "LO", vm : C.VM_SINGLE, keyword : "RangeModulatorDescription"}, + 0x300A034C : { vr : "SH", vm : C.VM_SINGLE, keyword : "BeamCurrentModulationID"}, + 0x300A0350 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PatientSupportType"}, + 0x300A0352 : { vr : "SH", vm : C.VM_SINGLE, keyword : "PatientSupportID"}, + 0x300A0354 : { vr : "LO", vm : C.VM_SINGLE, keyword : "PatientSupportAccessoryCode"}, + 0x300A0356 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FixationLightAzimuthalAngle"}, + 0x300A0358 : { vr : "FL", vm : C.VM_SINGLE, keyword : "FixationLightPolarAngle"}, + 0x300A035A : { vr : "FL", vm : C.VM_SINGLE, keyword : "MetersetRate"}, + 0x300A0360 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RangeShifterSettingsSequence"}, + 0x300A0362 : { vr : "LO", vm : C.VM_SINGLE, keyword : "RangeShifterSetting"}, + 0x300A0364 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IsocenterToRangeShifterDistance"}, + 0x300A0366 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RangeShifterWaterEquivalentThickness"}, + 0x300A0370 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceSettingsSequence"}, + 0x300A0372 : { vr : "LO", vm : C.VM_SINGLE, keyword : "LateralSpreadingDeviceSetting"}, + 0x300A0374 : { vr : "FL", vm : C.VM_SINGLE, keyword : "IsocenterToLateralSpreadingDeviceDistance"}, + 0x300A0380 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RangeModulatorSettingsSequence"}, + 0x300A0382 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RangeModulatorGatingStartValue"}, + 0x300A0384 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RangeModulatorGatingStopValue"}, + 0x300A0386 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RangeModulatorGatingStartWaterEquivalentThickness"}, + 0x300A0388 : { vr : "FL", vm : C.VM_SINGLE, keyword : "RangeModulatorGatingStopWaterEquivalentThickness"}, + 0x300A038A : { vr : "FL", vm : C.VM_SINGLE, keyword : "IsocenterToRangeModulatorDistance"}, + 0x300A0390 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ScanSpotTuneID"}, + 0x300A0392 : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfScanSpotPositions"}, + 0x300A0394 : { vr : "FL", vm : C.VM_1N, keyword : "ScanSpotPositionMap"}, + 0x300A0396 : { vr : "FL", vm : C.VM_1N, keyword : "ScanSpotMetersetWeights"}, + 0x300A0398 : { vr : "FL", vm : C.VM_TWO, keyword : "ScanningSpotSize"}, + 0x300A039A : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfPaintings"}, + 0x300A03A0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonToleranceTableSequence"}, + 0x300A03A2 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonBeamSequence"}, + 0x300A03A4 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonBeamLimitingDeviceSequence"}, + 0x300A03A6 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonBlockSequence"}, + 0x300A03A8 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonControlPointSequence"}, + 0x300A03AA : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonWedgeSequence"}, + 0x300A03AC : { vr : "SQ", vm : C.VM_SINGLE, keyword : "IonWedgePositionSequence"}, + 0x300A0401 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedSetupImageSequence"}, + 0x300A0402 : { vr : "ST", vm : C.VM_SINGLE, keyword : "SetupImageComment"}, + 0x300A0410 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MotionSynchronizationSequence"}, + 0x300A0412 : { vr : "FL", vm : C.VM_THREE, keyword : "ControlPointOrientation"}, + 0x300A0420 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "GeneralAccessorySequence"}, + 0x300A0421 : { vr : "SH", vm : C.VM_SINGLE, keyword : "GeneralAccessoryID"}, + 0x300A0422 : { vr : "ST", vm : C.VM_SINGLE, keyword : "GeneralAccessoryDescription"}, + 0x300A0423 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GeneralAccessoryType"}, + 0x300A0424 : { vr : "IS", vm : C.VM_SINGLE, keyword : "GeneralAccessoryNumber"}, + 0x300A0431 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ApplicatorGeometrySequence"}, + 0x300A0432 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ApplicatorApertureShape"}, + 0x300A0433 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ApplicatorOpening"}, + 0x300A0434 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ApplicatorOpeningX"}, + 0x300A0435 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ApplicatorOpeningY"}, + 0x300A0436 : { vr : "FL", vm : C.VM_SINGLE, keyword : "SourceToApplicatorMountingPositionDistance"}, + 0x300C0002 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedRTPlanSequence"}, + 0x300C0004 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedBeamSequence"}, + 0x300C0006 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedBeamNumber"}, + 0x300C0007 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedReferenceImageNumber"}, + 0x300C0008 : { vr : "DS", vm : C.VM_SINGLE, keyword : "StartCumulativeMetersetWeight"}, + 0x300C0009 : { vr : "DS", vm : C.VM_SINGLE, keyword : "EndCumulativeMetersetWeight"}, + 0x300C000A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedBrachyApplicationSetupSequence"}, + 0x300C000C : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedBrachyApplicationSetupNumber"}, + 0x300C000E : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedSourceNumber"}, + 0x300C0020 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedFractionGroupSequence"}, + 0x300C0022 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedFractionGroupNumber"}, + 0x300C0040 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedVerificationImageSequence"}, + 0x300C0042 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedReferenceImageSequence"}, + 0x300C0050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedDoseReferenceSequence"}, + 0x300C0051 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedDoseReferenceNumber"}, + 0x300C0055 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BrachyReferencedDoseReferenceSequence"}, + 0x300C0060 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedStructureSetSequence"}, + 0x300C006A : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedPatientSetupNumber"}, + 0x300C0080 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedDoseSequence"}, + 0x300C00A0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedToleranceTableNumber"}, + 0x300C00B0 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedBolusSequence"}, + 0x300C00C0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedWedgeNumber"}, + 0x300C00D0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedCompensatorNumber"}, + 0x300C00E0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedBlockNumber"}, + 0x300C00F0 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedControlPointIndex"}, + 0x300C00F2 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedControlPointSequence"}, + 0x300C00F4 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedStartControlPointIndex"}, + 0x300C00F6 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedStopControlPointIndex"}, + 0x300C0100 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedRangeShifterNumber"}, + 0x300C0102 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedLateralSpreadingDeviceNumber"}, + 0x300C0104 : { vr : "IS", vm : C.VM_SINGLE, keyword : "ReferencedRangeModulatorNumber"}, + 0x300E0002 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ApprovalStatus"}, + 0x300E0004 : { vr : "DA", vm : C.VM_SINGLE, keyword : "ReviewDate"}, + 0x300E0005 : { vr : "TM", vm : C.VM_SINGLE, keyword : "ReviewTime"}, + 0x300E0008 : { vr : "PN", vm : C.VM_SINGLE, keyword : "ReviewerName"}, + 0x40000010 : { vr : "LT", vm : C.VM_SINGLE, keyword : "Arbitrary"}, + 0x40004000 : { vr : "LT", vm : C.VM_SINGLE, keyword : "TextComments"}, + 0x40080040 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ResultsID"}, + 0x40080042 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ResultsIDIssuer"}, + 0x40080050 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ReferencedInterpretationSequence"}, + 0x400800FF : { vr : "CS", vm : C.VM_SINGLE, keyword : "ReportProductionStatusTrial"}, + 0x40080100 : { vr : "DA", vm : C.VM_SINGLE, keyword : "InterpretationRecordedDate"}, + 0x40080101 : { vr : "TM", vm : C.VM_SINGLE, keyword : "InterpretationRecordedTime"}, + 0x40080102 : { vr : "PN", vm : C.VM_SINGLE, keyword : "InterpretationRecorder"}, + 0x40080103 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ReferenceToRecordedSound"}, + 0x40080108 : { vr : "DA", vm : C.VM_SINGLE, keyword : "InterpretationTranscriptionDate"}, + 0x40080109 : { vr : "TM", vm : C.VM_SINGLE, keyword : "InterpretationTranscriptionTime"}, + 0x4008010A : { vr : "PN", vm : C.VM_SINGLE, keyword : "InterpretationTranscriber"}, + 0x4008010B : { vr : "ST", vm : C.VM_SINGLE, keyword : "InterpretationText"}, + 0x4008010C : { vr : "PN", vm : C.VM_SINGLE, keyword : "InterpretationAuthor"}, + 0x40080111 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InterpretationApproverSequence"}, + 0x40080112 : { vr : "DA", vm : C.VM_SINGLE, keyword : "InterpretationApprovalDate"}, + 0x40080113 : { vr : "TM", vm : C.VM_SINGLE, keyword : "InterpretationApprovalTime"}, + 0x40080114 : { vr : "PN", vm : C.VM_SINGLE, keyword : "PhysicianApprovingInterpretation"}, + 0x40080115 : { vr : "LT", vm : C.VM_SINGLE, keyword : "InterpretationDiagnosisDescription"}, + 0x40080117 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "InterpretationDiagnosisCodeSequence"}, + 0x40080118 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ResultsDistributionListSequence"}, + 0x40080119 : { vr : "PN", vm : C.VM_SINGLE, keyword : "DistributionName"}, + 0x4008011A : { vr : "LO", vm : C.VM_SINGLE, keyword : "DistributionAddress"}, + 0x40080200 : { vr : "SH", vm : C.VM_SINGLE, keyword : "InterpretationID"}, + 0x40080202 : { vr : "LO", vm : C.VM_SINGLE, keyword : "InterpretationIDIssuer"}, + 0x40080210 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InterpretationTypeID"}, + 0x40080212 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InterpretationStatusID"}, + 0x40080300 : { vr : "ST", vm : C.VM_SINGLE, keyword : "Impressions"}, + 0x40084000 : { vr : "ST", vm : C.VM_SINGLE, keyword : "ResultsComments"}, + 0x40100001 : { vr : "CS", vm : C.VM_SINGLE, keyword : "LowEnergyDetectors"}, + 0x40100002 : { vr : "CS", vm : C.VM_SINGLE, keyword : "HighEnergyDetectors"}, + 0x40100004 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DetectorGeometrySequence"}, + 0x40101001 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ThreatROIVoxelSequence"}, + 0x40101004 : { vr : "FL", vm : C.VM_THREE, keyword : "ThreatROIBase"}, + 0x40101005 : { vr : "FL", vm : C.VM_THREE, keyword : "ThreatROIExtents"}, + 0x40101006 : { vr : "OB", vm : C.VM_SINGLE, keyword : "ThreatROIBitmap"}, + 0x40101007 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RouteSegmentID"}, + 0x40101008 : { vr : "CS", vm : C.VM_SINGLE, keyword : "GantryType"}, + 0x40101009 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OOIOwnerType"}, + 0x4010100A : { vr : "SQ", vm : C.VM_SINGLE, keyword : "RouteSegmentSequence"}, + 0x40101010 : { vr : "US", vm : C.VM_SINGLE, keyword : "PotentialThreatObjectID"}, + 0x40101011 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ThreatSequence"}, + 0x40101012 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ThreatCategory"}, + 0x40101013 : { vr : "LT", vm : C.VM_SINGLE, keyword : "ThreatCategoryDescription"}, + 0x40101014 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ATDAbilityAssessment"}, + 0x40101015 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ATDAssessmentFlag"}, + 0x40101016 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ATDAssessmentProbability"}, + 0x40101017 : { vr : "FL", vm : C.VM_SINGLE, keyword : "Mass"}, + 0x40101018 : { vr : "FL", vm : C.VM_SINGLE, keyword : "Density"}, + 0x40101019 : { vr : "FL", vm : C.VM_SINGLE, keyword : "ZEffective"}, + 0x4010101A : { vr : "SH", vm : C.VM_SINGLE, keyword : "BoardingPassID"}, + 0x4010101B : { vr : "FL", vm : C.VM_THREE, keyword : "CenterOfMass"}, + 0x4010101C : { vr : "FL", vm : C.VM_THREE, keyword : "CenterOfPTO"}, + 0x4010101D : { vr : "FL", vm : C.VM_6N, keyword : "BoundingPolygon"}, + 0x4010101E : { vr : "SH", vm : C.VM_SINGLE, keyword : "RouteSegmentStartLocationID"}, + 0x4010101F : { vr : "SH", vm : C.VM_SINGLE, keyword : "RouteSegmentEndLocationID"}, + 0x40101020 : { vr : "CS", vm : C.VM_SINGLE, keyword : "RouteSegmentLocationIDType"}, + 0x40101021 : { vr : "CS", vm : C.VM_1N, keyword : "AbortReason"}, + 0x40101023 : { vr : "FL", vm : C.VM_SINGLE, keyword : "VolumeOfPTO"}, + 0x40101024 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AbortFlag"}, + 0x40101025 : { vr : "DT", vm : C.VM_SINGLE, keyword : "RouteSegmentStartTime"}, + 0x40101026 : { vr : "DT", vm : C.VM_SINGLE, keyword : "RouteSegmentEndTime"}, + 0x40101027 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TDRType"}, + 0x40101028 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InternationalRouteSegment"}, + 0x40101029 : { vr : "LO", vm : C.VM_1N, keyword : "ThreatDetectionAlgorithmandVersion"}, + 0x4010102A : { vr : "SH", vm : C.VM_SINGLE, keyword : "AssignedLocation"}, + 0x4010102B : { vr : "DT", vm : C.VM_SINGLE, keyword : "AlarmDecisionTime"}, + 0x40101031 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AlarmDecision"}, + 0x40101033 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfTotalObjects"}, + 0x40101034 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfAlarmObjects"}, + 0x40101037 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PTORepresentationSequence"}, + 0x40101038 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "ATDAssessmentSequence"}, + 0x40101039 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TIPType"}, + 0x4010103A : { vr : "CS", vm : C.VM_SINGLE, keyword : "DICOSVersion"}, + 0x40101041 : { vr : "DT", vm : C.VM_SINGLE, keyword : "OOIOwnerCreationTime"}, + 0x40101042 : { vr : "CS", vm : C.VM_SINGLE, keyword : "OOIType"}, + 0x40101043 : { vr : "FL", vm : C.VM_THREE, keyword : "OOISize"}, + 0x40101044 : { vr : "CS", vm : C.VM_SINGLE, keyword : "AcquisitionStatus"}, + 0x40101045 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "BasisMaterialsCodeSequence"}, + 0x40101046 : { vr : "CS", vm : C.VM_SINGLE, keyword : "PhantomType"}, + 0x40101047 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "OOIOwnerSequence"}, + 0x40101048 : { vr : "CS", vm : C.VM_SINGLE, keyword : "ScanType"}, + 0x40101051 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ItineraryID"}, + 0x40101052 : { vr : "SH", vm : C.VM_SINGLE, keyword : "ItineraryIDType"}, + 0x40101053 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ItineraryIDAssigningAuthority"}, + 0x40101054 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RouteID"}, + 0x40101055 : { vr : "SH", vm : C.VM_SINGLE, keyword : "RouteIDAssigningAuthority"}, + 0x40101056 : { vr : "CS", vm : C.VM_SINGLE, keyword : "InboundArrivalType"}, + 0x40101058 : { vr : "SH", vm : C.VM_SINGLE, keyword : "CarrierID"}, + 0x40101059 : { vr : "CS", vm : C.VM_SINGLE, keyword : "CarrierIDAssigningAuthority"}, + 0x40101060 : { vr : "FL", vm : C.VM_THREE, keyword : "SourceOrientation"}, + 0x40101061 : { vr : "FL", vm : C.VM_THREE, keyword : "SourcePosition"}, + 0x40101062 : { vr : "FL", vm : C.VM_SINGLE, keyword : "BeltHeight"}, + 0x40101064 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "AlgorithmRoutingCodeSequence"}, + 0x40101067 : { vr : "CS", vm : C.VM_SINGLE, keyword : "TransportClassification"}, + 0x40101068 : { vr : "LT", vm : C.VM_SINGLE, keyword : "OOITypeDescriptor"}, + 0x40101069 : { vr : "FL", vm : C.VM_SINGLE, keyword : "TotalProcessingTime"}, + 0x4010106C : { vr : "OB", vm : C.VM_SINGLE, keyword : "DetectorCalibrationData"}, + 0x4FFE0001 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "MACParametersSequence"}, + 0x52009229 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "SharedFunctionalGroupsSequence"}, + 0x52009230 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "PerFrameFunctionalGroupsSequence"}, + 0x54000100 : { vr : "SQ", vm : C.VM_SINGLE, keyword : "WaveformSequence"}, + 0x54000110 : { vr : "OB", vm : C.VM_SINGLE, keyword : "ChannelMinimumValue"}, + 0x54000112 : { vr : "OB", vm : C.VM_SINGLE, keyword : "ChannelMaximumValue"}, + 0x54001004 : { vr : "US", vm : C.VM_SINGLE, keyword : "WaveformBitsAllocated"}, + 0x54001006 : { vr : "CS", vm : C.VM_SINGLE, keyword : "WaveformSampleInterpretation"}, + 0x5400100A : { vr : "OB", vm : C.VM_SINGLE, keyword : "WaveformPaddingValue"}, + 0x54001010 : { vr : "OB", vm : C.VM_SINGLE, keyword : "WaveformData"}, + 0x56000010 : { vr : "OF", vm : C.VM_SINGLE, keyword : "FirstOrderPhaseCorrectionAngle"}, + 0x56000020 : { vr : "OF", vm : C.VM_SINGLE, keyword : "SpectroscopyData"}, + 0x7FE00010 : { vr : "OW", vm : C.VM_SINGLE, keyword : "PixelData"}, + 0x7FE00020 : { vr : "OW", vm : C.VM_SINGLE, keyword : "CoefficientsSDVN"}, + 0x7FE00030 : { vr : "OW", vm : C.VM_SINGLE, keyword : "CoefficientsSDHN"}, + 0x7FE00040 : { vr : "OW", vm : C.VM_SINGLE, keyword : "CoefficientsSDDN"}, + 0xFFFAFFFA : { vr : "SQ", vm : C.VM_SINGLE, keyword : "DigitalSignaturesSequence"}, + 0xFFFCFFFC : { vr : "OB", vm : C.VM_SINGLE, keyword : "DataSetTrailingPadding"}, + 0xFFFEE000 : { vr : null, vm : C.VM_SINGLE, keyword : "Item"}, + 0xFFFEE00D : { vr : null, vm : C.VM_SINGLE, keyword : "ItemDelimitationItem"}, + 0xFFFEE0DD : { vr : null, vm : C.VM_SINGLE, keyword : "SequenceDelimitationItem"}, + 0x00000000 : { vr : "UL", vm : C.VM_SINGLE, keyword : "CommandGroupLength"}, + 0x00000002 : { vr : "UI", vm : C.VM_SINGLE, keyword : "AffectedSOPClassUID"}, + 0x00000003 : { vr : "UI", vm : C.VM_SINGLE, keyword : "RequestedSOPClassUID"}, + 0x00000100 : { vr : "US", vm : C.VM_SINGLE, keyword : "CommandField"}, + 0x00000110 : { vr : "US", vm : C.VM_SINGLE, keyword : "MessageID"}, + 0x00000120 : { vr : "US", vm : C.VM_SINGLE, keyword : "MessageIDBeingRespondedTo"}, + 0x00000600 : { vr : "AE", vm : C.VM_SINGLE, keyword : "MoveDestination"}, + 0x00000700 : { vr : "US", vm : C.VM_SINGLE, keyword : "Priority"}, + 0x00000800 : { vr : "US", vm : C.VM_SINGLE, keyword : "CommandDataSetType"}, + 0x00000900 : { vr : "US", vm : C.VM_SINGLE, keyword : "Status"}, + 0x00000901 : { vr : "AT", vm : C.VM_1N, keyword : "OffendingElement"}, + 0x00000902 : { vr : "LO", vm : C.VM_SINGLE, keyword : "ErrorComment"}, + 0x00000903 : { vr : "US", vm : C.VM_SINGLE, keyword : "ErrorID"}, + 0x00001000 : { vr : "UI", vm : C.VM_SINGLE, keyword : "AffectedSOPInstanceUID"}, + 0x00001001 : { vr : "UI", vm : C.VM_SINGLE, keyword : "RequestedSOPInstanceUID"}, + 0x00001002 : { vr : "US", vm : C.VM_SINGLE, keyword : "EventTypeID"}, + 0x00001005 : { vr : "AT", vm : C.VM_1N, keyword : "AttributeIdentifierList"}, + 0x00001008 : { vr : "US", vm : C.VM_SINGLE, keyword : "ActionTypeID"}, + 0x00001020 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfRemainingSuboperations"}, + 0x00001021 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfCompletedSuboperations"}, + 0x00001022 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfFailedSuboperations"}, + 0x00001023 : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfWarningSuboperations"}, + 0x00001030 : { vr : "AE", vm : C.VM_SINGLE, keyword : "MoveOriginatorApplicationEntityTitle"}, + 0x00001031 : { vr : "US", vm : C.VM_SINGLE, keyword : "MoveOriginatorMessageID"}, +} + +var dicomVDict = { + "002031xx" : { vr : "CS", vm : C.VM_1N, keyword : "SourceImageIDs"}, + "002804x0" : { vr : "US", vm : C.VM_SINGLE, keyword : "RowsForNthOrderCoefficients"}, + "002804x1" : { vr : "US", vm : C.VM_SINGLE, keyword : "ColumnsForNthOrderCoefficients"}, + "002804x2" : { vr : "LO", vm : C.VM_1N, keyword : "CoefficientCoding"}, + "002804x3" : { vr : "AT", vm : C.VM_1N, keyword : "CoefficientCodingPointers"}, + "002808x0" : { vr : "CS", vm : C.VM_1N, keyword : "CodeLabel"}, + "002808x2" : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfTables"}, + "002808x3" : { vr : "AT", vm : C.VM_1N, keyword : "CodeTableLocation"}, + "002808x4" : { vr : "US", vm : C.VM_SINGLE, keyword : "BitsForCodeWord"}, + "002808x8" : { vr : "AT", vm : C.VM_1N, keyword : "ImageDataLocation"}, + "1000xxx0" : { vr : "US", vm : C.VM_THREE, keyword : "EscapeTriplet"}, + "1000xxx1" : { vr : "US", vm : C.VM_THREE, keyword : "RunLengthTriplet"}, + "1000xxx2" : { vr : "US", vm : C.VM_SINGLE, keyword : "HuffmanTableSize"}, + "1000xxx3" : { vr : "US", vm : C.VM_THREE, keyword : "HuffmanTableTriplet"}, + "1000xxx4" : { vr : "US", vm : C.VM_SINGLE, keyword : "ShiftTableSize"}, + "1000xxx5" : { vr : "US", vm : C.VM_THREE, keyword : "ShiftTableTriplet"}, + "1010xxxx" : { vr : "US", vm : C.VM_1N, keyword : "ZonalMap"}, + "50xx0005" : { vr : "US", vm : C.VM_SINGLE, keyword : "CurveDimensions"}, + "50xx0010" : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfPoints"}, + "50xx0020" : { vr : "CS", vm : C.VM_SINGLE, keyword : "TypeOfData"}, + "50xx0022" : { vr : "LO", vm : C.VM_SINGLE, keyword : "CurveDescription"}, + "50xx0030" : { vr : "SH", vm : C.VM_1N, keyword : "AxisUnits"}, + "50xx0040" : { vr : "SH", vm : C.VM_1N, keyword : "AxisLabels"}, + "50xx0103" : { vr : "US", vm : C.VM_SINGLE, keyword : "DataValueRepresentation"}, + "50xx0104" : { vr : "US", vm : C.VM_1N, keyword : "MinimumCoordinateValue"}, + "50xx0105" : { vr : "US", vm : C.VM_1N, keyword : "MaximumCoordinateValue"}, + "50xx0106" : { vr : "SH", vm : C.VM_1N, keyword : "CurveRange"}, + "50xx0110" : { vr : "US", vm : C.VM_1N, keyword : "CurveDataDescriptor"}, + "50xx0112" : { vr : "US", vm : C.VM_1N, keyword : "CoordinateStartValue"}, + "50xx0114" : { vr : "US", vm : C.VM_1N, keyword : "CoordinateStepValue"}, + "50xx1001" : { vr : "CS", vm : C.VM_SINGLE, keyword : "CurveActivationLayer"}, + "50xx2000" : { vr : "US", vm : C.VM_SINGLE, keyword : "AudioType"}, + "50xx2002" : { vr : "US", vm : C.VM_SINGLE, keyword : "AudioSampleFormat"}, + "50xx2004" : { vr : "US", vm : C.VM_SINGLE, keyword : "NumberOfChannels"}, + "50xx2006" : { vr : "UL", vm : C.VM_SINGLE, keyword : "NumberOfSamples"}, + "50xx2008" : { vr : "UL", vm : C.VM_SINGLE, keyword : "SampleRate"}, + "50xx200A" : { vr : "UL", vm : C.VM_SINGLE, keyword : "TotalTime"}, + "50xx200C" : { vr : "OW", vm : C.VM_SINGLE, keyword : "AudioSampleData"}, + "50xx200E" : { vr : "LT", vm : C.VM_SINGLE, keyword : "AudioComments"}, + "50xx2500" : { vr : "LO", vm : C.VM_SINGLE, keyword : "CurveLabel"}, + "50xx2600" : { vr : "SQ", vm : C.VM_SINGLE, keyword : "CurveReferencedOverlaySequence"}, + "50xx2610" : { vr : "US", vm : C.VM_SINGLE, keyword : "CurveReferencedOverlayGroup"}, + "50xx3000" : { vr : "OW", vm : C.VM_SINGLE, keyword : "CurveData"}, + "60xx0010" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayRows"}, + "60xx0011" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayColumns"}, + "60xx0012" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayPlanes"}, + "60xx0015" : { vr : "IS", vm : C.VM_SINGLE, keyword : "NumberOfFramesInOverlay"}, + "60xx0022" : { vr : "LO", vm : C.VM_SINGLE, keyword : "OverlayDescription"}, + "60xx0040" : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayType"}, + "60xx0045" : { vr : "LO", vm : C.VM_SINGLE, keyword : "OverlaySubtype"}, + "60xx0050" : { vr : "SS", vm : C.VM_TWO, keyword : "OverlayOrigin"}, + "60xx0051" : { vr : "US", vm : C.VM_SINGLE, keyword : "ImageFrameOrigin"}, + "60xx0052" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayPlaneOrigin"}, + "60xx0060" : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayCompressionCode"}, + "60xx0061" : { vr : "SH", vm : C.VM_SINGLE, keyword : "OverlayCompressionOriginator"}, + "60xx0062" : { vr : "SH", vm : C.VM_SINGLE, keyword : "OverlayCompressionLabel"}, + "60xx0063" : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayCompressionDescription"}, + "60xx0066" : { vr : "AT", vm : C.VM_1N, keyword : "OverlayCompressionStepPointers"}, + "60xx0068" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayRepeatInterval"}, + "60xx0069" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayBitsGrouped"}, + "60xx0100" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayBitsAllocated"}, + "60xx0102" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayBitPosition"}, + "60xx0110" : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayFormat"}, + "60xx0200" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayLocation"}, + "60xx0800" : { vr : "CS", vm : C.VM_1N, keyword : "OverlayCodeLabel"}, + "60xx0802" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayNumberOfTables"}, + "60xx0803" : { vr : "AT", vm : C.VM_1N, keyword : "OverlayCodeTableLocation"}, + "60xx0804" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayBitsForCodeWord"}, + "60xx1001" : { vr : "CS", vm : C.VM_SINGLE, keyword : "OverlayActivationLayer"}, + "60xx1100" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayDescriptorGray"}, + "60xx1101" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayDescriptorRed"}, + "60xx1102" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayDescriptorGreen"}, + "60xx1103" : { vr : "US", vm : C.VM_SINGLE, keyword : "OverlayDescriptorBlue"}, + "60xx1200" : { vr : "US", vm : C.VM_1N, keyword : "OverlaysGray"}, + "60xx1201" : { vr : "US", vm : C.VM_1N, keyword : "OverlaysRed"}, + "60xx1202" : { vr : "US", vm : C.VM_1N, keyword : "OverlaysGreen"}, + "60xx1203" : { vr : "US", vm : C.VM_1N, keyword : "OverlaysBlue"}, + "60xx1301" : { vr : "IS", vm : C.VM_SINGLE, keyword : "ROIArea"}, + "60xx1302" : { vr : "DS", vm : C.VM_SINGLE, keyword : "ROIMean"}, + "60xx1303" : { vr : "DS", vm : C.VM_SINGLE, keyword : "ROIStandardDeviation"}, + "60xx1500" : { vr : "LO", vm : C.VM_SINGLE, keyword : "OverlayLabel"}, + "60xx3000" : { vr : "OB", vm : C.VM_SINGLE, keyword : "OverlayData"}, + "60xx4000" : { vr : "LT", vm : C.VM_SINGLE, keyword : "OverlayComments"}, + "7Fxx0010" : { vr : "OW", vm : C.VM_SINGLE, keyword : "VariablePixelData"}, + "7Fxx0011" : { vr : "US", vm : C.VM_SINGLE, keyword : "VariableNextDataGroup"}, + "7Fxx0020" : { vr : "OW", vm : C.VM_SINGLE, keyword : "VariableCoefficientsSDVN"}, + "7Fxx0030" : { vr : "OW", vm : C.VM_SINGLE, keyword : "VariableCoefficientsSDHN"}, + "7Fxx0040" : { vr : "OW", vm : C.VM_SINGLE, keyword : "VariableCoefficientsSDDN"}, +} + +DicomElements = {dicomNDict : dicomNDict, dicomVDict : dicomVDict} diff --git a/Packages/dimse-service/server/methods.js b/Packages/dimse-service/server/methods.js new file mode 100755 index 000000000..442923f84 --- /dev/null +++ b/Packages/dimse-service/server/methods.js @@ -0,0 +1,3 @@ +Meteor.methods({ + +}); \ No newline at end of file diff --git a/Packages/dimse-service/server/require.js b/Packages/dimse-service/server/require.js new file mode 100755 index 000000000..8fc4d83aa --- /dev/null +++ b/Packages/dimse-service/server/require.js @@ -0,0 +1 @@ +util = Npm.require("util"); \ No newline at end of file