feat(segmentation mode): Add create, and export SEG with Brushes (#3632)
This commit is contained in:
1 parent
896866e9d0
commit
48bbd6281a
186 files changed
+6801
-2883
No files matched your search
+11
-5
@@ -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) {
|
||||
|
||||
+6
@@ -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: {
|
||||
|
||||
+22
-12
@@ -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
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user