@ohif/extension-dicom-video 3.0.1
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/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 Open Health Imaging Foundation
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# DICOM Video
|
|
2
|
+
This extension adds support for displaying DICOM video objects in a script tag.
|
|
3
|
+
The video data must currently be available as video/mp4 on the BulkDataURI that
|
|
4
|
+
is provided in the DICOMweb metadata response, and the video must have one of the
|
|
5
|
+
specified SOP Class UID's in order to be recognized by the SOP class handler.
|
|
6
|
+
|
|
7
|
+
Those are:
|
|
8
|
+
* Video Microscop Image Storage
|
|
9
|
+
* Video Photographic Image Storage
|
|
10
|
+
* Video Endoscopic Image Storage
|
|
11
|
+
* Secondary Capture Image Storage
|
|
12
|
+
* Multiframe True Color Secondary Capture Image Storage
|
|
13
|
+
|
|
14
|
+
The extension is a "standard" extension in that it is installed and available
|
|
15
|
+
by default.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see ohif-extension-dicom-video.umd.js.LICENSE.txt */
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@ohif/core")):"function"==typeof define&&define.amd?define(["@ohif/core"],t):"object"==typeof exports?exports["ohif-extension-dicom-video"]=t(require("@ohif/core")):e["ohif-extension-dicom-video"]=t(e["@ohif/core"])}(globalThis,(e=>(()=>{var t,r,n={790:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>u});var n=r(735),o=r(216),a=r.n(o);function i(e){let{displaySets:t}=e;if(t&&t.length>1)throw new Error("OHIFCornerstoneVideoViewport: only one display set is supported for dicom video right now");const{videoUrl:r}=t[0],o="video/mp4",[a,i]=(0,n.useState)(null);return(0,n.useEffect)((()=>{(async()=>{i(await r)})()}),[r]),n.createElement("div",{className:"bg-primary-black w-full h-full"},n.createElement("video",{src:a,controls:!0,controlsList:"nodownload",preload:"auto",className:"w-full h-full",crossOrigin:"anonymous"},n.createElement("source",{src:a,type:o}),n.createElement("source",{src:a,type:o}),"Video src/type not supported:"," ",n.createElement("a",{href:a},a," of type ",o)))}i.propTypes={displaySets:a().arrayOf(a().object).isRequired};const u=i},516:e=>{"use strict";var t=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach((function(e){n[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var a,i,u=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s<arguments.length;s++){for(var c in a=Object(arguments[s]))r.call(a,c)&&(u[c]=a[c]);if(t){i=t(a);for(var l=0;l<i.length;l++)n.call(a,i[l])&&(u[i[l]]=a[i[l]])}}return u}},459:(e,t,r)=>{"use strict";var n=r(704);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,a,i){if(i!==n){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var r={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return r.PropTypes=r,r}},216:(e,t,r)=>{e.exports=r(459)()},704:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},447:(e,t,r)=>{"use strict";var n=r(516),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,u=60110,s=60112;t.Suspense=60113;var c=60115,l=60116;if("function"==typeof Symbol&&Symbol.for){var f=Symbol.for;o=f("react.element"),a=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),i=f("react.provider"),u=f("react.context"),s=f("react.forward_ref"),t.Suspense=f("react.suspense"),c=f("react.memo"),l=f("react.lazy")}var p="function"==typeof Symbol&&Symbol.iterator;function d(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;r<arguments.length;r++)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_={};function v(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||y}function O(){}function m(e,t,r){this.props=e,this.context=t,this.refs=_,this.updater=r||y}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error(d(85));this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},O.prototype=v.prototype;var h=m.prototype=new O;h.constructor=m,n(h,v.prototype),h.isPureReactComponent=!0;var E={current:null},b=Object.prototype.hasOwnProperty,S={key:!0,ref:!0,__self:!0,__source:!0};function g(e,t,r){var n,a={},i=null,u=null;if(null!=t)for(n in void 0!==t.ref&&(u=t.ref),void 0!==t.key&&(i=""+t.key),t)b.call(t,n)&&!S.hasOwnProperty(n)&&(a[n]=t[n]);var s=arguments.length-2;if(1===s)a.children=r;else if(1<s){for(var c=Array(s),l=0;l<s;l++)c[l]=arguments[l+2];a.children=c}if(e&&e.defaultProps)for(n in s=e.defaultProps)void 0===a[n]&&(a[n]=s[n]);return{$$typeof:o,type:e,key:i,ref:u,props:a,_owner:E.current}}function I(e){return"object"==typeof e&&null!==e&&e.$$typeof===o}var R=/\/+/g;function C(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function P(e,t,r,n,i){var u=typeof e;"undefined"!==u&&"boolean"!==u||(e=null);var s=!1;if(null===e)s=!0;else switch(u){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case o:case a:s=!0}}if(s)return i=i(s=e),e=""===n?"."+C(s,0):n,Array.isArray(i)?(r="",null!=e&&(r=e.replace(R,"$&/")+"/"),P(i,t,r,"",(function(e){return e}))):null!=i&&(I(i)&&(i=function(e,t){return{$$typeof:o,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,r+(!i.key||s&&s.key===i.key?"":(""+i.key).replace(R,"$&/")+"/")+e)),t.push(i)),1;if(s=0,n=""===n?".":n+":",Array.isArray(e))for(var c=0;c<e.length;c++){var l=n+C(u=e[c],c);s+=P(u,t,r,l,i)}else if(l=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof l)for(e=l.call(e),c=0;!(u=e.next()).done;)s+=P(u=u.value,t,r,l=n+C(u,c++),i);else if("object"===u)throw t=""+e,Error(d(31,"[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t));return s}function A(e,t,r){if(null==e)return e;var n=[],o=0;return P(e,n,"","",(function(e){return t.call(r,e,o++)})),n}function j(e){if(-1===e._status){var t=e._result;t=t(),e._status=0,e._result=t,t.then((function(t){0===e._status&&(t=t.default,e._status=1,e._result=t)}),(function(t){0===e._status&&(e._status=2,e._result=t)}))}if(1===e._status)return e._result;throw e._result}var w={current:null};function D(){var e=w.current;if(null===e)throw Error(d(321));return e}var M={ReactCurrentDispatcher:w,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:E,IsSomeRendererActing:{current:!1},assign:n};t.Children={map:A,forEach:function(e,t,r){A(e,(function(){t.apply(this,arguments)}),r)},count:function(e){var t=0;return A(e,(function(){t++})),t},toArray:function(e){return A(e,(function(e){return e}))||[]},only:function(e){if(!I(e))throw Error(d(143));return e}},t.Component=v,t.PureComponent=m,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=M,t.cloneElement=function(e,t,r){if(null==e)throw Error(d(267,e));var a=n({},e.props),i=e.key,u=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(u=t.ref,s=E.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in t)b.call(t,l)&&!S.hasOwnProperty(l)&&(a[l]=void 0===t[l]&&void 0!==c?c[l]:t[l])}var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){c=Array(l);for(var f=0;f<l;f++)c[f]=arguments[f+2];a.children=c}return{$$typeof:o,type:e.type,key:i,ref:u,props:a,_owner:s}},t.createContext=function(e,t){return void 0===t&&(t=null),(e={$$typeof:u,_calculateChangedBits:t,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},t.createElement=g,t.createFactory=function(e){var t=g.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:s,render:e}},t.isValidElement=I,t.lazy=function(e){return{$$typeof:l,_payload:{_status:-1,_result:e},_init:j}},t.memo=function(e,t){return{$$typeof:c,type:e,compare:void 0===t?null:t}},t.useCallback=function(e,t){return D().useCallback(e,t)},t.useContext=function(e,t){return D().useContext(e,t)},t.useDebugValue=function(){},t.useEffect=function(e,t){return D().useEffect(e,t)},t.useImperativeHandle=function(e,t,r){return D().useImperativeHandle(e,t,r)},t.useLayoutEffect=function(e,t){return D().useLayoutEffect(e,t)},t.useMemo=function(e,t){return D().useMemo(e,t)},t.useReducer=function(e,t,r){return D().useReducer(e,t,r)},t.useRef=function(e){return D().useRef(e)},t.useState=function(e){return D().useState(e)},t.version="17.0.2"},735:(e,t,r)=>{"use strict";e.exports=r(447)},762:t=>{"use strict";t.exports=e}},o={};function a(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}};return n[e](r,r.exports,a),r.exports}a.m=n,t=[],a.O=(e,r,n,o)=>{if(!r){var i=1/0;for(l=0;l<t.length;l++){for(var[r,n,o]=t[l],u=!0,s=0;s<r.length;s++)(!1&o||i>=o)&&Object.keys(a.O).every((e=>a.O[e](r[s])))?r.splice(s--,1):(u=!1,o<i&&(i=o));if(u){t.splice(l--,1);var c=n();void 0!==c&&(e=c)}}return e}o=o||0;for(var l=t.length;l>0&&t[l-1][2]>o;l--)t[l]=t[l-1];t[l]=[r,n,o]},a.F={},a.E=e=>{Object.keys(a.F).map((t=>{a.F[t](e)}))},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r={143:0},a.F.j=e=>{if(!a.o(r,e)||void 0===r[e]){r[e]=null;var t=document.createElement("link");a.nc&&t.setAttribute("nonce",a.nc),t.rel="prefetch",t.as="script",t.href=a.p+a.u(e),document.head.appendChild(t)}},a.O.j=e=>0===r[e],a.O(0,[143],(()=>{a.E(143)}),5);var i={};return(()=>{"use strict";a.r(i),a.d(i,{default:()=>d});var e=a(735);const t=JSON.parse('{"u2":"@ohif/extension-dicom-video"}').u2,r=`${t}.sopClassHandlerModule.dicom-video`;var n=a(762);const o={VIDEO_MICROSCOPIC_IMAGE_STORAGE:"1.2.840.10008.5.1.4.1.1.77.1.2.1",VIDEO_PHOTOGRAPHIC_IMAGE_STORAGE:"1.2.840.10008.5.1.4.1.1.77.1.4.1",VIDEO_ENDOSCOPIC_IMAGE_STORAGE:"1.2.840.10008.5.1.4.1.1.77.1.1.1",SECONDARY_CAPTURE_IMAGE_STORAGE:"1.2.840.10008.5.1.4.1.1.7",MULTIFRAME_TRUE_COLOR_SECONDARY_CAPTURE_IMAGE_STORAGE:"1.2.840.10008.5.1.4.1.1.7.4"},u=Object.values(o),s=[o.SECONDARY_CAPTURE_IMAGE_STORAGE,o.MULTIFRAME_TRUE_COLOR_SECONDARY_CAPTURE_IMAGE_STORAGE],c=Object.values({MPEG4_AVC_264_HIGH_PROFILE:"1.2.840.10008.1.2.4.102",MPEG4_AVC_264_BD_COMPATIBLE_HIGH_PROFILE:"1.2.840.10008.1.2.4.103",MPEG4_AVC_264_HIGH_PROFILE_FOR_2D_VIDEO:"1.2.840.10008.1.2.4.104",MPEG4_AVC_264_HIGH_PROFILE_FOR_3D_VIDEO:"1.2.840.10008.1.2.4.105",MPEG4_AVC_264_STEREO_HIGH_PROFILE:"1.2.840.10008.1.2.4.106",HEVC_265_MAIN_PROFILE:"1.2.840.10008.1.2.4.107",HEVC_265_MAIN_10_PROFILE:"1.2.840.10008.1.2.4.108"});function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},l.apply(this,arguments)}const f=e.lazy((()=>Promise.resolve().then(a.bind(a,790)))),p=t=>e.createElement(e.Suspense,{fallback:e.createElement("div",null,"Loading...")},e.createElement(f,t));const d={id:t,getViewportModule(t){let{servicesManager:r,extensionManager:n}=t;return[{name:"dicom-video",component:t=>e.createElement(p,l({servicesManager:r,extensionManager:n},t))}]},getSopClassHandlerModule:function(e){let{servicesManager:t,extensionManager:a}=e;return[{name:"dicom-video",sopClassUids:u,getDisplaySetsFromSeries:e=>((e,t,a)=>{const i=a.getActiveDataSource()[0];return e.filter((e=>{const t=e.AvailableTransferSyntaxUID||e.TransferSyntaxUID||e["00083002"];return!!c.includes(t)||e.SOPClassUID===o.VIDEO_PHOTOGRAPHIC_IMAGE_STORAGE||s.includes(e.SOPClassUID)&&e.NumberOfFrames>=90})).map((e=>{const{Modality:t,SOPInstanceUID:o,SeriesDescription:a="VIDEO"}=e,{SeriesNumber:s,SeriesDate:c,SeriesInstanceUID:l,StudyInstanceUID:f,NumberOfFrames:p}=e;return{Modality:t,displaySetInstanceUID:n.utils.guid(),SeriesDescription:a,SeriesNumber:s,SeriesDate:c,SOPInstanceUID:o,SeriesInstanceUID:l,StudyInstanceUID:f,SOPClassHandlerId:r,referencedImages:null,measurements:null,videoUrl:i.retrieve.directURL({instance:e,singlepart:"video",tag:"PixelData"}),instances:[e],thumbnailSrc:i.retrieve.directURL({instance:e,defaultPath:"/thumbnail",defaultType:"image/jpeg",tag:"Absent"}),isDerivedDisplaySet:!0,isLoaded:!1,sopClassUids:u,numImageFrames:p,instance:e}}))})(e,0,a)}]}}})(),i=a.O(i)})()));
|
|
3
|
+
//# sourceMappingURL=ohif-extension-dicom-video.umd.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
object-assign
|
|
3
|
+
(c) Sindre Sorhus
|
|
4
|
+
@license MIT
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/** @license React v17.0.2
|
|
8
|
+
* react.production.min.js
|
|
9
|
+
*
|
|
10
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
11
|
+
*
|
|
12
|
+
* This source code is licensed under the MIT license found in the
|
|
13
|
+
* LICENSE file in the root directory of this source tree.
|
|
14
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dist/ohif-extension-dicom-video.umd.js","mappings":"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","sources":["webpack://ohif-extension-dicom-video/webpack/universalModuleDefinition","webpack://ohif-extension-dicom-video/webpack/runtime/chunk loaded","webpack://ohif-extension-dicom-video/webpack/runtime/jsonp chunk loading","webpack://ohif-extension-dicom-video/./viewports/OHIFCornerstoneVideoViewport.tsx","webpack://ohif-extension-dicom-video/../../../node_modules/object-assign/index.js","webpack://ohif-extension-dicom-video/../../../node_modules/prop-types/factoryWithThrowingShims.js","webpack://ohif-extension-dicom-video/../../../node_modules/prop-types/index.js","webpack://ohif-extension-dicom-video/../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://ohif-extension-dicom-video/../../../node_modules/react/cjs/react.production.min.js","webpack://ohif-extension-dicom-video/../../../node_modules/react/index.js","webpack://ohif-extension-dicom-video/external umd \"@ohif/core\"","webpack://ohif-extension-dicom-video/webpack/bootstrap","webpack://ohif-extension-dicom-video/webpack/runtime/chunk prefetch function","webpack://ohif-extension-dicom-video/webpack/runtime/compat get default export","webpack://ohif-extension-dicom-video/webpack/runtime/define property getters","webpack://ohif-extension-dicom-video/webpack/runtime/hasOwnProperty shorthand","webpack://ohif-extension-dicom-video/webpack/runtime/make namespace object","webpack://ohif-extension-dicom-video/webpack/runtime/startup prefetch","webpack://ohif-extension-dicom-video/./id.js","webpack://ohif-extension-dicom-video/./getSopClassHandlerModule.js","webpack://ohif-extension-dicom-video/./index.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@ohif/core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@ohif/core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ohif-extension-dicom-video\"] = factory(require(\"@ohif/core\"));\n\telse\n\t\troot[\"ohif-extension-dicom-video\"] = factory(root[\"@ohif/core\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE__762__) => {\nreturn ","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n__webpack_require__.F.j = (chunkId) => {\n\tif((!__webpack_require__.o(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && true) {\n\t\tinstalledChunks[chunkId] = null;\n\t\tvar link = document.createElement('link');\n\n\t\tif (__webpack_require__.nc) {\n\t\t\tlink.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tlink.rel = \"prefetch\";\n\t\tlink.as = \"script\";\n\t\tlink.href = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\tdocument.head.appendChild(link);\n\t}\n};\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// no jsonp function","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nfunction OHIFCornerstoneVideoViewport({ displaySets }) {\n if (displaySets && displaySets.length > 1) {\n throw new Error(\n 'OHIFCornerstoneVideoViewport: only one display set is supported for dicom video right now'\n );\n }\n\n const { videoUrl } = displaySets[0];\n const mimeType = 'video/mp4';\n const [url, setUrl] = useState(null);\n\n useEffect(() => {\n const load = async () => {\n setUrl(await videoUrl);\n };\n\n load();\n }, [videoUrl]);\n\n // Need to copies of the source to fix a firefox bug\n return (\n <div className=\"bg-primary-black w-full h-full\">\n <video\n src={url}\n controls\n controlsList=\"nodownload\"\n preload=\"auto\"\n className=\"w-full h-full\"\n crossOrigin=\"anonymous\"\n >\n <source src={url} type={mimeType} />\n <source src={url} type={mimeType} />\n Video src/type not supported:{' '}\n <a href={url}>\n {url} of type {mimeType}\n </a>\n </video>\n </div>\n );\n}\n\nOHIFCornerstoneVideoViewport.propTypes = {\n displaySets: PropTypes.arrayOf(PropTypes.object).isRequired,\n};\n\nexport default OHIFCornerstoneVideoViewport;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__762__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.F = {};\n__webpack_require__.E = (chunkId) => {\n\tObject.keys(__webpack_require__.F).map((key) => {\n\t\t__webpack_require__.F[key](chunkId);\n\t});\n}","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.O(0, [143], () => {\n\t__webpack_require__.E(143);\n}, 5);","import packageJson from '../package.json';\n\nconst id = packageJson.name;\nconst SOPClassHandlerId = `${id}.sopClassHandlerModule.dicom-video`;\n\nexport { SOPClassHandlerId, id };\n","import { SOPClassHandlerId } from './id';\nimport { utils } from '@ohif/core';\n\nconst SOP_CLASS_UIDS = {\n VIDEO_MICROSCOPIC_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.77.1.2.1',\n VIDEO_PHOTOGRAPHIC_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.77.1.4.1',\n VIDEO_ENDOSCOPIC_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.77.1.1.1',\n /** Need to use fallback, could be video or image */\n SECONDARY_CAPTURE_IMAGE_STORAGE: '1.2.840.10008.5.1.4.1.1.7',\n MULTIFRAME_TRUE_COLOR_SECONDARY_CAPTURE_IMAGE_STORAGE:\n '1.2.840.10008.5.1.4.1.1.7.4',\n};\n\nconst sopClassUids = Object.values(SOP_CLASS_UIDS);\nconst secondaryCaptureSopClassUids = [\n SOP_CLASS_UIDS.SECONDARY_CAPTURE_IMAGE_STORAGE,\n SOP_CLASS_UIDS.MULTIFRAME_TRUE_COLOR_SECONDARY_CAPTURE_IMAGE_STORAGE,\n];\n\nconst SupportedTransferSyntaxes = {\n MPEG4_AVC_264_HIGH_PROFILE: '1.2.840.10008.1.2.4.102',\n MPEG4_AVC_264_BD_COMPATIBLE_HIGH_PROFILE: '1.2.840.10008.1.2.4.103',\n MPEG4_AVC_264_HIGH_PROFILE_FOR_2D_VIDEO: '1.2.840.10008.1.2.4.104',\n MPEG4_AVC_264_HIGH_PROFILE_FOR_3D_VIDEO: '1.2.840.10008.1.2.4.105',\n MPEG4_AVC_264_STEREO_HIGH_PROFILE: '1.2.840.10008.1.2.4.106',\n HEVC_265_MAIN_PROFILE: '1.2.840.10008.1.2.4.107',\n HEVC_265_MAIN_10_PROFILE: '1.2.840.10008.1.2.4.108',\n};\n\nconst supportedTransferSyntaxUIDs = Object.values(SupportedTransferSyntaxes);\n\nconst _getDisplaySetsFromSeries = (\n instances,\n servicesManager,\n extensionManager\n) => {\n const dataSource = extensionManager.getActiveDataSource()[0];\n return instances\n .filter(metadata => {\n const tsuid =\n metadata.AvailableTransferSyntaxUID ||\n metadata.TransferSyntaxUID ||\n metadata['00083002'];\n\n if (supportedTransferSyntaxUIDs.includes(tsuid)) {\n return true;\n }\n\n if (\n metadata.SOPClassUID === SOP_CLASS_UIDS.VIDEO_PHOTOGRAPHIC_IMAGE_STORAGE\n ) {\n return true;\n }\n\n // Assume that an instance with one of the secondary capture SOPClassUIDs and\n // with at least 90 frames (i.e. typically 3 seconds of video) is indeed a video.\n return (\n secondaryCaptureSopClassUids.includes(metadata.SOPClassUID) &&\n metadata.NumberOfFrames >= 90\n );\n })\n .map(instance => {\n const {\n Modality,\n SOPInstanceUID,\n SeriesDescription = 'VIDEO',\n } = instance;\n const {\n SeriesNumber,\n SeriesDate,\n SeriesInstanceUID,\n StudyInstanceUID,\n NumberOfFrames,\n } = instance;\n const displaySet = {\n //plugin: id,\n Modality,\n displaySetInstanceUID: utils.guid(),\n SeriesDescription,\n SeriesNumber,\n SeriesDate,\n SOPInstanceUID,\n SeriesInstanceUID,\n StudyInstanceUID,\n SOPClassHandlerId,\n referencedImages: null,\n measurements: null,\n videoUrl: dataSource.retrieve.directURL({\n instance,\n singlepart: 'video',\n tag: 'PixelData',\n }),\n instances: [instance],\n thumbnailSrc: dataSource.retrieve.directURL({\n instance,\n defaultPath: '/thumbnail',\n defaultType: 'image/jpeg',\n tag: 'Absent',\n }),\n isDerivedDisplaySet: true,\n isLoaded: false,\n sopClassUids,\n numImageFrames: NumberOfFrames,\n instance,\n };\n return displaySet;\n });\n};\n\nexport default function getSopClassHandlerModule({\n servicesManager,\n extensionManager,\n}) {\n const getDisplaySetsFromSeries = instances => {\n return _getDisplaySetsFromSeries(\n instances,\n servicesManager,\n extensionManager\n );\n };\n\n return [\n {\n name: 'dicom-video',\n sopClassUids,\n getDisplaySetsFromSeries,\n },\n ];\n}\n","import React from 'react';\nimport getSopClassHandlerModule from './getSopClassHandlerModule';\nimport { id } from './id';\n\nconst Component = React.lazy(() => {\n return import(\n /* webpackPrefetch: true */ './viewports/OHIFCornerstoneVideoViewport'\n );\n});\n\nconst OHIFCornerstoneVideoViewport = props => {\n return (\n <React.Suspense fallback={<div>Loading...</div>}>\n <Component {...props} />\n </React.Suspense>\n );\n};\n\n/**\n *\n */\nconst dicomVideoExtension = {\n /**\n * Only required property. Should be a unique value across all extensions.\n */\n id,\n\n /**\n *\n *\n * @param {object} [configuration={}]\n * @param {object|array} [configuration.csToolsConfig] - Passed directly to `initCornerstoneTools`\n */\n getViewportModule({ servicesManager, extensionManager }) {\n const ExtendedOHIFCornerstoneVideoViewport = props => {\n return (\n <OHIFCornerstoneVideoViewport\n servicesManager={servicesManager}\n extensionManager={extensionManager}\n {...props}\n />\n );\n };\n\n return [\n { name: 'dicom-video', component: ExtendedOHIFCornerstoneVideoViewport },\n ];\n },\n // getCommandsModule({ servicesManager }) {\n // return {\n // definitions: {\n // setToolActive: {\n // commandFn: ({ toolName, element }) => {\n // },\n // storeContexts: [],\n // options: {},\n // },\n // },\n // defaultContext: 'ACTIVE_VIEWPORT::VIDEO',\n // };\n // },\n getSopClassHandlerModule,\n};\n\nfunction _getToolAlias(toolName) {\n let toolAlias = toolName;\n\n switch (toolName) {\n case 'EllipticalRoi':\n toolAlias = 'SREllipticalRoi';\n break;\n }\n\n return toolAlias;\n}\n\nexport default dicomVideoExtension;\n"],"names":["root","factory","exports","module","require","define","amd","globalThis","__WEBPACK_EXTERNAL_MODULE__762__","deferred","installedChunks","OHIFCornerstoneVideoViewport","_ref","displaySets","length","Error","videoUrl","mimeType","url","setUrl","useState","useEffect","async","load","React","className","src","controls","controlsList","preload","crossOrigin","type","href","propTypes","PropTypes","isRequired","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","map","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","s","arguments","key","call","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","name","getShim","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","l","p","Fragment","StrictMode","Profiler","q","r","t","Suspense","u","v","Symbol","for","w","x","iterator","z","a","b","c","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","B","C","this","context","refs","updater","D","E","isReactComponent","setState","forceUpdate","F","constructor","isPureReactComponent","G","current","H","I","ref","__self","__source","J","e","d","k","h","g","children","f","Array","m","defaultProps","$$typeof","_owner","L","M","N","replace","escape","toString","O","isArray","K","push","y","next","done","value","P","Q","_status","_result","then","default","R","S","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","apply","count","toArray","only","Component","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createElement","createFactory","bind","createRef","forwardRef","render","isValidElement","lazy","_payload","_init","memo","compare","useCallback","useContext","useDebugValue","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","version","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","chunkId","getter","__esModule","definition","o","defineProperty","enumerable","get","obj","prop","toStringTag","link","document","nc","setAttribute","rel","as","head","appendChild","id","packageJson","SOPClassHandlerId","SOP_CLASS_UIDS","VIDEO_MICROSCOPIC_IMAGE_STORAGE","VIDEO_PHOTOGRAPHIC_IMAGE_STORAGE","VIDEO_ENDOSCOPIC_IMAGE_STORAGE","SECONDARY_CAPTURE_IMAGE_STORAGE","MULTIFRAME_TRUE_COLOR_SECONDARY_CAPTURE_IMAGE_STORAGE","sopClassUids","values","secondaryCaptureSopClassUids","supportedTransferSyntaxUIDs","MPEG4_AVC_264_HIGH_PROFILE","MPEG4_AVC_264_BD_COMPATIBLE_HIGH_PROFILE","MPEG4_AVC_264_HIGH_PROFILE_FOR_2D_VIDEO","MPEG4_AVC_264_HIGH_PROFILE_FOR_3D_VIDEO","MPEG4_AVC_264_STEREO_HIGH_PROFILE","HEVC_265_MAIN_PROFILE","HEVC_265_MAIN_10_PROFILE","fallback","getViewportModule","servicesManager","extensionManager","component","_extends","getSopClassHandlerModule","getDisplaySetsFromSeries","instances","_getDisplaySetsFromSeries","dataSource","getActiveDataSource","filter","metadata","tsuid","AvailableTransferSyntaxUID","TransferSyntaxUID","includes","SOPClassUID","NumberOfFrames","instance","Modality","SOPInstanceUID","SeriesDescription","SeriesNumber","SeriesDate","SeriesInstanceUID","StudyInstanceUID","displaySetInstanceUID","utils","referencedImages","measurements","retrieve","directURL","singlepart","tag","thumbnailSrc","defaultPath","defaultType","isDerivedDisplaySet","isLoaded","numImageFrames"],"sourceRoot":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ohif/extension-dicom-video",
|
|
3
|
+
"version": "3.0.1",
|
|
4
|
+
"description": "OHIF extension for video display",
|
|
5
|
+
"author": "OHIF",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": "OHIF/Viewers",
|
|
8
|
+
"main": "dist/ohif-extension-dicom-video.umd.js",
|
|
9
|
+
"module": "src/index.tsx",
|
|
10
|
+
"engines": {
|
|
11
|
+
"node": ">=14",
|
|
12
|
+
"npm": ">=6",
|
|
13
|
+
"yarn": ">=1.16.0"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist",
|
|
17
|
+
"README.md"
|
|
18
|
+
],
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"dev": "cross-env NODE_ENV=development webpack --config .webpack/webpack.dev.js --watch --output-pathinfo",
|
|
24
|
+
"build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js",
|
|
25
|
+
"build:package": "yarn run build",
|
|
26
|
+
"start": "yarn run dev",
|
|
27
|
+
"test:unit": "jest --watchAll",
|
|
28
|
+
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
|
29
|
+
},
|
|
30
|
+
"peerDependencies": {
|
|
31
|
+
"@ohif/core": "^3.0.0",
|
|
32
|
+
"@ohif/ui": "^2.0.0",
|
|
33
|
+
"dcmjs": "^0.29.5",
|
|
34
|
+
"dicom-parser": "^1.8.9",
|
|
35
|
+
"hammerjs": "^2.0.8",
|
|
36
|
+
"prop-types": "^15.6.2",
|
|
37
|
+
"react": "^17.0.2"
|
|
38
|
+
},
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@babel/runtime": "^7.20.13",
|
|
41
|
+
"classnames": "^2.3.2"
|
|
42
|
+
}
|
|
43
|
+
}
|