document.addEventListener("DOMContentLoaded",onDOMContentLoaded);let _app=null,_tools=null;const _mode=0,_dicomWeb=!1;function viewerSetup(){let e;dwv.logger.level=dwv.logger.levels.WARN,dwv.decoderScripts.jpeg2000="./decoders/pdfjs/decode-jpeg2000.js",dwv.decoderScripts["jpeg-lossless"]="./decoders/rii-mango/decode-jpegloss.js",dwv.decoderScripts["jpeg-baseline"]="./decoders/pdfjs/decode-jpegbaseline.js",dwv.decoderScripts.rle="./decoders/dwv/decode-rle.js";let t=!0;0===_mode?e=prepareAndGetSimpleDataViewConfig():1===_mode?(t=!1,e=prepareAndGetMPRDataViewConfig()):2===_mode?(addLayerGroup("layerGroupA"),addLayerGroup("layerGroupB"),e={0:[{divId:"layerGroupA"}],1:[{divId:"layerGroupB"}]}):3===_mode&&(addLayerGroup("layerGroupA"),addLayerGroup("layerGroupB"),e={0:[{divId:"layerGroupA"},{divId:"layerGroupB"}],1:[{divId:"layerGroupA"}],2:[{divId:"layerGroupB"}],3:[{divId:"layerGroupB"}]}),_tools={Scroll:{},WindowLevel:{},ZoomAndPan:{},Opacity:{},Draw:{options:["Rectangle"]}};const n=new dwv.AppOptions(e);n.tools=_tools,n.viewOnFirstLoadItem=t,_app=new dwv.App,_app.init(n),_app.addEventListener("loaderror",(function(e){console.error("load error",e)})),_app.addEventListener("loadstart",(function(e){console.time("load-data-"+e.loadid)}));const o=new Array(1),a=function(e,t){return e+t};_app.addEventListener("loadprogress",(function(e){void 0!==e.lengthComputable&&e.lengthComputable&&(o[e.loadid]=Math.ceil(e.loaded/e.total*100),document.getElementById("loadprogress").value=o.reduce(a)/1)})),_app.addEventListener("load",(function(e){t||_app.render(e.loadid)})),_app.addEventListener("loaditem",(function(e){void 0!==e.warn&&console.warn("load-warn",e.warn)})),_app.addEventListener("loadend",(function(e){console.timeEnd("load-data-"+e.loadid)}));let d=0;const l=[];_app.addEventListener("loadend",(function(e){if(!l.includes(e.loadid)&&(l.push(e.dataid),"image"===e.loadtype&&(console.log("metadata",getMetaDataWithNames(_app.getMetaData(e.loadid))),addDataRow(e.loadid),++d,1===d))){_app.setTool(getSelectedTool());document.getElementById("changelayout").disabled=!1;document.getElementById("resetlayout").disabled=!1}if("image"===e.loadtype&&void 0!==_app.getMetaData(e.loadid)["00080060"]&&"SEG"===_app.getMetaData(e.loadid)["00080060"].value[0]){logFramePosPats(_app.getMetaData(e.loadid));if(!1){const t=0,n=_app.getViewLayersByDataIndex(t)[0].getViewController(),o=_app.getImage(t).getGeometry(),a=o.getSize().getDimSize(2),d=_app.getImage(e.loadid),l=d.getGeometry().getOrigins()[0],i=new dwv.Point([l.getX(),l.getY(),l.getZ()]),r=o.worldToIndex(i).get(2)*a;n.setViewAlphaFunction((function(e,t){const n=3*(t-r);return n>=0&&0===d.getValueAtOffset(n)&&0===d.getValueAtOffset(n+1)&&0===d.getValueAtOffset(n+2)?0:255}))}}})),_app.addEventListener("positionchange",(function(e){const t=document.getElementById("position"),n=e.value[1];let o="(index: "+e.value[0]+")";e.value.length>2&&(o+=" value: "+e.value[2]),t.value=n.map(getPrecisionRound(2));document.getElementById("positionspan").innerHTML=o})),window.addEventListener("keydown",(function(e){if(_app.defaultOnKeydown(e),!isNaN(parseInt(e.key,10))){const t=_app.getActiveLayerGroup().getActiveViewLayer().getViewController();if(!t.isMask())return;const n=parseInt(e.key,10),o=t.getMaskSegmentHelper();if(o.hasSegment(n)){const a=o.getSegment(n);e.ctrlKey&&(e.altKey?(console.log("Delete segment: "+a.label),t.deleteSegment(n,_app.addToUndoStack)):(console.log("Show/hide segment: "+a.label),o.isHidden(n)?o.removeFromHidden(n):o.addToHidden(n),t.applyHiddenSegments()))}}})),window.addEventListener("resize",(function(){_app.onResize()}));const i={};_dicomWeb&&(i.requestHeaders=[{name:"Accept",value:'multipart/related; type="application/dicom"; transfer-syntax=*'}]),_app.loadFromUri(window.location.href,i)}function onDOMContentLoaded(){viewerSetup();document.getElementById("position").addEventListener("change",(function(){const e=_app.getViewLayersByDataIndex(0)[0].getViewController(),t=this.value.split(",");e.setCurrentPosition(new dwv.Point([parseFloat(t[0]),parseFloat(t[1]),parseFloat(t[2])]))}));document.getElementById("resetlayout").addEventListener("click",(function(){_app.resetLayout()}));document.getElementById("changelayout").addEventListener("change",(function(e){let t;t="mpr"===e.target.value?prepareAndGetMPRDataViewConfig():prepareAndGetSimpleDataViewConfig(),unbindAppToControls(),_app.setDataViewConfigs(t),clearDataTable();for(let e=0;e<_app.getNumberOfLoadedData();++e)_app.render(e),addDataRow(e);_app.setTool(getSelectedTool())})),setupBindersCheckboxes(),setupToolsCheckboxes();document.getElementById("fileinput").addEventListener("change",(function(e){console.log("%c ----------------","color: teal;"),console.log(e.target.files),_app.loadFiles(e.target.files)}))}function addLayerGroup(e){const t=document.createElement("div");t.id=e,t.className="layerGroup";document.getElementById("dwv").appendChild(t)}function prepareAndGetSimpleDataViewConfig(){return document.getElementById("dwv").innerHTML="",addLayerGroup("layerGroupA"),{"*":[{divId:"layerGroupA"}]}}function prepareAndGetMPRDataViewConfig(){return document.getElementById("dwv").innerHTML="",addLayerGroup("layerGroupA"),addLayerGroup("layerGroupC"),addLayerGroup("layerGroupS"),{"*":[{divId:"layerGroupA",orientation:"axial"},{divId:"layerGroupC",orientation:"coronal"},{divId:"layerGroupS",orientation:"sagittal"}]}}function getLayerGroupDivIds(e){const t=[],n=Object.keys(e);for(let o=0;o=e&&n<=t?255:0};for(let e=0;e{const o=dwv.getTagFromKey(n);let a=o.getNameFromDictionary();return void 0===a&&(a="x"+o.getKey()),e[a]=t[n],e}),{})),t}