This commit is contained in:
2025-02-26 14:49:25 +07:00
commit 1c1d9c4474
6403 changed files with 1953774 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
/**
* DicomElement.js
* Version 0.5
* Author: BabuHussain<babuhussain.a@raster.in>
*/
function DicomElement(name,vr,vl,group,element,value,offset) {
this.vr_type=vr;
// Element Value
this.value=value;
// Element code
this.code;
this.length=vl;
this.header;
this.group=group;
this.element=element;
this.offset=offset;
this.name=name;
this.transfer_syntax;
}

View File

@@ -0,0 +1,25 @@
function DicomInputStreamReader()
{
this.inputBuffer;
this.inputStreamReader;
this.readDicom=readDicom;
this.getInputBuffer=getInputBuffer;
this.getReader=getReader;
}
function readDicom(url)
{
this.inputStreamReader=new BinFileReader(url);
this.inputBuffer = new Array(this.inputStreamReader.getFileSize);
this.inputBuffer=this.inputStreamReader.readBytes();
}
function getInputBuffer()
{
return this.inputBuffer;
}
function getReader()
{
return this.inputStreamReader;
}

View File

@@ -0,0 +1,128 @@
/**
* DicomParser.js
* Version 0.5
* Author: BabuHussain<babuhussain.a@raster.in>
*/
function DicomParser(inputBuffer,reader)
{
this.inputBuffer=inputBuffer;
this.reader=reader;
this.parseAll=parseAll;
this.index = 0;
this.pixelBuffer;
this.bitsStored;
this.pixelRepresentation;
this.minPix;
this.maxPix;
this.imgData = null;
}
function getPixelBuffer()
{
return this.pixelBuffer;
}
function parseAll()
{
// var imgPixelSpacing = this.readTag(24,0,17,100,"ImagerPixelSpacing");
var monochrome1 = this.readTag(40,0,4,0,"PhotometricInterpretation");
var rows = this.readTagAsNumber(40,0,16,0,"Rows");
var columns = this.readTagAsNumber(40,0,17,0,"Columns");
var pxlSpacing = this.readTag(40,0,48,0,"PixelSpacing");
this.bitsStored = this.readTagAsNumber(40,0,1,1,"BitsStored");
this.pixelRepresentation = this.readTagAsNumber(40,0,3,1,"PixelRepresentation");
var wc = this.readTag(40,0,80,16,"windowCenter");
var ww = this.readTag(40,0,81,16,"windowWidth");
var rescale_Intercept = this.readTag(40,0,82,16,"rescaleIntercept");
var rescale_slope = this.readTag(40,0,83,16,"rescaleSlope");
// this.imgData={"monochrome1":monochrome1=="MONOCHROME1","BitsStored":this.bitsStored,"PixelRepresentation":this.pixelRepresentation,"windowCenter":wc!=undefined? wc[0] : wc,"windowWidth":ww!=undefined ? ww[0] : ww,"rescaleIntercept":rescale_Intercept!=undefined?rescale_Intercept:0.0 ,"rescaleSlope":rescale_slope!=undefined ?rescale_slope:1.0,"nativeRows":rows,"nativeColumns":columns,"pixelSpacing":pxlSpacing,"imagerPixelSpacing":imgPixelSpacing};
this.imgData={"monochrome1":monochrome1=="MONOCHROME1","BitsStored":this.bitsStored,"PixelRepresentation":this.pixelRepresentation,"windowCenter":wc!=undefined? wc[0] : wc,"windowWidth":ww!=undefined ? ww[0] : ww,"rescaleIntercept":rescale_Intercept!=undefined?rescale_Intercept:0.0 ,"rescaleSlope":rescale_slope!=undefined ?rescale_slope:1.0,"nativeRows":rows,"nativeColumns":columns,"pixelSpacing":pxlSpacing};
this.moveToPixelDataTag();
this.readImage();
}
DicomParser.prototype.readTag=function(firstContent,secondContent,thirdContent,fourthContent,tagName)
{
var i=this.index;
for(; i<this.inputBuffer.length; i++)
{
if(this.reader.readNumber(1,i)==firstContent && this.reader.readNumber(1,i+1)==secondContent&&this.reader.readNumber(1,i+2)==thirdContent&&this.reader.readNumber(1,i+3)==fourthContent)
{
i=i+4;
var vr= this.reader.readString(2,i);
var vl=this.reader.readNumber(2,i+2);
var val=this.reader.readString(vl,i+4);
var tagValue=val.split("\\");
i=i+4+vl;
this.index = i;
return tagValue;
}
}
}
DicomParser.prototype.readTagAsNumber=function(firstContent,secondContent,thirdContent,fourthContent,tagName)
{
var i=this.index;
for(; i<this.inputBuffer.length; i++)
{
if(this.reader.readNumber(1,i)==firstContent && this.reader.readNumber(1,i+1)==secondContent&&this.reader.readNumber(1,i+2)==thirdContent&&this.reader.readNumber(1,i+3)==fourthContent)
{
i=i+4;
var vr= this.reader.readString(2,i);
var vl=this.reader.readNumber(2,i+2);
var val=this.reader.readNumber(vl,i+4);
i=i+4+vl;
this.index = i;
return val;
}
}
}
DicomParser.prototype.moveToPixelDataTag=function()
{
var i=this.index;
for(; i<this.inputBuffer.length; i++)
{
if(this.reader.readNumber(1,i)==224 &&this.reader.readNumber(1,i+1)==127&&this.reader.readNumber(1,i+2)==16&&this.reader.readNumber(1,i+3)==0)
{
i+=4;
var vr= this.reader.readString(2,i);
i+=4;
if(vr=="OB") {
i+=2;
} else if(vr=="OW") {
i+=4;
} else if(vr=="OF") {
i+=8;
} else {
i+=4;
}
this.index = i;
}
}
}
DicomParser.prototype.readImage=function()
{
this.minPix = 65535;
this.maxPix = -32768;
if(this.pixelRepresentation === 0 && this.bitsStored ===8) {
this.pixelBuffer = new Uint8Array(this.reader.getBytes(this.index).buffer);
} else if(this.pixelRepresentation === 0 && this.bitsStored>8) {
this.pixelBuffer = new Uint16Array(this.reader.getBytes(this.index).buffer);
} else if(this.pixelRepresentation === 1 && this.bitsStored>8) {
this.pixelBuffer = new Int16Array(this.reader.getBytes(this.index).buffer);
} else {
this.pixelBuffer = new Array();
}
for(var j=0;j<this.pixelBuffer.length;j++) {
var pix = this.pixelBuffer[j];
this.minPix = Math.min(this.minPix,pix);
this.maxPix = Math.max(this.maxPix,pix);
}
}

View File

@@ -0,0 +1,52 @@
/**
* LookupTable.js
* Version 0.5
* Author: BabuHussain<babuhussain.a@raster.in>
*/
function LookupTable() {
this.ylookup;
this.rescaleSlope;
this.rescaleIntercept;
this.windowCenter;
this.windowWidth;
this.lutSize;
this.minPixel;
this.maxPixel;
this.getPixelAt = getPixelAt;
this.calculateLookup = calculateLookup;
this.setWindowingdata = setWindowingdata;
this.setPixelInfo = setPixelInfo;
}
LookupTable.prototype.setData = function(wc, ww, rs, ri,bitsStored, invert) {
this.rescaleSlope = rs;
this.rescaleIntercept = ri;
this.windowCenter = wc;
this.windowWidth = ww;
this.lutSize = Math.pow(2, parseInt(bitsStored));
this.invert = invert;
}
var setPixelInfo = function(minPix,maxPix,invert) {
this.minPixel = minPix;
this.maxPixel = maxPix;
this.invert = invert;
};
var setWindowingdata = function(wc, ww) {
this.windowCenter = wc;
this.windowWidth = ww;
}
function calculateLookup() {
this.ylookup=new Array(this.lutSize);
for(var inputValue=this.minPixel;inputValue<=this.maxPixel;inputValue++) {
var lutVal = ((((inputValue * this.rescaleSlope + this.rescaleIntercept) - (this.windowCenter)) / (this.windowWidth) + 0.5) * 255.0);
var newVal = Math.min(Math.max(lutVal, 0), 255);
this.ylookup[inputValue] = this.invert===true ? Math.round(255 - newVal) : Math.round(newVal);
}
}
function getPixelAt(i) {
return i!=undefined ? (i * this.rescaleSlope + this.rescaleIntercept) : 0;
}

View File

