fix(seg): maintain algorithm name and algorithm type when DICOM seg is exported or downloaded (#4203)

This commit is contained in:
Ibrahim 2024-06-05 12:26:17 -04:00 committed by GitHub
parent d747c97be3
commit a29e94de80
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 41 additions and 22 deletions

View File

@ -46,8 +46,8 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^1.77.3", "@cornerstonejs/adapters": "^1.77.6",
"@cornerstonejs/core": "^1.77.3", "@cornerstonejs/core": "^1.77.6",
"@kitware/vtk.js": "30.4.1", "@kitware/vtk.js": "30.4.1",
"react-color": "^2.19.3" "react-color": "^2.19.3"
} }

View File

@ -278,8 +278,8 @@ const commandsModule = ({
const segmentMetadata = { const segmentMetadata = {
SegmentNumber: segmentIndex.toString(), SegmentNumber: segmentIndex.toString(),
SegmentLabel: label, SegmentLabel: label,
SegmentAlgorithmType: 'MANUAL', SegmentAlgorithmType: segment?.algorithmType || 'MANUAL',
SegmentAlgorithmName: 'OHIF Brush', SegmentAlgorithmName: segment?.algorithmName || 'OHIF Brush',
RecommendedDisplayCIELabValue, RecommendedDisplayCIELabValue,
SegmentedPropertyCategoryCodeSequence: { SegmentedPropertyCategoryCodeSequence: {
CodeValue: 'T-D0050', CodeValue: 'T-D0050',

View File

@ -46,9 +46,9 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^1.77.3", "@cornerstonejs/adapters": "^1.77.6",
"@cornerstonejs/core": "^1.77.3", "@cornerstonejs/core": "^1.77.6",
"@cornerstonejs/tools": "^1.77.3", "@cornerstonejs/tools": "^1.77.6",
"classnames": "^2.3.2" "classnames": "^2.3.2"
} }
} }

View File

@ -42,9 +42,9 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/core": "^1.77.3", "@cornerstonejs/core": "^1.77.6",
"@cornerstonejs/streaming-image-volume-loader": "^1.77.3", "@cornerstonejs/streaming-image-volume-loader": "^1.77.6",
"@cornerstonejs/tools": "^1.77.3", "@cornerstonejs/tools": "^1.77.6",
"classnames": "^2.3.2" "classnames": "^2.3.2"
} }
} }

View File

@ -38,7 +38,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2",
"@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/codec-openjph": "^2.4.2",
"@cornerstonejs/dicom-image-loader": "^1.77.3", "@cornerstonejs/dicom-image-loader": "^1.77.6",
"@icr/polyseg-wasm": "^0.4.0", "@icr/polyseg-wasm": "^0.4.0",
"@ohif/core": "3.9.0-beta.34", "@ohif/core": "3.9.0-beta.34",
"@ohif/ui": "3.9.0-beta.34", "@ohif/ui": "3.9.0-beta.34",
@ -55,10 +55,10 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.20.13", "@babel/runtime": "^7.20.13",
"@cornerstonejs/adapters": "^1.77.3", "@cornerstonejs/adapters": "^1.77.6",
"@cornerstonejs/core": "^1.77.3", "@cornerstonejs/core": "^1.77.6",
"@cornerstonejs/streaming-image-volume-loader": "^1.77.3", "@cornerstonejs/streaming-image-volume-loader": "^1.77.6",
"@cornerstonejs/tools": "^1.77.3", "@cornerstonejs/tools": "^1.77.6",
"@icr/polyseg-wasm": "^0.4.0", "@icr/polyseg-wasm": "^0.4.0",
"@kitware/vtk.js": "30.4.1", "@kitware/vtk.js": "30.4.1",
"html2canvas": "^1.4.1", "html2canvas": "^1.4.1",

View File

