Compare commits

..
Author SHA1 Message Date
ohif-bot fe9551b9b1 chore(release): publish [skip ci]
- @ohif/extension-dicom-rt@0.7.12
 - @ohif/extension-dicom-segmentation@0.7.12
 - @ohif/extension-vtk@1.12.29
 - @ohif/core@2.16.24
 - @ohif/viewer@4.12.33
2022-08-31 12:59:14 +00:00
Davide Punzo ef60156a47 Fix minor issues IDC (#2903) 2022-08-31 14:57:14 +02:00
ohif-bot 850de2903a chore(release): publish [skip ci]
- @ohif/viewer@4.12.32
2022-08-25 09:50:05 +00:00
Davide Punzo f26ed5539b IDC2859 (#2891)
* Re #2859 IDC: disable jump to for measurements in MPR mode
2022-08-25 11:48:20 +02:00
ohif-bot 21aeaa63c7 chore(release): publish [skip ci]
- @ohif/extension-vtk@1.12.28
 - @ohif/core@2.16.23
 - @ohif/ui@1.10.10
 - @ohif/viewer@4.12.31
2022-08-24 10:38:46 +00:00
Davide Punzo 2ac0d3f017 Re #2852 IDC: fix parsing of qualitative slice annotation (#2888) 2022-08-24 12:37:21 +02:00
22 changed files with 147 additions and 34 deletions

No files matched your search

+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.7.12](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-rt@0.7.11...@ohif/extension-dicom-rt@0.7.12) (2022-08-31)
**Note:** Version bump only for package @ohif/extension-dicom-rt
## [0.7.11](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-rt@0.7.10...@ohif/extension-dicom-rt@0.7.11) (2022-04-05) ## [0.7.11](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-rt@0.7.10...@ohif/extension-dicom-rt@0.7.11) (2022-04-05)
**Note:** Version bump only for package @ohif/extension-dicom-rt **Note:** Version bump only for package @ohif/extension-dicom-rt
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@ohif/extension-dicom-rt", "name": "@ohif/extension-dicom-rt",
"version": "0.7.11", "version": "0.7.12",
"description": "OHIF extension for rendering DICOM RTSTRUCTs on top of cornerstone images.", "description": "OHIF extension for rendering DICOM RTSTRUCTs on top of cornerstone images.",
"author": "OHIF", "author": "OHIF",
"license": "MIT", "license": "MIT",
@@ -1,4 +1,4 @@
import React, { useState, useEffect, useCallback } from 'react'; import React, { useState, useEffect } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import cornerstoneTools from 'cornerstone-tools'; import cornerstoneTools from 'cornerstone-tools';
import cornerstone from 'cornerstone-core'; import cornerstone from 'cornerstone-core';
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.7.12](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.11...@ohif/extension-dicom-segmentation@0.7.12) (2022-08-31)
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
## [0.7.11](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.10...@ohif/extension-dicom-segmentation@0.7.11) (2022-04-05) ## [0.7.11](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.10...@ohif/extension-dicom-segmentation@0.7.11) (2022-04-05)
**Note:** Version bump only for package @ohif/extension-dicom-segmentation **Note:** Version bump only for package @ohif/extension-dicom-segmentation
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@ohif/extension-dicom-segmentation", "name": "@ohif/extension-dicom-segmentation",
"version": "0.7.11", "version": "0.7.12",
"description": "OHIF extension for viewing segmentations in the 2D MPR view", "description": "OHIF extension for viewing segmentations in the 2D MPR view",
"author": "OHIF", "author": "OHIF",
"license": "MIT", "license": "MIT",
@@ -1,4 +1,4 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect, useCallback } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import cornerstoneTools from 'cornerstone-tools'; import cornerstoneTools from 'cornerstone-tools';
import cornerstone from 'cornerstone-core'; import cornerstone from 'cornerstone-core';
@@ -224,10 +224,7 @@ const SegmentationPanel = ({
) )
); );
}; };
}, [ }, [activeIndex, viewports]);
activeIndex,
viewports,
]);
const updateSegmentationComboBox = e => { const updateSegmentationComboBox = e => {
const index = e.detail.activatedLabelmapIndex; const index = e.detail.activatedLabelmapIndex;
@@ -694,7 +691,7 @@ const SegmentationPanel = ({
count={state.segmentList.length} count={state.segmentList.length}
isVisible={ isVisible={
state.segmentsHidden.filter(isHidden => isHidden === true).length < state.segmentsHidden.filter(isHidden => isHidden === true).length <
state.segmentNumbers.length && state.segmentNumbers.length > 0 state.segmentNumbers.length && state.segmentNumbers.length > 0
} }
onVisibilityChange={onVisibilityChangeHandler} onVisibilityChange={onVisibilityChangeHandler}
> >
+16
View File
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.12.29](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.28...@ohif/extension-vtk@1.12.29) (2022-08-31)
**Note:** Version bump only for package @ohif/extension-vtk
## [1.12.28](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.27...@ohif/extension-vtk@1.12.28) (2022-08-24)
**Note:** Version bump only for package @ohif/extension-vtk
## [1.12.27](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.26...@ohif/extension-vtk@1.12.27) (2022-06-30) ## [1.12.27](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.26...@ohif/extension-vtk@1.12.27) (2022-06-30)
**Note:** Version bump only for package @ohif/extension-vtk **Note:** Version bump only for package @ohif/extension-vtk
+3 -3
View File
@@ -1,6 +1,6 @@
{ {
"name": "@ohif/extension-vtk", "name": "@ohif/extension-vtk",
"version": "1.12.27", "version": "1.12.29",
"description": "OHIF extension for VTK.js", "description": "OHIF extension for VTK.js",
"author": "OHIF", "author": "OHIF",
"license": "MIT", "license": "MIT",
@@ -53,8 +53,8 @@
"react-vtkjs-viewport": "^0.14.4" "react-vtkjs-viewport": "^0.14.4"
}, },
"devDependencies": { "devDependencies": {
"@ohif/core": "^2.16.22", "@ohif/core": "^2.16.24",
"@ohif/ui": "^1.10.9", "@ohif/ui": "^1.10.10",
"cornerstone-tools": "^6.0.6", "cornerstone-tools": "^6.0.6",
"cornerstone-wado-image-loader": "^4.1.0", "cornerstone-wado-image-loader": "^4.1.0",
"dicom-parser": "^1.8.11", "dicom-parser": "^1.8.11",
+16
View File
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [2.16.24](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.23...@ohif/core@2.16.24) (2022-08-31)
**Note:** Version bump only for package @ohif/core
## [2.16.23](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.22...@ohif/core@2.16.23) (2022-08-24)
**Note:** Version bump only for package @ohif/core
## [2.16.22](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.21...@ohif/core@2.16.22) (2022-06-30) ## [2.16.22](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.21...@ohif/core@2.16.22) (2022-06-30)
**Note:** Version bump only for package @ohif/core **Note:** Version bump only for package @ohif/core
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@ohif/core", "name": "@ohif/core",
"version": "2.16.22", "version": "2.16.24",
"description": "Generic business logic for web-based medical imaging applications", "description": "Generic business logic for web-based medical imaging applications",
"author": "OHIF Core Team", "author": "OHIF Core Team",
"license": "MIT", "license": "MIT",
@@ -8,6 +8,17 @@ const parseSCOORD3D = ({ servicesManager, displaySets }) => {
const { MeasurementService } = servicesManager.services; const { MeasurementService } = servicesManager.services;
const srDisplaySets = displaySets.filter(ds => ds.Modality === 'SR'); const srDisplaySets = displaySets.filter(ds => ds.Modality === 'SR');
const imageDisplaySets = displaySets.filter(
ds =>
ds.Modality !== 'SR' &&
ds.Modality !== 'SEG' &&
ds.Modality !== 'RTSTRUCT' &&
ds.Modality !== 'RTDOSE'
);
imageDisplaySets.forEach(imageDisplaySet => {
imageDisplaySet.SRLabels = [];
});
srDisplaySets.forEach(srDisplaySet => { srDisplaySets.forEach(srDisplaySet => {
const firstInstance = srDisplaySet.metadata; const firstInstance = srDisplaySet.metadata;
@@ -28,13 +39,6 @@ const parseSCOORD3D = ({ servicesManager, displaySets }) => {
srDisplaySet.isRehydratable = isRehydratable(srDisplaySet, mappings); srDisplaySet.isRehydratable = isRehydratable(srDisplaySet, mappings);
srDisplaySet.isLoaded = true; srDisplaySet.isLoaded = true;
const imageDisplaySets = displaySets.filter(
ds =>
ds.Modality !== 'SR' &&
ds.Modality !== 'SEG' &&
ds.Modality !== 'RTSTRUCT' &&
ds.Modality !== 'RTDOSE'
);
imageDisplaySets.forEach(imageDisplaySet => { imageDisplaySets.forEach(imageDisplaySet => {
// Check currently added displaySets and add measurements if the sources exist. // Check currently added displaySets and add measurements if the sources exist.
checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, imageDisplaySet); checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, imageDisplaySet);
@@ -127,7 +131,6 @@ const checkIfCanAddMeasurementsToDisplaySet = (
const imageIds = images.map(i => i.getImageId()); const imageIds = images.map(i => i.getImageId());
const SOPInstanceUIDs = images.map(i => i.SOPInstanceUID); const SOPInstanceUIDs = images.map(i => i.SOPInstanceUID);
imageDisplaySet.SRLabels = [];
const colors = new Map(); const colors = new Map();
measurements.forEach(measurement => { measurements.forEach(measurement => {
const { coords } = measurement; const { coords } = measurement;
@@ -469,8 +469,8 @@ class StudyLoadingListener {
// TODO: Make this work for plugins // TODO: Make this work for plugins
if (!stack) { if (!stack) {
console.warn('Skipping adding displaySet to StudyLoadingListener'); //console.warn('Skipping adding displaySet to StudyLoadingListener');
console.warn(displaySet); //console.warn(displaySet);
return; return;
} }
@@ -350,6 +350,13 @@ class StudyMetadata extends Metadata {
referencedSeriesInstanceUID referencedSeriesInstanceUID
); );
} else { } else {
if (
!displaySet.referencedDisplaySets ||
displaySet.referencedDisplaySets.length === 0
) {
return false;
}
const filteredReferencedDisplaySets = displaySet.referencedDisplaySets.filter( const filteredReferencedDisplaySets = displaySet.referencedDisplaySets.filter(
referencedDisplaySet => referencedDisplaySet =>
referencedDisplaySet.SeriesInstanceUID === referencedDisplaySet.SeriesInstanceUID ===
@@ -420,6 +420,10 @@ class MeasurementService {
throw new Error('No source definition provided.'); throw new Error('No source definition provided.');
} }
if (definition == 'stack' || definition == 'stackPrefetch') {
return;
}
const sourceInfo = this._getSourceInfo(source); const sourceInfo = this._getSourceInfo(source);
if (!this._sourceHasMappings(source)) { if (!this._sourceHasMappings(source)) {
+2 -2
View File
@@ -25,7 +25,7 @@ function createAndAddStack(stackMap, study, displaySet, stackUpdatedCallbacks) {
const imageIds = []; const imageIds = [];
let imageId; let imageId;
displaySet.images.forEach((instance, imageIndex) => { images.forEach((instance, imageIndex) => {
const image = instance.getData(); const image = instance.getData();
const metaData = { const metaData = {
instance: image, // in this context, instance will be the data of the InstanceMetadata object... instance: image, // in this context, instance will be the data of the InstanceMetadata object...
@@ -35,7 +35,7 @@ function createAndAddStack(stackMap, study, displaySet, stackUpdatedCallbacks) {
imageIndex: imageIndex + 1, imageIndex: imageIndex + 1,
}; };
const naturalizedInstance = instance.getData().metadata; const naturalizedInstance = image.metadata;
const NumberOfFrames = naturalizedInstance.NumberOfFrames; const NumberOfFrames = naturalizedInstance.NumberOfFrames;
if (NumberOfFrames > 1) { if (NumberOfFrames > 1) {
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.10.10](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.10.9...@ohif/ui@1.10.10) (2022-08-24)
**Note:** Version bump only for package @ohif/ui
## [1.10.9](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.10.8...@ohif/ui@1.10.9) (2022-06-29) ## [1.10.9](https://github.com/OHIF/Viewers/compare/@ohif/ui@1.10.8...@ohif/ui@1.10.9) (2022-06-29)
**Note:** Version bump only for package @ohif/ui **Note:** Version bump only for package @ohif/ui
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@ohif/ui", "name": "@ohif/ui",
"version": "1.10.9", "version": "1.10.10",
"description": "A set of React components for Medical Imaging Viewers", "description": "A set of React components for Medical Imaging Viewers",
"author": "OHIF Contributors", "author": "OHIF Contributors",
"license": "MIT", "license": "MIT",
@@ -175,7 +175,9 @@ class MeasurementTableItem extends Component {
> >
<div> <div>
<div className="icons"> <div className="icons">
<span>{SRLabel.label + ' : ' + SRLabel.value}</span> <span style={{ width: '90px' }}>
{SRLabel.label + ' : ' + SRLabel.value}
</span>
<Icon <Icon
className={`eye-icon`} className={`eye-icon`}
name={SRLabel.visible ? 'eye' : 'eye-closed'} name={SRLabel.visible ? 'eye' : 'eye-closed'}
@@ -18,6 +18,7 @@ $headerRowHeight = 63px
.tableListHeaderTitle .tableListHeaderTitle
color: var(--text-secondary-color) color: var(--text-secondary-color)
max-width: 230px
font-size: 22px font-size: 22px
font-weight: 300 font-weight: 300
line-height: $headerRowHeight line-height: $headerRowHeight
+24
View File
@@ -3,6 +3,30 @@
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [4.12.33](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.32...@ohif/viewer@4.12.33) (2022-08-31)
**Note:** Version bump only for package @ohif/viewer
## [4.12.32](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.31...@ohif/viewer@4.12.32) (2022-08-25)
**Note:** Version bump only for package @ohif/viewer
## [4.12.31](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.30...@ohif/viewer@4.12.31) (2022-08-24)
**Note:** Version bump only for package @ohif/viewer
## [4.12.30](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.29...@ohif/viewer@4.12.30) (2022-06-30) ## [4.12.30](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.29...@ohif/viewer@4.12.30) (2022-06-30)
**Note:** Version bump only for package @ohif/viewer **Note:** Version bump only for package @ohif/viewer
+6 -6
View File
@@ -1,6 +1,6 @@
{ {
"name": "@ohif/viewer", "name": "@ohif/viewer",
"version": "4.12.30", "version": "4.12.33",
"description": "OHIF Viewer", "description": "OHIF Viewer",
"author": "OHIF Contributors", "author": "OHIF Contributors",
"license": "MIT", "license": "MIT",
@@ -47,18 +47,18 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.5.5", "@babel/runtime": "^7.5.5",
"@ohif/core": "^2.16.22", "@ohif/core": "^2.16.24",
"@ohif/extension-cornerstone": "^2.12.13", "@ohif/extension-cornerstone": "^2.12.13",
"@ohif/extension-debugging": "^0.3.3", "@ohif/extension-debugging": "^0.3.3",
"@ohif/extension-dicom-html": "^1.3.22", "@ohif/extension-dicom-html": "^1.3.22",
"@ohif/extension-dicom-microscopy": "^0.52.0", "@ohif/extension-dicom-microscopy": "^0.52.0",
"@ohif/extension-dicom-pdf": "^1.1.2", "@ohif/extension-dicom-pdf": "^1.1.2",
"@ohif/extension-dicom-rt": "^0.7.11", "@ohif/extension-dicom-rt": "^0.7.12",
"@ohif/extension-dicom-segmentation": "^0.7.11", "@ohif/extension-dicom-segmentation": "^0.7.12",
"@ohif/extension-lesion-tracker": "^0.2.2", "@ohif/extension-lesion-tracker": "^0.2.2",
"@ohif/extension-vtk": "^1.12.27", "@ohif/extension-vtk": "^1.12.29",
"@ohif/i18n": "^0.53.0", "@ohif/i18n": "^0.53.0",
"@ohif/ui": "^1.10.9", "@ohif/ui": "^1.10.10",
"@tanem/react-nprogress": "^1.1.25", "@tanem/react-nprogress": "^1.1.25",
"classnames": "^2.2.6", "classnames": "^2.2.6",
"core-js": "^3.2.1", "core-js": "^3.2.1",
@@ -1,5 +1,5 @@
import { measurements, utils } from '@ohif/core'; import { measurements, utils } from '@ohif/core';
import { servicesManager } from './../../App.js';
const { MeasurementApi } = measurements; const { MeasurementApi } = measurements;
const { studyMetadataManager } = utils; const { studyMetadataManager } = utils;
@@ -19,6 +19,25 @@ export default function jumpToRowItem(
timepointManagerState, timepointManagerState,
options = { invertViewportTimepointsOrder: false, childToolKey: null } options = { invertViewportTimepointsOrder: false, childToolKey: null }
) { ) {
const viewports = viewportsState.layout.viewports;
const activeViewportIndex = viewportsState.activeViewportIndex;
const activeViewport = viewports[activeViewportIndex];
if (activeViewport.vtk) {
const error = new Error('Measurements are not supported by the MPR mode.');
const { UINotificationService, LoggerService } = servicesManager.services;
LoggerService.error({ error, message: error.message });
UINotificationService.show({
title: 'Measurements panel',
message: error.message,
type: 'warning',
autoClose: true,
});
return {
viewportSpecificData: [],
layout: [], // TODO: if we need to change layout, we should return this here
};
}
const numViewports = viewportsState.layout.viewports.length; const numViewports = viewportsState.layout.viewports.length;
const numTimepoints = timepointManagerState.timepoints.length; const numTimepoints = timepointManagerState.timepoints.length;
const { measurements, timepoints } = timepointManagerState; const { measurements, timepoints } = timepointManagerState;