@@ -0,0 +1,495 @@
/**
* @namespace DICOM related.
*/
ovm.dicom = ovm.dicom || {};
/**
* @class Big Endian reader
* @param file
*/
ovm.dicom.BigEndianReader = function(file)
{
this.readByteAt = function(i) {
return file.charCodeAt(i) & 0xff;
};
this.readNumber = function(nBytes, startByte) {
var result = 0;
for(var i=startByte; i<startByte + nBytes; ++i){
result = result * 256 + this.readByteAt(i);
}
return result;
};
this.readCouple = function(a,b) {
return (b + a*256).toString(16);
};
this.readUint16Array = function(nBytes, startByte) {
return new Uint16Array(file.buffer, startByte, nBytes/2);
};
this.readUint16Array = function(nBytes, startByte) {
var data = [];
for(var i=startByte; i<startByte+nBytes; i+=2)
{
data.push(this.readNumber(1,i+1) + this.readNumber(1,i)*256);
}
return data;
};
this.readString = function(nChars, startChar) {
var result = "";
for(var i=startChar; i<startChar + nChars; i++){
result += String.fromCharCode(this.readNumber(1,i));
}
return result;
};
};
/**
* @class Litte Endian reader
* @param file
*/
ovm.dicom.LittleEndianReader = function(file)
{
this.readByteAt = function(i) {
return file.charCodeAt(i) & 0xff;
};
this.readNumber = function(nBytes, startByte) {
var result = 0;
for(var i=startByte + nBytes; i>startByte; i--){
result = result * 256 + this.readByteAt(i-1);
}
return result;
};
this.readCouple = function(a,b) {
return (a + b*256).toString(16);
};
this.readUint16Array = function(nBytes, startByte) {
var data = [];
for(var i=startByte; i<startByte+nBytes; i+=2)
{
data.push(this.readNumber(2,i));
}
return data;
};
this.readString = function(nChars, startChar) {
var result = "";
for(var i=startChar; i<startChar + nChars; i++){
result += String.fromCharCode(this.readNumber(1,i));
}
return result;
};
// beta...
this.readRaw = function(nBytes, startByte) {
var data = [];
for(var i=startByte; i<startByte+nBytes; ++i)
{
data.push(file[i]);
}
return data;
};
};
/**
* @class DicomParser class.
*/
ovm.dicom.DicomParser = function(file)
{
// the list of DICOM elements
this.dicomElements = {};
// the number of DICOM Items
this.numberOfItems = 0;
// the DICOM dictionary used to find tag names
this.dict = new ovm.dicom.Dictionary();
// the file
this.file = file;
// the pixel buffer
this.pixelBuffer = [];
};
/**
* Get the DICOM data pixel buffer.
* @returns The pixel buffer (as an array).
*/
ovm.dicom.DicomParser.prototype.getPixelBuffer=function()
{
return this.pixelBuffer;
};
/**
* Append a DICOM element to the dicomElements member object.
* Allows for easy retrieval of DICOM tag values from the tag name.
* If tags have same name (for the 'unknown' and private tags cases), a number is appended
* making the name unique.
* @param element The element to add.
*/
ovm.dicom.DicomParser.prototype.appendDicomElement=function( element )
{
// find a good tag name
var name = element.name;
// count the number of items
if( name === "Item" ) {
++this.numberOfItems;
}
var count = 1;
while( this.dicomElements[name] ) {
name = element.name + (count++).toString();
}
// store it
this.dicomElements[name] = {
"group": element.group,
"element": element.element,
"vr": element.vr,
"vl": element.vl,
"value": element.value };
};
/**
* Read a DICOM tag.
* @param reader The raw data reader.
* @param offset The offset where to start to read.
* @returns An object containing the tags 'group', 'element' and 'name'.
*/
ovm.dicom.DicomParser.prototype.readTag=function(reader, offset)
{
// group
var g0 = reader.readNumber( 1, offset );
var g1 = reader.readNumber( 1, offset+1 );
var group_str = reader.readCouple(g0, g1);
var group = "0x0000".substr(0, 6 - group_str.length) + group_str.toUpperCase();
// element
var e2 = reader.readNumber( 1, offset+2 );
var e3 = reader.readNumber( 1, offset+3 );
var element_str = reader.readCouple(e2, e3);
var element = "0x0000".substr(0, 6 - element_str.length) + element_str.toUpperCase();
// name
var name = "ovm::unknown";
if( this.dict.newDictionary[group] ) {
if( this.dict.newDictionary[group][element] ) {
name = this.dict.newDictionary[group][element][2];
}
}
// return as hex
return {'group': group, 'element': element, 'name': name};
};
/**
* Read a DICOM data element.
* @param reader The raw data reader.
* @param offset The offset where to start to read.
* @param implicit Is the DICOM VR implicit?
* @returns An object containing the element 'tag', 'vl', 'vr', 'data' and 'offset'.
*/
ovm.dicom.DicomParser.prototype.readDataElement=function(reader, offset, implicit)
{
// tag: group, element
var tag = this.readTag(reader, offset);
var tagOffset = 4;
var vr; // Value Representation (VR)
var vl; // Value Length (VL)
var vrOffset = 0; // byte size of VR
var vlOffset = 0; // byte size of VL
// (private) Item group case
if( tag.group === "0xFFFE" ) {
vr = "N/A";
vrOffset = 0;
vl = reader.readNumber( 4, offset+tagOffset );
vlOffset = 4;
}
// non Item case
else {
// implicit VR?
if(implicit) {
vr = "UN";
if( this.dict.newDictionary[tag.group] ) {
if( this.dict.newDictionary[tag.group][tag.element] ) {
vr = this.dict.newDictionary[tag.group][tag.element][0];
}
}
vrOffset = 0;
vl = reader.readNumber( 4, offset+tagOffset+vrOffset );
vlOffset = 4;
}
else {
vr = reader.readString( 2, offset+tagOffset );
vrOffset = 2;
// long representations
if(vr === "OB" || vr === "OF" || vr === "SQ" || vr === "OW" || vr === "UN") {
vl = reader.readNumber( 4, offset+tagOffset+vrOffset+2 );
vlOffset = 6;
}
// short representation
else {
vl = reader.readNumber( 2, offset+tagOffset+vrOffset );
vlOffset = 2;
}
}
}
// check the value of VL
if( vl === 0xffffffff ) {
vl = 0;
}
// data
var data;
if( vr === "US" || vr === "UL")
{
data = [reader.readNumber( vl, offset+tagOffset+vrOffset+vlOffset)];
}
else if( vr === "OX" || vr === "OW" )
{
data = reader.readUint16Array(vl, offset+tagOffset+vrOffset+vlOffset);
}
else if( vr === "OB" || vr === "N/A")
{
var begin = offset+tagOffset+vrOffset+vlOffset;
var end = begin + vl;
data = [];
for(var i=begin; i<end; ++i)
{
data.push(reader.readNumber(1,i));
}
//data = reader.readRaw(vl, begin);
}
else
{
data = reader.readString( vl, offset+tagOffset+vrOffset+vlOffset);
data = data.split("\\");
}
// total element offset
var elementOffset = tagOffset + vrOffset + vlOffset + vl;
// return
return {
'tag': tag, 'vr': vr, 'vl': vl,
'data': data,
'offset': elementOffset};
};
/**
* Parse the complete DICOM file (given as input to the class).
* Fills in the member object 'dicomElements'.
*/
ovm.dicom.DicomParser.prototype.parseAll = function()
{
var offset = 0;
var i;
var implicit = false;
var jpeg = false;
var jpeg2000 = false;
// dictionary
this.dict.init();
// default readers
var metaReader = new ovm.dicom.LittleEndianReader(this.file);
var dataReader = new ovm.dicom.LittleEndianReader(this.file);
// 128 -> 132: magic word
offset = 128;
var magicword = metaReader.readString(4, offset);
if(magicword !== "DICM")
{
throw new Error("No magic DICM word found");
}
offset += 4;
// 0x0002, 0x0000: MetaElementGroupLength
var dataElement = this.readDataElement(metaReader, offset);
var metaLength = parseInt(dataElement.data, 10);
offset += dataElement.offset;
// meta elements
var metaStart = offset;
var metaEnd = offset + metaLength;
for( i=metaStart; i<metaEnd; i++ )
{
// get the data element
dataElement = this.readDataElement(metaReader, i, false);
// check the transfer syntax
if( dataElement.tag.name === "TransferSyntaxUID" ) {
var syntax = dataElement.data[0];
// get rid of ending zero-width space (u200B)
if( syntax[syntax.length-1] === String.fromCharCode("u200B") ) {
syntax = syntax.substring(0, syntax.length-1);
}
// Implicit VR - Little Endian
if( syntax === "1.2.840.10008.1.2" ) {
implicit = true;
}
// Explicit VR - Little Endian (default): 1.2.840.10008.1.2.1
// Deflated Explicit VR - Little Endian
else if( syntax === "1.2.840.10008.1.2.1.99" ) {
throw new Error("Unsupported DICOM transfer syntax (Deflated Explicit VR): "+syntax);
}
// Explicit VR - Big Endian
else if( syntax === "1.2.840.10008.1.2.2" ) {
dataReader = new ovm.dicom.BigEndianReader(this.file);
}
// JPEG
else if( syntax.match(/1.2.840.10008.1.2.4.5/)
|| syntax.match(/1.2.840.10008.1.2.4.6/)
|| syntax.match(/1.2.840.10008.1.2.4.7/)
|| syntax.match(/1.2.840.10008.1.2.4.8/) ) {
jpeg = true;
throw new Error("Unsupported DICOM transfer syntax (JPEG): "+syntax);
}
// JPEG 2000
else if( syntax.match(/1.2.840.10008.1.2.4.9/) ) {
jpeg2000 = true;
throw new Error("Unsupported DICOM transfer syntax (JPEG 2000): "+syntax);
}
// MPEG2 Image Compression
else if( syntax === "1.2.840.10008.1.2.4.100" ) {
throw new Error("Unsupported DICOM transfer syntax (MPEG2): "+syntax);
}
// RLE (lossless)
else if( syntax === "1.2.840.10008.1.2.4.5" ) {
throw new Error("Unsupported DICOM transfer syntax (RLE): "+syntax);
}
}
// store the data element
this.appendDicomElement( {
'name': dataElement.tag.name,
'group': dataElement.tag.group,
'element': dataElement.tag.element,
'value': dataElement.data } );
// increment index
i += dataElement.offset-1;
}
var startedPixelItems = false;
// DICOM data elements
for( i=metaEnd; i<this.file.length; i++)
{
// get the data element
dataElement = this.readDataElement(dataReader, i, implicit);
// store pixel data from multiple items
if( startedPixelItems ) {
if( dataElement.tag.name === "Item" ) {
if( dataElement.data.length !== 0 ) {
this.pixelBuffer = this.pixelBuffer.concat( dataElement.data );
}
}
else if( dataElement.tag.name === "SequenceDelimitationItem" ) {
startedPixelItems = false;
}
else {
throw new Error("Unexpected tag in encapsulated pixel data: "+dataElement.tag.name);
}
}
// check the pixel data tag
if( dataElement.tag.name === "PixelData") {
if( dataElement.data.length !== 0 ) {
this.pixelBuffer = dataElement.data;
}
else {
startedPixelItems = true;
}
}
// store the data element
this.appendDicomElement( {
'name': dataElement.tag.name,
'group' : dataElement.tag.group,
'vr' : dataElement.vr,
'vl' : dataElement.vl,
'element': dataElement.tag.element,
'value': dataElement.data } );
// increment index
i += dataElement.offset-1;
}
// uncompress data
if( jpeg ) {
console.log("JPEG");
// using jpgjs from https://github.com/notmasteryet/jpgjs
// -> error with ffc3 and ffc1 jpeg jfif marker
/*var j = new JpegImage();
j.parse(this.pixelBuffer);
var d = 0;
j.copyToImageData(d);
this.pixelBuffer = d.data;*/
}
else if( jpeg2000 ) {
console.log("JPEG 2000");
// using openjpeg.js from https://github.com/kripken/j2k.js
// -> 2 layers results????
/*var data = new Uint16Array(this.pixelBuffer);
var result = openjpeg(data, "j2k");
this.pixelBuffer = result.data;*/
// using jpx.js from https://github.com/mozilla/pdf.js
// -> ...
/*var j = new JpxImage();
j.parse(this.pixelBuffer);
console.log("width: "+j.width);
console.log("height: "+j.height);
console.log("tiles: "+j.tiles.length);
console.log("count: "+j.componentsCount);
this.pixelBuffer = j.tiles[0].items;*/
}
};
/**
* Get an Image object from the read DICOM file.
* @returns A new Image.
*/
ovm.dicom.DicomParser.prototype.getImage = function()
{
// size
if( !this.dicomElements.Columns ) {
throw new Error("Missing DICOM image number of columns");
}
if( !this.dicomElements.Rows ) {
throw new Error("Missing DICOM image number of rows");
}
var size = new ovm.image.ImageSize(
this.dicomElements.Columns.value[0],
this.dicomElements.Rows.value[0]);
// spacing
var rowSpacing = 1;
var columnSpacing = 1;
if( this.dicomElements.PixelSpacing ) {
rowSpacing = parseFloat(this.dicomElements.PixelSpacing.value[0]);
columnSpacing = parseFloat(this.dicomElements.PixelSpacing.value[1]);
}
else if( this.dicomElements.ImagerPixelSpacing ) {
rowSpacing = parseFloat(this.dicomElements.ImagerPixelSpacing.value[0]);
columnSpacing = parseFloat(this.dicomElements.ImagerPixelSpacing.value[1]);
}
var spacing = new ovm.image.ImageSpacing(
columnSpacing, rowSpacing);
// image
var image = new ovm.image.Image( size, spacing, this.pixelBuffer );
// lookup
var rescaleSlope = 1;
if( this.dicomElements.RescaleSlope ) {
rescaleSlope = parseFloat(this.dicomElements.RescaleSlope.value[0]);
}
var rescaleIntercept = 0;
if( this.dicomElements.RescaleIntercept ) {
rescaleIntercept = parseFloat(this.dicomElements.RescaleIntercept.value[0]);
}
var windowPresets = [];
var name;
if( this.dicomElements.WindowCenter && this.dicomElements.WindowWidth ) {
for( var i = 0; i < this.dicomElements.WindowCenter.value.length; ++i) {
if( this.dicomElements.WindowCenterWidthExplanation ) {
name = this.dicomElements.WindowCenterWidthExplanation.value[i];
}
else {
name = "Default"+i;
}
windowPresets.push({
"center": parseInt( this.dicomElements.WindowCenter.value[i], 10 ),
"width": parseInt( this.dicomElements.WindowWidth.value[i], 10 ),
"name": name
});
}
}
var lookup = new ovm.image.LookupTable( windowPresets, rescaleSlope, rescaleIntercept);
image.setLookup( lookup );
// return
return image;
};

