Integrate web workers and the latest cornerstone libraries

- Upgrade cornerstone to v0.10.1
- Upgrade cornerstoneTools to v0.8.1
- Upgrade cornerstoneWADOImageLoader to v0.14.1
- Upgrade dicomParser to v1.7.4
- Upgrade hammerjs to v2.0.8
This commit is contained in:
Evren Ozkan committed 2017-02-13 15:49:02 -05:00
1 parent 8fa437b2c2
commit 33f9b8672b
12 files changed
+8565 -7785

No files matched your search

+67 -26
View File
@@ -1,4 +1,4 @@
/*! dicom-parser - v1.7.1 - 2016-06-09 | (c) 2014 Chris Hafey | https://github.com/chafey/dicomParser */
/*! dicom-parser - v1.7.4 - 2016-08-18 | (c) 2014 Chris Hafey | https://github.com/chafey/dicomParser */
(function (root, factory) {
// node.js
@@ -194,20 +194,6 @@ var dicomParser = (function (dicomParser)
dataSet.byteArray[position + 1] === 0xD9);
}
// Each JPEG image has a start of image marker
function isStartOfImageMarker(dataSet, position) {
return (dataSet.byteArray[position] === 0xFF &&
dataSet.byteArray[position + 1] === 0xD8);
}
function isFragmentStartOfImage(dataSet, pixelDataElement, fragmentIndex) {
var fragment = pixelDataElement.fragments[fragmentIndex];
if(isStartOfImageMarker(dataSet, fragment.position)) {
return true;
}
return false;
}
function isFragmentEndOfImage(dataSet, pixelDataElement, fragmentIndex) {
var fragment = pixelDataElement.fragments[fragmentIndex];
// Need to check the last two bytes and the last three bytes for marker since odd length
@@ -222,12 +208,7 @@ var dicomParser = (function (dicomParser)
function findLastImageFrameFragmentIndex(dataSet, pixelDataElement, startFragment) {
for(var fragmentIndex=startFragment; fragmentIndex < pixelDataElement.fragments.length; fragmentIndex++) {
if(isFragmentEndOfImage(dataSet, pixelDataElement, fragmentIndex)) {
// if not last fragment, peek ahead to make sure the next fragment has a start of image marker just to
// be safe
if(fragmentIndex === pixelDataElement.fragments.length - 1 ||
isFragmentStartOfImage(dataSet, pixelDataElement, fragmentIndex+1)) {
return fragmentIndex;
}
return fragmentIndex;
}
}
}
@@ -275,10 +256,6 @@ var dicomParser = (function (dicomParser)
var basicOffsetTable = [];
var startFragmentIndex = 0;
// sanity check first fragment has a JPEG start of image marker
if(!isFragmentStartOfImage(dataSet, pixelDataElement, startFragmentIndex)) {
throw 'first fragment does not have JPEG start of image marker';
}
while(true) {
// Add the offset for the start fragment
@@ -1417,6 +1394,65 @@ var dicomParser = (function (dicomParser)
* Internal helper functions for parsing DICOM elements
*/
var dicomParser = (function (dicomParser)
{
"use strict";
if(dicomParser === undefined)
{
dicomParser = {};
}
/**
* reads from the byte stream until it finds the magic number for the Sequence Delimitation Item item
* and then sets the length of the element
* @param byteStream
* @param element
*/
dicomParser.findAndSetUNElementLength = function(byteStream, element)
{
if(byteStream === undefined)
{
throw "dicomParser.findAndSetUNElementLength: missing required parameter 'byteStream'";
}
var itemDelimitationItemLength = 8; // group, element, length
var maxPosition = byteStream.byteArray.length - itemDelimitationItemLength;
while(byteStream.position <= maxPosition)
{
var groupNumber;
groupNumber = byteStream.readUint16();
if(groupNumber === 0xfffe)
{
var elementNumber;
elementNumber = byteStream.readUint16();
if(elementNumber === 0xe0dd)
{
// NOTE: It would be better to also check for the length to be 0 as part of the check above
// but we will just log a warning for now
var itemDelimiterLength;
itemDelimiterLength = byteStream.readUint32(); // the length
if(itemDelimiterLength !== 0) {
byteStream.warnings('encountered non zero length following item delimiter at position' + byteStream.position - 4 + " while reading element of undefined length with tag ' + element.tag");
}
element.length = byteStream.position - element.dataOffset;
return;
}
}
}
// No item delimitation item - silently set the length to the end of the buffer and set the position past the end of the buffer
element.length = byteStream.byteArray.length - element.dataOffset;
byteStream.seek(byteStream.byteArray.length - byteStream.position);
};
return dicomParser;
}(dicomParser));
/**
* Internal helper functions for parsing DICOM elements
*/
var dicomParser = (function (dicomParser)
{
"use strict";
@@ -1891,11 +1927,16 @@ var dicomParser = (function (dicomParser)
dicomParser.readSequenceItemsExplicit(byteStream, element, warnings);
return element;
}
if(element.length === 4294967295)
{
if(element.tag === 'x7fe00010') {
dicomParser.findEndOfEncapsulatedElement(byteStream, element, warnings);
return element;
} else if(element.vr === 'UN') {
dicomParser.findAndSetUNElementLength(byteStream, element);
return element;
} else {
dicomParser.findItemDelimitationItemAndSetElementLength(byteStream, element);
return element;
@@ -2633,7 +2674,7 @@ var dicomParser = (function (dicomParser)
dicomParser = {};
}
dicomParser.version = "1.7.1";
dicomParser.version = "1.7.3";
return dicomParser;
}(dicomParser));