@ohif/app 3.7.0-beta.5 → 3.7.0-beta.50

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.
Files changed (54) hide show
  1. package/dist/{917.bundle.24fc5ca2280d2980bf0f.js → 12.bundle.7348933f311b7e2e7d1e.js} +6 -6
  2. package/dist/{295.bundle.957b1159fec14b9199a1.js → 125.bundle.1ae4c6313c31cd0502cc.js} +4 -4
  3. package/dist/{208.bundle.e50761cf714ac772d9cc.js → 128.bundle.d933d385a22b1ce9ac77.js} +6 -6
  4. package/dist/{616.bundle.cbb2e0a23b1343b6441f.js → 150.bundle.e6880fd33346f8c24f6e.js} +148 -103
  5. package/dist/{351.bundle.0742237651aef9694a65.js → 181.bundle.234fef330d4fe6baca8b.js} +139 -128
  6. package/dist/{351.css → 181.css} +1 -1
  7. package/dist/{606.bundle.5d876f5f3dd8287f0a28.js → 202.bundle.ac1e5e25d4daf54581b1.js} +3705 -981
  8. package/dist/{926.bundle.dbc9d0e591cb9217fda2.js → 220.bundle.f7e1c96c94245e70f2be.js} +990 -400
  9. package/dist/{664.bundle.09abae984223969d1bde.js → 23.bundle.e008ad788170f2ed5569.js} +5 -6
  10. package/dist/{976.bundle.3b8f97b61cdfa7dc32e3.js → 236.bundle.765f3c70e21f29ab2e89.js} +38 -24
  11. package/dist/{55.bundle.550a823e75eb608e8d5e.js → 250.bundle.3bcee6d765a209281ddd.js} +37 -25
  12. package/dist/{973.bundle.77245411064eaa3ee79a.js → 281.bundle.dcc5492f44a83edd5320.js} +18 -14
  13. package/dist/{744.bundle.81246dc9f043a17fde8a.js → 30.bundle.5e2f6eeb779d579fc16e.js} +77 -89
  14. package/dist/{192.bundle.6dc1f92074738663620f.js → 348.bundle.c2deacff008bb8c68a14.js} +18 -14
  15. package/dist/{404.bundle.b7b371a30ca5bc5a0554.js → 359.bundle.594d68e783da31f97c30.js} +13 -19
  16. package/dist/{50.bundle.135ada11018fff84d66b.js → 378.bundle.6996a4170f4f05198f23.js} +10 -8
  17. package/dist/{790.bundle.ca48b21507b91b675810.js → 410.bundle.c8759293de9af17687c4.js} +6 -6
  18. package/dist/{151.bundle.31ea35044218837bf73f.js → 417.bundle.720dc8f3a6e99f378aa9.js} +9 -11
  19. package/dist/{569.bundle.21f8ad57c06a210448b5.js → 451.bundle.9941d9134fcf747d452a.js} +62 -81
  20. package/dist/{581.bundle.dc6197189f7c88c27d4c.js → 471.bundle.c9e618aeda78362776aa.js} +43 -72
  21. package/dist/{199.bundle.dff92336f7bc36f2e484.js → 506.bundle.8a2562b7038f6c983884.js} +79 -15
  22. package/dist/{935.bundle.deeffff0e4f7b528e3c3.js → 604.bundle.a51f83e64004bca5f497.js} +2 -3
  23. package/dist/{984.bundle.0301a876361809048be0.js → 663.bundle.e839c4819de3e372d07b.js} +52 -34
  24. package/dist/{531.bundle.2a82fb1d69e5b57cc72b.js → 677.bundle.ec5f2b4707db33bd4d8e.js} +731 -447
  25. package/dist/{707.bundle.7068a46e5be26fe60fce.js → 678.bundle.84a43fe18483016344de.js} +237 -244
  26. package/dist/{205.bundle.b5a473c200dcf2bbcdb4.js → 686.bundle.70565410179f1e7d22e6.js} +4 -4
  27. package/dist/{331.bundle.bd0c13931a21d53086c9.js → 754.bundle.8a16fc8ad21fe00c2e15.js} +12346 -7519
  28. package/dist/{728.bundle.d13856835357400fef82.js → 774.bundle.8ba82ee206266eb2da5e.js} +90 -63
  29. package/dist/{381.bundle.0905e683605fcbc0895f.js → 775.bundle.2285e7e0e67878948c0d.js} +16 -16
  30. package/dist/{283.bundle.f06203ec47c287f44cea.js → 782.bundle.0ea6e2a386f4ba43d830.js} +57 -25
  31. package/dist/{82.bundle.0456c9e58fa89b131f14.js → 789.bundle.aad9b29b476ea70e1350.js} +522 -157
  32. package/dist/{642.bundle.e8d980d4ba95b0b2665f.js → 814.bundle.2e308e04f0d21b4295a9.js} +6 -6
  33. package/dist/{799.bundle.758558e64147e5aad612.js → 822.bundle.d40c439da659f0e8500d.js} +65 -16
  34. package/dist/{953.bundle.3b0189ebc11cf0946f18.js → 886.bundle.68ef58774a6837f57631.js} +11 -10
  35. package/dist/{270.bundle.4564621556b0f963a004.js → 925.bundle.a2f1103d968c53a2b8fb.js} +626 -544
  36. package/dist/945.min.worker.js +1 -1
  37. package/dist/945.min.worker.js.map +1 -1
  38. package/dist/app-config.js +7 -7
  39. package/dist/{app.bundle.3ab8624d0394f1b10a0d.js → app.bundle.00cc8e251524b80d3347.js} +59252 -59601
  40. package/dist/app.bundle.css +9 -9
  41. package/dist/cornerstoneDICOMImageLoader.min.js +1 -1
  42. package/dist/cornerstoneDICOMImageLoader.min.js.map +1 -1
  43. package/dist/{dicom-microscopy-viewer.bundle.aa60bdf008c32c39cfd7.js → dicom-microscopy-viewer.bundle.44f7fedc03a58d5911d1.js} +3 -3
  44. package/dist/google.js +6 -5
  45. package/dist/index.html +1 -1
  46. package/dist/{index.worker.1c69152d710fa7b84bce.worker.js → index.worker.e62ecca63f1a2e124230.worker.js} +2 -2
  47. package/dist/index.worker.e62ecca63f1a2e124230.worker.js.map +1 -0
  48. package/dist/sw.js +1 -1
  49. package/package.json +19 -20
  50. package/dist/780.bundle.fd0f13dc92e9caa0581e.js +0 -4769
  51. package/dist/index.worker.1c69152d710fa7b84bce.worker.js.map +0 -1
  52. /package/dist/{55.css → 250.css} +0 -0
  53. /package/dist/{806.css → 579.css} +0 -0
  54. /package/dist/{707.css → 678.css} +0 -0
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[642],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[814],{
3
3
 
4
- /***/ 73642:
4
+ /***/ 92814:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  // ESM COMPAT FLAG
@@ -13,7 +13,7 @@ __webpack_require__.d(__webpack_exports__, {
13
13
  });
14
14
 
15
15
  // EXTERNAL MODULE: ../../../node_modules/react/index.js
16
- var react = __webpack_require__(32735);
16
+ var react = __webpack_require__(43001);
17
17
  ;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/package.json
18
18
  const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-pdf"}');
19
19
  ;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/id.js
@@ -21,8 +21,8 @@ const package_namespaceObject = JSON.parse('{"u2":"@ohif/extension-dicom-pdf"}')
21
21
  const id = package_namespaceObject.u2;
22
22
  const SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-pdf`;
23
23
 
24
- // EXTERNAL MODULE: ../../core/src/index.ts + 101 modules
25
- var src = __webpack_require__(48501);
24
+ // EXTERNAL MODULE: ../../core/src/index.ts + 104 modules
25
+ var src = __webpack_require__(24966);
26
26
  ;// CONCATENATED MODULE: ../../../extensions/dicom-pdf/src/getSopClassHandlerModule.js
27
27
 
28
28
 
@@ -110,7 +110,7 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
110
110
 
111
111
 
112
112
  const Component = /*#__PURE__*/react.lazy(() => {
113
- return __webpack_require__.e(/* import() */ 295).then(__webpack_require__.bind(__webpack_require__, 56295));
113
+ return __webpack_require__.e(/* import() */ 125).then(__webpack_require__.bind(__webpack_require__, 39125));
114
114
  });
115
115
  const OHIFCornerstonePdfViewport = props => {
116
116
  return /*#__PURE__*/react.createElement(react.Suspense, {
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[799],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[822],{
3
3
 
4
- /***/ 91799:
4
+ /***/ 86822:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
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);
11
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43001);
12
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3827);
13
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__(28619);
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);
14
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24966);
15
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60082);
16
+ /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69190);
17
+ /* harmony import */ var _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26925);
18
+ /* harmony import */ var _getContextModule__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1053);
19
+ /* harmony import */ var _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(45754);
20
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
21
 
22
22
 
@@ -40,15 +40,16 @@ function TrackedCornerstoneViewport(props) {
40
40
  } = props;
41
41
  const {
42
42
  t
43
- } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('TrackedViewport');
43
+ } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .useTranslation */ .$G)('Common');
44
44
  const {
45
45
  measurementService,
46
- cornerstoneViewportService
46
+ cornerstoneViewportService,
47
+ viewportGridService
47
48
  } = servicesManager.services;
48
49
 
49
50
  // Todo: handling more than one displaySet on the same viewport
50
51
  const displaySet = displaySets[0];
51
- const [trackedMeasurements] = (0,_getContextModule__WEBPACK_IMPORTED_MODULE_6__/* .useTrackedMeasurements */ .I)();
52
+ const [trackedMeasurements, sendTrackedMeasurementsEvent] = (0,_getContextModule__WEBPACK_IMPORTED_MODULE_6__/* .useTrackedMeasurements */ .I)();
52
53
  const [isTracked, setIsTracked] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
53
54
  const [trackedMeasurementUID, setTrackedMeasurementUID] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
54
55
  const [viewportElem, setViewportElem] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null);
@@ -69,6 +70,7 @@ function TrackedCornerstoneViewport(props) {
69
70
  PatientAge,
70
71
  SliceThickness,
71
72
  SpacingBetweenSlices,
73
+ StudyDate,
72
74
  ManufacturerModelName
73
75
  } = displaySet.images[0];
74
76
  const updateIsTracked = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
@@ -132,6 +134,53 @@ function TrackedCornerstoneViewport(props) {
132
134
  _cornerstonejs_tools__WEBPACK_IMPORTED_MODULE_5__.annotation.config.style.setViewportToolStyles(viewportId, {});
133
135
  };
134
136
  }, [isTracked]);
137
+
138
+ /**
139
+ * The effect for listening to measurement service measurement added events
140
+ * and in turn firing an event to update the measurement tracking state machine.
141
+ * The TrackedCornerstoneViewport is the best place for this because when
142
+ * a measurement is added, at least one TrackedCornerstoneViewport will be in
143
+ * the DOM and thus can react to the events fired.
144
+ */
145
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
146
+ const added = measurementService.EVENTS.MEASUREMENT_ADDED;
147
+ const addedRaw = measurementService.EVENTS.RAW_MEASUREMENT_ADDED;
148
+ const subscriptions = [];
149
+ [added, addedRaw].forEach(evt => {
150
+ subscriptions.push(measurementService.subscribe(evt, _ref => {
151
+ let {
152
+ source,
153
+ measurement
154
+ } = _ref;
155
+ const {
156
+ activeViewportIndex
157
+ } = viewportGridService.getState();
158
+
159
+ // Each TrackedCornerstoneViewport receives the MeasurementService's events.
160
+ // Only send the tracked measurements event for the active viewport to avoid
161
+ // sending it more than once.
162
+ if (viewportIndex === activeViewportIndex) {
163
+ const {
164
+ referenceStudyUID: StudyInstanceUID,
165
+ referenceSeriesUID: SeriesInstanceUID
166
+ } = measurement;
167
+ sendTrackedMeasurementsEvent('SET_DIRTY', {
168
+ SeriesInstanceUID
169
+ });
170
+ sendTrackedMeasurementsEvent('TRACK_SERIES', {
171
+ viewportIndex,
172
+ StudyInstanceUID,
173
+ SeriesInstanceUID
174
+ });
175
+ }
176
+ }).unsubscribe);
177
+ });
178
+ return () => {
179
+ subscriptions.forEach(unsub => {
180
+ unsub();
181
+ });
182
+ };
183
+ }, [measurementService, sendTrackedMeasurementsEvent, viewportIndex, viewportGridService]);
135
184
  function switchMeasurement(direction) {
136
185
  const newTrackedMeasurementUID = _getNextMeasurementUID(direction, servicesManager, trackedMeasurementUID, trackedMeasurements);
137
186
  if (!newTrackedMeasurementUID) {
@@ -159,8 +208,7 @@ function TrackedCornerstoneViewport(props) {
159
208
  getStatusComponent: () => _getStatusComponent(isTracked),
160
209
  studyData: {
161
210
  label: viewportLabel,
162
- studyDate: formatDate(SeriesDate),
163
- // TODO: This is series date. Is that ok?
211
+ studyDate: formatDate(SeriesDate) || formatDate(StudyDate) || t('NoStudyDate'),
164
212
  currentSeries: SeriesNumber,
165
213
  // TODO - switch entire currentSeries to be UID based or actual position based
166
214
  seriesDescription: SeriesDescription,
@@ -169,7 +217,8 @@ function TrackedCornerstoneViewport(props) {
169
217
  patientSex: PatientSex || '',
170
218
  patientAge: PatientAge || '',
171
219
  MRN: PatientID || '',
172
- thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}mm` : '',
220
+ thickness: SliceThickness ? `${parseFloat(SliceThickness).toFixed(2)}` : '',
221
+ thicknessUnits: 'mm',
173
222
  spacing: SpacingBetweenSlices !== undefined ? `${parseFloat(SpacingBetweenSlices).toFixed(2)}mm` : '',
174
223
  scanner: ManufacturerModelName || ''
175
224
  }
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[953],{
2
+ (self["webpackChunk"] = self["webpackChunk"] || []).push([[886],{
3
3
 
4
- /***/ 27953:
4
+ /***/ 48886:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
6
6
 
7
7
  __webpack_require__.r(__webpack_exports__);
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
10
10
  /* harmony export */ });
11
- /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60216);
11
+ /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3827);
12
12
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);
13
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32735);
14
- /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21572);
15
- /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48501);
16
- /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94709);
17
- /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28619);
18
- /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(68525);
13
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43001);
14
+ /* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69190);
15
+ /* harmony import */ var _ohif_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(24966);
16
+ /* harmony import */ var _tools_modules_dicomSRModule__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64035);
17
+ /* harmony import */ var _ohif_ui__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60082);
18
+ /* harmony import */ var _utils_hydrateStructuredReport__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(38965);
19
19
  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); }
20
20
 
21
21
 
@@ -193,7 +193,8 @@ function OHIFCornerstoneSRViewport(props) {
193
193
  positionIds: null
194
194
  },
195
195
  onElementEnabled: onElementEnabled,
196
- initialImageIndex: initialImageIndex
196
+ initialImageIndex: initialImageIndex,
197
+ isJumpToMeasurementDisabled: true
197
198
  }));
198
199
  }, [activeImageDisplaySetData, viewportIndex, measurementSelected]);
199
200
  const onMeasurementChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(direction => {