View File

@@ -0,0 +1,84 @@
/**
* TransferSyntax.js
* Version 0.5
* Author: BabuHussain<babuhussain.a@raster.in>
*/
function TransferSyntax()
{
this._uid;
this._bigEndian;
this._explicitVR;
this._deflated;
this._encapsulated;
this.ImplicitVRLittleEndian =new TransferSyntax("1.2.840.10008.1.2", false, false, false, false);
this.ImplicitVRBigEndian = new TransferSyntax(null, false, true, false, false);
this.ExplicitVRLittleEndian =
new TransferSyntax("1.2.840.10008.1.2.1", true, false, false, false);
this.ExplicitVRBigEndian =
new TransferSyntax("1.2.840.10008.1.2.2", true, true, false, false);
this.DeflatedExplicitVRLittleEndian =
new TransferSyntax("1.2.840.10008.1.2.1.99", true, false, true, false);
this.init= initializer;
this.uid=function()
{
return this._uid;
}
this.bigEndian=function()
{
return this._bigEndian;
}
this.explicitVR=function()
{
return this._explicitVR;
}
this.deflated=function()
{
return this._deflated;
}
this.encapsulated=function()
{
return this._encapsulated;
}
this.uncompressed=function()
{
return !this._deflated && !this._encapsulated;
}
this.valueOf=function(uid)
{
if (uid == null)
throw new Error("uid");
if (uid ==ImplicitVRLittleEndian._uid)
return ImplicitVRLittleEndian;
if (uid==ExplicitVRLittleEndian._uid)
return ExplicitVRLittleEndian;
if (uid ==ExplicitVRBigEndian._uid)
return ExplicitVRBigEndian;
if (uid ==DeflatedExplicitVRLittleEndian._uid)
return DeflatedExplicitVRLittleEndian;
return new TransferSyntax(uid, true, false, false, true);
}
}
function initializer(uid,explicitVR,bigEndian,deflated,encapsulated)
{
_uid = uid;
_explicitVR = explicitVR;
_bigEndian = bigEndian;
_deflated = deflated;
_encapsulated = encapsulated;
}

View File

