updating cornerstoneTools (PR #189)

Pull Request
https://github.com/chafey/cornerstoneTools/pull/189
This commit is contained in:
Leonardo Campos 2017-03-04 00:17:01 -03:00
parent 9ad0b670b3
commit 855cc02461

View File

@ -2940,12 +2940,8 @@ if (typeof cornerstoneTools === 'undefined') {
var sp = storedPixels[0]; var sp = storedPixels[0];
var mo = sp * eventData.image.slope + eventData.image.intercept; var mo = sp * eventData.image.slope + eventData.image.intercept;
var suv = cornerstoneTools.calculateSUV(eventData.image, sp); var suv = cornerstoneTools.calculateSUV(eventData.image, sp);
var seriesModule = cornerstone.metaData.get('generalSeriesModule', image.imageId);
var modalityTag = 'x00080060'; var modality = seriesModule.modality;
var modality;
if (eventData.image.data) {
modality = eventData.image.data.string(modalityTag);
}
if (modality === 'CT') { if (modality === 'CT') {
text += 'HU: '; text += 'HU: ';
@ -3196,14 +3192,10 @@ if (typeof cornerstoneTools === 'undefined') {
var lineWidth = cornerstoneTools.toolStyle.getToolWidth(); var lineWidth = cornerstoneTools.toolStyle.getToolWidth();
var config = cornerstoneTools.ellipticalRoi.getConfiguration(); var config = cornerstoneTools.ellipticalRoi.getConfiguration();
var context = eventData.canvasContext.canvas.getContext('2d'); 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 context.setTransform(1, 0, 0, 1, 0, 0);
var modalityTag = 'x00080060';
var modality;
if (image.data) {
modality = image.data.string(modalityTag);
}
// If we have tool data for this element - iterate over each set and draw it // If we have tool data for this element - iterate over each set and draw it
for (var i = 0; i < toolData.data.length; i++) { for (var i = 0; i < toolData.data.length; i++) {
@ -5045,14 +5037,10 @@ if (typeof cornerstoneTools === 'undefined') {
var lineWidth = cornerstoneTools.toolStyle.getToolWidth(); var lineWidth = cornerstoneTools.toolStyle.getToolWidth();
var config = cornerstoneTools.rectangleRoi.getConfiguration(); var config = cornerstoneTools.rectangleRoi.getConfiguration();
var context = eventData.canvasContext.canvas.getContext('2d'); 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 context.setTransform(1, 0, 0, 1, 0, 0);
var modalityTag = 'x00080060';
var modality;
if (image.data) {
modality = image.data.string(modalityTag);
}
// If we have tool data for this element - iterate over each set and draw it // If we have tool data for this element - iterate over each set and draw it
for (var i = 0; i < toolData.data.length; i++) { for (var i = 0; i < toolData.data.length; i++) {
@ -11197,39 +11185,38 @@ Display scroll progress bar across bottom of image.
return; return;
} }
// if no dicom data set, return var patientStudyModule = cornerstone.metaData.get('patientStudyModule', image.imageId);
if (image.data === undefined) { var seriesModule = cornerstone.metaData.get('generalSeriesModule', image.imageId);
return; var modality = seriesModule.modality;
}
// image must be PET // image must be PET
if (image.data.string('x00080060') !== 'PT') { if (modality !== 'PT') {
return; return;
} }
var modalityPixelValue = storedPixelValue * image.slope + image.intercept; var modalityPixelValue = storedPixelValue * image.slope + image.intercept;
var patientWeight = image.data.floatString('x00101030'); // in kg var patientWeight = patientStudyModule.patientWeight; // in kg
if (patientWeight === undefined) { if (patientWeight === undefined) {
return; return;
} }
var petSequence = image.data.elements.x00540016; var petSequenceModule = cornerstone.metaData.get('petIsotopeModule', image.imageId);
if (petSequence === undefined) { if (petSequenceModule === undefined) {
return; return;
} }
petSequence = petSequence.items[0].dataSet; var radiopharmaceuticalInfo = petSequenceModule.radiopharmaceuticalInfo;
var startTime = dicomParser.parseTM(petSequence.string('x00181072')); var startTime = radiopharmaceuticalInfo.radiopharmaceuticalStartTime;
var totalDose = petSequence.floatString('x00181074'); var totalDose = radiopharmaceuticalInfo.radionuclideTotalDose;
var halfLife = petSequence.floatString('x00181075'); var halfLife = radiopharmaceuticalInfo.radionuclideHalfLife;
var seriesAcquisitionTime = dicomParser.parseTM(image.data.string('x00080031')); var seriesAcquisitionTime = seriesModule.seriesTime;
if (!startTime || !totalDose || !halfLife || !seriesAcquisitionTime) { if (!startTime || !totalDose || !halfLife || !seriesAcquisitionTime) {
return; 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 injectionStartTimeInSeconds = fracToDec(startTime.fractionalSeconds) + startTime.seconds + startTime.minutes * 60 + startTime.hours * 60 * 60;
var durationInSeconds = acquisitionTimeInSeconds - injectionStartTimeInSeconds; var durationInSeconds = acquisitionTimeInSeconds - injectionStartTimeInSeconds;
var correctedDose = totalDose * Math.exp(-durationInSeconds * Math.log(2) / halfLife); var correctedDose = totalDose * Math.exp(-durationInSeconds * Math.log(2) / halfLife);