js-dicom
Version:
this is js-dicom
32 lines (22 loc) • 1.14 kB
JavaScript
//import * as dicomParser from 'dicom-parser';
import * as dicomParser from '../dicomParser/index';
/**
* Function to deal with extracting an image frame from an encapsulated data set.
*/
function framesAreFragmented (dataSet) {
const numberOfFrames = dataSet.intString('x00280008');
const pixelDataElement = dataSet.elements.x7fe00010;
return (numberOfFrames !== pixelDataElement.fragments.length);
}
export default function getEncapsulatedImageFrame (dataSet, frameIndex) {
if (dataSet.elements.x7fe00010.basicOffsetTable.length) {
// Basic Offset Table is not empty
return dicomParser.readEncapsulatedImageFrame(dataSet, dataSet.elements.x7fe00010, frameIndex);
}
// Empty basic offset table
if (framesAreFragmented(dataSet)) {
const basicOffsetTable = dicomParser.createJPEGBasicOffsetTable(dataSet, dataSet.elements.x7fe00010);
return dicomParser.readEncapsulatedImageFrame(dataSet, dataSet.elements.x7fe00010, frameIndex, basicOffsetTable);
}
return dicomParser.readEncapsulatedPixelDataFromFragments(dataSet, dataSet.elements.x7fe00010, frameIndex);
}