@ohif/app 3.8.0-beta.28 → 3.8.0-beta.29

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 (41) hide show
  1. package/dist/{12.bundle.9143213c69b6d81bb096.js → 12.bundle.abb6ab88fda1125f3b47.js} +9 -11
  2. package/dist/{125.bundle.253395f320b72180da63.js → 125.bundle.df666cb677e5a8982157.js} +4 -5
  3. package/dist/{170.bundle.4d78d3772d1acb65fded.js → 170.bundle.57dff48fc09ba5fa844b.js} +50 -69
  4. package/dist/{181.bundle.87f1df4f401b8023cfd1.js → 181.bundle.ae92b8a551d041d06e90.js} +58 -70
  5. package/dist/181.css +1 -1
  6. package/dist/{185.bundle.09cc8eea4e4056374e36.js → 185.bundle.0251703d5b77f265cc11.js} +21 -26
  7. package/dist/{19.bundle.d6a9a105cb89ce17cc8b.js → 19.bundle.55796dd5a6dfecf02682.js} +112 -127
  8. package/dist/{199.bundle.6f0caf3db1c473be990d.js → 199.bundle.f62693c1405b52bc6580.js} +18 -20
  9. package/dist/{202.bundle.a607e9ab460999d8c0c8.js → 202.bundle.0ca2f2479d2578f539b0.js} +9 -1
  10. package/dist/{220.bundle.f7e1c96c94245e70f2be.js → 223.bundle.d4ac6ef2cfe47a9c4afc.js} +4422 -3671
  11. package/dist/{23.bundle.e008ad788170f2ed5569.js → 23.bundle.9d989522a6e4fdcb9c72.js} +1 -1
  12. package/dist/{250.bundle.5634282a01bd6e15b70d.js → 250.bundle.09c69d348a5d965debc8.js} +17 -22
  13. package/dist/{281.bundle.ed6f4765a49b67b6fa43.js → 281.bundle.a934356f89499eb6ec48.js} +23 -25
  14. package/dist/{359.bundle.f935bae2cc0ad1065f50.js → 359.bundle.1f2a03766e18f1e3cca4.js} +24 -27
  15. package/dist/{410.bundle.caba83fcaf6ee8caabe6.js → 410.bundle.b59d9d09407856f9babc.js} +22 -26
  16. package/dist/{417.bundle.af0a207c29b109f84159.js → 417.bundle.5c66801d23d0e98c00e6.js} +2 -2
  17. package/dist/{451.bundle.57c21db5d003c75e9d61.js → 451.bundle.68a551a7d1746cf904cb.js} +26 -32
  18. package/dist/{456.bundle.a2574e369e5fd60c0ed7.js → 456.bundle.475e0e878872ad61e39e.js} +392 -515
  19. package/dist/{466.bundle.e59923d0514cbfa2482a.js → 466.bundle.667b31151880a262d475.js} +101 -130
  20. package/dist/{471.bundle.49c8d281adbae4a2c4df.js → 471.bundle.5809b10f75c8fc2f7167.js} +27 -33
  21. package/dist/{483.bundle.ef869872fd6fd7aa5b6b.js → 483.bundle.775438e850fbee318b63.js} +128 -170
  22. package/dist/{485.bundle.8667a696ac2eaf99e4fa.js → 485.bundle.5b6c33cc43d8f3470642.js} +1 -1
  23. package/dist/{506.bundle.c7927979078083de7126.js → 506.bundle.dcae1c16f61651daa74d.js} +13 -18
  24. package/dist/{530.bundle.a03b6f942ace3e1baa1e.js → 530.bundle.f904325ef4195d69ac0e.js} +10 -3
  25. package/dist/{26.bundle.c92012465cee00a2a708.js → 566.bundle.4840518afd323372c70f.js} +1136 -442
  26. package/dist/{613.bundle.dae1b29d8c4912dde32c.js → 613.bundle.d080a15569910ff63fc8.js} +19 -24
  27. package/dist/{661.bundle.65dd579322b265c6e321.js → 661.bundle.28ef6d8cd035876bd8e2.js} +40 -12
  28. package/dist/{686.bundle.dccef1f36e4bc79bcc48.js → 686.bundle.62c827fe4f0d054c164e.js} +4 -5
  29. package/dist/{687.bundle.96fde3d28aaeeeea7b8f.js → 687.bundle.fc36244c7ec3b1146f13.js} +19 -35
  30. package/dist/{738.bundle.99bc9fe71e5dccd0b0cd.js → 738.bundle.7c78f93180d8405b167c.js} +434 -596
  31. package/dist/{814.bundle.76638a0bfd57b81339fa.js → 814.bundle.9c9805cd0d54a8ea9697.js} +9 -11
  32. package/dist/{822.bundle.775a62e1f79c403f3aed.js → 822.bundle.55759fd8e9b0b489cc6b.js} +13 -15
  33. package/dist/{886.bundle.c8dd3ecc42a4253de278.js → 886.bundle.4496fc7fb83b8c897d20.js} +18 -22
  34. package/dist/{95.bundle.db9d2d504abc5dd4fdfa.js → 95.bundle.d7a9f450bed3b770504d.js} +3 -3
  35. package/dist/{965.bundle.39dda96bd5335d372afb.js → 965.bundle.26d8f982af77f304a038.js} +91 -115
  36. package/dist/{app.bundle.75411c4a0421eb19f478.js → app.bundle.88eb088709ac23e29da0.js} +4643 -5947
  37. package/dist/app.bundle.css +11 -11
  38. package/dist/{dicom-microscopy-viewer.bundle.2c146384eb9466d02ff8.js → dicom-microscopy-viewer.bundle.a7d5060eead13771e784.js} +1 -1
  39. package/dist/index.html +1 -1
  40. package/dist/sw.js +1 -1
  41. package/package.json +17 -17
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[613],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[613],{
3
3
 
4
4
  /***/ 32613:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -381,10 +381,9 @@ const extensionDependencies = {
381
381
  '@ohif/extension-cornerstone': '^3.0.0',
382
382
  '@ohif/extension-cornerstone-dicom-seg': '^3.0.0'
383
383
  };
384
- function modeFactory(_ref) {
385
- let {
386
- modeConfiguration
387
- } = _ref;
384
+ function modeFactory({
385
+ modeConfiguration
386
+ }) {
388
387
  return {
389
388
  /**
390
389
  * Mode ID, which should be unique among modes used by the viewer. This ID
@@ -401,12 +400,11 @@ function modeFactory(_ref) {
401
400
  * Runs when the Mode Route is mounted to the DOM. Usually used to initialize
402
401
  * Services and other resources.
403
402
  */
404
- onModeEnter: _ref2 => {
405
- let {
406
- servicesManager,
407
- extensionManager,
408
- commandsManager
409
- } = _ref2;
403
+ onModeEnter: ({
404
+ servicesManager,
405
+ extensionManager,
406
+ commandsManager
407
+ }) => {
410
408
  const {
411
409
  measurementService,
412
410
  toolbarService,
@@ -444,10 +442,9 @@ function modeFactory(_ref) {
444
442
  toolbarService.addButtons(src_toolbarButtons);
445
443
  toolbarService.createButtonSection('primary', ['Zoom', 'WindowLevel', 'Pan', 'Capture', 'Layout', 'MPR', 'Crosshairs', 'MoreTools']);
446
444
  },
447
- onModeExit: _ref3 => {
448
- let {
449
- servicesManager
450
- } = _ref3;
445
+ onModeExit: ({
446
+ servicesManager
447
+ }) => {
451
448
  const {
452
449
  toolGroupService,
453
450
  syncGroupService,
@@ -470,10 +467,9 @@ function modeFactory(_ref) {
470
467
  * modalities of the selected studies. Currently we don't have stack viewport
471
468
  * segmentations and we should exclude them
472
469
  */
473
- isValidMode: _ref4 => {
474
- let {
475
- modalities
476
- } = _ref4;
470
+ isValidMode: ({
471
+ modalities
472
+ }) => {
477
473
  // Don't show the mode if the selected studies have only one modality
478
474
  // that is not supported by the mode
479
475
  const modalitiesArray = modalities.split('\\');
@@ -496,11 +492,10 @@ function modeFactory(_ref) {
496
492
  */
497
493
  routes: [{
498
494
  path: 'template',
499
- layoutTemplate: _ref5 => {
500
- let {
501
- location,
502
- servicesManager
503
- } = _ref5;
495
+ layoutTemplate: ({
496
+ location,
497
+ servicesManager
498
+ }) => {
504
499
  return {
505
500
  id: ohif.layout,
506
501
  props: {
@@ -1,4 +1,4 @@
1
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[661],{
1
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[661],{
2
2
 
3
3
  /***/ 97604:
4
4
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -229,7 +229,8 @@ function multipartEncode(datasets) {
229
229
  * @returns {Array} The content
230
230
  */
231
231
  function multipartDecode(response) {
232
- var message = new Uint8Array(response);
232
+ // Use the raw data if it is provided in an appropriate format
233
+ var message = ArrayBuffer.isView(response) ? response : new Uint8Array(response);
233
234
 
234
235
  /* Set a maximum length to search for the header boundaries, otherwise
235
236
  findToken can run for a long time
@@ -339,6 +340,8 @@ var DICOMwebClient = /*#__PURE__*/function () {
339
340
  * @param {Object=} options.headers - HTTP headers
340
341
  * @param {Array.<RequestHook>=} options.requestHooks - Request hooks.
341
342
  * @param {Object=} options.verbose - print to console request warnings and errors, default true
343
+ * @param {boolean|String} options.singlepart - retrieve singlepart for the named types.
344
+ * The available types are: bulkdata, video, image. true means all.
342
345
  */
343
346
  function DICOMwebClient(options) {
344
347
  _classCallCheck(this, DICOMwebClient);
@@ -371,6 +374,12 @@ var DICOMwebClient = /*#__PURE__*/function () {
371
374
  } else {
372
375
  this.stowURL = this.baseURL;
373
376
  }
377
+ if (options.singlepart) {
378
+ console.log('use singlepart', options.singlepart);
379
+ this.singlepart = options.singlepart === true ? 'bulkdata,video,image' : options.singlepart;
380
+ } else {
381
+ this.singlepart = '';
382
+ }
374
383
  if ('requestHooks' in options) {
375
384
  this.requestHooks = options.requestHooks;
376
385
  }
@@ -460,7 +469,16 @@ var DICOMwebClient = /*#__PURE__*/function () {
460
469
  request.onreadystatechange = function () {
461
470
  if (request.readyState === 4) {
462
471
  if (request.status === 200) {
463
- resolve(request.response);
472
+ var contentType = request.getResponseHeader('Content-Type');
473
+ // Automatically distinguishes between multipart and singlepart in an array buffer, and
474
+ // converts them into a consistent type.
475
+ if (contentType && contentType.indexOf('multipart') !== -1) {
476
+ resolve(multipartDecode(request.response));
477
+ } else if (request.responseType === 'arraybuffer') {
478
+ resolve([request.response]);
479
+ } else {
480
+ resolve(request.response);
481
+ }
464
482
  } else if (request.status === 202) {
465
483
  if (_this.verbose) {
466
484
  console.warn('some resources already existed: ', request);
@@ -739,7 +757,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
739
757
  }
740
758
  }
741
759
  headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes);
742
- return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials).then(multipartDecode);
760
+ return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);
743
761
  }
744
762
  /**
745
763
  * Performs an HTTP GET request that accepts a multipart message with a video media type.
@@ -779,7 +797,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
779
797
  }
780
798
  }
781
799
  headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes);
782
- return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials).then(multipartDecode);
800
+ return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);
783
801
  }
784
802
  /**
785
803
  * Performs an HTTP GET request that accepts a multipart message
@@ -826,7 +844,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
826
844
  }];
827
845
  }
828
846
  headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(acceptableMediaTypes, supportedMediaTypes);
829
- return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials).then(multipartDecode);
847
+ return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);
830
848
  }
831
849
  /**
832
850
  * Performs an HTTP GET request that accepts a multipart message
@@ -859,7 +877,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
859
877
  headers.Range = DICOMwebClient._buildRangeHeaderFieldValue(byteRange);
860
878
  }
861
879
  headers.Accept = DICOMwebClient._buildMultipartAcceptHeaderFieldValue(acceptableMediaTypes, supportedMediaTypes);
862
- return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials).then(multipartDecode);
880
+ return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);
863
881
  }
864
882
  /**
865
883
  * Performs an HTTP POST request.
@@ -1177,7 +1195,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
1177
1195
  var headers = {
1178
1196
  Accept: DICOMwebClient._buildMultipartAcceptHeaderFieldValue(mediaTypes, supportedMediaTypes)
1179
1197
  };
1180
- return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials).then(multipartDecode);
1198
+ return this._httpGet(url, headers, 'arraybuffer', progressCallback, withCredentials);
1181
1199
  }
1182
1200
  var commonMediaType = DICOMwebClient._getCommonMediaType(mediaTypes);
1183
1201
  if (commonMediaType.startsWith('application')) {
@@ -1191,6 +1209,11 @@ var DICOMwebClient = /*#__PURE__*/function () {
1191
1209
  }
1192
1210
  throw new Error("Media type ".concat(commonMediaType, " is not supported for retrieval of frames."));
1193
1211
  }
1212
+ /**
1213
+ * Element in mediaTypes parameter
1214
+ * @typedef {Object} MediaType
1215
+ * @param {String} [MediaType.mediaType] - ie 'image/jpeg', 'image/png'...
1216
+ */
1194
1217
  /**
1195
1218
  * Retrieves an individual, server-side rendered DICOM Instance.
1196
1219
  *
@@ -1198,7 +1221,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
1198
1221
  * @param {String} options.studyInstanceUID - Study Instance UID
1199
1222
  * @param {String} options.seriesInstanceUID - Series Instance UID
1200
1223
  * @param {String} options.sopInstanceUID - SOP Instance UID
1201
- * @param {String[]} [options.mediaType] - Acceptable HTTP media types
1224
+ * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types
1202
1225
  * @param {Object} [options.queryParams] - HTTP query parameters
1203
1226
  * @returns {Promise<ArrayBuffer>} Rendered DICOM Instance
1204
1227
  */
@@ -1257,7 +1280,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
1257
1280
  * @param {String} options.studyInstanceUID - Study Instance UID
1258
1281
  * @param {String} options.seriesInstanceUID - Series Instance UID
1259
1282
  * @param {String} options.sopInstanceUID - SOP Instance UID
1260
- * @param {String[]} [options.mediaType] - Acceptable HTTP media types
1283
+ * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types
1261
1284
  * @param {Object} [options.queryParams] - HTTP query parameters
1262
1285
  * @returns {ArrayBuffer} Thumbnail
1263
1286
  */
@@ -1308,7 +1331,7 @@ var DICOMwebClient = /*#__PURE__*/function () {
1308
1331
  * @param {String} options.seriesInstanceUID - Series Instance UID
1309
1332
  * @param {String} options.sopInstanceUID - SOP Instance UID
1310
1333
  * @param {String} options.frameNumbers - One-based indices of Frame Items
1311
- * @param {String[]} [options.mediaType] - Acceptable HTTP media types
1334
+ * @param {MediaType[]} [options.mediaTypes] - Acceptable HTTP media types
1312
1335
  * @param {Object} [options.queryParams] - HTTP query parameters
1313
1336
  * @returns {ArrayBuffer[]} Rendered Frame Items as byte arrays
1314
1337
  */
@@ -1523,7 +1546,9 @@ var DICOMwebClient = /*#__PURE__*/function () {
1523
1546
  * See http://dicom.nema.org/medical/dicom/current/output/chtml/part18/sect_6.5.5.html
1524
1547
  *
1525
1548
  * @param {Object} options
1526
- * @param {String} BulkDataURI - URI for retrieval of bulkdata
1549
+ * @param {string} options.BulkDataURI to retrieve
1550
+ * @param {Array} options.mediaTypes to use to fetch the URI
1551
+ * @param {string} options.byteRange to request a sub-range (only valid on single part)
1527
1552
  * @returns {Promise<Array>} Bulkdata parts
1528
1553
  */
1529
1554
  }, {
@@ -1539,6 +1564,9 @@ var DICOMwebClient = /*#__PURE__*/function () {
1539
1564
  withCredentials = _options$withCredenti3 === void 0 ? false : _options$withCredenti3;
1540
1565
  var _options$progressCall3 = options.progressCallback,
1541
1566
  progressCallback = _options$progressCall3 === void 0 ? false : _options$progressCall3;
1567
+ if (this.singlepart.indexOf('bulkdata') !== -1) {
1568
+ return this._httpGet(url, options.headers, 'arraybuffer', null, withCredentials);
1569
+ }
1542
1570
  if (!mediaTypes) {
1543
1571
  return this._httpGetMultipartApplicationOctetStream(url, mediaTypes, byteRange, false, false, withCredentials);
1544
1572
  }
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[686],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[686],{
3
3
 
4
4
  /***/ 39686:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -13,10 +13,9 @@ __webpack_require__.r(__webpack_exports__);
13
13
  /* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);
14
14
 
15
15
 
16
- function OHIFCornerstoneVideoViewport(_ref) {
17
- let {
18
- displaySets
19
- } = _ref;
16
+ function OHIFCornerstoneVideoViewport({
17
+ displaySets
18
+ }) {
20
19
  if (displaySets && displaySets.length > 1) {
21
20
  throw new Error('OHIFCornerstoneVideoViewport: only one display set is supported for dicom video right now');
22
21
  }
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (self["webpackChunk"] = self["webpackChunk"] || []).push([[687],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[687],{
3
3
 
4
4
  /***/ 78687:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -328,12 +328,9 @@ const findingsContextMenu = {
328
328
  menus: [{
329
329
  id: 'forExistingMeasurement',
330
330
  // selector restricts context menu to when there is nearbyToolData
331
- selector: _ref => {
332
- let {
333
- nearbyToolData
334
- } = _ref;
335
- return !!nearbyToolData;
336
- },
331
+ selector: ({
332
+ nearbyToolData
333
+ }) => !!nearbyToolData,
337
334
  items: [{
338
335
  customizationType: 'ohif.contextSubMenu',
339
336
  label: 'Site',
@@ -362,23 +359,17 @@ const findingsContextMenu = {
362
359
  // and right click on a measurement.
363
360
  {
364
361
  label: 'IncludeSubMenu',
365
- selector: _ref2 => {
366
- let {
367
- protocol
368
- } = _ref2;
369
- return protocol?.id === '@ohif/mnGrid';
370
- },
362
+ selector: ({
363
+ protocol
364
+ }) => protocol?.id === '@ohif/mnGrid',
371
365
  delegating: true,
372
366
  subMenu: 'orientationSelectionSubMenu'
373
367
  }]
374
368
  }, {
375
369
  id: 'orientationSelectionSubMenu',
376
- selector: _ref3 => {
377
- let {
378
- nearbyToolData
379
- } = _ref3;
380
- return false;
381
- },
370
+ selector: ({
371
+ nearbyToolData
372
+ }) => false,
382
373
  items: [{
383
374
  customizationType: '@ohif/contextMenuAnnotationCode',
384
375
  code: 'SCT:24422004'
@@ -388,12 +379,9 @@ const findingsContextMenu = {
388
379
  }]
389
380
  }, {
390
381
  id: 'findingSelectionSubMenu',
391
- selector: _ref4 => {
392
- let {
393
- nearbyToolData
394
- } = _ref4;
395
- return false;
396
- },
382
+ selector: ({
383
+ nearbyToolData
384
+ }) => false,
397
385
  items: [{
398
386
  customizationType: '@ohif/contextMenuAnnotationCode',
399
387
  code: 'SCT:371861004'
@@ -403,12 +391,9 @@ const findingsContextMenu = {
403
391
  }]
404
392
  }, {
405
393
  id: 'siteSelectionSubMenu',
406
- selector: _ref5 => {
407
- let {
408
- nearbyToolData
409
- } = _ref5;
410
- return !!nearbyToolData;
411
- },
394
+ selector: ({
395
+ nearbyToolData
396
+ }) => !!nearbyToolData,
412
397
  items: [{
413
398
  customizationType: '@ohif/contextMenuAnnotationCode',
414
399
  code: 'SCT:69536005'
@@ -504,10 +489,9 @@ const testExtension = {
504
489
  * value as another series description in an already matched display set selector named with the value
505
490
  * in `sameDisplaySetId`
506
491
  */
507
- preRegistration: _ref => {
508
- let {
509
- servicesManager
510
- } = _ref;
492
+ preRegistration: ({
493
+ servicesManager
494
+ }) => {
511
495
  const {
512
496
  hangingProtocolService
513
497
  } = servicesManager.services;