feat(segmentation mode): Add create, and export SEG with Brushes (#3632)

This commit is contained in:
Alireza authored and GitHub committed 2023-09-22 10:23:44 -04:00
1 parent 896866e9d0
commit 48bbd6281a
186 files changed
+6801 -2883

No files matched your search

@@ -35,7 +35,7 @@ function TrackedMeasurementsContextProvider(
const machineOptions = Object.assign({}, defaultOptions);
machineOptions.actions = Object.assign({}, machineOptions.actions, {
jumpToFirstMeasurementInActiveViewport: (ctx, evt) => {
const { trackedStudy, trackedSeries } = ctx;
const { trackedStudy, trackedSeries, activeViewportId } = ctx;
const measurements = measurementService.getMeasurements();
const trackedMeasurements = measurements.filter(
m => trackedStudy === m.referenceStudyUID && trackedSeries.includes(m.referenceSeriesUID)
@@ -43,7 +43,7 @@ function TrackedMeasurementsContextProvider(
console.log(
'jumping to measurement reset viewport',
viewportGrid.activeViewportId,
activeViewportId,
trackedMeasurements[0]
);
@@ -71,7 +71,7 @@ function TrackedMeasurementsContextProvider(
}
viewportGridService.setDisplaySetsForViewport({
viewportId: viewportGrid.activeViewportId,
viewportId: activeViewportId,
displaySetInstanceUIDs: [referencedDisplaySetUID],
viewportOptions: {
initialImageOptions: {
@@ -82,8 +82,7 @@ function TrackedMeasurementsContextProvider(
},
showStructuredReportDisplaySetInActiveViewport: (ctx, evt) => {
if (evt.data.createdDisplaySetInstanceUIDs.length > 0) {
const StructuredReportDisplaySetInstanceUID =
evt.data.createdDisplaySetInstanceUIDs[0].displaySetInstanceUID;
const StructuredReportDisplaySetInstanceUID = evt.data.createdDisplaySetInstanceUIDs[0];
viewportGridService.setDisplaySetsForViewport({
viewportId: evt.data.viewportId,
@@ -160,6 +159,13 @@ function TrackedMeasurementsContextProvider(
measurementTrackingMachine
);
useEffect(() => {
// Update the state machine with the active viewport ID
sendTrackedMeasurementsEvent('UPDATE_ACTIVE_VIEWPORT_ID', {
activeViewportId,
});
}, [activeViewportId, sendTrackedMeasurementsEvent]);
// ~~ Listen for changes to ViewportGrid for potential SRs hung in panes when idle
useEffect(() => {
if (viewports.size > 0) {
@@ -15,6 +15,7 @@ const machineConfiguration = {
id: 'measurementTracking',
initial: 'idle',
context: {
activeViewportId: null,
trackedStudy: '',
trackedSeries: [],
ignoredSeries: [],
@@ -47,6 +48,11 @@ const machineConfiguration = {
},
RESTORE_PROMPT_HYDRATE_SR: 'promptHydrateStructuredReport',
HYDRATE_SR: 'hydrateStructuredReport',
UPDATE_ACTIVE_VIEWPORT_ID: {
actions: assign({
activeViewportId: (_, event) => event.activeViewportId,
}),
},
},
},
promptBeginTracking: {
@@ -1,5 +1,4 @@
import createReportAsync from './../../_shared/createReportAsync';
import createReportDialogPrompt from '../../_shared/createReportDialogPrompt';
import { createReportAsync, createReportDialogPrompt } from '@ohif/extension-default';
import getNextSRSeriesNumber from '../../_shared/getNextSRSeriesNumber';
import RESPONSE from '../../_shared/PROMPT_RESPONSES';
@@ -15,7 +14,9 @@ function promptSaveReport({ servicesManager, commandsManager, extensionManager }
return new Promise(async function (resolve, reject) {
// TODO: Fallback if (uiDialogService) {
const promptResult = await createReportDialogPrompt(uiDialogService);
const promptResult = await createReportDialogPrompt(uiDialogService, {
extensionManager,
});
if (promptResult.action === RESPONSE.CREATE_REPORT) {
const dataSources = extensionManager.getDataSources();
@@ -33,16 +34,25 @@ function promptSaveReport({ servicesManager, commandsManager, extensionManager }
const SeriesNumber = getNextSRSeriesNumber(displaySetService);
displaySetInstanceUIDs = await createReportAsync(
const getReport = async () => {
return commandsManager.runCommand(
'storeMeasurements',
{
measurementData: trackedMeasurements,
dataSource,
additionalFindingTypes: ['ArrowAnnotate'],
options: {
SeriesDescription,
SeriesNumber,
},
},
'CORNERSTONE_STRUCTURED_REPORT'
);
};
displaySetInstanceUIDs = await createReportAsync({
servicesManager,
commandsManager,
dataSource,
trackedMeasurements,
{
SeriesDescription,
SeriesNumber,
}
);
getReport,
});
} else if (promptResult.action === RESPONSE.CANCEL) {
// Do nothing
}