From b3b4c10e4c620a0bea174c5fb43ffd69de37541b Mon Sep 17 00:00:00 2001 From: Erik Ziegler Date: Wed, 2 Oct 2019 09:39:38 +0200 Subject: [PATCH] fix: Temporarily sort SEG files to the end of the display set list as a workaround for several metadata issues (#987) --- .../src/classes/metadata/StudyMetadata.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/platform/core/src/classes/metadata/StudyMetadata.js b/platform/core/src/classes/metadata/StudyMetadata.js index 0ca9e7ebf..82d00bf1c 100644 --- a/platform/core/src/classes/metadata/StudyMetadata.js +++ b/platform/core/src/classes/metadata/StudyMetadata.js @@ -197,6 +197,7 @@ export class StudyMetadata extends Metadata { // TODO displaySets.sort(_sortBySeriesNumber); + displaySets.sort(_sortSegToEndOfList); return displaySets; } @@ -660,3 +661,24 @@ function _sortBySeriesNumber(a, b) { return seriesNumberAIsGreaterOrUndefined ? 1 : -1; } + +/** + * Move Segmentation modality files to the end of the list of + * display sets. This is a workaround to prevent issues when + * the referenced dataset's metadata is not yet available. + * + * It will be removed once proper SEG ingestion is added. + * + * @param {*} a - DisplaySet + * @param {*} b - DisplaySet + */ +function _sortSegToEndOfList(a, b) { + const displaySetAIsSeg = a.modality === 'SEG'; + const displaySetBIsSeg = b.modality === 'SEG'; + + if (displaySetAIsSeg && displaySetBIsSeg) { + return 0; + } + + return displaySetAIsSeg ? 1 : -1; +} \ No newline at end of file