UNPKG

dicomweb-proxy

Version:

A proxy to translate between dicomweb and dimse

2 lines 3.32 kB
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4202],{74202:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});var n=i(97598),a=i.n(n),s=i(86326),r=i(2836);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},o.apply(null,arguments)}function c(e){const{displaySets:t,children:i,viewportOptions:n,displaySetOptions:a,servicesManager:c,extensionManager:l}=e,p=n.viewportId,{displaySetService:u,segmentationService:d,uiNotificationService:S,customizationService:y}=c.services;if(1!==t.length)throw new Error("PMAP viewport must have a single display set");const v=y.getCustomization("ui.loadingIndicatorTotalPercent"),w=t[0],[m,f]=(0,r.ihW)(),I=(0,s.useRef)(null),{viewports:g,activeViewportId:h}=m,b=w.getReferenceDisplaySet(),E=function(e,t){const{SharedFunctionalGroupsSequence:i}=t.instance,n=Array.isArray(i)?i[0]:i,{PixelMeasuresSequence:a}=n,s=Array.isArray(a)?a[0]:a,{SpacingBetweenSlices:r,SliceThickness:o}=s,c=e.images[0],l={PatientID:c.PatientID,PatientName:c.PatientName,PatientSex:c.PatientSex,PatientAge:c.PatientAge,SliceThickness:c.SliceThickness||o,StudyDate:c.StudyDate,SeriesDescription:c.SeriesDescription,SeriesInstanceUID:c.SeriesInstanceUID,SeriesNumber:c.SeriesNumber,ManufacturerModelName:c.ManufacturerModelName,SpacingBetweenSlices:c.SpacingBetweenSlices||r};return l}(b,w);I.current={displaySet:b,metadata:E};const[D,P]=(0,s.useState)(!w.isLoaded);(0,s.useEffect)((()=>{const{unsubscribe:e}=d.subscribe(d.EVENTS.SEGMENTATION_LOADING_COMPLETE,(e=>{e.pmapDisplaySet?.displaySetInstanceUID===w.displaySetInstanceUID&&P(!1)}));return()=>{e()}}),[w]);const M=(0,s.useCallback)((()=>{const{displaySet:t}=I.current,{component:i}=l.getModuleEntry("@ohif/extension-cornerstone.viewportModule.cornerstone");a.unshift({});const[r]=a;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}}),S.show({title:"Parametric Map",type:"warning",message:"The values are multiplied by 100 in the viewport for better visibility"}),s.createElement(i,o({},e,{displaySets:[t,w],viewportOptions:{viewportType:"volume",orientation:n.orientation,viewportId:n.viewportId,presentationIds:n.presentationIds},displaySetOptions:[{},r]}))}),[l,a,e,w,n.orientation,n.viewportId]);(0,s.useEffect)((()=>{const e=u.subscribe(u.EVENTS.DISPLAY_SETS_REMOVED,(({displaySetInstanceUIDs:e})=>{const t=g.get(h);e.includes(t.displaySetInstanceUID)&&f.setDisplaySetsForViewport({viewportId:h,displaySetInstanceUIDs:[]})}));return()=>{e.unsubscribe()}}),[h,u,f,g]);let N=null;return i&&i.length&&(N=i.map(((e,t)=>e&&s.cloneElement(e,{viewportId:p,key:t})))),s.createElement(s.Fragment,null,s.createElement("div",{className:"relative flex h-full w-full flex-row overflow-hidden"},D&&s.createElement(v,{className:"h-full w-full",totalNumbers:null,percentComplete:null,loadingText:"Loading Parametric Map..."}),M(),N))}c.propTypes={displaySets:a().arrayOf(a().object),viewportId:a().string.isRequired,dataSource:a().object,children:a().node};const l=c}}]); //# sourceMappingURL=4202.bundle.855f50df4850b7108a08.js.map