@@ -0,0 +1,768 @@
/**
* UID.js
* Version 0.5
* Author: BabuHussain<babuhussain.a@raster.in>
*/
function UID () {
this.init=function() {
}
/** Private Study Root Query/Retrieve Information Model - FIND - SOP Class */
this. PrivateStudyRootQueryRetrieveInformationModelFIND = "1.2.40.0.13.1.5.1.4.1.2.2.1";
/** Private Blocked Study Root Query/Retrieve Information Model - FIND - SOP Class */
this. PrivateBlockedStudyRootQueryRetrieveInformationModelFIND = "1.2.40.0.13.1.5.1.4.1.2.2.1.1";
/** Private Virtual Multiframe Study Root Query/Retrieve Information Model - FIND - SOP Class */
this. PrivateVirtualMultiframeStudyRootQueryRetrieveInformationModelFIND = "1.2.40.0.13.1.5.1.4.1.2.2.1.2";
/** Verification SOP Class - SOP Class */
this. VerificationSOPClass = "1.2.840.10008.1.1";
/** Implicit VR Little Endian - Transfer Syntax */
this. ImplicitVRLittleEndian = "1.2.840.10008.1.2";
/** Explicit VR Little Endian - Transfer Syntax */
this. ExplicitVRLittleEndian = "1.2.840.10008.1.2.1";
/** Deflated Explicit VR Little Endian - Transfer Syntax */
this. DeflatedExplicitVRLittleEndian = "1.2.840.10008.1.2.1.99";
/** Explicit VR Big Endian - Transfer Syntax */
this. ExplicitVRBigEndian = "1.2.840.10008.1.2.2";
/** MPEG2 Main Profile @ Main Level - Transfer Syntax */
this. MPEG2 = "1.2.840.10008.1.2.4.100";
/** JPEG Baseline (Process 1) - Transfer Syntax */
this. JPEGBaseline1 = "1.2.840.10008.1.2.4.50";
/** JPEG Extended (Process 2 & 4) - Transfer Syntax */
this. JPEGExtended24 = "1.2.840.10008.1.2.4.51";
/** JPEG Extended (Process 3 & 5) (Retired) - Transfer Syntax */
this. JPEGExtended35Retired = "1.2.840.10008.1.2.4.52";
/** JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) (Retired) - Transfer Syntax */
this. JPEGSpectralSelectionNonHierarchical68Retired = "1.2.840.10008.1.2.4.53";
/** JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9) (Retired) - Transfer Syntax */
this. JPEGSpectralSelectionNonHierarchical79Retired = "1.2.840.10008.1.2.4.54";
/** JPEG Full Progression, Non-Hierarchical (Process 10 & 12) (Retired) - Transfer Syntax */
this. JPEGFullProgressionNonHierarchical1012Retired = "1.2.840.10008.1.2.4.55";
/** JPEG Full Progression, Non-Hierarchical (Process 11 & 13) (Retired) - Transfer Syntax */
this. JPEGFullProgressionNonHierarchical1113Retired = "1.2.840.10008.1.2.4.56";
/** JPEG Lossless, Non-Hierarchical (Process 14) - Transfer Syntax */
this. JPEGLosslessNonHierarchical14 = "1.2.840.10008.1.2.4.57";
/** JPEG Lossless, Non-Hierarchical (Process 15) (Retired) - Transfer Syntax */
this. JPEGLosslessNonHierarchical15Retired = "1.2.840.10008.1.2.4.58";
/** JPEG Extended, Hierarchical (Process 16 & 18) (Retired) - Transfer Syntax */
this. JPEGExtendedHierarchical1618Retired = "1.2.840.10008.1.2.4.59";
/** JPEG Extended, Hierarchical (Process 17 & 19) (Retired) - Transfer Syntax */
this. JPEGExtendedHierarchical1719Retired = "1.2.840.10008.1.2.4.60";
/** JPEG Spectral Selection, Hierarchical (Process 20 & 22) (Retired) - Transfer Syntax */
this. JPEGSpectralSelectionHierarchical2022Retired = "1.2.840.10008.1.2.4.61";
/** JPEG Spectral Selection, Hierarchical (Process 21 & 23) (Retired) - Transfer Syntax */
this. JPEGSpectralSelectionHierarchical2123Retired = "1.2.840.10008.1.2.4.62";
/** JPEG Full Progression, Hierarchical (Process 24 & 26) (Retired) - Transfer Syntax */
this. JPEGFullProgressionHierarchical2426Retired = "1.2.840.10008.1.2.4.63";
/** JPEG Full Progression, Hierarchical (Process 25 & 27) (Retired) - Transfer Syntax */
this. JPEGFullProgressionHierarchical2527Retired = "1.2.840.10008.1.2.4.64";
/** JPEG Lossless, Hierarchical (Process 28) (Retired) - Transfer Syntax */
this. JPEGLosslessHierarchical28Retired = "1.2.840.10008.1.2.4.65";
/** JPEG Lossless, Hierarchical (Process 29) (Retired) - Transfer Syntax */
this. JPEGLosslessHierarchical29Retired = "1.2.840.10008.1.2.4.66";
/** JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]) - Transfer Syntax */
this. JPEGLossless = "1.2.840.10008.1.2.4.70";
/** JPEG-LS Lossless Image Compression - Transfer Syntax */
this. JPEGLSLossless = "1.2.840.10008.1.2.4.80";
/** JPEG-LS Lossy (Near-Lossless) Image Compression - Transfer Syntax */
this. JPEGLSLossyNearLossless = "1.2.840.10008.1.2.4.81";
/** JPEG 2000 Image Compression (Lossless Only) - Transfer Syntax */
this. JPEG2000LosslessOnly = "1.2.840.10008.1.2.4.90";
/** JPEG 2000 Image Compression - Transfer Syntax */
this. JPEG2000 = "1.2.840.10008.1.2.4.91";
/** JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only) - Transfer Syntax */
this. JPEG2000Part2MulticomponentLosslessOnly = "1.2.840.10008.1.2.4.92";
/** JPEG 2000 Part 2 Multi-component Image Compression - Transfer Syntax */
this. JPEG2000Part2Multicomponent = "1.2.840.10008.1.2.4.93";
/** JPIP Referenced - Transfer Syntax */
this. JPIPReferenced = "1.2.840.10008.1.2.4.94";
/** JPIP Referenced Deflate - Transfer Syntax */
this. JPIPReferencedDeflate = "1.2.840.10008.1.2.4.95";
/** RLE Lossless - Transfer Syntax */
this. RLELossless = "1.2.840.10008.1.2.5";
/** RFC 2557 MIME encapsulation - Transfer Syntax */
this. RFC2557MIMEencapsulation = "1.2.840.10008.1.2.6.1";
/** XML Encoding - Transfer Syntax */
this. XMLEncoding = "1.2.840.10008.1.2.6.2";
/** Storage Commitment Push Model SOP Class - SOP Class */
this. StorageCommitmentPushModelSOPClass = "1.2.840.10008.1.20.1";
/** Storage Commitment Push Model SOP Instance - Well-known SOP Instance */
this. StorageCommitmentPushModelSOPInstance = "1.2.840.10008.1.20.1.1";
/** Storage Commitment Pull Model SOP Class (Retired) - SOP Class */
this. StorageCommitmentPullModelSOPClassRetired = "1.2.840.10008.1.20.2";
/** Storage Commitment Pull Model SOP Instance (Retired) - Well-known SOP Instance */
this. StorageCommitmentPullModelSOPInstanceRetired = "1.2.840.10008.1.20.2.1";
/** Media Storage Directory Storage - SOP Class */
this. MediaStorageDirectoryStorage = "1.2.840.10008.1.3.10";
/** Talairach Brain Atlas Frame of Reference - Well-known frame of reference */
this. TalairachBrainAtlasFrameofReference = "1.2.840.10008.1.4.1.1";
/** SPM2 GRAY Frame of Reference - Well-known frame of reference */
this. SPM2GRAYFrameofReference = "1.2.840.10008.1.4.1.10";
/** SPM2 WHITE Frame of Reference - Well-known frame of reference */
this. SPM2WHITEFrameofReference = "1.2.840.10008.1.4.1.11";
/** SPM2 CSF Frame of Reference - Well-known frame of reference */
this. SPM2CSFFrameofReference = "1.2.840.10008.1.4.1.12";
/** SPM2 BRAINMASK Frame of Reference - Well-known frame of reference */
this. SPM2BRAINMASKFrameofReference = "1.2.840.10008.1.4.1.13";
/** SPM2 AVG305T1 Frame of Reference - Well-known frame of reference */
this. SPM2AVG305T1FrameofReference = "1.2.840.10008.1.4.1.14";
/** SPM2 AVG152T1 Frame of Reference - Well-known frame of reference */
this. SPM2AVG152T1FrameofReference = "1.2.840.10008.1.4.1.15";
/** SPM2 AVG152T2 Frame of Reference - Well-known frame of reference */
this. SPM2AVG152T2FrameofReference = "1.2.840.10008.1.4.1.16";
/** SPM2 AVG152PD Frame of Reference - Well-known frame of reference */
this. SPM2AVG152PDFrameofReference = "1.2.840.10008.1.4.1.17";
/** SPM2 SINGLESUBJT1 Frame of Reference - Well-known frame of reference */
this. SPM2SINGLESUBJT1FrameofReference = "1.2.840.10008.1.4.1.18";
/** SPM2 T1 Frame of Reference - Well-known frame of reference */
this. SPM2T1FrameofReference = "1.2.840.10008.1.4.1.2";
/** SPM2 T2 Frame of Reference - Well-known frame of reference */
this. SPM2T2FrameofReference = "1.2.840.10008.1.4.1.3";
/** SPM2 PD Frame of Reference - Well-known frame of reference */
this. SPM2PDFrameofReference = "1.2.840.10008.1.4.1.4";
/** SPM2 EPI Frame of Reference - Well-known frame of reference */
this. SPM2EPIFrameofReference = "1.2.840.10008.1.4.1.5";
/** SPM2 FIL T1 Frame of Reference - Well-known frame of reference */
this. SPM2FILT1FrameofReference = "1.2.840.10008.1.4.1.6";
/** SPM2 PET Frame of Reference - Well-known frame of reference */
this. SPM2PETFrameofReference = "1.2.840.10008.1.4.1.7";
/** SPM2 TRANSM Frame of Reference - Well-known frame of reference */
this. SPM2TRANSMFrameofReference = "1.2.840.10008.1.4.1.8";
/** SPM2 SPECT Frame of Reference - Well-known frame of reference */
this. SPM2SPECTFrameofReference = "1.2.840.10008.1.4.1.9";
/** ICBM 452 T1 Frame of Reference - Well-known frame of reference */
this. ICBM452T1FrameofReference = "1.2.840.10008.1.4.2.1";
/** ICBM Single Subject MRI Frame of Reference - Well-known frame of reference */
this. ICBMSingleSubjectMRIFrameofReference = "1.2.840.10008.1.4.2.2";
/** Procedural Event Logging SOP Class - SOP Class */
this. ProceduralEventLoggingSOPClass = "1.2.840.10008.1.40";
/** Procedural Event Logging SOP Instance - Well-known SOP Instance */
this. ProceduralEventLoggingSOPInstance = "1.2.840.10008.1.40.1";
/** Basic Study Content Notification SOP Class (Retired) - SOP Class */
this. BasicStudyContentNotificationSOPClassRetired = "1.2.840.10008.1.9";
/** dicomDeviceName - LDAP OID */
this. dicomDeviceName = "1.2.840.10008.15.0.3.1";
/** dicomAssociationInitiator - LDAP OID */
this. dicomAssociationInitiator = "1.2.840.10008.15.0.3.10";
/** dicomAssociationAcceptor - LDAP OID */
this. dicomAssociationAcceptor = "1.2.840.10008.15.0.3.11";
/** dicomHostname - LDAP OID */
this. dicomHostname = "1.2.840.10008.15.0.3.12";
/** dicomPort - LDAP OID */
this. dicomPort = "1.2.840.10008.15.0.3.13";
/** dicomSOPClass - LDAP OID */
this. dicomSOPClass = "1.2.840.10008.15.0.3.14";
/** dicomTransferRole - LDAP OID */
this. dicomTransferRole = "1.2.840.10008.15.0.3.15";
/** dicomTransferSyntax - LDAP OID */
this. dicomTransferSyntax = "1.2.840.10008.15.0.3.16";
/** dicomPrimaryDeviceType - LDAP OID */
this. dicomPrimaryDeviceType = "1.2.840.10008.15.0.3.17";
/** dicomRelatedDeviceReference - LDAP OID */
this. dicomRelatedDeviceReference = "1.2.840.10008.15.0.3.18";
/** dicomPreferredCalledAETitle - LDAP OID */
this. dicomPreferredCalledAETitle = "1.2.840.10008.15.0.3.19";
/** dicomDescription - LDAP OID */
this. dicomDescription = "1.2.840.10008.15.0.3.2";
/** dicomTLSCyphersuite - LDAP OID */
this. dicomTLSCyphersuite = "1.2.840.10008.15.0.3.20";
/** dicomAuthorizedNodeCertificateReference - LDAP OID */
this. dicomAuthorizedNodeCertificateReference = "1.2.840.10008.15.0.3.21";
/** dicomThisNodeCertificateReference - LDAP OID */
this. dicomThisNodeCertificateReference = "1.2.840.10008.15.0.3.22";
/** dicomInstalled - LDAP OID */
this. dicomInstalled = "1.2.840.10008.15.0.3.23";
/** dicomStationName - LDAP OID */
this. dicomStationName = "1.2.840.10008.15.0.3.24";
/** dicomDeviceSerialNumber - LDAP OID */
this. dicomDeviceSerialNumber = "1.2.840.10008.15.0.3.25";
/** dicomInstitutionName - LDAP OID */
this. dicomInstitutionName = "1.2.840.10008.15.0.3.26";
/** dicomInstitutionAddress - LDAP OID */
this. dicomInstitutionAddress = "1.2.840.10008.15.0.3.27";
/** dicomInstitutionDepartmentName - LDAP OID */
this. dicomInstitutionDepartmentName = "1.2.840.10008.15.0.3.28";
/** dicomIssuerOfPatientID - LDAP OID */
this. dicomIssuerOfPatientID = "1.2.840.10008.15.0.3.29";
/** dicomManufacturer - LDAP OID */
this. dicomManufacturer = "1.2.840.10008.15.0.3.3";
/** dicomPreferredCallingAETitle - LDAP OID */
this. dicomPreferredCallingAETitle = "1.2.840.10008.15.0.3.30";
/** dicomSupportedCharacterSet - LDAP OID */
this. dicomSupportedCharacterSet = "1.2.840.10008.15.0.3.31";
/** dicomManufacturerModelName - LDAP OID */
this. dicomManufacturerModelName = "1.2.840.10008.15.0.3.4";
/** dicomSoftwareVersion - LDAP OID */
this. dicomSoftwareVersion = "1.2.840.10008.15.0.3.5";
/** dicomVendorData - LDAP OID */
this. dicomVendorData = "1.2.840.10008.15.0.3.6";
/** dicomAETitle - LDAP OID */
this. dicomAETitle = "1.2.840.10008.15.0.3.7";
/** dicomNetworkConnectionReference - LDAP OID */
this. dicomNetworkConnectionReference = "1.2.840.10008.15.0.3.8";
/** dicomApplicationCluster - LDAP OID */
this. dicomApplicationCluster = "1.2.840.10008.15.0.3.9";
/** dicomConfigurationRoot - LDAP OID */
this. dicomConfigurationRoot = "1.2.840.10008.15.0.4.1";
/** dicomDevicesRoot - LDAP OID */
this. dicomDevicesRoot = "1.2.840.10008.15.0.4.2";
/** dicomUniqueAETitlesRegistryRoot - LDAP OID */
this. dicomUniqueAETitlesRegistryRoot = "1.2.840.10008.15.0.4.3";
/** dicomDevice - LDAP OID */
this. dicomDevice = "1.2.840.10008.15.0.4.4";
/** dicomNetworkAE - LDAP OID */
this. dicomNetworkAE = "1.2.840.10008.15.0.4.5";
/** dicomNetworkConnection - LDAP OID */
this. dicomNetworkConnection = "1.2.840.10008.15.0.4.6";
/** dicomUniqueAETitle - LDAP OID */
this. dicomUniqueAETitle = "1.2.840.10008.15.0.4.7";
/** dicomTransferCapability - LDAP OID */
this. dicomTransferCapability = "1.2.840.10008.15.0.4.8";
/** DICOM Controlled Terminology - Coding Scheme */
this. DICOMControlledTerminology = "1.2.840.10008.2.16.4";
/** DICOM UID Registry - DICOM UIDs as a Coding Scheme */
this. DICOMUIDRegistry = "1.2.840.10008.2.6.1";
/** DICOM Application Context Name - Application Context Name */
this. DICOMApplicationContextName = "1.2.840.10008.3.1.1.1";
/** Detached Patient Management SOP Class (Retired) - SOP Class */
this. DetachedPatientManagementSOPClassRetired = "1.2.840.10008.3.1.2.1.1";
/** Detached Patient Management Meta SOP Class (Retired) - Meta SOP Class */
this. DetachedPatientManagementMetaSOPClassRetired = "1.2.840.10008.3.1.2.1.4";
/** Detached Visit Management SOP Class (Retired) - SOP Class */
this. DetachedVisitManagementSOPClassRetired = "1.2.840.10008.3.1.2.2.1";
/** Detached Study Management SOP Class (Retired) - SOP Class */
this. DetachedStudyManagementSOPClassRetired = "1.2.840.10008.3.1.2.3.1";
/** Study Component Management SOP Class (Retired) - SOP Class */
this. StudyComponentManagementSOPClassRetired = "1.2.840.10008.3.1.2.3.2";
/** Modality Performed Procedure Step SOP Class - SOP Class */
this. ModalityPerformedProcedureStepSOPClass = "1.2.840.10008.3.1.2.3.3";
/** Modality Performed Procedure Step Retrieve SOP Class - SOP Class */
this. ModalityPerformedProcedureStepRetrieveSOPClass = "1.2.840.10008.3.1.2.3.4";
/** Modality Performed Procedure Step Notification SOP Class - SOP Class */
this. ModalityPerformedProcedureStepNotificationSOPClass = "1.2.840.10008.3.1.2.3.5";
/** Detached Results Management SOP Class (Retired) - SOP Class */
this. DetachedResultsManagementSOPClassRetired = "1.2.840.10008.3.1.2.5.1";
/** Detached Results Management Meta SOP Class (Retired) - Meta SOP Class */
this. DetachedResultsManagementMetaSOPClassRetired = "1.2.840.10008.3.1.2.5.4";
/** Detached Study Management Meta SOP Class (Retired) - Meta SOP Class */
this. DetachedStudyManagementMetaSOPClassRetired = "1.2.840.10008.3.1.2.5.5";
/** Detached Interpretation Management SOP Class (Retired) - SOP Class */
this. DetachedInterpretationManagementSOPClassRetired = "1.2.840.10008.3.1.2.6.1";
/** Storage Service Class - Service Class */
this. StorageServiceClass = "1.2.840.10008.4.2";
/** Basic Film Session SOP Class - SOP Class */
this. BasicFilmSessionSOPClass = "1.2.840.10008.5.1.1.1";
/** Print Job SOP Class - SOP Class */
this. PrintJobSOPClass = "1.2.840.10008.5.1.1.14";
/** Basic Annotation Box SOP Class - SOP Class */
this. BasicAnnotationBoxSOPClass = "1.2.840.10008.5.1.1.15";
/** Printer SOP Class - SOP Class */
this. PrinterSOPClass = "1.2.840.10008.5.1.1.16";
/** Printer Configuration Retrieval SOP Class - SOP Class */
this. PrinterConfigurationRetrievalSOPClass = "1.2.840.10008.5.1.1.16.376";
/** Printer SOP Instance - Well-known Printer SOP Instance */
this. PrinterSOPInstance = "1.2.840.10008.5.1.1.17";
/** Printer Configuration Retrieval SOP Instance - Well-known Printer SOP Instance */
this. PrinterConfigurationRetrievalSOPInstance = "1.2.840.10008.5.1.1.17.376";
/** Basic Color Print Management Meta SOP Class - Meta SOP Class */
this. BasicColorPrintManagementMetaSOPClass = "1.2.840.10008.5.1.1.18";
/** Referenced Color Print Management Meta SOP Class (Retired) - Meta SOP Class */
this. ReferencedColorPrintManagementMetaSOPClassRetired = "1.2.840.10008.5.1.1.18.1";
/** Basic Film Box SOP Class - SOP Class */
this. BasicFilmBoxSOPClass = "1.2.840.10008.5.1.1.2";
/** VOI LUT Box SOP Class - SOP Class */
this. VOILUTBoxSOPClass = "1.2.840.10008.5.1.1.22";
/** Presentation LUT SOP Class - SOP Class */
this. PresentationLUTSOPClass = "1.2.840.10008.5.1.1.23";
/** Image Overlay Box SOP Class (Retired) - SOP Class */
this. ImageOverlayBoxSOPClassRetired = "1.2.840.10008.5.1.1.24";
/** Basic Print Image Overlay Box SOP Class (Retired) - SOP Class */
this. BasicPrintImageOverlayBoxSOPClassRetired = "1.2.840.10008.5.1.1.24.1";
/** Print Queue SOP Instance (Retired) - Well-known Print Queue SOP Instance */
this. PrintQueueSOPInstanceRetired = "1.2.840.10008.5.1.1.25";
/** Print Queue Management SOP Class (Retired) - SOP Class */
this. PrintQueueManagementSOPClassRetired = "1.2.840.10008.5.1.1.26";
/** Stored Print Storage SOP Class (Retired) - SOP Class */
this. StoredPrintStorageSOPClassRetired = "1.2.840.10008.5.1.1.27";
/** Hardcopy Grayscale Image Storage SOP Class (Retired) - SOP Class */
this. HardcopyGrayscaleImageStorageSOPClassRetired = "1.2.840.10008.5.1.1.29";
/** Hardcopy Color Image Storage SOP Class (Retired) - SOP Class */
this. HardcopyColorImageStorageSOPClassRetired = "1.2.840.10008.5.1.1.30";
/** Pull Print Request SOP Class (Retired) - SOP Class */
this. PullPrintRequestSOPClassRetired = "1.2.840.10008.5.1.1.31";
/** Pull Stored Print Management Meta SOP Class (Retired) - Meta SOP Class */
this. PullStoredPrintManagementMetaSOPClassRetired = "1.2.840.10008.5.1.1.32";
/** Media Creation Management SOP Class UID - SOP Class */
this. MediaCreationManagementSOPClassUID = "1.2.840.10008.5.1.1.33";
/** Basic Grayscale Image Box SOP Class - SOP Class */
this. BasicGrayscaleImageBoxSOPClass = "1.2.840.10008.5.1.1.4";
/** Basic Color Image Box SOP Class - SOP Class */
this. BasicColorImageBoxSOPClass = "1.2.840.10008.5.1.1.4.1";
/** Referenced Image Box SOP Class (Retired) - SOP Class */
this. ReferencedImageBoxSOPClassRetired = "1.2.840.10008.5.1.1.4.2";
/** Basic Grayscale Print Management Meta SOP Class - Meta SOP Class */
this. BasicGrayscalePrintManagementMetaSOPClass = "1.2.840.10008.5.1.1.9";
/** Referenced Grayscale Print Management Meta SOP Class (Retired) - Meta SOP Class */
this. ReferencedGrayscalePrintManagementMetaSOPClassRetired = "1.2.840.10008.5.1.1.9.1";
/** Computed Radiography Image Storage - SOP Class */
this. ComputedRadiographyImageStorage = "1.2.840.10008.5.1.4.1.1.1";
/** Digital X-Ray Image Storage - For Presentation - SOP Class */
this. DigitalXRayImageStorageForPresentation = "1.2.840.10008.5.1.4.1.1.1.1";
/** Digital X-Ray Image Storage - For Processing - SOP Class */
this. DigitalXRayImageStorageForProcessing = "1.2.840.10008.5.1.4.1.1.1.1.1";
/** Digital Mammography X-Ray Image Storage - For Presentation - SOP Class */
this. DigitalMammographyXRayImageStorageForPresentation = "1.2.840.10008.5.1.4.1.1.1.2";
/** Digital Mammography X-Ray Image Storage - For Processing - SOP Class */
this. DigitalMammographyXRayImageStorageForProcessing = "1.2.840.10008.5.1.4.1.1.1.2.1";
/** Digital Intra-oral X-Ray Image Storage - For Presentation - SOP Class */
this. DigitalIntraoralXRayImageStorageForPresentation = "1.2.840.10008.5.1.4.1.1.1.3";
/** Digital Intra-oral X-Ray Image Storage - For Processing - SOP Class */
this. DigitalIntraoralXRayImageStorageForProcessing = "1.2.840.10008.5.1.4.1.1.1.3.1";
/** Standalone Modality LUT Storage (Retired) - SOP Class */
this. StandaloneModalityLUTStorageRetired = "1.2.840.10008.5.1.4.1.1.10";
/** Encapsulated PDF Storage - SOP Class */
this. EncapsulatedPDFStorage = "1.2.840.10008.5.1.4.1.1.104.1";
/** Encapsulated CDA Storage - SOP Class */
this. EncapsulatedCDAStorage = "1.2.840.10008.5.1.4.1.1.104.2";
/** Standalone VOI LUT Storage (Retired) - SOP Class */
this. StandaloneVOILUTStorageRetired = "1.2.840.10008.5.1.4.1.1.11";
/** Grayscale Softcopy Presentation State Storage SOP Class - SOP Class */
this. GrayscaleSoftcopyPresentationStateStorageSOPClass = "1.2.840.10008.5.1.4.1.1.11.1";
/** Color Softcopy Presentation State Storage SOP Class - SOP Class */
this. ColorSoftcopyPresentationStateStorageSOPClass = "1.2.840.10008.5.1.4.1.1.11.2";
/** Pseudo-Color Softcopy Presentation State Storage SOP Class - SOP Class */
this. PseudoColorSoftcopyPresentationStateStorageSOPClass = "1.2.840.10008.5.1.4.1.1.11.3";
/** Blending Softcopy Presentation State Storage SOP Class - SOP Class */
this. BlendingSoftcopyPresentationStateStorageSOPClass = "1.2.840.10008.5.1.4.1.1.11.4";
/** X-Ray Angiographic Image Storage - SOP Class */
this. XRayAngiographicImageStorage = "1.2.840.10008.5.1.4.1.1.12.1";
/** Enhanced XA Image Storage - SOP Class */
this. EnhancedXAImageStorage = "1.2.840.10008.5.1.4.1.1.12.1.1";
/** X-Ray Radiofluoroscopic Image Storage - SOP Class */
this. XRayRadiofluoroscopicImageStorage = "1.2.840.10008.5.1.4.1.1.12.2";
/** Enhanced XRF Image Storage - SOP Class */
this. EnhancedXRFImageStorage = "1.2.840.10008.5.1.4.1.1.12.2.1";
/** X-Ray Angiographic Bi-Plane Image Storage (Retired) - SOP Class */
this. XRayAngiographicBiPlaneImageStorageRetired = "1.2.840.10008.5.1.4.1.1.12.3";
/** Positron Emission Tomography Image Storage - SOP Class */
this. PositronEmissionTomographyImageStorage = "1.2.840.10008.5.1.4.1.1.128";
/** Standalone PET Curve Storage (Retired) - SOP Class */
this. StandalonePETCurveStorageRetired = "1.2.840.10008.5.1.4.1.1.129";
/** X-Ray 3D Angiographic Image Storage - SOP Class */
this. XRay3DAngiographicImageStorage = "1.2.840.10008.5.1.4.1.1.13.1.1";
/** X-Ray 3D Craniofacial Image Storage - SOP Class */
this. XRay3DCraniofacialImageStorage = "1.2.840.10008.5.1.4.1.1.13.1.2";
/** CT Image Storage - SOP Class */
this. CTImageStorage = "1.2.840.10008.5.1.4.1.1.2";
/** Enhanced CT Image Storage - SOP Class */
this. EnhancedCTImageStorage = "1.2.840.10008.5.1.4.1.1.2.1";
/** Nuclear Medicine Image Storage - SOP Class */
this. NuclearMedicineImageStorage = "1.2.840.10008.5.1.4.1.1.20";
/** Ultrasound Multi-frame Image Storage (Retired) - SOP Class */
this. UltrasoundMultiframeImageStorageRetired = "1.2.840.10008.5.1.4.1.1.3";
/** Ultrasound Multi-frame Image Storage - SOP Class */
this. UltrasoundMultiframeImageStorage = "1.2.840.10008.5.1.4.1.1.3.1";
/** MR Image Storage - SOP Class */
this. MRImageStorage = "1.2.840.10008.5.1.4.1.1.4";
/** Enhanced MR Image Storage - SOP Class */
this. EnhancedMRImageStorage = "1.2.840.10008.5.1.4.1.1.4.1";
/** MR Spectroscopy Storage - SOP Class */
this. MRSpectroscopyStorage = "1.2.840.10008.5.1.4.1.1.4.2";
/** RT Image Storage - SOP Class */
this. RTImageStorage = "1.2.840.10008.5.1.4.1.1.481.1";
/** RT Dose Storage - SOP Class */
this. RTDoseStorage = "1.2.840.10008.5.1.4.1.1.481.2";
/** RT Structure Set Storage - SOP Class */
this. RTStructureSetStorage = "1.2.840.10008.5.1.4.1.1.481.3";
/** RT Beams Treatment Record Storage - SOP Class */
this. RTBeamsTreatmentRecordStorage = "1.2.840.10008.5.1.4.1.1.481.4";
/** RT Plan Storage - SOP Class */
this. RTPlanStorage = "1.2.840.10008.5.1.4.1.1.481.5";
/** RT Brachy Treatment Record Storage - SOP Class */
this. RTBrachyTreatmentRecordStorage = "1.2.840.10008.5.1.4.1.1.481.6";
/** RT Treatment Summary Record Storage - SOP Class */
this. RTTreatmentSummaryRecordStorage = "1.2.840.10008.5.1.4.1.1.481.7";
/** RT Ion Plan Storage - SOP Class */
this. RTIonPlanStorage = "1.2.840.10008.5.1.4.1.1.481.8";
/** RT Ion Beams Treatment Record Storage - SOP Class */
this. RTIonBeamsTreatmentRecordStorage = "1.2.840.10008.5.1.4.1.1.481.9";
/** Nuclear Medicine Image Storage (Retired) - SOP Class */
this. NuclearMedicineImageStorageRetired = "1.2.840.10008.5.1.4.1.1.5";
/** Ultrasound Image Storage (Retired) - SOP Class */
this. UltrasoundImageStorageRetired = "1.2.840.10008.5.1.4.1.1.6";
/** Ultrasound Image Storage - SOP Class */
this. UltrasoundImageStorage = "1.2.840.10008.5.1.4.1.1.6.1";
/** Raw Data Storage - SOP Class */
this. RawDataStorage = "1.2.840.10008.5.1.4.1.1.66";
/** Spatial Registration Storage - SOP Class */
this. SpatialRegistrationStorage = "1.2.840.10008.5.1.4.1.1.66.1";
/** Spatial Fiducials Storage - SOP Class */
this. SpatialFiducialsStorage = "1.2.840.10008.5.1.4.1.1.66.2";
/** Deformable Spatial Registration Storage - SOP Class */
this. DeformableSpatialRegistrationStorage = "1.2.840.10008.5.1.4.1.1.66.3";
/** Segmentation Storage - SOP Class */
this. SegmentationStorage = "1.2.840.10008.5.1.4.1.1.66.4";
/** Real World Value Mapping Storage - SOP Class */
this. RealWorldValueMappingStorage = "1.2.840.10008.5.1.4.1.1.67";
/** Secondary Capture Image Storage - SOP Class */
this. SecondaryCaptureImageStorage = "1.2.840.10008.5.1.4.1.1.7";
/** Multi-frame Single Bit Secondary Capture Image Storage - SOP Class */
this. MultiframeSingleBitSecondaryCaptureImageStorage = "1.2.840.10008.5.1.4.1.1.7.1";
/** Multi-frame Grayscale Byte Secondary Capture Image Storage - SOP Class */
this. MultiframeGrayscaleByteSecondaryCaptureImageStorage = "1.2.840.10008.5.1.4.1.1.7.2";
/** Multi-frame Grayscale Word Secondary Capture Image Storage - SOP Class */
this. MultiframeGrayscaleWordSecondaryCaptureImageStorage = "1.2.840.10008.5.1.4.1.1.7.3";
/** Multi-frame True Color Secondary Capture Image Storage - SOP Class */
this. MultiframeTrueColorSecondaryCaptureImageStorage = "1.2.840.10008.5.1.4.1.1.7.4";
/** VL Image Storage (Retired) - */
this. VLImageStorageRetired = "1.2.840.10008.5.1.4.1.1.77.1";
/** VL Endoscopic Image Storage - SOP Class */
this. VLEndoscopicImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.1";
/** Video Endoscopic Image Storage - SOP Class */
this. VideoEndoscopicImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.1.1";
/** VL Microscopic Image Storage - SOP Class */
this. VLMicroscopicImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.2";
/** Video Microscopic Image Storage - SOP Class */
this. VideoMicroscopicImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.2.1";
/** VL Slide-Coordinates Microscopic Image Storage - SOP Class */
this. VLSlideCoordinatesMicroscopicImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.3";
/** VL Photographic Image Storage - SOP Class */
this. VLPhotographicImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.4";
/** Video Photographic Image Storage - SOP Class */
this. VideoPhotographicImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.4.1";
/** Ophthalmic Photography 8 Bit Image Storage - SOP Class */
this. OphthalmicPhotography8BitImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.5.1";
/** Ophthalmic Photography 16 Bit Image Storage - SOP Class */
this. OphthalmicPhotography16BitImageStorage = "1.2.840.10008.5.1.4.1.1.77.1.5.2";
/** Stereometric Relationship Storage - SOP Class */
this. StereometricRelationshipStorage = "1.2.840.10008.5.1.4.1.1.77.1.5.3";
/** VL Multi-frame Image Storage (Retired) - */
this. VLMultiframeImageStorageRetired = "1.2.840.10008.5.1.4.1.1.77.2";
/** Standalone Overlay Storage (Retired) - SOP Class */
this. StandaloneOverlayStorageRetired = "1.2.840.10008.5.1.4.1.1.8";
/** Basic Text SR - SOP Class */
this. BasicTextSR = "1.2.840.10008.5.1.4.1.1.88.11";
/** Enhanced SR - SOP Class */
this. EnhancedSR = "1.2.840.10008.5.1.4.1.1.88.22";
/** Comprehensive SR - SOP Class */
this. ComprehensiveSR = "1.2.840.10008.5.1.4.1.1.88.33";
/** Procedure Log Storage - SOP Class */
this. ProcedureLogStorage = "1.2.840.10008.5.1.4.1.1.88.40";
/** Mammography CAD SR - SOP Class */
this. MammographyCADSR = "1.2.840.10008.5.1.4.1.1.88.50";
/** Key Object Selection Document - SOP Class */
this. KeyObjectSelectionDocument = "1.2.840.10008.5.1.4.1.1.88.59";
/** Chest CAD SR - SOP Class */
this. ChestCADSR = "1.2.840.10008.5.1.4.1.1.88.65";
/** X-Ray Radiation Dose SR - SOP Class */
this. XRayRadiationDoseSR = "1.2.840.10008.5.1.4.1.1.88.67";
/** Standalone Curve Storage (Retired) - SOP Class */
this. StandaloneCurveStorageRetired = "1.2.840.10008.5.1.4.1.1.9";
/** 12-lead ECG Waveform Storage - SOP Class */
this. _12leadECGWaveformStorage = "1.2.840.10008.5.1.4.1.1.9.1.1";
/** General ECG Waveform Storage - SOP Class */
this. GeneralECGWaveformStorage = "1.2.840.10008.5.1.4.1.1.9.1.2";
/** Ambulatory ECG Waveform Storage - SOP Class */
this. AmbulatoryECGWaveformStorage = "1.2.840.10008.5.1.4.1.1.9.1.3";
/** Hemodynamic Waveform Storage - SOP Class */
this. HemodynamicWaveformStorage = "1.2.840.10008.5.1.4.1.1.9.2.1";
/** Cardiac Electrophysiology Waveform Storage - SOP Class */
this. CardiacElectrophysiologyWaveformStorage = "1.2.840.10008.5.1.4.1.1.9.3.1";
/** Basic Voice Audio Waveform Storage - SOP Class */
this. BasicVoiceAudioWaveformStorage = "1.2.840.10008.5.1.4.1.1.9.4.1";
/** Patient Root Query/Retrieve Information Model - FIND - SOP Class */
this. PatientRootQueryRetrieveInformationModelFIND = "1.2.840.10008.5.1.4.1.2.1.1";
/** Patient Root Query/Retrieve Information Model - MOVE - SOP Class */
this. PatientRootQueryRetrieveInformationModelMOVE = "1.2.840.10008.5.1.4.1.2.1.2";
/** Patient Root Query/Retrieve Information Model - GET - SOP Class */
this. PatientRootQueryRetrieveInformationModelGET = "1.2.840.10008.5.1.4.1.2.1.3";
/** Study Root Query/Retrieve Information Model - FIND - SOP Class */
this. StudyRootQueryRetrieveInformationModelFIND = "1.2.840.10008.5.1.4.1.2.2.1";
/** Study Root Query/Retrieve Information Model - MOVE - SOP Class */
this. StudyRootQueryRetrieveInformationModelMOVE = "1.2.840.10008.5.1.4.1.2.2.2";
/** Study Root Query/Retrieve Information Model - GET - SOP Class */
this. StudyRootQueryRetrieveInformationModelGET = "1.2.840.10008.5.1.4.1.2.2.3";
/** Patient/Study Only Query/Retrieve Information Model - FIND (Retired) - SOP Class */
this. PatientStudyOnlyQueryRetrieveInformationModelFINDRetired = "1.2.840.10008.5.1.4.1.2.3.1";
/** Patient/Study Only Query/Retrieve Information Model - MOVE (Retired) - SOP Class */
this. PatientStudyOnlyQueryRetrieveInformationModelMOVERetired = "1.2.840.10008.5.1.4.1.2.3.2";
/** Patient/Study Only Query/Retrieve Information Model - GET (Retired) - SOP Class */
this. PatientStudyOnlyQueryRetrieveInformationModelGETRetired = "1.2.840.10008.5.1.4.1.2.3.3";
/** Modality Worklist Information Model - FIND - SOP Class */
this. ModalityWorklistInformationModelFIND = "1.2.840.10008.5.1.4.31";
/** General Purpose Worklist Management Meta SOP Class - Meta SOP Class */
this. GeneralPurposeWorklistManagementMetaSOPClass = "1.2.840.10008.5.1.4.32";
/** General Purpose Worklist Information Model - FIND - SOP Class */
this. GeneralPurposeWorklistInformationModelFIND = "1.2.840.10008.5.1.4.32.1";
/** General Purpose Scheduled Procedure Step SOP Class - SOP Class */
this. GeneralPurposeScheduledProcedureStepSOPClass = "1.2.840.10008.5.1.4.32.2";
/** General Purpose Performed Procedure Step SOP Class - SOP Class */
this. GeneralPurposePerformedProcedureStepSOPClass = "1.2.840.10008.5.1.4.32.3";
/** Instance Availability Notification SOP Class - SOP Class */
this. InstanceAvailabilityNotificationSOPClass = "1.2.840.10008.5.1.4.33";
/** General Relevant Patient Information Query - SOP Class */
this. GeneralRelevantPatientInformationQuery = "1.2.840.10008.5.1.4.37.1";
/** Breast Imaging Relevant Patient Information Query - SOP Class */
this. BreastImagingRelevantPatientInformationQuery = "1.2.840.10008.5.1.4.37.2";
/** Cardiac Relevant Patient Information Query - SOP Class */
this. CardiacRelevantPatientInformationQuery = "1.2.840.10008.5.1.4.37.3";
/** Hanging Protocol Storage - SOP Class */
this. HangingProtocolStorage = "1.2.840.10008.5.1.4.38.1";
/** Hanging Protocol Information Model - FIND - SOP Class */
this. HangingProtocolInformationModelFIND = "1.2.840.10008.5.1.4.38.2";
/** Hanging Protocol Information Model - MOVE - SOP Class */
this. HangingProtocolInformationModelMOVE = "1.2.840.10008.5.1.4.38.3";
/** Siemens CSA Non-Image Storage - SOP Class */
this. SiemensCSANonImageStorage = "1.3.12.2.1107.5.9.1";
}

