fix: issue introduced from PR 5022 (#5223)
Co-authored-by: Bill Wallace <wayfarer3130@gmail.com>
This commit is contained in:
1 parent
78597aacac
commit
428b6ffbe7
7 files changed
+34
-25
No files matched your search
@@ -103,7 +103,7 @@ class ImageSet {
|
||||
return this.images.sort(combinedSortFunctions[userSpecifiedCriteria]);
|
||||
}
|
||||
// If image position patient is not available, sort by InstanceNumber
|
||||
if (!isValidForPositionSort(this.images)) {
|
||||
if (!this.isReconstructable || !isValidForPositionSort(this.images)) {
|
||||
return this.images.sort(instancesSortCriteria.sortByInstanceNumber);
|
||||
}
|
||||
// Do image position patient sorting as default sort
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import toNumber from './toNumber';
|
||||
import { _isSameOrientation } from './isDisplaySetReconstructable';
|
||||
|
||||
/**
|
||||
* Check is the series has frames with different orientations
|
||||
* @param {*} instances
|
||||
* @returns
|
||||
*/
|
||||
export default function areAllImageOrientationsEqual(instances: Array<any>): boolean {
|
||||
if (!instances?.length) {
|
||||
return false;
|
||||
}
|
||||
const firstImage = instances[0];
|
||||
const firstImageOrientationPatient = toNumber(firstImage.ImageOrientationPatient);
|
||||
|
||||
for (let i = 1; i < instances.length; i++) {
|
||||
const instance = instances[i];
|
||||
const imageOrientationPatient = toNumber(instance.ImageOrientationPatient);
|
||||
|
||||
if (!_isSameOrientation(imageOrientationPatient, firstImageOrientationPatient)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -44,6 +44,7 @@ import { sopClassDictionary } from './sopClassDictionary';
|
||||
import * as MeasurementFilters from './measurementFilters';
|
||||
import getClosestOrientationFromIOP from './getClosestOrientationFromIOP';
|
||||
import calculateScanAxisNormal from './calculateScanAxisNormal';
|
||||
import areAllImageOrientationsEqual from './areAllImageOrientationsEqual';
|
||||
// Commented out unused functionality.
|
||||
// Need to implement new mechanism for derived displaySets using the displaySetManager.
|
||||
|
||||
@@ -93,6 +94,7 @@ const utils = {
|
||||
MeasurementFilters,
|
||||
getClosestOrientationFromIOP,
|
||||
calculateScanAxisNormal,
|
||||
areAllImageOrientationsEqual,
|
||||
};
|
||||
|
||||
export {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { vec3 } from 'gl-matrix';
|
||||
import isLowPriorityModality from './isLowPriorityModality';
|
||||
import calculateScanAxisNormal from './calculateScanAxisNormal';
|
||||
import areAllImageOrientationsEqual from './areAllImageOrientationsEqual';
|
||||
|
||||
const compareSeriesDateTime = (a, b) => {
|
||||
const seriesDateA = Date.parse(`${a.seriesDate ?? a.SeriesDate} ${a.seriesTime ?? a.SeriesTime}`);
|
||||
@@ -145,6 +146,11 @@ function isValidForPositionSort(images): boolean {
|
||||
if (!referenceImagePositionPatient || !imageOrientationPatient) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!areAllImageOrientationsEqual(images)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user