OHIF-285/OHIF-274: Fix default hanging of display sets into the ViewportGrid (#1917)

* OHIF-285/OHIF-274: Fix default hanging of display sets into the ViewportGrid

Co-authored-by: James A. Petts <jamesapetts@gmail.com>
This commit is contained in:
Erik ZieglerandJames A. Petts authored and GitHub committed 2020-07-24 12:51:57 +02:00
1 parent 9df57e7f7f
commit 55cf9f2306
33 files changed
+548 -208

No files matched your search

@@ -1,15 +1,9 @@
import dcmjs from 'dcmjs';
import { studies } from '@ohif/core';
import RetrieveMetadataLoader from './retrieveMetadataLoader';
//import { sortStudySeries, sortingCriteria } from '../../sortStudy';
import getSeriesInfo from './utils/getSeriesInfo';
/**
* Map seriesList to an array of seriesInstanceUid
* @param {Arrays} seriesList list of Series Instance UIDs
* @returns {Arrays} A list of Series Instance UIDs
*/
function mapStudySeries(seriesList) {
return seriesList.map(series => getSeriesInfo(series).seriesInstanceUid);
}
const { sortStudySeries, sortingCriteria } = studies;
/**
* Creates an immutable series loader object which loads each series sequentially using the iterator interface
@@ -33,7 +27,6 @@ function makeSeriesAsyncLoader(
studyInstanceUID,
seriesInstanceUID,
});
// return { studyInstanceUID, seriesInstanceUID, sopInstances };
},
});
}
@@ -73,56 +66,42 @@ export default class RetrieveMetadataLoaderAsync extends RetrieveMetadataLoader
const preLoaders = this.getPreLoaders();
const result = await this.runLoaders(preLoaders);
// const seriesSorted = sortStudySeries(
// result,
// sortingCriteria.seriesSortCriteria.seriesInfoSortingCriteria
// );
const { naturalizeDataset } = dcmjs.data.DicomMetaDictionary;
const naturalized = result.map(naturalizeDataset);
//const seriesInstanceUidsMap = mapStudySeries(seriesSorted);
const seriesInstanceUidsMap = mapStudySeries(result);
return seriesInstanceUidsMap;
return sortStudySeries(
naturalized,
sortingCriteria.seriesSortCriteria.seriesInfoSortingCriteria
);
}
async load(preLoadData) {
const { client, studyInstanceUID } = this;
const seriesInstanceUIDs = preLoadData.map(s => s.SeriesInstanceUID);
const seriesAsyncLoader = makeSeriesAsyncLoader(
client,
studyInstanceUID,
preLoadData
seriesInstanceUIDs
);
// const firstSeries = await seriesAsyncLoader.next();
// return {
// sopInstances: firstSeries.sopInstances,
// asyncLoader: seriesAsyncLoader,
// };
const promises = [];
while (seriesAsyncLoader.hasNext()) {
promises.push(seriesAsyncLoader.next());
}
return promises;
// if (asyncLoader.hasNext()) {
return {
preLoadData,
promises,
};
}
async posLoad(promises) {
return promises;
// const { client } = this;
// const { sopInstances, asyncLoader } = loadData;
// const study = await createStudyFromSOPInstanceList(server, sopInstances);
// if (asyncLoader.hasNext()) {
// attachSeriesLoader(server, study, asyncLoader);
// }
// return study;
async posLoad({ preLoadData, promises }) {
return {
preLoadData,
promises,
};
}
}