Compare commits

...
24 changed files with 201 additions and 80 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.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [2.12.13](https://github.com/OHIF/Viewers/compare/@ohif/extension-cornerstone@2.12.12...@ohif/extension-cornerstone@2.12.13) (2022-06-30)
**Note:** Version bump only for package @ohif/extension-cornerstone
## [2.12.12](https://github.com/OHIF/Viewers/compare/@ohif/extension-cornerstone@2.12.11...@ohif/extension-cornerstone@2.12.12) (2022-06-29)
**Note:** Version bump only for package @ohif/extension-cornerstone
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/extension-cornerstone",
"version": "2.12.12",
"version": "2.12.13",
"description": "OHIF extension for Cornerstone",
"author": "OHIF",
"license": "MIT",
@@ -45,7 +45,7 @@ class OHIFCornerstoneViewportOverlay extends PureComponent {
imageId: PropTypes.string.isRequired,
imageIndex: PropTypes.number.isRequired,
stackSize: PropTypes.number.isRequired,
inconsistencyWarnings: PropTypes.array.isRequired,
inconsistencyWarnings: PropTypes.array,
SRLabels: PropTypes.array,
};
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.3.3](https://github.com/OHIF/Viewers/compare/@ohif/extension-debugging@0.3.2...@ohif/extension-debugging@0.3.3) (2022-06-30)
**Note:** Version bump only for package @ohif/extension-debugging
## [0.3.2](https://github.com/OHIF/Viewers/compare/@ohif/extension-debugging@0.3.1...@ohif/extension-debugging@0.3.2) (2022-03-10)
**Note:** Version bump only for package @ohif/extension-debugging
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/extension-debugging",
"version": "0.3.2",
"version": "0.3.3",
"description": "OHIF extension for debugging.",
"author": "OHIF",
"license": "MIT",
+33 -48
View File
@@ -89,10 +89,10 @@ const DubugReportModal = ({
Object.keys(viewportSpecificData).forEach(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'SEG');
const [referencedDisplaySetsRef] = _getReferencedSeriesInstanceUIDsString(
displaySet,
'SEG'
);
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
@@ -106,10 +106,27 @@ const DubugReportModal = ({
Object.keys(viewportSpecificData).forEach(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'RTSTRUCT');
const [referencedDisplaySetsRef] = _getReferencedSeriesInstanceUIDsString(
displaySet,
'RTSTRUCT'
);
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
numColumns
);
body += `[${row},${column}]\t${referencedDisplaySetsRef}\n`;
});
body += '== ReferencedSRSeriesInstanceUIDs ==\n';
Object.keys(viewportSpecificData).forEach(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [referencedDisplaySetsRef] = _getReferencedSeriesInstanceUIDsString(
displaySet,
'SR'
);
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
@@ -261,11 +278,15 @@ const getLayout = viewports => {
<tr>
<th>ReferencedSEGSeriesInstanceUIDs</th>
</tr>
{getReferencedSEGSeriesInstanceUIDsPerRow(viewports)}
{getReferencedSeriesInstanceUIDsPerRow(viewports, 'SEG')}
<tr>
<th>ReferencedRTSTRUCTSeriesInstanceUIDs</th>
</tr>
{getReferencedRTSTRUCTSeriesInstanceUIDsPerRow(viewports)}
{getReferencedSeriesInstanceUIDsPerRow(viewports, 'RTSTRUCT')}
<tr>
<th>ReferencedSRSeriesInstanceUIDs</th>
</tr>
{getReferencedSeriesInstanceUIDsPerRow(viewports, 'SR')}
</React.Fragment>
);
};
@@ -351,7 +372,7 @@ const _getReferencedSeriesInstanceUIDsString = (displaySet, Modality) => {
return [referencedDisplaySetsRef, referencedDisplaySetsCount];
};
const getReferencedSEGSeriesInstanceUIDsPerRow = viewports => {
const getReferencedSeriesInstanceUIDsPerRow = (viewports, Modality) => {
const { viewportSpecificData, numColumns } = viewports;
// NOTE viewportSpecificData is actually an object with numerical keys.
@@ -360,43 +381,7 @@ const getReferencedSEGSeriesInstanceUIDsPerRow = viewports => {
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'SEG');
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
numColumns
);
if (referencedDisplaySetsCount > 1) {
return (
<tr>
<td>{`[${row},${column}]`}</td>
<td className="debug-overflowText-border">
{referencedDisplaySetsRef}
</td>
</tr>
);
} else {
return (
<tr>
<td>{`[${row},${column}]`}</td>
<td className="debug-overflowText">{referencedDisplaySetsRef}</td>
</tr>
);
}
});
};
const getReferencedRTSTRUCTSeriesInstanceUIDsPerRow = viewports => {
const { viewportSpecificData, numColumns } = viewports;
// NOTE viewportSpecificData is actually an object with numerical keys.
return Object.keys(viewportSpecificData).map(viewportIndex => {
const displaySet = viewportSpecificData[viewportIndex];
const [
referencedDisplaySetsRef,
referencedDisplaySetsCount,
] = _getReferencedSeriesInstanceUIDsString(displaySet, 'RTSTRUCT');
] = _getReferencedSeriesInstanceUIDsString(displaySet, Modality);
const [row, column] = _viewportIndexToViewportPosition(
viewportIndex,
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.3.22](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-html@1.3.21...@ohif/extension-dicom-html@1.3.22) (2022-06-30)
**Note:** Version bump only for package @ohif/extension-dicom-html
## [1.3.21](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-html@1.3.20...@ohif/extension-dicom-html@1.3.21) (2022-04-05)
**Note:** Version bump only for package @ohif/extension-dicom-html
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/extension-dicom-html",
"version": "1.3.21",
"version": "1.3.22",
"description": "OHIF extension for rendering structured reports to HTML",
"author": "OHIF",
"license": "MIT",
@@ -1,4 +1,4 @@
import { MODULE_TYPES, utils } from '@ohif/core';
import { MODULE_TYPES, utils, metadata } from '@ohif/core';
// TODO: Should probably use dcmjs for this
const SOP_CLASS_UIDS = {
@@ -10,7 +10,7 @@ const SOP_CLASS_UIDS = {
MAMMOGRAPHY_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.50',
CHEST_CAD_SR: '1.2.840.10008.5.1.4.1.1.88.65',
X_RAY_RADIATION_DOSE_SR: '1.2.840.10008.5.1.4.1.1.88.67',
ACQUISITION_CONTEXT_SR_STORAGE: '1.2.840.10008.5.1.4.1.1.88.71'
ACQUISITION_CONTEXT_SR_STORAGE: '1.2.840.10008.5.1.4.1.1.88.71',
};
const sopClassUIDs = Object.values(SOP_CLASS_UIDS);
@@ -32,7 +32,7 @@ const OHIFDicomHtmlSopClassHandler = {
SeriesTime,
} = metadata;
return {
const srDisplaySet = {
plugin: 'html',
Modality: 'SR',
displaySetInstanceUID: utils.guid(),
@@ -49,7 +49,15 @@ const OHIFDicomHtmlSopClassHandler = {
authorizationHeaders,
sopClassUids: sopClassUIDs,
images: series._instances,
isDerived: true,
referencedDisplaySets: [],
};
srDisplaySet.getSourceDisplaySet = function() {
return srDisplaySet.referencedDisplaySets;
};
return srDisplaySet;
},
};
+16
View File
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [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)
**Note:** Version bump only for package @ohif/extension-vtk
## [1.12.26](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.25...@ohif/extension-vtk@1.12.26) (2022-06-29)
**Note:** Version bump only for package @ohif/extension-vtk
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/extension-vtk",
"version": "1.12.26",
"version": "1.12.28",
"description": "OHIF extension for VTK.js",
"author": "OHIF",
"license": "MIT",
@@ -53,8 +53,8 @@
"react-vtkjs-viewport": "^0.14.4"
},
"devDependencies": {
"@ohif/core": "^2.16.21",
"@ohif/ui": "^1.10.9",
"@ohif/core": "^2.16.23",
"@ohif/ui": "^1.10.10",
"cornerstone-tools": "^6.0.6",
"cornerstone-wado-image-loader": "^4.1.0",
"dicom-parser": "^1.8.11",
+16
View File
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [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)
**Note:** Version bump only for package @ohif/core
## [2.16.21](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.20...@ohif/core@2.16.21) (2022-06-29)
**Note:** Version bump only for package @ohif/core
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/core",
"version": "2.16.21",
"version": "2.16.23",
"description": "Generic business logic for web-based medical imaging applications",
"author": "OHIF Core Team",
"license": "MIT",
@@ -8,6 +8,17 @@ const parseSCOORD3D = ({ servicesManager, displaySets }) => {
const { MeasurementService } = servicesManager.services;
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 => {
const firstInstance = srDisplaySet.metadata;
@@ -28,13 +39,6 @@ const parseSCOORD3D = ({ servicesManager, displaySets }) => {
srDisplaySet.isRehydratable = isRehydratable(srDisplaySet, mappings);
srDisplaySet.isLoaded = true;
const imageDisplaySets = displaySets.filter(
ds =>
ds.Modality !== 'SR' &&
ds.Modality !== 'SEG' &&
ds.Modality !== 'RTSTRUCT' &&
ds.Modality !== 'RTDOSE'
);
imageDisplaySets.forEach(imageDisplaySet => {
// Check currently added displaySets and add measurements if the sources exist.
checkIfCanAddMeasurementsToDisplaySet(srDisplaySet, imageDisplaySet);
@@ -127,7 +131,6 @@ const checkIfCanAddMeasurementsToDisplaySet = (
const imageIds = images.map(i => i.getImageId());
const SOPInstanceUIDs = images.map(i => i.SOPInstanceUID);
imageDisplaySet.SRLabels = [];
const colors = new Map();
measurements.forEach(measurement => {
const { coords } = measurement;
@@ -139,6 +142,10 @@ const checkIfCanAddMeasurementsToDisplaySet = (
coord.ReferencedSOPSequence.ReferencedSOPInstanceUID
);
if (imageIndex > -1) {
if (!srDisplaySet.referencedDisplaySets.includes(imageDisplaySet)) {
srDisplaySet.referencedDisplaySets.push(imageDisplaySet);
}
const imageId = imageIds[imageIndex];
const imageMetadata = images[imageIndex].getData().metadata;
@@ -350,6 +350,19 @@ class StudyMetadata extends Metadata {
referencedSeriesInstanceUID
);
} else {
const filteredReferencedDisplaySets = displaySet.referencedDisplaySets.filter(
referencedDisplaySet =>
referencedDisplaySet.SeriesInstanceUID ===
referencedSeriesInstanceUID
);
if (
filteredReferencedDisplaySets &&
filteredReferencedDisplaySets.length !== 0
) {
return true;
}
return false;
}
}
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
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)
**Note:** Version bump only for package @ohif/ui
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/ui",
"version": "1.10.9",
"version": "1.10.10",
"description": "A set of React components for Medical Imaging Viewers",
"author": "OHIF Contributors",
"license": "MIT",
@@ -175,7 +175,9 @@ class MeasurementTableItem extends Component {
>
<div>
<div className="icons">
<span>{SRLabel.label + ' : ' + SRLabel.value}</span>
<span style={{ width: '90px' }}>
{SRLabel.label + ' : ' + SRLabel.value}
</span>
<Icon
className={`eye-icon`}
name={SRLabel.visible ? 'eye' : 'eye-closed'}
@@ -18,6 +18,7 @@ $headerRowHeight = 63px
.tableListHeaderTitle
color: var(--text-secondary-color)
max-width: 230px
font-size: 22px
font-weight: 300
line-height: $headerRowHeight
+16
View File
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [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)
**Note:** Version bump only for package @ohif/viewer
## [4.12.29](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.28...@ohif/viewer@4.12.29) (2022-06-29)
**Note:** Version bump only for package @ohif/viewer
+7 -7
View File
@@ -1,6 +1,6 @@
{
"name": "@ohif/viewer",
"version": "4.12.29",
"version": "4.12.31",
"description": "OHIF Viewer",
"author": "OHIF Contributors",
"license": "MIT",
@@ -47,18 +47,18 @@
},
"dependencies": {
"@babel/runtime": "^7.5.5",
"@ohif/core": "^2.16.21",
"@ohif/extension-cornerstone": "^2.12.12",
"@ohif/extension-debugging": "^0.3.2",
"@ohif/extension-dicom-html": "^1.3.21",
"@ohif/core": "^2.16.23",
"@ohif/extension-cornerstone": "^2.12.13",
"@ohif/extension-debugging": "^0.3.3",
"@ohif/extension-dicom-html": "^1.3.22",
"@ohif/extension-dicom-microscopy": "^0.52.0",
"@ohif/extension-dicom-pdf": "^1.1.2",
"@ohif/extension-dicom-rt": "^0.7.11",
"@ohif/extension-dicom-segmentation": "^0.7.11",
"@ohif/extension-lesion-tracker": "^0.2.2",
"@ohif/extension-vtk": "^1.12.26",
"@ohif/extension-vtk": "^1.12.28",
"@ohif/i18n": "^0.53.0",
"@ohif/ui": "^1.10.9",
"@ohif/ui": "^1.10.10",
"@tanem/react-nprogress": "^1.1.25",
"classnames": "^2.2.6",
"core-js": "^3.2.1",
@@ -48,7 +48,7 @@ const mapDispatchToProps = (dispatch, ownProps) => {
);
document.dispatchEvent(selectionFired);
});
} else {
} else if (Modality !== 'SR') {
displaySet = displaySet.getSourceDisplaySet(ownProps.studyMetadata);
}
@@ -262,7 +262,11 @@ class Viewer extends Component {
const { currentTimepointId } = this;
this.timepointApi.retrieveTimepoints({ PatientID });
this.measurementApi.retrieveMeasurements(PatientID, [currentTimepointId]);
this.measurementApi
.retrieveMeasurements(PatientID, [currentTimepointId])
.then(() => {
this._updateThumbnails();
});
}
}
@@ -608,9 +612,30 @@ const _isDisplaySetActive = function(
if (
displaySet.Modality !== 'SEG' &&
displaySet.Modality !== 'RTSTRUCT' &&
displaySet.Modality !== 'RTDOSE'
displaySet.Modality !== 'RTDOSE' &&
displaySet.Modality !== 'SR'
) {
active = activeDisplaySetInstanceUID === displaySetInstanceUID;
} else if (displaySet.Modality === 'SR') {
active = activeDisplaySetInstanceUID === displaySetInstanceUID;
if (!active && displaySet.getSourceDisplaySet) {
const referencedDisplaySet = displaySet.getSourceDisplaySet(
studies,
false
);
if (referencedDisplaySet && referencedDisplaySet.length !== 0) {
for (let i = 0; i < referencedDisplaySet.length; i++) {
if (
referencedDisplaySet[i].displaySetInstanceUID ===
activeDisplaySetInstanceUID
) {
active = true;
break;
}
}
}
}
} else if (displaySet.getSourceDisplaySet) {
if (displaySet.Modality === 'SEG') {
const { referencedDisplaySet } = displaySet.getSourceDisplaySet(
@@ -173,7 +173,7 @@ class ViewerMain extends Component {
);
document.dispatchEvent(selectionFired);
});
} else {
} else if (Modality !== 'SR') {
displaySet = displaySet.getSourceDisplaySet(this.props.studies);
}