@ohif/mode-longitudinal 3.0.0 → 3.5.0-beta.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.
|
@@ -1,2 +1 @@
|
|
|
1
|
-
!function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@ohif/core"),require("@ohif/ui")):"function"==typeof define&&define.amd?define(["@ohif/core","@ohif/ui"],e):"object"==typeof exports?exports["ohif-mode-longitudinal"]=e(require("@ohif/core"),require("@ohif/ui")):o["ohif-mode-longitudinal"]=e(o["@ohif/core"],o["@ohif/ui"])}(globalThis,((o,e)=>(()=>{"use strict";var t={762:e=>{e.exports=o},369:o=>{o.exports=e}},n={};function i(o){var e=n[o];if(void 0!==e)return e.exports;var a=n[o]={exports:{}};return t[o](a,a.exports,i),a.exports}i.d=(o,e)=>{for(var t in e)i.o(e,t)&&!i.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},i.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var a={};return(()=>{i.d(a,{default:()=>k});var o=i(762),e=i(369);const{windowLevelPresets:t}=o.defaults;function n(o,e,t,n,i,a,l){return{id:e,icon:t,label:n,type:o,commands:i,tooltip:a,uiType:l}}const l=n.bind(null,"action"),s=n.bind(null,"toggle"),r=n.bind(null,"tool");function c(o,e,n){return{id:o.toString(),title:e,subtitle:n,type:"action",commands:[{commandName:"setWindowLevel",commandOptions:{...t[o]},context:"CORNERSTONE"}]}}const m=["default","mpr","SRToolGroup"];function d(o){return m.map((e=>({commandName:"setToolActive",commandOptions:{toolGroupId:e,toolName:o},context:"CORNERSTONE"})))}const p=[{id:"MeasurementTools",type:"ohif.splitButton",props:{groupId:"MeasurementTools",isRadio:!0,primary:r("Length","tool-length","Length",[{commandName:"setToolActive",commandOptions:{toolName:"Length"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRLength",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Length"),secondary:{icon:"chevron-down",label:"",isActive:!0,tooltip:"More Measure Tools"},items:[r("Length","tool-length","Length",[{commandName:"setToolActive",commandOptions:{toolName:"Length"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRLength",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Length Tool"),r("Bidirectional","tool-bidirectional","Bidirectional",[{commandName:"setToolActive",commandOptions:{toolName:"Bidirectional"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRBidirectional",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Bidirectional Tool"),r("ArrowAnnotate","tool-annotate","Annotation",[{commandName:"setToolActive",commandOptions:{toolName:"ArrowAnnotate"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRArrowAnnotate",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Arrow Annotate"),r("EllipticalROI","tool-elipse","Ellipse",[{commandName:"setToolActive",commandOptions:{toolName:"EllipticalROI"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SREllipticalROI",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Ellipse Tool"),r("CircleROI","tool-circle","Circle",[{commandName:"setToolActive",commandOptions:{toolName:"CircleROI"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRCircleROI",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Circle Tool")]}},{id:"Zoom",type:"ohif.radioGroup",props:{type:"tool",icon:"tool-zoom",label:"Zoom",commands:d("Zoom")}},{id:"WindowLevel",type:"ohif.splitButton",props:{groupId:"WindowLevel",primary:r("WindowLevel","tool-window-level","Window Level",[{commandName:"setToolActive",commandOptions:{toolName:"WindowLevel"},context:"CORNERSTONE"}],"Window Level"),secondary:{icon:"chevron-down",label:"W/L Manual",isActive:!0,tooltip:"W/L Presets"},isAction:!0,renderer:e.WindowLevelMenuItem,items:[c(1,"Soft tissue","400 / 40"),c(2,"Lung","1500 / -600"),c(3,"Liver","150 / 90"),c(4,"Bone","2500 / 480"),c(5,"Brain","80 / 40")]}},{id:"Pan",type:"ohif.radioGroup",props:{type:"tool",icon:"tool-move",label:"Pan",commands:d("Pan")}},{id:"Capture",type:"ohif.action",props:{icon:"tool-capture",label:"Capture",type:"action",commands:[{commandName:"showDownloadViewportModal",commandOptions:{},context:"CORNERSTONE"}]}},{id:"Layout",type:"ohif.layoutSelector",props:{rows:3,columns:3}},{id:"MPR",type:"ohif.action",props:{type:"toggle",icon:"icon-mpr",label:"MPR",commands:[{commandName:"toggleHangingProtocol",commandOptions:{protocolId:"mpr"},context:"DEFAULT"}]}},{id:"Crosshairs",type:"ohif.radioGroup",props:{type:"tool",icon:"tool-crosshair",label:"Crosshairs",commands:[{commandName:"setToolActive",commandOptions:{toolName:"Crosshairs",toolGroupId:"mpr"},context:"CORNERSTONE"}]}},{id:"MoreTools",type:"ohif.splitButton",props:{isRadio:!0,groupId:"MoreTools",primary:l("Reset","tool-reset","Reset View",[{commandName:"resetViewport",commandOptions:{},context:"CORNERSTONE"}],"Reset"),secondary:{icon:"chevron-down",label:"",isActive:!0,tooltip:"More Tools"},items:[l("Reset","tool-reset","Reset View",[{commandName:"resetViewport",commandOptions:{},context:"CORNERSTONE"}],"Reset"),l("rotate-right","tool-rotate-right","Rotate Right",[{commandName:"rotateViewportCW",commandOptions:{},context:"CORNERSTONE"}],"Rotate +90"),l("flip-horizontal","tool-flip-horizontal","Flip Horizontally",[{commandName:"flipViewportHorizontal",commandOptions:{},context:"CORNERSTONE"}],"Flip Horizontal"),s("StackImageSync","link","Stack Image Sync",[{commandName:"toggleStackImageSync",commandOptions:{},context:"CORNERSTONE"}]),s("ReferenceLines","tool-referenceLines","Reference Lines",[{commandName:"toggleReferenceLines",commandOptions:{},context:"CORNERSTONE"}]),r("StackScroll","tool-stack-scroll","Stack Scroll",[{commandName:"setToolActive",commandOptions:{toolName:"StackScroll"},context:"CORNERSTONE"}],"Stack Scroll"),l("invert","tool-invert","Invert",[{commandName:"invertViewport",commandOptions:{},context:"CORNERSTONE"}],"Invert Colors"),r("Probe","tool-probe","Probe",[{commandName:"setToolActive",commandOptions:{toolName:"DragProbe"},context:"CORNERSTONE"}],"Probe"),s("cine","tool-cine","Cine",[{commandName:"toggleCine",context:"CORNERSTONE"}],"Cine"),r("Angle","tool-angle","Angle",[{commandName:"setToolActive",commandOptions:{toolName:"Angle"},context:"CORNERSTONE"}],"Angle"),r("Magnify","tool-magnify","Magnify",[{commandName:"setToolActive",commandOptions:{toolName:"Magnify"},context:"CORNERSTONE"}],"Magnify"),r("Rectangle","tool-rectangle","Rectangle",[{commandName:"setToolActive",commandOptions:{toolName:"RectangleROI"},context:"CORNERSTONE"}],"Rectangle"),r("CalibrationLine","tool-calibration","Calibration",[{commandName:"setToolActive",commandOptions:{toolName:"CalibrationLine"},context:"CORNERSTONE"}],"Calibration Line"),l("TagBrowser","list-bullets","Dicom Tag Browser",[{commandName:"openDICOMTagViewer",commandOptions:{},context:"DEFAULT"}],"Dicom Tag Browser")]}}],u=JSON.parse('{"u2":"@ohif/mode-longitudinal"}').u2;const N=function(o,e,t){!function(o,e,t,n){const i=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:a,Enums:l}=i.exports,s={active:[{toolName:a.WindowLevel,bindings:[{mouseButton:l.MouseBindings.Primary}]},{toolName:a.Pan,bindings:[{mouseButton:l.MouseBindings.Auxiliary}]},{toolName:a.Zoom,bindings:[{mouseButton:l.MouseBindings.Secondary}]},{toolName:a.StackScrollMouseWheel,bindings:[]}],passive:[{toolName:a.Length},{toolName:a.ArrowAnnotate},{toolName:a.Bidirectional},{toolName:a.DragProbe},{toolName:a.EllipticalROI},{toolName:a.CircleROI},{toolName:a.RectangleROI},{toolName:a.StackScroll},{toolName:a.Angle},{toolName:a.CobbAngle},{toolName:a.PlanarFreehandROI},{toolName:a.Magnify},{toolName:a.SegmentationDisplay},{toolName:a.CalibrationLine}],disabled:[{toolName:a.ReferenceLines}]},r={[a.ArrowAnnotate]:{getTextCallback:(o,e)=>t.runCommand("arrowTextCallback",{callback:o,eventDetails:e}),changeTextCallback:(o,e,n)=>t.runCommand("arrowTextCallback",{callback:n,data:o,eventDetails:e})}};e.createToolGroupAndAddTools(n,s,r)}(o,e,t,"default"),function(o,e,t){const n=o.getModuleEntry("@ohif/extension-cornerstone-dicom-sr.utilityModule.tools"),i=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:a}=n.exports,{toolNames:l,Enums:s}=i.exports,r={active:[{toolName:l.WindowLevel,bindings:[{mouseButton:s.MouseBindings.Primary}]},{toolName:l.Pan,bindings:[{mouseButton:s.MouseBindings.Auxiliary}]},{toolName:l.Zoom,bindings:[{mouseButton:s.MouseBindings.Secondary}]},{toolName:l.StackScrollMouseWheel,bindings:[]}],passive:[{toolName:a.SRLength},{toolName:a.SRArrowAnnotate},{toolName:a.SRBidirectional},{toolName:a.SREllipticalROI},{toolName:a.SRCircleROI}],enabled:[{toolName:a.DICOMSRDisplay,bindings:[]}]},c={[l.ArrowAnnotate]:{getTextCallback:(o,e)=>t.runCommand("arrowTextCallback",{callback:o,eventDetails:e}),changeTextCallback:(o,e,n)=>t.runCommand("arrowTextCallback",{callback:n,data:o,eventDetails:e})}};e.createToolGroupAndAddTools("SRToolGroup",r,c)}(o,e,t),function(o,e,t){const n=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:i,Enums:a}=n.exports,l={active:[{toolName:i.WindowLevel,bindings:[{mouseButton:a.MouseBindings.Primary}]},{toolName:i.Pan,bindings:[{mouseButton:a.MouseBindings.Auxiliary}]},{toolName:i.Zoom,bindings:[{mouseButton:a.MouseBindings.Secondary}]},{toolName:i.StackScrollMouseWheel,bindings:[]}],passive:[{toolName:i.Length},{toolName:i.ArrowAnnotate},{toolName:i.Bidirectional},{toolName:i.DragProbe},{toolName:i.EllipticalROI},{toolName:i.CircleROI},{toolName:i.RectangleROI},{toolName:i.StackScroll},{toolName:i.Angle},{toolName:i.CobbAngle},{toolName:i.PlanarFreehandROI},{toolName:i.SegmentationDisplay}],disabled:[{toolName:i.Crosshairs},{toolName:i.ReferenceLines}]},s={[i.Crosshairs]:{viewportIndicators:!1,autoPan:{enabled:!1,panSize:10}},[i.ArrowAnnotate]:{getTextCallback:(o,e)=>t.runCommand("arrowTextCallback",{callback:o,eventDetails:e}),changeTextCallback:(o,e,n)=>t.runCommand("arrowTextCallback",{callback:n,data:o,eventDetails:e})}};e.createToolGroupAndAddTools("mpr",l,s)}(o,e,t),function(o,e){const t=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:n,Enums:i}=t.exports,a={active:[{toolName:n.TrackballRotateTool,bindings:[{mouseButton:i.MouseBindings.Primary}]},{toolName:n.Zoom,bindings:[{mouseButton:i.MouseBindings.Secondary}]},{toolName:n.Pan,bindings:[{mouseButton:i.MouseBindings.Auxiliary}]}]};e.createToolGroupAndAddTools("volume3d",a)}(o,e)},g=["SM","ECG","SR","SEG","RTSTRUCT"],R="@ohif/extension-default.layoutTemplateModule.viewerLayout",O="@ohif/extension-default.sopClassHandlerModule.stack",T="@ohif/extension-measurement-tracking.panelModule.trackedMeasurements",S="@ohif/extension-measurement-tracking.panelModule.seriesList",f="@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked",v="@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr",h="@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr",x="@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video",y="@ohif/extension-dicom-video.viewportModule.dicom-video",E="@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf",C="@ohif/extension-dicom-pdf.viewportModule.dicom-pdf",b="@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg",M="@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg",A="@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation",w="@ohif/extension-cornerstone-dicom-rt.viewportModule.dicom-rt",L="@ohif/extension-cornerstone-dicom-rt.sopClassHandlerModule.dicom-rt",B={"@ohif/extension-default":"^3.0.0","@ohif/extension-cornerstone":"^3.0.0","@ohif/extension-measurement-tracking":"^3.0.0","@ohif/extension-cornerstone-dicom-sr":"^3.0.0","@ohif/extension-cornerstone-dicom-seg":"^3.0.0","@ohif/extension-cornerstone-dicom-rt":"^3.0.0","@ohif/extension-dicom-pdf":"^3.0.1","@ohif/extension-dicom-video":"^3.0.1"};const k={id:u,modeFactory:function(){let e=[];return{id:u,routeName:"viewer",displayName:"Basic Viewer",onModeEnter:o=>{let{servicesManager:e,extensionManager:t,commandsManager:n}=o;const{measurementService:i,toolbarService:a,toolGroupService:l,panelService:s,segmentationService:r}=e.services;let c;i.clearMeasurements(),N(t,l,n);({unsubscribe:c}=l.subscribe(l.EVENTS.VIEWPORT_ADDED,(()=>{a.recordInteraction({groupId:"WindowLevel",itemId:"WindowLevel",interactionType:"tool",commands:[{commandName:"setToolActive",commandOptions:{toolName:"WindowLevel"},context:"CORNERSTONE"}]}),c()}))),a.init(t),a.addButtons(p),a.createButtonSection("primary",["MeasurementTools","Zoom","WindowLevel","Pan","Capture","Layout","MPR","Crosshairs","MoreTools"])},onModeExit:o=>{let{servicesManager:t}=o;const{toolGroupService:n,syncGroupService:i,toolbarService:a,segmentationService:l,cornerstoneViewportService:s}=t.services;e.forEach((o=>o.unsubscribe())),e=[],n.destroy(),i.destroy(),l.destroy(),s.destroy()},validationTags:{study:[],series:[]},isValidMode:function(o){let{modalities:e}=o;return!!e.split("\\").filter((o=>-1===g.indexOf(o))).length},routes:[{path:"longitudinal",layoutTemplate:()=>({id:R,props:{leftPanels:[S],rightPanels:[A,T],rightPanelDefaultClosed:!0,viewports:[{namespace:f,displaySetsToDisplay:[O]},{namespace:h,displaySetsToDisplay:[v]},{namespace:y,displaySetsToDisplay:[x]},{namespace:C,displaySetsToDisplay:[E]},{namespace:M,displaySetsToDisplay:[b]},{namespace:w,displaySetsToDisplay:[L]}]}})}],extensions:B,hangingProtocol:"default",sopClassHandlers:[x,b,O,E,v,L],hotkeys:[...o.hotkeys.defaults.hotkeyBindings]}},extensionDependencies:B}})(),a=a.default})()));
|
|
2
|
-
//# sourceMappingURL=ohif-mode-longitudinal.js.map
|
|
1
|
+
!function(o,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("@ohif/core"),require("@ohif/ui")):"function"==typeof define&&define.amd?define(["@ohif/core","@ohif/ui"],e):"object"==typeof exports?exports["ohif-mode-longitudinal"]=e(require("@ohif/core"),require("@ohif/ui")):o["ohif-mode-longitudinal"]=e(o["@ohif/core"],o["@ohif/ui"])}(globalThis,((o,e)=>(()=>{"use strict";var t={762:e=>{e.exports=o},369:o=>{o.exports=e}},n={};function i(o){var e=n[o];if(void 0!==e)return e.exports;var a=n[o]={exports:{}};return t[o](a,a.exports,i),a.exports}i.d=(o,e)=>{for(var t in e)i.o(e,t)&&!i.o(o,t)&&Object.defineProperty(o,t,{enumerable:!0,get:e[t]})},i.o=(o,e)=>Object.prototype.hasOwnProperty.call(o,e);var a={};return(()=>{i.d(a,{default:()=>k});var o=i(762),e=i(369);const{windowLevelPresets:t}=o.defaults;function n(o,e,t,n,i,a,l){return{id:e,icon:t,label:n,type:o,commands:i,tooltip:a,uiType:l}}const l=n.bind(null,"action"),s=n.bind(null,"toggle"),r=n.bind(null,"tool");function c(o,e,n){return{id:o.toString(),title:e,subtitle:n,type:"action",commands:[{commandName:"setWindowLevel",commandOptions:{...t[o]},context:"CORNERSTONE"}]}}const m=["default","mpr","SRToolGroup"];function d(o){return m.map((e=>({commandName:"setToolActive",commandOptions:{toolGroupId:e,toolName:o},context:"CORNERSTONE"})))}const p=[{id:"MeasurementTools",type:"ohif.splitButton",props:{groupId:"MeasurementTools",isRadio:!0,primary:r("Length","tool-length","Length",[{commandName:"setToolActive",commandOptions:{toolName:"Length"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRLength",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Length"),secondary:{icon:"chevron-down",label:"",isActive:!0,tooltip:"More Measure Tools"},items:[r("Length","tool-length","Length",[{commandName:"setToolActive",commandOptions:{toolName:"Length"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRLength",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Length Tool"),r("Bidirectional","tool-bidirectional","Bidirectional",[{commandName:"setToolActive",commandOptions:{toolName:"Bidirectional"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRBidirectional",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Bidirectional Tool"),r("ArrowAnnotate","tool-annotate","Annotation",[{commandName:"setToolActive",commandOptions:{toolName:"ArrowAnnotate"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRArrowAnnotate",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Arrow Annotate"),r("EllipticalROI","tool-elipse","Ellipse",[{commandName:"setToolActive",commandOptions:{toolName:"EllipticalROI"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SREllipticalROI",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Ellipse Tool"),r("CircleROI","tool-circle","Circle",[{commandName:"setToolActive",commandOptions:{toolName:"CircleROI"},context:"CORNERSTONE"},{commandName:"setToolActive",commandOptions:{toolName:"SRCircleROI",toolGroupId:"SRToolGroup"},context:"CORNERSTONE"}],"Circle Tool")]}},{id:"Zoom",type:"ohif.radioGroup",props:{type:"tool",icon:"tool-zoom",label:"Zoom",commands:d("Zoom")}},{id:"WindowLevel",type:"ohif.splitButton",props:{groupId:"WindowLevel",primary:r("WindowLevel","tool-window-level","Window Level",[{commandName:"setToolActive",commandOptions:{toolName:"WindowLevel"},context:"CORNERSTONE"}],"Window Level"),secondary:{icon:"chevron-down",label:"W/L Manual",isActive:!0,tooltip:"W/L Presets"},isAction:!0,renderer:e.WindowLevelMenuItem,items:[c(1,"Soft tissue","400 / 40"),c(2,"Lung","1500 / -600"),c(3,"Liver","150 / 90"),c(4,"Bone","2500 / 480"),c(5,"Brain","80 / 40")]}},{id:"Pan",type:"ohif.radioGroup",props:{type:"tool",icon:"tool-move",label:"Pan",commands:d("Pan")}},{id:"Capture",type:"ohif.action",props:{icon:"tool-capture",label:"Capture",type:"action",commands:[{commandName:"showDownloadViewportModal",commandOptions:{},context:"CORNERSTONE"}]}},{id:"Layout",type:"ohif.layoutSelector",props:{rows:3,columns:3}},{id:"MPR",type:"ohif.action",props:{type:"toggle",icon:"icon-mpr",label:"MPR",commands:[{commandName:"toggleHangingProtocol",commandOptions:{protocolId:"mpr"},context:"DEFAULT"}]}},{id:"Crosshairs",type:"ohif.radioGroup",props:{type:"tool",icon:"tool-crosshair",label:"Crosshairs",commands:[{commandName:"setToolActive",commandOptions:{toolName:"Crosshairs",toolGroupId:"mpr"},context:"CORNERSTONE"}]}},{id:"MoreTools",type:"ohif.splitButton",props:{isRadio:!0,groupId:"MoreTools",primary:l("Reset","tool-reset","Reset View",[{commandName:"resetViewport",commandOptions:{},context:"CORNERSTONE"}],"Reset"),secondary:{icon:"chevron-down",label:"",isActive:!0,tooltip:"More Tools"},items:[l("Reset","tool-reset","Reset View",[{commandName:"resetViewport",commandOptions:{},context:"CORNERSTONE"}],"Reset"),l("rotate-right","tool-rotate-right","Rotate Right",[{commandName:"rotateViewportCW",commandOptions:{},context:"CORNERSTONE"}],"Rotate +90"),l("flip-horizontal","tool-flip-horizontal","Flip Horizontally",[{commandName:"flipViewportHorizontal",commandOptions:{},context:"CORNERSTONE"}],"Flip Horizontal"),s("StackImageSync","link","Stack Image Sync",[{commandName:"toggleStackImageSync",commandOptions:{},context:"CORNERSTONE"}]),s("ReferenceLines","tool-referenceLines","Reference Lines",[{commandName:"toggleReferenceLines",commandOptions:{},context:"CORNERSTONE"}]),r("StackScroll","tool-stack-scroll","Stack Scroll",[{commandName:"setToolActive",commandOptions:{toolName:"StackScroll"},context:"CORNERSTONE"}],"Stack Scroll"),l("invert","tool-invert","Invert",[{commandName:"invertViewport",commandOptions:{},context:"CORNERSTONE"}],"Invert Colors"),r("Probe","tool-probe","Probe",[{commandName:"setToolActive",commandOptions:{toolName:"DragProbe"},context:"CORNERSTONE"}],"Probe"),s("cine","tool-cine","Cine",[{commandName:"toggleCine",context:"CORNERSTONE"}],"Cine"),r("Angle","tool-angle","Angle",[{commandName:"setToolActive",commandOptions:{toolName:"Angle"},context:"CORNERSTONE"}],"Angle"),r("Magnify","tool-magnify","Magnify",[{commandName:"setToolActive",commandOptions:{toolName:"Magnify"},context:"CORNERSTONE"}],"Magnify"),r("Rectangle","tool-rectangle","Rectangle",[{commandName:"setToolActive",commandOptions:{toolName:"RectangleROI"},context:"CORNERSTONE"}],"Rectangle"),r("CalibrationLine","tool-calibration","Calibration",[{commandName:"setToolActive",commandOptions:{toolName:"CalibrationLine"},context:"CORNERSTONE"}],"Calibration Line"),l("TagBrowser","list-bullets","Dicom Tag Browser",[{commandName:"openDICOMTagViewer",commandOptions:{},context:"DEFAULT"}],"Dicom Tag Browser")]}}],u=JSON.parse('{"u2":"@ohif/mode-longitudinal"}').u2;const N=function(o,e,t){!function(o,e,t,n){const i=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:a,Enums:l}=i.exports,s={active:[{toolName:a.WindowLevel,bindings:[{mouseButton:l.MouseBindings.Primary}]},{toolName:a.Pan,bindings:[{mouseButton:l.MouseBindings.Auxiliary}]},{toolName:a.Zoom,bindings:[{mouseButton:l.MouseBindings.Secondary}]},{toolName:a.StackScrollMouseWheel,bindings:[]}],passive:[{toolName:a.Length},{toolName:a.ArrowAnnotate},{toolName:a.Bidirectional},{toolName:a.DragProbe},{toolName:a.EllipticalROI},{toolName:a.CircleROI},{toolName:a.RectangleROI},{toolName:a.StackScroll},{toolName:a.Angle},{toolName:a.CobbAngle},{toolName:a.PlanarFreehandROI},{toolName:a.Magnify},{toolName:a.SegmentationDisplay},{toolName:a.CalibrationLine}],disabled:[{toolName:a.ReferenceLines}]},r={[a.ArrowAnnotate]:{getTextCallback:(o,e)=>t.runCommand("arrowTextCallback",{callback:o,eventDetails:e}),changeTextCallback:(o,e,n)=>t.runCommand("arrowTextCallback",{callback:n,data:o,eventDetails:e})}};e.createToolGroupAndAddTools(n,s,r)}(o,e,t,"default"),function(o,e,t){const n=o.getModuleEntry("@ohif/extension-cornerstone-dicom-sr.utilityModule.tools"),i=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:a}=n.exports,{toolNames:l,Enums:s}=i.exports,r={active:[{toolName:l.WindowLevel,bindings:[{mouseButton:s.MouseBindings.Primary}]},{toolName:l.Pan,bindings:[{mouseButton:s.MouseBindings.Auxiliary}]},{toolName:l.Zoom,bindings:[{mouseButton:s.MouseBindings.Secondary}]},{toolName:l.StackScrollMouseWheel,bindings:[]}],passive:[{toolName:a.SRLength},{toolName:a.SRArrowAnnotate},{toolName:a.SRBidirectional},{toolName:a.SREllipticalROI},{toolName:a.SRCircleROI}],enabled:[{toolName:a.DICOMSRDisplay,bindings:[]}]},c={[l.ArrowAnnotate]:{getTextCallback:(o,e)=>t.runCommand("arrowTextCallback",{callback:o,eventDetails:e}),changeTextCallback:(o,e,n)=>t.runCommand("arrowTextCallback",{callback:n,data:o,eventDetails:e})}};e.createToolGroupAndAddTools("SRToolGroup",r,c)}(o,e,t),function(o,e,t){const n=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:i,Enums:a}=n.exports,l={active:[{toolName:i.WindowLevel,bindings:[{mouseButton:a.MouseBindings.Primary}]},{toolName:i.Pan,bindings:[{mouseButton:a.MouseBindings.Auxiliary}]},{toolName:i.Zoom,bindings:[{mouseButton:a.MouseBindings.Secondary}]},{toolName:i.StackScrollMouseWheel,bindings:[]}],passive:[{toolName:i.Length},{toolName:i.ArrowAnnotate},{toolName:i.Bidirectional},{toolName:i.DragProbe},{toolName:i.EllipticalROI},{toolName:i.CircleROI},{toolName:i.RectangleROI},{toolName:i.StackScroll},{toolName:i.Angle},{toolName:i.CobbAngle},{toolName:i.PlanarFreehandROI},{toolName:i.SegmentationDisplay}],disabled:[{toolName:i.Crosshairs},{toolName:i.ReferenceLines}]},s={[i.Crosshairs]:{viewportIndicators:!1,autoPan:{enabled:!1,panSize:10}},[i.ArrowAnnotate]:{getTextCallback:(o,e)=>t.runCommand("arrowTextCallback",{callback:o,eventDetails:e}),changeTextCallback:(o,e,n)=>t.runCommand("arrowTextCallback",{callback:n,data:o,eventDetails:e})}};e.createToolGroupAndAddTools("mpr",l,s)}(o,e,t),function(o,e){const t=o.getModuleEntry("@ohif/extension-cornerstone.utilityModule.tools"),{toolNames:n,Enums:i}=t.exports,a={active:[{toolName:n.TrackballRotateTool,bindings:[{mouseButton:i.MouseBindings.Primary}]},{toolName:n.Zoom,bindings:[{mouseButton:i.MouseBindings.Secondary}]},{toolName:n.Pan,bindings:[{mouseButton:i.MouseBindings.Auxiliary}]}]};e.createToolGroupAndAddTools("volume3d",a)}(o,e)},g=["SM","ECG","SR","SEG","RTSTRUCT"],R="@ohif/extension-default.layoutTemplateModule.viewerLayout",O="@ohif/extension-default.sopClassHandlerModule.stack",T="@ohif/extension-measurement-tracking.panelModule.trackedMeasurements",S="@ohif/extension-measurement-tracking.panelModule.seriesList",f="@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked",v="@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr",h="@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr",x="@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video",y="@ohif/extension-dicom-video.viewportModule.dicom-video",E="@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf",C="@ohif/extension-dicom-pdf.viewportModule.dicom-pdf",b="@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg",M="@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg",A="@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation",w="@ohif/extension-cornerstone-dicom-rt.viewportModule.dicom-rt",L="@ohif/extension-cornerstone-dicom-rt.sopClassHandlerModule.dicom-rt",B={"@ohif/extension-default":"^3.0.0","@ohif/extension-cornerstone":"^3.0.0","@ohif/extension-measurement-tracking":"^3.0.0","@ohif/extension-cornerstone-dicom-sr":"^3.0.0","@ohif/extension-cornerstone-dicom-seg":"^3.0.0","@ohif/extension-cornerstone-dicom-rt":"^3.0.0","@ohif/extension-dicom-pdf":"^3.0.1","@ohif/extension-dicom-video":"^3.0.1"};const k={id:u,modeFactory:function(){let e=[];return{id:u,routeName:"viewer",displayName:"Basic Viewer",onModeEnter:o=>{let{servicesManager:e,extensionManager:t,commandsManager:n}=o;const{measurementService:i,toolbarService:a,toolGroupService:l,panelService:s,segmentationService:r}=e.services;let c;i.clearMeasurements(),N(t,l,n);({unsubscribe:c}=l.subscribe(l.EVENTS.VIEWPORT_ADDED,(()=>{a.recordInteraction({groupId:"WindowLevel",itemId:"WindowLevel",interactionType:"tool",commands:[{commandName:"setToolActive",commandOptions:{toolName:"WindowLevel"},context:"CORNERSTONE"}]}),c()}))),a.init(t),a.addButtons(p),a.createButtonSection("primary",["MeasurementTools","Zoom","WindowLevel","Pan","Capture","Layout","MPR","Crosshairs","MoreTools"])},onModeExit:o=>{let{servicesManager:t}=o;const{toolGroupService:n,syncGroupService:i,toolbarService:a,segmentationService:l,cornerstoneViewportService:s}=t.services;e.forEach((o=>o.unsubscribe())),e=[],n.destroy(),i.destroy(),l.destroy(),s.destroy()},validationTags:{study:[],series:[]},isValidMode:function(o){let{modalities:e}=o;return!!e.split("\\").filter((o=>-1===g.indexOf(o))).length},routes:[{path:"longitudinal",layoutTemplate:()=>({id:R,props:{leftPanels:[S],rightPanels:[A,T],rightPanelDefaultClosed:!0,viewports:[{namespace:f,displaySetsToDisplay:[O]},{namespace:h,displaySetsToDisplay:[v]},{namespace:y,displaySetsToDisplay:[x]},{namespace:C,displaySetsToDisplay:[E]},{namespace:M,displaySetsToDisplay:[b]},{namespace:w,displaySetsToDisplay:[L]}]}})}],extensions:B,hangingProtocol:"default",sopClassHandlers:[x,b,O,E,v,L],hotkeys:[...o.hotkeys.defaults.hotkeyBindings]}},extensionDependencies:B}})(),a=a.default})()));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ohif/mode-longitudinal",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.5.0-beta.1",
|
|
4
4
|
"description": "Longitudinal Workflow",
|
|
5
5
|
"author": "OHIF",
|
|
6
6
|
"license": "MIT",
|
|
@@ -32,15 +32,15 @@
|
|
|
32
32
|
"test:unit:ci": "jest --ci --runInBand --collectCoverage --passWithNoTests"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@ohif/core": "
|
|
36
|
-
"@ohif/extension-
|
|
37
|
-
"@ohif/extension-cornerstone": "
|
|
38
|
-
"@ohif/extension-cornerstone-dicom-
|
|
39
|
-
"@ohif/extension-cornerstone-dicom-
|
|
40
|
-
"@ohif/extension-
|
|
41
|
-
"@ohif/extension-dicom-pdf": "
|
|
42
|
-
"@ohif/extension-dicom-video": "
|
|
43
|
-
"@ohif/extension-measurement-tracking": "
|
|
35
|
+
"@ohif/core": "3.5.0-beta.1",
|
|
36
|
+
"@ohif/extension-cornerstone": "3.5.0-beta.1",
|
|
37
|
+
"@ohif/extension-cornerstone-dicom-rt": "3.5.0-beta.1",
|
|
38
|
+
"@ohif/extension-cornerstone-dicom-seg": "3.5.0-beta.1",
|
|
39
|
+
"@ohif/extension-cornerstone-dicom-sr": "3.5.0-beta.1",
|
|
40
|
+
"@ohif/extension-default": "3.5.0-beta.1",
|
|
41
|
+
"@ohif/extension-dicom-pdf": "3.5.0-beta.1",
|
|
42
|
+
"@ohif/extension-dicom-video": "3.5.0-beta.1",
|
|
43
|
+
"@ohif/extension-measurement-tracking": "3.5.0-beta.1"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/runtime": "^7.20.13"
|
|
@@ -48,5 +48,6 @@
|
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"webpack": "^5.50.0",
|
|
50
50
|
"webpack-merge": "^5.7.3"
|
|
51
|
-
}
|
|
51
|
+
},
|
|
52
|
+
"gitHead": "6d7561946b02ce49fbaa9a0f47df5818eb3d7983"
|
|
52
53
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dist/ohif-mode-longitudinal.js","mappings":"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CE,QACA,aACA,aACA,CACE,CACES,YAAa,gBACbC,eAAgB,CAAC,EACjBC,QAAS,gBAGb,SAEFX,EACE,eACA,oBACA,eACA,CACE,CACES,YAAa,mBACbC,eAAgB,CAAC,EACjBC,QAAS,gBAGb,cAEFX,EACE,kBACA,uBACA,oBACA,CACE,CACES,YAAa,yBACbC,eAAgB,CAAC,EACjBC,QAAS,gBAGb,mBAEFT,EAAoB,iBAAkB,OAAQ,mBAAoB,CAChE,CACEO,YAAa,uBACbC,eAAgB,CAAC,EACjBC,QAAS,iBAGbT,EACE,iBACA,sBACA,kBACA,CACE,CACEO,YAAa,uBACbC,eAAgB,CAAC,EACjBC,QAAS,iBAIfR,EACE,cACA,oBACA,eACA,CACE,CACEM,YAAa,gBACbC,eAAgB,CACdI,SAAU,eAEZH,QAAS,gBAGb,gBAEFX,EACE,SACA,cACA,SACA,CACE,CACES,YAAa,iBACbC,eAAgB,CAAC,EACjBC,QAAS,gBAGb,iBAEFR,EACE,QACA,aACA,QACA,CACE,CACEM,YAAa,gBACbC,eAAgB,CACdI,SAAU,aAEZH,QAAS,gBAGb,SAEFT,EACE,OACA,YACA,OACA,CACE,CACEO,YAAa,aACbE,QAAS,gBAGb,QAEFR,EACE,QACA,aACA,QACA,CACE,CACEM,YAAa,gBACbC,eAAgB,CACdI,SAAU,SAEZH,QAAS,gBAGb,SAkCFR,EACE,UACA,eACA,UACA,CACE,CACEM,YAAa,gBACbC,eAAgB,CACdI,SAAU,WAEZH,QAAS,gBAGb,WAEFR,EACE,YACA,iBACA,YACA,CACE,CACEM,YAAa,gBACbC,eAAgB,CACdI,SAAU,gBAEZH,QAAS,gBAGb,aAEFR,EACE,kBACA,mBACA,cACA,CACE,CACEM,YAAa,gBACbC,eAAgB,CACdI,SAAU,mBAEZH,QAAS,gBAGb,oBAEFX,EACE,aACA,eACA,oBACA,CACE,CACES,YAAa,qBACbC,eAAgB,CAAC,EACjBC,QAAS,YAGb,yBCtlBJjB,E,+CAAKoC,GCiQX,QAZA,SAAwBC,EAAkBC,EAAkBC,IAvP5D,SACEF,EACAC,EACAC,EACAjB,GAEA,MA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","sources":["webpack://ohif-mode-longitudinal/webpack/universalModuleDefinition","webpack://ohif-mode-longitudinal/external umd \"@ohif/core\"","webpack://ohif-mode-longitudinal/external umd \"@ohif/ui\"","webpack://ohif-mode-longitudinal/webpack/bootstrap","webpack://ohif-mode-longitudinal/webpack/runtime/define property getters","webpack://ohif-mode-longitudinal/webpack/runtime/hasOwnProperty shorthand","webpack://ohif-mode-longitudinal/./toolbarButtons.js","webpack://ohif-mode-longitudinal/./id.js","webpack://ohif-mode-longitudinal/./initToolGroups.js","webpack://ohif-mode-longitudinal/./index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@ohif/core\"), require(\"@ohif/ui\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@ohif/core\", \"@ohif/ui\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ohif-mode-longitudinal\"] = factory(require(\"@ohif/core\"), require(\"@ohif/ui\"));\n\telse\n\t\troot[\"ohif-mode-longitudinal\"] = factory(root[\"@ohif/core\"], root[\"@ohif/ui\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE__762__, __WEBPACK_EXTERNAL_MODULE__369__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__762__;","module.exports = __WEBPACK_EXTERNAL_MODULE__369__;","// 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","// 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))","// TODO: torn, can either bake this here; or have to create a whole new button type\n// Only ways that you can pass in a custom React component for render :l\nimport {\n // ExpandableToolbarButton,\n // ListMenu,\n WindowLevelMenuItem,\n} from '@ohif/ui';\nimport { defaults } from '@ohif/core';\n\nconst { windowLevelPresets } = defaults;\n/**\n *\n * @param {*} type - 'tool' | 'action' | 'toggle'\n * @param {*} id\n * @param {*} icon\n * @param {*} label\n */\nfunction _createButton(type, id, icon, label, commands, tooltip, uiType) {\n return {\n id,\n icon,\n label,\n type,\n commands,\n tooltip,\n uiType,\n };\n}\n\nconst _createActionButton = _createButton.bind(null, 'action');\nconst _createToggleButton = _createButton.bind(null, 'toggle');\nconst _createToolButton = _createButton.bind(null, 'tool');\n\n/**\n *\n * @param {*} preset - preset number (from above import)\n * @param {*} title\n * @param {*} subtitle\n */\nfunction _createWwwcPreset(preset, title, subtitle) {\n return {\n id: preset.toString(),\n title,\n subtitle,\n type: 'action',\n commands: [\n {\n commandName: 'setWindowLevel',\n commandOptions: {\n ...windowLevelPresets[preset],\n },\n context: 'CORNERSTONE',\n },\n ],\n };\n}\n\nconst toolGroupIds = ['default', 'mpr', 'SRToolGroup'];\n\n/**\n * Creates an array of 'setToolActive' commands for the given toolName - one for\n * each toolGroupId specified in toolGroupIds.\n * @param {string} toolName\n * @returns {Array} an array of 'setToolActive' commands\n */\nfunction _createSetToolActiveCommands(toolName) {\n const temp = toolGroupIds.map(toolGroupId => ({\n commandName: 'setToolActive',\n commandOptions: {\n toolGroupId,\n toolName,\n },\n context: 'CORNERSTONE',\n }));\n return temp;\n}\n\nconst toolbarButtons = [\n // Measurement\n {\n id: 'MeasurementTools',\n type: 'ohif.splitButton',\n props: {\n groupId: 'MeasurementTools',\n isRadio: true, // ?\n // Switch?\n primary: _createToolButton(\n 'Length',\n 'tool-length',\n 'Length',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'Length',\n },\n context: 'CORNERSTONE',\n },\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'SRLength',\n toolGroupId: 'SRToolGroup',\n },\n // we can use the setToolActive command for this from Cornerstone commandsModule\n context: 'CORNERSTONE',\n },\n ],\n 'Length'\n ),\n secondary: {\n icon: 'chevron-down',\n label: '',\n isActive: true,\n tooltip: 'More Measure Tools',\n },\n items: [\n _createToolButton(\n 'Length',\n 'tool-length',\n 'Length',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'Length',\n },\n context: 'CORNERSTONE',\n },\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'SRLength',\n toolGroupId: 'SRToolGroup',\n },\n // we can use the setToolActive command for this from Cornerstone commandsModule\n context: 'CORNERSTONE',\n },\n ],\n 'Length Tool'\n ),\n _createToolButton(\n 'Bidirectional',\n 'tool-bidirectional',\n 'Bidirectional',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'Bidirectional',\n },\n context: 'CORNERSTONE',\n },\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'SRBidirectional',\n toolGroupId: 'SRToolGroup',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Bidirectional Tool'\n ),\n _createToolButton(\n 'ArrowAnnotate',\n 'tool-annotate',\n 'Annotation',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'ArrowAnnotate',\n },\n context: 'CORNERSTONE',\n },\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'SRArrowAnnotate',\n toolGroupId: 'SRToolGroup',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Arrow Annotate'\n ),\n _createToolButton(\n 'EllipticalROI',\n 'tool-elipse',\n 'Ellipse',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'EllipticalROI',\n },\n context: 'CORNERSTONE',\n },\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'SREllipticalROI',\n toolGroupId: 'SRToolGroup',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Ellipse Tool'\n ),\n _createToolButton(\n 'CircleROI',\n 'tool-circle',\n 'Circle',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'CircleROI',\n },\n context: 'CORNERSTONE',\n },\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'SRCircleROI',\n toolGroupId: 'SRToolGroup',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Circle Tool'\n ),\n ],\n },\n },\n // Zoom..\n {\n id: 'Zoom',\n type: 'ohif.radioGroup',\n props: {\n type: 'tool',\n icon: 'tool-zoom',\n label: 'Zoom',\n commands: _createSetToolActiveCommands('Zoom'),\n },\n },\n // Window Level + Presets...\n {\n id: 'WindowLevel',\n type: 'ohif.splitButton',\n props: {\n groupId: 'WindowLevel',\n primary: _createToolButton(\n 'WindowLevel',\n 'tool-window-level',\n 'Window Level',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'WindowLevel',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Window Level'\n ),\n secondary: {\n icon: 'chevron-down',\n label: 'W/L Manual',\n isActive: true,\n tooltip: 'W/L Presets',\n },\n isAction: true, // ?\n renderer: WindowLevelMenuItem,\n items: [\n _createWwwcPreset(1, 'Soft tissue', '400 / 40'),\n _createWwwcPreset(2, 'Lung', '1500 / -600'),\n _createWwwcPreset(3, 'Liver', '150 / 90'),\n _createWwwcPreset(4, 'Bone', '2500 / 480'),\n _createWwwcPreset(5, 'Brain', '80 / 40'),\n ],\n },\n },\n // Pan...\n {\n id: 'Pan',\n type: 'ohif.radioGroup',\n props: {\n type: 'tool',\n icon: 'tool-move',\n label: 'Pan',\n commands: _createSetToolActiveCommands('Pan'),\n },\n },\n {\n id: 'Capture',\n type: 'ohif.action',\n props: {\n icon: 'tool-capture',\n label: 'Capture',\n type: 'action',\n commands: [\n {\n commandName: 'showDownloadViewportModal',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ],\n },\n },\n {\n id: 'Layout',\n type: 'ohif.layoutSelector',\n props: {\n rows: 3,\n columns: 3,\n },\n },\n {\n id: 'MPR',\n type: 'ohif.action',\n props: {\n type: 'toggle',\n icon: 'icon-mpr',\n label: 'MPR',\n commands: [\n {\n commandName: 'toggleHangingProtocol',\n commandOptions: {\n protocolId: 'mpr',\n },\n context: 'DEFAULT',\n },\n ],\n },\n },\n {\n id: 'Crosshairs',\n type: 'ohif.radioGroup',\n props: {\n type: 'tool',\n icon: 'tool-crosshair',\n label: 'Crosshairs',\n commands: [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'Crosshairs',\n toolGroupId: 'mpr',\n },\n context: 'CORNERSTONE',\n },\n ],\n },\n },\n // More...\n {\n id: 'MoreTools',\n type: 'ohif.splitButton',\n props: {\n isRadio: true, // ?\n groupId: 'MoreTools',\n primary: _createActionButton(\n 'Reset',\n 'tool-reset',\n 'Reset View',\n [\n {\n commandName: 'resetViewport',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ],\n 'Reset'\n ),\n secondary: {\n icon: 'chevron-down',\n label: '',\n isActive: true,\n tooltip: 'More Tools',\n },\n items: [\n _createActionButton(\n 'Reset',\n 'tool-reset',\n 'Reset View',\n [\n {\n commandName: 'resetViewport',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ],\n 'Reset'\n ),\n _createActionButton(\n 'rotate-right',\n 'tool-rotate-right',\n 'Rotate Right',\n [\n {\n commandName: 'rotateViewportCW',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ],\n 'Rotate +90'\n ),\n _createActionButton(\n 'flip-horizontal',\n 'tool-flip-horizontal',\n 'Flip Horizontally',\n [\n {\n commandName: 'flipViewportHorizontal',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ],\n 'Flip Horizontal'\n ),\n _createToggleButton('StackImageSync', 'link', 'Stack Image Sync', [\n {\n commandName: 'toggleStackImageSync',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ]),\n _createToggleButton(\n 'ReferenceLines',\n 'tool-referenceLines', // change this with the new icon\n 'Reference Lines',\n [\n {\n commandName: 'toggleReferenceLines',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ]\n ),\n _createToolButton(\n 'StackScroll',\n 'tool-stack-scroll',\n 'Stack Scroll',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'StackScroll',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Stack Scroll'\n ),\n _createActionButton(\n 'invert',\n 'tool-invert',\n 'Invert',\n [\n {\n commandName: 'invertViewport',\n commandOptions: {},\n context: 'CORNERSTONE',\n },\n ],\n 'Invert Colors'\n ),\n _createToolButton(\n 'Probe',\n 'tool-probe',\n 'Probe',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'DragProbe',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Probe'\n ),\n _createToggleButton(\n 'cine',\n 'tool-cine',\n 'Cine',\n [\n {\n commandName: 'toggleCine',\n context: 'CORNERSTONE',\n },\n ],\n 'Cine'\n ),\n _createToolButton(\n 'Angle',\n 'tool-angle',\n 'Angle',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'Angle',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Angle'\n ),\n\n // Next two tools can be added once icons are added\n // _createToolButton(\n // 'Cobb Angle',\n // 'tool-cobb-angle',\n // 'Cobb Angle',\n // [\n // {\n // commandName: 'setToolActive',\n // commandOptions: {\n // toolName: 'CobbAngle',\n // },\n // context: 'CORNERSTONE',\n // },\n // ],\n // 'Cobb Angle'\n // ),\n // _createToolButton(\n // 'Planar Freehand ROI',\n // 'tool-freehand',\n // 'PlanarFreehandROI',\n // [\n // {\n // commandName: 'setToolActive',\n // commandOptions: {\n // toolName: 'PlanarFreehandROI',\n // },\n // context: 'CORNERSTONE',\n // },\n // ],\n // 'Planar Freehand ROI'\n // ),\n _createToolButton(\n 'Magnify',\n 'tool-magnify',\n 'Magnify',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'Magnify',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Magnify'\n ),\n _createToolButton(\n 'Rectangle',\n 'tool-rectangle',\n 'Rectangle',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'RectangleROI',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Rectangle'\n ),\n _createToolButton(\n 'CalibrationLine',\n 'tool-calibration',\n 'Calibration',\n [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'CalibrationLine',\n },\n context: 'CORNERSTONE',\n },\n ],\n 'Calibration Line'\n ),\n _createActionButton(\n 'TagBrowser',\n 'list-bullets',\n 'Dicom Tag Browser',\n [\n {\n commandName: 'openDICOMTagViewer',\n commandOptions: {},\n context: 'DEFAULT',\n },\n ],\n 'Dicom Tag Browser'\n ),\n ],\n },\n },\n];\n\nexport default toolbarButtons;\n","import packageJson from '../package.json';\n\nconst id = packageJson.name;\n\nexport { id };\n","function initDefaultToolGroup(\n extensionManager,\n toolGroupService,\n commandsManager,\n toolGroupId\n) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.WindowLevel,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }],\n },\n { toolName: toolNames.StackScrollMouseWheel, bindings: [] },\n ],\n passive: [\n { toolName: toolNames.Length },\n { toolName: toolNames.ArrowAnnotate },\n { toolName: toolNames.Bidirectional },\n { toolName: toolNames.DragProbe },\n { toolName: toolNames.EllipticalROI },\n { toolName: toolNames.CircleROI },\n { toolName: toolNames.RectangleROI },\n { toolName: toolNames.StackScroll },\n { toolName: toolNames.Angle },\n { toolName: toolNames.CobbAngle },\n { toolName: toolNames.PlanarFreehandROI },\n { toolName: toolNames.Magnify },\n { toolName: toolNames.SegmentationDisplay },\n { toolName: toolNames.CalibrationLine },\n ],\n // enabled\n // disabled\n disabled: [{ toolName: toolNames.ReferenceLines }],\n };\n\n const toolsConfig = {\n [toolNames.ArrowAnnotate]: {\n getTextCallback: (callback, eventDetails) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n eventDetails,\n }),\n\n changeTextCallback: (data, eventDetails, callback) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n data,\n eventDetails,\n }),\n },\n };\n\n toolGroupService.createToolGroupAndAddTools(toolGroupId, tools, toolsConfig);\n}\n\nfunction initSRToolGroup(extensionManager, toolGroupService, commandsManager) {\n const SRUtilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone-dicom-sr.utilityModule.tools'\n );\n\n const CS3DUtilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames: SRToolNames } = SRUtilityModule.exports;\n const { toolNames, Enums } = CS3DUtilityModule.exports;\n const tools = {\n active: [\n {\n toolName: toolNames.WindowLevel,\n bindings: [\n {\n mouseButton: Enums.MouseBindings.Primary,\n },\n ],\n },\n {\n toolName: toolNames.Pan,\n bindings: [\n {\n mouseButton: Enums.MouseBindings.Auxiliary,\n },\n ],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [\n {\n mouseButton: Enums.MouseBindings.Secondary,\n },\n ],\n },\n {\n toolName: toolNames.StackScrollMouseWheel,\n bindings: [],\n },\n ],\n passive: [\n { toolName: SRToolNames.SRLength },\n { toolName: SRToolNames.SRArrowAnnotate },\n { toolName: SRToolNames.SRBidirectional },\n { toolName: SRToolNames.SREllipticalROI },\n { toolName: SRToolNames.SRCircleROI },\n ],\n enabled: [\n {\n toolName: SRToolNames.DICOMSRDisplay,\n bindings: [],\n },\n ],\n // disabled\n };\n\n const toolsConfig = {\n [toolNames.ArrowAnnotate]: {\n getTextCallback: (callback, eventDetails) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n eventDetails,\n }),\n\n changeTextCallback: (data, eventDetails, callback) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n data,\n eventDetails,\n }),\n },\n };\n\n const toolGroupId = 'SRToolGroup';\n toolGroupService.createToolGroupAndAddTools(toolGroupId, tools, toolsConfig);\n}\n\nfunction initMPRToolGroup(extensionManager, toolGroupService, commandsManager) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.WindowLevel,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }],\n },\n { toolName: toolNames.StackScrollMouseWheel, bindings: [] },\n ],\n passive: [\n { toolName: toolNames.Length },\n { toolName: toolNames.ArrowAnnotate },\n { toolName: toolNames.Bidirectional },\n { toolName: toolNames.DragProbe },\n { toolName: toolNames.EllipticalROI },\n { toolName: toolNames.CircleROI },\n { toolName: toolNames.RectangleROI },\n { toolName: toolNames.StackScroll },\n { toolName: toolNames.Angle },\n { toolName: toolNames.CobbAngle },\n { toolName: toolNames.PlanarFreehandROI },\n { toolName: toolNames.SegmentationDisplay },\n ],\n disabled: [\n { toolName: toolNames.Crosshairs },\n { toolName: toolNames.ReferenceLines },\n ],\n\n // enabled\n // disabled\n };\n\n const toolsConfig = {\n [toolNames.Crosshairs]: {\n viewportIndicators: false,\n autoPan: {\n enabled: false,\n panSize: 10,\n },\n },\n [toolNames.ArrowAnnotate]: {\n getTextCallback: (callback, eventDetails) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n eventDetails,\n }),\n\n changeTextCallback: (data, eventDetails, callback) =>\n commandsManager.runCommand('arrowTextCallback', {\n callback,\n data,\n eventDetails,\n }),\n },\n };\n\n toolGroupService.createToolGroupAndAddTools('mpr', tools, toolsConfig);\n}\nfunction initVolume3DToolGroup(extensionManager, toolGroupService) {\n const utilityModule = extensionManager.getModuleEntry(\n '@ohif/extension-cornerstone.utilityModule.tools'\n );\n\n const { toolNames, Enums } = utilityModule.exports;\n\n const tools = {\n active: [\n {\n toolName: toolNames.TrackballRotateTool,\n bindings: [{ mouseButton: Enums.MouseBindings.Primary }],\n },\n {\n toolName: toolNames.Zoom,\n bindings: [{ mouseButton: Enums.MouseBindings.Secondary }],\n },\n {\n toolName: toolNames.Pan,\n bindings: [{ mouseButton: Enums.MouseBindings.Auxiliary }],\n },\n ],\n };\n\n toolGroupService.createToolGroupAndAddTools('volume3d', tools);\n}\n\nfunction initToolGroups(extensionManager, toolGroupService, commandsManager) {\n initDefaultToolGroup(\n extensionManager,\n toolGroupService,\n commandsManager,\n 'default'\n );\n initSRToolGroup(extensionManager, toolGroupService, commandsManager);\n initMPRToolGroup(extensionManager, toolGroupService, commandsManager);\n initVolume3DToolGroup(extensionManager, toolGroupService);\n}\n\nexport default initToolGroups;\n","import { hotkeys } from '@ohif/core';\nimport toolbarButtons from './toolbarButtons.js';\nimport { id } from './id.js';\nimport initToolGroups from './initToolGroups.js';\n\n// Allow this mode by excluding non-imaging modalities such as SR, SEG\n// Also, SM is not a simple imaging modalities, so exclude it.\nconst NON_IMAGE_MODALITIES = ['SM', 'ECG', 'SR', 'SEG', 'RTSTRUCT'];\n\nconst ohif = {\n layout: '@ohif/extension-default.layoutTemplateModule.viewerLayout',\n sopClassHandler: '@ohif/extension-default.sopClassHandlerModule.stack',\n thumbnailList: '@ohif/extension-default.panelModule.seriesList',\n};\n\nconst tracked = {\n measurements:\n '@ohif/extension-measurement-tracking.panelModule.trackedMeasurements',\n thumbnailList: '@ohif/extension-measurement-tracking.panelModule.seriesList',\n viewport:\n '@ohif/extension-measurement-tracking.viewportModule.cornerstone-tracked',\n};\n\nconst dicomsr = {\n sopClassHandler:\n '@ohif/extension-cornerstone-dicom-sr.sopClassHandlerModule.dicom-sr',\n viewport: '@ohif/extension-cornerstone-dicom-sr.viewportModule.dicom-sr',\n};\n\nconst dicomvideo = {\n sopClassHandler:\n '@ohif/extension-dicom-video.sopClassHandlerModule.dicom-video',\n viewport: '@ohif/extension-dicom-video.viewportModule.dicom-video',\n};\n\nconst dicompdf = {\n sopClassHandler: '@ohif/extension-dicom-pdf.sopClassHandlerModule.dicom-pdf',\n viewport: '@ohif/extension-dicom-pdf.viewportModule.dicom-pdf',\n};\n\nconst dicomSeg = {\n sopClassHandler:\n '@ohif/extension-cornerstone-dicom-seg.sopClassHandlerModule.dicom-seg',\n viewport: '@ohif/extension-cornerstone-dicom-seg.viewportModule.dicom-seg',\n panel: '@ohif/extension-cornerstone-dicom-seg.panelModule.panelSegmentation',\n};\n\nconst dicomRt = {\n viewport: '@ohif/extension-cornerstone-dicom-rt.viewportModule.dicom-rt',\n sopClassHandler:\n '@ohif/extension-cornerstone-dicom-rt.sopClassHandlerModule.dicom-rt',\n};\n\nconst extensionDependencies = {\n // Can derive the versions at least process.env.from npm_package_version\n '@ohif/extension-default': '^3.0.0',\n '@ohif/extension-cornerstone': '^3.0.0',\n '@ohif/extension-measurement-tracking': '^3.0.0',\n '@ohif/extension-cornerstone-dicom-sr': '^3.0.0',\n '@ohif/extension-cornerstone-dicom-seg': '^3.0.0',\n '@ohif/extension-cornerstone-dicom-rt': '^3.0.0',\n '@ohif/extension-dicom-pdf': '^3.0.1',\n '@ohif/extension-dicom-video': '^3.0.1',\n};\n\nfunction modeFactory() {\n let _activatePanelTriggersSubscriptions = [];\n return {\n // TODO: We're using this as a route segment\n // We should not be.\n id,\n routeName: 'viewer',\n displayName: 'Basic Viewer',\n /**\n * Lifecycle hooks\n */\n onModeEnter: ({ servicesManager, extensionManager, commandsManager }) => {\n const {\n measurementService,\n toolbarService,\n toolGroupService,\n panelService,\n segmentationService,\n } = servicesManager.services;\n\n measurementService.clearMeasurements();\n\n // Init Default and SR ToolGroups\n initToolGroups(extensionManager, toolGroupService, commandsManager);\n\n let unsubscribe;\n\n const activateTool = () => {\n toolbarService.recordInteraction({\n groupId: 'WindowLevel',\n itemId: 'WindowLevel',\n interactionType: 'tool',\n commands: [\n {\n commandName: 'setToolActive',\n commandOptions: {\n toolName: 'WindowLevel',\n },\n context: 'CORNERSTONE',\n },\n ],\n });\n\n // We don't need to reset the active tool whenever a viewport is getting\n // added to the toolGroup.\n unsubscribe();\n };\n\n // Since we only have one viewport for the basic cs3d mode and it has\n // only one hanging protocol, we can just use the first viewport\n ({ unsubscribe } = toolGroupService.subscribe(\n toolGroupService.EVENTS.VIEWPORT_ADDED,\n activateTool\n ));\n\n toolbarService.init(extensionManager);\n toolbarService.addButtons(toolbarButtons);\n toolbarService.createButtonSection('primary', [\n 'MeasurementTools',\n 'Zoom',\n 'WindowLevel',\n 'Pan',\n 'Capture',\n 'Layout',\n 'MPR',\n 'Crosshairs',\n 'MoreTools',\n ]);\n\n // // ActivatePanel event trigger for when a segmentation or measurement is added.\n // // Do not force activation so as to respect the state the user may have left the UI in.\n // _activatePanelTriggersSubscriptions = [\n // ...panelService.addActivatePanelTriggers(dicomSeg.panel, [\n // {\n // sourcePubSubService: segmentationService,\n // sourceEvents: [\n // segmentationService.EVENTS.SEGMENTATION_PIXEL_DATA_CREATED,\n // ],\n // },\n // ]),\n // ...panelService.addActivatePanelTriggers(tracked.measurements, [\n // {\n // sourcePubSubService: measurementService,\n // sourceEvents: [\n // measurementService.EVENTS.MEASUREMENT_ADDED,\n // measurementService.EVENTS.RAW_MEASUREMENT_ADDED,\n // ],\n // },\n // ]),\n // ];\n },\n onModeExit: ({ servicesManager }) => {\n const {\n toolGroupService,\n syncGroupService,\n toolbarService,\n segmentationService,\n cornerstoneViewportService,\n } = servicesManager.services;\n\n _activatePanelTriggersSubscriptions.forEach(sub => sub.unsubscribe());\n _activatePanelTriggersSubscriptions = [];\n\n toolGroupService.destroy();\n syncGroupService.destroy();\n segmentationService.destroy();\n cornerstoneViewportService.destroy();\n },\n validationTags: {\n study: [],\n series: [],\n },\n\n isValidMode: function({ modalities }) {\n const modalities_list = modalities.split('\\\\');\n\n // Exclude non-image modalities\n return !!modalities_list.filter(\n modality => NON_IMAGE_MODALITIES.indexOf(modality) === -1\n ).length;\n },\n routes: [\n {\n path: 'longitudinal',\n /*init: ({ servicesManager, extensionManager }) => {\n //defaultViewerRouteInit\n },*/\n layoutTemplate: () => {\n return {\n id: ohif.layout,\n props: {\n leftPanels: [tracked.thumbnailList],\n rightPanels: [dicomSeg.panel, tracked.measurements],\n rightPanelDefaultClosed: true,\n viewports: [\n {\n namespace: tracked.viewport,\n displaySetsToDisplay: [ohif.sopClassHandler],\n },\n {\n namespace: dicomsr.viewport,\n displaySetsToDisplay: [dicomsr.sopClassHandler],\n },\n {\n namespace: dicomvideo.viewport,\n displaySetsToDisplay: [dicomvideo.sopClassHandler],\n },\n {\n namespace: dicompdf.viewport,\n displaySetsToDisplay: [dicompdf.sopClassHandler],\n },\n {\n namespace: dicomSeg.viewport,\n displaySetsToDisplay: [dicomSeg.sopClassHandler],\n },\n {\n namespace: dicomRt.viewport,\n displaySetsToDisplay: [dicomRt.sopClassHandler],\n },\n ],\n },\n };\n },\n },\n ],\n extensions: extensionDependencies,\n // Default protocol gets self-registered by default in the init\n hangingProtocol: 'default',\n // Order is important in sop class handlers when two handlers both use\n // the same sop class under different situations. In that case, the more\n // general handler needs to come last. For this case, the dicomvideo must\n // come first to remove video transfer syntax before ohif uses images\n sopClassHandlers: [\n dicomvideo.sopClassHandler,\n dicomSeg.sopClassHandler,\n ohif.sopClassHandler,\n dicompdf.sopClassHandler,\n dicomsr.sopClassHandler,\n dicomRt.sopClassHandler,\n ],\n hotkeys: [...hotkeys.defaults.hotkeyBindings],\n };\n}\n\nconst mode = {\n id,\n modeFactory,\n extensionDependencies,\n};\n\nexport default mode;\nexport { initToolGroups, toolbarButtons };\n"],"names":["root","factory","exports","module","require","define","amd","globalThis","__WEBPACK_EXTERNAL_MODULE__762__","__WEBPACK_EXTERNAL_MODULE__369__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","windowLevelPresets","defaults","_createButton","type","id","icon","label","commands","tooltip","uiType","_createActionButton","bind","_createToggleButton","_createToolButton","_createWwwcPreset","preset","title","subtitle","toString","commandName","commandOptions","context","toolGroupIds","_createSetToolActiveCommands","toolName","map","toolGroupId","props","groupId","isRadio","primary","secondary","isActive","items","isAction","renderer","WindowLevelMenuItem","rows","columns","protocolId","packageJson","extensionManager","toolGroupService","commandsManager","utilityModule","getModuleEntry","toolNames","Enums","tools","active","WindowLevel","bindings","mouseButton","MouseBindings","Primary","Pan","Auxiliary","Zoom","Secondary","StackScrollMouseWheel","passive","Length","ArrowAnnotate","Bidirectional","DragProbe","EllipticalROI","CircleROI","RectangleROI","StackScroll","Angle","CobbAngle","PlanarFreehandROI","Magnify","SegmentationDisplay","CalibrationLine","disabled","ReferenceLines","toolsConfig","getTextCallback","callback","eventDetails","runCommand","changeTextCallback","data","createToolGroupAndAddTools","initDefaultToolGroup","SRUtilityModule","CS3DUtilityModule","SRToolNames","SRLength","SRArrowAnnotate","SRBidirectional","SREllipticalROI","SRCircleROI","enabled","DICOMSRDisplay","initSRToolGroup","Crosshairs","viewportIndicators","autoPan","panSize","initMPRToolGroup","TrackballRotateTool","initVolume3DToolGroup","NON_IMAGE_MODALITIES","ohif","tracked","dicomsr","dicomvideo","dicompdf","dicomSeg","dicomRt","extensionDependencies","modeFactory","_activatePanelTriggersSubscriptions","routeName","displayName","onModeEnter","_ref","servicesManager","measurementService","toolbarService","panelService","segmentationService","services","unsubscribe","clearMeasurements","initToolGroups","subscribe","EVENTS","VIEWPORT_ADDED","activateTool","recordInteraction","itemId","interactionType","init","addButtons","toolbarButtons","createButtonSection","onModeExit","_ref2","syncGroupService","cornerstoneViewportService","forEach","sub","destroy","validationTags","study","series","isValidMode","_ref3","modalities","split","filter","modality","indexOf","length","routes","path","layoutTemplate","leftPanels","rightPanels","rightPanelDefaultClosed","viewports","namespace","displaySetsToDisplay","extensions","hangingProtocol","sopClassHandlers","hotkeys"],"sourceRoot":""}
|