@cornerstonejs/core
Version:
Cornerstone3D Core
38 lines (37 loc) • 1.27 kB
JavaScript
class FrameRange {
static imageIdToFrames(imageId) {
const match = imageId.match(this.frameRangeExtractor);
if (!match || !match[2]) {
return null;
}
const range = match[2].split('-').map((it) => Number(it));
if (range.length === 1) {
return range[0];
}
return range;
}
static imageIdToFrameEnd(imageId) {
const range = this.imageIdToFrames(imageId);
return Array.isArray(range) ? range[1] : range;
}
static imageIdToFrameStart(imageId) {
const range = this.imageIdToFrames(imageId);
return Array.isArray(range) ? range[0] : range;
}
static framesToString(range) {
if (Array.isArray(range)) {
return `${range[0]}-${range[1]}`;
}
return String(range);
}
static framesToImageId(imageId, range) {
const match = imageId.match(this.frameRangeExtractor);
if (!match || !match[2]) {
return null;
}
const newRangeString = this.framesToString(range);
return imageId.replace(this.frameRangeExtractor, `${match[1]}${newRangeString}`);
}
}
FrameRange.frameRangeExtractor = /(\/frames\/|[&?]frameNumber=)([^/&?]*)/i;
export default FrameRange;