fix(SR): KO series being displayed in browser list (#3382)
* fix: KO series being displayed in browser list * fix sr for volume viewports * move highlight labelmap to RAF * remove commented code * fix the hydration bug for the SR * apply review comments * revert the key images for sr * Remove some obsolete changes * set initial image for sr instead of jump * Remove viewportType stack --------- Co-authored-by: Alireza <ar.sedghi@gmail.com>
This commit is contained in:
1 parent
4172d0427b
commit
d5c5951e57
20 files changed
+243
-223
No files matched your search
+38
-11
@@ -31,12 +31,11 @@ function TrackedMeasurementsContextProvider(
|
||||
) {
|
||||
const [viewportGrid, viewportGridService] = useViewportGrid();
|
||||
const { activeViewportIndex, viewports } = viewportGrid;
|
||||
const { measurementService, displaySetService } = servicesManager.services;
|
||||
|
||||
const machineOptions = Object.assign({}, defaultOptions);
|
||||
machineOptions.actions = Object.assign({}, machineOptions.actions, {
|
||||
jumpToFirstMeasurementInActiveViewport: (ctx, evt) => {
|
||||
const { measurementService } = servicesManager.services;
|
||||
|
||||
const { trackedStudy, trackedSeries } = ctx;
|
||||
const measurements = measurementService.getMeasurements();
|
||||
const trackedMeasurements = measurements.filter(
|
||||
@@ -45,21 +44,51 @@ function TrackedMeasurementsContextProvider(
|
||||
trackedSeries.includes(m.referenceSeriesUID)
|
||||
);
|
||||
|
||||
const uid = trackedMeasurements[0].uid;
|
||||
|
||||
console.log(
|
||||
'jumping to measurement reset viewport',
|
||||
viewportGrid.activeViewportIndex,
|
||||
trackedMeasurements[0]
|
||||
);
|
||||
|
||||
const referencedDisplaySetUID =
|
||||
trackedMeasurements[0].displaySetInstanceUID;
|
||||
const referencedDisplaySet = displaySetService.getDisplaySetByUID(
|
||||
referencedDisplaySetUID
|
||||
);
|
||||
|
||||
const referencedImages = referencedDisplaySet.images;
|
||||
const isVolumeIdReferenced = referencedImages[0].imageId.startsWith(
|
||||
'volumeId'
|
||||
);
|
||||
|
||||
const measurementData = trackedMeasurements[0].data;
|
||||
|
||||
let imageIndex = 0;
|
||||
if (!isVolumeIdReferenced && measurementData) {
|
||||
// if it is imageId referenced find the index of the imageId, we don't have
|
||||
// support for volumeId referenced images yet
|
||||
imageIndex = referencedImages.findIndex(image => {
|
||||
const imageIdToUse = Object.keys(measurementData)[0].substring(8);
|
||||
return image.imageId === imageIdToUse;
|
||||
});
|
||||
|
||||
if (imageIndex === -1) {
|
||||
console.warn(
|
||||
'Could not find image index for tracked measurement, using 0'
|
||||
);
|
||||
imageIndex = 0;
|
||||
}
|
||||
}
|
||||
|
||||
viewportGridService.setDisplaySetsForViewport({
|
||||
viewportIndex: viewportGrid.activeViewportIndex,
|
||||
displaySetInstanceUIDs: [trackedMeasurements[0].displaySetInstanceUID],
|
||||
displaySetInstanceUIDs: [referencedDisplaySetUID],
|
||||
viewportOptions: {
|
||||
initialImageOptions: {
|
||||
index: imageIndex,
|
||||
},
|
||||
},
|
||||
});
|
||||
measurementService.jumpToMeasurement(
|
||||
viewportGrid.activeViewportIndex,
|
||||
uid
|
||||
);
|
||||
},
|
||||
showStructuredReportDisplaySetInActiveViewport: (ctx, evt) => {
|
||||
if (evt.data.createdDisplaySetInstanceUIDs.length > 0) {
|
||||
@@ -73,7 +102,6 @@ function TrackedMeasurementsContextProvider(
|
||||
}
|
||||
},
|
||||
discardPreviouslyTrackedMeasurements: (ctx, evt) => {
|
||||
const { measurementService } = servicesManager.services;
|
||||
const measurements = measurementService.getMeasurements();
|
||||
const filteredMeasurements = measurements.filter(ms =>
|
||||
ctx.prevTrackedSeries.includes(ms.referenceSeriesUID)
|
||||
@@ -85,7 +113,6 @@ function TrackedMeasurementsContextProvider(
|
||||
}
|
||||
},
|
||||
clearAllMeasurements: (ctx, evt) => {
|
||||
const { measurementService } = servicesManager.services;
|
||||
const measurements = measurementService.getMeasurements();
|
||||
const measurementIds = measurements.map(fm => fm.uid);
|
||||
|
||||
|
||||
Reference in new issue
Block a user