View File

@@ -0,0 +1,97 @@
/**
* VR.js
* Version 0.5
* Author: BabuHussain<babuhussain.a@raster.in>
*/
function VR()
{
this.AE="AE";
this.AS="AS";
this.AT="AT";
this.CS="CS";
this.DA="DA";
this.DS="DS";
this.DT="DT";
this.FD="FD";
this.FL="FL";
this.IS="IS";
this.LO="IO";
this.LT="LT";
this.OB="OB";
this.OF="OF";
this.OW="OW";
this.PN="PN";
this.SH="SH";
this.SL="SL";
this.SQ="SQ";
this.SS="SS";
this.ST="ST";
this.TM="TM";
this.UI="UI";
this.UL="UL";
this.UN="UN";
this.US="US";
this.UT="UT";
function valueOf(vr)
{
switch (vr)
{
case this.AE:
return this.AE;
case this.AS:
return this.AS;
case this.AT:
return this.AT;
case this.CS:
return this.CS;
case this.DA:
return this.DA;
case this.DS:
return this.DS;
case this.DT:
return this.DT;
case this.FD:
return this.FD;
case this.FL:
return this.FL;
case this.IS:
return this.IS;
case this.LO:
return this.LO;
case this.LT:
return this.LT;
case this.OB:
return this.OB;
case this.OF:
return this.OF;
case this.OW:
return this.OW;
case this.PN:
return this.PN;
case this.SH:
return this.SH;
case this.SL:
return this.SL;
case this.SQ:
return this.SQ;
case this.SS:
return this.SS;
case this.ST:
return this.ST;
case this.TM:
return this.TM;
case this.UI:
return this.UI;
case this.UL:
return this.UL;
case this.UN:
return this.UN;
case this.US:
return this.US;
case this.UT:
return this.UT;
}
throw new Error("VR does not match ");
}
}