Compare commits
21
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
30515b8ab5 | ||
|
|
24bbf2b190 | ||
|
|
cb9aa6a765 | ||
|
|
5d9e4c9b02 | ||
|
|
dab095b6b5 | ||
|
|
cfa697aabc | ||
|
|
3350b1faa6 | ||
|
|
4ffb50c7e9 | ||
|
|
1d29554a91 | ||
|
|
b9d484fb2e | ||
|
|
597ac11c4d | ||
|
|
6007f340bf | ||
|
|
44738078db | ||
|
|
686fe7d931 | ||
|
|
0b8facbea6 | ||
|
|
0f89aa32f9 | ||
|
|
545161d5e8 | ||
|
|
eaa423c64e | ||
|
|
f7db74a843 | ||
|
|
7aba01f534 | ||
|
|
c5ebeaa127 |
No files matched your search
@@ -2,23 +2,21 @@
|
||||
name: "\U0001F41B Bug report"
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: 'Community: Report :bug:, Awaiting Reproduction, Triage :white_flag:'
|
||||
labels: 'Community: Report :bug:, Awaiting Reproduction'
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
> **Before Creating an issue**
|
||||
>
|
||||
> - Are you running the latest version?
|
||||
> - Are you reporting to the correct repository?
|
||||
> - Did you search existing issues?
|
||||
|
||||
## Bug Report
|
||||
<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
|
||||
<!-- Please read our Rules of Conduct: https://github.com/OHIF/Viewers/blob/master/CODE_OF_CONDUCT.md -->
|
||||
<!-- 🕮 Read our guide about our process: https://v3-docs.ohif.org/development/our-process -->
|
||||
<!-- 🔎 Search existing issues to avoid creating duplicates. -->
|
||||
<!-- 🧪 Test using the latest version -->
|
||||
|
||||
### Describe the Bug
|
||||
|
||||
_A clear and concise description of what the bug is._
|
||||
|
||||
### What steps can we follow to reproduce the bug?
|
||||
### Steps to Reproduce:
|
||||
|
||||
1. First step
|
||||
2. Second step
|
||||
@@ -28,6 +26,15 @@ _A clear and concise description of what the bug is._
|
||||
Please use code blocks to show formatted errors or code snippets
|
||||
```
|
||||
|
||||
### The current behavior
|
||||
|
||||
_A clear and concise description of what happens instead of the expected
|
||||
behavior._
|
||||
|
||||
### The expected behavior
|
||||
|
||||
_A clear and concise description of what you expected to happen._
|
||||
|
||||
> :warning: Reports we cannot reproduce are at risk of being marked stale and
|
||||
> closed. The more information you can provide, the more likely we are to look
|
||||
> into and address your issue.
|
||||
@@ -2,19 +2,28 @@
|
||||
name: "\U0001F680 Feature request"
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: 'Community: Request :hand:, Triage :white_flag:'
|
||||
labels: 'Community: Request :hand:'
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
> :hand: Many people requests features. Tell us why yours is important to the
|
||||
<!-- ⚠️⚠️ Do Not Delete This! feature_request_template ⚠️⚠️ -->
|
||||
<!-- Please read our Rules of Conduct: https://github.com/OHIF/Viewers/blob/master/CODE_OF_CONDUCT.md -->
|
||||
|
||||
<!-- :hand: Many people requests features. Tell us why yours is important to the
|
||||
> community. How does it add value? Why _this feature_?
|
||||
>
|
||||
> Is your request very specific to your needs? Consider
|
||||
> [contributing it](https://docs.ohif.org/contributing.html) yourself! Or reach
|
||||
> out to a community member that offers
|
||||
> [contributing it](https://v3-docs.ohif.org/development/contributing) yourself!
|
||||
> Or reach out to a community member that offers
|
||||
> [consulting services](https://docs.ohif.org/help.html#paid--commercial).
|
||||
-->
|
||||
|
||||
## Request
|
||||
### Request
|
||||
|
||||
<!--
|
||||
Please include as much detail as possible including possibly mock up screen shots, workflow or logic flow diagrams etc.
|
||||
Discuss if and how the requested feature interacts with existing features
|
||||
-->
|
||||
|
||||
**What feature or change would you like to see made?**
|
||||
|
||||
|
||||
@@ -1,14 +1,91 @@
|
||||
### PR Checklist
|
||||
|
||||
- [ ] Brief description of changes
|
||||
- [ ] Links to any relevant issues
|
||||
- [ ] Required status checks are passing
|
||||
- [ ] User cases if changes impact the user's experience
|
||||
- [ ] `@mention` a maintainer to request a review
|
||||
<!-- Do Not Delete This! pr_template -->
|
||||
<!-- Please read our Rules of Conduct: https://github.com/OHIF/Viewers/blob/master/CODE_OF_CONDUCT.md -->
|
||||
<!-- 🕮 Read our guide about our Contributing Guide here https://v3-docs.ohif.org/development/contributing -->
|
||||
<!-- :hand: Thank you for starting this amazing contribution! -->
|
||||
|
||||
<!--
|
||||
Links
|
||||
-->
|
||||
⚠️⚠️ Please make sure the checklist section below is complete before submitting your PR.
|
||||
To complete the checklist, add an 'x' to each item: [] -> [x]
|
||||
(PRs that do not have all the checkboxes marked will not be approved)
|
||||
-->
|
||||
|
||||
### Context
|
||||
|
||||
<!--
|
||||
Provide a clear explanation of the reasoning behind this change, such as:
|
||||
- A link to the issue being addressed, using the format "Fixes #ISSUE_NUMBER"
|
||||
- An image showing the issue or problem being addressed (if not already in the issue)
|
||||
- Error logs or callStacks to help with the understanding of the problem (if not already in the issue)
|
||||
-->
|
||||
|
||||
### Changes & Results
|
||||
|
||||
<!--
|
||||
List all the changes that have been done, such as:
|
||||
- Add new components
|
||||
- Remove old components
|
||||
- Update dependencies
|
||||
|
||||
What are the effects of this change?
|
||||
- Before vs After
|
||||
- Screenshots / GIFs / Videos
|
||||
-->
|
||||
|
||||
### Testing
|
||||
|
||||
<!--
|
||||
Describe how we can test your changes.
|
||||
- open a URL
|
||||
- visit a page
|
||||
- click on a button
|
||||
- etc.
|
||||
-->
|
||||
|
||||
### Checklist
|
||||
|
||||
#### PR
|
||||
|
||||
<!--
|
||||
https://semantic-release.gitbook.io/semantic-release/#how-does-it-work
|
||||
|
||||
Examples:
|
||||
Please note the letter casing in the provided examples (upper or lower).
|
||||
|
||||
- feat(MeasurementService): add ...
|
||||
- fix(Toolbar): fix ...
|
||||
- docs(Readme): update ...
|
||||
- style(Whitespace): fix ...
|
||||
- refactor(ExtensionManager): ...
|
||||
- test(HangingProtocol): Add test ...
|
||||
- chore(git): update ...
|
||||
- perf(VolumeLoader): ...
|
||||
|
||||
You don't need to have each commit within the Pull Request follow the rule,
|
||||
but the PR title must comply with it, as it will be used as the commit message
|
||||
after the commits are squashed.
|
||||
-->
|
||||
|
||||
- [] My Pull Request title is descriptive, accurate and follows the
|
||||
semantic-release format and guidelines.
|
||||
|
||||
#### Code
|
||||
|
||||
- [] My code has been well-documented (function documentation, inline comments,
|
||||
etc.)
|
||||
|
||||
#### Public Documentation Updates
|
||||
|
||||
<!-- https://v3-docs.ohif.org/ -->
|
||||
|
||||
- [] The documentation page has been updated as necessary for any public API
|
||||
additions or removals.
|
||||
|
||||
#### Tested Environment
|
||||
|
||||
- [] "OS: <!--[e.g. Windows 10, macOS 10.15.4]"-->
|
||||
- [] "Node version: <!--[e.g. 16.14.0]"-->
|
||||
- [] "Browser:
|
||||
<!--[e.g. Chrome 83.0.4103.116, Firefox 77.0.1, Safari 13.1.1]"-->
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
[blog]: https://circleci.com/blog/triggering-trusted-ci-jobs-on-untrusted-forks/
|
||||
|
||||
+3
-9
@@ -4,23 +4,17 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 180
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 9000
|
||||
daysUntilClose: 60
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- 'Story :raised_hands:'
|
||||
- 'Bug: Verified :bug:'
|
||||
- 'Task: CI/Tooling :robot:'
|
||||
- 'Task: Docs 📖'
|
||||
- 'Task: Docs :book:'
|
||||
- 'Task: Refactor :hammer_and_wrench:'
|
||||
- 'Task: Tests :microscope:'
|
||||
- 'PR: Awaiting Review 👀'
|
||||
- 'Triage :white_flag:'
|
||||
- 'Extension: Discussion'
|
||||
- 'Announcement 🎉'
|
||||
- 'IDC:priority'
|
||||
- 'IDC:candidate'
|
||||
- 'IDC:collaboration'
|
||||
- 'Community: Request :hand:'
|
||||
- 'Community: Report :bug:'
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: 'Stale :baguette_bread:'
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
|
||||
@@ -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.16](https://github.com/OHIF/Viewers/compare/@ohif/extension-cornerstone@2.12.15...@ohif/extension-cornerstone@2.12.16) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.12.15](https://github.com/OHIF/Viewers/compare/@ohif/extension-cornerstone@2.12.14...@ohif/extension-cornerstone@2.12.15) (2022-09-20)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-cornerstone
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-cornerstone",
|
||||
"version": "2.12.15",
|
||||
"version": "2.12.16",
|
||||
"description": "OHIF extension for Cornerstone",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -36,7 +36,7 @@
|
||||
"cornerstone-math": "^0.1.9",
|
||||
"cornerstone-tools": "^6.0.6",
|
||||
"cornerstone-wado-image-loader": "^4.2.1",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"dicom-parser": "^1.8.11",
|
||||
"hammerjs": "^2.0.8",
|
||||
"prop-types": "^15.6.2",
|
||||
|
||||
@@ -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.24](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-html@1.3.23...@ohif/extension-dicom-html@1.3.24) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-html
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.3.23](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-html@1.3.22...@ohif/extension-dicom-html@1.3.23) (2022-09-01)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-html
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-html",
|
||||
"version": "1.3.23",
|
||||
"version": "1.3.24",
|
||||
"description": "OHIF extension for rendering structured reports to HTML",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -29,7 +29,7 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "^0.50.0",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"prop-types": "^15.6.2",
|
||||
"react": "^16.8.6",
|
||||
"react-dom": "^16.8.6"
|
||||
|
||||
@@ -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.7.14](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-rt@0.7.13...@ohif/extension-dicom-rt@0.7.14) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-rt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.7.13](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-rt@0.7.12...@ohif/extension-dicom-rt@0.7.13) (2022-09-01)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-rt
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-rt",
|
||||
"version": "0.7.13",
|
||||
"version": "0.7.14",
|
||||
"description": "OHIF extension for rendering DICOM RTSTRUCTs on top of cornerstone images.",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -31,7 +31,7 @@
|
||||
"@ohif/core": "^0.50.0",
|
||||
"cornerstone-core": "^2.6.1",
|
||||
"cornerstone-tools": "^6.0.6",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"gl-matrix": "^3.3.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"react": "^16.8.6",
|
||||
|
||||
@@ -3,6 +3,60 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [0.7.21](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.20...@ohif/extension-dicom-segmentation@0.7.21) (2023-01-17)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.7.20](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.19...@ohif/extension-dicom-segmentation@0.7.20) (2023-01-10)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.7.19](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.18...@ohif/extension-dicom-segmentation@0.7.19) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.7.18](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.17...@ohif/extension-dicom-segmentation@0.7.18) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.7.17](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.16...@ohif/extension-dicom-segmentation@0.7.17) (2022-12-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [#2964](https://github.com/OHIF/Viewers/issues/2964) Reword message for segmentation error loading due to orientation tolerance ([#3017](https://github.com/OHIF/Viewers/issues/3017)) ([597ac11](https://github.com/OHIF/Viewers/commit/597ac11c4daee1b1e14148804551e20611cfef08))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.7.16](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.15...@ohif/extension-dicom-segmentation@0.7.16) (2022-10-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [#2964](https://github.com/OHIF/Viewers/issues/2964) Update message for segmentation error loading due to orientation tolerance ([#2982](https://github.com/OHIF/Viewers/issues/2982)) ([545161d](https://github.com/OHIF/Viewers/commit/545161d5e8d92bb6652f17dc24a36dac8aa7b3a4))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.7.15](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-segmentation@0.7.14...@ohif/extension-dicom-segmentation@0.7.15) (2022-09-19)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-segmentation
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-segmentation",
|
||||
"version": "0.7.15",
|
||||
"version": "0.7.21",
|
||||
"description": "OHIF extension for viewing segmentations in the 2D MPR view",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -31,7 +31,7 @@
|
||||
"@ohif/core": "^0.50.0",
|
||||
"cornerstone-core": "^2.6.1",
|
||||
"cornerstone-tools": "^6.0.6",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"prop-types": "^15.6.2",
|
||||
"react": "^16.8.6",
|
||||
"react-dom": "^16.8.6"
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
import csTools from 'cornerstone-tools';
|
||||
import cs from 'cornerstone-core';
|
||||
import OHIF from '@ohif/core';
|
||||
|
||||
import DICOMSegTempCrosshairsTool from './tools/DICOMSegTempCrosshairsTool';
|
||||
import refreshViewports from './utils/refreshViewports';
|
||||
|
||||
const { studyMetadataManager } = OHIF.utils;
|
||||
|
||||
const commandsModule = ({ commandsManager }) => {
|
||||
const actions = {
|
||||
jumpToFirstSegment: ({ viewports }) => {
|
||||
try {
|
||||
const { activeViewportIndex, viewportSpecificData } = viewports;
|
||||
const viewport = viewportSpecificData[activeViewportIndex];
|
||||
const { StudyInstanceUID, displaySetInstanceUID } = viewport;
|
||||
const studyMetadata = studyMetadataManager.get(StudyInstanceUID);
|
||||
const firstImageId = studyMetadata.getFirstImageId(
|
||||
displaySetInstanceUID
|
||||
);
|
||||
|
||||
const module = csTools.getModule('segmentation');
|
||||
const brushStackState = module.state.series[firstImageId];
|
||||
const { labelmaps3D, activeLabelmapIndex } = brushStackState;
|
||||
const { labelmaps2D } = labelmaps3D[activeLabelmapIndex];
|
||||
|
||||
const firstLabelMap2D = labelmaps2D.find(value => !!value);
|
||||
const firstSegment = firstLabelMap2D.segmentsOnLabelmap[0];
|
||||
const segmentNumber = firstSegment;
|
||||
|
||||
const validIndexList = [];
|
||||
labelmaps2D.forEach((labelMap2D, index) => {
|
||||
if (labelMap2D.segmentsOnLabelmap.includes(segmentNumber)) {
|
||||
validIndexList.push(index);
|
||||
}
|
||||
});
|
||||
|
||||
const avg = array => array.reduce((a, b) => a + b) / array.length;
|
||||
const average = avg(validIndexList);
|
||||
const closest = validIndexList.reduce((prev, curr) => {
|
||||
return Math.abs(curr - average) < Math.abs(prev - average)
|
||||
? curr
|
||||
: prev;
|
||||
});
|
||||
|
||||
const enabledElements = cs.getEnabledElements();
|
||||
const element = enabledElements[activeViewportIndex].element;
|
||||
|
||||
const toolState = csTools.getToolState(element, 'stack');
|
||||
if (!toolState) return;
|
||||
|
||||
const imageIds = toolState.data[0].imageIds;
|
||||
const imageId = imageIds[closest];
|
||||
const frameIndex = imageIds.indexOf(imageId);
|
||||
const SOPInstanceUID = cs.metaData.get('SOPInstanceUID', imageId);
|
||||
|
||||
cs.getEnabledElements().forEach(enabledElement => {
|
||||
cs.updateImage(enabledElement.element);
|
||||
});
|
||||
|
||||
DICOMSegTempCrosshairsTool.addCrosshair(
|
||||
element,
|
||||
imageId,
|
||||
segmentNumber
|
||||
);
|
||||
|
||||
cs.getEnabledElements().forEach(enabledElement => {
|
||||
cs.updateImage(enabledElement.element);
|
||||
});
|
||||
|
||||
const refreshViewports = false;
|
||||
|
||||
commandsManager.runCommand('jumpToImage', {
|
||||
StudyInstanceUID,
|
||||
SOPInstanceUID,
|
||||
frameIndex,
|
||||
activeViewportIndex,
|
||||
refreshViewports,
|
||||
});
|
||||
} catch (error) {
|
||||
console.log('Error in moving to the first segment slice');
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
const definitions = {
|
||||
jumpToFirstSegment: {
|
||||
commandFn: actions.jumpToFirstSegment,
|
||||
storeContexts: ['viewports'],
|
||||
options: {},
|
||||
},
|
||||
};
|
||||
|
||||
return {
|
||||
definitions,
|
||||
defaultContext: 'VIEWER',
|
||||
};
|
||||
};
|
||||
|
||||
export default commandsModule;
|
||||
@@ -62,8 +62,8 @@
|
||||
}
|
||||
|
||||
.dcmseg-segment-item .segment-label span {
|
||||
overflow-wrap: normal;
|
||||
white-space: nowrap;
|
||||
overflow-wrap: break-word;
|
||||
white-space: normal;
|
||||
overflow: hidden;
|
||||
max-width: calc(100% - 40px); /* calc(100% - 50px); 20px = eye icon */
|
||||
text-overflow: ellipsis;
|
||||
@@ -71,6 +71,7 @@
|
||||
|
||||
.dcmseg-segment-item .segment-label .eye-icon {
|
||||
cursor: pointer;
|
||||
min-width: 20px;
|
||||
color: var(--active-color);
|
||||
}
|
||||
|
||||
|
||||
+6
-14
@@ -630,25 +630,17 @@ const SegmentationPanel = ({
|
||||
|
||||
const onVisibilityChangeHandler = isVisible => {
|
||||
let segmentsHidden = [];
|
||||
const labelmap3D = getActiveLabelMaps3D();
|
||||
|
||||
state.segmentNumbers.forEach(segmentNumber => {
|
||||
if (isVTK()) {
|
||||
onSegmentVisibilityChange(segmentNumber, isVisible);
|
||||
}
|
||||
|
||||
/** Get all labelmaps with this segmentNumber (overlapping segments) */
|
||||
const { labelmaps3D } = getBrushStackState();
|
||||
const possibleLabelMaps3D = labelmaps3D.filter(({ labelmaps2D }) => {
|
||||
return labelmaps2D.some(({ segmentsOnLabelmap }) =>
|
||||
segmentsOnLabelmap.includes(segmentNumber)
|
||||
);
|
||||
});
|
||||
|
||||
possibleLabelMaps3D.forEach(labelmap3D => {
|
||||
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
|
||||
segmentsHidden = [
|
||||
...new Set([...segmentsHidden, ...labelmap3D.segmentsHidden]),
|
||||
];
|
||||
});
|
||||
labelmap3D.segmentsHidden[segmentNumber] = !isVisible;
|
||||
segmentsHidden = [
|
||||
...new Set([...segmentsHidden, ...labelmap3D.segmentsHidden]),
|
||||
];
|
||||
});
|
||||
|
||||
setState(state => ({ ...state, segmentsHidden }));
|
||||
|
||||
+37
-20
@@ -29,6 +29,32 @@ const SegmentationSettings = ({ configuration, onBack, onChange, servicesManager
|
||||
setState(state => ({ ...state, [field]: value }));
|
||||
};
|
||||
|
||||
const once = fn => (...args) => {
|
||||
if (!fn) return;
|
||||
fn(...args);
|
||||
fn = null;
|
||||
};
|
||||
|
||||
const segTolValue = document.getElementById('segToleranceValue');
|
||||
if (segTolValue) {
|
||||
segTolValue.onchange = once(function() {
|
||||
const { UINotificationService, LoggerService } = servicesManager.services;
|
||||
|
||||
const error = new Error(
|
||||
'Segmentation loader tolerance changed.\
|
||||
This operation can potentially generate errors in the Segmentation parsing.'
|
||||
);
|
||||
|
||||
LoggerService.error({ error, message: error.message });
|
||||
UINotificationService.show({
|
||||
title: 'Segmentation panel',
|
||||
message: error.message,
|
||||
type: 'warning',
|
||||
autoClose: true,
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
const toFloat = value => parseFloat(value / 100).toFixed(2);
|
||||
|
||||
return (
|
||||
@@ -138,32 +164,23 @@ const SegmentationSettings = ({ configuration, onBack, onChange, servicesManager
|
||||
<label style={{ margin: '0 15px' }}>
|
||||
Tolerance:
|
||||
<input
|
||||
id="segToleranceValue"
|
||||
style={{ margin: '0 15px' }}
|
||||
label="Tolerance"
|
||||
onKeyPress={event => {
|
||||
const validate = string => {
|
||||
let rgx = /[^-.e0-9]+/g;
|
||||
return string.match(rgx);
|
||||
};
|
||||
const validate = string => {
|
||||
let rgx = /[^-.e0-9]+/g;
|
||||
return string.match(rgx);
|
||||
};
|
||||
|
||||
if (validate(event.key)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}}
|
||||
onChange={event => {
|
||||
save('segsTolerance', event.target.value);
|
||||
|
||||
const { UINotificationService, LoggerService } = servicesManager.services;
|
||||
const error = new Error('Segmentation loader tolerance changed. This operation can potentially generate errors in the Segmentation parsing.');
|
||||
LoggerService.error({ error, message: error.message });
|
||||
UINotificationService.show({
|
||||
title: 'Segmentation panel',
|
||||
message: error.message,
|
||||
type: 'warning',
|
||||
autoClose: true,
|
||||
});
|
||||
if (validate(event.key)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
onChange={event => {
|
||||
save('segsTolerance', event.target.value);
|
||||
}}
|
||||
value={state.segsTolerance}
|
||||
/>
|
||||
</label>
|
||||
|
||||
@@ -6,6 +6,7 @@ import toolbarModule from './toolbarModule.js';
|
||||
import getSopClassHandlerModule from './getOHIFDicomSegSopClassHandler.js';
|
||||
import SegmentationPanel from './components/SegmentationPanel/SegmentationPanel.js';
|
||||
import { version } from '../package.json';
|
||||
import commandsModule from './commandsModule.js';
|
||||
const { studyMetadataManager } = OHIF.utils;
|
||||
|
||||
export default {
|
||||
@@ -33,10 +34,17 @@ export default {
|
||||
const ExtendedSegmentationPanel = props => {
|
||||
const { activeContexts } = api.hooks.useAppContext();
|
||||
const onDisplaySetLoadFailureHandler = error => {
|
||||
LoggerService.error({ error, message: error.message });
|
||||
const message =
|
||||
error.message.includes('orthogonal') ||
|
||||
error.message.includes('oblique')
|
||||
? 'The segmentation has been detected as non coplanar,\
|
||||
If you really think it is coplanar,\
|
||||
please adjust the tolerance in the segmentation panel settings (at your own peril!)'
|
||||
: error.message;
|
||||
LoggerService.error({ error, message });
|
||||
UINotificationService.show({
|
||||
title: 'DICOM Segmentation Loader',
|
||||
message: error.message,
|
||||
message,
|
||||
type: 'error',
|
||||
autoClose: false,
|
||||
});
|
||||
@@ -114,6 +122,15 @@ export default {
|
||||
});
|
||||
};
|
||||
|
||||
const onSegmentationsCompletelyLoaded = () => {
|
||||
commandsManager.runCommand('jumpToFirstSegment');
|
||||
};
|
||||
|
||||
document.addEventListener(
|
||||
'segseriesselected',
|
||||
onSegmentationsCompletelyLoaded
|
||||
);
|
||||
|
||||
document.addEventListener(
|
||||
'extensiondicomsegmentationsegloaded',
|
||||
onSegmentationsLoaded
|
||||
@@ -175,5 +192,8 @@ export default {
|
||||
defaultContext: ['VIEWER'],
|
||||
};
|
||||
},
|
||||
getCommandsModule({ commandsManager, servicesManager }) {
|
||||
return commandsModule({ commandsManager, servicesManager });
|
||||
},
|
||||
getSopClassHandlerModule,
|
||||
};
|
||||
@@ -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.2.25](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-tag-browser@0.2.24...@ohif/extension-dicom-tag-browser@0.2.25) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-tag-browser
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [0.2.24](https://github.com/OHIF/Viewers/compare/@ohif/extension-dicom-tag-browser@0.2.23...@ohif/extension-dicom-tag-browser@0.2.24) (2022-09-01)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-dicom-tag-browser
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-dicom-tag-browser",
|
||||
"version": "0.2.24",
|
||||
"version": "0.2.25",
|
||||
"description": "OHIF extension for checking DICOM headers.",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -28,7 +28,7 @@
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@ohif/core": "^2.6.0",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"react": "^16.8.6"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -3,6 +3,62 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.12.41](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.40...@ohif/extension-vtk@1.12.41) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.12.40](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.39...@ohif/extension-vtk@1.12.40) (2022-12-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.12.39](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.38...@ohif/extension-vtk@1.12.39) (2022-11-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.12.38](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.37...@ohif/extension-vtk@1.12.38) (2022-11-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.12.37](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.36...@ohif/extension-vtk@1.12.37) (2022-10-28)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.12.36](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.35...@ohif/extension-vtk@1.12.36) (2022-10-25)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.12.35](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.34...@ohif/extension-vtk@1.12.35) (2022-09-26)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [1.12.34](https://github.com/OHIF/Viewers/compare/@ohif/extension-vtk@1.12.33...@ohif/extension-vtk@1.12.34) (2022-09-20)
|
||||
|
||||
**Note:** Version bump only for package @ohif/extension-vtk
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/extension-vtk",
|
||||
"version": "1.12.34",
|
||||
"version": "1.12.41",
|
||||
"description": "OHIF extension for VTK.js",
|
||||
"author": "OHIF",
|
||||
"license": "MIT",
|
||||
@@ -35,7 +35,7 @@
|
||||
"cornerstone-core": "^2.6.1",
|
||||
"cornerstone-tools": "^6.0.6",
|
||||
"cornerstone-wado-image-loader": "^4.2.1",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"dicom-parser": "^1.8.11",
|
||||
"i18next": "^17.0.3",
|
||||
"i18next-browser-languagedetector": "^3.0.1",
|
||||
@@ -50,10 +50,10 @@
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.5.5",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"react-vtkjs-viewport": "^0.14.4"
|
||||
"react-vtkjs-viewport": "^0.14.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ohif/core": "^2.16.29",
|
||||
"@ohif/core": "^2.16.35",
|
||||
"@ohif/ui": "^1.10.10",
|
||||
"cornerstone-tools": "^6.0.6",
|
||||
"cornerstone-wado-image-loader": "^4.2.1",
|
||||
|
||||
@@ -3,6 +3,66 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.16.35](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.34...@ohif/core@2.16.35) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.16.34](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.33...@ohif/core@2.16.34) (2022-12-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [#2964](https://github.com/OHIF/Viewers/issues/2964) Reword message for segmentation error loading due to orientation tolerance ([#3017](https://github.com/OHIF/Viewers/issues/3017)) ([597ac11](https://github.com/OHIF/Viewers/commit/597ac11c4daee1b1e14148804551e20611cfef08))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.16.33](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.32...@ohif/core@2.16.33) (2022-11-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* handle missing ReferencedInstanceSequence attribute ([#2786](https://github.com/OHIF/Viewers/issues/2786)) ([4473807](https://github.com/OHIF/Viewers/commit/44738078dbd8dc6b27d2d669e25417e37371f48d))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.16.32](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.31...@ohif/core@2.16.32) (2022-11-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.16.31](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.30...@ohif/core@2.16.31) (2022-10-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [#2964](https://github.com/OHIF/Viewers/issues/2964) Update message for segmentation error loading due to orientation tolerance ([#2982](https://github.com/OHIF/Viewers/issues/2982)) ([545161d](https://github.com/OHIF/Viewers/commit/545161d5e8d92bb6652f17dc24a36dac8aa7b3a4))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.16.30](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.29...@ohif/core@2.16.30) (2022-10-25)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 2965 Correct Parsing Logic for Qualitative Instance Level SR ([#2972](https://github.com/OHIF/Viewers/issues/2972)) ([f7db74a](https://github.com/OHIF/Viewers/commit/f7db74a84376598065b6fa2c00cd5735415ff651))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [2.16.29](https://github.com/OHIF/Viewers/compare/@ohif/core@2.16.28...@ohif/core@2.16.29) (2022-09-20)
|
||||
|
||||
**Note:** Version bump only for package @ohif/core
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/core",
|
||||
"version": "2.16.29",
|
||||
"version": "2.16.35",
|
||||
"description": "Generic business logic for web-based medical imaging applications",
|
||||
"author": "OHIF Core Team",
|
||||
"license": "MIT",
|
||||
@@ -39,7 +39,7 @@
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.5.5",
|
||||
"ajv": "^6.10.0",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"dicomweb-client": "^0.8.3",
|
||||
"immer": "9.0.12",
|
||||
"isomorphic-base64": "^1.0.2",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { ImageSet } from '../../classes';
|
||||
import getMeasurements from './utils/getMeasurements';
|
||||
import getReferencedImagesList from './utils/getReferencedImagesList';
|
||||
import isRehydratable from './utils/isRehydratable';
|
||||
import addMeasurement from './utils/addMeasurement';
|
||||
|
||||
@@ -27,7 +26,6 @@ const parseSCOORD3D = ({ servicesManager, displaySets }) => {
|
||||
|
||||
const { ContentSequence } = firstInstance;
|
||||
|
||||
srDisplaySet.referencedImages = getReferencedImagesList(ContentSequence);
|
||||
srDisplaySet.measurements = getMeasurements(ContentSequence);
|
||||
const mappings = MeasurementService.getSourceMappings(
|
||||
'CornerstoneTools',
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
import getSequenceAsArray from './getSequenceAsArray';
|
||||
import { CodeNameCodeSequenceValues } from '../enums';
|
||||
|
||||
const getReferencedImagesList = ImagingMeasurementReportContentSequence => {
|
||||
const referencedImages = [];
|
||||
|
||||
const ImageLibrary = ImagingMeasurementReportContentSequence.find(
|
||||
item =>
|
||||
item.ConceptNameCodeSequence.CodeValue ===
|
||||
CodeNameCodeSequenceValues.ImageLibrary ||
|
||||
item.ConceptNameCodeSequence.CodeValue ===
|
||||
CodeNameCodeSequenceValues.ImagingMeasurements
|
||||
);
|
||||
|
||||
if (!ImageLibrary || !ImageLibrary.ContentSequence) {
|
||||
return referencedImages;
|
||||
}
|
||||
|
||||
const ImageLibraryGroup = getSequenceAsArray(
|
||||
ImageLibrary.ContentSequence
|
||||
).find(
|
||||
item =>
|
||||
item.ConceptNameCodeSequence.CodeValue ===
|
||||
CodeNameCodeSequenceValues.ImageLibraryGroup ||
|
||||
item.ConceptNameCodeSequence.CodeValue ===
|
||||
CodeNameCodeSequenceValues.MeasurementGroup
|
||||
);
|
||||
|
||||
if (!ImageLibraryGroup || !ImageLibraryGroup.ContentSequence) {
|
||||
return referencedImages;
|
||||
}
|
||||
|
||||
getSequenceAsArray(ImageLibraryGroup.ContentSequence).forEach(item => {
|
||||
const { ReferencedSOPSequence } = item;
|
||||
if (ReferencedSOPSequence) {
|
||||
const {
|
||||
ReferencedSOPClassUID,
|
||||
ReferencedSOPInstanceUID,
|
||||
} = ReferencedSOPSequence;
|
||||
|
||||
referencedImages.push({
|
||||
ReferencedSOPClassUID,
|
||||
ReferencedSOPInstanceUID,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return referencedImages;
|
||||
};
|
||||
|
||||
export default getReferencedImagesList;
|
||||
@@ -21,16 +21,18 @@ const getReferencedSeriesSequence = instance => {
|
||||
const referencedInstanceSequenceRaw = referencedSeries['0008114A'];
|
||||
const referencedInstanceSequence = [];
|
||||
|
||||
referencedInstanceSequenceRaw.Value.forEach(referencedInstance => {
|
||||
referencedInstanceSequence.push({
|
||||
referencedSOPClassUID: DICOMWeb.getString(
|
||||
referencedInstance['00081150']
|
||||
),
|
||||
referencedSOPInstanceUID: DICOMWeb.getString(
|
||||
referencedInstance['00081155']
|
||||
),
|
||||
if (referencedInstanceSequenceRaw) {
|
||||
referencedInstanceSequenceRaw.Value.forEach(referencedInstance => {
|
||||
referencedInstanceSequence.push({
|
||||
referencedSOPClassUID: DICOMWeb.getString(
|
||||
referencedInstance['00081150']
|
||||
),
|
||||
referencedSOPInstanceUID: DICOMWeb.getString(
|
||||
referencedInstance['00081155']
|
||||
),
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
referencedSeriesSequence.push({
|
||||
referencedSeriesInstanceUID,
|
||||
|
||||
@@ -119,10 +119,18 @@ async function loadAndCacheDerivedDisplaySets(
|
||||
) {
|
||||
if (recentDisplaySet.Modality === 'SEG' && logger) {
|
||||
const onDisplaySetLoadFailureHandler = error => {
|
||||
logger.error({ error, message: error.message });
|
||||
const message =
|
||||
error.message.includes('orthogonal') ||
|
||||
error.message.includes('oblique')
|
||||
? 'The segmentation has been detected as non coplanar,\
|
||||
If you really think it is coplanar,\
|
||||
please adjust the tolerance in the segmentation panel settings (at your own peril!)'
|
||||
: error.message;
|
||||
|
||||
logger.error({ error, message });
|
||||
snackbar.show({
|
||||
title: 'DICOM Segmentation Loader',
|
||||
message: error.message,
|
||||
message,
|
||||
type: 'error',
|
||||
autoClose: false,
|
||||
});
|
||||
|
||||
@@ -3,6 +3,92 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [4.12.50](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.49...@ohif/viewer@4.12.50) (2023-01-17)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.49](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.48...@ohif/viewer@4.12.49) (2023-01-10)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.48](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.47...@ohif/viewer@4.12.48) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.47](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.46...@ohif/viewer@4.12.47) (2022-12-21)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.46](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.45...@ohif/viewer@4.12.46) (2022-12-12)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [#2964](https://github.com/OHIF/Viewers/issues/2964) Reword message for segmentation error loading due to orientation tolerance ([#3017](https://github.com/OHIF/Viewers/issues/3017)) ([597ac11](https://github.com/OHIF/Viewers/commit/597ac11c4daee1b1e14148804551e20611cfef08))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.45](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.44...@ohif/viewer@4.12.45) (2022-11-12)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.44](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.43...@ohif/viewer@4.12.44) (2022-11-02)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.43](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.42...@ohif/viewer@4.12.43) (2022-10-28)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* [#2964](https://github.com/OHIF/Viewers/issues/2964) Update message for segmentation error loading due to orientation tolerance ([#2982](https://github.com/OHIF/Viewers/issues/2982)) ([545161d](https://github.com/OHIF/Viewers/commit/545161d5e8d92bb6652f17dc24a36dac8aa7b3a4))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.42](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.41...@ohif/viewer@4.12.42) (2022-10-25)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.41](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.40...@ohif/viewer@4.12.41) (2022-09-26)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## [4.12.40](https://github.com/OHIF/Viewers/compare/@ohif/viewer@4.12.39...@ohif/viewer@4.12.40) (2022-09-20)
|
||||
|
||||
**Note:** Version bump only for package @ohif/viewer
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@ohif/viewer",
|
||||
"version": "4.12.40",
|
||||
"version": "4.12.50",
|
||||
"description": "OHIF Viewer",
|
||||
"author": "OHIF Contributors",
|
||||
"license": "MIT",
|
||||
@@ -47,16 +47,16 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.5.5",
|
||||
"@ohif/core": "^2.16.29",
|
||||
"@ohif/extension-cornerstone": "^2.12.15",
|
||||
"@ohif/core": "^2.16.35",
|
||||
"@ohif/extension-cornerstone": "^2.12.16",
|
||||
"@ohif/extension-debugging": "^0.3.3",
|
||||
"@ohif/extension-dicom-html": "^1.3.23",
|
||||
"@ohif/extension-dicom-html": "^1.3.24",
|
||||
"@ohif/extension-dicom-microscopy": "^0.52.0",
|
||||
"@ohif/extension-dicom-pdf": "^1.1.2",
|
||||
"@ohif/extension-dicom-rt": "^0.7.13",
|
||||
"@ohif/extension-dicom-segmentation": "^0.7.15",
|
||||
"@ohif/extension-dicom-rt": "^0.7.14",
|
||||
"@ohif/extension-dicom-segmentation": "^0.7.21",
|
||||
"@ohif/extension-lesion-tracker": "^0.2.2",
|
||||
"@ohif/extension-vtk": "^1.12.34",
|
||||
"@ohif/extension-vtk": "^1.12.41",
|
||||
"@ohif/i18n": "^0.53.0",
|
||||
"@ohif/ui": "^1.10.10",
|
||||
"@tanem/react-nprogress": "^1.1.25",
|
||||
@@ -66,7 +66,7 @@
|
||||
"cornerstone-math": "^0.1.9",
|
||||
"cornerstone-tools": "^6.0.6",
|
||||
"cornerstone-wado-image-loader": "^4.2.1",
|
||||
"dcmjs": "0.24.10",
|
||||
"dcmjs": "0.29.3",
|
||||
"dicom-parser": "^1.8.11",
|
||||
"dicomweb-client": "^0.8.3",
|
||||
"hammerjs": "^2.0.8",
|
||||
|
||||
@@ -20,10 +20,18 @@ const mapDispatchToProps = (dispatch, ownProps) => {
|
||||
const { Modality } = displaySet;
|
||||
if (Modality === 'SEG' && servicesManager) {
|
||||
const onDisplaySetLoadFailureHandler = error => {
|
||||
LoggerService.error({ error, message: error.message });
|
||||
const message =
|
||||
error.message.includes('orthogonal') ||
|
||||
error.message.includes('oblique')
|
||||
? 'The segmentation has been detected as non coplanar,\
|
||||
If you really think it is coplanar,\
|
||||
please adjust the tolerance in the segmentation panel settings (at your own peril!)'
|
||||
: error.message;
|
||||
|
||||
LoggerService.error({ error, message });
|
||||
UINotificationService.show({
|
||||
title: 'DICOM Segmentation Loader',
|
||||
message: error.message,
|
||||
message,
|
||||
type: 'error',
|
||||
autoClose: false,
|
||||
});
|
||||
@@ -46,7 +54,9 @@ const mapDispatchToProps = (dispatch, ownProps) => {
|
||||
detail: { activatedLabelmapIndex: activatedLabelmapIndex },
|
||||
}
|
||||
);
|
||||
const segThumbnailSelected = new CustomEvent('segseriesselected');
|
||||
document.dispatchEvent(selectionFired);
|
||||
document.dispatchEvent(segThumbnailSelected);
|
||||
});
|
||||
} else if (Modality !== 'SR') {
|
||||
displaySet = displaySet.getSourceDisplaySet(ownProps.studyMetadata);
|
||||
|
||||
@@ -505,14 +505,14 @@ const _checkForDerivedDisplaySets = async function(displaySet, study) {
|
||||
* @returns {[string]} an array of strings containing the warnings
|
||||
*/
|
||||
const _checkForSeriesInconsistencesWarnings = async function(displaySet) {
|
||||
if (displaySet.inconsistencyWarnings) {
|
||||
// warnings already checked and cached in displaySet
|
||||
return displaySet.inconsistencyWarnings;
|
||||
}
|
||||
|
||||
const inconsistencyWarnings = [];
|
||||
|
||||
if (displaySet.Modality !== 'SEG') {
|
||||
// warnings already checked and cached in displaySet
|
||||
if (displaySet.inconsistencyWarnings) {
|
||||
return displaySet.inconsistencyWarnings;
|
||||
}
|
||||
|
||||
if (
|
||||
displaySet.reconstructionIssues &&
|
||||
displaySet.reconstructionIssues.length !== 0
|
||||
|
||||
@@ -145,10 +145,17 @@ class ViewerMain extends Component {
|
||||
const { Modality } = displaySet;
|
||||
if (Modality === 'SEG' && servicesManager) {
|
||||
const onDisplaySetLoadFailureHandler = error => {
|
||||
LoggerService.error({ error, message: error.message });
|
||||
const message =
|
||||
error.message.includes('orthogonal') ||
|
||||
error.message.includes('oblique')
|
||||
? 'The segmentation has been detected as non coplanar,\
|
||||
If you really think it is coplanar,\
|
||||
please adjust the tolerance in the segmentation panel settings (at your own peril!)'
|
||||
: error.message;
|
||||
LoggerService.error({ error, message });
|
||||
UINotificationService.show({
|
||||
title: 'DICOM Segmentation Loader',
|
||||
message: error.message,
|
||||
message,
|
||||
type: 'error',
|
||||
autoClose: false,
|
||||
});
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
3.7
|
||||
3.8
|
||||
@@ -4242,13 +4242,13 @@ capture-exit@^2.0.0:
|
||||
rsvp "^4.8.4"
|
||||
|
||||
cardboard-vr-display@^1.0.15:
|
||||
version "1.0.16"
|
||||
resolved "https://registry.yarnpkg.com/cardboard-vr-display/-/cardboard-vr-display-1.0.16.tgz#f91e2798e8fb70a348599638c6742c72dfeadabc"
|
||||
integrity sha512-GFBWPMH/ixy4Ji014BAO1ryddGHphtJlA8gUR6UdKsOpPjUQukCKpgsx2XIJ5oBlqXnDQOcLVRqBWyuvTI32jQ==
|
||||
version "1.0.19"
|
||||
resolved "https://registry.yarnpkg.com/cardboard-vr-display/-/cardboard-vr-display-1.0.19.tgz#81dcde1804b329b8228b757ac00e1fd2afa9d748"
|
||||
integrity sha512-+MjcnWKAkb95p68elqZLDPzoiF/dGncQilLGvPBM5ZorABp/ao3lCs7nnRcYBckmuNkg1V/5rdGDKoUaCVsHzQ==
|
||||
dependencies:
|
||||
gl-preserve-state "^1.0.0"
|
||||
nosleep.js "^0.7.0"
|
||||
webvr-polyfill-dpdb "^1.0.11"
|
||||
webvr-polyfill-dpdb "^1.0.17"
|
||||
|
||||
cardinal@^2.1.1:
|
||||
version "2.1.1"
|
||||
@@ -5637,16 +5637,17 @@ dateformat@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
|
||||
integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
|
||||
|
||||
dcmjs@0.24.10:
|
||||
version "0.24.10"
|
||||
resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.24.10.tgz#048a12a1905175763274545c17bb38b506cdfd00"
|
||||
integrity sha512-kugEdBqwwTx7lqUxm4jdklkMJiQ8pZ0aqMw9WkszkDU5lDWHyq2kbRccACtcwqygC7j1d36w8uG/vNLMejeMBg==
|
||||
dcmjs@0.29.3:
|
||||
version "0.29.3"
|
||||
resolved "https://registry.yarnpkg.com/dcmjs/-/dcmjs-0.29.3.tgz#e672ed079bd5371406e022361c60d7794af40d7b"
|
||||
integrity sha512-aLAkrpejrFAatzU84ID9s01+oUFBzIP3gSkgyr2OcDfOphW7ms/JUDUdH24Y6361NaMovEo4gJ3bRrzsBmI8cA==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs2" "^7.17.8"
|
||||
gl-matrix "^3.1.0"
|
||||
lodash.clonedeep "^4.5.0"
|
||||
loglevelnext "^3.0.1"
|
||||
ndarray "^1.0.19"
|
||||
pako "^2.0.4"
|
||||
|
||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9:
|
||||
version "2.6.9"
|
||||
@@ -11208,7 +11209,7 @@ normalize-url@^3.0.0, normalize-url@^3.3.0:
|
||||
nosleep.js@^0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.yarnpkg.com/nosleep.js/-/nosleep.js-0.7.0.tgz#cfd919c25523ca0d0f4a69fb3305c083adaee289"
|
||||
integrity sha1-z9kZwlUjyg0PSmn7MwXAg62u4ok=
|
||||
integrity sha512-Z4B1HgvzR+en62ghwZf6BwAR6x4/pjezsiMcbF9KMLh7xoscpoYhaSXfY3lLkqC68AtW+/qLJ1lzvBIj0FGaTA==
|
||||
|
||||
npm-bundled@^1.0.1:
|
||||
version "1.0.6"
|
||||
@@ -13519,10 +13520,10 @@ react-transition-group@^4.1.1:
|
||||
loose-envify "^1.4.0"
|
||||
prop-types "^15.6.2"
|
||||
|
||||
react-vtkjs-viewport@^0.14.4:
|
||||
version "0.14.4"
|
||||
resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.14.4.tgz#8cc5a49738fff3fee75ead61c98307bc24710151"
|
||||
integrity sha512-WKU87iqH6AQ1R8zp1hUXU4hsGwfbkkoUhzSCjbBGZ9Di0ELYNx/xY9DtdmgsKOU5Y5Arp5+VQW/ziFsq2KTcTA==
|
||||
react-vtkjs-viewport@^0.14.5:
|
||||
version "0.14.5"
|
||||
resolved "https://registry.yarnpkg.com/react-vtkjs-viewport/-/react-vtkjs-viewport-0.14.5.tgz#95cda594370e557d43aa966392ed92926e6c53c1"
|
||||
integrity sha512-DE+Ytub6veya3DTvItJdZhkTR8MppoLkrq57qhN9vd2meykeS1fZp9cDyWmq92dJ7IHSuS5FPof8ucsae9ci5w==
|
||||
dependencies:
|
||||
date-fns "^2.2.1"
|
||||
gl-matrix "^3.1.0"
|
||||
@@ -14499,7 +14500,7 @@ scriptjs@^2.5.9:
|
||||
seedrandom@2.4.3:
|
||||
version "2.4.3"
|
||||
resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc"
|
||||
integrity sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw=
|
||||
integrity sha512-2CkZ9Wn2dS4mMUWQaXLsOAfGD+irMlLEeSP3cMxpGbgyOOzJGFa+MWCOMTOCMyZinHRPxyOj/S/C57li/1to6Q==
|
||||
|
||||
seedrandom@^3.0.5:
|
||||
version "3.0.5"
|
||||
@@ -14715,7 +14716,7 @@ shebang-regex@^3.0.0:
|
||||
shelljs@0.7.8:
|
||||
version "0.7.8"
|
||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
|
||||
integrity sha1-3svPh0sNHl+3LhSxZKloMEjprLM=
|
||||
integrity sha512-/YF5Uk8hcwi7ima04ppkbA4RaRMdPMBfwAvAf8sufYOxsJRtbdoBsT8vGvlb+799BrlGdYrd+oczIA2eN2JdWA==
|
||||
dependencies:
|
||||
glob "^7.0.0"
|
||||
interpret "^1.0.0"
|
||||
@@ -16662,10 +16663,10 @@ websocket-extensions@>=0.1.1:
|
||||
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
|
||||
integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
|
||||
|
||||
webvr-polyfill-dpdb@^1.0.11:
|
||||
version "1.0.16"
|
||||
resolved "https://registry.yarnpkg.com/webvr-polyfill-dpdb/-/webvr-polyfill-dpdb-1.0.16.tgz#7f2cf88460c002a5f10ff69b2bf3a5663e0ad9dd"
|
||||
integrity sha512-FCciTtPhwkYYHGL0K67G8k7ZnNVqnEx3u4NVHLJ0+Ya6f2VTZUl/GJpaEo1Id2pBP/2l0RYZ3IGZE4Pe8fRalg==
|
||||
webvr-polyfill-dpdb@^1.0.17:
|
||||
version "1.0.18"
|
||||
resolved "https://registry.yarnpkg.com/webvr-polyfill-dpdb/-/webvr-polyfill-dpdb-1.0.18.tgz#258484ce06b057bf18898acc911bd173847bce11"
|
||||
integrity sha512-O0S1ZGEWyPvyZEkS2VbyV7mtir/NM9MNK3EuhbHPoJ8EHTky2pTXehjIl+IiDPr+Lldgx129QGt3NGly7rwRPw==
|
||||
|
||||
webvr-polyfill@0.10.8:
|
||||
version "0.10.8"
|
||||
|
||||
Reference in new issue
Block a user