@ohif/extension-cornerstone-dicom-pmap 3.13.0-beta.13 → 3.13.0-beta.15
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.
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see ohif-extension-cornerstone-dicom-pmap.umd.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@cornerstonejs/adapters"),require("@cornerstonejs/core"),require("@ohif/core"),require("@ohif/extension-cornerstone"),require("@ohif/i18n"),require("@ohif/ui-next")):"function"==typeof define&&define.amd?define(["@cornerstonejs/adapters","@cornerstonejs/core","@ohif/core","@ohif/extension-cornerstone","@ohif/i18n","@ohif/ui-next"],t):"object"==typeof exports?exports["ohif-extension-cornerstone-dicom-pmap"]=t(require("@cornerstonejs/adapters"),require("@cornerstonejs/core"),require("@ohif/core"),require("@ohif/extension-cornerstone"),require("@ohif/i18n"),require("@ohif/ui-next")):e["ohif-extension-cornerstone-dicom-pmap"]=t(e["@cornerstonejs/adapters"],e["@cornerstonejs/core"],e["@ohif/core"],e["@ohif/extension-cornerstone"],e["@ohif/i18n"],e["@ohif/ui-next"])}(globalThis,(e,t,r,n,o,i)=>(()=>{var a,s,c={51:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>l});var n=r(598),o=r.n(n),i=r(326),a=r(55),s=r(669);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(null,arguments)}function u(e){const{displaySets:t,children:r,viewportOptions:n,displaySetOptions:o,servicesManager:u}=e,l=n.viewportId,{displaySetService:p,segmentationService:f,uiNotificationService:d,customizationService:y}=u.services;if(1!==t.length)throw new Error("PMAP viewport must have a single display set");const m=y.getCustomization("ui.loadingIndicatorTotalPercent"),S=t[0],[v,h]=(0,a.useViewportGrid)(),I=(0,i.useRef)(null),{viewports:g,activeViewportId:b}=v,w=S.getReferenceDisplaySet(),D=function(e,t){const{SharedFunctionalGroupsSequence:r}=t.instance,n=Array.isArray(r)?r[0]:r,{PixelMeasuresSequence:o}=n,i=Array.isArray(o)?o[0]:o,{SpacingBetweenSlices:a,SliceThickness:s}=i,c=e.images[0],u={PatientID:c.PatientID,PatientName:c.PatientName,PatientSex:c.PatientSex,PatientAge:c.PatientAge,SliceThickness:c.SliceThickness||s,StudyDate:c.StudyDate,SeriesDescription:c.SeriesDescription,SeriesInstanceUID:c.SeriesInstanceUID,SeriesNumber:c.SeriesNumber,ManufacturerModelName:c.ManufacturerModelName,SpacingBetweenSlices:c.SpacingBetweenSlices||a};return u}(w,S);I.current={displaySet:w,metadata:D};const[_,E]=(0,i.useState)(!S.isLoaded);(0,i.useEffect)(()=>{const{unsubscribe:e}=f.subscribe(f.EVENTS.SEGMENTATION_LOADING_COMPLETE,e=>{e.pmapDisplaySet?.displaySetInstanceUID===S.displaySetInstanceUID&&E(!1)});return()=>{e()}},[S]);const O=(0,i.useCallback)(()=>{const{displaySet:t}=I.current;o.unshift({});const[r]=o;return r.options=r.options??{},Object.assign(r.options,{colormap:{name:"rainbow_2",opacity:[{value:0,opacity:0},{value:.25,opacity:.25},{value:.5,opacity:.5},{value:.75,opacity:.75},{value:.9,opacity:.99}]},voi:{windowCenter:50,windowWidth:100}}),d.show({title:"Parametric Map",type:"warning",message:"The values are multiplied by 100 in the viewport for better visibility"}),i.createElement(s.OHIFCornerstoneViewport,c({},e,{displaySets:[t,S],viewportOptions:{viewportType:"volume",orientation:n.orientation,viewportId:n.viewportId,presentationIds:n.presentationIds},displaySetOptions:[{},r]}))},[o,e,S,n.orientation,n.viewportId,n.presentationIds,d]);(0,i.useEffect)(()=>{const e=p.subscribe(p.EVENTS.DISPLAY_SETS_REMOVED,({displaySetInstanceUIDs:e})=>{const t=g.get(b);e.includes(t.displaySetInstanceUID)&&h.setDisplaySetsForViewport({viewportId:b,displaySetInstanceUIDs:[]})});return()=>{e.unsubscribe()}},[b,p,h,g]);let P=null;return r&&r.length&&(P=r.map((e,t)=>e&&i.cloneElement(e,{viewportId:l,key:t}))),i.createElement(i.Fragment,null,i.createElement("div",{className:"relative flex h-full w-full flex-row overflow-hidden"},_&&i.createElement(m,{className:"h-full w-full",totalNumbers:null,percentComplete:null,loadingText:"Loading Parametric Map..."}),O(),P))}u.propTypes={displaySets:o().arrayOf(o().object),viewportId:o().string.isRequired,dataSource:o().object,children:o().node};const l=u},856:(e,t,r)=>{"use strict";var n=r(183);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,a){if(a!==n){var s=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 s.name="Invariant Violation",s}}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:i,resetWarningCache:o};return r.PropTypes=r,r}},598:(e,t,r)=>{e.exports=r(856)()},183:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},249:(e,t)=>{"use strict";var r=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),d=Symbol.iterator;var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,S={};function v(e,t,r){this.props=e,this.context=t,this.refs=S,this.updater=r||y}function h(){}function I(e,t,r){this.props=e,this.context=t,this.refs=S,this.updater=r||y}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},h.prototype=v.prototype;var g=I.prototype=new h;g.constructor=I,m(g,v.prototype),g.isPureReactComponent=!0;var b=Array.isArray,w=Object.prototype.hasOwnProperty,D={current:null},_={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var o,i={},a=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)w.call(t,o)&&!_.hasOwnProperty(o)&&(i[o]=t[o]);var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){for(var u=Array(c),l=0;l<c;l++)u[l]=arguments[l+2];i.children=u}if(e&&e.defaultProps)for(o in c=e.defaultProps)void 0===i[o]&&(i[o]=c[o]);return{$$typeof:r,type:e,key:a,ref:s,props:i,_owner:D.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}var P=/\/+/g;function x(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 U(e,t,o,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case r:case n:c=!0}}if(c)return a=a(c=e),e=""===i?"."+x(c,0):i,b(a)?(o="",null!=e&&(o=e.replace(P,"$&/")+"/"),U(a,t,o,"",function(e){return e})):null!=a&&(O(a)&&(a=function(e,t){return{$$typeof:r,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,o+(!a.key||c&&c.key===a.key?"":(""+a.key).replace(P,"$&/")+"/")+e)),t.push(a)),1;if(c=0,i=""===i?".":i+":",b(e))for(var u=0;u<e.length;u++){var l=i+x(s=e[u],u);c+=U(s,t,o,l,a)}else if(l=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e),"function"==typeof l)for(e=l.call(e),u=0;!(s=e.next()).done;)c+=U(s=s.value,t,o,l=i+x(s,u++),a);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return c}function R(e,t,r){if(null==e)return e;var n=[],o=0;return U(e,n,"","",function(e){return t.call(r,e,o++)}),n}function j(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var M={current:null},C={transition:null},T={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:C,ReactCurrentOwner:D};function k(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:R,forEach:function(e,t,r){R(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return R(e,function(){t++}),t},toArray:function(e){return R(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=v,t.Fragment=o,t.Profiler=a,t.PureComponent=I,t.StrictMode=i,t.Suspense=l,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T,t.act=k,t.cloneElement=function(e,t,n){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=m({},e.props),i=e.key,a=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,s=D.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)w.call(t,u)&&!_.hasOwnProperty(u)&&(o[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){c=Array(u);for(var l=0;l<u;l++)c[l]=arguments[l+2];o.children=c}return{$$typeof:r,type:e.type,key:i,ref:a,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=O,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:j}},t.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=C.transition;C.transition={};try{e()}finally{C.transition=t}},t.unstable_act=k,t.useCallback=function(e,t){return M.current.useCallback(e,t)},t.useContext=function(e){return M.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return M.current.useDeferredValue(e)},t.useEffect=function(e,t){return M.current.useEffect(e,t)},t.useId=function(){return M.current.useId()},t.useImperativeHandle=function(e,t,r){return M.current.useImperativeHandle(e,t,r)},t.useInsertionEffect=function(e,t){return M.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return M.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return M.current.useMemo(e,t)},t.useReducer=function(e,t,r){return M.current.useReducer(e,t,r)},t.useRef=function(e){return M.current.useRef(e)},t.useState=function(e){return M.current.useState(e)},t.useSyncExternalStore=function(e,t,r){return M.current.useSyncExternalStore(e,t,r)},t.useTransition=function(){return M.current.useTransition()},t.version="18.3.1"},326:(e,t,r)=>{"use strict";e.exports=r(249)},142:t=>{"use strict";t.exports=e},557:e=>{"use strict";e.exports=t},2:e=>{"use strict";e.exports=r},669:e=>{"use strict";e.exports=n},545:e=>{"use strict";e.exports=o},55:e=>{"use strict";e.exports=i}},u={};function l(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}};return c[e](r,r.exports,l),r.exports}l.m=c,a=[],l.O=(e,t,r,n)=>{if(!t){var o=1/0;for(u=0;u<a.length;u++){for(var[t,r,n]=a[u],i=!0,s=0;s<t.length;s++)(!1&n||o>=n)&&Object.keys(l.O).every(e=>l.O[e](t[s]))?t.splice(s--,1):(i=!1,n<o&&(o=n));if(i){a.splice(u--,1);var c=r();void 0!==c&&(e=c)}}return e}n=n||0;for(var u=a.length;u>0&&a[u-1][2]>n;u--)a[u]=a[u-1];a[u]=[t,r,n]},l.F={},l.E=e=>{Object.keys(l.F).map(t=>{l.F[t](e)})},l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.miniCssF=e=>{},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.p="/",s={524:0},l.F.j=e=>{if(!l.o(s,e)||void 0===s[e]){s[e]=null;var t=document.createElement("link");l.nc&&t.setAttribute("nonce",l.nc),t.rel="prefetch",t.as="script",t.href=l.p+l.u(e),document.head.appendChild(t)}},l.O.j=e=>0===s[e],l.O(0,[524],()=>{l.E(524)},5);var p={};return(()=>{"use strict";l.r(p),l.d(p,{default:()=>h});const e=JSON.parse('{"UU":"@ohif/extension-cornerstone-dicom-pmap"}').UU,t=`${e}.sopClassHandlerModule.dicom-pmap`;var r=l(326),n=l(2),o=l(545),i=l.n(o),a=l(557),s=l(142),c=l(669);const u=["1.2.840.10008.5.1.4.1.1.30"];function f(e,r,o){const l=e[0],{StudyInstanceUID:p,SeriesInstanceUID:f,SOPInstanceUID:y,SeriesDescription:m,SeriesNumber:S,SeriesDate:v,SOPClassUID:h,wadoRoot:I,wadoUri:g,wadoUriRoot:b}=l,w={Modality:"PMAP",isReconstructable:!0,displaySetInstanceUID:`pmap.${n.utils.guid()}`,SeriesDescription:m,SeriesNumber:S,SeriesDate:v,SOPInstanceUID:y,SeriesInstanceUID:f,StudyInstanceUID:p,SOPClassHandlerId:t,SOPClassUID:h,referencedImages:null,referencedSeriesInstanceUID:null,referencedDisplaySetInstanceUID:null,referencedVolumeURI:null,referencedVolumeId:null,isDerivedDisplaySet:!0,loadStatus:{loading:!1,loaded:!1},sopClassUids:u,instance:l,instances:[l],wadoRoot:I,wadoUriRoot:b,wadoUri:g,supportsWindowLevel:!0,label:m||`${i().t("Series")} ${S} - ${i().t("PMAP")}`},D=l.ReferencedSeriesSequence;if(!D)return void console.error("ReferencedSeriesSequence is missing for the parametric map");const _=D[0]||D;return w.referencedImages=l.ReferencedSeriesSequence.ReferencedInstanceSequence,w.referencedSeriesInstanceUID=_.SeriesInstanceUID,w.getReferenceDisplaySet=()=>{const{displaySetService:e}=r.services;if(w.referencedDisplaySetInstanceUID)return e.getDisplaySetByUID(w.referencedDisplaySetInstanceUID);const t=e.getDisplaySetsForSeries(w.referencedSeriesInstanceUID);if(!t||0===t.length)throw new Error("Referenced displaySet is missing for the parametric map");const n=t[0];return w.referencedDisplaySetInstanceUID=n.displaySetInstanceUID,n},w.getReferencedVolumeId=()=>{if(w.referencedVolumeId)return w.referencedVolumeId;const e=w.getReferenceDisplaySet().displaySetInstanceUID,t=`${c.VOLUME_LOADER_SCHEME}:${e}`;return w.referencedVolumeURI=e,w.referencedVolumeId=t,t},w.load=async({headers:e})=>await async function(e,t,r,n){const o=`${c.VOLUME_LOADER_SCHEME}:${e.displaySetInstanceUID}`,i=a.cache.getVolumeLoadObject(o);if(i)return i.promise;e.loading=!0,e.isLoaded=!1;const u=async function({displaySet:e,headers:t}){const r=await c.dicomLoaderService.findDicomDataPromise(e,null,t),n=e.getReferencedVolumeId(),o=a.cache.getVolume(n);if(!o)throw new Error("Referenced Volume is missing for the PMAP, and stack viewport PMAP is not supported yet");const{imageIds:i}=o,u=await s.adaptersPMAP.Cornerstone3D.ParametricMap.generateToolState(i,r,a.metaData),{pixelData:l}=u,p=l.constructor,f=e.displaySetInstanceUID,y=await a.volumeLoader.createAndCacheDerivedVolume(n,{volumeId:f,targetBuffer:{type:p.name}}),m=new p(l.length);for(let e=0;e<l.length;e++)m[e]=100*l[e];y.voxelManager.setCompleteScalarDataArray(m);const S=d(m),v=a.utilities.windowLevel.toWindowLevel(S[0],S[1]);return y.metadata.voiLut=[v],y.loadStatus={loaded:!0},y}({extensionManager:r,displaySet:e,headers:n});return a.cache.putVolumeLoadObject(o,{promise:u}).catch(e=>{throw e}),u.then(()=>{e.loading=!1,e.isLoaded=!0,t.services.segmentationService._broadcastEvent(t.services.segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE,{pmapDisplaySet:e})}).catch(t=>{throw e.loading=!1,e.isLoaded=!1,t}),u}(w,r,o,e),[w]}const d=e=>{let t=e[0],r=e[0];for(let n=1;n<e.length;n++)e[n]<t&&(t=e[n]),e[n]>r&&(r=e[n]);return[t,r]};const y=function(e){const{servicesManager:t,extensionManager:r}=e;return[{name:"dicom-pmap",sopClassUids:u,getDisplaySetsFromSeries:e=>f(e,t,r)}]};function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},m.apply(null,arguments)}const S=r.lazy(()=>Promise.resolve().then(l.bind(l,51))),v=e=>r.createElement(r.Suspense,{fallback:r.createElement("div",null,"Loading...")},r.createElement(S,e)),h={id:e,getViewportModule:({servicesManager:e,extensionManager:t,commandsManager:n})=>[{name:"dicom-pmap",component:o=>r.createElement(v,m({servicesManager:e,extensionManager:t,commandsManager:n},o))}],getSopClassHandlerModule:y}})(),p=l.O(p)})());
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@cornerstonejs/adapters"),require("@cornerstonejs/core"),require("@ohif/core"),require("@ohif/extension-cornerstone"),require("@ohif/i18n"),require("@ohif/ui-next")):"function"==typeof define&&define.amd?define(["@cornerstonejs/adapters","@cornerstonejs/core","@ohif/core","@ohif/extension-cornerstone","@ohif/i18n","@ohif/ui-next"],t):"object"==typeof exports?exports["ohif-extension-cornerstone-dicom-pmap"]=t(require("@cornerstonejs/adapters"),require("@cornerstonejs/core"),require("@ohif/core"),require("@ohif/extension-cornerstone"),require("@ohif/i18n"),require("@ohif/ui-next")):e["ohif-extension-cornerstone-dicom-pmap"]=t(e["@cornerstonejs/adapters"],e["@cornerstonejs/core"],e["@ohif/core"],e["@ohif/extension-cornerstone"],e["@ohif/i18n"],e["@ohif/ui-next"])}(globalThis,(e,t,r,n,o,i)=>(()=>{var a,s,c={51(e,t,r){"use strict";r.r(t),r.d(t,{default:()=>l});var n=r(598),o=r.n(n),i=r(326),a=r(55),s=r(669);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(null,arguments)}function u(e){const{displaySets:t,children:r,viewportOptions:n,displaySetOptions:o,servicesManager:u}=e,l=n.viewportId,{displaySetService:p,segmentationService:f,uiNotificationService:d,customizationService:y}=u.services;if(1!==t.length)throw new Error("PMAP viewport must have a single display set");const m=y.getCustomization("ui.loadingIndicatorTotalPercent"),S=t[0],[h,v]=(0,a.useViewportGrid)(),I=(0,i.useRef)(null),{viewports:g,activeViewportId:b}=h,w=S.getReferenceDisplaySet(),D=function(e,t){const{SharedFunctionalGroupsSequence:r}=t.instance,n=Array.isArray(r)?r[0]:r,{PixelMeasuresSequence:o}=n,i=Array.isArray(o)?o[0]:o,{SpacingBetweenSlices:a,SliceThickness:s}=i,c=e.images[0],u={PatientID:c.PatientID,PatientName:c.PatientName,PatientSex:c.PatientSex,PatientAge:c.PatientAge,SliceThickness:c.SliceThickness||s,StudyDate:c.StudyDate,SeriesDescription:c.SeriesDescription,SeriesInstanceUID:c.SeriesInstanceUID,SeriesNumber:c.SeriesNumber,ManufacturerModelName:c.ManufacturerModelName,SpacingBetweenSlices:c.SpacingBetweenSlices||a};return u}(w,S);I.current={displaySet:w,metadata:D};const[_,E]=(0,i.useState)(!S.isLoaded);(0,i.useEffect)(()=>{const{unsubscribe:e}=f.subscribe(f.EVENTS.SEGMENTATION_LOADING_COMPLETE,e=>{e.pmapDisplaySet?.displaySetInstanceUID===S.displaySetInstanceUID&&E(!1)});return()=>{e()}},[S]);const O=(0,i.useCallback)(()=>{const{displaySet:t}=I.current;o.unshift({});const[r]=o;return r.options=r.options??{},Object.assign(r.options,{colormap:{name:"rainbow_2",opacity:[{value:0,opacity:0},{value:.25,opacity:.25},{value:.5,opacity:.5},{value:.75,opacity:.75},{value:.9,opacity:.99}]},voi:{windowCenter:50,windowWidth:100}}),d.show({title:"Parametric Map",type:"warning",message:"The values are multiplied by 100 in the viewport for better visibility"}),i.createElement(s.OHIFCornerstoneViewport,c({},e,{displaySets:[t,S],viewportOptions:{viewportType:"volume",orientation:n.orientation,viewportId:n.viewportId,presentationIds:n.presentationIds},displaySetOptions:[{},r]}))},[o,e,S,n.orientation,n.viewportId,n.presentationIds,d]);(0,i.useEffect)(()=>{const e=p.subscribe(p.EVENTS.DISPLAY_SETS_REMOVED,({displaySetInstanceUIDs:e})=>{const t=g.get(b);e.includes(t.displaySetInstanceUID)&&v.setDisplaySetsForViewport({viewportId:b,displaySetInstanceUIDs:[]})});return()=>{e.unsubscribe()}},[b,p,v,g]);let P=null;return r&&r.length&&(P=r.map((e,t)=>e&&i.cloneElement(e,{viewportId:l,key:t}))),i.createElement(i.Fragment,null,i.createElement("div",{className:"relative flex h-full w-full flex-row overflow-hidden"},_&&i.createElement(m,{className:"h-full w-full",totalNumbers:null,percentComplete:null,loadingText:"Loading Parametric Map..."}),O(),P))}u.propTypes={displaySets:o().arrayOf(o().object),viewportId:o().string.isRequired,dataSource:o().object,children:o().node};const l=u},856(e,t,r){"use strict";var n=r(183);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,r,o,i,a){if(a!==n){var s=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 s.name="Invariant Violation",s}}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:i,resetWarningCache:o};return r.PropTypes=r,r}},598(e,t,r){e.exports=r(856)()},183(e){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},249(e,t){"use strict";var r=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),d=Symbol.iterator;var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,S={};function h(e,t,r){this.props=e,this.context=t,this.refs=S,this.updater=r||y}function v(){}function I(e,t,r){this.props=e,this.context=t,this.refs=S,this.updater=r||y}h.prototype.isReactComponent={},h.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},h.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=h.prototype;var g=I.prototype=new v;g.constructor=I,m(g,h.prototype),g.isPureReactComponent=!0;var b=Array.isArray,w=Object.prototype.hasOwnProperty,D={current:null},_={key:!0,ref:!0,__self:!0,__source:!0};function E(e,t,n){var o,i={},a=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(a=""+t.key),t)w.call(t,o)&&!_.hasOwnProperty(o)&&(i[o]=t[o]);var c=arguments.length-2;if(1===c)i.children=n;else if(1<c){for(var u=Array(c),l=0;l<c;l++)u[l]=arguments[l+2];i.children=u}if(e&&e.defaultProps)for(o in c=e.defaultProps)void 0===i[o]&&(i[o]=c[o]);return{$$typeof:r,type:e,key:a,ref:s,props:i,_owner:D.current}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}var P=/\/+/g;function x(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 U(e,t,o,i,a){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var c=!1;if(null===e)c=!0;else switch(s){case"string":case"number":c=!0;break;case"object":switch(e.$$typeof){case r:case n:c=!0}}if(c)return a=a(c=e),e=""===i?"."+x(c,0):i,b(a)?(o="",null!=e&&(o=e.replace(P,"$&/")+"/"),U(a,t,o,"",function(e){return e})):null!=a&&(O(a)&&(a=function(e,t){return{$$typeof:r,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(a,o+(!a.key||c&&c.key===a.key?"":(""+a.key).replace(P,"$&/")+"/")+e)),t.push(a)),1;if(c=0,i=""===i?".":i+":",b(e))for(var u=0;u<e.length;u++){var l=i+x(s=e[u],u);c+=U(s,t,o,l,a)}else if(l=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=d&&e[d]||e["@@iterator"])?e:null}(e),"function"==typeof l)for(e=l.call(e),u=0;!(s=e.next()).done;)c+=U(s=s.value,t,o,l=i+x(s,u++),a);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return c}function R(e,t,r){if(null==e)return e;var n=[],o=0;return U(e,n,"","",function(e){return t.call(r,e,o++)}),n}function j(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)}),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var M={current:null},C={transition:null},T={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:C,ReactCurrentOwner:D};function k(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:R,forEach:function(e,t,r){R(e,function(){t.apply(this,arguments)},r)},count:function(e){var t=0;return R(e,function(){t++}),t},toArray:function(e){return R(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=h,t.Fragment=o,t.Profiler=a,t.PureComponent=I,t.StrictMode=i,t.Suspense=l,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T,t.act=k,t.cloneElement=function(e,t,n){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=m({},e.props),i=e.key,a=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(a=t.ref,s=D.current),void 0!==t.key&&(i=""+t.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(u in t)w.call(t,u)&&!_.hasOwnProperty(u)&&(o[u]=void 0===t[u]&&void 0!==c?c[u]:t[u])}var u=arguments.length-2;if(1===u)o.children=n;else if(1<u){c=Array(u);for(var l=0;l<u;l++)c[l]=arguments[l+2];o.children=c}return{$$typeof:r,type:e.type,key:i,ref:a,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:c,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=E,t.createFactory=function(e){var t=E.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:u,render:e}},t.isValidElement=O,t.lazy=function(e){return{$$typeof:f,_payload:{_status:-1,_result:e},_init:j}},t.memo=function(e,t){return{$$typeof:p,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=C.transition;C.transition={};try{e()}finally{C.transition=t}},t.unstable_act=k,t.useCallback=function(e,t){return M.current.useCallback(e,t)},t.useContext=function(e){return M.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return M.current.useDeferredValue(e)},t.useEffect=function(e,t){return M.current.useEffect(e,t)},t.useId=function(){return M.current.useId()},t.useImperativeHandle=function(e,t,r){return M.current.useImperativeHandle(e,t,r)},t.useInsertionEffect=function(e,t){return M.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return M.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return M.current.useMemo(e,t)},t.useReducer=function(e,t,r){return M.current.useReducer(e,t,r)},t.useRef=function(e){return M.current.useRef(e)},t.useState=function(e){return M.current.useState(e)},t.useSyncExternalStore=function(e,t,r){return M.current.useSyncExternalStore(e,t,r)},t.useTransition=function(){return M.current.useTransition()},t.version="18.3.1"},326(e,t,r){"use strict";e.exports=r(249)},142(t){"use strict";t.exports=e},557(e){"use strict";e.exports=t},2(e){"use strict";e.exports=r},669(e){"use strict";e.exports=n},545(e){"use strict";e.exports=o},55(e){"use strict";e.exports=i}},u={};function l(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}};return c[e](r,r.exports,l),r.exports}l.m=c,a=[],l.O=(e,t,r,n)=>{if(!t){var o=1/0;for(u=0;u<a.length;u++){for(var[t,r,n]=a[u],i=!0,s=0;s<t.length;s++)(!1&n||o>=n)&&Object.keys(l.O).every(e=>l.O[e](t[s]))?t.splice(s--,1):(i=!1,n<o&&(o=n));if(i){a.splice(u--,1);var c=r();void 0!==c&&(e=c)}}return e}n=n||0;for(var u=a.length;u>0&&a[u-1][2]>n;u--)a[u]=a[u-1];a[u]=[t,r,n]},l.F={},l.E=e=>{Object.keys(l.F).map(t=>{l.F[t](e)})},l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},l.d=(e,t)=>{for(var r in t)l.o(t,r)&&!l.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},l.miniCssF=e=>{},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.p="/",s={524:0},l.F.j=e=>{if(!l.o(s,e)||void 0===s[e]){s[e]=null;var t=document.createElement("link");t.charset="utf-8",l.nc&&t.setAttribute("nonce",l.nc),t.rel="prefetch",t.as="script",t.href=l.p+l.u(e),document.head.appendChild(t)}},l.O.j=e=>0===s[e],l.O(0,[524],()=>{l.E(524)},5);var p={};return(()=>{"use strict";l.r(p),l.d(p,{default:()=>v});const e=JSON.parse('{"UU":"@ohif/extension-cornerstone-dicom-pmap"}').UU,t=`${e}.sopClassHandlerModule.dicom-pmap`;var r=l(326),n=l(2),o=l(545),i=l.n(o),a=l(557),s=l(142),c=l(669);const u=["1.2.840.10008.5.1.4.1.1.30"];function f(e,r,o){const l=e[0],{StudyInstanceUID:p,SeriesInstanceUID:f,SOPInstanceUID:y,SeriesDescription:m,SeriesNumber:S,SeriesDate:h,SOPClassUID:v,wadoRoot:I,wadoUri:g,wadoUriRoot:b}=l,w={Modality:"PMAP",isReconstructable:!0,displaySetInstanceUID:`pmap.${n.utils.guid()}`,SeriesDescription:m,SeriesNumber:S,SeriesDate:h,SOPInstanceUID:y,SeriesInstanceUID:f,StudyInstanceUID:p,SOPClassHandlerId:t,SOPClassUID:v,referencedImages:null,referencedSeriesInstanceUID:null,referencedDisplaySetInstanceUID:null,referencedVolumeURI:null,referencedVolumeId:null,isDerivedDisplaySet:!0,loadStatus:{loading:!1,loaded:!1},sopClassUids:u,instance:l,instances:[l],wadoRoot:I,wadoUriRoot:b,wadoUri:g,supportsWindowLevel:!0,label:m||`${i().t("Series")} ${S} - ${i().t("PMAP")}`},D=l.ReferencedSeriesSequence;if(!D)return void console.error("ReferencedSeriesSequence is missing for the parametric map");const _=D[0]||D;return w.referencedImages=l.ReferencedSeriesSequence.ReferencedInstanceSequence,w.referencedSeriesInstanceUID=_.SeriesInstanceUID,w.getReferenceDisplaySet=()=>{const{displaySetService:e}=r.services;if(w.referencedDisplaySetInstanceUID)return e.getDisplaySetByUID(w.referencedDisplaySetInstanceUID);const t=e.getDisplaySetsForSeries(w.referencedSeriesInstanceUID);if(!t||0===t.length)throw new Error("Referenced displaySet is missing for the parametric map");const n=t[0];return w.referencedDisplaySetInstanceUID=n.displaySetInstanceUID,n},w.getReferencedVolumeId=()=>{if(w.referencedVolumeId)return w.referencedVolumeId;const e=w.getReferenceDisplaySet().displaySetInstanceUID,t=`${c.VOLUME_LOADER_SCHEME}:${e}`;return w.referencedVolumeURI=e,w.referencedVolumeId=t,t},w.load=async({headers:e})=>await async function(e,t,r,n){const o=`${c.VOLUME_LOADER_SCHEME}:${e.displaySetInstanceUID}`,i=a.cache.getVolumeLoadObject(o);if(i)return i.promise;e.loading=!0,e.isLoaded=!1;const u=async function({displaySet:e,headers:t}){const r=await c.dicomLoaderService.findDicomDataPromise(e,null,t),n=e.getReferencedVolumeId(),o=a.cache.getVolume(n);if(!o)throw new Error("Referenced Volume is missing for the PMAP, and stack viewport PMAP is not supported yet");const{imageIds:i}=o,u=await s.adaptersPMAP.Cornerstone3D.ParametricMap.generateToolState(i,r,a.metaData),{pixelData:l}=u,p=l.constructor,f=e.displaySetInstanceUID,y=await a.volumeLoader.createAndCacheDerivedVolume(n,{volumeId:f,targetBuffer:{type:p.name}}),m=new p(l.length);for(let e=0;e<l.length;e++)m[e]=100*l[e];y.voxelManager.setCompleteScalarDataArray(m);const S=d(m),h=a.utilities.windowLevel.toWindowLevel(S[0],S[1]);return y.metadata.voiLut=[h],y.loadStatus={loaded:!0},y}({extensionManager:r,displaySet:e,headers:n});return a.cache.putVolumeLoadObject(o,{promise:u}).catch(e=>{throw e}),u.then(()=>{e.loading=!1,e.isLoaded=!0,t.services.segmentationService._broadcastEvent(t.services.segmentationService.EVENTS.SEGMENTATION_LOADING_COMPLETE,{pmapDisplaySet:e})}).catch(t=>{throw e.loading=!1,e.isLoaded=!1,t}),u}(w,r,o,e),[w]}const d=e=>{let t=e[0],r=e[0];for(let n=1;n<e.length;n++)e[n]<t&&(t=e[n]),e[n]>r&&(r=e[n]);return[t,r]};const y=function(e){const{servicesManager:t,extensionManager:r}=e;return[{name:"dicom-pmap",sopClassUids:u,getDisplaySetsFromSeries:e=>f(e,t,r)}]};function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)({}).hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},m.apply(null,arguments)}const S=r.lazy(()=>Promise.resolve().then(l.bind(l,51))),h=e=>r.createElement(r.Suspense,{fallback:r.createElement("div",null,"Loading...")},r.createElement(S,e)),v={id:e,getViewportModule:({servicesManager:e,extensionManager:t,commandsManager:n})=>[{name:"dicom-pmap",component:o=>r.createElement(h,m({servicesManager:e,extensionManager:t,commandsManager:n},o))}],getSopClassHandlerModule:y}})(),p=l.O(p)})());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ohif/extension-cornerstone-dicom-pmap",
|
|
3
|
-
"version": "3.13.0-beta.
|
|
3
|
+
"version": "3.13.0-beta.15",
|
|
4
4
|
"description": "DICOM Parametric Map read workflow",
|
|
5
5
|
"author": "OHIF",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"start": "yarn run dev"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@ohif/core": "3.13.0-beta.
|
|
37
|
-
"@ohif/extension-cornerstone": "3.13.0-beta.
|
|
38
|
-
"@ohif/extension-default": "3.13.0-beta.
|
|
39
|
-
"@ohif/i18n": "3.13.0-beta.
|
|
36
|
+
"@ohif/core": "3.13.0-beta.15",
|
|
37
|
+
"@ohif/extension-cornerstone": "3.13.0-beta.15",
|
|
38
|
+
"@ohif/extension-default": "3.13.0-beta.15",
|
|
39
|
+
"@ohif/i18n": "3.13.0-beta.15",
|
|
40
40
|
"prop-types": "15.8.1",
|
|
41
41
|
"react": "18.3.1",
|
|
42
42
|
"react-dom": "18.3.1",
|