feat: Add CS3D WSI and Video Viewports and add annotation navigation for MPR (#4182)
This commit is contained in:
1 parent
b12e0211d4
commit
7599ec9421
65 files changed
+781
-513
No files matched your search
@@ -389,6 +389,7 @@ class MetadataProvider {
|
||||
case WADO_IMAGE_LOADER_TAGS.CINE_MODULE:
|
||||
metadata = {
|
||||
frameTime: instance.FrameTime,
|
||||
numberOfFrames: instance.NumberOfFrames ? Number(instance.NumberOfFrames) : 1,
|
||||
};
|
||||
|
||||
break;
|
||||
|
||||
+5
-2
@@ -1,9 +1,12 @@
|
||||
interface IDisplaySet {
|
||||
type DisplaySet {
|
||||
displaySetInstanceUID: string;
|
||||
StudyInstanceUID: string;
|
||||
SeriesInstanceUID?: string;
|
||||
SeriesNumber?: string;
|
||||
unsupported?: boolean;
|
||||
viewportType?: string;
|
||||
instances: any[];
|
||||
instance?: any;
|
||||
}
|
||||
|
||||
export default IDisplaySet;
|
||||
export default DisplaySet;
|
||||
@@ -131,7 +131,7 @@ export default class DisplaySetService extends PubSubService {
|
||||
: [...this.getDisplaySetCache().values()];
|
||||
|
||||
const displaySet = displaySets.find(ds => {
|
||||
return ds.images && ds.images.some(i => i.SOPInstanceUID === sopInstanceUID);
|
||||
return ds.instances?.some(i => i.SOPInstanceUID === sopInstanceUID);
|
||||
});
|
||||
|
||||
return displaySet;
|
||||
|
||||
@@ -4,7 +4,7 @@ import { PubSubService } from '../_shared/pubSubServiceInterface';
|
||||
import sortBy from '../../utils/sortBy';
|
||||
import ProtocolEngine from './ProtocolEngine';
|
||||
import { StudyMetadata } from '../../types/StudyMetadata';
|
||||
import IDisplaySet from '../DisplaySetService/IDisplaySet';
|
||||
import DisplaySet from '../DisplaySetService/DisplaySet';
|
||||
import { CommandsManager } from '../../classes';
|
||||
import * as HangingProtocol from '../../types/HangingProtocol';
|
||||
import { isDisplaySetFromUrl, sopInstanceLocation } from './custom-attribute/isDisplaySetFromUrl';
|
||||
@@ -62,7 +62,7 @@ export default class HangingProtocolService extends PubSubService {
|
||||
_servicesManager: AppTypes.ServicesManager;
|
||||
protocolEngine: ProtocolEngine;
|
||||
customViewportSettings = [];
|
||||
displaySets: IDisplaySet[] = [];
|
||||
displaySets: DisplaySet[] = [];
|
||||
activeStudy: StudyMetadata;
|
||||
debugLogging: false;
|
||||
|
||||
@@ -1126,10 +1126,7 @@ export default class HangingProtocolService extends PubSubService {
|
||||
* to match display sets to viewports.
|
||||
* @returns a display set sort function
|
||||
*/
|
||||
public getDisplaySetSortFunction(): (
|
||||
displaySetA: IDisplaySet,
|
||||
displaySetB: IDisplaySet
|
||||
) => number {
|
||||
public getDisplaySetSortFunction(): (displaySetA: DisplaySet, displaySetB: DisplaySet) => number {
|
||||
return (displaySetA, displaySetB) => {
|
||||
const seriesA = this._getSeriesSortInfoForDisplaySetSort(displaySetA);
|
||||
const seriesB = this._getSeriesSortInfoForDisplaySetSort(displaySetB);
|
||||
|
||||
@@ -7,6 +7,7 @@ import type {
|
||||
BaseDataSourceConfigurationAPI,
|
||||
BaseDataSourceConfigurationAPIItem,
|
||||
} from './DataSourceConfigurationAPI';
|
||||
import type DisplaySet from '../services/DisplaySetService/DisplaySet';
|
||||
|
||||
export type * from '../services/ViewportGridService';
|
||||
export type * from '../services/CustomizationService/types';
|
||||
@@ -31,4 +32,5 @@ export {
|
||||
DataSourceDefinition,
|
||||
BaseDataSourceConfigurationAPI,
|
||||
BaseDataSourceConfigurationAPIItem,
|
||||
DisplaySet,
|
||||
};
|
||||
@@ -22,6 +22,7 @@ describe('Top level exports', () => {
|
||||
'imageIdToURI',
|
||||
'roundNumber',
|
||||
'b64toBlob',
|
||||
'sopClassDictionary',
|
||||
'createStudyBrowserTabs',
|
||||
'formatDate',
|
||||
'formatTime',
|
||||
|
||||
@@ -39,6 +39,7 @@ import {
|
||||
import { subscribeToNextViewportGridChange } from './subscribeToNextViewportGridChange';
|
||||
import { splitComma, getSplitParam } from './splitComma';
|
||||
import { createStudyBrowserTabs } from './createStudyBrowserTabs';
|
||||
import { sopClassDictionary } from './sopClassDictionary';
|
||||
|
||||
// Commented out unused functionality.
|
||||
// Need to implement new mechanism for derived displaySets using the displaySetManager.
|
||||
@@ -69,6 +70,7 @@ const utils = {
|
||||
Queue,
|
||||
isDicomUid,
|
||||
isEqualWithin,
|
||||
sopClassDictionary,
|
||||
addAccessors,
|
||||
resolveObjectPath,
|
||||
hierarchicalListUtils,
|
||||
|
||||
@@ -26,6 +26,8 @@ function seriesInfoSortingCriteria(firstSeries, secondSeries) {
|
||||
const bLowPriority = isLowPriorityModality(secondSeries.Modality ?? secondSeries.modality);
|
||||
|
||||
if (aLowPriority) {
|
||||
// Use the reverse sort order for low priority modalities so that the
|
||||
// most recent one comes up first as usually that is the one of interest.
|
||||
return bLowPriority ? defaultSeriesSort(secondSeries, firstSeries) : 1;
|
||||
} else if (bLowPriority) {
|
||||
return -1;
|
||||
|
||||
Reference in new issue
Block a user