fix(segmentation): Various fixes for segmentation mode and other (#3709)
This commit is contained in:
parent
f8455056cd
commit
a9a6ad50ea
@ -130,7 +130,7 @@ class SegmentationService extends PubSubService {
|
|||||||
throw new Error('Segment index 0 is reserved for "no label"');
|
throw new Error('Segment index 0 is reserved for "no label"');
|
||||||
}
|
}
|
||||||
|
|
||||||
const toolGroupId = config.toolGroupId ?? this._getFirstToolGroupId();
|
const toolGroupId = config.toolGroupId ?? this._getApplicableToolGroupId();
|
||||||
|
|
||||||
const { segmentationRepresentationUID, segmentation } = this._getSegmentationInfo(
|
const { segmentationRepresentationUID, segmentation } = this._getSegmentationInfo(
|
||||||
segmentationId,
|
segmentationId,
|
||||||
@ -361,7 +361,7 @@ class SegmentationService extends PubSubService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public setActiveSegmentationForToolGroup(segmentationId: string, toolGroupId?: string): void {
|
public setActiveSegmentationForToolGroup(segmentationId: string, toolGroupId?: string): void {
|
||||||
toolGroupId = toolGroupId ?? this._getFirstToolGroupId();
|
toolGroupId = toolGroupId ?? this._getApplicableToolGroupId();
|
||||||
|
|
||||||
const suppressEvents = false;
|
const suppressEvents = false;
|
||||||
this._setActiveSegmentationForToolGroup(segmentationId, toolGroupId, suppressEvents);
|
this._setActiveSegmentationForToolGroup(segmentationId, toolGroupId, suppressEvents);
|
||||||
@ -912,7 +912,7 @@ class SegmentationService extends PubSubService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const segmentation = this.getSegmentation(segmentationId);
|
const segmentation = this.getSegmentation(segmentationId);
|
||||||
toolGroupId = toolGroupId ?? this._getFirstToolGroupId();
|
toolGroupId = toolGroupId ?? this._getApplicableToolGroupId();
|
||||||
|
|
||||||
const segmentationRepresentation = this._getSegmentationRepresentation(
|
const segmentationRepresentation = this._getSegmentationRepresentation(
|
||||||
segmentationId,
|
segmentationId,
|
||||||
@ -1313,7 +1313,7 @@ class SegmentationService extends PubSubService {
|
|||||||
if (remainingHydratedSegmentations.length) {
|
if (remainingHydratedSegmentations.length) {
|
||||||
const { id } = remainingHydratedSegmentations[0];
|
const { id } = remainingHydratedSegmentations[0];
|
||||||
|
|
||||||
this._setActiveSegmentationForToolGroup(id, this._getFirstToolGroupId(), false);
|
this._setActiveSegmentationForToolGroup(id, this._getApplicableToolGroupId(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1325,7 +1325,7 @@ class SegmentationService extends PubSubService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public getConfiguration = (toolGroupId?: string): SegmentationConfig => {
|
public getConfiguration = (toolGroupId?: string): SegmentationConfig => {
|
||||||
toolGroupId = toolGroupId ?? this._getFirstToolGroupId();
|
toolGroupId = toolGroupId ?? this._getApplicableToolGroupId();
|
||||||
|
|
||||||
const brushSize = 1;
|
const brushSize = 1;
|
||||||
// const brushSize = cstUtils.segmentation.getBrushSizeForToolGroup(
|
// const brushSize = cstUtils.segmentation.getBrushSizeForToolGroup(
|
||||||
@ -1620,7 +1620,7 @@ class SegmentationService extends PubSubService {
|
|||||||
throw new Error(`Segment ${segmentIndex} not yet added to segmentation: ${segmentationId}`);
|
throw new Error(`Segment ${segmentIndex} not yet added to segmentation: ${segmentationId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
toolGroupId = toolGroupId ?? this._getFirstToolGroupId();
|
toolGroupId = toolGroupId ?? this._getApplicableToolGroupId();
|
||||||
|
|
||||||
const segmentationRepresentation = this._getSegmentationRepresentation(
|
const segmentationRepresentation = this._getSegmentationRepresentation(
|
||||||
segmentationId,
|
segmentationId,
|
||||||
@ -1714,7 +1714,7 @@ class SegmentationService extends PubSubService {
|
|||||||
toolGroupId?: string,
|
toolGroupId?: string,
|
||||||
suppressEvents = false
|
suppressEvents = false
|
||||||
) {
|
) {
|
||||||
toolGroupId = toolGroupId ?? this._getFirstToolGroupId();
|
toolGroupId = toolGroupId ?? this._getApplicableToolGroupId();
|
||||||
|
|
||||||
const { segmentationRepresentationUID, segmentation } = this._getSegmentationInfo(
|
const { segmentationRepresentationUID, segmentation } = this._getSegmentationInfo(
|
||||||
segmentationId,
|
segmentationId,
|
||||||
@ -1773,7 +1773,7 @@ class SegmentationService extends PubSubService {
|
|||||||
throw new Error(`Segment ${segmentIndex} not yet added to segmentation: ${segmentationId}`);
|
throw new Error(`Segment ${segmentIndex} not yet added to segmentation: ${segmentationId}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
toolGroupId = toolGroupId ?? this._getFirstToolGroupId();
|
toolGroupId = toolGroupId ?? this._getApplicableToolGroupId();
|
||||||
|
|
||||||
const segmentationRepresentation = this._getSegmentationRepresentation(
|
const segmentationRepresentation = this._getSegmentationRepresentation(
|
||||||
segmentationId,
|
segmentationId,
|
||||||
@ -2090,11 +2090,21 @@ class SegmentationService extends PubSubService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private _getFirstToolGroupId = () => {
|
private _getApplicableToolGroupId = () => {
|
||||||
const { toolGroupService } = this.servicesManager.services;
|
const { toolGroupService, viewportGridService, cornerstoneViewportService } =
|
||||||
|
this.servicesManager.services;
|
||||||
|
|
||||||
|
const viewportInfo = cornerstoneViewportService.getViewportInfo(
|
||||||
|
viewportGridService.getActiveViewportId()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!viewportInfo) {
|
||||||
const toolGroupIds = toolGroupService.getToolGroupIds();
|
const toolGroupIds = toolGroupService.getToolGroupIds();
|
||||||
|
|
||||||
return toolGroupIds[0];
|
return toolGroupIds[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return viewportInfo.getToolGroupId();
|
||||||
};
|
};
|
||||||
|
|
||||||
private getNextColorLUTIndex = (): number => {
|
private getNextColorLUTIndex = (): number => {
|
||||||
|
|||||||
@ -165,20 +165,6 @@ const toolbarButtons = [
|
|||||||
],
|
],
|
||||||
'Ellipse Tool'
|
'Ellipse Tool'
|
||||||
),
|
),
|
||||||
_createToolButton(
|
|
||||||
'CircleROI',
|
|
||||||
'tool-circle',
|
|
||||||
'Circle',
|
|
||||||
[
|
|
||||||
..._createCommands('setToolActive', 'CircleROI', [
|
|
||||||
toolGroupIds.CT,
|
|
||||||
toolGroupIds.PT,
|
|
||||||
toolGroupIds.Fusion,
|
|
||||||
// toolGroupIds.MPR,
|
|
||||||
]),
|
|
||||||
],
|
|
||||||
'Circle Tool'
|
|
||||||
),
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@ -26,7 +26,7 @@ function createStudyMetadata(StudyInstanceUID) {
|
|||||||
let series = this.series.find(s => s.SeriesInstanceUID === SeriesInstanceUID);
|
let series = this.series.find(s => s.SeriesInstanceUID === SeriesInstanceUID);
|
||||||
|
|
||||||
if (!series) {
|
if (!series) {
|
||||||
const series = createSeriesMetadata(SeriesInstanceUID);
|
series = createSeriesMetadata(SeriesInstanceUID);
|
||||||
this.series.push(series);
|
this.series.push(series);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -18,6 +18,11 @@ Google Cloud Healthcare data source.
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
:::tip
|
||||||
|
A datasource root URI can be [fully or partially specified](../../deployment/google-cloud-healthcare.md#configuring-google-cloud-healthcare-as-a-datasource-in-ohif)
|
||||||
|
in the OHIF configuration file.
|
||||||
|
:::
|
||||||
|
|
||||||
## `BaseDataSourceConfigurationAPIItem` interface
|
## `BaseDataSourceConfigurationAPIItem` interface
|
||||||
|
|
||||||
Each (path) item of a data source is represented by an instance of this interface.
|
Each (path) item of a data source is represented by an instance of this interface.
|
||||||
|
|||||||
@ -128,3 +128,12 @@ cd OHIFViewer
|
|||||||
yarn install
|
yarn install
|
||||||
APP_CONFIG=config/google.js yarn run dev
|
APP_CONFIG=config/google.js yarn run dev
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Configuring Google Cloud Healthcare as a datasource in OHIF
|
||||||
|
|
||||||
|
A Google Cloud Healthcare DICOM store can be configured as a DICOMweb datasource
|
||||||
|
in OHIF. A full or partial path is permitted in the configuration file. For
|
||||||
|
partial paths, the [data source configuration UI](../configuration/dataSources/configuration-ui.md)
|
||||||
|
will assist in filling in the missing pieces. For example, a configuration with
|
||||||
|
empty `wadoUriRoot`, `qidoRoot` and `wadoRoot` will prompt for the entire path
|
||||||
|
step-by-step starting with the project.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user