@ohif/app 3.9.0-beta.77 → 3.9.0-beta.79

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 (44) hide show
  1. package/dist/{1169.bundle.a3d3d310f1d8d7e335bf.js → 1169.bundle.d32f38ab5aa329346850.js} +46 -106
  2. package/dist/{1202.bundle.1468f0e71fea0c593081.js → 1202.bundle.55f140afb05e1ad5512c.js} +503 -153
  3. package/dist/{2568.css → 1540.css} +1 -0
  4. package/dist/{1994.bundle.39ea4d1a48d42cdca49b.js → 1994.bundle.04ba989c747992f45c6e.js} +3 -3
  5. package/dist/{9824.bundle.8e8afc799f0534014fa9.js → 2119.bundle.142793bed5b53a2f4a30.js} +4 -4
  6. package/dist/{9824.css → 2119.css} +1 -0
  7. package/dist/{2650.bundle.1f7d90198b9e361dfb9c.js → 2650.bundle.feb3b241748314884ae4.js} +57 -35
  8. package/dist/{3117.bundle.c83d0f403d17104a7c4c.js → 3117.bundle.463d5fa4671a93939d36.js} +8 -7
  9. package/dist/{4210.bundle.f1af90765358215ca053.js → 4210.bundle.e81688aaa6aec1c4f973.js} +2 -2
  10. package/dist/{4842.bundle.11abbf3f8699b84a7537.js → 4842.bundle.9264e466874f0206d564.js} +12 -8
  11. package/dist/{5888.bundle.f48daf22ce156ac4956a.js → 5888.bundle.8b4c8f227376800c6e1d.js} +14 -7
  12. package/dist/{2417.bundle.4a0334c8c4047005979e.js → 5898.bundle.be696e0b355efc1c7f05.js} +1947 -1
  13. package/dist/{2281.bundle.b20397636c4b681f4463.js → 655.bundle.805114d0d89a4bd4d92d.js} +170 -66
  14. package/dist/{6591.bundle.092858f2e84426bc0010.js → 6591.bundle.5b4b8bfff223013aa46f.js} +15 -1
  15. package/dist/{7502.bundle.7f3a72a5571a00fda890.js → 7502.bundle.e37c3a247f287d282838.js} +4 -6
  16. package/dist/{3424.bundle.1b6101d721148c04242b.js → 79.bundle.b03daeeef3e6faf9dca3.js} +5 -47
  17. package/dist/{8993.bundle.256bb3c84d2564a5f3cf.js → 8993.bundle.23cd5f8560800a97d798.js} +39 -32
  18. package/dist/{2065.bundle.fc147f9fde903e0768f4.js → 8999.bundle.d9dbbf80990887877381.js} +13 -133
  19. package/dist/{9579.bundle.7212d7a737a71bb61502.js → 9579.bundle.f9c9be0c5ab6cddbde3d.js} +8 -7
  20. package/dist/{5516.bundle.f61b8aebe75f7bafd5b1.js → 962.bundle.c6dcf9d6c1d56ebff24d.js} +408 -179
  21. package/dist/app-config.js +1 -0
  22. package/dist/{app.bundle.e3ce3b1cf2fae5cedcd3.js → app.bundle.7851cb292073f6e7a0c5.js} +646 -349
  23. package/dist/index.html +1 -1
  24. package/dist/{polySeg.bundle.40b9a8c9006bb15691ee.js → polySeg.bundle.0a70e65fe89169ec7508.js} +1 -1
  25. package/dist/{suv-peak-worker.bundle.a70e70b9ef87c18b896c.js → suv-peak-worker.bundle.54d68bc1808ad3d77994.js} +1 -1
  26. package/dist/sw.js +1 -1
  27. package/package.json +18 -18
  28. package/dist/7604.bundle.42d3f08efb3a9eae4581.js +0 -1950
  29. package/dist/{1498.bundle.d8f5281952d09c57ef87.js → 1498.bundle.a2d05ac1f27d0c2d2c9f.js} +0 -0
  30. package/dist/{153.bundle.94f93195fab889e0add8.js → 153.bundle.52f9f8d3ecfc88f18ebb.js} +0 -0
  31. package/dist/{2791.bundle.597dca661f5f08060ad3.js → 2791.bundle.cdffc588e0401363be5c.js} +0 -0
  32. package/dist/{3497.bundle.a04a2444975bf50fddf8.js → 3497.bundle.512610422a2862584c55.js} +0 -0
  33. package/dist/{3962.bundle.db07d757866d3a3b20b3.js → 3962.bundle.0d49146b27c7b7dcb48a.js} +0 -0
  34. package/dist/{4353.bundle.c835b4ea70768a207c59.js → 4353.bundle.7aacb9d40bc20bb4aa36.js} +0 -0
  35. package/dist/{4978.bundle.c5d6cac06bcc9656c900.js → 4978.bundle.f580a489066e909c8dc9.js} +0 -0
  36. package/dist/{5793.bundle.eed3fe9019c31999efff.js → 5793.bundle.d1b4e887564bbb98752d.js} +0 -0
  37. package/dist/{6904.bundle.27abf08c0f2e4fe5e06d.js → 6904.bundle.da0d83fcd48a48cfaac1.js} +0 -0
  38. package/dist/{7246.bundle.d3f1bb1a40801b133810.js → 7246.bundle.32f7f871fb1016362af8.js} +0 -0
  39. package/dist/{7360.bundle.b28c83aa3910eaa427ee.js → 7360.bundle.4233f9f8747d6facdc54.js} +0 -0
  40. package/dist/{7376.bundle.1173819ab2acd8610f1e.js → 7376.bundle.f087dc1e0e16a41dedbe.js} +0 -0
  41. package/dist/{3424.css → 79.css} +1 -1
  42. /package/dist/{7913.bundle.5702ee8798da273c0c5d.js → 7913.bundle.207d7463f90bb92e4ab4.js} +0 -0
  43. /package/dist/{818.bundle.b64fae7e982e16a82ca2.js → 818.bundle.b6027359846cc90e32ff.js} +0 -0
  44. /package/dist/{8944.bundle.3bf7ef09ea87195b9e23.js → 8944.bundle.2c07f90c73692457ffa3.js} +0 -0