@ -22,6 +22,10 @@ type Segment = {
isLocked: boolean; isLocked: boolean;
// display texts // display texts
displayText?: string[]; displayText?: string[];
// The name of algorithm used to generate the segment. (0062,0009)
algorithmName?: string;
// Type of algorithm used to generate the segment. (0062,0008)
algorithmType?: string;
}; };
type Segmentation = { type Segmentation = {

View File

@ -32,8 +32,8 @@
"start": "yarn run dev" "start": "yarn run dev"
}, },
"peerDependencies": { "peerDependencies": {
"@cornerstonejs/core": "^1.77.3", "@cornerstonejs/core": "^1.77.6",
"@cornerstonejs/tools": "^1.77.3", "@cornerstonejs/tools": "^1.77.6",
"@ohif/core": "3.9.0-beta.34", "@ohif/core": "3.9.0-beta.34",
"@ohif/extension-cornerstone-dicom-sr": "3.9.0-beta.34", "@ohif/extension-cornerstone-dicom-sr": "3.9.0-beta.34",
"@ohif/ui": "3.9.0-beta.34", "@ohif/ui": "3.9.0-beta.34",

View File

@ -157,7 +157,7 @@ function modeFactory({ modeConfiguration }) {
/** List of extensions that are used by the mode */ /** List of extensions that are used by the mode */
extensions: extensionDependencies, extensions: extensionDependencies,
/** HangingProtocol used by the mode */ /** HangingProtocol used by the mode */
// hangingProtocol: [''], hangingProtocol: ['@ohif/mnGrid'],
/** SopClassHandlers used by the mode */ /** SopClassHandlers used by the mode */
sopClassHandlers: [ohif.sopClassHandler, segmentation.sopClassHandler], sopClassHandlers: [ohif.sopClassHandler, segmentation.sopClassHandler],
/** hotkeys for mode */ /** hotkeys for mode */

View File

@ -53,7 +53,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2",
"@cornerstonejs/codec-openjph": "^2.4.5", "@cornerstonejs/codec-openjph": "^2.4.5",
"@cornerstonejs/dicom-image-loader": "^1.77.3", "@cornerstonejs/dicom-image-loader": "^1.77.6",
"@emotion/serialize": "^1.1.3", "@emotion/serialize": "^1.1.3",
"@ohif/core": "3.9.0-beta.34", "@ohif/core": "3.9.0-beta.34",
"@ohif/extension-cornerstone": "3.9.0-beta.34", "@ohif/extension-cornerstone": "3.9.0-beta.34",

View File

@ -37,7 +37,7 @@
"@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2", "@cornerstonejs/codec-libjpeg-turbo-8bit": "^1.2.2",
"@cornerstonejs/codec-openjpeg": "^1.2.2", "@cornerstonejs/codec-openjpeg": "^1.2.2",
"@cornerstonejs/codec-openjph": "^2.4.2", "@cornerstonejs/codec-openjph": "^2.4.2",
"@cornerstonejs/dicom-image-loader": "^1.77.3", "@cornerstonejs/dicom-image-loader": "^1.77.6",
"@ohif/ui": "3.9.0-beta.34", "@ohif/ui": "3.9.0-beta.34",
"cornerstone-math": "0.1.9", "cornerstone-math": "0.1.9",
"dicom-parser": "^1.8.21" "dicom-parser": "^1.8.21"

View File

@ -90,7 +90,7 @@ export function DatePickerWithRange({
value={start} value={start}
onChange={e => handleInputChange(e, 'start')} onChange={e => handleInputChange(e, 'start')}
className={cn( className={cn(
'border-inputfield-main focus:border-inputfield-focus h-full w-full justify-start rounded border bg-black py-[6.5px] pl-[6.5px] pr-[6.5px] text-left text-sm font-normal hover:bg-black hover:text-white', 'border-inputfield-main focus:border-inputfield-focus h-[32px] w-full justify-start rounded border bg-black py-[6.5px] pl-[6.5px] pr-[6.5px] text-left text-sm font-normal hover:bg-black hover:text-white',
!start && 'text-muted-foreground' !start && 'text-muted-foreground'
)} )}
data-cy="input-date-range-start" data-cy="input-date-range-start"

View File

@ -30,7 +30,7 @@ const InputMultiSelect = ({
value={value} value={value}
isMulti={true} isMulti={true}
isClearable={false} isClearable={false}
isSearchable={false} isSearchable={true}
closeMenuOnSelect={false} closeMenuOnSelect={false}
hideSelectedOptions={false} hideSelectedOptions={false}
onChange={(selectedOptions, action) => { onChange={(selectedOptions, action) => {

View File

@ -6,6 +6,21 @@
@apply border-gray-500; @apply border-gray-500;
} }
.customSelect__control {
height: 32px;
}
.customSelect__value-container {
padding-top: 0px !important;
padding-bottom: 0px !important;
}
.customSelect__input {
@apply text-white !important;
font-size: 0.75rem !important;
line-height: 1.25 !important;
}
.customSelect__wrapper .customSelect__control:focus, .customSelect__wrapper .customSelect__control:focus,
.customSelect__wrapper .customSelect__control--menu-is-open { .customSelect__wrapper .customSelect__control--menu-is-open {
@apply border-gray-500 outline-none; @apply border-gray-500 outline-none;