From 855cc0246118a8200b353800e52b5103d7b65164 Mon Sep 17 00:00:00 2001 From: Leonardo Campos Date: Sat, 4 Mar 2017 00:17:01 -0300 Subject: [PATCH] updating cornerstoneTools (PR #189) Pull Request https://github.com/chafey/cornerstoneTools/pull/189 --- .../client/cornerstoneTools.js | 55 +++++++------------ 1 file changed, 21 insertions(+), 34 deletions(-) diff --git a/Packages/ohif-cornerstone/client/cornerstoneTools.js b/Packages/ohif-cornerstone/client/cornerstoneTools.js index 1cd4506ab..2c8d4b1f6 100644 --- a/Packages/ohif-cornerstone/client/cornerstoneTools.js +++ b/Packages/ohif-cornerstone/client/cornerstoneTools.js @@ -2940,12 +2940,8 @@ if (typeof cornerstoneTools === 'undefined') { var sp = storedPixels[0]; var mo = sp * eventData.image.slope + eventData.image.intercept; var suv = cornerstoneTools.calculateSUV(eventData.image, sp); - - var modalityTag = 'x00080060'; - var modality; - if (eventData.image.data) { - modality = eventData.image.data.string(modalityTag); - } + var seriesModule = cornerstone.metaData.get('generalSeriesModule', image.imageId); + var modality = seriesModule.modality; if (modality === 'CT') { text += 'HU: '; @@ -3196,14 +3192,10 @@ if (typeof cornerstoneTools === 'undefined') { var lineWidth = cornerstoneTools.toolStyle.getToolWidth(); var config = cornerstoneTools.ellipticalRoi.getConfiguration(); var context = eventData.canvasContext.canvas.getContext('2d'); - context.setTransform(1, 0, 0, 1, 0, 0); + var seriesModule = cornerstone.metaData.get('generalSeriesModule', image.imageId); + var modality = seriesModule.modality; - // Retrieve the image modality from its metadata, if available - var modalityTag = 'x00080060'; - var modality; - if (image.data) { - modality = image.data.string(modalityTag); - } + context.setTransform(1, 0, 0, 1, 0, 0); // If we have tool data for this element - iterate over each set and draw it for (var i = 0; i < toolData.data.length; i++) { @@ -5045,14 +5037,10 @@ if (typeof cornerstoneTools === 'undefined') { var lineWidth = cornerstoneTools.toolStyle.getToolWidth(); var config = cornerstoneTools.rectangleRoi.getConfiguration(); var context = eventData.canvasContext.canvas.getContext('2d'); - context.setTransform(1, 0, 0, 1, 0, 0); + var seriesModule = cornerstone.metaData.get('generalSeriesModule', image.imageId); + var modality = seriesModule.modality; - // Retrieve the image modality from its metadata, if available - var modalityTag = 'x00080060'; - var modality; - if (image.data) { - modality = image.data.string(modalityTag); - } + context.setTransform(1, 0, 0, 1, 0, 0); // If we have tool data for this element - iterate over each set and draw it for (var i = 0; i < toolData.data.length; i++) { @@ -11197,39 +11185,38 @@ Display scroll progress bar across bottom of image. return; } - // if no dicom data set, return - if (image.data === undefined) { - return; - } + var patientStudyModule = cornerstone.metaData.get('patientStudyModule', image.imageId); + var seriesModule = cornerstone.metaData.get('generalSeriesModule', image.imageId); + var modality = seriesModule.modality; // image must be PET - if (image.data.string('x00080060') !== 'PT') { + if (modality !== 'PT') { return; } var modalityPixelValue = storedPixelValue * image.slope + image.intercept; - var patientWeight = image.data.floatString('x00101030'); // in kg + var patientWeight = patientStudyModule.patientWeight; // in kg if (patientWeight === undefined) { return; } - var petSequence = image.data.elements.x00540016; - if (petSequence === undefined) { + var petSequenceModule = cornerstone.metaData.get('petIsotopeModule', image.imageId); + if (petSequenceModule === undefined) { return; } - petSequence = petSequence.items[0].dataSet; - var startTime = dicomParser.parseTM(petSequence.string('x00181072')); - var totalDose = petSequence.floatString('x00181074'); - var halfLife = petSequence.floatString('x00181075'); - var seriesAcquisitionTime = dicomParser.parseTM(image.data.string('x00080031')); + var radiopharmaceuticalInfo = petSequenceModule.radiopharmaceuticalInfo; + var startTime = radiopharmaceuticalInfo.radiopharmaceuticalStartTime; + var totalDose = radiopharmaceuticalInfo.radionuclideTotalDose; + var halfLife = radiopharmaceuticalInfo.radionuclideHalfLife; + var seriesAcquisitionTime = seriesModule.seriesTime; if (!startTime || !totalDose || !halfLife || !seriesAcquisitionTime) { return; } - var acquisitionTimeInSeconds = fracToDec(seriesAcquisitionTime.fractionalSeconds) + seriesAcquisitionTime.seconds + seriesAcquisitionTime.minutes * 60 + seriesAcquisitionTime.hours * 60 * 60; + var acquisitionTimeInSeconds = fracToDec(seriesAcquisitionTime.fractionalSeconds || 0) + seriesAcquisitionTime.seconds + seriesAcquisitionTime.minutes * 60 + seriesAcquisitionTime.hours * 60 * 60; var injectionStartTimeInSeconds = fracToDec(startTime.fractionalSeconds) + startTime.seconds + startTime.minutes * 60 + startTime.hours * 60 * 60; var durationInSeconds = acquisitionTimeInSeconds - injectionStartTimeInSeconds; var correctedDose = totalDose * Math.exp(-durationInSeconds * Math.log(2) / halfLife);