@@ -1,2 +1,3 @@
1
1
  .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
2
2
  .viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
3
+ .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}
@@ -714,8 +714,8 @@ function promptTrackNewStudy_askSaveDiscardOrCancel(UIViewportDialogService, vie
714
714
  });
715
715
  }
716
716
  /* harmony default export */ const TrackedMeasurementsContext_promptTrackNewStudy = (promptTrackNewStudy);
717
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 93 modules
718
- var default_src = __webpack_require__(32281);
717
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 95 modules
718
+ var default_src = __webpack_require__(10655);
719
719
  ;// CONCATENATED MODULE: ../../../extensions/measurement-tracking/src/_shared/getNextSRSeriesNumber.js
720
720
  const MIN_SR_SERIES_NUMBER = 4700;
721
721
  function getNextSRSeriesNumber(displaySetService) {
@@ -2178,7 +2178,7 @@ function _mapMeasurementToDisplay(measurement, types, displaySetService) {
2178
2178
 
2179
2179
  const instance = src.DicomMetadataStore.getInstance(referenceStudyUID, referenceSeriesUID, SOPInstanceUID);
2180
2180
  const displaySets = displaySetService.getDisplaySetsForSeries(referenceSeriesUID);
2181
- if (!displaySets[0] || !displaySets[0].images) {
2181
+ if (!displaySets[0]?.instances) {
2182
2182
  throw new Error('The tracked measurements panel should only be tracking "stack" displaySets.');
2183
2183
  }
2184
2184
  const {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[9824,2568],{
2
+ (globalThis["webpackChunk"] = globalThis["webpackChunk"] || []).push([[2119,4757,1540],{
3
3
 
4
4
  /***/ 78491:
5
5
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
@@ -28,8 +28,8 @@ var src = __webpack_require__(84793);
28
28
  var esm = __webpack_require__(12651);
29
29
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/adapters/dist/adapters.es.js
30
30
  var adapters_es = __webpack_require__(91202);
31
- // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 93 modules
32
- var cornerstone_src = __webpack_require__(15516);
31
+ // EXTERNAL MODULE: ../../../extensions/cornerstone/src/index.tsx + 95 modules
32
+ var cornerstone_src = __webpack_require__(962);
33
33
  ;// CONCATENATED MODULE: ../../../extensions/cornerstone-dicom-pmap/src/getSopClassHandlerModule.ts
34
34
 
35
35
 
@@ -176,7 +176,7 @@ async function _loadParametricMap({
176
176
  const {
177
177
  imageIds
178
178
  } = cachedReferencedVolume;
179
- const results = await adapters_es.adaptersPMAP.Cornerstone3D.ParametricMap.generateToolState(imageIds, arrayBuffer, esm.metaData);
179
+ const results = await adapters_es/* adaptersPMAP */._.Cornerstone3D.ParametricMap.generateToolState(imageIds, arrayBuffer, esm.metaData);
180
180
  const {
181
181
  pixelData
182
182
  } = results;
@@ -1,2 +1,3 @@
1
1
  .dicom-upload-drop-area-border-dash{background-image:repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(90deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000),repeating-linear-gradient(180deg,#7bb2ce 0,#7bb2ce 50%,#0000 0,#0000);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:20px 3px,20px 3px,3px 20px,3px 20px}
2
2
  .viewport-overlay{max-width:40%}.viewport-overlay span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewport-overlay.left-viewport{text-align:left}.viewport-overlay.right-viewport-scrollbar{text-align:right}.viewport-overlay.right-viewport-scrollbar .flex.flex-row{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}
3
+ .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}
@@ -4605,14 +4605,14 @@ class WSIViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"] *
4605
4605
  return (0,_init__WEBPACK_IMPORTED_MODULE_9__/* .peerImport */ .Dm)('dicom-microscopy-viewer');
4606
4606
  }; }
4607
4607
  setDataIds(imageIds) {
4608
- const webClient = _metaData__WEBPACK_IMPORTED_MODULE_3__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.WEB_CLIENT, imageIds[0]);
4608
+ const webClient = _metaData__WEBPACK_IMPORTED_MODULE_3__.get(_enums__WEBPACK_IMPORTED_MODULE_1__.MetadataModules.WADO_WEB_CLIENT, imageIds[0]);
4609
4609
  if (!webClient) {
4610
4610
  throw new Error(`To use setDataIds on WSI data, you must provide metaData.webClient for ${imageIds[0]}`);
4611
4611
  }
4612
4612
  return this.setWSI(imageIds, webClient);
4613
4613
  }
4614
4614
  async setWSI(imageIds, client) {
4615
- this.microscopyElement.style.background = 'red';
4615
+ this.microscopyElement.style.background = 'black';
4616
4616
  this.microscopyElement.innerText = 'Loading';
4617
4617
  this.imageIds = imageIds;
4618
4618
  const DicomMicroscopyViewer = await WSIViewport.getDicomMicroscopyViewer();
@@ -10220,10 +10220,18 @@ function vtkStreamingOpenGLVolumeMapper(publicAPI, model) {
10220
10220
  }
10221
10221
  }
10222
10222
  if (shouldReset) {
10223
- model.scalarTexture.setOglNorm16Ext(model.context.getExtension('EXT_texture_norm16'));
10223
+ const norm16Ext = model.context.getExtension('EXT_texture_norm16');
10224
+ model.scalarTexture.setOglNorm16Ext(norm16Ext);
10224
10225
  model.scalarTexture.releaseGraphicsResources(model._openGLRenderWindow);
10225
10226
  model.scalarTexture.resetFormatAndType();
10226
- model.scalarTexture.create3DFilterableFromRaw(dims[0], dims[1], dims[2], numComp, scalars.getDataType(), scalars.getData(), model.renderable.getPreferSizeOverAccuracy());
10227
+ if (model.renderable.getPreferSizeOverAccuracy() ||
10228
+ (norm16Ext && dataType === Constants/* VtkDataTypes */.Tu.UNSIGNED_SHORT) ||
10229
+ dataType === Constants/* VtkDataTypes */.Tu.SHORT) {
10230
+ model.scalarTexture.create3DFilterableFromDataArray(dims[0], dims[1], dims[2], scalars, model.renderable.getPreferSizeOverAccuracy());
10231
+ }
10232
+ else {
10233
+ model.scalarTexture.create3DFilterableFromRaw(dims[0], dims[1], dims[2], numComp, scalars.getDataType(), scalars.getData());
10234
+ }
10227
10235
  }
10228
10236
  else {
10229
10237
  model.scalarTexture.deactivate();
@@ -14354,7 +14362,7 @@ var MetadataModules;
14354
14362
  MetadataModules["SOP_COMMON"] = "sopCommonModule";
14355
14363
  MetadataModules["ULTRASOUND_ENHANCED_REGION"] = "ultrasoundEnhancedRegionModule";
14356
14364
  MetadataModules["VOI_LUT"] = "voiLutModule";
14357
- MetadataModules["WEB_CLIENT"] = "webClient";
14365
+ MetadataModules["WADO_WEB_CLIENT"] = "wadoWebClient";
14358
14366
  })(MetadataModules || (MetadataModules = {}));
14359
14367
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MetadataModules);
14360
14368
 
@@ -14529,7 +14537,7 @@ class CornerstoneEventTarget {
14529
14537
  }
14530
14538
  dispatchEvent(event) {
14531
14539
  if (!this.listeners[event.type]) {
14532
- return;
14540
+ return !event.defaultPrevented;
14533
14541
  }
14534
14542
  const stack = this.listeners[event.type].slice();
14535
14543
  const stackLength = stack.length;
@@ -14566,7 +14574,7 @@ __webpack_require__.d(__webpack_exports__, {
14566
14574
  Dm: () => (/* binding */ peerImport)
14567
14575
  });
14568
14576
 
14569
- // UNUSED EXPORTS: init, resetUseCPURendering, resetUseSharedArrayBuffer, setConfiguration, setPreferSizeOverAccuracy, setUseCPURendering, setUseSharedArrayBuffer
14577
+ // UNUSED EXPORTS: init, resetInitialization, resetUseCPURendering, resetUseSharedArrayBuffer, setConfiguration, setPreferSizeOverAccuracy, setUseCPURendering, setUseSharedArrayBuffer
14570
14578
 
14571
14579
  ;// CONCATENATED MODULE: ../../../node_modules/detect-gpu/dist/detect-gpu.esm.js
14572
14580
  function e(e,t,r,n){return new(r||(r=Promise))((function(o,a){function i(e){try{d(n.next(e))}catch(e){a(e)}}function c(e){try{d(n.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(i,c)}d((n=n.apply(e,t||[])).next())}))}"function"==typeof SuppressedError&&SuppressedError;const t=(/* unused pure expression or super */ null && (["geforce 320m","geforce 8600","geforce 8600m gt","geforce 8800 gs","geforce 8800 gt","geforce 9400","geforce 9400m g","geforce 9400m","geforce 9600m gt","geforce 9600m","geforce fx go5200","geforce gt 120","geforce gt 130","geforce gt 330m","geforce gtx 285","google swiftshader","intel g41","intel g45","intel gma 4500mhd","intel gma x3100","intel hd 3000","intel q45","legacy","mali-2","mali-3","mali-4","quadro fx 1500","quadro fx 4","quadro fx 5","radeon hd 2400","radeon hd 2600","radeon hd 4670","radeon hd 4850","radeon hd 4870","radeon hd 5670","radeon hd 5750","radeon hd 6290","radeon hd 6300","radeon hd 6310","radeon hd 6320","radeon hd 6490m","radeon hd 6630m","radeon hd 6750m","radeon hd 6770m","radeon hd 6970m","sgx 543","sgx543"]));function r(e){return e=e.toLowerCase().replace(/.*angle ?\((.+)\)(?: on vulkan [0-9.]+)?$/i,"$1").replace(/\s(\d{1,2}gb|direct3d.+$)|\(r\)| \([^)]+\)$/g,"").replace(/(?:vulkan|opengl) \d+\.\d+(?:\.\d+)?(?: \((.*)\))?/,"$1")}const n="undefined"==typeof window,o=(()=>{if(n)return;const{userAgent:e,platform:t,maxTouchPoints:r}=window.navigator,o=/(iphone|ipod|ipad)/i.test(e),a="iPad"===t||"MacIntel"===t&&r>0&&!window.MSStream;return{isIpad:a,isMobile:/android/i.test(e)||o||a,isSafari12:/Version\/12.+Safari/.test(e),isFirefox:/Firefox/.test(e)}})();function a(e,t,r){if(!r)return[t];const n=function(e){const t="\n precision highp float;\n attribute vec3 aPosition;\n varying float vvv;\n void main() {\n vvv = 0.31622776601683794;\n gl_Position = vec4(aPosition, 1.0);\n }\n ",r="\n precision highp float;\n varying float vvv;\n void main() {\n vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * vvv;\n enc = fract(enc);\n enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\n gl_FragColor = enc;\n }\n ",n=e.createShader(35633),o=e.createShader(35632),a=e.createProgram();if(!(o&&n&&a))return;e.shaderSource(n,t),e.shaderSource(o,r),e.compileShader(n),e.compileShader(o),e.attachShader(a,n),e.attachShader(a,o),e.linkProgram(a),e.detachShader(a,n),e.detachShader(a,o),e.deleteShader(n),e.deleteShader(o),e.useProgram(a);const i=e.createBuffer();e.bindBuffer(34962,i),e.bufferData(34962,new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),35044);const c=e.getAttribLocation(a,"aPosition");e.vertexAttribPointer(c,3,5126,!1,0,0),e.enableVertexAttribArray(c),e.clearColor(1,1,1,1),e.clear(16384),e.viewport(0,0,1,1),e.drawArrays(4,0,3);const d=new Uint8Array(4);return e.readPixels(0,0,1,1,6408,5121,d),e.deleteProgram(a),e.deleteBuffer(i),d.join("")}(e),a="801621810",i="8016218135",c="80162181161",d=(null==o?void 0:o.isIpad)?[["a7",c,12],["a8",i,15],["a8x",i,15],["a9",i,15],["a9x",i,15],["a10",i,15],["a10x",i,15],["a12",a,15],["a12x",a,15],["a12z",a,15],["a14",a,15],["m1",a,15]]:[["a7",c,12],["a8",i,12],["a9",i,15],["a10",i,15],["a11",a,15],["a12",a,15],["a13",a,15],["a14",a,15],["a15",a,15],["a16",a,15],["a17",a,15]];let l;"80162181255"===n?l=d.filter((([,,e])=>e>=14)):(l=d.filter((([,e])=>e===n)),l.length||(l=d));return l.map((([e])=>`apple ${e} gpu`))}class i extends (/* unused pure expression or super */ null && (Error)){constructor(e){super(e),Object.setPrototypeOf(this,new.target.prototype)}}const c=(/* unused pure expression or super */ null && ([])),d=(/* unused pure expression or super */ null && ([]));function l(e,t){if(e===t)return 0;const r=e;e.length>t.length&&(e=t,t=r);let n=e.length,o=t.length;for(;n>0&&e.charCodeAt(~-n)===t.charCodeAt(~-o);)n--,o--;let a,i=0;for(;i<n&&e.charCodeAt(i)===t.charCodeAt(i);)i++;if(n-=i,o-=i,0===n)return o;let l,s,f=0,u=0,g=0;for(;u<n;)d[u]=e.charCodeAt(i+u),c[u]=++u;for(;g<o;)for(a=t.charCodeAt(i+g),l=g++,f=g,u=0;u<n;u++)s=a===d[u]?l:l+1,l=c[u],f=c[u]=l>f?s>f?f+1:s:s>l?l+1:s;return f}function s(e){return null!=e}const f=({mobileTiers:c=[0,15,30,60],desktopTiers:d=[0,15,30,60],override:f={},glContext:u,failIfMajorPerformanceCaveat:g=!1,benchmarksURL:h="https://unpkg.com/detect-gpu@5.0.38/dist/benchmarks"}={})=>e(void 0,void 0,void 0,(function*(){const p={};if(n)return{tier:0,type:"SSR"};const{isIpad:m=!!(null==o?void 0:o.isIpad),isMobile:v=!!(null==o?void 0:o.isMobile),screenSize:w=window.screen,loadBenchmarks:x=(t=>e(void 0,void 0,void 0,(function*(){const e=yield fetch(`${h}/${t}`).then((e=>e.json()));if(parseInt(e.shift().split(".")[0],10)<4)throw new i("Detect GPU benchmark data is out of date. Please update to version 4x");return e})))}=f;let{renderer:A}=f;const P=(e,t,r,n,o)=>({device:o,fps:n,gpu:r,isMobile:v,tier:e,type:t});let S,b="";if(A)A=r(A),S=[A];else{const e=u||function(e,t=!1){const r={alpha:!1,antialias:!1,depth:!1,failIfMajorPerformanceCaveat:t,powerPreference:"high-performance",stencil:!1};e&&delete r.powerPreference;const n=window.document.createElement("canvas"),o=n.getContext("webgl",r)||n.getContext("experimental-webgl",r);return null!=o?o:void 0}(null==o?void 0:o.isSafari12,g);if(!e)return P(0,"WEBGL_UNSUPPORTED");const t=(null==o?void 0:o.isFirefox)?null:e.getExtension("WEBGL_debug_renderer_info");if(A=t?e.getParameter(t.UNMASKED_RENDERER_WEBGL):e.getParameter(e.RENDERER),!A)return P(1,"FALLBACK");b=A,A=r(A),S=function(e,t,r){return"apple gpu"===t?a(e,t,r):[t]}(e,A,v)}const E=(yield Promise.all(S.map((function(t){var r;return e(this,void 0,void 0,(function*(){const e=(e=>{const t=v?["adreno","apple","mali-t","mali","nvidia","powervr","samsung"]:["intel","apple","amd","radeon","nvidia","geforce","adreno"];for(const r of t)if(e.includes(r))return r})(t);if(!e)return;const n=`${v?"m":"d"}-${e}${m?"-ipad":""}.json`,o=p[n]=null!==(r=p[n])&&void 0!==r?r:x(n);let a;try{a=yield o}catch(e){if(e instanceof i)throw e;return}const c=function(e){var t;const r=(e=e.replace(/\([^)]+\)/,"")).match(/\d+/)||e.match(/(\W|^)([A-Za-z]{1,3})(\W|$)/g);return null!==(t=null==r?void 0:r.join("").replace(/\W|amd/g,""))&&void 0!==t?t:""}(t);let d=a.filter((([,e])=>e===c));d.length||(d=a.filter((([e])=>e.includes(t))));const s=d.length;if(0===s)return;const f=t.split(/[.,()\[\]/\s]/g).sort().filter(((e,t,r)=>0===t||e!==r[t-1])).join(" ");let u,[g,,,,h]=s>1?d.map((e=>[e,l(f,e[2])])).sort((([,e],[,t])=>e-t))[0][0]:d[0],A=Number.MAX_VALUE;const{devicePixelRatio:P}=window,S=w.width*P*w.height*P;for(const e of h){const[t,r]=e,n=t*r,o=Math.abs(S-n);o<A&&(A=o,u=e)}if(!u)return;const[,,b,E]=u;return[A,b,g,E]}))})))).filter(s).sort((([e=Number.MAX_VALUE,t],[r=Number.MAX_VALUE,n])=>e===r?t-n:e-r));if(!E.length){const e=t.find((e=>A.includes(e)));return e?P(0,"BLOCKLISTED",e):P(1,"FALLBACK",`${A} (${b})`)}const[,y,C,L]=E[0];if(-1===y)return P(0,"BLOCKLISTED",C,y,L);const M=v?c:d;let $=0;for(let e=0;e<M.length;e++)y>=M[e]&&($=e);return P($,"BENCHMARK",C,y,L)}));
@@ -14748,6 +14756,9 @@ function getShouldUseSharedArrayBuffer() {
14748
14756
  function isCornerstoneInitialized() {
14749
14757
  return csRenderInitialized;
14750
14758
  }
14759
+ function resetInitialization() {
14760
+ csRenderInitialized = false;
14761
+ }
14751
14762
  function getConfiguration() {
14752
14763
  return config;
14753
14764
  }
@@ -22366,12 +22377,17 @@ function makeVolumeMetadata(imageIds) {
22366
22377
  let genericMetadataProvider_state = {};
22367
22378
  const genericMetadataProvider_metadataProvider = {
22368
22379
  add: (imageId, payload) => {
22380
+ genericMetadataProvider_metadataProvider.addRaw(imageId, {
22381
+ ...payload,
22382
+ metadata: structuredClone(payload.metadata),
22383
+ });
22384
+ },
22385
+ addRaw: (imageId, payload) => {
22369
22386
  const type = payload.type;
22370
22387
  if (!genericMetadataProvider_state[imageId]) {
22371
22388
  genericMetadataProvider_state[imageId] = {};
22372
22389
  }
22373
- genericMetadataProvider_state[imageId][type] =
22374
- payload.rawMetadata ?? structuredClone(payload.metadata);
22390
+ genericMetadataProvider_state[imageId][type] = payload.metadata;
22375
22391
  },
22376
22392
  get: (type, imageId) => {
22377
22393
  return genericMetadataProvider_state[imageId]?.[type];
@@ -33081,8 +33097,8 @@ class OrientationMarkerTool extends _base__WEBPACK_IMPORTED_MODULE_7__/* .BaseTo
33081
33097
  overlayConfiguration: {
33082
33098
  [OrientationMarkerTool.OVERLAY_MARKER_TYPES.ANNOTATED_CUBE]: {
33083
33099
  faceProperties: {
33084
- xPlus: { text: 'R', faceColor: '#ffff00', faceRotation: 90 },
33085
- xMinus: { text: 'L', faceColor: '#ffff00', faceRotation: 270 },
33100
+ xPlus: { text: 'L', faceColor: '#ffff00', faceRotation: 90 },
33101
+ xMinus: { text: 'R', faceColor: '#ffff00', faceRotation: 270 },
33086
33102
  yPlus: {
33087
33103
  text: 'P',
33088
33104
  faceColor: '#00ffff',
@@ -35200,7 +35216,10 @@ class StackScrollMouseWheelTool extends _base__WEBPACK_IMPORTED_MODULE_1__/* .Ba
35200
35216
  const { invert } = this.configuration;
35201
35217
  const { viewport } = (0,_cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.getEnabledElement)(element);
35202
35218
  const delta = direction * (invert ? -1 : 1);
35203
- const volumeId = this.getTargetVolumeId(viewport);
35219
+ let volumeId;
35220
+ if (viewport instanceof _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.BaseVolumeViewport) {
35221
+ volumeId = this.getTargetVolumeId(viewport);
35222
+ }
35204
35223
  (0,_utilities_scroll__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(viewport, {
35205
35224
  delta,
35206
35225
  debounceLoading: this.configuration.debounceIfNotLoaded,
@@ -35875,7 +35894,7 @@ class WindowLevelTool extends _base__WEBPACK_IMPORTED_MODULE_0__/* .BaseTool */
35875
35894
  scalarData = imageData.getScalarData();
35876
35895
  }
35877
35896
  else {
35878
- scalarData = imageData.getPointData().getScalars();
35897
+ scalarData = imageData.getPointData().getScalars().getData();
35879
35898
  }
35880
35899
  if (dimensions[2] !== 1) {
35881
35900
  return this._getImageDynamicRangeFromMiddleSlice(scalarData, dimensions);
@@ -35928,8 +35947,8 @@ class ZoomTool extends _base__WEBPACK_IMPORTED_MODULE_3__/* .BaseTool */ .ml {
35928
35947
  supportedInteractionTypes: ['Mouse', 'Touch'],
35929
35948
  configuration: {
35930
35949
  zoomToCenter: false,
35931
- minZoomScale: 0.1,
35932
- maxZoomScale: 30,
35950
+ minZoomScale: 0.001,
35951
+ maxZoomScale: 3000,
35933
35952
  pinchToZoom: true,
35934
35953
  pan: true,
35935
35954
  invert: false,
@@ -44861,11 +44880,6 @@ class CircleROIStartEndThresholdTool extends _annotation_CircleROITool__WEBPACK_
44861
44880
  this.configuration.preventHandleOutsideImage) {
44862
44881
  (0,_stateManagement_annotation_annotationState__WEBPACK_IMPORTED_MODULE_2__.removeAnnotation)(annotation.annotationUID);
44863
44882
  }
44864
- const targetId = this.getTargetId(enabledElement.viewport);
44865
- const imageVolume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
44866
- if (this.configuration.calculatePointsInsideVolume) {
44867
- this._computePointsInsideVolume(annotation, imageVolume, targetId, enabledElement);
44868
- }
44869
44883
  (0,_utilities_triggerAnnotationRenderForViewportIds__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)(enabledElement.renderingEngine, viewportIdsToRender);
44870
44884
  if (newAnnotation) {
44871
44885
  (0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_12__/* .triggerAnnotationCompleted */ .F$)(annotation);
@@ -44900,30 +44914,35 @@ class CircleROIStartEndThresholdTool extends _annotation_CircleROITool__WEBPACK_
44900
44914
  const canvasCorners = (0,_utilities_math_circle__WEBPACK_IMPORTED_MODULE_14__/* .getCanvasCircleCorners */ .$)(canvasCoordinates);
44901
44915
  const focalPoint = viewport.getCamera().focalPoint;
44902
44916
  const viewplaneNormal = viewport.getCamera().viewPlaneNormal;
44903
- let startCoord = startCoordinate;
44904
- let endCoord = endCoordinate;
44917
+ let tempStartCoordinate = startCoordinate;
44918
+ let tempEndCoordinate = endCoordinate;
44905
44919
  if (Array.isArray(startCoordinate)) {
44906
- startCoord = this._getCoordinateForViewplaneNormal(startCoord, viewplaneNormal);
44920
+ tempStartCoordinate = this._getCoordinateForViewplaneNormal(tempStartCoordinate, viewplaneNormal);
44921
+ data.startCoordinate = tempStartCoordinate;
44907
44922
  }
44908
44923
  if (Array.isArray(endCoordinate)) {
44909
- endCoord = this._getCoordinateForViewplaneNormal(endCoord, viewplaneNormal);
44924
+ tempEndCoordinate = this._getCoordinateForViewplaneNormal(tempEndCoordinate, viewplaneNormal);
44925
+ data.endCoordinate = tempEndCoordinate;
44910
44926
  }
44911
- const roundedStartCoord = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(startCoord);
44912
- const roundedEndCoord = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(endCoord);
44913
- const coord = this._getCoordinateForViewplaneNormal(focalPoint, viewplaneNormal);
44914
- const roundedCoord = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(coord);
44915
- if (roundedCoord < Math.min(roundedStartCoord, roundedEndCoord) ||
44916
- roundedCoord > Math.max(roundedStartCoord, roundedEndCoord)) {
44927
+ const roundedStartCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(data.startCoordinate);
44928
+ const roundedEndCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(data.endCoordinate);
44929
+ const cameraCoordinate = this._getCoordinateForViewplaneNormal(focalPoint, viewplaneNormal);
44930
+ const roundedCameraCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision(cameraCoordinate);
44931
+ if (roundedCameraCoordinate <
44932
+ Math.min(roundedStartCoordinate, roundedEndCoordinate) ||
44933
+ roundedCameraCoordinate >
44934
+ Math.max(roundedStartCoordinate, roundedEndCoordinate)) {
44917
44935
  continue;
44918
44936
  }
44919
- if (annotation.invalidated) {
44920
- this._throttledCalculateCachedStats(annotation, enabledElement);
44921
- }
44922
- const middleCoord = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision((startCoord + endCoord) / 2);
44937
+ const middleCoordinate = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.utilities.roundToPrecision((data.startCoordinate + data.endCoordinate) / 2);
44923
44938
  let isMiddleSlice = false;
44924
- if (roundedCoord === middleCoord) {
44939
+ if (roundedCameraCoordinate === middleCoordinate) {
44925
44940
  isMiddleSlice = true;
44926
44941
  }
44942
+ data.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(viewplaneNormal)] = middleCoordinate;
44943
+ if (annotation.invalidated) {
44944
+ this._throttledCalculateCachedStats(annotation, enabledElement);
44945
+ }
44927
44946
  if (!viewport.getRenderingEngine()) {
44928
44947
  console.warn('Rendering Engine has been destroyed');
44929
44948
  return renderStatus;
@@ -45144,6 +45163,9 @@ class CircleROIStartEndThresholdTool extends _annotation_CircleROITool__WEBPACK_
45144
45163
  const targetId = this.getTargetId(viewport);
45145
45164
  const imageVolume = _cornerstonejs_core__WEBPACK_IMPORTED_MODULE_0__.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
45146
45165
  this._computeProjectionPoints(annotation, imageVolume);
45166
+ if (this.configuration.calculatePointsInsideVolume) {
45167
+ this._computePointsInsideVolume(annotation, imageVolume, targetId, enabledElement);
45168
+ }
45147
45169
  annotation.invalidated = false;
45148
45170
  (0,_stateManagement_annotation_helpers_state__WEBPACK_IMPORTED_MODULE_12__/* .triggerAnnotationModified */ .hg)(annotation, viewport.element);
45149
45171
  return cachedStats;
@@ -237,7 +237,7 @@ class VideoViewport extends _Viewport__WEBPACK_IMPORTED_MODULE_5__/* ["default"]
237
237
  };
238
238
  }
239
239
  setDataIds(imageIds, options) {
240
- this.setVideo(imageIds[0], options?.viewReference?.sliceIndex || 1);
240
+ this.setVideo(imageIds[0], (options?.viewReference?.sliceIndex || 0) + 1);
241
241
  }
242
242
  setVideo(imageId, frameNumber) {
243
243
  this.imageId = Array.isArray(imageId) ? imageId[0] : imageId;
@@ -3669,7 +3669,7 @@ __webpack_require__.d(__webpack_exports__, {
3669
3669
  volumeLoader: () => (/* reexport */ volumeLoader)
3670
3670
  });
3671
3671
 
3672
- // UNUSED EXPORTS: ImageVolume, ProgressiveRetrieveImages, RenderingEngine, Surface, Viewport, WSIViewport, canRenderFloatTextures, createVolumeActor, createVolumeMapper, getOrCreateCanvas, getShouldUseCPURendering, getShouldUseSharedArrayBuffer, imageRetrievalPoolManager, init, isCornerstoneInitialized, peerImport, registerImageLoader, requestPoolManager, resetUseCPURendering, resetUseSharedArrayBuffer, setConfiguration, setPreferSizeOverAccuracy, setUseCPURendering, setUseSharedArrayBuffer, setVolumesForViewports
3672
+ // UNUSED EXPORTS: ImageVolume, ProgressiveRetrieveImages, RenderingEngine, Surface, Viewport, WSIViewport, canRenderFloatTextures, createVolumeActor, createVolumeMapper, getOrCreateCanvas, getShouldUseCPURendering, getShouldUseSharedArrayBuffer, imageRetrievalPoolManager, init, isCornerstoneInitialized, peerImport, registerImageLoader, requestPoolManager, resetInitialization, resetUseCPURendering, resetUseSharedArrayBuffer, setConfiguration, setPreferSizeOverAccuracy, setUseCPURendering, setUseSharedArrayBuffer, setVolumesForViewports
3673
3673
 
3674
3674
  // EXTERNAL MODULE: ../../../node_modules/@cornerstonejs/core/dist/esm/enums/index.js + 4 modules
3675
3675
  var enums = __webpack_require__(7187);
@@ -8391,11 +8391,6 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
8391
8391
  this.configuration.preventHandleOutsideImage) {
8392
8392
  (0,stateManagement/* removeAnnotation */._x)(annotation.annotationUID);
8393
8393
  }
8394
- const targetId = this.getTargetId(enabledElement.viewport);
8395
- const imageVolume = esm.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
8396
- if (this.configuration.calculatePointsInsideVolume) {
8397
- this._computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement);
8398
- }
8399
8394
  (0,triggerAnnotationRenderForViewportIds/* default */.Z)(enabledElement.renderingEngine, viewportIdsToRender);
8400
8395
  if (newAnnotation) {
8401
8396
  (0,state/* triggerAnnotationCompleted */.F$)(annotation);
@@ -8430,9 +8425,12 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
8430
8425
  let endCoord = endCoordinate;
8431
8426
  if (Array.isArray(startCoordinate)) {
8432
8427
  startCoord = this._getCoordinateForViewplaneNormal(startCoord, viewplaneNormal);
8428
+ data.startCoordinate = startCoord;
8429
+ data.handles.points[0][this._getIndexOfCoordinatesForViewplaneNormal(viewplaneNormal)] = startCoord;
8433
8430
  }
8434
8431
  if (Array.isArray(endCoordinate)) {
8435
8432
  endCoord = this._getCoordinateForViewplaneNormal(endCoord, viewplaneNormal);
8433
+ data.endCoordinate = endCoord;
8436
8434
  }
8437
8435
  const roundedStartCoord = esm.utilities.roundToPrecision(startCoord);
8438
8436
  const roundedEndCoord = esm.utilities.roundToPrecision(endCoord);
@@ -8632,6 +8630,9 @@ class RectangleROIStartEndThresholdTool extends RectangleROITool/* default */.Z
8632
8630
  const targetId = this.getTargetId(viewport);
8633
8631
  const imageVolume = esm.cache.getVolume(targetId.split(/volumeId:|\?/)[1]);
8634
8632
  this._computeProjectionPoints(annotation, imageVolume);
8633
+ if (this.configuration.calculatePointsInsideVolume) {
8634
+ this._computePointsInsideVolume(annotation, targetId, imageVolume, enabledElement);
8635
+ }
8635
8636
  annotation.invalidated = false;
8636
8637
  (0,state/* triggerAnnotationModified */.hg)(annotation, viewport.element);
8637
8638
  return cachedStats;
@@ -317,8 +317,8 @@ function getHangingProtocolModule() {
317
317
  var state = __webpack_require__(52490);
318
318
  // EXTERNAL MODULE: ../../ui/src/index.js + 784 modules
319
319
  var ui_src = __webpack_require__(38604);
320
- // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 93 modules
321
- var default_src = __webpack_require__(32281);
320
+ // EXTERNAL MODULE: ../../../extensions/default/src/index.ts + 95 modules
321
+ var default_src = __webpack_require__(10655);
322
322
  // EXTERNAL MODULE: ../../../node_modules/prop-types/index.js
323
323
  var prop_types = __webpack_require__(3827);
324
324
  var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types);
@@ -720,11 +720,13 @@ const moreTools = [{
720
720
 
721
721
  // Allow this mode by excluding non-imaging modalities such as SR, SEG
722
722
  // Also, SM is not a simple imaging modalities, so exclude it.
723
- const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SEG', 'RTSTRUCT'];
723
+ const NON_IMAGE_MODALITIES = ['ECG', 'SEG', 'RTSTRUCT', 'RTPLAN', 'PR'];
724
724
  const ohif = {
725
725
  layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
726
726
  sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',
727
- thumbnailList: '@ohif/extension-default.panelModule.seriesList'
727
+ thumbnailList: '@ohif/extension-default.panelModule.seriesList',
728
+ wsiSopClassHandler: '@ohif/extension-cornerstone.sopClassHandlerModule.DicomMicroscopySopClassHandler',
729
+ measurements: '@ohif/extension-default.panelModule.measurements'
728
730
  };
729
731
  const tracked = {
730
732
  measurements: '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',
@@ -888,14 +890,16 @@ function modeFactory({
888
890
  rightPanelClosed: true,
889
891
  viewports: [{
890
892
  namespace: tracked.viewport,
891
- displaySetsToDisplay: [ohif.sopClassHandler]
893
+ displaySetsToDisplay: [ohif.sopClassHandler, dicomvideo.sopClassHandler, ohif.wsiSopClassHandler]
892
894
  }, {
893
895
  namespace: dicomsr.viewport,
894
896
  displaySetsToDisplay: [dicomsr.sopClassHandler]
895
- }, {
896
- namespace: dicomvideo.viewport,
897
- displaySetsToDisplay: [dicomvideo.sopClassHandler]
898
- }, {
897
+ },
898
+ // {
899
+ // namespace: dicomvideo.viewport,
900
+ // displaySetsToDisplay: [dicomvideo.sopClassHandler],
901
+ // },
902
+ {
899
903
  namespace: dicompdf.viewport,
900
904
  displaySetsToDisplay: [dicompdf.sopClassHandler]
901
905
  }, {
@@ -919,7 +923,7 @@ function modeFactory({
919
923
  // the same sop class under different situations. In that case, the more
920
924
  // general handler needs to come last. For this case, the dicomvideo must
921
925
  // come first to remove video transfer syntax before ohif uses images
922
- sopClassHandlers: [dicomvideo.sopClassHandler, dicomSeg.sopClassHandler, dicomPmap.sopClassHandler, ohif.sopClassHandler, dicompdf.sopClassHandler, dicomsr.sopClassHandler, dicomRT.sopClassHandler],
926
+ sopClassHandlers: [dicomvideo.sopClassHandler, dicomSeg.sopClassHandler, dicomPmap.sopClassHandler, ohif.sopClassHandler, ohif.wsiSopClassHandler, dicompdf.sopClassHandler, dicomsr.sopClassHandler, dicomRT.sopClassHandler],
923
927
  hotkeys: [...src/* hotkeys */.dD.defaults.hotkeyBindings],
924
928
  ...modeConfiguration
925
929
  };
@@ -454,6 +454,10 @@ function initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {
454
454
  toolName: toolNames.SegmentationDisplay
455
455
  }, {
456
456
  toolName: toolNames.WindowLevelRegion
457
+ }, {
458
+ toolName: toolNames.PlanarFreehandROI
459
+ }, {
460
+ toolName: toolNames.SplineROI
457
461
  }],
458
462
  disabled: [{
459
463
  toolName: toolNames.Crosshairs,
@@ -713,10 +717,11 @@ var i18next = __webpack_require__(73577);
713
717
 
714
718
  // Allow this mode by excluding non-imaging modalities such as SR, SEG
715
719
  // Also, SM is not a simple imaging modalities, so exclude it.
716
- const NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG'];
720
+ const NON_IMAGE_MODALITIES = ['ECG', 'SR', 'SEG', 'RTSTRUCT'];
717
721
  const ohif = {
718
722
  layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',
719
723
  sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',
724
+ wsiSopClassHandler: '@ohif/extension-cornerstone.sopClassHandlerModule.DicomMicroscopySopClassHandler',
720
725
  thumbnailList: '@ohif/extension-default.panelModule.seriesList',
721
726
  measurements: '@ohif/extension-default.panelModule.measurements'
722
727
  };
@@ -839,14 +844,16 @@ function modeFactory() {
839
844
  // rightPanelClosed: true, // optional prop to start with collapse panels
840
845
  viewports: [{
841
846
  namespace: tracked.viewport,
842
- displaySetsToDisplay: [ohif.sopClassHandler]
847
+ displaySetsToDisplay: [ohif.sopClassHandler, dicomvideo.sopClassHandler, ohif.wsiSopClassHandler]
843
848
  }, {
844
849
  namespace: dicomsr.viewport,
845
850
  displaySetsToDisplay: [dicomsr.sopClassHandler]
846
- }, {
847
- namespace: dicomvideo.viewport,
848
- displaySetsToDisplay: [dicomvideo.sopClassHandler]
849
- }, {
851
+ },
852
+ // {
853
+ // namespace: dicomvideo.viewport,
854
+ // displaySetsToDisplay: [dicomvideo.sopClassHandler],
855
+ // },
856
+ {
850
857
  namespace: dicompdf.viewport,
851
858
  displaySetsToDisplay: [dicompdf.sopClassHandler]
852
859
  }, {
@@ -867,7 +874,7 @@ function modeFactory() {
867
874
  // the same sop class under different situations. In that case, the more
868
875
  // general handler needs to come last. For this case, the dicomvideo must
869
876
  // come first to remove video transfer syntax before ohif uses images
870
- sopClassHandlers: [dicomvideo.sopClassHandler, dicomSeg.sopClassHandler, ohif.sopClassHandler, dicompdf.sopClassHandler, dicomsr.sopClassHandler],
877
+ sopClassHandlers: [dicomvideo.sopClassHandler, dicomSeg.sopClassHandler, ohif.wsiSopClassHandler, ohif.sopClassHandler, dicompdf.sopClassHandler, dicomsr.sopClassHandler],
871
878
  hotkeys: {
872
879
  // Don't store the hotkeys for basic-test-mode under the same key
873
880
  // because they get customized by tests