@ohif/app 3.0.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/151.bundle.07bac9172580a60fae7a.js +2579 -0
- package/dist/192.bundle.62be5f0ef9705a485071.js +894 -0
- package/dist/199.bundle.2286f24cf0a068e7f50c.js +480 -0
- package/dist/205.bundle.39e6c847d618ad2b1b7a.js +62 -0
- package/dist/208.bundle.23748a85dfdc79c05d3a.js +864 -0
- package/dist/270.bundle.abbdb5348274bae3e8bc.js +23906 -0
- package/dist/283.bundle.33f99a75a5e2d9333da2.js +2939 -0
- package/dist/295.bundle.5105ce962be15c92484d.js +48 -0
- package/dist/331.bundle.7ac7b142d249d14fd99e.js +73034 -0
- package/dist/351.bundle.c5d7279ef42e30f61e08.js +1471 -0
- package/dist/351.css +3 -0
- package/dist/36785fbd89b0e17f6099.wasm +0 -0
- package/dist/381.bundle.0905e683605fcbc0895f.js +1009 -0
- package/dist/404.bundle.0f7a500421f246153d89.js +706 -0
- package/dist/50.bundle.4cb103cd20f5ffccf927.js +324 -0
- package/dist/5004fdc02f329ce53b69.wasm +0 -0
- package/dist/531.bundle.1bc152c87c7e2e987d2b.js +5935 -0
- package/dist/55.bundle.a5a215e13a8511f7aee7.js +685 -0
- package/dist/55.css +3 -0
- package/dist/569.bundle.d147c0aa0604f8ea2094.js +514 -0
- package/dist/581.bundle.646c89c5c3e3ee096363.js +508 -0
- package/dist/606.bundle.5d876f5f3dd8287f0a28.js +4939 -0
- package/dist/610.min.worker.js +2 -0
- package/dist/610.min.worker.js.map +1 -0
- package/dist/616.bundle.bec4736d8c9513e62856.js +686 -0
- package/dist/62ab5d58a2bea7b5a1dc.wasm +0 -0
- package/dist/642.bundle.030d908e22c8ff5611f3.js +169 -0
- package/dist/65916ef3def695744bda.wasm +0 -0
- package/dist/664.bundle.4792c88ae0d6d4b5ed13.js +901 -0
- package/dist/707.bundle.0a74aa3e61ed002eb3c6.js +9049 -0
- package/dist/707.css +1 -0
- package/dist/728.bundle.d13856835357400fef82.js +26221 -0
- package/dist/744.bundle.53b07e48e07a11e920ac.js +2355 -0
- package/dist/75788f12450d4c5ed494.wasm +0 -0
- package/dist/75a0c2dfe07b824c7d21.wasm +0 -0
- package/dist/780.bundle.f60ac1906e0ae080dee8.js +4769 -0
- package/dist/790.bundle.b4df2c5d78a2a565b150.js +454 -0
- package/dist/799.bundle.3fff638815e355b0bdfd.js +271 -0
- package/dist/806.css +1 -0
- package/dist/82.bundle.a24015533196e05d190e.js +6104 -0
- package/dist/917.bundle.a094ae9e9de6df4119ae.js +196 -0
- package/dist/926.bundle.dbc9d0e591cb9217fda2.js +72552 -0
- package/dist/935.bundle.deeffff0e4f7b528e3c3.js +1849 -0
- package/dist/945.min.worker.js +2 -0
- package/dist/945.min.worker.js.map +1 -0
- package/dist/953.bundle.c14d9eb6400f697019ee.js +449 -0
- package/dist/973.bundle.4100cf103686b64938d1.js +261 -0
- package/dist/976.bundle.2720eb892514e1818018.js +2725 -0
- package/dist/984.bundle.157fc66ea5040e1364af.js +1842 -0
- package/dist/_headers +6 -0
- package/dist/_redirects +6 -0
- package/dist/app-config.js +215 -0
- package/dist/app.bundle.253eeb2a7ee986e89c50.js +154621 -0
- package/dist/app.bundle.css +21 -0
- package/dist/assets/android-chrome-144x144.png +0 -0
- package/dist/assets/android-chrome-192x192.png +0 -0
- package/dist/assets/android-chrome-256x256.png +0 -0
- package/dist/assets/android-chrome-36x36.png +0 -0
- package/dist/assets/android-chrome-384x384.png +0 -0
- package/dist/assets/android-chrome-48x48.png +0 -0
- package/dist/assets/android-chrome-512x512.png +0 -0
- package/dist/assets/android-chrome-72x72.png +0 -0
- package/dist/assets/android-chrome-96x96.png +0 -0
- package/dist/assets/apple-touch-icon-1024x1024.png +0 -0
- package/dist/assets/apple-touch-icon-114x114.png +0 -0
- package/dist/assets/apple-touch-icon-120x120.png +0 -0
- package/dist/assets/apple-touch-icon-144x144.png +0 -0
- package/dist/assets/apple-touch-icon-152x152.png +0 -0
- package/dist/assets/apple-touch-icon-167x167.png +0 -0
- package/dist/assets/apple-touch-icon-180x180.png +0 -0
- package/dist/assets/apple-touch-icon-57x57.png +0 -0
- package/dist/assets/apple-touch-icon-60x60.png +0 -0
- package/dist/assets/apple-touch-icon-72x72.png +0 -0
- package/dist/assets/apple-touch-icon-76x76.png +0 -0
- package/dist/assets/apple-touch-icon-precomposed.png +0 -0
- package/dist/assets/apple-touch-icon.png +0 -0
- package/dist/assets/apple-touch-startup-image-1182x2208.png +0 -0
- package/dist/assets/apple-touch-startup-image-1242x2148.png +0 -0
- package/dist/assets/apple-touch-startup-image-1496x2048.png +0 -0
- package/dist/assets/apple-touch-startup-image-1536x2008.png +0 -0
- package/dist/assets/apple-touch-startup-image-320x460.png +0 -0
- package/dist/assets/apple-touch-startup-image-640x1096.png +0 -0
- package/dist/assets/apple-touch-startup-image-640x920.png +0 -0
- package/dist/assets/apple-touch-startup-image-748x1024.png +0 -0
- package/dist/assets/apple-touch-startup-image-750x1294.png +0 -0
- package/dist/assets/apple-touch-startup-image-768x1004.png +0 -0
- package/dist/assets/browserconfig.xml +12 -0
- package/dist/assets/coast-228x228.png +0 -0
- package/dist/assets/favicon-16x16.png +0 -0
- package/dist/assets/favicon-32x32.png +0 -0
- package/dist/assets/favicon.ico +0 -0
- package/dist/assets/firefox_app_128x128.png +0 -0
- package/dist/assets/firefox_app_512x512.png +0 -0
- package/dist/assets/firefox_app_60x60.png +0 -0
- package/dist/assets/manifest.webapp +14 -0
- package/dist/assets/mstile-144x144.png +0 -0
- package/dist/assets/mstile-150x150.png +0 -0
- package/dist/assets/mstile-310x150.png +0 -0
- package/dist/assets/mstile-310x310.png +0 -0
- package/dist/assets/mstile-70x70.png +0 -0
- package/dist/assets/yandex-browser-50x50.png +0 -0
- package/dist/assets/yandex-browser-manifest.json +9 -0
- package/dist/b6b803111e2d06a825bd.wasm +0 -0
- package/dist/c22b37c3488e1d6c3aa4.wasm +0 -0
- package/dist/cornerstoneDICOMImageLoader.min.js +2 -0
- package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -0
- package/dist/dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js +12 -0
- package/dist/dicomMicroscopyViewer.min.js +3 -0
- package/dist/dicomMicroscopyViewer.min.js.LICENSE.txt +29 -0
- package/dist/es6-shim.min.js +12 -0
- package/dist/google.js +75 -0
- package/dist/index.html +1 -0
- package/dist/index.worker.ea71efba2ce63c499055.worker.js +2 -0
- package/dist/index.worker.ea71efba2ce63c499055.worker.js.map +1 -0
- package/dist/index.worker.min.worker.js +2 -0
- package/dist/index.worker.min.worker.js.map +1 -0
- package/dist/init-service-worker.js +59 -0
- package/dist/manifest.json +59 -0
- package/dist/ohif-logo-light.svg +15 -0
- package/dist/ohif-logo.svg +15 -0
- package/dist/oidc-client.min.js +46 -0
- package/dist/polyfill.min.js +1 -0
- package/dist/silent-refresh.html +16 -0
- package/dist/sw.js +56 -0
- package/package.json +24 -23
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
(globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[799],{
|
|
3
|
+
|
|
4
|
+
/***/ 91799:
|
|
5
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6
|
+
|
|
7
|
+
__webpack_require__.r(__webpack_exports__);
|
|
8
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
10
|
+
/* harmony export */ });
|
|
11
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32735);
|
|
12
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60216);
|
|
13
|
+
/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
|
|
14
|
+
/* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48501);
|
|
15
|
+
/* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(43803);
|
|
16
|
+
/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21572);
|
|
17
|
+
/* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57270);
|
|
18
|
+
/* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(43418);
|
|
19
|
+
/* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(77331);
|
|
20
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
const {
|
|
30
|
+
formatDate
|
|
31
|
+
} = _ohif_core__WEBPACK_IMPORTED_MODULE_2__.utils;
|
|
32
|
+
function TrackedCornerstoneViewport(props) {
|
|
33
|
+
const {
|
|
34
|
+
displaySets,
|
|
35
|
+
viewportIndex,
|
|
36
|
+
viewportLabel,
|
|
37
|
+
servicesManager,
|
|
38
|
+
extensionManager,
|
|
39
|
+
viewportOptions
|
|
40
|
+
} = props;
|
|
41
|
+
const {
|
|
42
|
+
t
|
|
43
|
+
} = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('TrackedViewport');
|
|
44
|
+
const {
|
|
45
|
+
measurementService,
|
|
46
|
+
cornerstoneViewportService
|
|
47
|
+
} = servicesManager.services;
|
|
48
|
+
|
|
49
|
+
// Todo: handling more than one displaySet on the same viewport
|
|
50
|
+
const displaySet = displaySets[0];
|
|
51
|
+
const [trackedMeasurements] = (0,_getContextModule__WEBPACK_IMPORTED_MODULE_6__/* .useTrackedMeasurements */ .I)();
|
|
52
|
+
const [isTracked, setIsTracked] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
53
|
+
const [trackedMeasurementUID, setTrackedMeasurementUID] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
|
|
54
|
+
const [viewportElem, setViewportElem] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
|
|
55
|
+
const {
|
|
56
|
+
trackedSeries
|
|
57
|
+
} = trackedMeasurements.context;
|
|
58
|
+
const viewportId = viewportOptions.viewportId;
|
|
59
|
+
const {
|
|
60
|
+
SeriesDate,
|
|
61
|
+
SeriesDescription,
|
|
62
|
+
SeriesInstanceUID,
|
|
63
|
+
SeriesNumber
|
|
64
|
+
} = displaySet;
|
|
65
|
+
const {
|
|
66
|
+
PatientID,
|
|
67
|
+
PatientName,
|
|
68
|
+
PatientSex,
|
|
69
|
+
PatientAge,
|
|
70
|
+
SliceThickness,
|
|
71
|
+
SpacingBetweenSlices,
|
|
72
|
+
ManufacturerModelName
|
|
73
|
+
} = displaySet.images[0];
|
|
74
|
+
const updateIsTracked = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
|
|
75
|
+
const viewport = cornerstoneViewportService.getCornerstoneViewportByIndex(viewportIndex);
|
|
76
|
+
if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__.BaseVolumeViewport) {
|
|
77
|
+
// A current image id will only exist for volume viewports that can have measurements tracked.
|
|
78
|
+
// Typically these are those volume viewports for the series of acquisition.
|
|
79
|
+
const currentImageId = viewport?.getCurrentImageId();
|
|
80
|
+
if (!currentImageId) {
|
|
81
|
+
if (isTracked) {
|
|
82
|
+
setIsTracked(false);
|
|
83
|
+
}
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (trackedSeries.includes(SeriesInstanceUID) !== isTracked) {
|
|
88
|
+
setIsTracked(!isTracked);
|
|
89
|
+
}
|
|
90
|
+
}, [isTracked, trackedMeasurements, viewportIndex, SeriesInstanceUID]);
|
|
91
|
+
const onElementEnabled = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(evt => {
|
|
92
|
+
if (evt.detail.element !== viewportElem) {
|
|
93
|
+
// The VOLUME_VIEWPORT_NEW_VOLUME event allows updateIsTracked to reliably fetch the image id for a volume viewport.
|
|
94
|
+
evt.detail.element?.addEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, updateIsTracked);
|
|
95
|
+
setViewportElem(evt.detail.element);
|
|
96
|
+
}
|
|
97
|
+
}, [updateIsTracked, viewportElem]);
|
|
98
|
+
const onElementDisabled = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
|
|
99
|
+
viewportElem?.removeEventListener(_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME, updateIsTracked);
|
|
100
|
+
}, [updateIsTracked, viewportElem]);
|
|
101
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(updateIsTracked, [updateIsTracked]);
|
|
102
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
103
|
+
const {
|
|
104
|
+
unsubscribe
|
|
105
|
+
} = cornerstoneViewportService.subscribe(cornerstoneViewportService.EVENTS.VIEWPORT_DATA_CHANGED, props => {
|
|
106
|
+
if (props.viewportIndex !== viewportIndex) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
updateIsTracked();
|
|
110
|
+
});
|
|
111
|
+
return () => {
|
|
112
|
+
unsubscribe();
|
|
113
|
+
};
|
|
114
|
+
}, [updateIsTracked, viewportIndex]);
|
|
115
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
116
|
+
if (isTracked) {
|
|
117
|
+
_cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {
|
|
118
|
+
global: {
|
|
119
|
+
lineDash: ''
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
cornerstoneViewportService.getRenderingEngine().renderViewport(viewportId);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
_cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {
|
|
126
|
+
global: {
|
|
127
|
+
lineDash: '4,4'
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
cornerstoneViewportService.getRenderingEngine().renderViewport(viewportId);
|
|
131
|
+
return () => {
|
|
132
|
+
_cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {});
|
|
133
|
+
};
|
|
134
|
+
}, [isTracked]);
|
|
135
|
+
function switchMeasurement(direction) {
|
|
136
|
+
const newTrackedMeasurementUID = _getNextMeasurementUID(direction, servicesManager, trackedMeasurementUID, trackedMeasurements);
|
|
137
|
+
if (!newTrackedMeasurementUID) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
setTrackedMeasurementUID(newTrackedMeasurementUID);
|
|
141
|
+
measurementService.jumpToMeasurement(viewportIndex, newTrackedMeasurementUID);
|
|
142
|
+
}
|
|
143
|
+
const getCornerstoneViewport = () => {
|
|
144
|
+
const {
|
|
145
|
+
component: Component
|
|
146
|
+
} = extensionManager.getModuleEntry('@ohif/extension-cornerstone.viewportModule.cornerstone');
|
|
147
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, _extends({}, props, {
|
|
148
|
+
onElementEnabled: onElementEnabled,
|
|
149
|
+
onElementDisabled: onElementDisabled
|
|
150
|
+
}));
|
|
151
|
+
};
|
|
152
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .ViewportActionBar */ .uY, {
|
|
153
|
+
onDoubleClick: evt => {
|
|
154
|
+
evt.stopPropagation();
|
|
155
|
+
evt.preventDefault();
|
|
156
|
+
},
|
|
157
|
+
useAltStyling: isTracked,
|
|
158
|
+
onArrowsClick: direction => switchMeasurement(direction),
|
|
159
|
+
getStatusComponent: () => _getStatusComponent(isTracked),
|
|
160
|
+
studyData: {
|
|
161
|
+
label: viewportLabel,
|
|
162
|
+
studyDate: formatDate(SeriesDate),
|
|
163
|
+
// TODO: This is series date. Is that ok?
|
|
164
|
+
currentSeries: SeriesNumber,
|
|
165
|
+
// TODO - switch entire currentSeries to be UID based or actual position based
|
|
166
|
+
seriesDescription: SeriesDescription,
|
|
167
|
+
patientInformation: {
|
|
168
|
+
patientName: PatientName ? _ohif_core__WEBPACK_IMPORTED_MODULE_2__["default"].utils.formatPN(PatientName) : '',
|
|
169
|
+
patientSex: PatientSex || '',
|
|
170
|
+
patientAge: PatientAge || '',
|
|
171
|
+
MRN: PatientID || '',
|
|
172
|
+
thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}mm` : '',
|
|
173
|
+
spacing: SpacingBetweenSlices !== undefined ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}mm` : '',
|
|
174
|
+
scanner: ManufacturerModelName || ''
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
|
178
|
+
className: "relative flex flex-row w-full h-full overflow-hidden"
|
|
179
|
+
}, getCornerstoneViewport()));
|
|
180
|
+
}
|
|
181
|
+
TrackedCornerstoneViewport.propTypes = {
|
|
182
|
+
displaySets: prop_types__WEBPACK_IMPORTED_MODULE_1___default().arrayOf((prop_types__WEBPACK_IMPORTED_MODULE_1___default().object.isRequired)).isRequired,
|
|
183
|
+
viewportIndex: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().number.isRequired),
|
|
184
|
+
dataSource: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object),
|
|
185
|
+
children: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().node),
|
|
186
|
+
customProps: (prop_types__WEBPACK_IMPORTED_MODULE_1___default().object)
|
|
187
|
+
};
|
|
188
|
+
TrackedCornerstoneViewport.defaultProps = {
|
|
189
|
+
customProps: {}
|
|
190
|
+
};
|
|
191
|
+
function _getNextMeasurementUID(direction, servicesManager, trackedMeasurementId, trackedMeasurements) {
|
|
192
|
+
const {
|
|
193
|
+
measurementService,
|
|
194
|
+
viewportGridService
|
|
195
|
+
} = servicesManager.services;
|
|
196
|
+
const measurements = measurementService.getMeasurements();
|
|
197
|
+
const {
|
|
198
|
+
activeViewportIndex,
|
|
199
|
+
viewports
|
|
200
|
+
} = viewportGridService.getState();
|
|
201
|
+
const {
|
|
202
|
+
displaySetInstanceUIDs: activeViewportDisplaySetInstanceUIDs
|
|
203
|
+
} = viewports[activeViewportIndex];
|
|
204
|
+
const {
|
|
205
|
+
trackedSeries
|
|
206
|
+
} = trackedMeasurements.context;
|
|
207
|
+
|
|
208
|
+
// Get the potentially trackable measurements for the series of the
|
|
209
|
+
// active viewport.
|
|
210
|
+
// The measurements to jump between are the same
|
|
211
|
+
// regardless if this series is tracked or not.
|
|
212
|
+
|
|
213
|
+
const filteredMeasurements = measurements.filter(m => trackedSeries.includes(m.referenceSeriesUID) && activeViewportDisplaySetInstanceUIDs.includes(m.displaySetInstanceUID));
|
|
214
|
+
if (!filteredMeasurements.length) {
|
|
215
|
+
// No measurements on this series.
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
const measurementCount = filteredMeasurements.length;
|
|
219
|
+
const uids = filteredMeasurements.map(fm => fm.uid);
|
|
220
|
+
let measurementIndex = uids.findIndex(uid => uid === trackedMeasurementId);
|
|
221
|
+
if (measurementIndex === -1) {
|
|
222
|
+
// Not tracking a measurement, or previous measurement now deleted, revert to 0.
|
|
223
|
+
measurementIndex = 0;
|
|
224
|
+
} else {
|
|
225
|
+
if (direction === 'left') {
|
|
226
|
+
measurementIndex--;
|
|
227
|
+
if (measurementIndex < 0) {
|
|
228
|
+
measurementIndex = measurementCount - 1;
|
|
229
|
+
}
|
|
230
|
+
} else if (direction === 'right') {
|
|
231
|
+
measurementIndex++;
|
|
232
|
+
if (measurementIndex === measurementCount) {
|
|
233
|
+
measurementIndex = 0;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
const newTrackedMeasurementId = uids[measurementIndex];
|
|
238
|
+
return newTrackedMeasurementId;
|
|
239
|
+
}
|
|
240
|
+
function _getStatusComponent(isTracked) {
|
|
241
|
+
const trackedIcon = isTracked ? 'status-tracked' : 'status-untracked';
|
|
242
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
|
243
|
+
className: "relative"
|
|
244
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Tooltip */ .u, {
|
|
245
|
+
position: "bottom-left",
|
|
246
|
+
content: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
|
247
|
+
className: "flex py-2"
|
|
248
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
|
249
|
+
className: "flex pt-1"
|
|
250
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .JO, {
|
|
251
|
+
name: "info-link",
|
|
252
|
+
className: "w-4 text-primary-main"
|
|
253
|
+
})), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
|
254
|
+
className: "flex ml-4"
|
|
255
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
|
|
256
|
+
className: "text-base text-common-light"
|
|
257
|
+
}, isTracked ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Series is", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
|
|
258
|
+
className: "font-bold text-white"
|
|
259
|
+
}, " tracked"), " and can be viewed ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " in the measurement panel") : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, "Measurements for", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", {
|
|
260
|
+
className: "font-bold text-white"
|
|
261
|
+
}, " untracked "), "series ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " will not be shown in the ", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("br", null), " measurements panel"))))
|
|
262
|
+
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ohif_ui__WEBPACK_IMPORTED_MODULE_3__/* .Icon */ .JO, {
|
|
263
|
+
name: trackedIcon,
|
|
264
|
+
className: "text-primary-light"
|
|
265
|
+
})));
|
|
266
|
+
}
|
|
267
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (TrackedCornerstoneViewport);
|
|
268
|
+
|
|
269
|
+
/***/ })
|
|
270
|
+
|
|
271
|
+
}]);
|
package/dist/806.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.dicom-tag-browser-table{margin-left:auto;margin-right:auto}.dicom-tag-browser-table-wrapper{overflow-x:scroll}.dicom-tag-browser-table tr{border-top:1px solid #ddd;color:#fff;padding-left:10px;padding-right:10px;white-space:nowrap}.stick{overflow:clip;position:sticky}.dicom-tag-browser-content{overflow:hidden;padding-bottom:50px;width:100%}.dicom-tag-browser-instance-range .range{height:20px}.dicom-tag-browser-instance-range{padding:20px 0}.dicom-tag-browser-table td.dicom-tag-browser-table-center{text-align:center}.dicom-tag-browser-table th{color:"#20A5D6";padding-left:10px;padding-right:10px;text-align:center}.dicom-tag-browser-table th.dicom-tag-browser-table-left{text-align:left}
|