3 lines
391 KiB
JavaScript
3 lines
391 KiB
JavaScript
/*! dwv 0.22.1 19-12-2017 */
|
|
|
|
!function(e,t){"function"==typeof define&&define.amd?define(["modernizr","i18next","i18nextXHRBackend","i18nextBrowserLanguageDetector","jszip","konva",""],t):"object"==typeof module&&module.exports?module.exports=t(require("modernizr"),require("i18next"),require("i18next-xhr-backend"),require("i18next-browser-languagedetector"),require("jszip"),null,null):e.dwv=t(e.Modernizr,e.i18next,e.i18nextXHRBackend,e.i18nextBrowserLanguageDetector,e.JSZip,e.Konva,e.MagicWand)}(this,function(e,t,n,i,r,o,a){function s(e,t,n){var i=null;return null!==t&&null!==n&&(i=e*t*n),i}var l=void 0!==l?l:"undefined"!=typeof self?self:"undefined"!=typeof global?global:{};(u=u||{}).App=function(){function e(e,t){n([e],new u.io.UrlsLoader,{requestHeaders:t})}function t(e,t,n){N=t;var o=l.onkeydown;l.onkeydown=function(e){e.ctrlKey&&88===e.keyCode&&(console.log("crtl-x pressed!"),m.abortLoad())},m.reset();var a="";a=void 0!==e[0].name?e[0].name:e[0],D=1===e.length&&"zip"!==a.split(".").pop().toLowerCase(),t.setDefaultCharacterSet(g),t.onload=function(e){h&&(A.append(e.view),q&&q.appendDrawLayer(h.getNumberOfFrames())),function(e){if(A)return;A=e.view,E=new u.ViewController(A),b&&b.update(e.info);p=A.getImage();var t=(h=p).getGeometry().getSize();C=t.getNumberOfColumns(),y=t.getNumberOfRows(),function(e,t){var n=m.getElement("imageLayer");(R=new u.html.Layer(n)).initialise(e,t),R.fillContext(),R.setStyleDisplay(!0);var i=m.getElement("drawDiv");i&&(q=new u.DrawController(i)).create(e,t),T?m.fitToSize(u.gui.getWindowSize()):m.fitToSize({width:m.getElement("layerContainer").offsetWidth,height:m.getElement("layerContainer").offsetHeight}),m.resetLayout()}(C,y),f=R.getContext().createImageData(C,y),A.addEventListener("wl-width-change",m.onWLChange),A.addEventListener("wl-center-change",m.onWLChange),A.addEventListener("colour-change",m.onColourChange),A.addEventListener("slice-change",m.onSliceChange),A.addEventListener("frame-change",m.onFrameChange),A.addEventListener("wl-width-change",i),A.addEventListener("wl-center-change",i),A.addEventListener("colour-change",i),A.addEventListener("position-change",i),A.addEventListener("slice-change",i),A.addEventListener("frame-change",i),q&&q.appendDrawLayer(h.getNumberOfFrames());M&&M.initAndDisplay(R);var n=m.getElement("dropBox");if(n){n.removeEventListener("dragover",s),n.removeEventListener("dragleave",c),n.removeEventListener("drop",d),u.html.removeNode(n);var o=m.getElement("layerContainer");o.addEventListener("dragover",s),o.addEventListener("dragleave",c),o.addEventListener("drop",d)}m.getElement("infoLayer")&&((O=new u.InfoController(v)).create(m),O.toggleListeners(m,A));m.initWLDisplay(),r()}(e)},t.onerror=function(e){S(e)},t.onabort=function(e){!function(e){e.message?console.warn(e.message):console.warn("Abort called.");u.gui.displayProgress(100)}(e)},t.onloadend=function(){l.onkeydown=o,q&&q.activateDrawLayer(E),i({type:"load-progress",lengthComputable:!0,loaded:100,total:100}),i({type:"load-end"}),N=null},t.onprogress=x,i({type:"load-start"}),t.load(e,n)}function n(e,t,n){t.onload=function(e){new u.State(m).fromJSON(e)},t.onerror=function(e){S(e)},t.load(e,n)}function i(e){if(void 0!==V[e.type])for(var t=0;t<V[e.type].length;++t)V[e.type][t](e)}function r(){A.generateImageData(f),R.setImageData(f),R.draw()}function o(){R&&(R.zoom(I,I,P.x,P.y),R.draw()),q&&q.zoomStage(I,P),i({type:"zoom-change",scale:I,cx:P.x,cy:P.y})}function a(){if(R){if(R.translate(F.x,F.y),R.draw(),q){var e=-R.getOrigin().x/I-F.x,t=-R.getOrigin().y/I-F.y;q.translateStage(e,t)}i({type:"offset-change",scale:I,cx:R.getTrans().x,cy:R.getTrans().y})}}function s(e){e.stopPropagation(),e.preventDefault();var t=m.getElement("dropBox");t&&(t.className="dropBox hover")}function c(e){e.stopPropagation(),e.preventDefault();var t=m.getElement("dropBox hover");t&&(t.className="dropBox")}function d(e){e.stopPropagation(),e.preventDefault(),m.loadFiles(e.dataTransfer.files)}function S(e){e.name&&e.message?alert(e.name+": "+e.message):alert("Error: "+e+"."),e.stack&&console.error(e.stack),u.gui.displayProgress(100)}function x(e){if(i(e),e.lengthComputable){var t=Math.ceil(e.loaded/e.total*100);u.gui.displayProgress(t)}}var g,m=this,h=null,p=null,f=null,C=0,y=0,D=0,v=null,L=1,T=!1,I=1,P={x:0,y:0},F={x:0,y:0},A=null,E=null,O=null,b=null,w=null,R=null,q=null,U=new u.html.Style,M=null,Q=null,N=null,B=null,V={};this.getImage=function(){return h},this.setImage=function(e){h=e,A.setImage(e)},this.restoreOriginalImage=function(){h=p,A.setImage(p)},this.getImageData=function(){return f},this.isMonoSliceData=function(){return D},this.getScale=function(){return I/L},this.getWindowScale=function(){return L},this.getScaleCenter=function(){return P},this.getTranslation=function(){return F},this.getViewController=function(){return E},this.getImageLayer=function(){return R},this.getCurrentDrawLayer=function(){return q.getCurrentDrawLayer()},this.getDrawStage=function(){return q.getDrawStage()},this.getStyle=function(){return U},this.addToUndoStack=function(e){null!==B&&B.add(e)},this.init=function(t){if(v=t.containerDivId,t.tools&&0!==t.tools.length){for(var n={},r=0;r<t.tools.length;++r){var o=t.tools[r];if("Draw"===o){if(0!==t.shapes){for(var a={},S=0;S<t.shapes.length;++S){var x=t.shapes[S],m=x+"Factory";void 0!==u.tool[m]?a[x]=u.tool[m]:console.warn("Could not initialise unknown shape: "+x)}n.Draw=new u.tool.Draw(this,a),n.Draw.addEventListener("draw-create",i),n.Draw.addEventListener("draw-change",i),n.Draw.addEventListener("draw-move",i),n.Draw.addEventListener("draw-delete",i)}}else if("Filter"===o){if(0!==t.filters.length){for(var h={},p=0;p<t.filters.length;++p){var f=t.filters[p];void 0!==u.tool.filter[f]?h[f]=new u.tool.filter[f](this):console.warn("Could not initialise unknown filter: "+f)}n.Filter=new u.tool.Filter(h,this),n.Filter.addEventListener("filter-run",i),n.Filter.addEventListener("filter-undo",i)}}else{var C=o;void 0!==u.tool[C]?(n[C]=new u.tool[C](this),void 0!==n[C].addEventListener&&n[C].addEventListener(i)):console.warn("Could not initialise unknown tool: "+o)}}(M=new u.ToolboxController).create(n,this)}if(t.gui){if(-1!==t.gui.indexOf("tool")&&M&&M.setup(),-1!==t.gui.indexOf("load")){for(var y={},D=0;D<t.loaders.length;++D){var L=t.loaders[D],I=L+"Load";void 0!==u.gui[I]?y[L]=new u.gui[I](this):console.warn("Could not initialise unknown loader: "+L)}(Q=new u.gui.Loadbox(this,y)).setup();for(var P=Object.keys(y),F=0;F<P.length;++F)y[P[F]].setup();Q.displayLoader(P[0])}if(-1!==t.gui.indexOf("undo")&&(B=new u.tool.UndoStack(this)).setup(),-1!==t.gui.indexOf("tags")&&(b=new u.gui.DicomTags(this)),-1!==t.gui.indexOf("drawList")&&(w=new u.gui.DrawList(this),this.addEventListener("draw-create",w.update),this.addEventListener("draw-change",w.update),this.addEventListener("draw-delete",w.update)),-1!==t.gui.indexOf("version")&&u.gui.appendVersionHtml(u.getVersion()),-1!==t.gui.indexOf("help")){var A=!0;"undefined"!==t.isMobile&&(A=t.isMobile),u.gui.appendHelpHtml(M.getToolList(),A,this)}}var E=this.getElement("dropBox");if(E){E.addEventListener("dragover",s),E.addEventListener("dragleave",c),E.addEventListener("drop",d);var O=2*u.gui.getWindowSize().height/3;E.setAttribute("style","width:"+O+"px;height:"+O+"px")}if(void 0===t.skipLoadUrl){var R=u.utils.getUriQuery(l.location.href);if(R&&void 0!==R.input&&(u.utils.decodeQuery(R,this.onInputURLs),void 0!==R.state)){this.addEventListener("load-end",function(){e(R.state)})}}else console.log("Not loading url from address since skipLoadUrl is defined.");t.fitToWindow&&(T=!0,l.onresize=this.onResize),void 0!==t.defaultCharacterSet&&(g=t.defaultCharacterSet)},this.getElement=function(e){return u.gui.getElement(v,e)},this.reset=function(){M&&M.reset(),q&&q.reset(),h=null,A=null,D=!1,B&&(B=new u.tool.UndoStack(this)).initialise()},this.resetLayout=function(){var e=I,t=P,n=F;I=L,P={x:0,y:0},F={x:0,y:0},R&&(R.resetLayout(L),R.draw()),q&&q.resetStage(L),e!=I&&i({type:"zoom-change",scale:I,cx:P.x,cy:P.y}),t.x===P.x&&t.y===P.y&&n.x===F.x&&n.y===F.y||i({type:"offset-change",scale:I,cx:P.x,cy:P.y})},this.addEventListener=function(e,t){void 0===V[e]&&(V[e]=[]),V[e].push(t)},this.removeEventListener=function(e,t){if(void 0!==V[e])for(var n=0;n<V[e].length;++n)V[e][n]===t&&V[e].splice(n,1)},this.loadFiles=function(e){"json"===e[0].name.split(".").pop().toLowerCase()?function(e){n([e],new u.io.FilesLoader)}(e[0]):function(e){t(e,new u.io.FilesLoader)}(e)},this.loadURLs=function(n,i){"json"===n[0].split(".").pop().toLowerCase()?e(n[0],i):function(e,n){t(e,new u.io.UrlsLoader,{requestHeaders:n})}(n,i)},this.abortLoad=function(){N&&(N.abort(),N=null)},this.loadImageObject=function(e){t(e,new u.io.MemoryLoader,{})},this.fitToSize=function(e){var t=parseInt(L*C,10);L=Math.min(e.width/C,e.height/y);var n=parseInt(L*C,10),i=parseInt(L*y,10);I*=n/t,U.setScale(L);this.getElement("layerContainer").setAttribute("style","width:"+n+"px;height:"+i+"px"),R&&(R.setWidth(n),R.setHeight(i),R.zoom(I,I,0,0),R.draw()),q&&q.resizeStage(n,i,I)},this.toggleInfoLayerDisplay=function(){var e=m.getElement("infoLayer");u.html.toggleDisplay(e),O.toggleListeners(m,A)},this.initWLDisplay=function(){E.setWindowLevelPresetById(0),E.setCurrentPosition2D(0,0),E.setCurrentFrame(0)},this.addToolCanvasListeners=function(e){M.addCanvasListeners(e)},this.removeToolCanvasListeners=function(e){M.removeCanvasListeners(e)},this.render=function(){r()},this.zoom=function(e,t,n){(I=e*L)<=.1&&(I=.1),P={x:t,y:n},o()},this.stepZoom=function(e,t,n){(I+=e)<=.1&&(I=.1),P={x:t,y:n},o()},this.translate=function(e,t){F={x:e,y:t},a()},this.stepTranslate=function(e,t){var n=F.x+e/I,i=F.y+t/I;F={x:n,y:i},a()},this.getDrawDisplayDetails=function(){return q.getDrawDisplayDetails()},this.getDraws=function(){return q.getDraws()},this.getDrawStoreDetails=function(){return q.getDrawStoreDetails()},this.setDrawings=function(e,t){q.setDrawings(e,t,i,this.addToUndoStack)},this.updateDraw=function(e){q.updateDraw(e)},this.deleteDraws=function(){q.deleteDraws(i,this.addToUndoStack)},this.isGroupVisible=function(e){return q.isGroupVisible(e)},this.toogleGroupVisibility=function(e){q.toogleGroupVisibility(e)},this.onWLChange=function(e){void 0!==e.skipGenerate&&!1!==e.skipGenerate||r()},this.onColourChange=function(){r()},this.onFrameChange=function(){r(),q&&q.activateDrawLayer(E)},this.onSliceChange=function(){r(),q&&q.activateDrawLayer(E)},this.onKeydown=function(e){e.ctrlKey&&(37===e.keyCode?(e.preventDefault(),m.getViewController().decrementFrameNb()):38===e.keyCode?(e.preventDefault(),m.getViewController().incrementSliceNb()):39===e.keyCode?(e.preventDefault(),m.getViewController().incrementFrameNb()):40===e.keyCode?(e.preventDefault(),m.getViewController().decrementSliceNb()):89===e.keyCode?B.redo():90===e.keyCode&&B.undo())},this.onResize=function(){m.fitToSize(u.gui.getWindowSize())},this.onZoomReset=function(){m.resetLayout()},this.onChangeLoader=function(){Q.displayLoader(this.value)},this.resetLoadbox=function(){Q.reset()},this.onChangeURL=function(e){m.loadURLs([e.target.value])},this.onInputURLs=function(e,t){m.loadURLs(e,t)},this.onChangeFiles=function(e){var t=e.target.files;0!==t.length&&m.loadFiles(t)},this.onStateSave=function(){var e=new u.State(m);m.getElement("download-state").href="data:application/json,"+e.toJSON()},this.onChangeColourMap=function(){E.setColourMapFromName(this.value)},this.onChangeWindowLevelPreset=function(){E.setWindowLevelPreset(this.value)},this.onChangeTool=function(){M.setSelectedTool(this.value)},this.onChangeShape=function(){M.setSelectedShape(this.value)},this.onChangeFilter=function(){M.setSelectedFilter(this.value)},this.onRunFilter=function(){M.runSelectedFilter()},this.onChangeLineColour=function(){M.setLineColour(this.value)},this.onChangeMinMax=function(e){M.setRange(e)},this.onUndo=function(){B.undo()},this.onRedo=function(){B.redo()},this.onToggleInfoLayer=function(){m.toggleInfoLayerDisplay()},this.onDisplayReset=function(){m.resetLayout(),m.initWLDisplay();var e=m.getElement("presetSelect");e&&(e.selectedIndex=0,u.gui.refreshElement(e))}};var u=u||{};o=o||{};u.DrawController=function(e){function t(e,t,n){var i=s[e][t].getChildren(function(e){return e.id()===n}),r=null;return 0!==i.length?r=i[0]:console.warn("Could not find draw group for slice='"+e+"', frame='"+t+"', id='"+n+"'."),r}function n(e){return"shape"===e.name()}function i(e){return e.name().startsWith("shape-")}function r(e){return"label"===e.name()}var a=null,s=[],l=0,c=0;this.create=function(t,n){(a=new o.Stage({container:e,width:t,height:n,listening:!1})).getContent().setAttribute("style","")},this.getCurrentDrawLayer=function(){return s[l][c]},this.reset=function(){s=[]},this.getDrawStage=function(){return a},this.activateDrawLayer=function(e){for(var t=0,n=s.length;t<n;++t)for(var i=0,r=s[t].length;i<r;++i)s[t][i].visible(!1);l=e.getCurrentPosition().k,c=e.getCurrentFrame();var o=this.getCurrentDrawLayer();o.visible(!0),o.draw()},this.resetStage=function(e){a.offset({x:0,y:0}),a.scale({x:e,y:e}),a.draw()},this.resizeStage=function(t,n,i){e.setAttribute("style","width:"+t+"px;height:"+n+"px"),a.setWidth(t),a.setHeight(n),a.scale({x:i,y:i}),a.draw()},this.zoomStage=function(e,t){var n={x:e,y:e},i=a.scale(),r=a.offset(),o={x:t.x/i.x+r.x-t.x/n.x,y:t.y/i.y+r.y-t.y/n.y};a.offset(o),a.scale(n),a.draw()},this.translateStage=function(e,t){a.offset({x:e,y:t}),a.draw()},this.appendDrawLayer=function(e){s.push([]);for(var t=0;t<e;++t){var n=new o.Layer({listening:!1,hitGraphEnabled:!1,visible:!1});s[s.length-1].push(n),a.add(n)}},this.getDrawDisplayDetails=function(){for(var e=[],t=0,o=s.length;t<o;++t)for(var a=0,l=s[t].length;a<l;++a)for(var u=s[t][a].getChildren(),c=0,d=u.length;c<d;++c){var S=u[c].getChildren(n)[0],x=u[c].getChildren(r)[0].getChildren()[0],g=S.className;if("Line"===g){var m=u[c].getChildren(i);S.closed()?g="Roi":0!==m.length&&(g=-1!==m[0].name().indexOf("triangle")?"Arrow":"Ruler")}"Rect"===g&&(g="Rectangle"),e.push({id:u[c].id(),slice:t,frame:a,type:g,color:S.stroke(),label:x.textExpr,description:x.longText})}return e},this.getDraws=function(){for(var e=[],t=0,n=s.length;t<n;++t){e[t]=[];for(var i=0,r=s[t].length;i<r;++i){var o=s[t][i].getChildren();e[t].push(o)}}return e},this.getDrawStoreDetails=function(){for(var e=[],t=0,n=s.length;t<n;++t){e[t]=[];for(var i=0,r=s[t].length;i<r;++i){for(var o=s[t][i].getChildren(),a=[],l=0,u=o.length;l<u;++l){for(var c=o[l].find(".anchor"),d=0;d<c.length;++d)c[d].remove();var S=o[l].find(".text");1!==S.length&&console.warn("There should not be more than one text per shape."),a.push({id:o[l].id(),textExpr:encodeURIComponent(S[0].textExpr),longText:encodeURIComponent(S[0].longText),quant:S[0].quant})}e[t].push(a)}}return e},this.setDrawings=function(e,t,i,a){for(var l=0,c=s.length;l<c;++l)for(var d=0,S=s[l].length;d<S;++d)for(var x=0,g=e[l][d].length;x<g;++x){var m=o.Node.create(e[l][d][x]),h=m.getChildren(n)[0],p=new u.tool.DrawGroupCommand(m,h.className,s[l][d]);if(p.onExecute=i,p.onUndo=i,t){var f=t[l][d][x],C=m.getChildren(r)[0].getText();C.textExpr=f.textExpr,C.longText=f.longText,C.quant=f.quant,C.setText(u.utils.replaceFlags(C.textExpr,C.quant))}p.execute(),a(p)}},this.updateDraw=function(e){for(var o=t(e.slice,e.frame,e.id),a=o.getChildren(n),s=0;s<a.length;++s)a[s].stroke(e.color);for(var l=o.getChildren(i),c=0;c<l.length;++c)void 0!==l[c].stroke()?l[c].stroke(e.color):void 0!==l[c].fill()&&l[c].fill(e.color);var d=o.getChildren(r)[0].getChildren()[0];d.fill(e.color),d.textExpr=e.label,d.longText=e.description,d.setText(u.utils.replaceFlags(d.textExpr,d.quant)),this.getCurrentDrawLayer().draw()},this.isGroupVisible=function(e){return t(e.slice,e.frame,e.id).isVisible()},this.toogleGroupVisibility=function(e){var n=t(e.slice,e.frame,e.id);n.visible(!n.isVisible()),this.getCurrentDrawLayer().draw()},this.deleteDraws=function(e,t){for(var i,r,o,a=0,l=s.length;a<l;++a)for(var c=0,d=s[a].length;c<d;++c)for(o=(r=s[a][c]).getChildren();o.length;){var S=o[0].getChildren(n)[0];(i=new u.tool.DeleteGroupCommand(o[0],u.tool.GetShapeDisplayName(S),r)).onExecute=e,i.onUndo=e,i.execute(),t(i)}}};(u=u||{}).InfoController=function(e){function t(t){return u.gui.getElement(e,t)}var n=null,i=null,r=[],o=!1;this.create=function(e){var o=t("infocm");o&&(i=new u.gui.info.MiniColourMap(o,e)).create();for(var a=["tl","tc","tr","cl","cr","bl","bc","br"],s=0,l=0;l<a.length;l++){var c=a[l],d=t("info"+c);d&&(r[s]=new u.gui.info.Overlay(d,c,e),r[s].create(),s++)}var S=t("plot");S&&(n=new u.gui.info.Plot(S,e)).create()},this.toggleListeners=function(e,t){o?function(e,t){if(n&&(t.removeEventListener("wl-width-change",n.update),t.removeEventListener("wl-center-change",n.update)),i&&(t.removeEventListener("wl-width-change",i.update),t.removeEventListener("wl-center-change",i.update),t.removeEventListener("colour-change",i.update)),r.length>0)for(var a=0;a<r.length;a++)e.removeEventListener("zoom-change",r[a].update),t.removeEventListener("wl-width-change",r[a].update),t.removeEventListener("wl-center-change",r[a].update),t.removeEventListener("position-change",r[a].update),t.removeEventListener("frame-change",r[a].update);o=!1}(e,t):function(e,t){if(n&&(t.addEventListener("wl-width-change",n.update),t.addEventListener("wl-center-change",n.update)),i&&(t.addEventListener("wl-width-change",i.update),t.addEventListener("wl-center-change",i.update),t.addEventListener("colour-change",i.update)),r.length>0)for(var a=0;a<r.length;a++)e.addEventListener("zoom-change",r[a].update),t.addEventListener("wl-width-change",r[a].update),t.addEventListener("wl-center-change",r[a].update),t.addEventListener("position-change",r[a].update),t.addEventListener("frame-change",r[a].update);o=!0}(e,t)}};(u=u||{}).State=function(e){this.toJSON=function(){var t=e.getDraws(),n=e.getDrawStoreDetails();return JSON.stringify({version:"0.2","window-center":e.getViewController().getWindowLevel().center,"window-width":e.getViewController().getWindowLevel().width,position:e.getViewController().getCurrentPosition(),scale:e.getScale(),scaleCenter:e.getScaleCenter(),translation:e.getTranslation(),drawings:t,drawingsDetails:n})},this.fromJSON=function(t){var n=JSON.parse(t);if("0.1"===n.version)!function(t){e.getViewController().setWindowLevel(t["window-center"],t["window-width"]),e.getViewController().setCurrentPosition(t.position),e.zoom(t.scale,t.scaleCenter.x,t.scaleCenter.y),e.translate(t.translation.x,t.translation.y),e.setDrawings(t.drawings,null)}(n);else{if("0.2"!==n.version)throw new Error("Unknown state file format version: '"+n.version+"'.");!function(t){e.getViewController().setWindowLevel(t["window-center"],t["window-width"]),e.getViewController().setCurrentPosition(t.position),e.zoom(t.scale,t.scaleCenter.x,t.scaleCenter.y),e.translate(t.translation.x,t.translation.y),e.setDrawings(t.drawings,t.drawingsDetails)}(n)}}};(u=u||{}).ToolboxController=function(){function e(e){var i=!1,r=null,o=null;if("touchstart"===e.type||"touchmove"===e.type?(r=u.html.getEventOffset(e),e._xs=r[0].x,e._ys=r[0].y,o=n(r[0]),e._x=parseInt(o.x,10),e._y=parseInt(o.y,10),2===r.length&&(e._x1s=r[1].x,e._y1s=r[1].y,o=n(r[1]),e._x1=parseInt(o.x,10),e._y1=parseInt(o.y,10)),i=!0):"mousemove"===e.type||"mousedown"===e.type||"mouseup"===e.type||"mouseout"===e.type||"mousewheel"===e.type||"dblclick"===e.type||"DOMMouseScroll"===e.type?(r=u.html.getEventOffset(e),e._xs=r[0].x,e._ys=r[0].y,o=n(r[0]),e._x=parseInt(o.x,10),e._y=parseInt(o.y,10),i=!0):"keydown"!==e.type&&"touchend"!==e.type||(i=!0),i){"keydown"!==e.type&&e.preventDefault();var a=t.getSelectedTool()[e.type];a&&a(e)}}var t=null,n=null;this.create=function(e,n){t=new u.tool.Toolbox(e,n)},this.setup=function(){t.setup()},this.reset=function(){t.reset()},this.initAndDisplay=function(i){t.init(),t.display(!0),n=i.displayToIndex,this.addCanvasListeners(i.getCanvas()),l.addEventListener("keydown",e,!0)},this.getToolList=function(){return t.getToolList()},this.getSelectedToolEventHandler=function(e){return t.getSelectedTool()[e]},this.setSelectedTool=function(e){t.setSelectedTool(e)},this.setSelectedShape=function(e){t.getSelectedTool().setShapeName(e)},this.setSelectedFilter=function(e){t.getSelectedTool().setSelectedFilter(e)},this.runSelectedFilter=function(){t.getSelectedTool().getSelectedFilter().run()},this.setLineColour=function(e){t.getSelectedTool().setLineColour(e)},this.setRange=function(e){t&&t.getSelectedTool()&&t.getSelectedTool().getSelectedFilter()&&t.getSelectedTool().getSelectedFilter().run(e)},this.addCanvasListeners=function(t){t.setAttribute("style","pointer-events: auto;"),t.addEventListener("mousedown",e),t.addEventListener("mousemove",e),t.addEventListener("mouseup",e),t.addEventListener("mouseout",e),t.addEventListener("mousewheel",e),t.addEventListener("DOMMouseScroll",e),t.addEventListener("dblclick",e),t.addEventListener("touchstart",e),t.addEventListener("touchmove",e),t.addEventListener("touchend",e)},this.removeCanvasListeners=function(t){t.setAttribute("style","pointer-events: none;"),t.removeEventListener("mousedown",e),t.removeEventListener("mousemove",e),t.removeEventListener("mouseup",e),t.removeEventListener("mouseout",e),t.removeEventListener("mousewheel",e),t.removeEventListener("DOMMouseScroll",e),t.removeEventListener("dblclick",e),t.removeEventListener("touchstart",e),t.removeEventListener("touchmove",e),t.removeEventListener("touchend",e)}};(u=u||{}).ViewController=function(e){var t=this,n=null;this.getWindowLevelPresetsNames=function(){return e.getWindowPresetsNames()},this.addWindowLevelPresets=function(t){return e.addWindowPresets(t)},this.setWindowLevelPreset=function(t){e.setWindowLevelPreset(t)},this.setWindowLevelPresetById=function(t){e.setWindowLevelPresetById(t)},this.isPlaying=function(){return null!==n},this.getCurrentPosition=function(){return e.getCurrentPosition()},this.setCurrentPosition=function(t){return e.setCurrentPosition(t)},this.setCurrentPosition2D=function(t,n){return e.setCurrentPosition({i:t,j:n,k:e.getCurrentPosition().k})},this.setCurrentSlice=function(t){return e.setCurrentPosition({i:e.getCurrentPosition().i,j:e.getCurrentPosition().j,k:t})},this.incrementSliceNb=function(){return t.setCurrentSlice(e.getCurrentPosition().k+1)},this.decrementSliceNb=function(){return t.setCurrentSlice(e.getCurrentPosition().k-1)},this.getCurrentFrame=function(){return e.getCurrentFrame()},this.setCurrentFrame=function(t){return e.setCurrentFrame(t)},this.incrementFrameNb=function(){return e.setCurrentFrame(e.getCurrentFrame()+1)},this.decrementFrameNb=function(){return e.setCurrentFrame(e.getCurrentFrame()-1)},this.goFirstSlice=function(){return e.setCurrentPosition({i:e.getCurrentPosition().i,j:e.getCurrentPosition().j,k:0})},this.play=function(){if(null===n){var i=e.getImage().getGeometry().getSize().getNumberOfSlices(),r=e.getImage().getNumberOfFrames();n=setInterval(function(){1!==i?t.incrementSliceNb()||t.setCurrentSlice(0):1!==r&&(t.incrementFrameNb()||t.setCurrentFrame(0))},300)}else this.stop()},this.stop=function(){null!==n&&(clearInterval(n),n=null)},this.getWindowLevel=function(){return{width:e.getCurrentWindowLut().getWindowLevel().getWidth(),center:e.getCurrentWindowLut().getWindowLevel().getCenter()}},this.setWindowLevel=function(t,n){e.setWindowLevel(t,n)},this.getColourMap=function(){return e.getColourMap()},this.setColourMap=function(t){e.setColourMap(t)},this.setColourMapFromName=function(e){if(!u.tool.colourMaps[e])throw new Error("Unknown colour map: '"+e+"'");this.setColourMap(u.tool.colourMaps[e])}};(u=u||{}).dicom=u.dicom||{},u.getVersion=function(){return"0.22.1"},u.dicom.cleanString=function(e){var t=e;return e&&(t=e.trim())[t.length-1]===String.fromCharCode("u200B")&&(t=t.substring(0,t.length-1)),t},u.dicom.isNativeLittleEndian=function(){return new Int8Array(new Int16Array([1]).buffer)[0]>0},u.dicom.getUtfLabel=function(e){var t="utf-8";return"ISO_IR 100"===e?t="iso-8859-1":"ISO_IR 101"===e?t="iso-8859-2":"ISO_IR 109"===e?t="iso-8859-3":"ISO_IR 110"===e?t="iso-8859-4":"ISO_IR 144"===e?t="iso-8859-5":"ISO_IR 127"===e?t="iso-8859-6":"ISO_IR 126"===e?t="iso-8859-7":"ISO_IR 138"===e?t="iso-8859-8":"ISO_IR 148"===e?t="iso-8859-9":"ISO_IR 13"===e?t="shift-jis":"ISO_IR 166"===e?t="iso-8859-11":"ISO 2022 IR 87"===e?t="iso-2022-jp":"ISO 2022 IR 149"===e||"ISO 2022 IR 58"===e||("ISO_IR 192"===e?t="utf-8":"GB18030"===e?t="gb18030":"GB2312"===e?t="gb2312":"GBK"===e&&(t="chinese")),t},u.dicom.DataReader=function(e,t){void 0===t&&(t=!0);var n={};n.decode=function(e){for(var t="",n=0,i=e.length;n<i;++n)t+=String.fromCharCode(e[n]);return t};var i=n;void 0!==l.TextDecoder&&(i=new TextDecoder("iso-8859-1")),this.setUtfLabel=function(e){void 0!==l.TextDecoder&&(i=new TextDecoder(e))};var r=u.dicom.isNativeLittleEndian(),o=t!==r,a=new DataView(e);this.flipArrayEndianness=function(e){for(var t,n=e.byteLength,i=new Uint8Array(e.buffer,e.byteOffset,n),r=e.BYTES_PER_ELEMENT,o=0;o<n;o+=r)for(var a=o+r-1,s=o;a>s;a--,s++)t=i[s],i[s]=i[a],i[a]=t},this.readUint16=function(e){return a.getUint16(e,t)},this.readUint32=function(e){return a.getUint32(e,t)},this.readInt32=function(e){return a.getInt32(e,t)},this.readUint8Array=function(t,n){return new Uint8Array(e,t,n)},this.readInt8Array=function(t,n){return new Int8Array(e,t,n)},this.readUint16Array=function(n,i){var r=i/Uint16Array.BYTES_PER_ELEMENT,s=null;if(n%Uint16Array.BYTES_PER_ELEMENT==0)s=new Uint16Array(e,n,r),o&&this.flipArrayEndianness(s);else{s=new Uint16Array(r);for(var l=0;l<r;++l)s[l]=a.getInt16(n+Uint16Array.BYTES_PER_ELEMENT*l,t)}return s},this.readInt16Array=function(n,i){var r=i/Int16Array.BYTES_PER_ELEMENT,s=null;if(n%Int16Array.BYTES_PER_ELEMENT==0)s=new Int16Array(e,n,r),o&&this.flipArrayEndianness(s);else{s=new Int16Array(r);for(var l=0;l<r;++l)s[l]=a.getInt16(n+Int16Array.BYTES_PER_ELEMENT*l,t)}return s},this.readUint32Array=function(n,i){var r=i/Uint32Array.BYTES_PER_ELEMENT,s=null;if(n%Uint32Array.BYTES_PER_ELEMENT==0)s=new Uint32Array(e,n,r),o&&this.flipArrayEndianness(s);else{s=new Uint32Array(r);for(var l=0;l<r;++l)s[l]=a.getUint32(n+Uint32Array.BYTES_PER_ELEMENT*l,t)}return s},this.readInt32Array=function(n,i){var r=i/Int32Array.BYTES_PER_ELEMENT,s=null;if(n%Int32Array.BYTES_PER_ELEMENT==0)s=new Int32Array(e,n,r),o&&this.flipArrayEndianness(s);else{s=new Int32Array(r);for(var l=0;l<r;++l)s[l]=a.getInt32(n+Int32Array.BYTES_PER_ELEMENT*l,t)}return s},this.readFloat32Array=function(n,i){var r=i/Float32Array.BYTES_PER_ELEMENT,s=null;if(n%Float32Array.BYTES_PER_ELEMENT==0)s=new Float32Array(e,n,r),o&&this.flipArrayEndianness(s);else{s=new Float32Array(r);for(var l=0;l<r;++l)s[l]=a.getFloat32(n+Float32Array.BYTES_PER_ELEMENT*l,t)}return s},this.readFloat64Array=function(n,i){var r=i/Float64Array.BYTES_PER_ELEMENT,s=null;if(n%Float64Array.BYTES_PER_ELEMENT==0)s=new Float64Array(e,n,r),o&&this.flipArrayEndianness(s);else{s=new Float64Array(r);for(var l=0;l<r;++l)s[l]=a.getFloat64(n+Float64Array.BYTES_PER_ELEMENT*l,t)}return s},this.readHex=function(e){var t=this.readUint16(e).toString(16);return"0x0000".substr(0,6-t.length)+t.toUpperCase()},this.readString=function(e,t){var i=this.readUint8Array(e,t);return n.decode(i)},this.readSpecialString=function(e,t){var n=this.readUint8Array(e,t);return i.decode(n)}},u.dicom.getGroupElementFromName=function(e){var t=null,n=null,i=u.dicom.dictionary,r=Object.keys(i),o=null;e:for(var a=0,s=r.length;a<s;++a){t=r[a];for(var l=0,c=(o=Object.keys(i[t])).length;l<c;++l)if(n=o[l],i[t][n][2]===e)break e}return{group:t,element:n}},u.dicom.Tag=function(e,t){this.getGroup=function(){return e},this.getElement=function(){return t}},u.dicom.Tag.prototype.equals=function(e){return null!==e&&this.getGroup()===e.getGroup()&&this.getElement()===e.getElement()},u.dicom.Tag.prototype.equals2=function(e){return null!==e&&void 0!==e.group&&void 0!==e.element&&this.equals(new u.dicom.Tag(e.group,e.element))},u.dicom.getFileMetaInformationGroupLengthTag=function(){return new u.dicom.Tag("0x0002","0x0000")},u.dicom.getItemTag=function(){return new u.dicom.Tag("0xFFFE","0xE000")},u.dicom.getItemDelimitationItemTag=function(){return new u.dicom.Tag("0xFFFE","0xE00D")},u.dicom.getSequenceDelimitationItemTag=function(){return new u.dicom.Tag("0xFFFE","0xE0DD")},u.dicom.getPixelDataTag=function(){return new u.dicom.Tag("0x7FE0","0x0010")},u.dicom.getGroupElementKey=function(e,t){return"x"+e.substr(2,6)+t.substr(2,6)},u.dicom.splitGroupElementKey=function(e){return{group:e.substr(1,4),element:e.substr(5,8)}},u.dicom.getReverseOrientation=function(e){if(!e)return null;for(var t={L:"R",R:"L",A:"P",P:"A",H:"F",F:"H"},n="",i=0;i<e.length;i++){var r=t[e.substr(i,1)];r&&(n+=r)}return n},u.dicom.isImplicitTransferSyntax=function(e){return"1.2.840.10008.1.2"===e},u.dicom.isBigEndianTransferSyntax=function(e){return"1.2.840.10008.1.2.2"===e},u.dicom.isJpegBaselineTransferSyntax=function(e){return"1.2.840.10008.1.2.4.50"===e||"1.2.840.10008.1.2.4.51"===e},u.dicom.isJpegRetiredTransferSyntax=function(e){return null!==e.match(/1.2.840.10008.1.2.4.5/)&&!u.dicom.isJpegBaselineTransferSyntax()&&!u.dicom.isJpegLosslessTransferSyntax()||null!==e.match(/1.2.840.10008.1.2.4.6/)},u.dicom.isJpegLosslessTransferSyntax=function(e){return"1.2.840.10008.1.2.4.57"===e||"1.2.840.10008.1.2.4.70"===e},u.dicom.isJpeglsTransferSyntax=function(e){return null!==e.match(/1.2.840.10008.1.2.4.8/)},u.dicom.isJpeg2000TransferSyntax=function(e){return null!==e.match(/1.2.840.10008.1.2.4.9/)},u.dicom.getSyntaxDecompressionName=function(e){var t=null;return u.dicom.isJpeg2000TransferSyntax(e)?t="jpeg2000":u.dicom.isJpegBaselineTransferSyntax(e)?t="jpeg-baseline":u.dicom.isJpegLosslessTransferSyntax(e)&&(t="jpeg-lossless"),t},u.dicom.isReadSupportedTransferSyntax=function(e){return"1.2.840.10008.1.2"===e||"1.2.840.10008.1.2.1"===e||"1.2.840.10008.1.2.2"===e||u.dicom.isJpegBaselineTransferSyntax(e)||u.dicom.isJpegLosslessTransferSyntax(e)||u.dicom.isJpeg2000TransferSyntax(e)},u.dicom.getTransferSyntaxName=function(e){var t="Unknown";return"1.2.840.10008.1.2"===e?t="Little Endian Implicit":"1.2.840.10008.1.2.1"===e?t="Little Endian Explicit":"1.2.840.10008.1.2.1.99"===e?t="Little Endian Deflated Explicit":"1.2.840.10008.1.2.2"===e?t="Big Endian Explicit":u.dicom.isJpegBaselineTransferSyntax(e)?t="1.2.840.10008.1.2.4.50"===e?"JPEG Baseline":"JPEG Extended, Process 2+4":u.dicom.isJpegLosslessTransferSyntax(e)?t="1.2.840.10008.1.2.4.57"===e?"JPEG Lossless, Nonhierarchical (Processes 14)":"JPEG Lossless, Non-hierarchical, 1st Order Prediction":u.dicom.isJpegRetiredTransferSyntax(e)?t="Retired JPEG":u.dicom.isJpeglsTransferSyntax(e)?t="JPEG-LS":u.dicom.isJpeg2000TransferSyntax(e)?t="1.2.840.10008.1.2.4.91"===e?"JPEG 2000 (Lossless or Lossy)":"JPEG 2000 (Lossless only)":"1.2.840.10008.1.2.4.100"===e?t="MPEG2":"1.2.840.10008.1.2.5"===e&&(t="RLE"),t},u.dicom.getTypedArray=function(e,t,n){var i=null;return 8===e?i=0===t?new Uint8Array(n):new Int8Array(n):16===e?i=0===t?new Uint16Array(n):new Int16Array(n):32===e&&(i=0===t?new Uint32Array(n):new Int32Array(n)),i},u.dicom.is32bitVLVR=function(e){return"OB"===e||"OW"===e||"OF"===e||"ox"===e||"UT"===e||"SQ"===e||"UN"===e},u.dicom.isTagWithVR=function(e,t){return!("0xFFFE"===e&&("0xE000"===t||"0xE00D"===t||"0xE0DD"===t))},u.dicom.getDataElementPrefixByteSize=function(e,t){return t?8:u.dicom.is32bitVLVR(e)?12:8},u.dicom.DicomParser=function(){this.dicomElements={};var e;this.getDefaultCharacterSet=function(){return e},this.setDefaultCharacterSet=function(t){e=t}},u.dicom.DicomParser.prototype.getRawDicomElements=function(){return this.dicomElements},u.dicom.DicomParser.prototype.getDicomElements=function(){return new u.dicom.DicomElementsWrapper(this.dicomElements)},u.dicom.DicomParser.prototype.readTag=function(e,t){var n=e.readHex(t);t+=Uint16Array.BYTES_PER_ELEMENT;var i=e.readHex(t);t+=Uint16Array.BYTES_PER_ELEMENT;return{group:n,element:i,name:u.dicom.getGroupElementKey(n,i),endOffset:t}},u.dicom.DicomParser.prototype.readItemDataElement=function(e,t,n){var i={},r=this.readDataElement(e,t,n);t=r.endOffset;var o="xFFFEE0DD"===r.tag.name;if(o)return{data:i,endOffset:r.endOffset,isSeqDelim:o};if(i[r.tag.name]=r,"u/l"!==r.vl){if(0!==r.vl){var a=t;for(t-=r.vl;t<a;)t=(r=this.readDataElement(e,t,n)).endOffset,i[r.tag.name]=r}}else for(var s=!1;!s;)t=(r=this.readDataElement(e,t,n)).endOffset,(s="xFFFEE00D"===r.tag.name)||(i[r.tag.name]=r);return{data:i,endOffset:t,isSeqDelim:!1}},u.dicom.DicomParser.prototype.readPixelItemDataElement=function(e,t,n){var i=[],r=this.readDataElement(e,t,n),o=r.vl;t=r.endOffset;for(var a=!1;!a;)t=(r=this.readDataElement(e,t,n)).endOffset,(a="xFFFEE0DD"===r.tag.name)||i.push(r.value);return{data:i,endOffset:t,offsetTableVl:o}},u.dicom.DicomParser.prototype.readDataElement=function(e,t,n){var i=this.readTag(e,t);t=i.endOffset;var r=null,o=!1;if(u.dicom.isTagWithVR(i.group,i.element))if(n){r="UN";var a=u.dicom.dictionary;void 0!==a[i.group]&&void 0!==a[i.group][i.element]&&(r=u.dicom.dictionary[i.group][i.element][0]),o=!0}else r=e.readString(t,2),t+=2*Uint8Array.BYTES_PER_ELEMENT,(o=u.dicom.is32bitVLVR(r))&&(t+=2*Uint8Array.BYTES_PER_ELEMENT);else r="UN",o=!0;var s=0;o?(s=e.readUint32(t),t+=Uint32Array.BYTES_PER_ELEMENT):(s=e.readUint16(t),t+=Uint16Array.BYTES_PER_ELEMENT);var l=s;4294967295===s&&(l="u/l",s=0);var c=t,d=null,S="x7FE00010"===i.name;if(S&&"u/l"===l){var x=this.readPixelItemDataElement(e,t,n);t=x.endOffset,c+=x.offsetTableVl,d=x.data}else if(!S||"OB"!==r&&"OW"!==r&&"OF"!==r&&"ox"!==r)if("OB"===r)d=e.readInt8Array(t,s),t+=s;else if("OW"===r)d=e.readInt16Array(t,s),t+=s;else if("OF"===r)d=e.readInt32Array(t,s),t+=s;else if("OD"===r)d=e.readInt64Array(t,s),t+=s;else if("US"===r)d=e.readUint16Array(t,s),t+=s;else if("UL"===r)d=e.readUint32Array(t,s),t+=s;else if("SS"===r)d=e.readInt16Array(t,s),t+=s;else if("SL"===r)d=e.readInt32Array(t,s),t+=s;else if("FL"===r)d=e.readFloat32Array(t,s),t+=s;else if("FD"===r)d=e.readFloat64Array(t,s),t+=s;else if("AT"===r){var g=e.readUint16Array(t,s);t+=s,d=[];for(var m=0,h=g.length;m<h;m+=2){var p=g[m].toString(16),f=g[m+1].toString(16),C="(";C+="0000".substr(0,4-p.length)+p.toUpperCase(),C+=",",C+="0000".substr(0,4-f.length)+f.toUpperCase(),C+=")",d.push(C)}}else if("UN"===r)d=e.readUint8Array(t,s),t+=s;else if("SQ"===r){d=[];var y;if("u/l"!==l){if(0!==s)for(var D=t+s;t<D;)y=this.readItemDataElement(e,t,n),d.push(y.data),t=y.endOffset}else for(var v=!1;!v;)v=(y=this.readItemDataElement(e,t,n)).isSeqDelim,t=y.endOffset,v||d.push(y.data)}else d="SH"===r||"LO"===r||"ST"===r||"PN"===r||"LT"===r||"UT"===r?e.readSpecialString(t,s):e.readString(t,s),t+=s,d=d.split("\\");else{var L=16;void 0!==this.dicomElements.x00280100?L=this.dicomElements.x00280100.value[0]:console.warn("Reading DICOM pixel data with default bitsAllocated."),8===L&&"OW"===r&&console.warn("Reading DICOM pixel data with vr=OW and bitsAllocated=8 (should be 16)."),16===L&&"OB"===r&&console.warn("Reading DICOM pixel data with vr=OB and bitsAllocated=16 (should be 8).");var T=0;void 0!==this.dicomElements.x00280103&&(T=this.dicomElements.x00280103.value[0]),8===L?d=0===T?e.readUint8Array(t,s):e.readInt8Array(t,s):16===L?d=0===T?e.readUint16Array(t,s):e.readInt16Array(t,s):32===L?d=0===T?e.readUint32Array(t,s):e.readInt32Array(t,s):64===L&&(d=0===T?e.readUint64Array(t,s):e.readInt64Array(t,s)),t+=s}return{tag:i,vr:r,vl:l,value:d,startOffset:c,endOffset:t}},u.dicom.DicomParser.prototype.parse=function(e){var t=0,n=!1,i=new u.dicom.DataReader(e),r=new u.dicom.DataReader(e);t=128;var o=i.readString(t,4);if(t+=4*Uint8Array.BYTES_PER_ELEMENT,"DICM"!==o)throw new Error("Not a valid DICOM file (no magic DICM word found)");var a=this.readDataElement(i,t,!1);t=a.endOffset,this.dicomElements[a.tag.name]=a;for(var s=t+parseInt(a.value[0],10);t<s;)t=(a=this.readDataElement(i,t,!1)).endOffset,this.dicomElements[a.tag.name]=a;if(void 0===this.dicomElements.x00020010)throw new Error("Not a valid DICOM file (no TransferSyntaxUID found)");var l=u.dicom.cleanString(this.dicomElements.x00020010.value[0]);if(!u.dicom.isReadSupportedTransferSyntax(l))throw new Error("Unsupported DICOM transfer syntax: '"+l+"' ("+u.dicom.getTransferSyntaxName(l)+")");for(u.dicom.isImplicitTransferSyntax(l)&&(n=!0),u.dicom.isBigEndianTransferSyntax(l)&&(r=new u.dicom.DataReader(e,!1)),void 0!==this.getDefaultCharacterSet()&&r.setUtfLabel(this.getDefaultCharacterSet());t<e.byteLength;){if("x00080005"===(a=this.readDataElement(r,t,n)).tag.name){var c;1===a.value.length?c=u.dicom.cleanString(a.value[0]):(c=u.dicom.cleanString(a.value[1]),console.warn("Unsupported character set with code extensions: '"+c+"'.")),r.setUtfLabel(u.dicom.getUtfLabel(c))}t=a.endOffset,this.dicomElements[a.tag.name]=a}if(e.byteLength!==t&&console.warn("Did not reach the end of the buffer: "+t+" != "+e.byteLength),void 0!==this.dicomElements.x7FE00010){var d=1;if(void 0!==this.dicomElements.x00280008&&(d=this.dicomElements.x00280008.value[0]),"u/l"!==this.dicomElements.x7FE00010.vl){(u.dicom.isJpeg2000TransferSyntax(l)||u.dicom.isJpegBaselineTransferSyntax(l)||u.dicom.isJpegLosslessTransferSyntax(l))&&console.warn("Compressed but no items...");for(var S=this.dicomElements.x7FE00010.value,x=this.dicomElements.x00280011.value[0]*this.dicomElements.x00280010.value[0]*this.dicomElements.x00280002.value[0],g=[],m=0,h=0;h<d;++h)g[h]=S.slice(m,m+x),m+=x;this.dicomElements.x7FE00010.value=g}else{var p=this.dicomElements.x7FE00010.value;if(p.length>1&&p.length>d){for(var f=p.length/d,C=[],y=0,D=0;D<d;++D){y=D*f;for(var v=0,L=0;L<f;++L)v+=p[y+L].length;for(var T=new p[0].constructor(v),I=0,P=0;P<f;++P)T.set(p[y+P],I),I+=p[y+P].length;C[D]=T}this.dicomElements.x7FE00010.value=C}}}},u.dicom.DicomElementsWrapper=function(e){this.getDEFromKey=function(t){return e[t]},this.getFromKey=function(t,n){void 0===n&&(n=!1);var i=null,r=e[t];return void 0!==r&&(i=1===r.value.length&&!1===n?r.value[0]:r.value),i},this.dumpToTable=function(){for(var t=Object.keys(e),n=u.dicom.dictionary,i=[],r=null,o=null,a=null,s=0,l=t.length;s<l;++s)a={},o=null,void 0!==n[(r=e[t[s]]).tag.group]&&void 0!==n[r.tag.group][r.tag.element]&&(o=n[r.tag.group][r.tag.element]),a.name=null!==o?o[2]:"Unknown Tag & Data",a.value=this.getElementValueAsString(r),a.group=r.tag.group,a.element=r.tag.element,a.vr=r.vr,a.vl=r.vl,i.push(a);return i},this.dump=function(){var t=Object.keys(e),n="\n";n+="# Dicom-File-Format\n",n+="\n",n+="# Dicom-Meta-Information-Header\n",n+="# Used TransferSyntax: ",u.dicom.isNativeLittleEndian()?n+="Little Endian Explicit\n":n+="NOT Little Endian Explicit\n";for(var i=null,r=!0,o=0,a=t.length;o<a;++o){if(i=e[t[o]],r&&"0x0002"!==i.tag.group){n+="\n",n+="# Dicom-Data-Set\n",n+="# Used TransferSyntax: ";var s=u.dicom.cleanString(e.x00020010.value[0]);n+=u.dicom.getTransferSyntaxName(s),n+="\n",r=!1}n+=this.getElementAsString(i)+"\n"}return n}},u.dicom.DicomElementsWrapper.prototype.getElementValueAsString=function(e,t){var n="";if(void 0===t&&(t=!0),void 0===e||null===e)return n;var i=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e};if("SQ"!==e.vr&&1===e.value.length&&""===e.value[0])n+="(no value available)";else if("0x7FE0"===e.tag.group&&"0x0010"===e.tag.element&&"u/l"===e.vl)n="(PixelSequence)";else if("DA"===e.vr&&t){var r=e.value[0],o=parseInt(r.substr(0,4),10),a=parseInt(r.substr(4,2),10)-1,s=parseInt(r.substr(6,2),10);n=new Date(o,a,s).toLocaleDateString()}else if("TM"===e.vr&&t){var l=e.value[0];n=l.substr(0,2)+":"+(l.length>=4?l.substr(2,2):"00")+":"+(l.length>=6?l.substr(4,2):"00")}else for(var c="O"===e.vr[0].toUpperCase(),d="FL"===e.vr||"FD"===e.vr||"DS"===e.vr,S="",x=0,g=e.value.length;x<g;++x){if(S="",0!==x&&(S+="\\"),d){var m=e.value[x];"string"==typeof m&&(m=u.dicom.cleanString(m));var h=Number(m);!i(h)&&t?S+=h.toPrecision(4):S+=h.toString()}else if(c){var p=e.value[x].toString(16);S+=p="OB"===e.vr?"00".substr(0,2-p.length)+p:"0000".substr(0,4-p.length)+p}else"string"==typeof e.value[x]?S+=u.dicom.cleanString(e.value[x]):S+=e.value[x];if(!(n.length+S.length<=65)){n+="...";break}n+=S}return n},u.dicom.DicomElementsWrapper.prototype.getElementValueAsStringFromKey=function(e){return this.getElementValueAsString(this.getDEFromKey(e))},u.dicom.DicomElementsWrapper.prototype.getElementAsString=function(e,t){t=t||"";var n=u.dicom.dictionary,i=null;void 0!==n[e.tag.group]&&void 0!==n[e.tag.group][e.tag.element]&&(i=n[e.tag.group][e.tag.element]);var r=e.value.length,o="O"===e.vr[0].toUpperCase();"0xFFFE"!==e.tag.group||"0xE00D"!==e.tag.element&&"0xE0DD"!==e.tag.element?o&&(r=1):r=0;var a="0x7FE0"===e.tag.group&&"0x0010"===e.tag.element&&"u/l"===e.vl,s=null;s="(",s+=e.tag.group.substr(2,5).toLowerCase(),s+=",",s+=e.tag.element.substr(2,5).toLowerCase(),s+=") ",s+=e.vr,"SQ"!==e.vr&&1===e.value.length&&""===e.value[0]?(s+=" (no value available)",r=0):"na"===e.vr?(s+=" ",s+=e.value[0]):a?s+=" (PixelSequence #="+r+")":"SQ"===e.vr?(s+=" (Sequence with","u/l"===e.vl?s+=" undefined":s+=" explicit",s+=" length #=",s+=e.value.length,s+=")"):o||"pi"===e.vr||"UL"===e.vr||"US"===e.vr||"SL"===e.vr||"SS"===e.vr||"FL"===e.vr||"FD"===e.vr||"AT"===e.vr?(s+=" ",s+=this.getElementValueAsString(e,!1)):(s+=" [",s+=this.getElementValueAsString(e,!1),s+="]");var l=55-s.length;if(l>0)for(var c=0;c<l;++c)s+=" ";s+=" # ",e.vl<100&&(s+=" "),e.vl<10&&(s+=" "),s+=e.vl,s+=", ",s+=r,s+=" ",s+=null!==i?i[2]:"Unknown Tag & Data";var d=null;if("SQ"===e.vr){for(var S=null,x=0,g=e.value.length;x<g;++x){S=e.value[x];var m=Object.keys(S);if(0!==m.length){var h=S.xFFFEE000;d="(Item with","u/l"===h.vl?d+=" undefined":d+=" explicit",d+=" length #="+(m.length-1)+")",h.value=[d],h.vr="na",s+="\n",s+=this.getElementAsString(h,t+" ");for(var p=0,f=m.length;p<f;++p)"xFFFEE000"!==m[p]&&(s+="\n",s+=this.getElementAsString(S[m[p]],t+" "));d="(ItemDelimitationItem","u/l"!==h.vl&&(d+=" for re-encoding");var C={tag:{group:"0xFFFE",element:"0xE00D"},vr:"na",vl:"0",value:[d+=")"]};s+="\n",s+=this.getElementAsString(C,t+" ")}}d="(SequenceDelimitationItem","u/l"!==e.vl&&(d+=" for re-encod.");var y={tag:{group:"0xFFFE",element:"0xE0DD"},vr:"na",vl:"0",value:[d+=")"]};s+="\n",s+=this.getElementAsString(y,t)}else if(a){for(var D=null,v=0,L=e.value.length;v<L;++v)s+="\n",(D=e.value[v]).vr="pi",s+=this.getElementAsString(D,t+" ");s+="\n",s+=this.getElementAsString({tag:{group:"0xFFFE",element:"0xE0DD"},vr:"na",vl:"0",value:["(SequenceDelimitationItem)"]},t)}return t+s},u.dicom.DicomElementsWrapper.prototype.getFromGroupElement=function(e,t){return this.getFromKey(u.dicom.getGroupElementKey(e,t))},u.dicom.DicomElementsWrapper.prototype.getFromName=function(e){var t=null,n=u.dicom.getGroupElementFromName(e);return null!==n.group&&null!==n.element&&(t=this.getFromKey(u.dicom.getGroupElementKey(n.group,n.element))),t};(u=u||{}).dicom=u.dicom||{},u.dicom.DataWriter=function(e,t){void 0===t&&(t=!0);var n=new DataView(e);this.writeUint8=function(e,t){return n.setUint8(e,t),e+Uint8Array.BYTES_PER_ELEMENT},this.writeInt8=function(e,t){return n.setInt8(e,t),e+Int8Array.BYTES_PER_ELEMENT},this.writeUint16=function(e,i){return n.setUint16(e,i,t),e+Uint16Array.BYTES_PER_ELEMENT},this.writeInt16=function(e,i){return n.setInt16(e,i,t),e+Int16Array.BYTES_PER_ELEMENT},this.writeUint32=function(e,i){return n.setUint32(e,i,t),e+Uint32Array.BYTES_PER_ELEMENT},this.writeInt32=function(e,i){return n.setInt32(e,i,t),e+Int32Array.BYTES_PER_ELEMENT},this.writeFloat32=function(e,i){return n.setFloat32(e,i,t),e+Float32Array.BYTES_PER_ELEMENT},this.writeFloat64=function(e,i){return n.setFloat64(e,i,t),e+Float64Array.BYTES_PER_ELEMENT},this.writeHex=function(e,i){var r=parseInt(i.substr(2),16);return n.setUint16(e,r,t),e+Uint16Array.BYTES_PER_ELEMENT},this.writeString=function(e,t){for(var i=0,r=t.length;i<r;++i)n.setUint8(e,t.charCodeAt(i)),e+=Uint8Array.BYTES_PER_ELEMENT;return e}},u.dicom.DataWriter.prototype.writeUint8Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeUint8(e,t[n]);return e},u.dicom.DataWriter.prototype.writeInt8Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeInt8(e,t[n]);return e},u.dicom.DataWriter.prototype.writeUint16Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeUint16(e,t[n]);return e},u.dicom.DataWriter.prototype.writeInt16Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeInt16(e,t[n]);return e},u.dicom.DataWriter.prototype.writeUint32Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeUint32(e,t[n]);return e},u.dicom.DataWriter.prototype.writeInt32Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeInt32(e,t[n]);return e},u.dicom.DataWriter.prototype.writeFloat32Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeFloat32(e,t[n]);return e},u.dicom.DataWriter.prototype.writeFloat64Array=function(e,t){for(var n=0,i=t.length;n<i;++n)e=this.writeFloat64(e,t[n]);return e},u.dicom.DataWriter.prototype.writeStringArray=function(e,t){for(var n=0,i=t.length;n<i;++n)0!==n&&(e=this.writeString(e,"\\")),e=this.writeString(e,t[n].toString());return e},u.dicom.DataWriter.prototype.writeDataElementItems=function(e,t,n){for(var i=null,r=0;r<t.length;++r){i=t[r];var o=Object.keys(i);if(0!==o.length){var a=i.xFFFEE000;a.value=[];var s="u/l"===a.vl;s&&(a.vl=4294967295),e=this.writeDataElement(a,e,n);for(var l=0;l<o.length;++l)"xFFFEE000"!==o[l]&&"xFFFEE00D"!==o[l]&&(e=this.writeDataElement(i[o[l]],e,n));if(s){e=this.writeDataElement({tag:{group:"0xFFFE",element:"0xE00D",name:"ItemDelimitationItem"},vr:"NONE",vl:0,value:[]},e,n)}}}return e},u.dicom.DataWriter.prototype.writeDataElementValue=function(e,t,n,i){if(n instanceof Uint8Array)t=this.writeUint8Array(t,n);else if(n instanceof Int8Array)t=this.writeInt8Array(t,n);else if(n instanceof Uint16Array)t=this.writeUint16Array(t,n);else if(n instanceof Int16Array)t=this.writeInt16Array(t,n);else if(n instanceof Uint32Array)t=this.writeUint32Array(t,n);else if(n instanceof Int32Array)t=this.writeInt32Array(t,n);else if("UN"===e)t=this.writeUint8Array(t,n);else if("OB"===e)t=this.writeInt8Array(t,n);else if("OW"===e)t=this.writeInt16Array(t,n);else if("OF"===e)t=this.writeInt32Array(t,n);else if("OD"===e)t=this.writeInt64Array(t,n);else if("US"===e)t=this.writeUint16Array(t,n);else if("SS"===e)t=this.writeInt16Array(t,n);else if("UL"===e)t=this.writeUint32Array(t,n);else if("SL"===e)t=this.writeInt32Array(t,n);else if("FL"===e)t=this.writeFloat32Array(t,n);else if("FD"===e)t=this.writeFloat64Array(t,n);else if("SQ"===e)t=this.writeDataElementItems(t,n,i);else if("AT"===e)for(var r=0;r<n.length;++r){var o=n[r]+"",a=o.substring(1,5),s=o.substring(6,10),l=parseInt(a,16),u=parseInt(s,16),c=new Uint16Array([l,u]);t=this.writeUint16Array(t,c)}else t=this.writeStringArray(t,n);return t},u.dicom.DataWriter.prototype.writePixelDataElementValue=function(e,t,n,i,r){if("u/l"!==t){var o=i[0];i.length>1&&(o=u.dicom.flattenArrayOfTypedArrays(i)),n=this.writeDataElementValue(e,n,o,r)}else{var a={};a.xFFFEE000={tag:{group:"0xFFFE",element:"0xE000",name:"xFFFEE000"},vr:"UN",vl:0,value:[]};for(var s=0;s<i.length;++s)a[s]={tag:{group:"0xFFFE",element:"0xE000",name:"xFFFEE000"},vr:e,vl:i[s].length,value:i[s]};n=this.writeDataElementItems(n,[a],r)}return n},u.dicom.DataWriter.prototype.writeDataElement=function(e,t,n){var i=u.dicom.isTagWithVR(e.tag.group,e.tag.element),r=!(!n&&i)||u.dicom.is32bitVLVR(e.vr);t=this.writeHex(t,e.tag.group),t=this.writeHex(t,e.tag.element),i&&!n&&(t=this.writeString(t,e.vr),r&&(t+=2));var o=e.vl;(u.dicom.isImplicitLengthSequence(e)||u.dicom.isImplicitLengthItem(e)||u.dicom.isImplicitLengthPixels(e))&&(o=4294967295),t=r?this.writeUint32(t,o):this.writeUint16(t,o);var a=e.value;if(void 0===a&&(a=[]),t="x7FE00010"===e.tag.name?this.writePixelDataElementValue(e.vr,e.vl,t,a,n):this.writeDataElementValue(e.vr,t,a,n),u.dicom.isImplicitLengthSequence(e)||u.dicom.isImplicitLengthPixels(e)){t=this.writeDataElement({tag:{group:"0xFFFE",element:"0xE0DD",name:"SequenceDelimitationItem"},vr:"NONE",vl:0,value:[]},t,n)}return t},u.dicom.isImplicitLengthSequence=function(e){return"SQ"===e.vr&&"u/l"===e.vl},u.dicom.isImplicitLengthItem=function(e){return"xFFFEE000"===e.tag.name&&"u/l"===e.vl},u.dicom.isImplicitLengthPixels=function(e){return"x7FE00010"===e.tag.name&&"u/l"===e.vl},u.dicom.flattenArrayOfTypedArrays=function(e){for(var t=e.length,n=e[0].length,i=t*n,r=new e[0].constructor(i),o=0;o<t;o++){var a=o*n;r.set(e[o],a)}return r},u.dicom.DicomWriter=function(){var e={copy:function(e){return e},remove:function(){return null},clear:function(e){return e.value[0]="",e.vl=0,e.endOffset=e.startOffset,e},replace:function(e,t){return e.value[0]=t,e.vl=t.length,e.endOffset=e.startOffset+t.length,e}};this.rules={default:{action:"copy",value:null}},this.anonymisationRules={default:{action:"remove",value:null},PatientName:{action:"replace",value:"Anonymized"},"Meta Element":{action:"copy",value:null},Acquisition:{action:"copy",value:null},"Image Presentation":{action:"copy",value:null},Procedure:{action:"copy",value:null},"Pixel Data":{action:"copy",value:null}},this.getElementToWrite=function(t){var n=null,i=u.dicom.dictionary,r=t.tag.group,o=u.dicom.TagGroups[r.substr(1)];void 0!==i[r]&&void 0!==i[r][t.tag.element]&&(n=i[r][t.tag.element][2]);var a;return a=void 0!==this.rules[t.tag.name]?this.rules[t.tag.name]:null!==n&&void 0!==this.rules[n]?this.rules[n]:void 0!==this.rules[o]?this.rules[o]:this.rules.default,e[a.action](t,a.value)}},u.dicom.DicomWriter.prototype.getBuffer=function(e){for(var t,n,i=Object.keys(e),r=u.dicom.cleanString(e.x00020010.value[0]),o=u.dicom.isImplicitTransferSyntax(r),a=u.dicom.isBigEndianTransferSyntax(r),s=132,l=0,c=[],d=[],S=0,x=u.dicom.getFileMetaInformationGroupLengthTag(),g=new u.dicom.Tag("0x0002","0x0012"),m=new u.dicom.Tag("0x0002","0x0013"),h=0,p=i.length;h<p;++h)if(null!==(t=this.getElementToWrite(e[i[h]]))&&!x.equals2(t.tag)&&!g.equals2(t.tag)&&!m.equals2(t.tag)){l=0,l+="Meta Element"===(n=u.dicom.TagGroups[t.tag.group.substr(1)])?u.dicom.getDataElementPrefixByteSize(t.vr,!1):u.dicom.getDataElementPrefixByteSize(t.vr,o);var f=t.endOffset-t.startOffset;l+=parseInt(f,10),(u.dicom.isImplicitLengthSequence(t)||u.dicom.isImplicitLengthPixels(t))&&(l+=u.dicom.getDataElementPrefixByteSize("NONE",o)),"Meta Element"===n?(c.push(t),S+=l):d.push(t),s+=l}var C=u.dicom.getDicomElement("ImplementationClassUID"),y=u.dicom.getDataElementPrefixByteSize(C.vr,o);y+=u.dicom.setElementValue(C,"1.2.826.0.1.3680043.9.7278.1."+u.getVersion(),!1),c.push(C),S+=y,s+=y;var D=u.dicom.getDicomElement("ImplementationVersionName"),v=u.dicom.getDataElementPrefixByteSize(D.vr,o);v+=u.dicom.setElementValue(D,"DWV_"+u.getVersion(),!1),c.push(D),S+=v,s+=v;var L=u.dicom.getDicomElement("FileMetaInformationGroupLength"),T=u.dicom.getDataElementPrefixByteSize(L.vr,o);s+=T+=u.dicom.setElementValue(L,S,!1);var I=new ArrayBuffer(s),P=new u.dicom.DataWriter(I),F=new u.dicom.DataWriter(I,!a),A=128;A=P.writeString(A,"DICM"),A=P.writeDataElement(L,A,!1);for(var E=0,O=c.length;E<O;++E)A=P.writeDataElement(c[E],A,!1);for(var b=0,w=d.length;b<w;++b)A=F.writeDataElement(d[b],A,o);return I},u.dicom.getDicomElement=function(e){var t=u.dicom.getGroupElementFromName(e),n=u.dicom.dictionary;return{tag:{group:t.group,element:t.element},vr:n[t.group][t.element][0],vl:n[t.group][t.element][1]}},u.dicom.setElementValue=function(e,t,n){var i=0;if("SQ"===e.vr){if(e.value=t,e.vl=0,null!==t&&0!==t){var r,o=[],a=!0;void 0!==t.explicitLength&&(a=t.explicitLength,delete t.explicitLength);for(var s,l=Object.keys(t),c=0,d=l.length;c<d;++c){var S={},x=0;if(null!==(s=t[l[c]])&&0!==s){for(var g,m=Object.keys(s),h=0,p=m.length;h<p;++h)g=u.dicom.getDicomElement(m[h]),x+=u.dicom.setElementValue(g,s[m[h]]),u.dicom.isImplicitLengthSequence(g)&&(x+=u.dicom.getDataElementPrefixByteSize("NONE",n)),S[r=u.dicom.getGroupElementKey(g.tag.group,g.tag.element)]=g,x+=u.dicom.getDataElementPrefixByteSize(g.vr,n);var f={tag:{group:"0xFFFE",element:"0xE000"},vr:"NONE",vl:a?x:"u/l",value:[]};if(r=u.dicom.getGroupElementKey(f.tag.group,f.tag.element),S[r]=f,x+=u.dicom.getDataElementPrefixByteSize("NONE",n),!a){var C={tag:{group:"0xFFFE",element:"0xE00D"},vr:"NONE",vl:0,value:[]};S[r=u.dicom.getGroupElementKey(C.tag.group,C.tag.element)]=C,x+=u.dicom.getDataElementPrefixByteSize("NONE",n)}i+=x,o.push(S)}}e.value=o,e.vl=a?i:"u/l"}}else{if(i=0,t instanceof Array){e.value=t;for(var y=0;y<t.length;++y)0!==y&&(i+=1),i+=t[y].toString().length}else e.value=[t],i=void 0!==t&&void 0!==t.length?t.length:1;"US"===e.vr||"OW"===e.vr?i*=Uint16Array.BYTES_PER_ELEMENT:"SS"===e.vr?i*=Int16Array.BYTES_PER_ELEMENT:"UL"===e.vr?i*=Uint32Array.BYTES_PER_ELEMENT:"SL"===e.vr?i*=Int32Array.BYTES_PER_ELEMENT:"FL"===e.vr?i*=Float32Array.BYTES_PER_ELEMENT:"FD"===e.vr?i*=Float64Array.BYTES_PER_ELEMENT:i*=Uint8Array.BYTES_PER_ELEMENT,e.vl=i}return i},u.dicom.getElementsFromJSONTags=function(e){for(var t,n,i=u.dicom.isImplicitTransferSyntax(e.TransferSyntaxUID),r=Object.keys(e),o={},a=132,s=0,l=r.length;s<l;++s)t=u.dicom.getDicomElement(r[s]),n=u.dicom.setElementValue(t,e[r[s]],i),a+=u.dicom.getDataElementPrefixByteSize(t.vr,i),t.startOffset=a,a+=n,t.endOffset=a,o[u.dicom.getGroupElementKey(t.tag.group,t.tag.element)]=t;return{elements:o,offset:a}};u.dicom.pixelGenerators={gradSquare:function(e,t){var n=.5*e,i=.5*t,r=(e/2+n/2)*(t/2+i/2);this.getGrey=function(e,t){var o=100,a=Math.abs(t-i),s=Math.abs(e-n);return a<i/2&&s<n/2&&(o+=e*t*(100/r)),[o]},this.getRGB=function(e,t){var o=0,a=Math.abs(t-i),s=Math.abs(e-n);return a<i/2&&s<n/2&&(o+=e*t*(100/r)),o>255&&(o=200),[0,o,o]}}},u.dicom.generatePixelDataFromJSONTags=function(e,t,n){if(void 0===n&&(n="gradSquare"),void 0===e.TransferSyntaxUID)throw new Error("Missing transfer syntax for pixel generation.");if(void 0===e.Rows)throw new Error("Missing number of rows for pixel generation.");if(void 0===e.Columns)throw new Error("Missing number of columns for pixel generation.");if(void 0===e.BitsAllocated)throw new Error("Missing BitsAllocated for pixel generation.");if(void 0===e.PixelRepresentation)throw new Error("Missing PixelRepresentation for pixel generation.");if(void 0===e.SamplesPerPixel)throw new Error("Missing SamplesPerPixel for pixel generation.");if(void 0===e.PhotometricInterpretation)throw new Error("Missing PhotometricInterpretation for pixel generation.");var i=u.dicom.isImplicitTransferSyntax(e.TransferSyntaxUID),r=e.Rows,o=e.Columns,a=e.BitsAllocated,s=e.PixelRepresentation,l=e.SamplesPerPixel,c=e.PhotometricInterpretation,d=r*o*l;if(1!==l&&3!==l)throw new Error("Unsupported SamplesPerPixel for pixel generation: "+l);if(1===l&&"MONOCHROME1"!==c&&"MONOCHROME2"!==c||3===l&&"RGB"!==c)throw new Error("Unsupported PhotometricInterpretation for pixel generation: "+c+" with SamplesPerPixel: "+l);var S=1,x=1;if(3===l){if(void 0===e.PlanarConfiguration)throw new Error("Missing PlanarConfiguration for pixel generation.");var g=e.PlanarConfiguration;if(0!==g&&1!==g)throw new Error("Unsupported PlanarConfiguration for pixel generation: "+g);0===g?S=3:x=3}var m=u.dicom.getTypedArray(a,s,d);if(void 0===u.dicom.pixelGenerators[n])throw new Error("Unknown PixelData generator: "+n);var h=new u.dicom.pixelGenerators[n](o,r),p=h.getGrey;"RGB"===c&&(p=h.getRGB);for(var f=0,C=0;C<x;++C)for(var y=0;y<r;++y)for(var D=0;D<o;++D)for(var v=0;v<S;++v)m[f]=1!==x?p(D,y)[C]:p(D,y)[v],++f;var L="OW";8===a&&(L="OB");var T=u.dicom.getDataElementPrefixByteSize(L,i)+m.BYTES_PER_ELEMENT*d;return{tag:{group:"0x7FE0",element:"0x0010"},vr:L,vl:T,value:m,startOffset:t,endOffset:t+T}};(u=u||{}).dicom=u.dicom||{},u.dicom.dictionary={"0x0000":{"0x0000":["UL","1","GroupLength"],"0x0001":["UL","1","CommandLengthToEnd"],"0x0002":["UI","1","AffectedSOPClassUID"],"0x0003":["UI","1","RequestedSOPClassUID"],"0x0010":["CS","1","CommandRecognitionCode"],"0x0100":["US","1","CommandField"],"0x0110":["US","1","MessageID"],"0x0120":["US","1","MessageIDBeingRespondedTo"],"0x0200":["AE","1","Initiator"],"0x0300":["AE","1","Receiver"],"0x0400":["AE","1","FindLocation"],"0x0600":["AE","1","MoveDestination"],"0x0700":["US","1","Priority"],"0x0800":["US","1","DataSetType"],"0x0850":["US","1","NumberOfMatches"],"0x0860":["US","1","ResponseSequenceNumber"],"0x0900":["US","1","Status"],"0x0901":["AT","1-n","OffendingElement"],"0x0902":["LO","1","ErrorComment"],"0x0903":["US","1","ErrorID"],"0x0904":["OT","1-n","ErrorInformation"],"0x1000":["UI","1","AffectedSOPInstanceUID"],"0x1001":["UI","1","RequestedSOPInstanceUID"],"0x1002":["US","1","EventTypeID"],"0x1003":["OT","1-n","EventInformation"],"0x1005":["AT","1-n","AttributeIdentifierList"],"0x1007":["AT","1-n","ModificationList"],"0x1008":["US","1","ActionTypeID"],"0x1009":["OT","1-n","ActionInformation"],"0x1013":["UI","1-n","SuccessfulSOPInstanceUIDList"],"0x1014":["UI","1-n","FailedSOPInstanceUIDList"],"0x1015":["UI","1-n","WarningSOPInstanceUIDList"],"0x1020":["US","1","NumberOfRemainingSuboperations"],"0x1021":["US","1","NumberOfCompletedSuboperations"],"0x1022":["US","1","NumberOfFailedSuboperations"],"0x1023":["US","1","NumberOfWarningSuboperations"],"0x1030":["AE","1","MoveOriginatorApplicationEntityTitle"],"0x1031":["US","1","MoveOriginatorMessageID"],"0x4000":["AT","1","DialogReceiver"],"0x4010":["AT","1","TerminalType"],"0x5010":["SH","1","MessageSetID"],"0x5020":["SH","1","EndMessageSet"],"0x5110":["AT","1","DisplayFormat"],"0x5120":["AT","1","PagePositionID"],"0x5130":["CS","1","TextFormatID"],"0x5140":["CS","1","NormalReverse"],"0x5150":["CS","1","AddGrayScale"],"0x5160":["CS","1","Borders"],"0x5170":["IS","1","Copies"],"0x5180":["CS","1","OldMagnificationType"],"0x5190":["CS","1","Erase"],"0x51A0":["CS","1","Print"],"0x51B0":["US","1-n","Overlays"]},"0x0002":{"0x0000":["UL","1","FileMetaInformationGroupLength"],"0x0001":["OB","1","FileMetaInformationVersion"],"0x0002":["UI","1","MediaStorageSOPClassUID"],"0x0003":["UI","1","MediaStorageSOPInstanceUID"],"0x0010":["UI","1","TransferSyntaxUID"],"0x0012":["UI","1","ImplementationClassUID"],"0x0013":["SH","1","ImplementationVersionName"],"0x0016":["AE","1","SourceApplicationEntityTitle"],"0x0017":["AE","1","SendingApplicationEntityTitle"],"0x0018":["AE","1","ReceivingApplicationEntityTitle"],"0x0100":["UI","1","PrivateInformationCreatorUID"],"0x0102":["OB","1","PrivateInformation"]},"0x0004":{"0x0000":["UL","1","GenericGroupLength"],"0x1130":["CS","1","FileSetID"],"0x1141":["CS","1-8","FileSetDescriptorFileID"],"0x1142":["CS","1","SpecificCharacterSetOfFileSetDescriptorFile"],"0x1200":["UL","1","OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity"],"0x1202":["UL","1","OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity"],"0x1212":["US","1","FileSetConsistencyFlag"],"0x1220":["SQ","1","DirectoryRecordSequence"],"0x1400":["UL","1","OffsetOfTheNextDirectoryRecord"],"0x1410":["US","1","RecordInUseFlag"],"0x1420":["UL","1","OffsetOfReferencedLowerLevelDirectoryEntity"],"0x1430":["CS","1","DirectoryRecordType"],"0x1432":["UI","1","PrivateRecordUID"],"0x1500":["CS","1-8","ReferencedFileID"],"0x1504":["UL","1","MRDRDirectoryRecordOffset"],"0x1510":["UI","1","ReferencedSOPClassUIDInFile"],"0x1511":["UI","1","ReferencedSOPInstanceUIDInFile"],"0x1512":["UI","1","ReferencedTransferSyntaxUIDInFile"],"0x151A":["UI","1-n","ReferencedRelatedGeneralSOPClassUIDInFile"],"0x1600":["UL","1","NumberOfReferences"]},"0x0008":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["UL","1","LengthToEnd"],"0x0005":["CS","1-n","SpecificCharacterSet"],"0x0006":["SQ","1","LanguageCodeSequence"],"0x0008":["CS","2-n","ImageType"],"0x0010":["SH","1","RecognitionCode"],"0x0012":["DA","1","InstanceCreationDate"],"0x0013":["TM","1","InstanceCreationTime"],"0x0014":["UI","1","InstanceCreatorUID"],"0x0015":["DT","1","InstanceCoercionDateTime"],"0x0016":["UI","1","SOPClassUID"],"0x0018":["UI","1","SOPInstanceUID"],"0x001A":["UI","1-n","RelatedGeneralSOPClassUID"],"0x001B":["UI","1","OriginalSpecializedSOPClassUID"],"0x0020":["DA","1","StudyDate"],"0x0021":["DA","1","SeriesDate"],"0x0022":["DA","1","AcquisitionDate"],"0x0023":["DA","1","ContentDate"],"0x0024":["DA","1","OverlayDate"],"0x0025":["DA","1","CurveDate"],"0x002A":["DT","1","AcquisitionDateTime"],"0x0030":["TM","1","StudyTime"],"0x0031":["TM","1","SeriesTime"],"0x0032":["TM","1","AcquisitionTime"],"0x0033":["TM","1","ContentTime"],"0x0034":["TM","1","OverlayTime"],"0x0035":["TM","1","CurveTime"],"0x0040":["US","1","DataSetType"],"0x0041":["LO","1","DataSetSubtype"],"0x0042":["CS","1","NuclearMedicineSeriesType"],"0x0050":["SH","1","AccessionNumber"],"0x0051":["SQ","1","IssuerOfAccessionNumberSequence"],"0x0052":["CS","1","QueryRetrieveLevel"],"0x0053":["CS","1","QueryRetrieveView"],"0x0054":["AE","1-n","RetrieveAETitle"],"0x0056":["CS","1","InstanceAvailability"],"0x0058":["UI","1-n","FailedSOPInstanceUIDList"],"0x0060":["CS","1","Modality"],"0x0061":["CS","1-n","ModalitiesInStudy"],"0x0062":["UI","1-n","SOPClassesInStudy"],"0x0064":["CS","1","ConversionType"],"0x0068":["CS","1","PresentationIntentType"],"0x0070":["LO","1","Manufacturer"],"0x0080":["LO","1","InstitutionName"],"0x0081":["ST","1","InstitutionAddress"],"0x0082":["SQ","1","InstitutionCodeSequence"],"0x0090":["PN","1","ReferringPhysicianName"],"0x0092":["ST","1","ReferringPhysicianAddress"],"0x0094":["SH","1-n","ReferringPhysicianTelephoneNumbers"],"0x0096":["SQ","1","ReferringPhysicianIdentificationSequence"],"0x009C":["PN","1-n","ConsultingPhysicianName"],"0x009D":["SQ","1","ConsultingPhysicianIdentificationSequence"],"0x0100":["SH","1","CodeValue"],"0x0101":["LO","1","ExtendedCodeValue"],"0x0102":["SH","1","CodingSchemeDesignator"],"0x0103":["SH","1","CodingSchemeVersion"],"0x0104":["LO","1","CodeMeaning"],"0x0105":["CS","1","MappingResource"],"0x0106":["DT","1","ContextGroupVersion"],"0x0107":["DT","1","ContextGroupLocalVersion"],"0x0108":["LT","1","ExtendedCodeMeaning"],"0x010B":["CS","1","ContextGroupExtensionFlag"],"0x010C":["UI","1","CodingSchemeUID"],"0x010D":["UI","1","ContextGroupExtensionCreatorUID"],"0x010F":["CS","1","ContextIdentifier"],"0x0110":["SQ","1","CodingSchemeIdentificationSequence"],"0x0112":["LO","1","CodingSchemeRegistry"],"0x0114":["ST","1","CodingSchemeExternalID"],"0x0115":["ST","1","CodingSchemeName"],"0x0116":["ST","1","CodingSchemeResponsibleOrganization"],"0x0117":["UI","1","ContextUID"],"0x0118":["UI","1","MappingResourceUID"],"0x0119":["UC","1","LongCodeValue"],"0x0120":["UR","1","URNCodeValue"],"0x0121":["SQ","1","EquivalentCodeSequence"],"0x0201":["SH","1","TimezoneOffsetFromUTC"],"0x0300":["SQ","1","PrivateDataElementCharacteristicsSequence"],"0x0301":["US","1","PrivateGroupReference"],"0x0302":["LO","1","PrivateCreatorReference"],"0x0303":["CS","1","BlockIdentifyingInformationStatus"],"0x0304":["US","1-n","NonidentifyingPrivateElements"],"0x0306":["US","1-n","IdentifyingPrivateElements"],"0x0305":["SQ","1","DeidentificationActionSequence"],"0x0307":["CS","1","DeidentificationAction"],"0x1000":["AE","1","NetworkID"],"0x1010":["SH","1","StationName"],"0x1030":["LO","1","StudyDescription"],"0x1032":["SQ","1","ProcedureCodeSequence"],"0x103E":["LO","1","SeriesDescription"],"0x103F":["SQ","1","SeriesDescriptionCodeSequence"],"0x1040":["LO","1","InstitutionalDepartmentName"],"0x1048":["PN","1-n","PhysiciansOfRecord"],"0x1049":["SQ","1","PhysiciansOfRecordIdentificationSequence"],"0x1050":["PN","1-n","PerformingPhysicianName"],"0x1052":["SQ","1","PerformingPhysicianIdentificationSequence"],"0x1060":["PN","1-n","NameOfPhysiciansReadingStudy"],"0x1062":["SQ","1","PhysiciansReadingStudyIdentificationSequence"],"0x1070":["PN","1-n","OperatorsName"],"0x1072":["SQ","1","OperatorIdentificationSequence"],"0x1080":["LO","1-n","AdmittingDiagnosesDescription"],"0x1084":["SQ","1","AdmittingDiagnosesCodeSequence"],"0x1090":["LO","1","ManufacturerModelName"],"0x1100":["SQ","1","ReferencedResultsSequence"],"0x1110":["SQ","1","ReferencedStudySequence"],"0x1111":["SQ","1","ReferencedPerformedProcedureStepSequence"],"0x1115":["SQ","1","ReferencedSeriesSequence"],"0x1120":["SQ","1","ReferencedPatientSequence"],"0x1125":["SQ","1","ReferencedVisitSequence"],"0x1130":["SQ","1","ReferencedOverlaySequence"],"0x1134":["SQ","1","ReferencedStereometricInstanceSequence"],"0x113A":["SQ","1","ReferencedWaveformSequence"],"0x1140":["SQ","1","ReferencedImageSequence"],"0x1145":["SQ","1","ReferencedCurveSequence"],"0x114A":["SQ","1","ReferencedInstanceSequence"],"0x114B":["SQ","1","ReferencedRealWorldValueMappingInstanceSequence"],"0x1150":["UI","1","ReferencedSOPClassUID"],"0x1155":["UI","1","ReferencedSOPInstanceUID"],"0x115A":["UI","1-n","SOPClassesSupported"],"0x1160":["IS","1-n","ReferencedFrameNumber"],"0x1161":["UL","1-n","SimpleFrameList"],"0x1162":["UL","3-3n","CalculatedFrameList"],"0x1163":["FD","2","TimeRange"],"0x1164":["SQ","1","FrameExtractionSequence"],"0x1167":["UI","1","MultiFrameSourceSOPInstanceUID"],"0x1190":["UR","1","RetrieveURL"],"0x1195":["UI","1","TransactionUID"],"0x1196":["US","1","WarningReason"],"0x1197":["US","1","FailureReason"],"0x1198":["SQ","1","FailedSOPSequence"],"0x1199":["SQ","1","ReferencedSOPSequence"],"0x1200":["SQ","1","StudiesContainingOtherReferencedInstancesSequence"],"0x1250":["SQ","1","RelatedSeriesSequence"],"0x2110":["CS","1","LossyImageCompressionRetired"],"0x2111":["ST","1","DerivationDescription"],"0x2112":["SQ","1","SourceImageSequence"],"0x2120":["SH","1","StageName"],"0x2122":["IS","1","StageNumber"],"0x2124":["IS","1","NumberOfStages"],"0x2127":["SH","1","ViewName"],"0x2128":["IS","1","ViewNumber"],"0x2129":["IS","1","NumberOfEventTimers"],"0x212A":["IS","1","NumberOfViewsInStage"],"0x2130":["DS","1-n","EventElapsedTimes"],"0x2132":["LO","1-n","EventTimerNames"],"0x2133":["SQ","1","EventTimerSequence"],"0x2134":["FD","1","EventTimeOffset"],"0x2135":["SQ","1","EventCodeSequence"],"0x2142":["IS","1","StartTrim"],"0x2143":["IS","1","StopTrim"],"0x2144":["IS","1","RecommendedDisplayFrameRate"],"0x2200":["CS","1","TransducerPosition"],"0x2204":["CS","1","TransducerOrientation"],"0x2208":["CS","1","AnatomicStructure"],"0x2218":["SQ","1","AnatomicRegionSequence"],"0x2220":["SQ","1","AnatomicRegionModifierSequence"],"0x2228":["SQ","1","PrimaryAnatomicStructureSequence"],"0x2229":["SQ","1","AnatomicStructureSpaceOrRegionSequence"],"0x2230":["SQ","1","PrimaryAnatomicStructureModifierSequence"],"0x2240":["SQ","1","TransducerPositionSequence"],"0x2242":["SQ","1","TransducerPositionModifierSequence"],"0x2244":["SQ","1","TransducerOrientationSequence"],"0x2246":["SQ","1","TransducerOrientationModifierSequence"],"0x2251":["SQ","1","AnatomicStructureSpaceOrRegionCodeSequenceTrial"],"0x2253":["SQ","1","AnatomicPortalOfEntranceCodeSequenceTrial"],"0x2255":["SQ","1","AnatomicApproachDirectionCodeSequenceTrial"],"0x2256":["ST","1","AnatomicPerspectiveDescriptionTrial"],"0x2257":["SQ","1","AnatomicPerspectiveCodeSequenceTrial"],"0x2258":["ST","1","AnatomicLocationOfExaminingInstrumentDescriptionTrial"],"0x2259":["SQ","1","AnatomicLocationOfExaminingInstrumentCodeSequenceTrial"],"0x225A":["SQ","1","AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial"],"0x225C":["SQ","1","OnAxisBackgroundAnatomicStructureCodeSequenceTrial"],"0x3001":["SQ","1","AlternateRepresentationSequence"],"0x3010":["UI","1-n","IrradiationEventUID"],"0x3011":["SQ","1","SourceIrradiationEventSequence"],"0x3012":["UI","1","RadiopharmaceuticalAdministrationEventUID"],"0x4000":["LT","1","IdentifyingComments"],"0x9007":["CS","4","FrameType"],"0x9092":["SQ","1","ReferencedImageEvidenceSequence"],"0x9121":["SQ","1","ReferencedRawDataSequence"],"0x9123":["UI","1","CreatorVersionUID"],"0x9124":["SQ","1","DerivationImageSequence"],"0x9154":["SQ","1","SourceImageEvidenceSequence"],"0x9205":["CS","1","PixelPresentation"],"0x9206":["CS","1","VolumetricProperties"],"0x9207":["CS","1","VolumeBasedCalculationTechnique"],"0x9208":["CS","1","ComplexImageComponent"],"0x9209":["CS","1","AcquisitionContrast"],"0x9215":["SQ","1","DerivationCodeSequence"],"0x9237":["SQ","1","ReferencedPresentationStateSequence"],"0x9410":["SQ","1","ReferencedOtherPlaneSequence"],"0x9458":["SQ","1","FrameDisplaySequence"],"0x9459":["FL","1","RecommendedDisplayFrameRateInFloat"],"0x9460":["CS","1","SkipFrameRangeFlag"]},"0x0010":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["PN","1","PatientName"],"0x0020":["LO","1","PatientID"],"0x0021":["LO","1","IssuerOfPatientID"],"0x0022":["CS","1","TypeOfPatientID"],"0x0024":["SQ","1","IssuerOfPatientIDQualifiersSequence"],"0x0030":["DA","1","PatientBirthDate"],"0x0032":["TM","1","PatientBirthTime"],"0x0040":["CS","1","PatientSex"],"0x0050":["SQ","1","PatientInsurancePlanCodeSequence"],"0x0101":["SQ","1","PatientPrimaryLanguageCodeSequence"],"0x0102":["SQ","1","PatientPrimaryLanguageModifierCodeSequence"],"0x0200":["CS","1","QualityControlSubject"],"0x0201":["SQ","1","QualityControlSubjectTypeCodeSequence"],"0x1000":["LO","1-n","OtherPatientIDs"],"0x1001":["PN","1-n","OtherPatientNames"],"0x1002":["SQ","1","OtherPatientIDsSequence"],"0x1005":["PN","1","PatientBirthName"],"0x1010":["AS","1","PatientAge"],"0x1020":["DS","1","PatientSize"],"0x1021":["SQ","1","PatientSizeCodeSequence"],"0x1030":["DS","1","PatientWeight"],"0x1040":["LO","1","PatientAddress"],"0x1050":["LO","1-n","InsurancePlanIdentification"],"0x1060":["PN","1","PatientMotherBirthName"],"0x1080":["LO","1","MilitaryRank"],"0x1081":["LO","1","BranchOfService"],"0x1090":["LO","1","MedicalRecordLocator"],"0x1100":["SQ","1","ReferencedPatientPhotoSequence"],"0x2000":["LO","1-n","MedicalAlerts"],"0x2110":["LO","1-n","Allergies"],"0x2150":["LO","1","CountryOfResidence"],"0x2152":["LO","1","RegionOfResidence"],"0x2154":["SH","1-n","PatientTelephoneNumbers"],"0x2155":["LT","1","PatientTelecomInformation"],"0x2160":["SH","1","EthnicGroup"],"0x2180":["SH","1","Occupation"],"0x21A0":["CS","1","SmokingStatus"],"0x21B0":["LT","1","AdditionalPatientHistory"],"0x21C0":["US","1","PregnancyStatus"],"0x21D0":["DA","1","LastMenstrualDate"],"0x21F0":["LO","1","PatientReligiousPreference"],"0x2201":["LO","1","PatientSpeciesDescription"],"0x2202":["SQ","1","PatientSpeciesCodeSequence"],"0x2203":["CS","1","PatientSexNeutered"],"0x2210":["CS","1","AnatomicalOrientationType"],"0x2292":["LO","1","PatientBreedDescription"],"0x2293":["SQ","1","PatientBreedCodeSequence"],"0x2294":["SQ","1","BreedRegistrationSequence"],"0x2295":["LO","1","BreedRegistrationNumber"],"0x2296":["SQ","1","BreedRegistryCodeSequence"],"0x2297":["PN","1","ResponsiblePerson"],"0x2298":["CS","1","ResponsiblePersonRole"],"0x2299":["LO","1","ResponsibleOrganization"],"0x4000":["LT","1","PatientComments"],"0x9431":["FL","1","ExaminedBodyThickness"]},"0x0012":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["LO","1","ClinicalTrialSponsorName"],"0x0020":["LO","1","ClinicalTrialProtocolID"],"0x0021":["LO","1","ClinicalTrialProtocolName"],"0x0030":["LO","1","ClinicalTrialSiteID"],"0x0031":["LO","1","ClinicalTrialSiteName"],"0x0040":["LO","1","ClinicalTrialSubjectID"],"0x0042":["LO","1","ClinicalTrialSubjectReadingID"],"0x0050":["LO","1","ClinicalTrialTimePointID"],"0x0051":["ST","1","ClinicalTrialTimePointDescription"],"0x0060":["LO","1","ClinicalTrialCoordinatingCenterName"],"0x0062":["CS","1","PatientIdentityRemoved"],"0x0063":["LO","1-n","DeidentificationMethod"],"0x0064":["SQ","1","DeidentificationMethodCodeSequence"],"0x0071":["LO","1","ClinicalTrialSeriesID"],"0x0072":["LO","1","ClinicalTrialSeriesDescription"],"0x0081":["LO","1","ClinicalTrialProtocolEthicsCommitteeName"],"0x0082":["LO","1","ClinicalTrialProtocolEthicsCommitteeApprovalNumber"],"0x0083":["SQ","1","ConsentForClinicalTrialUseSequence"],"0x0084":["CS","1","DistributionType"],"0x0085":["CS","1","ConsentForDistributionFlag"]},"0x0014":{"0x0000":["UL","1","GenericGroupLength"],"0x0023":["ST","1-n","CADFileFormat"],"0x0024":["ST","1-n","ComponentReferenceSystem"],"0x0025":["ST","1-n","ComponentManufacturingProcedure"],"0x0028":["ST","1-n","ComponentManufacturer"],"0x0030":["DS","1-n","MaterialThickness"],"0x0032":["DS","1-n","MaterialPipeDiameter"],"0x0034":["DS","1-n","MaterialIsolationDiameter"],"0x0042":["ST","1-n","MaterialGrade"],"0x0044":["ST","1-n","MaterialPropertiesDescription"],"0x0045":["ST","1-n","MaterialPropertiesFileFormatRetired"],"0x0046":["LT","1","MaterialNotes"],"0x0050":["CS","1","ComponentShape"],"0x0052":["CS","1","CurvatureType"],"0x0054":["DS","1","OuterDiameter"],"0x0056":["DS","1","InnerDiameter"],"0x1010":["ST","1","ActualEnvironmentalConditions"],"0x1020":["DA","1","ExpiryDate"],"0x1040":["ST","1","EnvironmentalConditions"],"0x2002":["SQ","1","EvaluatorSequence"],"0x2004":["IS","1","EvaluatorNumber"],"0x2006":["PN","1","EvaluatorName"],"0x2008":["IS","1","EvaluationAttempt"],"0x2012":["SQ","1","IndicationSequence"],"0x2014":["IS","1","IndicationNumber"],"0x2016":["SH","1","IndicationLabel"],"0x2018":["ST","1","IndicationDescription"],"0x201A":["CS","1-n","IndicationType"],"0x201C":["CS","1","IndicationDisposition"],"0x201E":["SQ","1","IndicationROISequence"],"0x2030":["SQ","1","IndicationPhysicalPropertySequence"],"0x2032":["SH","1","PropertyLabel"],"0x2202":["IS","1","CoordinateSystemNumberOfAxes"],"0x2204":["SQ","1","CoordinateSystemAxesSequence"],"0x2206":["ST","1","CoordinateSystemAxisDescription"],"0x2208":["CS","1","CoordinateSystemDataSetMapping"],"0x220A":["IS","1","CoordinateSystemAxisNumber"],"0x220C":["CS","1","CoordinateSystemAxisType"],"0x220E":["CS","1","CoordinateSystemAxisUnits"],"0x2210":["OB","1","CoordinateSystemAxisValues"],"0x2220":["SQ","1","CoordinateSystemTransformSequence"],"0x2222":["ST","1","TransformDescription"],"0x2224":["IS","1","TransformNumberOfAxes"],"0x2226":["IS","1-n","TransformOrderOfAxes"],"0x2228":["CS","1","TransformedAxisUnits"],"0x222A":["DS","1-n","CoordinateSystemTransformRotationAndScaleMatrix"],"0x222C":["DS","1-n","CoordinateSystemTransformTranslationMatrix"],"0x3011":["DS","1","InternalDetectorFrameTime"],"0x3012":["DS","1","NumberOfFramesIntegrated"],"0x3020":["SQ","1","DetectorTemperatureSequence"],"0x3022":["ST","1","SensorName"],"0x3024":["DS","1","HorizontalOffsetOfSensor"],"0x3026":["DS","1","VerticalOffsetOfSensor"],"0x3028":["DS","1","SensorTemperature"],"0x3040":["SQ","1","DarkCurrentSequence"],"0x3050":["ox","1","DarkCurrentCounts"],"0x3060":["SQ","1","GainCorrectionReferenceSequence"],"0x3070":["ox","1","AirCounts"],"0x3071":["DS","1","KVUsedInGainCalibration"],"0x3072":["DS","1","MAUsedInGainCalibration"],"0x3073":["DS","1","NumberOfFramesUsedForIntegration"],"0x3074":["LO","1","FilterMaterialUsedInGainCalibration"],"0x3075":["DS","1","FilterThicknessUsedInGainCalibration"],"0x3076":["DA","1","DateOfGainCalibration"],"0x3077":["TM","1","TimeOfGainCalibration"],"0x3080":["OB","1","BadPixelImage"],"0x3099":["LT","1","CalibrationNotes"],"0x4002":["SQ","1","PulserEquipmentSequence"],"0x4004":["CS","1","PulserType"],"0x4006":["LT","1","PulserNotes"],"0x4008":["SQ","1","ReceiverEquipmentSequence"],"0x400A":["CS","1","AmplifierType"],"0x400C":["LT","1","ReceiverNotes"],"0x400E":["SQ","1","PreAmplifierEquipmentSequence"],"0x400F":["LT","1","PreAmplifierNotes"],"0x4010":["SQ","1","TransmitTransducerSequence"],"0x4011":["SQ","1","ReceiveTransducerSequence"],"0x4012":["US","1","NumberOfElements"],"0x4013":["CS","1","ElementShape"],"0x4014":["DS","1","ElementDimensionA"],"0x4015":["DS","1","ElementDimensionB"],"0x4016":["DS","1","ElementPitchA"],"0x4017":["DS","1","MeasuredBeamDimensionA"],"0x4018":["DS","1","MeasuredBeamDimensionB"],"0x4019":["DS","1","LocationOfMeasuredBeamDiameter"],"0x401A":["DS","1","NominalFrequency"],"0x401B":["DS","1","MeasuredCenterFrequency"],"0x401C":["DS","1","MeasuredBandwidth"],"0x401D":["DS","1","ElementPitchB"],"0x4020":["SQ","1","PulserSettingsSequence"],"0x4022":["DS","1","PulseWidth"],"0x4024":["DS","1","ExcitationFrequency"],"0x4026":["CS","1","ModulationType"],"0x4028":["DS","1","Damping"],"0x4030":["SQ","1","ReceiverSettingsSequence"],"0x4031":["DS","1","AcquiredSoundpathLength"],"0x4032":["CS","1","AcquisitionCompressionType"],"0x4033":["IS","1","AcquisitionSampleSize"],"0x4034":["DS","1","RectifierSmoothing"],"0x4035":["SQ","1","DACSequence"],"0x4036":["CS","1","DACType"],"0x4038":["DS","1-n","DACGainPoints"],"0x403A":["DS","1-n","DACTimePoints"],"0x403C":["DS","1-n","DACAmplitude"],"0x4040":["SQ","1","PreAmplifierSettingsSequence"],"0x4050":["SQ","1","TransmitTransducerSettingsSequence"],"0x4051":["SQ","1","ReceiveTransducerSettingsSequence"],"0x4052":["DS","1","IncidentAngle"],"0x4054":["ST","1","CouplingTechnique"],"0x4056":["ST","1","CouplingMedium"],"0x4057":["DS","1","CouplingVelocity"],"0x4058":["DS","1","ProbeCenterLocationX"],"0x4059":["DS","1","ProbeCenterLocationZ"],"0x405A":["DS","1","SoundPathLength"],"0x405C":["ST","1","DelayLawIdentifier"],"0x4060":["SQ","1","GateSettingsSequence"],"0x4062":["DS","1","GateThreshold"],"0x4064":["DS","1","VelocityOfSound"],"0x4070":["SQ","1","CalibrationSettingsSequence"],"0x4072":["ST","1","CalibrationProcedure"],"0x4074":["SH","1","ProcedureVersion"],"0x4076":["DA","1","ProcedureCreationDate"],"0x4078":["DA","1","ProcedureExpirationDate"],"0x407A":["DA","1","ProcedureLastModifiedDate"],"0x407C":["TM","1-n","CalibrationTime"],"0x407E":["DA","1-n","CalibrationDate"],"0x4080":["SQ","1","ProbeDriveEquipmentSequence"],"0x4081":["CS","1","DriveType"],"0x4082":["LT","1","ProbeDriveNotes"],"0x4083":["SQ","1","DriveProbeSequence"],"0x4084":["DS","1","ProbeInductance"],"0x4085":["DS","1","ProbeResistance"],"0x4086":["SQ","1","ReceiveProbeSequence"],"0x4087":["SQ","1","ProbeDriveSettingsSequence"],"0x4088":["DS","1","BridgeResistors"],"0x4089":["DS","1","ProbeOrientationAngle"],"0x408B":["DS","1","UserSelectedGainY"],"0x408C":["DS","1","UserSelectedPhase"],"0x408D":["DS","1","UserSelectedOffsetX"],"0x408E":["DS","1","UserSelectedOffsetY"],"0x4091":["SQ","1","ChannelSettingsSequence"],"0x4092":["DS","1","ChannelThreshold"],"0x409A":["SQ","1","ScannerSettingsSequence"],"0x409B":["ST","1","ScanProcedure"],"0x409C":["DS","1","TranslationRateX"],"0x409D":["DS","1","TranslationRateY"],"0x409F":["DS","1","ChannelOverlap"],"0x40A0":["LO","1","ImageQualityIndicatorType"],"0x40A1":["LO","1","ImageQualityIndicatorMaterial"],"0x40A2":["LO","1","ImageQualityIndicatorSize"],"0x5002":["IS","1","LINACEnergy"],"0x5004":["IS","1","LINACOutput"],"0x5100":["US","1","ActiveAperture"],"0x5101":["DS","1","TotalAperture"],"0x5102":["DS","1","ApertureElevation"],"0x5103":["DS","1","MainLobeAngle"],"0x5104":["DS","1","MainRoofAngle"],"0x5105":["CS","1","ConnectorType"],"0x5106":["SH","1","WedgeModelNumber"],"0x5107":["DS","1","WedgeAngleFloat"],"0x5108":["DS","1","WedgeRoofAngle"],"0x5109":["CS","1","WedgeElement1Position"],"0x510A":["DS","1","WedgeMaterialVelocity"],"0x510B":["SH","1","WedgeMaterial"],"0x510C":["DS","1","WedgeOffsetZ"],"0x510D":["DS","1","WedgeOriginOffsetX"],"0x510E":["DS","1","WedgeTimeDelay"],"0x510F":["SH","1","WedgeName"],"0x5110":["SH","1","WedgeManufacturerName"],"0x5111":["LO","1","WedgeDescription"],"0x5112":["DS","1","NominalBeamAngle"],"0x5113":["DS","1","WedgeOffsetX"],"0x5114":["DS","1","WedgeOffsetY"],"0x5115":["DS","1","WedgeTotalLength"],"0x5116":["DS","1","WedgeInContactLength"],"0x5117":["DS","1","WedgeFrontGap"],"0x5118":["DS","1","WedgeTotalHeight"],"0x5119":["DS","1","WedgeFrontHeight"],"0x511A":["DS","1","WedgeRearHeight"],"0x511B":["DS","1","WedgeTotalWidth"],"0x511C":["DS","1","WedgeInContactWidth"],"0x511D":["DS","1","WedgeChamferHeight"],"0x511E":["CS","1","WedgeCurve"],"0x511F":["DS","1","RadiusAlongWedge"]},"0x0018":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["LO","1","ContrastBolusAgent"],"0x0012":["SQ","1","ContrastBolusAgentSequence"],"0x0013":["FL","1","ContrastBolusT1Relaxivity"],"0x0014":["SQ","1","ContrastBolusAdministrationRouteSequence"],"0x0015":["CS","1","BodyPartExamined"],"0x0020":["CS","1-n","ScanningSequence"],"0x0021":["CS","1-n","SequenceVariant"],"0x0022":["CS","1-n","ScanOptions"],"0x0023":["CS","1","MRAcquisitionType"],"0x0024":["SH","1","SequenceName"],"0x0025":["CS","1","AngioFlag"],"0x0026":["SQ","1","InterventionDrugInformationSequence"],"0x0027":["TM","1","InterventionDrugStopTime"],"0x0028":["DS","1","InterventionDrugDose"],"0x0029":["SQ","1","InterventionDrugCodeSequence"],"0x002A":["SQ","1","AdditionalDrugSequence"],"0x0030":["LO","1-n","Radionuclide"],"0x0031":["LO","1","Radiopharmaceutical"],"0x0032":["DS","1","EnergyWindowCenterline"],"0x0033":["DS","1-n","EnergyWindowTotalWidth"],"0x0034":["LO","1","InterventionDrugName"],"0x0035":["TM","1","InterventionDrugStartTime"],"0x0036":["SQ","1","InterventionSequence"],"0x0037":["CS","1","TherapyType"],"0x0038":["CS","1","InterventionStatus"],"0x0039":["CS","1","TherapyDescription"],"0x003A":["ST","1","InterventionDescription"],"0x0040":["IS","1","CineRate"],"0x0042":["CS","1","InitialCineRunState"],"0x0050":["DS","1","SliceThickness"],"0x0060":["DS","1","KVP"],"0x0070":["IS","1","CountsAccumulated"],"0x0071":["CS","1","AcquisitionTerminationCondition"],"0x0072":["DS","1","EffectiveDuration"],"0x0073":["CS","1","AcquisitionStartCondition"],"0x0074":["IS","1","AcquisitionStartConditionData"],"0x0075":["IS","1","AcquisitionTerminationConditionData"],"0x0080":["DS","1","RepetitionTime"],"0x0081":["DS","1","EchoTime"],"0x0082":["DS","1","InversionTime"],"0x0083":["DS","1","NumberOfAverages"],"0x0084":["DS","1","ImagingFrequency"],"0x0085":["SH","1","ImagedNucleus"],"0x0086":["IS","1-n","EchoNumbers"],"0x0087":["DS","1","MagneticFieldStrength"],"0x0088":["DS","1","SpacingBetweenSlices"],"0x0089":["IS","1","NumberOfPhaseEncodingSteps"],"0x0090":["DS","1","DataCollectionDiameter"],"0x0091":["IS","1","EchoTrainLength"],"0x0093":["DS","1","PercentSampling"],"0x0094":["DS","1","PercentPhaseFieldOfView"],"0x0095":["DS","1","PixelBandwidth"],"0x1000":["LO","1","DeviceSerialNumber"],"0x1002":["UI","1","DeviceUID"],"0x1003":["LO","1","DeviceID"],"0x1004":["LO","1","PlateID"],"0x1005":["LO","1","GeneratorID"],"0x1006":["LO","1","GridID"],"0x1007":["LO","1","CassetteID"],"0x1008":["LO","1","GantryID"],"0x1010":["LO","1","SecondaryCaptureDeviceID"],"0x1011":["LO","1","HardcopyCreationDeviceID"],"0x1012":["DA","1","DateOfSecondaryCapture"],"0x1014":["TM","1","TimeOfSecondaryCapture"],"0x1016":["LO","1","SecondaryCaptureDeviceManufacturer"],"0x1017":["LO","1","HardcopyDeviceManufacturer"],"0x1018":["LO","1","SecondaryCaptureDeviceManufacturerModelName"],"0x1019":["LO","1-n","SecondaryCaptureDeviceSoftwareVersions"],"0x101A":["LO","1-n","HardcopyDeviceSoftwareVersion"],"0x101B":["LO","1","HardcopyDeviceManufacturerModelName"],"0x1020":["LO","1-n","SoftwareVersions"],"0x1022":["SH","1","VideoImageFormatAcquired"],"0x1023":["LO","1","DigitalImageFormatAcquired"],"0x1030":["LO","1","ProtocolName"],"0x1040":["LO","1","ContrastBolusRoute"],"0x1041":["DS","1","ContrastBolusVolume"],"0x1042":["TM","1","ContrastBolusStartTime"],"0x1043":["TM","1","ContrastBolusStopTime"],"0x1044":["DS","1","ContrastBolusTotalDose"],"0x1045":["IS","1","SyringeCounts"],"0x1046":["DS","1-n","ContrastFlowRate"],"0x1047":["DS","1-n","ContrastFlowDuration"],"0x1048":["CS","1","ContrastBolusIngredient"],"0x1049":["DS","1","ContrastBolusIngredientConcentration"],"0x1050":["DS","1","SpatialResolution"],"0x1060":["DS","1","TriggerTime"],"0x1061":["LO","1","TriggerSourceOrType"],"0x1062":["IS","1","NominalInterval"],"0x1063":["DS","1","FrameTime"],"0x1064":["LO","1","CardiacFramingType"],"0x1065":["DS","1-n","FrameTimeVector"],"0x1066":["DS","1","FrameDelay"],"0x1067":["DS","1","ImageTriggerDelay"],"0x1068":["DS","1","MultiplexGroupTimeOffset"],"0x1069":["DS","1","TriggerTimeOffset"],"0x106A":["CS","1","SynchronizationTrigger"],"0x106C":["US","2","SynchronizationChannel"],"0x106E":["UL","1","TriggerSamplePosition"],"0x1070":["LO","1","RadiopharmaceuticalRoute"],"0x1071":["DS","1","RadiopharmaceuticalVolume"],"0x1072":["TM","1","RadiopharmaceuticalStartTime"],"0x1073":["TM","1","RadiopharmaceuticalStopTime"],"0x1074":["DS","1","RadionuclideTotalDose"],"0x1075":["DS","1","RadionuclideHalfLife"],"0x1076":["DS","1","RadionuclidePositronFraction"],"0x1077":["DS","1","RadiopharmaceuticalSpecificActivity"],"0x1078":["DT","1","RadiopharmaceuticalStartDateTime"],"0x1079":["DT","1","RadiopharmaceuticalStopDateTime"],"0x1080":["CS","1","BeatRejectionFlag"],"0x1081":["IS","1","LowRRValue"],"0x1082":["IS","1","HighRRValue"],"0x1083":["IS","1","IntervalsAcquired"],"0x1084":["IS","1","IntervalsRejected"],"0x1085":["LO","1","PVCRejection"],"0x1086":["IS","1","SkipBeats"],"0x1088":["IS","1","HeartRate"],"0x1090":["IS","1","CardiacNumberOfImages"],"0x1094":["IS","1","TriggerWindow"],"0x1100":["DS","1","ReconstructionDiameter"],"0x1110":["DS","1","DistanceSourceToDetector"],"0x1111":["DS","1","DistanceSourceToPatient"],"0x1114":["DS","1","EstimatedRadiographicMagnificationFactor"],"0x1120":["DS","1","GantryDetectorTilt"],"0x1121":["DS","1","GantryDetectorSlew"],"0x1130":["DS","1","TableHeight"],"0x1131":["DS","1","TableTraverse"],"0x1134":["CS","1","TableMotion"],"0x1135":["DS","1-n","TableVerticalIncrement"],"0x1136":["DS","1-n","TableLateralIncrement"],"0x1137":["DS","1-n","TableLongitudinalIncrement"],"0x1138":["DS","1","TableAngle"],"0x113A":["CS","1","TableType"],"0x1140":["CS","1","RotationDirection"],"0x1141":["DS","1","AngularPosition"],"0x1142":["DS","1-n","RadialPosition"],"0x1143":["DS","1","ScanArc"],"0x1144":["DS","1","AngularStep"],"0x1145":["DS","1","CenterOfRotationOffset"],"0x1146":["DS","1-n","RotationOffset"],"0x1147":["CS","1","FieldOfViewShape"],"0x1149":["IS","1-2","FieldOfViewDimensions"],"0x1150":["IS","1","ExposureTime"],"0x1151":["IS","1","XRayTubeCurrent"],"0x1152":["IS","1","Exposure"],"0x1153":["IS","1","ExposureInuAs"],"0x1154":["DS","1","AveragePulseWidth"],"0x1155":["CS","1","RadiationSetting"],"0x1156":["CS","1","RectificationType"],"0x115A":["CS","1","RadiationMode"],"0x115E":["DS","1","ImageAndFluoroscopyAreaDoseProduct"],"0x1160":["SH","1","FilterType"],"0x1161":["LO","1-n","TypeOfFilters"],"0x1162":["DS","1","IntensifierSize"],"0x1164":["DS","2","ImagerPixelSpacing"],"0x1166":["CS","1-n","Grid"],"0x1170":["IS","1","GeneratorPower"],"0x1180":["SH","1","CollimatorGridName"],"0x1181":["CS","1","CollimatorType"],"0x1182":["IS","1-2","FocalDistance"],"0x1183":["DS","1-2","XFocusCenter"],"0x1184":["DS","1-2","YFocusCenter"],"0x1190":["DS","1-n","FocalSpots"],"0x1191":["CS","1","AnodeTargetMaterial"],"0x11A0":["DS","1","BodyPartThickness"],"0x11A2":["DS","1","CompressionForce"],"0x11A4":["LO","1","PaddleDescription"],"0x1200":["DA","1-n","DateOfLastCalibration"],"0x1201":["TM","1-n","TimeOfLastCalibration"],"0x1202":["DT","1","DateTimeOfLastCalibration"],"0x1210":["SH","1-n","ConvolutionKernel"],"0x1240":["IS","1-n","UpperLowerPixelValues"],"0x1242":["IS","1","ActualFrameDuration"],"0x1243":["IS","1","CountRate"],"0x1244":["US","1","PreferredPlaybackSequencing"],"0x1250":["SH","1","ReceiveCoilName"],"0x1251":["SH","1","TransmitCoilName"],"0x1260":["SH","1","PlateType"],"0x1261":["LO","1","PhosphorType"],"0x1300":["DS","1","ScanVelocity"],"0x1301":["CS","1-n","WholeBodyTechnique"],"0x1302":["IS","1","ScanLength"],"0x1310":["US","4","AcquisitionMatrix"],"0x1312":["CS","1","InPlanePhaseEncodingDirection"],"0x1314":["DS","1","FlipAngle"],"0x1315":["CS","1","VariableFlipAngleFlag"],"0x1316":["DS","1","SAR"],"0x1318":["DS","1","dBdt"],"0x1400":["LO","1","AcquisitionDeviceProcessingDescription"],"0x1401":["LO","1","AcquisitionDeviceProcessingCode"],"0x1402":["CS","1","CassetteOrientation"],"0x1403":["CS","1","CassetteSize"],"0x1404":["US","1","ExposuresOnPlate"],"0x1405":["IS","1","RelativeXRayExposure"],"0x1411":["DS","1","ExposureIndex"],"0x1412":["DS","1","TargetExposureIndex"],"0x1413":["DS","1","DeviationIndex"],"0x1450":["DS","1","ColumnAngulation"],"0x1460":["DS","1","TomoLayerHeight"],"0x1470":["DS","1","TomoAngle"],"0x1480":["DS","1","TomoTime"],"0x1490":["CS","1","TomoType"],"0x1491":["CS","1","TomoClass"],"0x1495":["IS","1","NumberOfTomosynthesisSourceImages"],"0x1500":["CS","1","PositionerMotion"],"0x1508":["CS","1","PositionerType"],"0x1510":["DS","1","PositionerPrimaryAngle"],"0x1511":["DS","1","PositionerSecondaryAngle"],"0x1520":["DS","1-n","PositionerPrimaryAngleIncrement"],"0x1521":["DS","1-n","PositionerSecondaryAngleIncrement"],"0x1530":["DS","1","DetectorPrimaryAngle"],"0x1531":["DS","1","DetectorSecondaryAngle"],"0x1600":["CS","1-3","ShutterShape"],"0x1602":["IS","1","ShutterLeftVerticalEdge"],"0x1604":["IS","1","ShutterRightVerticalEdge"],"0x1606":["IS","1","ShutterUpperHorizontalEdge"],"0x1608":["IS","1","ShutterLowerHorizontalEdge"],"0x1610":["IS","2","CenterOfCircularShutter"],"0x1612":["IS","1","RadiusOfCircularShutter"],"0x1620":["IS","2-2n","VerticesOfThePolygonalShutter"],"0x1622":["US","1","ShutterPresentationValue"],"0x1623":["US","1","ShutterOverlayGroup"],"0x1624":["US","3","ShutterPresentationColorCIELabValue"],"0x1700":["CS","1-3","CollimatorShape"],"0x1702":["IS","1","CollimatorLeftVerticalEdge"],"0x1704":["IS","1","CollimatorRightVerticalEdge"],"0x1706":["IS","1","CollimatorUpperHorizontalEdge"],"0x1708":["IS","1","CollimatorLowerHorizontalEdge"],"0x1710":["IS","2","CenterOfCircularCollimator"],"0x1712":["IS","1","RadiusOfCircularCollimator"],"0x1720":["IS","2-2n","VerticesOfThePolygonalCollimator"],"0x1800":["CS","1","AcquisitionTimeSynchronized"],"0x1801":["SH","1","TimeSource"],"0x1802":["CS","1","TimeDistributionProtocol"],"0x1803":["LO","1","NTPSourceAddress"],"0x2001":["IS","1-n","PageNumberVector"],"0x2002":["SH","1-n","FrameLabelVector"],"0x2003":["DS","1-n","FramePrimaryAngleVector"],"0x2004":["DS","1-n","FrameSecondaryAngleVector"],"0x2005":["DS","1-n","SliceLocationVector"],"0x2006":["SH","1-n","DisplayWindowLabelVector"],"0x2010":["DS","2","NominalScannedPixelSpacing"],"0x2020":["CS","1","DigitizingDeviceTransportDirection"],"0x2030":["DS","1","RotationOfScannedFilm"],"0x2041":["SQ","1","BiopsyTargetSequence"],"0x2042":["UI","1","TargetUID"],"0x2043":["FL","2","LocalizingCursorPosition"],"0x2044":["FL","3","CalculatedTargetPosition"],"0x2045":["SH","1","TargetLabel"],"0x2046":["FL","1","DisplayedZValue"],"0x3100":["CS","1","IVUSAcquisition"],"0x3101":["DS","1","IVUSPullbackRate"],"0x3102":["DS","1","IVUSGatedRate"],"0x3103":["IS","1","IVUSPullbackStartFrameNumber"],"0x3104":["IS","1","IVUSPullbackStopFrameNumber"],"0x3105":["IS","1-n","LesionNumber"],"0x4000":["LT","1","AcquisitionComments"],"0x5000":["SH","1-n","OutputPower"],"0x5010":["LO","1-n","TransducerData"],"0x5012":["DS","1","FocusDepth"],"0x5020":["LO","1","ProcessingFunction"],"0x5021":["LO","1","PostprocessingFunction"],"0x5022":["DS","1","MechanicalIndex"],"0x5024":["DS","1","BoneThermalIndex"],"0x5026":["DS","1","CranialThermalIndex"],"0x5027":["DS","1","SoftTissueThermalIndex"],"0x5028":["DS","1","SoftTissueFocusThermalIndex"],"0x5029":["DS","1","SoftTissueSurfaceThermalIndex"],"0x5030":["DS","1","DynamicRange"],"0x5040":["DS","1","TotalGain"],"0x5050":["IS","1","DepthOfScanField"],"0x5100":["CS","1","PatientPosition"],"0x5101":["CS","1","ViewPosition"],"0x5104":["SQ","1","ProjectionEponymousNameCodeSequence"],"0x5210":["DS","6","ImageTransformationMatrix"],"0x5212":["DS","3","ImageTranslationVector"],"0x6000":["DS","1","Sensitivity"],"0x6011":["SQ","1","SequenceOfUltrasoundRegions"],"0x6012":["US","1","RegionSpatialFormat"],"0x6014":["US","1","RegionDataType"],"0x6016":["UL","1","RegionFlags"],"0x6018":["UL","1","RegionLocationMinX0"],"0x601A":["UL","1","RegionLocationMinY0"],"0x601C":["UL","1","RegionLocationMaxX1"],"0x601E":["UL","1","RegionLocationMaxY1"],"0x6020":["SL","1","ReferencePixelX0"],"0x6022":["SL","1","ReferencePixelY0"],"0x6024":["US","1","PhysicalUnitsXDirection"],"0x6026":["US","1","PhysicalUnitsYDirection"],"0x6028":["FD","1","ReferencePixelPhysicalValueX"],"0x602A":["FD","1","ReferencePixelPhysicalValueY"],"0x602C":["FD","1","PhysicalDeltaX"],"0x602E":["FD","1","PhysicalDeltaY"],"0x6030":["UL","1","TransducerFrequency"],"0x6031":["CS","1","TransducerType"],"0x6032":["UL","1","PulseRepetitionFrequency"],"0x6034":["FD","1","DopplerCorrectionAngle"],"0x6036":["FD","1","SteeringAngle"],"0x6038":["UL","1","DopplerSampleVolumeXPositionRetired"],"0x6039":["SL","1","DopplerSampleVolumeXPosition"],"0x603A":["UL","1","DopplerSampleVolumeYPositionRetired"],"0x603B":["SL","1","DopplerSampleVolumeYPosition"],"0x603C":["UL","1","TMLinePositionX0Retired"],"0x603D":["SL","1","TMLinePositionX0"],"0x603E":["UL","1","TMLinePositionY0Retired"],"0x603F":["SL","1","TMLinePositionY0"],"0x6040":["UL","1","TMLinePositionX1Retired"],"0x6041":["SL","1","TMLinePositionX1"],"0x6042":["UL","1","TMLinePositionY1Retired"],"0x6043":["SL","1","TMLinePositionY1"],"0x6044":["US","1","PixelComponentOrganization"],"0x6046":["UL","1","PixelComponentMask"],"0x6048":["UL","1","PixelComponentRangeStart"],"0x604A":["UL","1","PixelComponentRangeStop"],"0x604C":["US","1","PixelComponentPhysicalUnits"],"0x604E":["US","1","PixelComponentDataType"],"0x6050":["UL","1","NumberOfTableBreakPoints"],"0x6052":["UL","1-n","TableOfXBreakPoints"],"0x6054":["FD","1-n","TableOfYBreakPoints"],"0x6056":["UL","1","NumberOfTableEntries"],"0x6058":["UL","1-n","TableOfPixelValues"],"0x605A":["FL","1-n","TableOfParameterValues"],"0x6060":["FL","1-n","RWaveTimeVector"],"0x7000":["CS","1","DetectorConditionsNominalFlag"],"0x7001":["DS","1","DetectorTemperature"],"0x7004":["CS","1","DetectorType"],"0x7005":["CS","1","DetectorConfiguration"],"0x7006":["LT","1","DetectorDescription"],"0x7008":["LT","1","DetectorMode"],"0x700A":["SH","1","DetectorID"],"0x700C":["DA","1","DateOfLastDetectorCalibration"],"0x700E":["TM","1","TimeOfLastDetectorCalibration"],"0x7010":["IS","1","ExposuresOnDetectorSinceLastCalibration"],"0x7011":["IS","1","ExposuresOnDetectorSinceManufactured"],"0x7012":["DS","1","DetectorTimeSinceLastExposure"],"0x7014":["DS","1","DetectorActiveTime"],"0x7016":["DS","1","DetectorActivationOffsetFromExposure"],"0x701A":["DS","2","DetectorBinning"],"0x7020":["DS","2","DetectorElementPhysicalSize"],"0x7022":["DS","2","DetectorElementSpacing"],"0x7024":["CS","1","DetectorActiveShape"],"0x7026":["DS","1-2","DetectorActiveDimensions"],"0x7028":["DS","2","DetectorActiveOrigin"],"0x702A":["LO","1","DetectorManufacturerName"],"0x702B":["LO","1","DetectorManufacturerModelName"],"0x7030":["DS","2","FieldOfViewOrigin"],"0x7032":["DS","1","FieldOfViewRotation"],"0x7034":["CS","1","FieldOfViewHorizontalFlip"],"0x7036":["FL","2","PixelDataAreaOriginRelativeToFOV"],"0x7038":["FL","1","PixelDataAreaRotationAngleRelativeToFOV"],"0x7040":["LT","1","GridAbsorbingMaterial"],"0x7041":["LT","1","GridSpacingMaterial"],"0x7042":["DS","1","GridThickness"],"0x7044":["DS","1","GridPitch"],"0x7046":["IS","2","GridAspectRatio"],"0x7048":["DS","1","GridPeriod"],"0x704C":["DS","1","GridFocalDistance"],"0x7050":["CS","1-n","FilterMaterial"],"0x7052":["DS","1-n","FilterThicknessMinimum"],"0x7054":["DS","1-n","FilterThicknessMaximum"],"0x7056":["FL","1-n","FilterBeamPathLengthMinimum"],"0x7058":["FL","1-n","FilterBeamPathLengthMaximum"],"0x7060":["CS","1","ExposureControlMode"],"0x7062":["LT","1","ExposureControlModeDescription"],"0x7064":["CS","1","ExposureStatus"],"0x7065":["DS","1","PhototimerSetting"],"0x8150":["DS","1","ExposureTimeInuS"],"0x8151":["DS","1","XRayTubeCurrentInuA"],"0x9004":["CS","1","ContentQualification"],"0x9005":["SH","1","PulseSequenceName"],"0x9006":["SQ","1","MRImagingModifierSequence"],"0x9008":["CS","1","EchoPulseSequence"],"0x9009":["CS","1","InversionRecovery"],"0x9010":["CS","1","FlowCompensation"],"0x9011":["CS","1","MultipleSpinEcho"],"0x9012":["CS","1","MultiPlanarExcitation"],"0x9014":["CS","1","PhaseContrast"],"0x9015":["CS","1","TimeOfFlightContrast"],"0x9016":["CS","1","Spoiling"],"0x9017":["CS","1","SteadyStatePulseSequence"],"0x9018":["CS","1","EchoPlanarPulseSequence"],"0x9019":["FD","1","TagAngleFirstAxis"],"0x9020":["CS","1","MagnetizationTransfer"],"0x9021":["CS","1","T2Preparation"],"0x9022":["CS","1","BloodSignalNulling"],"0x9024":["CS","1","SaturationRecovery"],"0x9025":["CS","1","SpectrallySelectedSuppression"],"0x9026":["CS","1","SpectrallySelectedExcitation"],"0x9027":["CS","1","SpatialPresaturation"],"0x9028":["CS","1","Tagging"],"0x9029":["CS","1","OversamplingPhase"],"0x9030":["FD","1","TagSpacingFirstDimension"],"0x9032":["CS","1","GeometryOfKSpaceTraversal"],"0x9033":["CS","1","SegmentedKSpaceTraversal"],"0x9034":["CS","1","RectilinearPhaseEncodeReordering"],"0x9035":["FD","1","TagThickness"],"0x9036":["CS","1","PartialFourierDirection"],"0x9037":["CS","1","CardiacSynchronizationTechnique"],"0x9041":["LO","1","ReceiveCoilManufacturerName"],"0x9042":["SQ","1","MRReceiveCoilSequence"],"0x9043":["CS","1","ReceiveCoilType"],"0x9044":["CS","1","QuadratureReceiveCoil"],"0x9045":["SQ","1","MultiCoilDefinitionSequence"],"0x9046":["LO","1","MultiCoilConfiguration"],"0x9047":["SH","1","MultiCoilElementName"],"0x9048":["CS","1","MultiCoilElementUsed"],"0x9049":["SQ","1","MRTransmitCoilSequence"],"0x9050":["LO","1","TransmitCoilManufacturerName"],"0x9051":["CS","1","TransmitCoilType"],"0x9052":["FD","1-2","SpectralWidth"],"0x9053":["FD","1-2","ChemicalShiftReference"],"0x9054":["CS","1","VolumeLocalizationTechnique"],"0x9058":["US","1","MRAcquisitionFrequencyEncodingSteps"],"0x9059":["CS","1","Decoupling"],"0x9060":["CS","1-2","DecoupledNucleus"],"0x9061":["FD","1-2","DecouplingFrequency"],"0x9062":["CS","1","DecouplingMethod"],"0x9063":["FD","1-2","DecouplingChemicalShiftReference"],"0x9064":["CS","1","KSpaceFiltering"],"0x9065":["CS","1-2","TimeDomainFiltering"],"0x9066":["US","1-2","NumberOfZeroFills"],"0x9067":["CS","1","BaselineCorrection"],"0x9069":["FD","1","ParallelReductionFactorInPlane"],"0x9070":["FD","1","CardiacRRIntervalSpecified"],"0x9073":["FD","1","AcquisitionDuration"],"0x9074":["DT","1","FrameAcquisitionDateTime"],"0x9075":["CS","1","DiffusionDirectionality"],"0x9076":["SQ","1","DiffusionGradientDirectionSequence"],"0x9077":["CS","1","ParallelAcquisition"],"0x9078":["CS","1","ParallelAcquisitionTechnique"],"0x9079":["FD","1-n","InversionTimes"],"0x9080":["ST","1","MetaboliteMapDescription"],"0x9081":["CS","1","PartialFourier"],"0x9082":["FD","1","EffectiveEchoTime"],"0x9083":["SQ","1","MetaboliteMapCodeSequence"],"0x9084":["SQ","1","ChemicalShiftSequence"],"0x9085":["CS","1","CardiacSignalSource"],"0x9087":["FD","1","DiffusionBValue"],"0x9089":["FD","3","DiffusionGradientOrientation"],"0x9090":["FD","3","VelocityEncodingDirection"],"0x9091":["FD","1","VelocityEncodingMinimumValue"],"0x9092":["SQ","1","VelocityEncodingAcquisitionSequence"],"0x9093":["US","1","NumberOfKSpaceTrajectories"],"0x9094":["CS","1","CoverageOfKSpace"],"0x9095":["UL","1","SpectroscopyAcquisitionPhaseRows"],"0x9096":["FD","1","ParallelReductionFactorInPlaneRetired"],"0x9098":["FD","1-2","TransmitterFrequency"],"0x9100":["CS","1-2","ResonantNucleus"],"0x9101":["CS","1","FrequencyCorrection"],"0x9103":["SQ","1","MRSpectroscopyFOVGeometrySequence"],"0x9104":["FD","1","SlabThickness"],"0x9105":["FD","3","SlabOrientation"],"0x9106":["FD","3","MidSlabPosition"],"0x9107":["SQ","1","MRSpatialSaturationSequence"],"0x9112":["SQ","1","MRTimingAndRelatedParametersSequence"],"0x9114":["SQ","1","MREchoSequence"],"0x9115":["SQ","1","MRModifierSequence"],"0x9117":["SQ","1","MRDiffusionSequence"],"0x9118":["SQ","1","CardiacSynchronizationSequence"],"0x9119":["SQ","1","MRAveragesSequence"],"0x9125":["SQ","1","MRFOVGeometrySequence"],"0x9126":["SQ","1","VolumeLocalizationSequence"],"0x9127":["UL","1","SpectroscopyAcquisitionDataColumns"],"0x9147":["CS","1","DiffusionAnisotropyType"],"0x9151":["DT","1","FrameReferenceDateTime"],"0x9152":["SQ","1","MRMetaboliteMapSequence"],"0x9155":["FD","1","ParallelReductionFactorOutOfPlane"],"0x9159":["UL","1","SpectroscopyAcquisitionOutOfPlanePhaseSteps"],"0x9166":["CS","1","BulkMotionStatus"],"0x9168":["FD","1","ParallelReductionFactorSecondInPlane"],"0x9169":["CS","1","CardiacBeatRejectionTechnique"],"0x9170":["CS","1","RespiratoryMotionCompensationTechnique"],"0x9171":["CS","1","RespiratorySignalSource"],"0x9172":["CS","1","BulkMotionCompensationTechnique"],"0x9173":["CS","1","BulkMotionSignalSource"],"0x9174":["CS","1","ApplicableSafetyStandardAgency"],"0x9175":["LO","1","ApplicableSafetyStandardDescription"],"0x9176":["SQ","1","OperatingModeSequence"],"0x9177":["CS","1","OperatingModeType"],"0x9178":["CS","1","OperatingMode"],"0x9179":["CS","1","SpecificAbsorptionRateDefinition"],"0x9180":["CS","1","GradientOutputType"],"0x9181":["FD","1","SpecificAbsorptionRateValue"],"0x9182":["FD","1","GradientOutput"],"0x9183":["CS","1","FlowCompensationDirection"],"0x9184":["FD","1","TaggingDelay"],"0x9185":["ST","1","RespiratoryMotionCompensationTechniqueDescription"],"0x9186":["SH","1","RespiratorySignalSourceID"],"0x9195":["FD","1","ChemicalShiftMinimumIntegrationLimitInHz"],"0x9196":["FD","1","ChemicalShiftMaximumIntegrationLimitInHz"],"0x9197":["SQ","1","MRVelocityEncodingSequence"],"0x9198":["CS","1","FirstOrderPhaseCorrection"],"0x9199":["CS","1","WaterReferencedPhaseCorrection"],"0x9200":["CS","1","MRSpectroscopyAcquisitionType"],"0x9214":["CS","1","RespiratoryCyclePosition"],"0x9217":["FD","1","VelocityEncodingMaximumValue"],"0x9218":["FD","1","TagSpacingSecondDimension"],"0x9219":["SS","1","TagAngleSecondAxis"],"0x9220":["FD","1","FrameAcquisitionDuration"],"0x9226":["SQ","1","MRImageFrameTypeSequence"],"0x9227":["SQ","1","MRSpectroscopyFrameTypeSequence"],"0x9231":["US","1","MRAcquisitionPhaseEncodingStepsInPlane"],"0x9232":["US","1","MRAcquisitionPhaseEncodingStepsOutOfPlane"],"0x9234":["UL","1","SpectroscopyAcquisitionPhaseColumns"],"0x9236":["CS","1","CardiacCyclePosition"],"0x9239":["SQ","1","SpecificAbsorptionRateSequence"],"0x9240":["US","1","RFEchoTrainLength"],"0x9241":["US","1","GradientEchoTrainLength"],"0x9250":["CS","1","ArterialSpinLabelingContrast"],"0x9251":["SQ","1","MRArterialSpinLabelingSequence"],"0x9252":["LO","1","ASLTechniqueDescription"],"0x9253":["US","1","ASLSlabNumber"],"0x9254":["FD","1","ASLSlabThickness"],"0x9255":["FD","3","ASLSlabOrientation"],"0x9256":["FD","3","ASLMidSlabPosition"],"0x9257":["CS","1","ASLContext"],"0x9258":["UL","1","ASLPulseTrainDuration"],"0x9259":["CS","1","ASLCrusherFlag"],"0x925A":["FD","1","ASLCrusherFlowLimit"],"0x925B":["LO","1","ASLCrusherDescription"],"0x925C":["CS","1","ASLBolusCutoffFlag"],"0x925D":["SQ","1","ASLBolusCutoffTimingSequence"],"0x925E":["LO","1","ASLBolusCutoffTechnique"],"0x925F":["UL","1","ASLBolusCutoffDelayTime"],"0x9260":["SQ","1","ASLSlabSequence"],"0x9295":["FD","1","ChemicalShiftMinimumIntegrationLimitInppm"],"0x9296":["FD","1","ChemicalShiftMaximumIntegrationLimitInppm"],"0x9297":["CS","1","WaterReferenceAcquisition"],"0x9298":["IS","1","EchoPeakPosition"],"0x9301":["SQ","1","CTAcquisitionTypeSequence"],"0x9302":["CS","1","AcquisitionType"],"0x9303":["FD","1","TubeAngle"],"0x9304":["SQ","1","CTAcquisitionDetailsSequence"],"0x9305":["FD","1","RevolutionTime"],"0x9306":["FD","1","SingleCollimationWidth"],"0x9307":["FD","1","TotalCollimationWidth"],"0x9308":["SQ","1","CTTableDynamicsSequence"],"0x9309":["FD","1","TableSpeed"],"0x9310":["FD","1","TableFeedPerRotation"],"0x9311":["FD","1","SpiralPitchFactor"],"0x9312":["SQ","1","CTGeometrySequence"],"0x9313":["FD","3","DataCollectionCenterPatient"],"0x9314":["SQ","1","CTReconstructionSequence"],"0x9315":["CS","1","ReconstructionAlgorithm"],"0x9316":["CS","1","ConvolutionKernelGroup"],"0x9317":["FD","2","ReconstructionFieldOfView"],"0x9318":["FD","3","ReconstructionTargetCenterPatient"],"0x9319":["FD","1","ReconstructionAngle"],"0x9320":["SH","1","ImageFilter"],"0x9321":["SQ","1","CTExposureSequence"],"0x9322":["FD","2","ReconstructionPixelSpacing"],"0x9323":["CS","1","ExposureModulationType"],"0x9324":["FD","1","EstimatedDoseSaving"],"0x9325":["SQ","1","CTXRayDetailsSequence"],"0x9326":["SQ","1","CTPositionSequence"],"0x9327":["FD","1","TablePosition"],"0x9328":["FD","1","ExposureTimeInms"],"0x9329":["SQ","1","CTImageFrameTypeSequence"],"0x9330":["FD","1","XRayTubeCurrentInmA"],"0x9332":["FD","1","ExposureInmAs"],"0x9333":["CS","1","ConstantVolumeFlag"],"0x9334":["CS","1","FluoroscopyFlag"],"0x9335":["FD","1","DistanceSourceToDataCollectionCenter"],"0x9337":["US","1","ContrastBolusAgentNumber"],"0x9338":["SQ","1","ContrastBolusIngredientCodeSequence"],"0x9340":["SQ","1","ContrastAdministrationProfileSequence"],"0x9341":["SQ","1","ContrastBolusUsageSequence"],"0x9342":["CS","1","ContrastBolusAgentAdministered"],"0x9343":["CS","1","ContrastBolusAgentDetected"],"0x9344":["CS","1","ContrastBolusAgentPhase"],"0x9345":["FD","1","CTDIvol"],"0x9346":["SQ","1","CTDIPhantomTypeCodeSequence"],"0x9351":["FL","1","CalciumScoringMassFactorPatient"],"0x9352":["FL","3","CalciumScoringMassFactorDevice"],"0x9353":["FL","1","EnergyWeightingFactor"],"0x9360":["SQ","1","CTAdditionalXRaySourceSequence"],"0x9401":["SQ","1","ProjectionPixelCalibrationSequence"],"0x9402":["FL","1","DistanceSourceToIsocenter"],"0x9403":["FL","1","DistanceObjectToTableTop"],"0x9404":["FL","2","ObjectPixelSpacingInCenterOfBeam"],"0x9405":["SQ","1","PositionerPositionSequence"],"0x9406":["SQ","1","TablePositionSequence"],"0x9407":["SQ","1","CollimatorShapeSequence"],"0x9410":["CS","1","PlanesInAcquisition"],"0x9412":["SQ","1","XAXRFFrameCharacteristicsSequence"],"0x9417":["SQ","1","FrameAcquisitionSequence"],"0x9420":["CS","1","XRayReceptorType"],"0x9423":["LO","1","AcquisitionProtocolName"],"0x9424":["LT","1","AcquisitionProtocolDescription"],"0x9425":["CS","1","ContrastBolusIngredientOpaque"],"0x9426":["FL","1","DistanceReceptorPlaneToDetectorHousing"],"0x9427":["CS","1","IntensifierActiveShape"],"0x9428":["FL","1-2","IntensifierActiveDimensions"],"0x9429":["FL","2","PhysicalDetectorSize"],"0x9430":["FL","2","PositionOfIsocenterProjection"],"0x9432":["SQ","1","FieldOfViewSequence"],"0x9433":["LO","1","FieldOfViewDescription"],"0x9434":["SQ","1","ExposureControlSensingRegionsSequence"],"0x9435":["CS","1","ExposureControlSensingRegionShape"],"0x9436":["SS","1","ExposureControlSensingRegionLeftVerticalEdge"],"0x9437":["SS","1","ExposureControlSensingRegionRightVerticalEdge"],"0x9438":["SS","1","ExposureControlSensingRegionUpperHorizontalEdge"],"0x9439":["SS","1","ExposureControlSensingRegionLowerHorizontalEdge"],"0x9440":["SS","2","CenterOfCircularExposureControlSensingRegion"],"0x9441":["US","1","RadiusOfCircularExposureControlSensingRegion"],"0x9442":["SS","2-n","VerticesOfThePolygonalExposureControlSensingRegion"],"0x9445":["","",""],"0x9447":["FL","1","ColumnAngulationPatient"],"0x9449":["FL","1","BeamAngle"],"0x9451":["SQ","1","FrameDetectorParametersSequence"],"0x9452":["FL","1","CalculatedAnatomyThickness"],"0x9455":["SQ","1","CalibrationSequence"],"0x9456":["SQ","1","ObjectThicknessSequence"],"0x9457":["CS","1","PlaneIdentification"],"0x9461":["FL","1-2","FieldOfViewDimensionsInFloat"],"0x9462":["SQ","1","IsocenterReferenceSystemSequence"],"0x9463":["FL","1","PositionerIsocenterPrimaryAngle"],"0x9464":["FL","1","PositionerIsocenterSecondaryAngle"],"0x9465":["FL","1","PositionerIsocenterDetectorRotationAngle"],"0x9466":["FL","1","TableXPositionToIsocenter"],"0x9467":["FL","1","TableYPositionToIsocenter"],"0x9468":["FL","1","TableZPositionToIsocenter"],"0x9469":["FL","1","TableHorizontalRotationAngle"],"0x9470":["FL","1","TableHeadTiltAngle"],"0x9471":["FL","1","TableCradleTiltAngle"],"0x9472":["SQ","1","FrameDisplayShutterSequence"],"0x9473":["FL","1","AcquiredImageAreaDoseProduct"],"0x9474":["CS","1","CArmPositionerTabletopRelationship"],"0x9476":["SQ","1","XRayGeometrySequence"],"0x9477":["SQ","1","IrradiationEventIdentificationSequence"],"0x9504":["SQ","1","XRay3DFrameTypeSequence"],"0x9506":["SQ","1","ContributingSourcesSequence"],"0x9507":["SQ","1","XRay3DAcquisitionSequence"],"0x9508":["FL","1","PrimaryPositionerScanArc"],"0x9509":["FL","1","SecondaryPositionerScanArc"],"0x9510":["FL","1","PrimaryPositionerScanStartAngle"],"0x9511":["FL","1","SecondaryPositionerScanStartAngle"],"0x9514":["FL","1","PrimaryPositionerIncrement"],"0x9515":["FL","1","SecondaryPositionerIncrement"],"0x9516":["DT","1","StartAcquisitionDateTime"],"0x9517":["DT","1","EndAcquisitionDateTime"],"0x9518":["SS","1","PrimaryPositionerIncrementSign"],"0x9519":["SS","1","SecondaryPositionerIncrementSign"],"0x9524":["LO","1","ApplicationName"],"0x9525":["LO","1","ApplicationVersion"],"0x9526":["LO","1","ApplicationManufacturer"],"0x9527":["CS","1","AlgorithmType"],"0x9528":["LO","1","AlgorithmDescription"],"0x9530":["SQ","1","XRay3DReconstructionSequence"],"0x9531":["LO","1","ReconstructionDescription"],"0x9538":["SQ","1","PerProjectionAcquisitionSequence"],"0x9541":["SQ","1","DetectorPositionSequence"],"0x9542":["SQ","1","XRayAcquisitionDoseSequence"],"0x9543":["FD","1","XRaySourceIsocenterPrimaryAngle"],"0x9544":["FD","1","XRaySourceIsocenterSecondaryAngle"],"0x9545":["FD","1","BreastSupportIsocenterPrimaryAngle"],"0x9546":["FD","1","BreastSupportIsocenterSecondaryAngle"],"0x9547":["FD","1","BreastSupportXPositionToIsocenter"],"0x9548":["FD","1","BreastSupportYPositionToIsocenter"],"0x9549":["FD","1","BreastSupportZPositionToIsocenter"],"0x9550":["FD","1","DetectorIsocenterPrimaryAngle"],"0x9551":["FD","1","DetectorIsocenterSecondaryAngle"],"0x9552":["FD","1","DetectorXPositionToIsocenter"],"0x9553":["FD","1","DetectorYPositionToIsocenter"],"0x9554":["FD","1","DetectorZPositionToIsocenter"],"0x9555":["SQ","1","XRayGridSequence"],"0x9556":["SQ","1","XRayFilterSequence"],"0x9557":["FD","3","DetectorActiveAreaTLHCPosition"],"0x9558":["FD","6","DetectorActiveAreaOrientation"],"0x9559":["CS","1","PositionerPrimaryAngleDirection"],"0x9601":["SQ","1","DiffusionBMatrixSequence"],"0x9602":["FD","1","DiffusionBValueXX"],"0x9603":["FD","1","DiffusionBValueXY"],"0x9604":["FD","1","DiffusionBValueXZ"],"0x9605":["FD","1","DiffusionBValueYY"],"0x9606":["FD","1","DiffusionBValueYZ"],"0x9607":["FD","1","DiffusionBValueZZ"],"0x9701":["DT","1","DecayCorrectionDateTime"],"0x9715":["FD","1","StartDensityThreshold"],"0x9716":["FD","1","StartRelativeDensityDifferenceThreshold"],"0x9717":["FD","1","StartCardiacTriggerCountThreshold"],"0x9718":["FD","1","StartRespiratoryTriggerCountThreshold"],"0x9719":["FD","1","TerminationCountsThreshold"],"0x9720":["FD","1","TerminationDensityThreshold"],"0x9721":["FD","1","TerminationRelativeDensityThreshold"],"0x9722":["FD","1","TerminationTimeThreshold"],"0x9723":["FD","1","TerminationCardiacTriggerCountThreshold"],"0x9724":["FD","1","TerminationRespiratoryTriggerCountThreshold"],"0x9725":["CS","1","DetectorGeometry"],"0x9726":["FD","1","TransverseDetectorSeparation"],"0x9727":["FD","1","AxialDetectorDimension"],"0x9729":["US","1","RadiopharmaceuticalAgentNumber"],"0x9732":["SQ","1","PETFrameAcquisitionSequence"],"0x9733":["SQ","1","PETDetectorMotionDetailsSequence"],"0x9734":["SQ","1","PETTableDynamicsSequence"],"0x9735":["SQ","1","PETPositionSequence"],"0x9736":["SQ","1","PETFrameCorrectionFactorsSequence"],"0x9737":["SQ","1","RadiopharmaceuticalUsageSequence"],"0x9738":["CS","1","AttenuationCorrectionSource"],"0x9739":["US","1","NumberOfIterations"],"0x9740":["US","1","NumberOfSubsets"],"0x9749":["SQ","1","PETReconstructionSequence"],"0x9751":["SQ","1","PETFrameTypeSequence"],"0x9755":["CS","1","TimeOfFlightInformationUsed"],"0x9756":["CS","1","ReconstructionType"],"0x9758":["CS","1","DecayCorrected"],"0x9759":["CS","1","AttenuationCorrected"],"0x9760":["CS","1","ScatterCorrected"],"0x9761":["CS","1","DeadTimeCorrected"],"0x9762":["CS","1","GantryMotionCorrected"],"0x9763":["CS","1","PatientMotionCorrected"],"0x9764":["CS","1","CountLossNormalizationCorrected"],"0x9765":["CS","1","RandomsCorrected"],"0x9766":["CS","1","NonUniformRadialSamplingCorrected"],"0x9767":["CS","1","SensitivityCalibrated"],"0x9768":["CS","1","DetectorNormalizationCorrection"],"0x9769":["CS","1","IterativeReconstructionMethod"],"0x9770":["CS","1","AttenuationCorrectionTemporalRelationship"],"0x9771":["SQ","1","PatientPhysiologicalStateSequence"],"0x9772":["SQ","1","PatientPhysiologicalStateCodeSequence"],"0x9801":["FD","1-n","DepthsOfFocus"],"0x9803":["SQ","1","ExcludedIntervalsSequence"],"0x9804":["DT","1","ExclusionStartDateTime"],"0x9805":["FD","1","ExclusionDuration"],"0x9806":["SQ","1","USImageDescriptionSequence"],"0x9807":["SQ","1","ImageDataTypeSequence"],"0x9808":["CS","1","DataType"],"0x9809":["SQ","1","TransducerScanPatternCodeSequence"],"0x980B":["CS","1","AliasedDataType"],"0x980C":["CS","1","PositionMeasuringDeviceUsed"],"0x980D":["SQ","1","TransducerGeometryCodeSequence"],"0x980E":["SQ","1","TransducerBeamSteeringCodeSequence"],"0x980F":["SQ","1","TransducerApplicationCodeSequence"],"0x9810":["xs","1","ZeroVelocityPixelValue"],"0xA001":["SQ","1","ContributingEquipmentSequence"],"0xA002":["DT","1","ContributionDateTime"],"0xA003":["ST","1","ContributionDescription"]},"0x0020":{"0x0000":["UL","1","GenericGroupLength"],"0x000D":["UI","1","StudyInstanceUID"],"0x000E":["UI","1","SeriesInstanceUID"],"0x0010":["SH","1","StudyID"],"0x0011":["IS","1","SeriesNumber"],"0x0012":["IS","1","AcquisitionNumber"],"0x0013":["IS","1","InstanceNumber"],"0x0014":["IS","1","IsotopeNumber"],"0x0015":["IS","1","PhaseNumber"],"0x0016":["IS","1","IntervalNumber"],"0x0017":["IS","1","TimeSlotNumber"],"0x0018":["IS","1","AngleNumber"],"0x0019":["IS","1","ItemNumber"],"0x0020":["CS","2","PatientOrientation"],"0x0022":["IS","1","OverlayNumber"],"0x0024":["IS","1","CurveNumber"],"0x0026":["IS","1","LUTNumber"],"0x0030":["DS","3","ImagePosition"],"0x0032":["DS","3","ImagePositionPatient"],"0x0035":["DS","6","ImageOrientation"],"0x0037":["DS","6","ImageOrientationPatient"],"0x0050":["DS","1","Location"],"0x0052":["UI","1","FrameOfReferenceUID"],"0x0060":["CS","1","Laterality"],"0x0062":["CS","1","ImageLaterality"],"0x0070":["LO","1","ImageGeometryType"],"0x0080":["CS","1-n","MaskingImage"],"0x00AA":["IS","1","ReportNumber"],"0x0100":["IS","1","TemporalPositionIdentifier"],"0x0105":["IS","1","NumberOfTemporalPositions"],"0x0110":["DS","1","TemporalResolution"],"0x0200":["UI","1","SynchronizationFrameOfReferenceUID"],"0x0242":["UI","1","SOPInstanceUIDOfConcatenationSource"],"0x1000":["IS","1","SeriesInStudy"],"0x1001":["IS","1","AcquisitionsInSeries"],"0x1002":["IS","1","ImagesInAcquisition"],"0x1003":["IS","1","ImagesInSeries"],"0x1004":["IS","1","AcquisitionsInStudy"],"0x1005":["IS","1","ImagesInStudy"],"0x1020":["LO","1-n","Reference"],"0x1040":["LO","1","PositionReferenceIndicator"],"0x1041":["DS","1","SliceLocation"],"0x1070":["IS","1-n","OtherStudyNumbers"],"0x1200":["IS","1","NumberOfPatientRelatedStudies"],"0x1202":["IS","1","NumberOfPatientRelatedSeries"],"0x1204":["IS","1","NumberOfPatientRelatedInstances"],"0x1206":["IS","1","NumberOfStudyRelatedSeries"],"0x1208":["IS","1","NumberOfStudyRelatedInstances"],"0x1209":["IS","1","NumberOfSeriesRelatedInstances"],"0x3100":["CS","1-n","SourceImageIDs"],"0x3401":["CS","1","ModifyingDeviceID"],"0x3402":["CS","1","ModifiedImageID"],"0x3403":["DA","1","ModifiedImageDate"],"0x3404":["LO","1","ModifyingDeviceManufacturer"],"0x3405":["TM","1","ModifiedImageTime"],"0x3406":["LO","1","ModifiedImageDescription"],"0x4000":["LT","1","ImageComments"],"0x5000":["AT","1-n","OriginalImageIdentification"],"0x5002":["LO","1-n","OriginalImageIdentificationNomenclature"],"0x9056":["SH","1","StackID"],"0x9057":["UL","1","InStackPositionNumber"],"0x9071":["SQ","1","FrameAnatomySequence"],"0x9072":["CS","1","FrameLaterality"],"0x9111":["SQ","1","FrameContentSequence"],"0x9113":["SQ","1","PlanePositionSequence"],"0x9116":["SQ","1","PlaneOrientationSequence"],"0x9128":["UL","1","TemporalPositionIndex"],"0x9153":["FD","1","NominalCardiacTriggerDelayTime"],"0x9154":["FL","1","NominalCardiacTriggerTimePriorToRPeak"],"0x9155":["FL","1","ActualCardiacTriggerTimePriorToRPeak"],"0x9156":["US","1","FrameAcquisitionNumber"],"0x9157":["UL","1-n","DimensionIndexValues"],"0x9158":["LT","1","FrameComments"],"0x9161":["UI","1","ConcatenationUID"],"0x9162":["US","1","InConcatenationNumber"],"0x9163":["US","1","InConcatenationTotalNumber"],"0x9164":["UI","1","DimensionOrganizationUID"],"0x9165":["AT","1","DimensionIndexPointer"],"0x9167":["AT","1","FunctionalGroupPointer"],"0x9170":["SQ","1","UnassignedSharedConvertedAttributesSequence"],"0x9171":["SQ","1","UnassignedPerFrameConvertedAttributesSequence"],"0x9172":["SQ","1","ConversionSourceAttributesSequence"],"0x9213":["LO","1","DimensionIndexPrivateCreator"],"0x9221":["SQ","1","DimensionOrganizationSequence"],"0x9222":["SQ","1","DimensionIndexSequence"],"0x9228":["UL","1","ConcatenationFrameOffsetNumber"],"0x9238":["LO","1","FunctionalGroupPrivateCreator"],"0x9241":["FL","1","NominalPercentageOfCardiacPhase"],"0x9245":["FL","1","NominalPercentageOfRespiratoryPhase"],"0x9246":["FL","1","StartingRespiratoryAmplitude"],"0x9247":["CS","1","StartingRespiratoryPhase"],"0x9248":["FL","1","EndingRespiratoryAmplitude"],"0x9249":["CS","1","EndingRespiratoryPhase"],"0x9250":["CS","1","RespiratoryTriggerType"],"0x9251":["FD","1","RRIntervalTimeNominal"],"0x9252":["FD","1","ActualCardiacTriggerDelayTime"],"0x9253":["SQ","1","RespiratorySynchronizationSequence"],"0x9254":["FD","1","RespiratoryIntervalTime"],"0x9255":["FD","1","NominalRespiratoryTriggerDelayTime"],"0x9256":["FD","1","RespiratoryTriggerDelayThreshold"],"0x9257":["FD","1","ActualRespiratoryTriggerDelayTime"],"0x9301":["FD","3","ImagePositionVolume"],"0x9302":["FD","6","ImageOrientationVolume"],"0x9307":["CS","1","UltrasoundAcquisitionGeometry"],"0x9308":["FD","3","ApexPosition"],"0x9309":["FD","16","VolumeToTransducerMappingMatrix"],"0x930A":["FD","16","VolumeToTableMappingMatrix"],"0x930B":["CS","1","VolumeToTransducerRelationship"],"0x930C":["CS","1","PatientFrameOfReferenceSource"],"0x930D":["FD","1","TemporalPositionTimeOffset"],"0x930E":["SQ","1","PlanePositionVolumeSequence"],"0x930F":["SQ","1","PlaneOrientationVolumeSequence"],"0x9310":["SQ","1","TemporalPositionSequence"],"0x9311":["CS","1","DimensionOrganizationType"],"0x9312":["UI","1","VolumeFrameOfReferenceUID"],"0x9313":["UI","1","TableFrameOfReferenceUID"],"0x9421":["LO","1","DimensionDescriptionLabel"],"0x9450":["SQ","1","PatientOrientationInFrameSequence"],"0x9453":["LO","1","FrameLabel"],"0x9518":["US","1-n","AcquisitionIndex"],"0x9529":["SQ","1","ContributingSOPInstancesReferenceSequence"],"0x9536":["US","1","ReconstructionIndex"]},"0x0022":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["US","1","LightPathFilterPassThroughWavelength"],"0x0002":["US","2","LightPathFilterPassBand"],"0x0003":["US","1","ImagePathFilterPassThroughWavelength"],"0x0004":["US","2","ImagePathFilterPassBand"],"0x0005":["CS","1","PatientEyeMovementCommanded"],"0x0006":["SQ","1","PatientEyeMovementCommandCodeSequence"],"0x0007":["FL","1","SphericalLensPower"],"0x0008":["FL","1","CylinderLensPower"],"0x0009":["FL","1","CylinderAxis"],"0x000A":["FL","1","EmmetropicMagnification"],"0x000B":["FL","1","IntraOcularPressure"],"0x000C":["FL","1","HorizontalFieldOfView"],"0x000D":["CS","1","PupilDilated"],"0x000E":["FL","1","DegreeOfDilation"],"0x0010":["FL","1","StereoBaselineAngle"],"0x0011":["FL","1","StereoBaselineDisplacement"],"0x0012":["FL","1","StereoHorizontalPixelOffset"],"0x0013":["FL","1","StereoVerticalPixelOffset"],"0x0014":["FL","1","StereoRotation"],"0x0015":["SQ","1","AcquisitionDeviceTypeCodeSequence"],"0x0016":["SQ","1","IlluminationTypeCodeSequence"],"0x0017":["SQ","1","LightPathFilterTypeStackCodeSequence"],"0x0018":["SQ","1","ImagePathFilterTypeStackCodeSequence"],"0x0019":["SQ","1","LensesCodeSequence"],"0x001A":["SQ","1","ChannelDescriptionCodeSequence"],"0x001B":["SQ","1","RefractiveStateSequence"],"0x001C":["SQ","1","MydriaticAgentCodeSequence"],"0x001D":["SQ","1","RelativeImagePositionCodeSequence"],"0x001E":["FL","1","CameraAngleOfView"],"0x0020":["SQ","1","StereoPairsSequence"],"0x0021":["SQ","1","LeftImageSequence"],"0x0022":["SQ","1","RightImageSequence"],"0x0028":["CS","1","StereoPairsPresent"],"0x0030":["FL","1","AxialLengthOfTheEye"],"0x0031":["SQ","1","OphthalmicFrameLocationSequence"],"0x0032":["FL","2-2n","ReferenceCoordinates"],"0x0035":["FL","1","DepthSpatialResolution"],"0x0036":["FL","1","MaximumDepthDistortion"],"0x0037":["FL","1","AlongScanSpatialResolution"],"0x0038":["FL","1","MaximumAlongScanDistortion"],"0x0039":["CS","1","OphthalmicImageOrientation"],"0x0041":["FL","1","DepthOfTransverseImage"],"0x0042":["SQ","1","MydriaticAgentConcentrationUnitsSequence"],"0x0048":["FL","1","AcrossScanSpatialResolution"],"0x0049":["FL","1","MaximumAcrossScanDistortion"],"0x004E":["DS","1","MydriaticAgentConcentration"],"0x0055":["FL","1","IlluminationWaveLength"],"0x0056":["FL","1","IlluminationPower"],"0x0057":["FL","1","IlluminationBandwidth"],"0x0058":["SQ","1","MydriaticAgentSequence"],"0x1007":["SQ","1","OphthalmicAxialMeasurementsRightEyeSequence"],"0x1008":["SQ","1","OphthalmicAxialMeasurementsLeftEyeSequence"],"0x1009":["CS","1","OphthalmicAxialMeasurementsDeviceType"],"0x1010":["CS","1","OphthalmicAxialLengthMeasurementsType"],"0x1012":["SQ","1","OphthalmicAxialLengthSequence"],"0x1019":["FL","1","OphthalmicAxialLength"],"0x1024":["SQ","1","LensStatusCodeSequence"],"0x1025":["SQ","1","VitreousStatusCodeSequence"],"0x1028":["SQ","1","IOLFormulaCodeSequence"],"0x1029":["LO","1","IOLFormulaDetail"],"0x1033":["FL","1","KeratometerIndex"],"0x1035":["SQ","1","SourceOfOphthalmicAxialLengthCodeSequence"],"0x1037":["FL","1","TargetRefraction"],"0x1039":["CS","1","RefractiveProcedureOccurred"],"0x1040":["SQ","1","RefractiveSurgeryTypeCodeSequence"],"0x1044":["SQ","1","OphthalmicUltrasoundMethodCodeSequence"],"0x1050":["SQ","1","OphthalmicAxialLengthMeasurementsSequence"],"0x1053":["FL","1","IOLPower"],"0x1054":["FL","1","PredictedRefractiveError"],"0x1059":["FL","1","OphthalmicAxialLengthVelocity"],"0x1065":["LO","1","LensStatusDescription"],"0x1066":["LO","1","VitreousStatusDescription"],"0x1090":["SQ","1","IOLPowerSequence"],"0x1092":["SQ","1","LensConstantSequence"],"0x1093":["LO","1","IOLManufacturer"],"0x1094":["LO","1","LensConstantDescription"],"0x1095":["LO","1","ImplantName"],"0x1096":["SQ","1","KeratometryMeasurementTypeCodeSequence"],"0x1097":["LO","1","ImplantPartNumber"],"0x1100":["SQ","1","ReferencedOphthalmicAxialMeasurementsSequence"],"0x1101":["SQ","1","OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence"],"0x1103":["SQ","1","RefractiveErrorBeforeRefractiveSurgeryCodeSequence"],"0x1121":["FL","1","IOLPowerForExactEmmetropia"],"0x1122":["FL","1","IOLPowerForExactTargetRefraction"],"0x1125":["SQ","1","AnteriorChamberDepthDefinitionCodeSequence"],"0x1127":["SQ","1","LensThicknessSequence"],"0x1128":["SQ","1","AnteriorChamberDepthSequence"],"0x1130":["FL","1","LensThickness"],"0x1131":["FL","1","AnteriorChamberDepth"],"0x1132":["SQ","1","SourceOfLensThicknessDataCodeSequence"],"0x1133":["SQ","1","SourceOfAnteriorChamberDepthDataCodeSequence"],"0x1134":["SQ","1","SourceOfRefractiveMeasurementsSequence"],"0x1135":["SQ","1","SourceOfRefractiveMeasurementsCodeSequence"],"0x1140":["CS","1","OphthalmicAxialLengthMeasurementModified"],"0x1150":["SQ","1","OphthalmicAxialLengthDataSourceCodeSequence"],"0x1153":["SQ","1","OphthalmicAxialLengthAcquisitionMethodCodeSequence"],"0x1155":["FL","1","SignalToNoiseRatio"],"0x1159":["LO","1","OphthalmicAxialLengthDataSourceDescription"],"0x1210":["SQ","1","OphthalmicAxialLengthMeasurementsTotalLengthSequence"],"0x1211":["SQ","1","OphthalmicAxialLengthMeasurementsSegmentalLengthSequence"],"0x1212":["SQ","1","OphthalmicAxialLengthMeasurementsLengthSummationSequence"],"0x1220":["SQ","1","UltrasoundOphthalmicAxialLengthMeasurementsSequence"],"0x1225":["SQ","1","OpticalOphthalmicAxialLengthMeasurementsSequence"],"0x1230":["SQ","1","UltrasoundSelectedOphthalmicAxialLengthSequence"],"0x1250":["SQ","1","OphthalmicAxialLengthSelectionMethodCodeSequence"],"0x1255":["SQ","1","OpticalSelectedOphthalmicAxialLengthSequence"],"0x1257":["SQ","1","SelectedSegmentalOphthalmicAxialLengthSequence"],"0x1260":["SQ","1","SelectedTotalOphthalmicAxialLengthSequence"],"0x1262":["SQ","1","OphthalmicAxialLengthQualityMetricSequence"],"0x1265":["SQ","1","OphthalmicAxialLengthQualityMetricTypeCodeSequence"],"0x1273":["LO","1","OphthalmicAxialLengthQualityMetricTypeDescription"],"0x1300":["SQ","1","IntraocularLensCalculationsRightEyeSequence"],"0x1310":["SQ","1","IntraocularLensCalculationsLeftEyeSequence"],"0x1330":["SQ","1","ReferencedOphthalmicAxialLengthMeasurementQCImageSequence"],"0x1415":["CS","1","OphthalmicMappingDeviceType"],"0x1420":["SQ","1","AcquisitionMethodCodeSequence"],"0x1423":["SQ","1","AcquisitionMethodAlgorithmSequence"],"0x1436":["SQ","1","OphthalmicThicknessMapTypeCodeSequence"],"0x1443":["SQ","1","OphthalmicThicknessMappingNormalsSequence"],"0x1445":["SQ","1","RetinalThicknessDefinitionCodeSequence"],"0x1450":["SQ","1","PixelValueMappingToCodedConceptSequence"],"0x1452":["xs","1","MappedPixelValue"],"0x1454":["LO","1","PixelValueMappingExplanation"],"0x1458":["SQ","1","OphthalmicThicknessMapQualityThresholdSequence"],"0x1460":["FL","1","OphthalmicThicknessMapThresholdQualityRating"],"0x1463":["FL","2","AnatomicStructureReferencePoint"],"0x1465":["SQ","1","RegistrationToLocalizerSequence"],"0x1466":["CS","1","RegisteredLocalizerUnits"],"0x1467":["FL","2","RegisteredLocalizerTopLeftHandCorner"],"0x1468":["FL","2","RegisteredLocalizerBottomRightHandCorner"],"0x1470":["SQ","1","OphthalmicThicknessMapQualityRatingSequence"],"0x1472":["SQ","1","RelevantOPTAttributesSequence"],"0x1512":["SQ","1","TransformationMethodCodeSequence"],"0x1513":["SQ","1","TransformationAlgorithmSequence"],"0x1515":["CS","1","OphthalmicAxialLengthMethod"],"0x1517":["FL","1","OphthalmicFOV"],"0x1518":["SQ","1","TwoDimensionalToThreeDimensionalMapSequence"],"0x1525":["SQ","1","WideFieldOphthalmicPhotographyQualityRatingSequence"],"0x1526":["SQ","1","WideFieldOphthalmicPhotographyQualityThresholdSequence"],"0x1527":["FL","1","WideFieldOphthalmicPhotographyThresholdQualityRating"],"0x1528":["FL","1","XCoordinatesCenterPixelViewAngle"],"0x1529":["FL","1","YCoordinatesCenterPixelViewAngle"],"0x1530":["UL","1","NumberOfMapPoints"],"0x1531":["OF","1","TwoDimensionalToThreeDimensionalMapData"]},"0x0024":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["FL","1","VisualFieldHorizontalExtent"],"0x0011":["FL","1","VisualFieldVerticalExtent"],"0x0012":["CS","1","VisualFieldShape"],"0x0016":["SQ","1","ScreeningTestModeCodeSequence"],"0x0018":["FL","1","MaximumStimulusLuminance"],"0x0020":["FL","1","BackgroundLuminance"],"0x0021":["SQ","1","StimulusColorCodeSequence"],"0x0024":["SQ","1","BackgroundIlluminationColorCodeSequence"],"0x0025":["FL","1","StimulusArea"],"0x0028":["FL","1","StimulusPresentationTime"],"0x0032":["SQ","1","FixationSequence"],"0x0033":["SQ","1","FixationMonitoringCodeSequence"],"0x0034":["SQ","1","VisualFieldCatchTrialSequence"],"0x0035":["US","1","FixationCheckedQuantity"],"0x0036":["US","1","PatientNotProperlyFixatedQuantity"],"0x0037":["CS","1","PresentedVisualStimuliDataFlag"],"0x0038":["US","1","NumberOfVisualStimuli"],"0x0039":["CS","1","ExcessiveFixationLossesDataFlag"],"0x0040":["CS","1","ExcessiveFixationLosses"],"0x0042":["US","1","StimuliRetestingQuantity"],"0x0044":["LT","1","CommentsOnPatientPerformanceOfVisualField"],"0x0045":["CS","1","FalseNegativesEstimateFlag"],"0x0046":["FL","1","FalseNegativesEstimate"],"0x0048":["US","1","NegativeCatchTrialsQuantity"],"0x0050":["US","1","FalseNegativesQuantity"],"0x0051":["CS","1","ExcessiveFalseNegativesDataFlag"],"0x0052":["CS","1","ExcessiveFalseNegatives"],"0x0053":["CS","1","FalsePositivesEstimateFlag"],"0x0054":["FL","1","FalsePositivesEstimate"],"0x0055":["CS","1","CatchTrialsDataFlag"],"0x0056":["US","1","PositiveCatchTrialsQuantity"],"0x0057":["CS","1","TestPointNormalsDataFlag"],"0x0058":["SQ","1","TestPointNormalsSequence"],"0x0059":["CS","1","GlobalDeviationProbabilityNormalsFlag"],"0x0060":["US","1","FalsePositivesQuantity"],"0x0061":["CS","1","ExcessiveFalsePositivesDataFlag"],"0x0062":["CS","1","ExcessiveFalsePositives"],"0x0063":["CS","1","VisualFieldTestNormalsFlag"],"0x0064":["SQ","1","ResultsNormalsSequence"],"0x0065":["SQ","1","AgeCorrectedSensitivityDeviationAlgorithmSequence"],"0x0066":["FL","1","GlobalDeviationFromNormal"],"0x0067":["SQ","1","GeneralizedDefectSensitivityDeviationAlgorithmSequence"],"0x0068":["FL","1","LocalizedDeviationFromNormal"],"0x0069":["LO","1","PatientReliabilityIndicator"],"0x0070":["FL","1","VisualFieldMeanSensitivity"],"0x0071":["FL","1","GlobalDeviationProbability"],"0x0072":["CS","1","LocalDeviationProbabilityNormalsFlag"],"0x0073":["FL","1","LocalizedDeviationProbability"],"0x0074":["CS","1","ShortTermFluctuationCalculated"],"0x0075":["FL","1","ShortTermFluctuation"],"0x0076":["CS","1","ShortTermFluctuationProbabilityCalculated"],"0x0077":["FL","1","ShortTermFluctuationProbability"],"0x0078":["CS","1","CorrectedLocalizedDeviationFromNormalCalculated"],"0x0079":["FL","1","CorrectedLocalizedDeviationFromNormal"],"0x0080":["CS","1","CorrectedLocalizedDeviationFromNormalProbabilityCalculated"],"0x0081":["FL","1","CorrectedLocalizedDeviationFromNormalProbability"],"0x0083":["SQ","1","GlobalDeviationProbabilitySequence"],"0x0085":["SQ","1","LocalizedDeviationProbabilitySequence"],"0x0086":["CS","1","FovealSensitivityMeasured"],"0x0087":["FL","1","FovealSensitivity"],"0x0088":["FL","1","VisualFieldTestDuration"],"0x0089":["SQ","1","VisualFieldTestPointSequence"],"0x0090":["FL","1","VisualFieldTestPointXCoordinate"],"0x0091":["FL","1","VisualFieldTestPointYCoordinate"],"0x0092":["FL","1","AgeCorrectedSensitivityDeviationValue"],"0x0093":["CS","1","StimulusResults"],"0x0094":["FL","1","SensitivityValue"],"0x0095":["CS","1","RetestStimulusSeen"],"0x0096":["FL","1","RetestSensitivityValue"],"0x0097":["SQ","1","VisualFieldTestPointNormalsSequence"],"0x0098":["FL","1","QuantifiedDefect"],"0x0100":["FL","1","AgeCorrectedSensitivityDeviationProbabilityValue"],"0x0102":["CS","1","GeneralizedDefectCorrectedSensitivityDeviationFlag"],"0x0103":["FL","1","GeneralizedDefectCorrectedSensitivityDeviationValue"],"0x0104":["FL","1","GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue"],"0x0105":["FL","1","MinimumSensitivityValue"],"0x0106":["CS","1","BlindSpotLocalized"],"0x0107":["FL","1","BlindSpotXCoordinate"],"0x0108":["FL","1","BlindSpotYCoordinate"],"0x0110":["SQ","1","VisualAcuityMeasurementSequence"],"0x0112":["SQ","1","RefractiveParametersUsedOnPatientSequence"],"0x0113":["CS","1","MeasurementLaterality"],"0x0114":["SQ","1","OphthalmicPatientClinicalInformationLeftEyeSequence"],"0x0115":["SQ","1","OphthalmicPatientClinicalInformationRightEyeSequence"],"0x0117":["CS","1","FovealPointNormativeDataFlag"],"0x0118":["FL","1","FovealPointProbabilityValue"],"0x0120":["CS","1","ScreeningBaselineMeasured"],"0x0122":["SQ","1","ScreeningBaselineMeasuredSequence"],"0x0124":["CS","1","ScreeningBaselineType"],"0x0126":["FL","1","ScreeningBaselineValue"],"0x0202":["LO","1","AlgorithmSource"],"0x0306":["LO","1","DataSetName"],"0x0307":["LO","1","DataSetVersion"],"0x0308":["LO","1","DataSetSource"],"0x0309":["LO","1","DataSetDescription"],"0x0317":["SQ","1","VisualFieldTestReliabilityGlobalIndexSequence"],"0x0320":["SQ","1","VisualFieldGlobalResultsIndexSequence"],"0x0325":["SQ","1","DataObservationSequence"],"0x0338":["CS","1","IndexNormalsFlag"],"0x0341":["FL","1","IndexProbability"],"0x0344":["SQ","1","IndexProbabilitySequence"]},"0x0028":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["US","1","SamplesPerPixel"],"0x0003":["US","1","SamplesPerPixelUsed"],"0x0004":["CS","1","PhotometricInterpretation"],"0x0005":["US","1","ImageDimensions"],"0x0006":["US","1","PlanarConfiguration"],"0x0008":["IS","1","NumberOfFrames"],"0x0009":["AT","1-n","FrameIncrementPointer"],"0x000A":["AT","1-n","FrameDimensionPointer"],"0x0010":["US","1","Rows"],"0x0011":["US","1","Columns"],"0x0012":["US","1","Planes"],"0x0014":["US","1","UltrasoundColorDataPresent"],"0x0020":["","",""],"0x0030":["DS","2","PixelSpacing"],"0x0031":["DS","2","ZoomFactor"],"0x0032":["DS","2","ZoomCenter"],"0x0034":["IS","2","PixelAspectRatio"],"0x0040":["CS","1","ImageFormat"],"0x0050":["LO","1-n","ManipulatedImage"],"0x0051":["CS","1-n","CorrectedImage"],"0x005F":["LO","1","CompressionRecognitionCode"],"0x0060":["CS","1","CompressionCode"],"0x0061":["SH","1","CompressionOriginator"],"0x0062":["LO","1","CompressionLabel"],"0x0063":["SH","1","CompressionDescription"],"0x0065":["CS","1-n","CompressionSequence"],"0x0066":["AT","1-n","CompressionStepPointers"],"0x0068":["US","1","RepeatInterval"],"0x0069":["US","1","BitsGrouped"],"0x0070":["US","1-n","PerimeterTable"],"0x0071":["xs","1","PerimeterValue"],"0x0080":["US","1","PredictorRows"],"0x0081":["US","1","PredictorColumns"],"0x0082":["US","1-n","PredictorConstants"],"0x0090":["CS","1","BlockedPixels"],"0x0091":["US","1","BlockRows"],"0x0092":["US","1","BlockColumns"],"0x0093":["US","1","RowOverlap"],"0x0094":["US","1","ColumnOverlap"],"0x0100":["US","1","BitsAllocated"],"0x0101":["US","1","BitsStored"],"0x0102":["US","1","HighBit"],"0x0103":["US","1","PixelRepresentation"],"0x0104":["xs","1","SmallestValidPixelValue"],"0x0105":["xs","1","LargestValidPixelValue"],"0x0106":["xs","1","SmallestImagePixelValue"],"0x0107":["xs","1","LargestImagePixelValue"],"0x0108":["xs","1","SmallestPixelValueInSeries"],"0x0109":["xs","1","LargestPixelValueInSeries"],"0x0110":["xs","1","SmallestImagePixelValueInPlane"],"0x0111":["xs","1","LargestImagePixelValueInPlane"],"0x0120":["xs","1","PixelPaddingValue"],"0x0121":["xs","1","PixelPaddingRangeLimit"],"0x0122":["FL","1","FloatPixelPaddingValue"],"0x0123":["FD","1","DoubleFloatPixelPaddingValue"],"0x0124":["FL","1","FloatPixelPaddingRangeLimit"],"0x0125":["FD","1","DoubleFloatPixelPaddingRangeLimit"],"0x0200":["US","1","ImageLocation"],"0x0300":["CS","1","QualityControlImage"],"0x0301":["CS","1","BurnedInAnnotation"],"0x0302":["CS","1","RecognizableVisualFeatures"],"0x0303":["CS","1","LongitudinalTemporalInformationModified"],"0x0304":["UI","1","ReferencedColorPaletteInstanceUID"],"0x0400":["LO","1","TransformLabel"],"0x0401":["LO","1","TransformVersionNumber"],"0x0402":["US","1","NumberOfTransformSteps"],"0x0403":["LO","1-n","SequenceOfCompressedData"],"0x0404":["AT","1-n","DetailsOfCoefficients"],"0x04x0":["US","1","RowsForNthOrderCoefficients"],"0x04x1":["US","1","ColumnsForNthOrderCoefficients"],"0x04x2":["LO","1-n","CoefficientCoding"],"0x04x3":["AT","1-n","CoefficientCodingPointers"],"0x0700":["LO","1","DCTLabel"],"0x0701":["CS","1-n","DataBlockDescription"],"0x0702":["AT","1-n","DataBlock"],"0x0710":["US","1","NormalizationFactorFormat"],"0x0720":["US","1","ZonalMapNumberFormat"],"0x0721":["AT","1-n","ZonalMapLocation"],"0x0722":["US","1","ZonalMapFormat"],"0x0730":["US","1","AdaptiveMapFormat"],"0x0740":["US","1","CodeNumberFormat"],"0x08x0":["CS","1-n","CodeLabel"],"0x08x2":["US","1","NumberOfTables"],"0x08x3":["AT","1-n","CodeTableLocation"],"0x08x4":["US","1","BitsForCodeWord"],"0x08x8":["AT","1-n","ImageDataLocation"],"0x0A02":["CS","1","PixelSpacingCalibrationType"],"0x0A04":["LO","1","PixelSpacingCalibrationDescription"],"0x1040":["CS","1","PixelIntensityRelationship"],"0x1041":["SS","1","PixelIntensityRelationshipSign"],"0x1050":["DS","1-n","WindowCenter"],"0x1051":["DS","1-n","WindowWidth"],"0x1052":["DS","1","RescaleIntercept"],"0x1053":["DS","1","RescaleSlope"],"0x1054":["LO","1","RescaleType"],"0x1055":["LO","1-n","WindowCenterWidthExplanation"],"0x1056":["CS","1","VOILUTFunction"],"0x1080":["CS","1","GrayScale"],"0x1090":["CS","1","RecommendedViewingMode"],"0x1100":["xs","3","GrayLookupTableDescriptor"],"0x1101":["xs","3","RedPaletteColorLookupTableDescriptor"],"0x1102":["xs","3","GreenPaletteColorLookupTableDescriptor"],"0x1103":["xs","3","BluePaletteColorLookupTableDescriptor"],"0x1104":["US","3","AlphaPaletteColorLookupTableDescriptor"],"0x1111":["xs","4","LargeRedPaletteColorLookupTableDescriptor"],"0x1112":["xs","4","LargeGreenPaletteColorLookupTableDescriptor"],"0x1113":["xs","4","LargeBluePaletteColorLookupTableDescriptor"],"0x1199":["UI","1","PaletteColorLookupTableUID"],"0x1200":["US or SS or OW","1-n or 1","GrayLookupTableData"],"0x1201":["OW","1","RedPaletteColorLookupTableData"],"0x1202":["OW","1","GreenPaletteColorLookupTableData"],"0x1203":["OW","1","BluePaletteColorLookupTableData"],"0x1204":["OW","1","AlphaPaletteColorLookupTableData"],"0x1211":["OW","1","LargeRedPaletteColorLookupTableData"],"0x1212":["OW","1","LargeGreenPaletteColorLookupTableData"],"0x1213":["OW","1","LargeBluePaletteColorLookupTableData"],"0x1214":["UI","1","LargePaletteColorLookupTableUID"],"0x1221":["OW","1","SegmentedRedPaletteColorLookupTableData"],"0x1222":["OW","1","SegmentedGreenPaletteColorLookupTableData"],"0x1223":["OW","1","SegmentedBluePaletteColorLookupTableData"],"0x1300":["CS","1","BreastImplantPresent"],"0x1350":["CS","1","PartialView"],"0x1351":["ST","1","PartialViewDescription"],"0x1352":["SQ","1","PartialViewCodeSequence"],"0x135A":["CS","1","SpatialLocationsPreserved"],"0x1401":["SQ","1","DataFrameAssignmentSequence"],"0x1402":["CS","1","DataPathAssignment"],"0x1403":["US","1","BitsMappedToColorLookupTable"],"0x1404":["SQ","1","BlendingLUT1Sequence"],"0x1405":["CS","1","BlendingLUT1TransferFunction"],"0x1406":["FD","1","BlendingWeightConstant"],"0x1407":["US","3","BlendingLookupTableDescriptor"],"0x1408":["OW","1","BlendingLookupTableData"],"0x140B":["SQ","1","EnhancedPaletteColorLookupTableSequence"],"0x140C":["SQ","1","BlendingLUT2Sequence"],"0x140D":["CS","1","BlendingLUT2TransferFunction"],"0x140E":["CS","1","DataPathID"],"0x140F":["CS","1","RGBLUTTransferFunction"],"0x1410":["CS","1","AlphaLUTTransferFunction"],"0x2000":["OB","1","ICCProfile"],"0x2110":["CS","1","LossyImageCompression"],"0x2112":["DS","1-n","LossyImageCompressionRatio"],"0x2114":["CS","1-n","LossyImageCompressionMethod"],"0x3000":["SQ","1","ModalityLUTSequence"],"0x3002":["xs","3","LUTDescriptor"],"0x3003":["LO","1","LUTExplanation"],"0x3004":["LO","1","ModalityLUTType"],"0x3006":["US or OW","1-n or 1","LUTData"],"0x3010":["SQ","1","VOILUTSequence"],"0x3110":["SQ","1","SoftcopyVOILUTSequence"],"0x4000":["LT","1","ImagePresentationComments"],"0x5000":["SQ","1","BiPlaneAcquisitionSequence"],"0x6010":["US","1","RepresentativeFrameNumber"],"0x6020":["US","1-n","FrameNumbersOfInterest"],"0x6022":["LO","1-n","FrameOfInterestDescription"],"0x6023":["CS","1-n","FrameOfInterestType"],"0x6030":["US","1-n","MaskPointers"],"0x6040":["US","1-n","RWavePointer"],"0x6100":["SQ","1","MaskSubtractionSequence"],"0x6101":["CS","1","MaskOperation"],"0x6102":["US","2-2n","ApplicableFrameRange"],"0x6110":["US","1-n","MaskFrameNumbers"],"0x6112":["US","1","ContrastFrameAveraging"],"0x6114":["FL","2","MaskSubPixelShift"],"0x6120":["SS","1","TIDOffset"],"0x6190":["ST","1","MaskOperationExplanation"],"0x7000":["SQ","1","EquipmentAdministratorSequence"],"0x7001":["US","1","NumberOfDisplaySubsystems"],"0x7002":["US","1","CurrentConfigurationID"],"0x7003":["US","1","DisplaySubsystemID"],"0x7004":["SH","1","DisplaySubsystemName"],"0x7005":["LO","1","DisplaySubsystemDescription"],"0x7006":["CS","1","SystemStatus"],"0x7007":["LO","1","SystemStatusComment"],"0x7008":["SQ","1","TargetLuminanceCharacteristicsSequence"],"0x7009":["US","1","LuminanceCharacteristicsID"],"0x700A":["SQ","1","DisplaySubsystemConfigurationSequence"],"0x700B":["US","1","ConfigurationID"],"0x700C":["SH","1","ConfigurationName"],"0x700D":["LO","1","ConfigurationDescription"],"0x700E":["US","1","ReferencedTargetLuminanceCharacteristicsID"],"0x700F":["SQ","1","QAResultsSequence"],"0x7010":["SQ","1","DisplaySubsystemQAResultsSequence"],"0x7011":["SQ","1","ConfigurationQAResultsSequence"],"0x7012":["SQ","1","MeasurementEquipmentSequence"],"0x7013":["CS","1-n","MeasurementFunctions"],"0x7014":["CS","1","MeasurementEquipmentType"],"0x7015":["SQ","1","VisualEvaluationResultSequence"],"0x7016":["SQ","1","DisplayCalibrationResultSequence"],"0x7017":["US","1","DDLValue"],"0x7018":["FL","2","CIExyWhitePoint"],"0x7019":["CS","1","DisplayFunctionType"],"0x701A":["FL","1","GammaValue"],"0x701B":["US","1","NumberOfLuminancePoints"],"0x701C":["SQ","1","LuminanceResponseSequence"],"0x701D":["FL","1","TargetMinimumLuminance"],"0x701E":["FL","1","TargetMaximumLuminance"],"0x701F":["FL","1","LuminanceValue"],"0x7020":["LO","1","LuminanceResponseDescription"],"0x7021":["CS","1","WhitePointFlag"],"0x7022":["SQ","1","DisplayDeviceTypeCodeSequence"],"0x7023":["SQ","1","DisplaySubsystemSequence"],"0x7024":["SQ","1","LuminanceResultSequence"],"0x7025":["CS","1","AmbientLightValueSource"],"0x7026":["CS","1-n","MeasuredCharacteristics"],"0x7027":["SQ","1","LuminanceUniformityResultSequence"],"0x7028":["SQ","1","VisualEvaluationTestSequence"],"0x7029":["CS","1","TestResult"],"0x702A":["LO","1","TestResultComment"],"0x702B":["CS","1","TestImageValidation"],"0x702C":["SQ","1","TestPatternCodeSequence"],"0x702D":["SQ","1","MeasurementPatternCodeSequence"],"0x702E":["SQ","1","VisualEvaluationMethodCodeSequence"],"0x7FE0":["UR","1","PixelDataProviderURL"],"0x9001":["UL","1","DataPointRows"],"0x9002":["UL","1","DataPointColumns"],"0x9003":["CS","1","SignalDomainColumns"],"0x9099":["US","1","LargestMonochromePixelValue"],"0x9108":["CS","1","DataRepresentation"],"0x9110":["SQ","1","PixelMeasuresSequence"],"0x9132":["SQ","1","FrameVOILUTSequence"],"0x9145":["SQ","1","PixelValueTransformationSequence"],"0x9235":["CS","1","SignalDomainRows"],"0x9411":["FL","1","DisplayFilterPercentage"],"0x9415":["SQ","1","FramePixelShiftSequence"],"0x9416":["US","1","SubtractionItemID"],"0x9422":["SQ","1","PixelIntensityRelationshipLUTSequence"],"0x9443":["SQ","1","FramePixelDataPropertiesSequence"],"0x9444":["CS","1","GeometricalProperties"],"0x9445":["FL","1","GeometricMaximumDistortion"],"0x9446":["CS","1-n","ImageProcessingApplied"],"0x9454":["CS","1","MaskSelectionMode"],"0x9474":["CS","1","LUTFunction"],"0x9478":["FL","1","MaskVisibilityPercentage"],"0x9501":["SQ","1","PixelShiftSequence"],"0x9502":["SQ","1","RegionPixelShiftSequence"],"0x9503":["SS","2-2n","VerticesOfTheRegion"],"0x9505":["SQ","1","MultiFramePresentationSequence"],"0x9506":["US","2-2n","PixelShiftFrameRange"],"0x9507":["US","2-2n","LUTFrameRange"],"0x9520":["DS","16","ImageToEquipmentMappingMatrix"],"0x9537":["CS","1","EquipmentCoordinateSystemIdentification"]},"0x0032":{"0x0000":["UL","1","GenericGroupLength"],"0x000A":["CS","1","StudyStatusID"],"0x000C":["CS","1","StudyPriorityID"],"0x0012":["LO","1","StudyIDIssuer"],"0x0032":["DA","1","StudyVerifiedDate"],"0x0033":["TM","1","StudyVerifiedTime"],"0x0034":["DA","1","StudyReadDate"],"0x0035":["TM","1","StudyReadTime"],"0x1000":["DA","1","ScheduledStudyStartDate"],"0x1001":["TM","1","ScheduledStudyStartTime"],"0x1010":["DA","1","ScheduledStudyStopDate"],"0x1011":["TM","1","ScheduledStudyStopTime"],"0x1020":["LO","1","ScheduledStudyLocation"],"0x1021":["AE","1-n","ScheduledStudyLocationAETitle"],"0x1030":["LO","1","ReasonForStudy"],"0x1031":["SQ","1","RequestingPhysicianIdentificationSequence"],"0x1032":["PN","1","RequestingPhysician"],"0x1033":["LO","1","RequestingService"],"0x1034":["SQ","1","RequestingServiceCodeSequence"],"0x1040":["DA","1","StudyArrivalDate"],"0x1041":["TM","1","StudyArrivalTime"],"0x1050":["DA","1","StudyCompletionDate"],"0x1051":["TM","1","StudyCompletionTime"],"0x1055":["CS","1","StudyComponentStatusID"],"0x1060":["LO","1","RequestedProcedureDescription"],"0x1064":["SQ","1","RequestedProcedureCodeSequence"],"0x1070":["LO","1","RequestedContrastAgent"],"0x4000":["LT","1","StudyComments"]},"0x0038":{"0x0000":["UL","1","GenericGroupLength"],"0x0004":["SQ","1","ReferencedPatientAliasSequence"],"0x0008":["CS","1","VisitStatusID"],"0x0010":["LO","1","AdmissionID"],"0x0011":["LO","1","IssuerOfAdmissionID"],"0x0014":["SQ","1","IssuerOfAdmissionIDSequence"],"0x0016":["LO","1","RouteOfAdmissions"],"0x001A":["DA","1","ScheduledAdmissionDate"],"0x001B":["TM","1","ScheduledAdmissionTime"],"0x001C":["DA","1","ScheduledDischargeDate"],"0x001D":["TM","1","ScheduledDischargeTime"],"0x001E":["LO","1","ScheduledPatientInstitutionResidence"],"0x0020":["DA","1","AdmittingDate"],"0x0021":["TM","1","AdmittingTime"],"0x0030":["DA","1","DischargeDate"],"0x0032":["TM","1","DischargeTime"],"0x0040":["LO","1","DischargeDiagnosisDescription"],"0x0044":["SQ","1","DischargeDiagnosisCodeSequence"],"0x0050":["LO","1","SpecialNeeds"],"0x0060":["LO","1","ServiceEpisodeID"],"0x0061":["LO","1","IssuerOfServiceEpisodeID"],"0x0062":["LO","1","ServiceEpisodeDescription"],"0x0064":["SQ","1","IssuerOfServiceEpisodeIDSequence"],"0x0100":["SQ","1","PertinentDocumentsSequence"],"0x0101":["SQ","1","PertinentResourcesSequence"],"0x0102":["LO","1","ResourceDescription"],"0x0300":["LO","1","CurrentPatientLocation"],"0x0400":["LO","1","PatientInstitutionResidence"],"0x0500":["LO","1","PatientState"],"0x0502":["SQ","1","PatientClinicalTrialParticipationSequence"],"0x4000":["LT","1","VisitComments"]},"0x003A":{"0x0000":["UL","1","GenericGroupLength"],"0x0004":["CS","1","WaveformOriginality"],"0x0005":["US","1","NumberOfWaveformChannels"],"0x0010":["UL","1","NumberOfWaveformSamples"],"0x001A":["DS","1","SamplingFrequency"],"0x0020":["SH","1","MultiplexGroupLabel"],"0x0200":["SQ","1","ChannelDefinitionSequence"],"0x0202":["IS","1","WaveformChannelNumber"],"0x0203":["SH","1","ChannelLabel"],"0x0205":["CS","1-n","ChannelStatus"],"0x0208":["SQ","1","ChannelSourceSequence"],"0x0209":["SQ","1","ChannelSourceModifiersSequence"],"0x020A":["SQ","1","SourceWaveformSequence"],"0x020C":["LO","1","ChannelDerivationDescription"],"0x0210":["DS","1","ChannelSensitivity"],"0x0211":["SQ","1","ChannelSensitivityUnitsSequence"],"0x0212":["DS","1","ChannelSensitivityCorrectionFactor"],"0x0213":["DS","1","ChannelBaseline"],"0x0214":["DS","1","ChannelTimeSkew"],"0x0215":["DS","1","ChannelSampleSkew"],"0x0218":["DS","1","ChannelOffset"],"0x021A":["US","1","WaveformBitsStored"],"0x0220":["DS","1","FilterLowFrequency"],"0x0221":["DS","1","FilterHighFrequency"],"0x0222":["DS","1","NotchFilterFrequency"],"0x0223":["DS","1","NotchFilterBandwidth"],"0x0230":["FL","1","WaveformDataDisplayScale"],"0x0231":["US","3","WaveformDisplayBackgroundCIELabValue"],"0x0240":["SQ","1","WaveformPresentationGroupSequence"],"0x0241":["US","1","PresentationGroupNumber"],"0x0242":["SQ","1","ChannelDisplaySequence"],"0x0244":["US","3","ChannelRecommendedDisplayCIELabValue"],"0x0245":["FL","1","ChannelPosition"],"0x0246":["CS","1","DisplayShadingFlag"],"0x0247":["FL","1","FractionalChannelDisplayScale"],"0x0248":["FL","1","AbsoluteChannelDisplayScale"],"0x0300":["SQ","1","MultiplexedAudioChannelsDescriptionCodeSequence"],"0x0301":["IS","1","ChannelIdentificationCode"],"0x0302":["CS","1","ChannelMode"]},"0x0040":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["AE","1-n","ScheduledStationAETitle"],"0x0002":["DA","1","ScheduledProcedureStepStartDate"],"0x0003":["TM","1","ScheduledProcedureStepStartTime"],"0x0004":["DA","1","ScheduledProcedureStepEndDate"],"0x0005":["TM","1","ScheduledProcedureStepEndTime"],"0x0006":["PN","1","ScheduledPerformingPhysicianName"],"0x0007":["LO","1","ScheduledProcedureStepDescription"],"0x0008":["SQ","1","ScheduledProtocolCodeSequence"],"0x0009":["SH","1","ScheduledProcedureStepID"],"0x000A":["SQ","1","StageCodeSequence"],"0x000B":["SQ","1","ScheduledPerformingPhysicianIdentificationSequence"],"0x0010":["SH","1-n","ScheduledStationName"],"0x0011":["SH","1","ScheduledProcedureStepLocation"],"0x0012":["LO","1","PreMedication"],"0x0020":["CS","1","ScheduledProcedureStepStatus"],"0x0026":["SQ","1","OrderPlacerIdentifierSequence"],"0x0027":["SQ","1","OrderFillerIdentifierSequence"],"0x0031":["UT","1","LocalNamespaceEntityID"],"0x0032":["UT","1","UniversalEntityID"],"0x0033":["CS","1","UniversalEntityIDType"],"0x0035":["CS","1","IdentifierTypeCode"],"0x0036":["SQ","1","AssigningFacilitySequence"],"0x0039":["SQ","1","AssigningJurisdictionCodeSequence"],"0x003A":["SQ","1","AssigningAgencyOrDepartmentCodeSequence"],"0x0100":["SQ","1","ScheduledProcedureStepSequence"],"0x0220":["SQ","1","ReferencedNonImageCompositeSOPInstanceSequence"],"0x0241":["AE","1","PerformedStationAETitle"],"0x0242":["SH","1","PerformedStationName"],"0x0243":["SH","1","PerformedLocation"],"0x0244":["DA","1","PerformedProcedureStepStartDate"],"0x0245":["TM","1","PerformedProcedureStepStartTime"],"0x0250":["DA","1","PerformedProcedureStepEndDate"],"0x0251":["TM","1","PerformedProcedureStepEndTime"],"0x0252":["CS","1","PerformedProcedureStepStatus"],"0x0253":["SH","1","PerformedProcedureStepID"],"0x0254":["LO","1","PerformedProcedureStepDescription"],"0x0255":["LO","1","PerformedProcedureTypeDescription"],"0x0260":["SQ","1","PerformedProtocolCodeSequence"],"0x0261":["CS","1","PerformedProtocolType"],"0x0270":["SQ","1","ScheduledStepAttributesSequence"],"0x0275":["SQ","1","RequestAttributesSequence"],"0x0280":["ST","1","CommentsOnThePerformedProcedureStep"],"0x0281":["SQ","1","PerformedProcedureStepDiscontinuationReasonCodeSequence"],"0x0293":["SQ","1","QuantitySequence"],"0x0294":["DS","1","Quantity"],"0x0295":["SQ","1","MeasuringUnitsSequence"],"0x0296":["SQ","1","BillingItemSequence"],"0x0300":["US","1","TotalTimeOfFluoroscopy"],"0x0301":["US","1","TotalNumberOfExposures"],"0x0302":["US","1","EntranceDose"],"0x0303":["US","1-2","ExposedArea"],"0x0306":["DS","1","DistanceSourceToEntrance"],"0x0307":["DS","1","DistanceSourceToSupport"],"0x030E":["SQ","1","ExposureDoseSequence"],"0x0310":["ST","1","CommentsOnRadiationDose"],"0x0312":["DS","1","XRayOutput"],"0x0314":["DS","1","HalfValueLayer"],"0x0316":["DS","1","OrganDose"],"0x0318":["CS","1","OrganExposed"],"0x0320":["SQ","1","BillingProcedureStepSequence"],"0x0321":["SQ","1","FilmConsumptionSequence"],"0x0324":["SQ","1","BillingSuppliesAndDevicesSequence"],"0x0330":["SQ","1","ReferencedProcedureStepSequence"],"0x0340":["SQ","1","PerformedSeriesSequence"],"0x0400":["LT","1","CommentsOnTheScheduledProcedureStep"],"0x0440":["SQ","1","ProtocolContextSequence"],"0x0441":["SQ","1","ContentItemModifierSequence"],"0x0500":["SQ","1","ScheduledSpecimenSequence"],"0x050A":["LO","1","SpecimenAccessionNumber"],"0x0512":["LO","1","ContainerIdentifier"],"0x0513":["SQ","1","IssuerOfTheContainerIdentifierSequence"],"0x0515":["SQ","1","AlternateContainerIdentifierSequence"],"0x0518":["SQ","1","ContainerTypeCodeSequence"],"0x051A":["LO","1","ContainerDescription"],"0x0520":["SQ","1","ContainerComponentSequence"],"0x0550":["SQ","1","SpecimenSequence"],"0x0551":["LO","1","SpecimenIdentifier"],"0x0552":["SQ","1","SpecimenDescriptionSequenceTrial"],"0x0553":["ST","1","SpecimenDescriptionTrial"],"0x0554":["UI","1","SpecimenUID"],"0x0555":["SQ","1","AcquisitionContextSequence"],"0x0556":["ST","1","AcquisitionContextDescription"],"0x059A":["SQ","1","SpecimenTypeCodeSequence"],"0x0560":["SQ","1","SpecimenDescriptionSequence"],"0x0562":["SQ","1","IssuerOfTheSpecimenIdentifierSequence"],"0x0600":["LO","1","SpecimenShortDescription"],"0x0602":["UT","1","SpecimenDetailedDescription"],"0x0610":["SQ","1","SpecimenPreparationSequence"],"0x0612":["SQ","1","SpecimenPreparationStepContentItemSequence"],"0x0620":["SQ","1","SpecimenLocalizationContentItemSequence"],"0x06FA":["LO","1","SlideIdentifier"],"0x071A":["SQ","1","ImageCenterPointCoordinatesSequence"],"0x072A":["DS","1","XOffsetInSlideCoordinateSystem"],"0x073A":["DS","1","YOffsetInSlideCoordinateSystem"],"0x074A":["DS","1","ZOffsetInSlideCoordinateSystem"],"0x08D8":["SQ","1","PixelSpacingSequence"],"0x08DA":["SQ","1","CoordinateSystemAxisCodeSequence"],"0x08EA":["SQ","1","MeasurementUnitsCodeSequence"],"0x09F8":["SQ","1","VitalStainCodeSequenceTrial"],"0x1001":["SH","1","RequestedProcedureID"],"0x1002":["LO","1","ReasonForTheRequestedProcedure"],"0x1003":["SH","1","RequestedProcedurePriority"],"0x1004":["LO","1","PatientTransportArrangements"],"0x1005":["LO","1","RequestedProcedureLocation"],"0x1006":["SH","1","PlacerOrderNumberProcedure"],"0x1007":["SH","1","FillerOrderNumberProcedure"],"0x1008":["LO","1","ConfidentialityCode"],"0x1009":["SH","1","ReportingPriority"],"0x100A":["SQ","1","ReasonForRequestedProcedureCodeSequence"],"0x1010":["PN","1-n","NamesOfIntendedRecipientsOfResults"],"0x1011":["SQ","1","IntendedRecipientsOfResultsIdentificationSequence"],"0x1012":["SQ","1","ReasonForPerformedProcedureCodeSequence"],"0x1060":["LO","1","RequestedProcedureDescriptionTrial"],"0x1101":["SQ","1","PersonIdentificationCodeSequence"],"0x1102":["ST","1","PersonAddress"],"0x1103":["LO","1-n","PersonTelephoneNumbers"],"0x1104":["LT","1","PersonTelecomInformation"],"0x1400":["LT","1","RequestedProcedureComments"],"0x2001":["LO","1","ReasonForTheImagingServiceRequest"],"0x2004":["DA","1","IssueDateOfImagingServiceRequest"],"0x2005":["TM","1","IssueTimeOfImagingServiceRequest"],"0x2006":["SH","1","PlacerOrderNumberImagingServiceRequestRetired"],"0x2007":["SH","1","FillerOrderNumberImagingServiceRequestRetired"],"0x2008":["PN","1","OrderEnteredBy"],"0x2009":["SH","1","OrderEntererLocation"],"0x2010":["SH","1","OrderCallbackPhoneNumber"],"0x2011":["LT","1","OrderCallbackTelecomInformation"],"0x2016":["LO","1","PlacerOrderNumberImagingServiceRequest"],"0x2017":["LO","1","FillerOrderNumberImagingServiceRequest"],"0x2400":["LT","1","ImagingServiceRequestComments"],"0x3001":["LO","1","ConfidentialityConstraintOnPatientDataDescription"],"0x4001":["CS","1","GeneralPurposeScheduledProcedureStepStatus"],"0x4002":["CS","1","GeneralPurposePerformedProcedureStepStatus"],"0x4003":["CS","1","GeneralPurposeScheduledProcedureStepPriority"],"0x4004":["SQ","1","ScheduledProcessingApplicationsCodeSequence"],"0x4005":["DT","1","ScheduledProcedureStepStartDateTime"],"0x4006":["CS","1","MultipleCopiesFlag"],"0x4007":["SQ","1","PerformedProcessingApplicationsCodeSequence"],"0x4009":["SQ","1","HumanPerformerCodeSequence"],"0x4010":["DT","1","ScheduledProcedureStepModificationDateTime"],"0x4011":["DT","1","ExpectedCompletionDateTime"],"0x4015":["SQ","1","ResultingGeneralPurposePerformedProcedureStepsSequence"],"0x4016":["SQ","1","ReferencedGeneralPurposeScheduledProcedureStepSequence"],"0x4018":["SQ","1","ScheduledWorkitemCodeSequence"],"0x4019":["SQ","1","PerformedWorkitemCodeSequence"],"0x4020":["CS","1","InputAvailabilityFlag"],"0x4021":["SQ","1","InputInformationSequence"],"0x4022":["SQ","1","RelevantInformationSequence"],"0x4023":["UI","1","ReferencedGeneralPurposeScheduledProcedureStepTransactionUID"],"0x4025":["SQ","1","ScheduledStationNameCodeSequence"],"0x4026":["SQ","1","ScheduledStationClassCodeSequence"],"0x4027":["SQ","1","ScheduledStationGeographicLocationCodeSequence"],"0x4028":["SQ","1","PerformedStationNameCodeSequence"],"0x4029":["SQ","1","PerformedStationClassCodeSequence"],"0x4030":["SQ","1","PerformedStationGeographicLocationCodeSequence"],"0x4031":["SQ","1","RequestedSubsequentWorkitemCodeSequence"],"0x4032":["SQ","1","NonDICOMOutputCodeSequence"],"0x4033":["SQ","1","OutputInformationSequence"],"0x4034":["SQ","1","ScheduledHumanPerformersSequence"],"0x4035":["SQ","1","ActualHumanPerformersSequence"],"0x4036":["LO","1","HumanPerformerOrganization"],"0x4037":["PN","1","HumanPerformerName"],"0x4040":["CS","1","RawDataHandling"],"0x4041":["CS","1","InputReadinessState"],"0x4050":["DT","1","PerformedProcedureStepStartDateTime"],"0x4051":["DT","1","PerformedProcedureStepEndDateTime"],"0x4052":["DT","1","ProcedureStepCancellationDateTime"],"0x8302":["DS","1","EntranceDoseInmGy"],"0x9092":["SQ","1","ParametricMapFrameTypeSequence"],"0x9094":["SQ","1","ReferencedImageRealWorldValueMappingSequence"],"0x9096":["SQ","1","RealWorldValueMappingSequence"],"0x9098":["SQ","1","PixelValueMappingCodeSequence"],"0x9210":["SH","1","LUTLabel"],"0x9211":["xs","1","RealWorldValueLastValueMapped"],"0x9212":["FD","1-n","RealWorldValueLUTData"],"0x9216":["xs","1","RealWorldValueFirstValueMapped"],"0x9220":["SQ","1","QuantityDefinitionSequence"],"0x9224":["FD","1","RealWorldValueIntercept"],"0x9225":["FD","1","RealWorldValueSlope"],"0xA007":["CS","1","FindingsFlagTrial"],"0xA010":["CS","1","RelationshipType"],"0xA020":["SQ","1","FindingsSequenceTrial"],"0xA021":["UI","1","FindingsGroupUIDTrial"],"0xA022":["UI","1","ReferencedFindingsGroupUIDTrial"],"0xA023":["DA","1","FindingsGroupRecordingDateTrial"],"0xA024":["TM","1","FindingsGroupRecordingTimeTrial"],"0xA026":["SQ","1","FindingsSourceCategoryCodeSequenceTrial"],"0xA027":["LO","1","VerifyingOrganization"],"0xA028":["SQ","1","DocumentingOrganizationIdentifierCodeSequenceTrial"],"0xA030":["DT","1","VerificationDateTime"],"0xA032":["DT","1","ObservationDateTime"],"0xA040":["CS","1","ValueType"],"0xA043":["SQ","1","ConceptNameCodeSequence"],"0xA047":["LO","1","MeasurementPrecisionDescriptionTrial"],"0xA050":["CS","1","ContinuityOfContent"],"0xA057":["CS","1-n","UrgencyOrPriorityAlertsTrial"],"0xA060":["LO","1","SequencingIndicatorTrial"],"0xA066":["SQ","1","DocumentIdentifierCodeSequenceTrial"],"0xA067":["PN","1","DocumentAuthorTrial"],"0xA068":["SQ","1","DocumentAuthorIdentifierCodeSequenceTrial"],"0xA070":["SQ","1","IdentifierCodeSequenceTrial"],"0xA073":["SQ","1","VerifyingObserverSequence"],"0xA074":["OB","1","ObjectBinaryIdentifierTrial"],"0xA075":["PN","1","VerifyingObserverName"],"0xA076":["SQ","1","DocumentingObserverIdentifierCodeSequenceTrial"],"0xA078":["SQ","1","AuthorObserverSequence"],"0xA07A":["SQ","1","ParticipantSequence"],"0xA07C":["SQ","1","CustodialOrganizationSequence"],"0xA080":["CS","1","ParticipationType"],"0xA082":["DT","1","ParticipationDateTime"],"0xA084":["CS","1","ObserverType"],"0xA085":["SQ","1","ProcedureIdentifierCodeSequenceTrial"],"0xA088":["SQ","1","VerifyingObserverIdentificationCodeSequence"],"0xA089":["OB","1","ObjectDirectoryBinaryIdentifierTrial"],"0xA090":["SQ","1","EquivalentCDADocumentSequence"],"0xA0B0":["US","2-2n","ReferencedWaveformChannels"],"0xA110":["DA","1","DateOfDocumentOrVerbalTransactionTrial"],"0xA112":["TM","1","TimeOfDocumentCreationOrVerbalTransactionTrial"],"0xA120":["DT","1","DateTime"],"0xA121":["DA","1","Date"],"0xA122":["TM","1","Time"],"0xA123":["PN","1","PersonName"],"0xA124":["UI","1","UID"],"0xA125":["CS","2","ReportStatusIDTrial"],"0xA130":["CS","1","TemporalRangeType"],"0xA132":["UL","1-n","ReferencedSamplePositions"],"0xA136":["US","1-n","ReferencedFrameNumbers"],"0xA138":["DS","1-n","ReferencedTimeOffsets"],"0xA13A":["DT","1-n","ReferencedDateTime"],"0xA160":["UT","1","TextValue"],"0xA161":["FD","1-n","FloatingPointValue"],"0xA162":["SL","1-n","RationalNumeratorValue"],"0xA163":["UL","1-n","RationalDenominatorValue"],"0xA167":["SQ","1","ObservationCategoryCodeSequenceTrial"],"0xA168":["SQ","1","ConceptCodeSequence"],"0xA16A":["ST","1","BibliographicCitationTrial"],"0xA170":["SQ","1","PurposeOfReferenceCodeSequence"],"0xA171":["UI","1","ObservationUID"],"0xA172":["UI","1","ReferencedObservationUIDTrial"],"0xA173":["CS","1","ReferencedObservationClassTrial"],"0xA174":["CS","1","ReferencedObjectObservationClassTrial"],"0xA180":["US","1","AnnotationGroupNumber"],"0xA192":["DA","1","ObservationDateTrial"],"0xA193":["TM","1","ObservationTimeTrial"],"0xA194":["CS","1","MeasurementAutomationTrial"],"0xA195":["SQ","1","ModifierCodeSequence"],"0xA224":["ST","1","IdentificationDescriptionTrial"],"0xA290":["CS","1","CoordinatesSetGeometricTypeTrial"],"0xA296":["SQ","1","AlgorithmCodeSequenceTrial"],"0xA297":["ST","1","AlgorithmDescriptionTrial"],"0xA29A":["SL","2-2n","PixelCoordinatesSetTrial"],"0xA300":["SQ","1","MeasuredValueSequence"],"0xA301":["SQ","1","NumericValueQualifierCodeSequence"],"0xA307":["PN","1","CurrentObserverTrial"],"0xA30A":["DS","1-n","NumericValue"],"0xA313":["SQ","1","ReferencedAccessionSequenceTrial"],"0xA33A":["ST","1","ReportStatusCommentTrial"],"0xA340":["SQ","1","ProcedureContextSequenceTrial"],"0xA352":["PN","1","VerbalSourceTrial"],"0xA353":["ST","1","AddressTrial"],"0xA354":["LO","1","TelephoneNumberTrial"],"0xA358":["SQ","1","VerbalSourceIdentifierCodeSequenceTrial"],"0xA360":["SQ","1","PredecessorDocumentsSequence"],"0xA370":["SQ","1","ReferencedRequestSequence"],"0xA372":["SQ","1","PerformedProcedureCodeSequence"],"0xA375":["SQ","1","CurrentRequestedProcedureEvidenceSequence"],"0xA380":["SQ","1","ReportDetailSequenceTrial"],"0xA385":["SQ","1","PertinentOtherEvidenceSequence"],"0xA390":["SQ","1","HL7StructuredDocumentReferenceSequence"],"0xA402":["UI","1","ObservationSubjectUIDTrial"],"0xA403":["CS","1","ObservationSubjectClassTrial"],"0xA404":["SQ","1","ObservationSubjectTypeCodeSequenceTrial"],"0xA491":["CS","1","CompletionFlag"],"0xA492":["LO","1","CompletionFlagDescription"],"0xA493":["CS","1","VerificationFlag"],"0xA494":["CS","1","ArchiveRequested"],"0xA496":["CS","1","PreliminaryFlag"],"0xA504":["SQ","1","ContentTemplateSequence"],"0xA525":["SQ","1","IdenticalDocumentsSequence"],"0xA600":["CS","1","ObservationSubjectContextFlagTrial"],"0xA601":["CS","1","ObserverContextFlagTrial"],"0xA603":["CS","1","ProcedureContextFlagTrial"],"0xA730":["SQ","1","ContentSequence"],"0xA731":["SQ","1","RelationshipSequenceTrial"],"0xA732":["SQ","1","RelationshipTypeCodeSequenceTrial"],"0xA744":["SQ","1","LanguageCodeSequenceTrial"],"0xA992":["ST","1","UniformResourceLocatorTrial"],"0xB020":["SQ","1","WaveformAnnotationSequence"],"0xDB00":["CS","1","TemplateIdentifier"],"0xDB06":["DT","1","TemplateVersion"],"0xDB07":["DT","1","TemplateLocalVersion"],"0xDB0B":["CS","1","TemplateExtensionFlag"],"0xDB0C":["UI","1","TemplateExtensionOrganizationUID"],"0xDB0D":["UI","1","TemplateExtensionCreatorUID"],"0xDB73":["UL","1-n","ReferencedContentItemIdentifier"],"0xE001":["ST","1","HL7InstanceIdentifier"],"0xE004":["DT","1","HL7DocumentEffectiveTime"],"0xE006":["SQ","1","HL7DocumentTypeCodeSequence"],"0xE008":["SQ","1","DocumentClassCodeSequence"],"0xE010":["UR","1","RetrieveURI"],"0xE011":["UI","1","RetrieveLocationUID"],"0xE020":["CS","1","TypeOfInstances"],"0xE021":["SQ","1","DICOMRetrievalSequence"],"0xE022":["SQ","1","DICOMMediaRetrievalSequence"],"0xE023":["SQ","1","WADORetrievalSequence"],"0xE024":["SQ","1","XDSRetrievalSequence"],"0xE025":["SQ","1","WADORSRetrievalSequence"],"0xE030":["UI","1","RepositoryUniqueID"],"0xE031":["UI","1","HomeCommunityID"]},"0x0042":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["ST","1","DocumentTitle"],"0x0011":["OB","1","EncapsulatedDocument"],"0x0012":["LO","1","MIMETypeOfEncapsulatedDocument"],"0x0013":["SQ","1","SourceInstanceSequence"],"0x0014":["LO","1-n","ListOfMIMETypes"]},"0x0044":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["ST","1","ProductPackageIdentifier"],"0x0002":["CS","1","SubstanceAdministrationApproval"],"0x0003":["LT","1","ApprovalStatusFurtherDescription"],"0x0004":["DT","1","ApprovalStatusDateTime"],"0x0007":["SQ","1","ProductTypeCodeSequence"],"0x0008":["LO","1-n","ProductName"],"0x0009":["LT","1","ProductDescription"],"0x000A":["LO","1","ProductLotIdentifier"],"0x000B":["DT","1","ProductExpirationDateTime"],"0x0010":["DT","1","SubstanceAdministrationDateTime"],"0x0011":["LO","1","SubstanceAdministrationNotes"],"0x0012":["LO","1","SubstanceAdministrationDeviceID"],"0x0013":["SQ","1","ProductParameterSequence"],"0x0019":["SQ","1","SubstanceAdministrationParameterSequence"]},"0x0046":{"0x0000":["UL","1","GenericGroupLength"],"0x0012":["LO","1","LensDescription"],"0x0014":["SQ","1","RightLensSequence"],"0x0015":["SQ","1","LeftLensSequence"],"0x0016":["SQ","1","UnspecifiedLateralityLensSequence"],"0x0018":["SQ","1","CylinderSequence"],"0x0028":["SQ","1","PrismSequence"],"0x0030":["FD","1","HorizontalPrismPower"],"0x0032":["CS","1","HorizontalPrismBase"],"0x0034":["FD","1","VerticalPrismPower"],"0x0036":["CS","1","VerticalPrismBase"],"0x0038":["CS","1","LensSegmentType"],"0x0040":["FD","1","OpticalTransmittance"],"0x0042":["FD","1","ChannelWidth"],"0x0044":["FD","1","PupilSize"],"0x0046":["FD","1","CornealSize"],"0x0050":["SQ","1","AutorefractionRightEyeSequence"],"0x0052":["SQ","1","AutorefractionLeftEyeSequence"],"0x0060":["FD","1","DistancePupillaryDistance"],"0x0062":["FD","1","NearPupillaryDistance"],"0x0063":["FD","1","IntermediatePupillaryDistance"],"0x0064":["FD","1","OtherPupillaryDistance"],"0x0070":["SQ","1","KeratometryRightEyeSequence"],"0x0071":["SQ","1","KeratometryLeftEyeSequence"],"0x0074":["SQ","1","SteepKeratometricAxisSequence"],"0x0075":["FD","1","RadiusOfCurvature"],"0x0076":["FD","1","KeratometricPower"],"0x0077":["FD","1","KeratometricAxis"],"0x0080":["SQ","1","FlatKeratometricAxisSequence"],"0x0092":["CS","1","BackgroundColor"],"0x0094":["CS","1","Optotype"],"0x0095":["CS","1","OptotypePresentation"],"0x0097":["SQ","1","SubjectiveRefractionRightEyeSequence"],"0x0098":["SQ","1","SubjectiveRefractionLeftEyeSequence"],"0x0100":["SQ","1","AddNearSequence"],"0x0101":["SQ","1","AddIntermediateSequence"],"0x0102":["SQ","1","AddOtherSequence"],"0x0104":["FD","1","AddPower"],"0x0106":["FD","1","ViewingDistance"],"0x0121":["SQ","1","VisualAcuityTypeCodeSequence"],"0x0122":["SQ","1","VisualAcuityRightEyeSequence"],"0x0123":["SQ","1","VisualAcuityLeftEyeSequence"],"0x0124":["SQ","1","VisualAcuityBothEyesOpenSequence"],"0x0125":["CS","1","ViewingDistanceType"],"0x0135":["SS","2","VisualAcuityModifiers"],"0x0137":["FD","1","DecimalVisualAcuity"],"0x0139":["LO","1","OptotypeDetailedDefinition"],"0x0145":["SQ","1","ReferencedRefractiveMeasurementsSequence"],"0x0146":["FD","1","SpherePower"],"0x0147":["FD","1","CylinderPower"],"0x0201":["CS","1","CornealTopographySurface"],"0x0202":["FL","2","CornealVertexLocation"],"0x0203":["FL","1","PupilCentroidXCoordinate"],"0x0204":["FL","1","PupilCentroidYCoordinate"],"0x0205":["FL","1","EquivalentPupilRadius"],"0x0207":["SQ","1","CornealTopographyMapTypeCodeSequence"],"0x0208":["IS","2-2n","VerticesOfTheOutlineOfPupil"],"0x0210":["SQ","1","CornealTopographyMappingNormalsSequence"],"0x0211":["SQ","1","MaximumCornealCurvatureSequence"],"0x0212":["FL","1","MaximumCornealCurvature"],"0x0213":["FL","2","MaximumCornealCurvatureLocation"],"0x0215":["SQ","1","MinimumKeratometricSequence"],"0x0218":["SQ","1","SimulatedKeratometricCylinderSequence"],"0x0220":["FL","1","AverageCornealPower"],"0x0224":["FL","1","CornealISValue"],"0x0227":["FL","1","AnalyzedArea"],"0x0230":["FL","1","SurfaceRegularityIndex"],"0x0232":["FL","1","SurfaceAsymmetryIndex"],"0x0234":["FL","1","CornealEccentricityIndex"],"0x0236":["FL","1","KeratoconusPredictionIndex"],"0x0238":["FL","1","DecimalPotentialVisualAcuity"],"0x0242":["CS","1","CornealTopographyMapQualityEvaluation"],"0x0244":["SQ","1","SourceImageCornealProcessedDataSequence"],"0x0247":["FL","3","CornealPointLocation"],"0x0248":["CS","1","CornealPointEstimated"],"0x0249":["FL","1","AxialPower"],"0x0250":["FL","1","TangentialPower"],"0x0251":["FL","1","RefractivePower"],"0x0252":["FL","1","RelativeElevation"],"0x0253":["FL","1","CornealWavefront"]},"0x0048":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["FL","1","ImagedVolumeWidth"],"0x0002":["FL","1","ImagedVolumeHeight"],"0x0003":["FL","1","ImagedVolumeDepth"],"0x0006":["UL","1","TotalPixelMatrixColumns"],"0x0007":["UL","1","TotalPixelMatrixRows"],"0x0008":["SQ","1","TotalPixelMatrixOriginSequence"],"0x0010":["CS","1","SpecimenLabelInImage"],"0x0011":["CS","1","FocusMethod"],"0x0012":["CS","1","ExtendedDepthOfField"],"0x0013":["US","1","NumberOfFocalPlanes"],"0x0014":["FL","1","DistanceBetweenFocalPlanes"],"0x0015":["US","3","RecommendedAbsentPixelCIELabValue"],"0x0100":["SQ","1","IlluminatorTypeCodeSequence"],"0x0102":["DS","6","ImageOrientationSlide"],"0x0105":["SQ","1","OpticalPathSequence"],"0x0106":["SH","1","OpticalPathIdentifier"],"0x0107":["ST","1","OpticalPathDescription"],"0x0108":["SQ","1","IlluminationColorCodeSequence"],"0x0110":["SQ","1","SpecimenReferenceSequence"],"0x0111":["DS","1","CondenserLensPower"],"0x0112":["DS","1","ObjectiveLensPower"],"0x0113":["DS","1","ObjectiveLensNumericalAperture"],"0x0120":["SQ","1","PaletteColorLookupTableSequence"],"0x0200":["SQ","1","ReferencedImageNavigationSequence"],"0x0201":["US","2","TopLeftHandCornerOfLocalizerArea"],"0x0202":["US","2","BottomRightHandCornerOfLocalizerArea"],"0x0207":["SQ","1","OpticalPathIdentificationSequence"],"0x021A":["SQ","1","PlanePositionSlideSequence"],"0x021E":["SL","1","ColumnPositionInTotalImagePixelMatrix"],"0x021F":["SL","1","RowPositionInTotalImagePixelMatrix"],"0x0301":["CS","1","PixelOriginInterpretation"]},"0x0050":{"0x0000":["UL","1","GenericGroupLength"],"0x0004":["CS","1","CalibrationImage"],"0x0010":["SQ","1","DeviceSequence"],"0x0012":["SQ","1","ContainerComponentTypeCodeSequence"],"0x0013":["FD","1","ContainerComponentThickness"],"0x0014":["DS","1","DeviceLength"],"0x0015":["FD","1","ContainerComponentWidth"],"0x0016":["DS","1","DeviceDiameter"],"0x0017":["CS","1","DeviceDiameterUnits"],"0x0018":["DS","1","DeviceVolume"],"0x0019":["DS","1","InterMarkerDistance"],"0x001A":["CS","1","ContainerComponentMaterial"],"0x001B":["LO","1","ContainerComponentID"],"0x001C":["FD","1","ContainerComponentLength"],"0x001D":["FD","1","ContainerComponentDiameter"],"0x001E":["LO","1","ContainerComponentDescription"],"0x0020":["LO","1","DeviceDescription"]},"0x0052":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["FL","1","ContrastBolusIngredientPercentByVolume"],"0x0002":["FD","1","OCTFocalDistance"],"0x0003":["FD","1","BeamSpotSize"],"0x0004":["FD","1","EffectiveRefractiveIndex"],"0x0006":["CS","1","OCTAcquisitionDomain"],"0x0007":["FD","1","OCTOpticalCenterWavelength"],"0x0008":["FD","1","AxialResolution"],"0x0009":["FD","1","RangingDepth"],"0x0011":["FD","1","ALineRate"],"0x0012":["US","1","ALinesPerFrame"],"0x0013":["FD","1","CatheterRotationalRate"],"0x0014":["FD","1","ALinePixelSpacing"],"0x0016":["SQ","1","ModeOfPercutaneousAccessSequence"],"0x0025":["SQ","1","IntravascularOCTFrameTypeSequence"],"0x0026":["CS","1","OCTZOffsetApplied"],"0x0027":["SQ","1","IntravascularFrameContentSequence"],"0x0028":["FD","1","IntravascularLongitudinalDistance"],"0x0029":["SQ","1","IntravascularOCTFrameContentSequence"],"0x0030":["SS","1","OCTZOffsetCorrection"],"0x0031":["CS","1","CatheterDirectionOfRotation"],"0x0033":["FD","1","SeamLineLocation"],"0x0034":["FD","1","FirstALineLocation"],"0x0036":["US","1","SeamLineIndex"],"0x0038":["US","1","NumberOfPaddedALines"],"0x0039":["CS","1","InterpolationType"],"0x003A":["CS","1","RefractiveIndexApplied"]},"0x0054":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["US","1-n","EnergyWindowVector"],"0x0011":["US","1","NumberOfEnergyWindows"],"0x0012":["SQ","1","EnergyWindowInformationSequence"],"0x0013":["SQ","1","EnergyWindowRangeSequence"],"0x0014":["DS","1","EnergyWindowLowerLimit"],"0x0015":["DS","1","EnergyWindowUpperLimit"],"0x0016":["SQ","1","RadiopharmaceuticalInformationSequence"],"0x0017":["IS","1","ResidualSyringeCounts"],"0x0018":["SH","1","EnergyWindowName"],"0x0020":["US","1-n","DetectorVector"],"0x0021":["US","1","NumberOfDetectors"],"0x0022":["SQ","1","DetectorInformationSequence"],"0x0030":["US","1-n","PhaseVector"],"0x0031":["US","1","NumberOfPhases"],"0x0032":["SQ","1","PhaseInformationSequence"],"0x0033":["US","1","NumberOfFramesInPhase"],"0x0036":["IS","1","PhaseDelay"],"0x0038":["IS","1","PauseBetweenFrames"],"0x0039":["CS","1","PhaseDescription"],"0x0050":["US","1-n","RotationVector"],"0x0051":["US","1","NumberOfRotations"],"0x0052":["SQ","1","RotationInformationSequence"],"0x0053":["US","1","NumberOfFramesInRotation"],"0x0060":["US","1-n","RRIntervalVector"],"0x0061":["US","1","NumberOfRRIntervals"],"0x0062":["SQ","1","GatedInformationSequence"],"0x0063":["SQ","1","DataInformationSequence"],"0x0070":["US","1-n","TimeSlotVector"],"0x0071":["US","1","NumberOfTimeSlots"],"0x0072":["SQ","1","TimeSlotInformationSequence"],"0x0073":["DS","1","TimeSlotTime"],"0x0080":["US","1-n","SliceVector"],"0x0081":["US","1","NumberOfSlices"],"0x0090":["US","1-n","AngularViewVector"],"0x0100":["US","1-n","TimeSliceVector"],"0x0101":["US","1","NumberOfTimeSlices"],"0x0200":["DS","1","StartAngle"],"0x0202":["CS","1","TypeOfDetectorMotion"],"0x0210":["IS","1-n","TriggerVector"],"0x0211":["US","1","NumberOfTriggersInPhase"],"0x0220":["SQ","1","ViewCodeSequence"],"0x0222":["SQ","1","ViewModifierCodeSequence"],"0x0300":["SQ","1","RadionuclideCodeSequence"],"0x0302":["SQ","1","AdministrationRouteCodeSequence"],"0x0304":["SQ","1","RadiopharmaceuticalCodeSequence"],"0x0306":["SQ","1","CalibrationDataSequence"],"0x0308":["US","1","EnergyWindowNumber"],"0x0400":["SH","1","ImageID"],"0x0410":["SQ","1","PatientOrientationCodeSequence"],"0x0412":["SQ","1","PatientOrientationModifierCodeSequence"],"0x0414":["SQ","1","PatientGantryRelationshipCodeSequence"],"0x0500":["CS","1","SliceProgressionDirection"],"0x0501":["CS","1","ScanProgressionDirection"],"0x1000":["CS","2","SeriesType"],"0x1001":["CS","1","Units"],"0x1002":["CS","1","CountsSource"],"0x1004":["CS","1","ReprojectionMethod"],"0x1006":["CS","1","SUVType"],"0x1100":["CS","1","RandomsCorrectionMethod"],"0x1101":["LO","1","AttenuationCorrectionMethod"],"0x1102":["CS","1","DecayCorrection"],"0x1103":["LO","1","ReconstructionMethod"],"0x1104":["LO","1","DetectorLinesOfResponseUsed"],"0x1105":["LO","1","ScatterCorrectionMethod"],"0x1200":["DS","1","AxialAcceptance"],"0x1201":["IS","2","AxialMash"],"0x1202":["IS","1","TransverseMash"],"0x1203":["DS","2","DetectorElementSize"],"0x1210":["DS","1","CoincidenceWindowWidth"],"0x1220":["CS","1-n","SecondaryCountsType"],"0x1300":["DS","1","FrameReferenceTime"],"0x1310":["IS","1","PrimaryPromptsCountsAccumulated"],"0x1311":["IS","1-n","SecondaryCountsAccumulated"],"0x1320":["DS","1","SliceSensitivityFactor"],"0x1321":["DS","1","DecayFactor"],"0x1322":["DS","1","DoseCalibrationFactor"],"0x1323":["DS","1","ScatterFractionFactor"],"0x1324":["DS","1","DeadTimeFactor"],"0x1330":["US","1","ImageIndex"],"0x1400":["CS","1-n","CountsIncluded"],"0x1401":["CS","1","DeadTimeCorrectionFlag"]},"0x0060":{"0x0000":["UL","1","GenericGroupLength"],"0x3000":["SQ","1","HistogramSequence"],"0x3002":["US","1","HistogramNumberOfBins"],"0x3004":["xs","1","HistogramFirstBinValue"],"0x3006":["xs","1","HistogramLastBinValue"],"0x3008":["US","1","HistogramBinWidth"],"0x3010":["LO","1","HistogramExplanation"],"0x3020":["UL","1-n","HistogramData"]},"0x0062":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["CS","1","SegmentationType"],"0x0002":["SQ","1","SegmentSequence"],"0x0003":["SQ","1","SegmentedPropertyCategoryCodeSequence"],"0x0004":["US","1","SegmentNumber"],"0x0005":["LO","1","SegmentLabel"],"0x0006":["ST","1","SegmentDescription"],"0x0008":["CS","1","SegmentAlgorithmType"],"0x0009":["LO","1","SegmentAlgorithmName"],"0x000A":["SQ","1","SegmentIdentificationSequence"],"0x000B":["US","1-n","ReferencedSegmentNumber"],"0x000C":["US","1","RecommendedDisplayGrayscaleValue"],"0x000D":["US","3","RecommendedDisplayCIELabValue"],"0x000E":["US","1","MaximumFractionalValue"],"0x000F":["SQ","1","SegmentedPropertyTypeCodeSequence"],"0x0010":["CS","1","SegmentationFractionalType"],"0x0011":["SQ","1","SegmentedPropertyTypeModifierCodeSequence"],"0x0012":["SQ","1","UsedSegmentsSequence"]},"0x0064":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["SQ","1","DeformableRegistrationSequence"],"0x0003":["UI","1","SourceFrameOfReferenceUID"],"0x0005":["SQ","1","DeformableRegistrationGridSequence"],"0x0007":["UL","3","GridDimensions"],"0x0008":["FD","3","GridResolution"],"0x0009":["OF","1","VectorGridData"],"0x000F":["SQ","1","PreDeformationMatrixRegistrationSequence"],"0x0010":["SQ","1","PostDeformationMatrixRegistrationSequence"]},"0x0066":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["UL","1","NumberOfSurfaces"],"0x0002":["SQ","1","SurfaceSequence"],"0x0003":["UL","1","SurfaceNumber"],"0x0004":["LT","1","SurfaceComments"],"0x0009":["CS","1","SurfaceProcessing"],"0x000A":["FL","1","SurfaceProcessingRatio"],"0x000B":["LO","1","SurfaceProcessingDescription"],"0x000C":["FL","1","RecommendedPresentationOpacity"],"0x000D":["CS","1","RecommendedPresentationType"],"0x000E":["CS","1","FiniteVolume"],"0x0010":["CS","1","Manifold"],"0x0011":["SQ","1","SurfacePointsSequence"],"0x0012":["SQ","1","SurfacePointsNormalsSequence"],"0x0013":["SQ","1","SurfaceMeshPrimitivesSequence"],"0x0015":["UL","1","NumberOfSurfacePoints"],"0x0016":["OF","1","PointCoordinatesData"],"0x0017":["FL","3","PointPositionAccuracy"],"0x0018":["FL","1","MeanPointDistance"],"0x0019":["FL","1","MaximumPointDistance"],"0x001A":["FL","6","PointsBoundingBoxCoordinates"],"0x001B":["FL","3","AxisOfRotation"],"0x001C":["FL","3","CenterOfRotation"],"0x001E":["UL","1","NumberOfVectors"],"0x001F":["US","1","VectorDimensionality"],"0x0020":["FL","1-n","VectorAccuracy"],"0x0021":["OF","1","VectorCoordinateData"],"0x0023":["OW","1","TrianglePointIndexList"],"0x0024":["OW","1","EdgePointIndexList"],"0x0025":["OW","1","VertexPointIndexList"],"0x0026":["SQ","1","TriangleStripSequence"],"0x0027":["SQ","1","TriangleFanSequence"],"0x0028":["SQ","1","LineSequence"],"0x0029":["OW","1","PrimitivePointIndexList"],"0x002A":["UL","1","SurfaceCount"],"0x002B":["SQ","1","ReferencedSurfaceSequence"],"0x002C":["UL","1","ReferencedSurfaceNumber"],"0x002D":["SQ","1","SegmentSurfaceGenerationAlgorithmIdentificationSequence"],"0x002E":["SQ","1","SegmentSurfaceSourceInstanceSequence"],"0x002F":["SQ","1","AlgorithmFamilyCodeSequence"],"0x0030":["SQ","1","AlgorithmNameCodeSequence"],"0x0031":["LO","1","AlgorithmVersion"],"0x0032":["LT","1","AlgorithmParameters"],"0x0034":["SQ","1","FacetSequence"],"0x0035":["SQ","1","SurfaceProcessingAlgorithmIdentificationSequence"],"0x0036":["LO","1","AlgorithmName"],"0x0037":["FL","1","RecommendedPointRadius"],"0x0038":["FL","1","RecommendedLineThickness"],"0x0040":["UL","1-n","LongPrimitivePointIndexList"],"0x0041":["UL","3-3n","LongTrianglePointIndexList"],"0x0042":["UL","2-2n","LongEdgePointIndexList"],"0x0043":["UL","1-n","LongVertexPointIndexList"]},"0x0068":{"0x0000":["UL","1","GenericGroupLength"],"0x6210":["LO","1","ImplantSize"],"0x6221":["LO","1","ImplantTemplateVersion"],"0x6222":["SQ","1","ReplacedImplantTemplateSequence"],"0x6223":["CS","1","ImplantType"],"0x6224":["SQ","1","DerivationImplantTemplateSequence"],"0x6225":["SQ","1","OriginalImplantTemplateSequence"],"0x6226":["DT","1","EffectiveDateTime"],"0x6230":["SQ","1","ImplantTargetAnatomySequence"],"0x6260":["SQ","1","InformationFromManufacturerSequence"],"0x6265":["SQ","1","NotificationFromManufacturerSequence"],"0x6270":["DT","1","InformationIssueDateTime"],"0x6280":["ST","1","InformationSummary"],"0x62A0":["SQ","1","ImplantRegulatoryDisapprovalCodeSequence"],"0x62A5":["FD","1","OverallTemplateSpatialTolerance"],"0x62C0":["SQ","1","HPGLDocumentSequence"],"0x62D0":["US","1","HPGLDocumentID"],"0x62D5":["LO","1","HPGLDocumentLabel"],"0x62E0":["SQ","1","ViewOrientationCodeSequence"],"0x62F0":["FD","9","ViewOrientationModifier"],"0x62F2":["FD","1","HPGLDocumentScaling"],"0x6300":["OB","1","HPGLDocument"],"0x6310":["US","1","HPGLContourPenNumber"],"0x6320":["SQ","1","HPGLPenSequence"],"0x6330":["US","1","HPGLPenNumber"],"0x6340":["LO","1","HPGLPenLabel"],"0x6345":["ST","1","HPGLPenDescription"],"0x6346":["FD","2","RecommendedRotationPoint"],"0x6347":["FD","4","BoundingRectangle"],"0x6350":["US","1-n","ImplantTemplate3DModelSurfaceNumber"],"0x6360":["SQ","1","SurfaceModelDescriptionSequence"],"0x6380":["LO","1","SurfaceModelLabel"],"0x6390":["FD","1","SurfaceModelScalingFactor"],"0x63A0":["SQ","1","MaterialsCodeSequence"],"0x63A4":["SQ","1","CoatingMaterialsCodeSequence"],"0x63A8":["SQ","1","ImplantTypeCodeSequence"],"0x63AC":["SQ","1","FixationMethodCodeSequence"],"0x63B0":["SQ","1","MatingFeatureSetsSequence"],"0x63C0":["US","1","MatingFeatureSetID"],"0x63D0":["LO","1","MatingFeatureSetLabel"],"0x63E0":["SQ","1","MatingFeatureSequence"],"0x63F0":["US","1","MatingFeatureID"],"0x6400":["SQ","1","MatingFeatureDegreeOfFreedomSequence"],"0x6410":["US","1","DegreeOfFreedomID"],"0x6420":["CS","1","DegreeOfFreedomType"],"0x6430":["SQ","1","TwoDMatingFeatureCoordinatesSequence"],"0x6440":["US","1","ReferencedHPGLDocumentID"],"0x6450":["FD","2","TwoDMatingPoint"],"0x6460":["FD","4","TwoDMatingAxes"],"0x6470":["SQ","1","TwoDDegreeOfFreedomSequence"],"0x6490":["FD","3","ThreeDDegreeOfFreedomAxis"],"0x64A0":["FD","2","RangeOfFreedom"],"0x64C0":["FD","3","ThreeDMatingPoint"],"0x64D0":["FD","9","ThreeDMatingAxes"],"0x64F0":["FD","3","TwoDDegreeOfFreedomAxis"],"0x6500":["SQ","1","PlanningLandmarkPointSequence"],"0x6510":["SQ","1","PlanningLandmarkLineSequence"],"0x6520":["SQ","1","PlanningLandmarkPlaneSequence"],"0x6530":["US","1","PlanningLandmarkID"],"0x6540":["LO","1","PlanningLandmarkDescription"],"0x6545":["SQ","1","PlanningLandmarkIdentificationCodeSequence"],"0x6550":["SQ","1","TwoDPointCoordinatesSequence"],"0x6560":["FD","2","TwoDPointCoordinates"],"0x6590":["FD","3","ThreeDPointCoordinates"],"0x65A0":["SQ","1","TwoDLineCoordinatesSequence"],"0x65B0":["FD","4","TwoDLineCoordinates"],"0x65D0":["FD","6","ThreeDLineCoordinates"],"0x65E0":["SQ","1","TwoDPlaneCoordinatesSequence"],"0x65F0":["FD","4","TwoDPlaneIntersection"],"0x6610":["FD","3","ThreeDPlaneOrigin"],"0x6620":["FD","3","ThreeDPlaneNormal"]},"0x0070":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["SQ","1","GraphicAnnotationSequence"],"0x0002":["CS","1","GraphicLayer"],"0x0003":["CS","1","BoundingBoxAnnotationUnits"],"0x0004":["CS","1","AnchorPointAnnotationUnits"],"0x0005":["CS","1","GraphicAnnotationUnits"],"0x0006":["ST","1","UnformattedTextValue"],"0x0008":["SQ","1","TextObjectSequence"],"0x0009":["SQ","1","GraphicObjectSequence"],"0x0010":["FL","2","BoundingBoxTopLeftHandCorner"],"0x0011":["FL","2","BoundingBoxBottomRightHandCorner"],"0x0012":["CS","1","BoundingBoxTextHorizontalJustification"],"0x0014":["FL","2","AnchorPoint"],"0x0015":["CS","1","AnchorPointVisibility"],"0x0020":["US","1","GraphicDimensions"],"0x0021":["US","1","NumberOfGraphicPoints"],"0x0022":["FL","2-n","GraphicData"],"0x0023":["CS","1","GraphicType"],"0x0024":["CS","1","GraphicFilled"],"0x0040":["IS","1","ImageRotationRetired"],"0x0041":["CS","1","ImageHorizontalFlip"],"0x0042":["US","1","ImageRotation"],"0x0050":["US","2","DisplayedAreaTopLeftHandCornerTrial"],"0x0051":["US","2","DisplayedAreaBottomRightHandCornerTrial"],"0x0052":["SL","2","DisplayedAreaTopLeftHandCorner"],"0x0053":["SL","2","DisplayedAreaBottomRightHandCorner"],"0x005A":["SQ","1","DisplayedAreaSelectionSequence"],"0x0060":["SQ","1","GraphicLayerSequence"],"0x0062":["IS","1","GraphicLayerOrder"],"0x0066":["US","1","GraphicLayerRecommendedDisplayGrayscaleValue"],"0x0067":["US","3","GraphicLayerRecommendedDisplayRGBValue"],"0x0068":["LO","1","GraphicLayerDescription"],"0x0080":["CS","1","ContentLabel"],"0x0081":["LO","1","ContentDescription"],"0x0082":["DA","1","PresentationCreationDate"],"0x0083":["TM","1","PresentationCreationTime"],"0x0084":["PN","1","ContentCreatorName"],"0x0086":["SQ","1","ContentCreatorIdentificationCodeSequence"],"0x0087":["SQ","1","AlternateContentDescriptionSequence"],"0x0100":["CS","1","PresentationSizeMode"],"0x0101":["DS","2","PresentationPixelSpacing"],"0x0102":["IS","2","PresentationPixelAspectRatio"],"0x0103":["FL","1","PresentationPixelMagnificationRatio"],"0x0207":["LO","1","GraphicGroupLabel"],"0x0208":["ST","1","GraphicGroupDescription"],"0x0209":["SQ","1","CompoundGraphicSequence"],"0x0226":["UL","1","CompoundGraphicInstanceID"],"0x0227":["LO","1","FontName"],"0x0228":["CS","1","FontNameType"],"0x0229":["LO","1","CSSFontName"],"0x0230":["FD","1","RotationAngle"],"0x0231":["SQ","1","TextStyleSequence"],"0x0232":["SQ","1","LineStyleSequence"],"0x0233":["SQ","1","FillStyleSequence"],"0x0234":["SQ","1","GraphicGroupSequence"],"0x0241":["US","3","TextColorCIELabValue"],"0x0242":["CS","1","HorizontalAlignment"],"0x0243":["CS","1","VerticalAlignment"],"0x0244":["CS","1","ShadowStyle"],"0x0245":["FL","1","ShadowOffsetX"],"0x0246":["FL","1","ShadowOffsetY"],"0x0247":["US","3","ShadowColorCIELabValue"],"0x0248":["CS","1","Underlined"],"0x0249":["CS","1","Bold"],"0x0250":["CS","1","Italic"],"0x0251":["US","3","PatternOnColorCIELabValue"],"0x0252":["US","3","PatternOffColorCIELabValue"],"0x0253":["FL","1","LineThickness"],"0x0254":["CS","1","LineDashingStyle"],"0x0255":["UL","1","LinePattern"],"0x0256":["OB","1","FillPattern"],"0x0257":["CS","1","FillMode"],"0x0258":["FL","1","ShadowOpacity"],"0x0261":["FL","1","GapLength"],"0x0262":["FL","1","DiameterOfVisibility"],"0x0273":["FL","2","RotationPoint"],"0x0274":["CS","1","TickAlignment"],"0x0278":["CS","1","ShowTickLabel"],"0x0279":["CS","1","TickLabelAlignment"],"0x0282":["CS","1","CompoundGraphicUnits"],"0x0284":["FL","1","PatternOnOpacity"],"0x0285":["FL","1","PatternOffOpacity"],"0x0287":["SQ","1","MajorTicksSequence"],"0x0288":["FL","1","TickPosition"],"0x0289":["SH","1","TickLabel"],"0x0294":["CS","1","CompoundGraphicType"],"0x0295":["UL","1","GraphicGroupID"],"0x0306":["CS","1","ShapeType"],"0x0308":["SQ","1","RegistrationSequence"],"0x0309":["SQ","1","MatrixRegistrationSequence"],"0x030A":["SQ","1","MatrixSequence"],"0x030C":["CS","1","FrameOfReferenceTransformationMatrixType"],"0x030D":["SQ","1","RegistrationTypeCodeSequence"],"0x030F":["ST","1","FiducialDescription"],"0x0310":["SH","1","FiducialIdentifier"],"0x0311":["SQ","1","FiducialIdentifierCodeSequence"],"0x0312":["FD","1","ContourUncertaintyRadius"],"0x0314":["SQ","1","UsedFiducialsSequence"],"0x0318":["SQ","1","GraphicCoordinatesDataSequence"],"0x031A":["UI","1","FiducialUID"],"0x031C":["SQ","1","FiducialSetSequence"],"0x031E":["SQ","1","FiducialSequence"],"0x0401":["US","3","GraphicLayerRecommendedDisplayCIELabValue"],"0x0402":["SQ","1","BlendingSequence"],"0x0403":["FL","1","RelativeOpacity"],"0x0404":["SQ","1","ReferencedSpatialRegistrationSequence"],"0x0405":["CS","1","BlendingPosition"]},"0x0072":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["SH","1","HangingProtocolName"],"0x0004":["LO","1","HangingProtocolDescription"],"0x0006":["CS","1","HangingProtocolLevel"],"0x0008":["LO","1","HangingProtocolCreator"],"0x000A":["DT","1","HangingProtocolCreationDateTime"],"0x000C":["SQ","1","HangingProtocolDefinitionSequence"],"0x000E":["SQ","1","HangingProtocolUserIdentificationCodeSequence"],"0x0010":["LO","1","HangingProtocolUserGroupName"],"0x0012":["SQ","1","SourceHangingProtocolSequence"],"0x0014":["US","1","NumberOfPriorsReferenced"],"0x0020":["SQ","1","ImageSetsSequence"],"0x0022":["SQ","1","ImageSetSelectorSequence"],"0x0024":["CS","1","ImageSetSelectorUsageFlag"],"0x0026":["AT","1","SelectorAttribute"],"0x0028":["US","1","SelectorValueNumber"],"0x0030":["SQ","1","TimeBasedImageSetsSequence"],"0x0032":["US","1","ImageSetNumber"],"0x0034":["CS","1","ImageSetSelectorCategory"],"0x0038":["US","2","RelativeTime"],"0x003A":["CS","1","RelativeTimeUnits"],"0x003C":["SS","2","AbstractPriorValue"],"0x003E":["SQ","1","AbstractPriorCodeSequence"],"0x0040":["LO","1","ImageSetLabel"],"0x0050":["CS","1","SelectorAttributeVR"],"0x0052":["AT","1-n","SelectorSequencePointer"],"0x0054":["LO","1-n","SelectorSequencePointerPrivateCreator"],"0x0056":["LO","1","SelectorAttributePrivateCreator"],"0x0060":["AT","1-n","SelectorATValue"],"0x0062":["CS","1-n","SelectorCSValue"],"0x0064":["IS","1-n","SelectorISValue"],"0x0066":["LO","1-n","SelectorLOValue"],"0x0068":["LT","1","SelectorLTValue"],"0x006A":["PN","1-n","SelectorPNValue"],"0x006C":["SH","1-n","SelectorSHValue"],"0x006E":["ST","1","SelectorSTValue"],"0x0070":["UT","1","SelectorUTValue"],"0x0072":["DS","1-n","SelectorDSValue"],"0x0074":["FD","1-n","SelectorFDValue"],"0x0076":["FL","1-n","SelectorFLValue"],"0x0078":["UL","1-n","SelectorULValue"],"0x007A":["US","1-n","SelectorUSValue"],"0x007C":["SL","1-n","SelectorSLValue"],"0x007E":["SS","1-n","SelectorSSValue"],"0x007F":["UI","1-n","SelectorUIValue"],"0x0080":["SQ","1","SelectorCodeSequenceValue"],"0x0100":["US","1","NumberOfScreens"],"0x0102":["SQ","1","NominalScreenDefinitionSequence"],"0x0104":["US","1","NumberOfVerticalPixels"],"0x0106":["US","1","NumberOfHorizontalPixels"],"0x0108":["FD","4","DisplayEnvironmentSpatialPosition"],"0x010A":["US","1","ScreenMinimumGrayscaleBitDepth"],"0x010C":["US","1","ScreenMinimumColorBitDepth"],"0x010E":["US","1","ApplicationMaximumRepaintTime"],"0x0200":["SQ","1","DisplaySetsSequence"],"0x0202":["US","1","DisplaySetNumber"],"0x0203":["LO","1","DisplaySetLabel"],"0x0204":["US","1","DisplaySetPresentationGroup"],"0x0206":["LO","1","DisplaySetPresentationGroupDescription"],"0x0208":["CS","1","PartialDataDisplayHandling"],"0x0210":["SQ","1","SynchronizedScrollingSequence"],"0x0212":["US","2-n","DisplaySetScrollingGroup"],"0x0214":["SQ","1","NavigationIndicatorSequence"],"0x0216":["US","1","NavigationDisplaySet"],"0x0218":["US","1-n","ReferenceDisplaySets"],"0x0300":["SQ","1","ImageBoxesSequence"],"0x0302":["US","1","ImageBoxNumber"],"0x0304":["CS","1","ImageBoxLayoutType"],"0x0306":["US","1","ImageBoxTileHorizontalDimension"],"0x0308":["US","1","ImageBoxTileVerticalDimension"],"0x0310":["CS","1","ImageBoxScrollDirection"],"0x0312":["CS","1","ImageBoxSmallScrollType"],"0x0314":["US","1","ImageBoxSmallScrollAmount"],"0x0316":["CS","1","ImageBoxLargeScrollType"],"0x0318":["US","1","ImageBoxLargeScrollAmount"],"0x0320":["US","1","ImageBoxOverlapPriority"],"0x0330":["FD","1","CineRelativeToRealTime"],"0x0400":["SQ","1","FilterOperationsSequence"],"0x0402":["CS","1","FilterByCategory"],"0x0404":["CS","1","FilterByAttributePresence"],"0x0406":["CS","1","FilterByOperator"],"0x0420":["US","3","StructuredDisplayBackgroundCIELabValue"],"0x0421":["US","3","EmptyImageBoxCIELabValue"],"0x0422":["SQ","1","StructuredDisplayImageBoxSequence"],"0x0424":["SQ","1","StructuredDisplayTextBoxSequence"],"0x0427":["SQ","1","ReferencedFirstFrameSequence"],"0x0430":["SQ","1","ImageBoxSynchronizationSequence"],"0x0432":["US","2-n","SynchronizedImageBoxList"],"0x0434":["CS","1","TypeOfSynchronization"],"0x0500":["CS","1","BlendingOperationType"],"0x0510":["CS","1","ReformattingOperationType"],"0x0512":["FD","1","ReformattingThickness"],"0x0514":["FD","1","ReformattingInterval"],"0x0516":["CS","1","ReformattingOperationInitialViewDirection"],"0x0520":["CS","1-n","ThreeDRenderingType"],"0x0600":["SQ","1","SortingOperationsSequence"],"0x0602":["CS","1","SortByCategory"],"0x0604":["CS","1","SortingDirection"],"0x0700":["CS","2","DisplaySetPatientOrientation"],"0x0702":["CS","1","VOIType"],"0x0704":["CS","1","PseudoColorType"],"0x0705":["SQ","1","PseudoColorPaletteInstanceReferenceSequence"],"0x0706":["CS","1","ShowGrayscaleInverted"],"0x0710":["CS","1","ShowImageTrueSizeFlag"],"0x0712":["CS","1","ShowGraphicAnnotationFlag"],"0x0714":["CS","1","ShowPatientDemographicsFlag"],"0x0716":["CS","1","ShowAcquisitionTechniquesFlag"],"0x0717":["CS","1","DisplaySetHorizontalJustification"],"0x0718":["CS","1","DisplaySetVerticalJustification"]},"0x0074":{"0x0000":["UL","1","GenericGroupLength"],"0x0120":["FD","1","ContinuationStartMeterset"],"0x0121":["FD","1","ContinuationEndMeterset"],"0x1000":["CS","1","ProcedureStepState"],"0x1002":["SQ","1","ProcedureStepProgressInformationSequence"],"0x1004":["DS","1","ProcedureStepProgress"],"0x1006":["ST","1","ProcedureStepProgressDescription"],"0x1008":["SQ","1","ProcedureStepCommunicationsURISequence"],"0x100A":["UR","1","ContactURI"],"0x100C":["LO","1","ContactDisplayName"],"0x100E":["SQ","1","ProcedureStepDiscontinuationReasonCodeSequence"],"0x1020":["SQ","1","BeamTaskSequence"],"0x1022":["CS","1","BeamTaskType"],"0x1024":["IS","1","BeamOrderIndexTrial"],"0x1025":["CS","1","AutosequenceFlag"],"0x1026":["FD","1","TableTopVerticalAdjustedPosition"],"0x1027":["FD","1","TableTopLongitudinalAdjustedPosition"],"0x1028":["FD","1","TableTopLateralAdjustedPosition"],"0x102A":["FD","1","PatientSupportAdjustedAngle"],"0x102B":["FD","1","TableTopEccentricAdjustedAngle"],"0x102C":["FD","1","TableTopPitchAdjustedAngle"],"0x102D":["FD","1","TableTopRollAdjustedAngle"],"0x1030":["SQ","1","DeliveryVerificationImageSequence"],"0x1032":["CS","1","VerificationImageTiming"],"0x1034":["CS","1","DoubleExposureFlag"],"0x1036":["CS","1","DoubleExposureOrdering"],"0x1038":["DS","1","DoubleExposureMetersetTrial"],"0x103A":["DS","4","DoubleExposureFieldDeltaTrial"],"0x1040":["SQ","1","RelatedReferenceRTImageSequence"],"0x1042":["SQ","1","GeneralMachineVerificationSequence"],"0x1044":["SQ","1","ConventionalMachineVerificationSequence"],"0x1046":["SQ","1","IonMachineVerificationSequence"],"0x1048":["SQ","1","FailedAttributesSequence"],"0x104A":["SQ","1","OverriddenAttributesSequence"],"0x104C":["SQ","1","ConventionalControlPointVerificationSequence"],"0x104E":["SQ","1","IonControlPointVerificationSequence"],"0x1050":["SQ","1","AttributeOccurrenceSequence"],"0x1052":["AT","1","AttributeOccurrencePointer"],"0x1054":["UL","1","AttributeItemSelector"],"0x1056":["LO","1","AttributeOccurrencePrivateCreator"],"0x1057":["IS","1-n","SelectorSequencePointerItems"],"0x1200":["CS","1","ScheduledProcedureStepPriority"],"0x1202":["LO","1","WorklistLabel"],"0x1204":["LO","1","ProcedureStepLabel"],"0x1210":["SQ","1","ScheduledProcessingParametersSequence"],"0x1212":["SQ","1","PerformedProcessingParametersSequence"],"0x1216":["SQ","1","UnifiedProcedureStepPerformedProcedureSequence"],"0x1220":["SQ","1","RelatedProcedureStepSequence"],"0x1222":["LO","1","ProcedureStepRelationshipType"],"0x1224":["SQ","1","ReplacedProcedureStepSequence"],"0x1230":["LO","1","DeletionLock"],"0x1234":["AE","1","ReceivingAE"],"0x1236":["AE","1","RequestingAE"],"0x1238":["LT","1","ReasonForCancellation"],"0x1242":["CS","1","SCPStatus"],"0x1244":["CS","1","SubscriptionListStatus"],"0x1246":["CS","1","UnifiedProcedureStepListStatus"],"0x1324":["UL","1","BeamOrderIndex"],"0x1338":["FD","1","DoubleExposureMeterset"],"0x133A":["FD","4","DoubleExposureFieldDelta"]},"0x0076":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["LO","1","ImplantAssemblyTemplateName"],"0x0003":["LO","1","ImplantAssemblyTemplateIssuer"],"0x0006":["LO","1","ImplantAssemblyTemplateVersion"],"0x0008":["SQ","1","ReplacedImplantAssemblyTemplateSequence"],"0x000A":["CS","1","ImplantAssemblyTemplateType"],"0x000C":["SQ","1","OriginalImplantAssemblyTemplateSequence"],"0x000E":["SQ","1","DerivationImplantAssemblyTemplateSequence"],"0x0010":["SQ","1","ImplantAssemblyTemplateTargetAnatomySequence"],"0x0020":["SQ","1","ProcedureTypeCodeSequence"],"0x0030":["LO","1","SurgicalTechnique"],"0x0032":["SQ","1","ComponentTypesSequence"],"0x0034":["CS","1","ComponentTypeCodeSequence"],"0x0036":["CS","1","ExclusiveComponentType"],"0x0038":["CS","1","MandatoryComponentType"],"0x0040":["SQ","1","ComponentSequence"],"0x0055":["US","1","ComponentID"],"0x0060":["SQ","1","ComponentAssemblySequence"],"0x0070":["US","1","Component1ReferencedID"],"0x0080":["US","1","Component1ReferencedMatingFeatureSetID"],"0x0090":["US","1","Component1ReferencedMatingFeatureID"],"0x00A0":["US","1","Component2ReferencedID"],"0x00B0":["US","1","Component2ReferencedMatingFeatureSetID"],"0x00C0":["US","1","Component2ReferencedMatingFeatureID"]},"0x0078":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["LO","1","ImplantTemplateGroupName"],"0x0010":["ST","1","ImplantTemplateGroupDescription"],"0x0020":["LO","1","ImplantTemplateGroupIssuer"],"0x0024":["LO","1","ImplantTemplateGroupVersion"],"0x0026":["SQ","1","ReplacedImplantTemplateGroupSequence"],"0x0028":["SQ","1","ImplantTemplateGroupTargetAnatomySequence"],"0x002A":["SQ","1","ImplantTemplateGroupMembersSequence"],"0x002E":["US","1","ImplantTemplateGroupMemberID"],"0x0050":["FD","3","ThreeDImplantTemplateGroupMemberMatchingPoint"],"0x0060":["FD","9","ThreeDImplantTemplateGroupMemberMatchingAxes"],"0x0070":["SQ","1","ImplantTemplateGroupMemberMatching2DCoordinatesSequence"],"0x0090":["FD","2","TwoDImplantTemplateGroupMemberMatchingPoint"],"0x00A0":["FD","4","TwoDImplantTemplateGroupMemberMatchingAxes"],"0x00B0":["SQ","1","ImplantTemplateGroupVariationDimensionSequence"],"0x00B2":["LO","1","ImplantTemplateGroupVariationDimensionName"],"0x00B4":["SQ","1","ImplantTemplateGroupVariationDimensionRankSequence"],"0x00B6":["US","1","ReferencedImplantTemplateGroupMemberID"],"0x00B8":["US","1","ImplantTemplateGroupVariationDimensionRank"]},"0x0080":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["SQ","1","SurfaceScanAcquisitionTypeCodeSequence"],"0x0002":["SQ","1","SurfaceScanModeCodeSequence"],"0x0003":["SQ","1","RegistrationMethodCodeSequence"],"0x0004":["FD","1","ShotDurationTime"],"0x0005":["FD","1","ShotOffsetTime"],"0x0006":["US","1-n","SurfacePointPresentationValueData"],"0x0007":["US","3-3n","SurfacePointColorCIELabValueData"],"0x0008":["SQ","1","UVMappingSequence"],"0x0009":["SH","1","TextureLabel"],"0x0010":["OF","1-n","UValueData"],"0x0011":["OF","1-n","VValueData"],"0x0012":["SQ","1","ReferencedTextureSequence"],"0x0013":["SQ","1","ReferencedSurfaceDataSequence"]},"0x0088":{"0x0000":["UL","1","GenericGroupLength"],"0x0130":["SH","1","StorageMediaFileSetID"],"0x0140":["UI","1","StorageMediaFileSetUID"],"0x0200":["SQ","1","IconImageSequence"],"0x0904":["LO","1","TopicTitle"],"0x0906":["ST","1","TopicSubject"],"0x0910":["LO","1","TopicAuthor"],"0x0912":["LO","1-32","TopicKeywords"]},"0x0100":{"0x0000":["UL","1","GenericGroupLength"],"0x0410":["CS","1","SOPInstanceStatus"],"0x0420":["DT","1","SOPAuthorizationDateTime"],"0x0424":["LT","1","SOPAuthorizationComment"],"0x0426":["LO","1","AuthorizationEquipmentCertificationNumber"]},"0x0400":{"0x0000":["UL","1","GenericGroupLength"],"0x0005":["US","1","MACIDNumber"],"0x0010":["UI","1","MACCalculationTransferSyntaxUID"],"0x0015":["CS","1","MACAlgorithm"],"0x0020":["AT","1-n","DataElementsSigned"],"0x0100":["UI","1","DigitalSignatureUID"],"0x0105":["DT","1","DigitalSignatureDateTime"],"0x0110":["CS","1","CertificateType"],"0x0115":["OB","1","CertificateOfSigner"],"0x0120":["OB","1","Signature"],"0x0305":["CS","1","CertifiedTimestampType"],"0x0310":["OB","1","CertifiedTimestamp"],"0x0401":["SQ","1","DigitalSignaturePurposeCodeSequence"],"0x0402":["SQ","1","ReferencedDigitalSignatureSequence"],"0x0403":["SQ","1","ReferencedSOPInstanceMACSequence"],"0x0404":["OB","1","MAC"],"0x0500":["SQ","1","EncryptedAttributesSequence"],"0x0510":["UI","1","EncryptedContentTransferSyntaxUID"],"0x0520":["OB","1","EncryptedContent"],"0x0550":["SQ","1","ModifiedAttributesSequence"],"0x0561":["SQ","1","OriginalAttributesSequence"],"0x0562":["DT","1","AttributeModificationDateTime"],"0x0563":["LO","1","ModifyingSystem"],"0x0564":["LO","1","SourceOfPreviousValues"],"0x0565":["CS","1","ReasonForTheAttributeModification"]},"0x1000":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["US","3","EscapeTriplet"],"0x0011":["US","3","RunLengthTriplet"],"0x0012":["US","1","HuffmanTableSize"],"0x0013":["US","3","HuffmanTableTriplet"],"0x0014":["US","1","ShiftTableSize"],"0x0015":["US","3","ShiftTableTriplet"]},"0x1010":{"0x0000":["UL","1","GenericGroupLength"],"0x0004":["US","1-n","ZonalMap"]},"0x2000":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["IS","1","NumberOfCopies"],"0x001E":["SQ","1","PrinterConfigurationSequence"],"0x0020":["CS","1","PrintPriority"],"0x0030":["CS","1","MediumType"],"0x0040":["CS","1","FilmDestination"],"0x0050":["LO","1","FilmSessionLabel"],"0x0060":["IS","1","MemoryAllocation"],"0x0061":["IS","1","MaximumMemoryAllocation"],"0x0062":["CS","1","ColorImagePrintingFlag"],"0x0063":["CS","1","CollationFlag"],"0x0065":["CS","1","AnnotationFlag"],"0x0067":["CS","1","ImageOverlayFlag"],"0x0069":["CS","1","PresentationLUTFlag"],"0x006A":["CS","1","ImageBoxPresentationLUTFlag"],"0x00A0":["US","1","MemoryBitDepth"],"0x00A1":["US","1","PrintingBitDepth"],"0x00A2":["SQ","1","MediaInstalledSequence"],"0x00A4":["SQ","1","OtherMediaAvailableSequence"],"0x00A8":["SQ","1","SupportedImageDisplayFormatsSequence"],"0x0500":["SQ","1","ReferencedFilmBoxSequence"],"0x0510":["SQ","1","ReferencedStoredPrintSequence"]},"0x2010":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["ST","1","ImageDisplayFormat"],"0x0030":["CS","1","AnnotationDisplayFormatID"],"0x0040":["CS","1","FilmOrientation"],"0x0050":["CS","1","FilmSizeID"],"0x0052":["CS","1","PrinterResolutionID"],"0x0054":["CS","1","DefaultPrinterResolutionID"],"0x0060":["CS","1","MagnificationType"],"0x0080":["CS","1","SmoothingType"],"0x00A6":["CS","1","DefaultMagnificationType"],"0x00A7":["CS","1-n","OtherMagnificationTypesAvailable"],"0x00A8":["CS","1","DefaultSmoothingType"],"0x00A9":["CS","1-n","OtherSmoothingTypesAvailable"],"0x0100":["CS","1","BorderDensity"],"0x0110":["CS","1","EmptyImageDensity"],"0x0120":["US","1","MinDensity"],"0x0130":["US","1","MaxDensity"],"0x0140":["CS","1","Trim"],"0x0150":["ST","1","ConfigurationInformation"],"0x0152":["LT","1","ConfigurationInformationDescription"],"0x0154":["IS","1","MaximumCollatedFilms"],"0x015E":["US","1","Illumination"],"0x0160":["US","1","ReflectedAmbientLight"],"0x0376":["DS","2","PrinterPixelSpacing"],"0x0500":["SQ","1","ReferencedFilmSessionSequence"],"0x0510":["SQ","1","ReferencedImageBoxSequence"],"0x0520":["SQ","1","ReferencedBasicAnnotationBoxSequence"]},"0x2020":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["US","1","ImageBoxPosition"],"0x0020":["CS","1","Polarity"],"0x0030":["DS","1","RequestedImageSize"],"0x0040":["CS","1","RequestedDecimateCropBehavior"],"0x0050":["CS","1","RequestedResolutionID"],"0x00A0":["CS","1","RequestedImageSizeFlag"],"0x00A2":["CS","1","DecimateCropResult"],"0x0110":["SQ","1","BasicGrayscaleImageSequence"],"0x0111":["SQ","1","BasicColorImageSequence"],"0x0130":["SQ","1","ReferencedImageOverlayBoxSequence"],"0x0140":["SQ","1","ReferencedVOILUTBoxSequence"]},"0x2030":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["US","1","AnnotationPosition"],"0x0020":["LO","1","TextString"]},"0x2040":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["SQ","1","ReferencedOverlayPlaneSequence"],"0x0011":["US","1-99","ReferencedOverlayPlaneGroups"],"0x0020":["SQ","1","OverlayPixelDataSequence"],"0x0060":["CS","1","OverlayMagnificationType"],"0x0070":["CS","1","OverlaySmoothingType"],"0x0072":["CS","1","OverlayOrImageMagnification"],"0x0074":["US","1","MagnifyToNumberOfColumns"],"0x0080":["CS","1","OverlayForegroundDensity"],"0x0082":["CS","1","OverlayBackgroundDensity"],"0x0090":["CS","1","OverlayMode"],"0x0100":["CS","1","ThresholdDensity"],"0x0500":["SQ","1","ReferencedImageBoxSequenceRetired"]},"0x2050":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["SQ","1","PresentationLUTSequence"],"0x0020":["CS","1","PresentationLUTShape"],"0x0500":["SQ","1","ReferencedPresentationLUTSequence"]},"0x2100":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["SH","1","PrintJobID"],"0x0020":["CS","1","ExecutionStatus"],"0x0030":["CS","1","ExecutionStatusInfo"],"0x0040":["DA","1","CreationDate"],"0x0050":["TM","1","CreationTime"],"0x0070":["AE","1","Originator"],"0x0140":["AE","1","DestinationAE"],"0x0160":["SH","1","OwnerID"],"0x0170":["IS","1","NumberOfFilms"],"0x0500":["SQ","1","ReferencedPrintJobSequencePullStoredPrint"]},"0x2110":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["CS","1","PrinterStatus"],"0x0020":["CS","1","PrinterStatusInfo"],"0x0030":["LO","1","PrinterName"],"0x0099":["SH","1","PrintQueueID"]},"0x2120":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["CS","1","QueueStatus"],"0x0050":["SQ","1","PrintJobDescriptionSequence"],"0x0070":["SQ","1","ReferencedPrintJobSequence"]},"0x2130":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["SQ","1","PrintManagementCapabilitiesSequence"],"0x0015":["SQ","1","PrinterCharacteristicsSequence"],"0x0030":["SQ","1","FilmBoxContentSequence"],"0x0040":["SQ","1","ImageBoxContentSequence"],"0x0050":["SQ","1","AnnotationContentSequence"],"0x0060":["SQ","1","ImageOverlayBoxContentSequence"],"0x0080":["SQ","1","PresentationLUTContentSequence"],"0x00A0":["SQ","1","ProposedStudySequence"],"0x00C0":["SQ","1","OriginalImageSequence"]},"0x2200":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["CS","1","LabelUsingInformationExtractedFromInstances"],"0x0002":["UT","1","LabelText"],"0x0003":["CS","1","LabelStyleSelection"],"0x0004":["LT","1","MediaDisposition"],"0x0005":["LT","1","BarcodeValue"],"0x0006":["CS","1","BarcodeSymbology"],"0x0007":["CS","1","AllowMediaSplitting"],"0x0008":["CS","1","IncludeNonDICOMObjects"],"0x0009":["CS","1","IncludeDisplayApplication"],"0x000A":["CS","1","PreserveCompositeInstancesAfterMediaCreation"],"0x000B":["US","1","TotalNumberOfPiecesOfMediaCreated"],"0x000C":["LO","1","RequestedMediaApplicationProfile"],"0x000D":["SQ","1","ReferencedStorageMediaSequence"],"0x000E":["AT","1-n","FailureAttributes"],"0x000F":["CS","1","AllowLossyCompression"],"0x0020":["CS","1","RequestPriority"]},"0x3002":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["SH","1","RTImageLabel"],"0x0003":["LO","1","RTImageName"],"0x0004":["ST","1","RTImageDescription"],"0x000A":["CS","1","ReportedValuesOrigin"],"0x000C":["CS","1","RTImagePlane"],"0x000D":["DS","3","XRayImageReceptorTranslation"],"0x000E":["DS","1","XRayImageReceptorAngle"],"0x0010":["DS","6","RTImageOrientation"],"0x0011":["DS","2","ImagePlanePixelSpacing"],"0x0012":["DS","2","RTImagePosition"],"0x0020":["SH","1","RadiationMachineName"],"0x0022":["DS","1","RadiationMachineSAD"],"0x0024":["DS","1","RadiationMachineSSD"],"0x0026":["DS","1","RTImageSID"],"0x0028":["DS","1","SourceToReferenceObjectDistance"],"0x0029":["IS","1","FractionNumber"],"0x0030":["SQ","1","ExposureSequence"],"0x0032":["DS","1","MetersetExposure"],"0x0034":["DS","4","DiaphragmPosition"],"0x0040":["SQ","1","FluenceMapSequence"],"0x0041":["CS","1","FluenceDataSource"],"0x0042":["DS","1","FluenceDataScale"],"0x0050":["SQ","1","PrimaryFluenceModeSequence"],"0x0051":["CS","1","FluenceMode"],"0x0052":["SH","1","FluenceModeID"]},"0x3004":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["CS","1","DVHType"],"0x0002":["CS","1","DoseUnits"],"0x0004":["CS","1","DoseType"],"0x0005":["CS","1","SpatialTransformOfDose"],"0x0006":["LO","1","DoseComment"],"0x0008":["DS","3","NormalizationPoint"],"0x000A":["CS","1","DoseSummationType"],"0x000C":["DS","2-n","GridFrameOffsetVector"],"0x000E":["DS","1","DoseGridScaling"],"0x0010":["SQ","1","RTDoseROISequence"],"0x0012":["DS","1","DoseValue"],"0x0014":["CS","1-3","TissueHeterogeneityCorrection"],"0x0040":["DS","3","DVHNormalizationPoint"],"0x0042":["DS","1","DVHNormalizationDoseValue"],"0x0050":["SQ","1","DVHSequence"],"0x0052":["DS","1","DVHDoseScaling"],"0x0054":["CS","1","DVHVolumeUnits"],"0x0056":["IS","1","DVHNumberOfBins"],"0x0058":["DS","2-2n","DVHData"],"0x0060":["SQ","1","DVHReferencedROISequence"],"0x0062":["CS","1","DVHROIContributionType"],"0x0070":["DS","1","DVHMinimumDose"],"0x0072":["DS","1","DVHMaximumDose"],"0x0074":["DS","1","DVHMeanDose"]},"0x3006":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["SH","1","StructureSetLabel"],"0x0004":["LO","1","StructureSetName"],"0x0006":["ST","1","StructureSetDescription"],"0x0008":["DA","1","StructureSetDate"],"0x0009":["TM","1","StructureSetTime"],"0x0010":["SQ","1","ReferencedFrameOfReferenceSequence"],"0x0012":["SQ","1","RTReferencedStudySequence"],"0x0014":["SQ","1","RTReferencedSeriesSequence"],"0x0016":["SQ","1","ContourImageSequence"],"0x0018":["SQ","1","PredecessorStructureSetSequence"],"0x0020":["SQ","1","StructureSetROISequence"],"0x0022":["IS","1","ROINumber"],"0x0024":["UI","1","ReferencedFrameOfReferenceUID"],"0x0026":["LO","1","ROIName"],"0x0028":["ST","1","ROIDescription"],"0x002A":["IS","3","ROIDisplayColor"],"0x002C":["DS","1","ROIVolume"],"0x0030":["SQ","1","RTRelatedROISequence"],"0x0033":["CS","1","RTROIRelationship"],"0x0036":["CS","1","ROIGenerationAlgorithm"],"0x0038":["LO","1","ROIGenerationDescription"],"0x0039":["SQ","1","ROIContourSequence"],"0x0040":["SQ","1","ContourSequence"],"0x0042":["CS","1","ContourGeometricType"],"0x0044":["DS","1","ContourSlabThickness"],"0x0045":["DS","3","ContourOffsetVector"],"0x0046":["IS","1","NumberOfContourPoints"],"0x0048":["IS","1","ContourNumber"],"0x0049":["IS","1-n","AttachedContours"],"0x0050":["DS","3-3n","ContourData"],"0x0080":["SQ","1","RTROIObservationsSequence"],"0x0082":["IS","1","ObservationNumber"],"0x0084":["IS","1","ReferencedROINumber"],"0x0085":["SH","1","ROIObservationLabel"],"0x0086":["SQ","1","RTROIIdentificationCodeSequence"],"0x0088":["ST","1","ROIObservationDescription"],"0x00A0":["SQ","1","RelatedRTROIObservationsSequence"],"0x00A4":["CS","1","RTROIInterpretedType"],"0x00A6":["PN","1","ROIInterpreter"],"0x00B0":["SQ","1","ROIPhysicalPropertiesSequence"],"0x00B2":["CS","1","ROIPhysicalProperty"],"0x00B4":["DS","1","ROIPhysicalPropertyValue"],"0x00B6":["SQ","1","ROIElementalCompositionSequence"],"0x00B7":["US","1","ROIElementalCompositionAtomicNumber"],"0x00B8":["FL","1","ROIElementalCompositionAtomicMassFraction"],"0x00B9":["SQ","1","AdditionalRTROIIdentificationCodeSequence"],"0x00C0":["SQ","1","FrameOfReferenceRelationshipSequence"],"0x00C2":["UI","1","RelatedFrameOfReferenceUID"],"0x00C4":["CS","1","FrameOfReferenceTransformationType"],"0x00C6":["DS","16","FrameOfReferenceTransformationMatrix"],"0x00C8":["LO","1","FrameOfReferenceTransformationComment"]},"0x3008":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["SQ","1","MeasuredDoseReferenceSequence"],"0x0012":["ST","1","MeasuredDoseDescription"],"0x0014":["CS","1","MeasuredDoseType"],"0x0016":["DS","1","MeasuredDoseValue"],"0x0020":["SQ","1","TreatmentSessionBeamSequence"],"0x0021":["SQ","1","TreatmentSessionIonBeamSequence"],"0x0022":["IS","1","CurrentFractionNumber"],"0x0024":["DA","1","TreatmentControlPointDate"],"0x0025":["TM","1","TreatmentControlPointTime"],"0x002A":["CS","1","TreatmentTerminationStatus"],"0x002B":["SH","1","TreatmentTerminationCode"],"0x002C":["CS","1","TreatmentVerificationStatus"],"0x0030":["SQ","1","ReferencedTreatmentRecordSequence"],"0x0032":["DS","1","SpecifiedPrimaryMeterset"],"0x0033":["DS","1","SpecifiedSecondaryMeterset"],"0x0036":["DS","1","DeliveredPrimaryMeterset"],"0x0037":["DS","1","DeliveredSecondaryMeterset"],"0x003A":["DS","1","SpecifiedTreatmentTime"],"0x003B":["DS","1","DeliveredTreatmentTime"],"0x0040":["SQ","1","ControlPointDeliverySequence"],"0x0041":["SQ","1","IonControlPointDeliverySequence"],"0x0042":["DS","1","SpecifiedMeterset"],"0x0044":["DS","1","DeliveredMeterset"],"0x0045":["FL","1","MetersetRateSet"],"0x0046":["FL","1","MetersetRateDelivered"],"0x0047":["FL","1-n","ScanSpotMetersetsDelivered"],"0x0048":["DS","1","DoseRateDelivered"],"0x0050":["SQ","1","TreatmentSummaryCalculatedDoseReferenceSequence"],"0x0052":["DS","1","CumulativeDoseToDoseReference"],"0x0054":["DA","1","FirstTreatmentDate"],"0x0056":["DA","1","MostRecentTreatmentDate"],"0x005A":["IS","1","NumberOfFractionsDelivered"],"0x0060":["SQ","1","OverrideSequence"],"0x0061":["AT","1","ParameterSequencePointer"],"0x0062":["AT","1","OverrideParameterPointer"],"0x0063":["IS","1","ParameterItemIndex"],"0x0064":["IS","1","MeasuredDoseReferenceNumber"],"0x0065":["AT","1","ParameterPointer"],"0x0066":["ST","1","OverrideReason"],"0x0068":["SQ","1","CorrectedParameterSequence"],"0x006A":["FL","1","CorrectionValue"],"0x0070":["SQ","1","CalculatedDoseReferenceSequence"],"0x0072":["IS","1","CalculatedDoseReferenceNumber"],"0x0074":["ST","1","CalculatedDoseReferenceDescription"],"0x0076":["DS","1","CalculatedDoseReferenceDoseValue"],"0x0078":["DS","1","StartMeterset"],"0x007A":["DS","1","EndMeterset"],"0x0080":["SQ","1","ReferencedMeasuredDoseReferenceSequence"],"0x0082":["IS","1","ReferencedMeasuredDoseReferenceNumber"],"0x0090":["SQ","1","ReferencedCalculatedDoseReferenceSequence"],"0x0092":["IS","1","ReferencedCalculatedDoseReferenceNumber"],"0x00A0":["SQ","1","BeamLimitingDeviceLeafPairsSequence"],"0x00B0":["SQ","1","RecordedWedgeSequence"],"0x00C0":["SQ","1","RecordedCompensatorSequence"],"0x00D0":["SQ","1","RecordedBlockSequence"],"0x00E0":["SQ","1","TreatmentSummaryMeasuredDoseReferenceSequence"],"0x00F0":["SQ","1","RecordedSnoutSequence"],"0x00F2":["SQ","1","RecordedRangeShifterSequence"],"0x00F4":["SQ","1","RecordedLateralSpreadingDeviceSequence"],"0x00F6":["SQ","1","RecordedRangeModulatorSequence"],"0x0100":["SQ","1","RecordedSourceSequence"],"0x0105":["LO","1","SourceSerialNumber"],"0x0110":["SQ","1","TreatmentSessionApplicationSetupSequence"],"0x0116":["CS","1","ApplicationSetupCheck"],"0x0120":["SQ","1","RecordedBrachyAccessoryDeviceSequence"],"0x0122":["IS","1","ReferencedBrachyAccessoryDeviceNumber"],"0x0130":["SQ","1","RecordedChannelSequence"],"0x0132":["DS","1","SpecifiedChannelTotalTime"],"0x0134":["DS","1","DeliveredChannelTotalTime"],"0x0136":["IS","1","SpecifiedNumberOfPulses"],"0x0138":["IS","1","DeliveredNumberOfPulses"],"0x013A":["DS","1","SpecifiedPulseRepetitionInterval"],"0x013C":["DS","1","DeliveredPulseRepetitionInterval"],"0x0140":["SQ","1","RecordedSourceApplicatorSequence"],"0x0142":["IS","1","ReferencedSourceApplicatorNumber"],"0x0150":["SQ","1","RecordedChannelShieldSequence"],"0x0152":["IS","1","ReferencedChannelShieldNumber"],"0x0160":["SQ","1","BrachyControlPointDeliveredSequence"],"0x0162":["DA","1","SafePositionExitDate"],"0x0164":["TM","1","SafePositionExitTime"],"0x0166":["DA","1","SafePositionReturnDate"],"0x0168":["TM","1","SafePositionReturnTime"],"0x0171":["SQ","1","PulseSpecificBrachyControlPointDeliveredSequence"],"0x0172":["US","1","PulseNumber"],"0x0173":["SQ","1","BrachyPulseControlPointDeliveredSequence"],"0x0200":["CS","1","CurrentTreatmentStatus"],"0x0202":["ST","1","TreatmentStatusComment"],"0x0220":["SQ","1","FractionGroupSummarySequence"],"0x0223":["IS","1","ReferencedFractionNumber"],"0x0224":["CS","1","FractionGroupType"],"0x0230":["CS","1","BeamStopperPosition"],"0x0240":["SQ","1","FractionStatusSummarySequence"],"0x0250":["DA","1","TreatmentDate"],"0x0251":["TM","1","TreatmentTime"]},"0x300A":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["SH","1","RTPlanLabel"],"0x0003":["LO","1","RTPlanName"],"0x0004":["ST","1","RTPlanDescription"],"0x0006":["DA","1","RTPlanDate"],"0x0007":["TM","1","RTPlanTime"],"0x0009":["LO","1-n","TreatmentProtocols"],"0x000A":["CS","1","PlanIntent"],"0x000B":["LO","1-n","TreatmentSites"],"0x000C":["CS","1","RTPlanGeometry"],"0x000E":["ST","1","PrescriptionDescription"],"0x0010":["SQ","1","DoseReferenceSequence"],"0x0012":["IS","1","DoseReferenceNumber"],"0x0013":["UI","1","DoseReferenceUID"],"0x0014":["CS","1","DoseReferenceStructureType"],"0x0015":["CS","1","NominalBeamEnergyUnit"],"0x0016":["LO","1","DoseReferenceDescription"],"0x0018":["DS","3","DoseReferencePointCoordinates"],"0x001A":["DS","1","NominalPriorDose"],"0x0020":["CS","1","DoseReferenceType"],"0x0021":["DS","1","ConstraintWeight"],"0x0022":["DS","1","DeliveryWarningDose"],"0x0023":["DS","1","DeliveryMaximumDose"],"0x0025":["DS","1","TargetMinimumDose"],"0x0026":["DS","1","TargetPrescriptionDose"],"0x0027":["DS","1","TargetMaximumDose"],"0x0028":["DS","1","TargetUnderdoseVolumeFraction"],"0x002A":["DS","1","OrganAtRiskFullVolumeDose"],"0x002B":["DS","1","OrganAtRiskLimitDose"],"0x002C":["DS","1","OrganAtRiskMaximumDose"],"0x002D":["DS","1","OrganAtRiskOverdoseVolumeFraction"],"0x0040":["SQ","1","ToleranceTableSequence"],"0x0042":["IS","1","ToleranceTableNumber"],"0x0043":["SH","1","ToleranceTableLabel"],"0x0044":["DS","1","GantryAngleTolerance"],"0x0046":["DS","1","BeamLimitingDeviceAngleTolerance"],"0x0048":["SQ","1","BeamLimitingDeviceToleranceSequence"],"0x004A":["DS","1","BeamLimitingDevicePositionTolerance"],"0x004B":["FL","1","SnoutPositionTolerance"],"0x004C":["DS","1","PatientSupportAngleTolerance"],"0x004E":["DS","1","TableTopEccentricAngleTolerance"],"0x004F":["FL","1","TableTopPitchAngleTolerance"],"0x0050":["FL","1","TableTopRollAngleTolerance"],"0x0051":["DS","1","TableTopVerticalPositionTolerance"],"0x0052":["DS","1","TableTopLongitudinalPositionTolerance"],"0x0053":["DS","1","TableTopLateralPositionTolerance"],"0x0055":["CS","1","RTPlanRelationship"],"0x0070":["SQ","1","FractionGroupSequence"],"0x0071":["IS","1","FractionGroupNumber"],"0x0072":["LO","1","FractionGroupDescription"],"0x0078":["IS","1","NumberOfFractionsPlanned"],"0x0079":["IS","1","NumberOfFractionPatternDigitsPerDay"],"0x007A":["IS","1","RepeatFractionCycleLength"],"0x007B":["LT","1","FractionPattern"],"0x0080":["IS","1","NumberOfBeams"],"0x0082":["DS","3","BeamDoseSpecificationPoint"],"0x0084":["DS","1","BeamDose"],"0x0086":["DS","1","BeamMeterset"],"0x0088":["FL","1","BeamDosePointDepth"],"0x0089":["FL","1","BeamDosePointEquivalentDepth"],"0x008A":["FL","1","BeamDosePointSSD"],"0x008B":["CS","1","BeamDoseMeaning"],"0x008C":["SQ","1","BeamDoseVerificationControlPointSequence"],"0x008D":["FL","1","AverageBeamDosePointDepth"],"0x008E":["FL","1","AverageBeamDosePointEquivalentDepth"],"0x008F":["FL","1","AverageBeamDosePointSSD"],"0x00A0":["IS","1","NumberOfBrachyApplicationSetups"],"0x00A2":["DS","3","BrachyApplicationSetupDoseSpecificationPoint"],"0x00A4":["DS","1","BrachyApplicationSetupDose"],"0x00B0":["SQ","1","BeamSequence"],"0x00B2":["SH","1","TreatmentMachineName"],"0x00B3":["CS","1","PrimaryDosimeterUnit"],"0x00B4":["DS","1","SourceAxisDistance"],"0x00B6":["SQ","1","BeamLimitingDeviceSequence"],"0x00B8":["CS","1","RTBeamLimitingDeviceType"],"0x00BA":["DS","1","SourceToBeamLimitingDeviceDistance"],"0x00BB":["FL","1","IsocenterToBeamLimitingDeviceDistance"],"0x00BC":["IS","1","NumberOfLeafJawPairs"],"0x00BE":["DS","3-n","LeafPositionBoundaries"],"0x00C0":["IS","1","BeamNumber"],"0x00C2":["LO","1","BeamName"],"0x00C3":["ST","1","BeamDescription"],"0x00C4":["CS","1","BeamType"],"0x00C5":["FD","1","BeamDeliveryDurationLimit"],"0x00C6":["CS","1","RadiationType"],"0x00C7":["CS","1","HighDoseTechniqueType"],"0x00C8":["IS","1","ReferenceImageNumber"],"0x00CA":["SQ","1","PlannedVerificationImageSequence"],"0x00CC":["LO","1-n","ImagingDeviceSpecificAcquisitionParameters"],"0x00CE":["CS","1","TreatmentDeliveryType"],"0x00D0":["IS","1","NumberOfWedges"],"0x00D1":["SQ","1","WedgeSequence"],"0x00D2":["IS","1","WedgeNumber"],"0x00D3":["CS","1","WedgeType"],"0x00D4":["SH","1","WedgeID"],"0x00D5":["IS","1","WedgeAngle"],"0x00D6":["DS","1","WedgeFactor"],"0x00D7":["FL","1","TotalWedgeTrayWaterEquivalentThickness"],"0x00D8":["DS","1","WedgeOrientation"],"0x00D9":["FL","1","IsocenterToWedgeTrayDistance"],"0x00DA":["DS","1","SourceToWedgeTrayDistance"],"0x00DB":["FL","1","WedgeThinEdgePosition"],"0x00DC":["SH","1","BolusID"],"0x00DD":["ST","1","BolusDescription"],"0x00DE":["DS","1","EffectiveWedgeAngle"],"0x00E0":["IS","1","NumberOfCompensators"],"0x00E1":["SH","1","MaterialID"],"0x00E2":["DS","1","TotalCompensatorTrayFactor"],"0x00E3":["SQ","1","CompensatorSequence"],"0x00E4":["IS","1","CompensatorNumber"],"0x00E5":["SH","1","CompensatorID"],"0x00E6":["DS","1","SourceToCompensatorTrayDistance"],"0x00E7":["IS","1","CompensatorRows"],"0x00E8":["IS","1","CompensatorColumns"],"0x00E9":["DS","2","CompensatorPixelSpacing"],"0x00EA":["DS","2","CompensatorPosition"],"0x00EB":["DS","1-n","CompensatorTransmissionData"],"0x00EC":["DS","1-n","CompensatorThicknessData"],"0x00ED":["IS","1","NumberOfBoli"],"0x00EE":["CS","1","CompensatorType"],"0x00EF":["SH","1","CompensatorTrayID"],"0x00F0":["IS","1","NumberOfBlocks"],"0x00F2":["DS","1","TotalBlockTrayFactor"],"0x00F3":["FL","1","TotalBlockTrayWaterEquivalentThickness"],"0x00F4":["SQ","1","BlockSequence"],"0x00F5":["SH","1","BlockTrayID"],"0x00F6":["DS","1","SourceToBlockTrayDistance"],"0x00F7":["FL","1","IsocenterToBlockTrayDistance"],"0x00F8":["CS","1","BlockType"],"0x00F9":["LO","1","AccessoryCode"],"0x00FA":["CS","1","BlockDivergence"],"0x00FB":["CS","1","BlockMountingPosition"],"0x00FC":["IS","1","BlockNumber"],"0x00FE":["LO","1","BlockName"],"0x0100":["DS","1","BlockThickness"],"0x0102":["DS","1","BlockTransmission"],"0x0104":["IS","1","BlockNumberOfPoints"],"0x0106":["DS","2-2n","BlockData"],"0x0107":["SQ","1","ApplicatorSequence"],"0x0108":["SH","1","ApplicatorID"],"0x0109":["CS","1","ApplicatorType"],"0x010A":["LO","1","ApplicatorDescription"],"0x010C":["DS","1","CumulativeDoseReferenceCoefficient"],"0x010E":["DS","1","FinalCumulativeMetersetWeight"],"0x0110":["IS","1","NumberOfControlPoints"],"0x0111":["SQ","1","ControlPointSequence"],"0x0112":["IS","1","ControlPointIndex"],"0x0114":["DS","1","NominalBeamEnergy"],"0x0115":["DS","1","DoseRateSet"],"0x0116":["SQ","1","WedgePositionSequence"],"0x0118":["CS","1","WedgePosition"],"0x011A":["SQ","1","BeamLimitingDevicePositionSequence"],"0x011C":["DS","2-2n","LeafJawPositions"],"0x011E":["DS","1","GantryAngle"],"0x011F":["CS","1","GantryRotationDirection"],"0x0120":["DS","1","BeamLimitingDeviceAngle"],"0x0121":["CS","1","BeamLimitingDeviceRotationDirection"],"0x0122":["DS","1","PatientSupportAngle"],"0x0123":["CS","1","PatientSupportRotationDirection"],"0x0124":["DS","1","TableTopEccentricAxisDistance"],"0x0125":["DS","1","TableTopEccentricAngle"],"0x0126":["CS","1","TableTopEccentricRotationDirection"],"0x0128":["DS","1","TableTopVerticalPosition"],"0x0129":["DS","1","TableTopLongitudinalPosition"],"0x012A":["DS","1","TableTopLateralPosition"],"0x012C":["DS","3","IsocenterPosition"],"0x012E":["DS","3","SurfaceEntryPoint"],"0x0130":["DS","1","SourceToSurfaceDistance"],"0x0131":["FL","1","AverageBeamDosePointSourceToExternalContourSurfaceDistance"],"0x0132":["FL","1","SourceToExternalContourDistance"],"0x0133":["FL","3","ExternalContourEntryPoint"],"0x0134":["DS","1","CumulativeMetersetWeight"],"0x0140":["FL","1","TableTopPitchAngle"],"0x0142":["CS","1","TableTopPitchRotationDirection"],"0x0144":["FL","1","TableTopRollAngle"],"0x0146":["CS","1","TableTopRollRotationDirection"],"0x0148":["FL","1","HeadFixationAngle"],"0x014A":["FL","1","GantryPitchAngle"],"0x014C":["CS","1","GantryPitchRotationDirection"],"0x014E":["FL","1","GantryPitchAngleTolerance"],"0x0180":["SQ","1","PatientSetupSequence"],"0x0182":["IS","1","PatientSetupNumber"],"0x0183":["LO","1","PatientSetupLabel"],"0x0184":["LO","1","PatientAdditionalPosition"],"0x0190":["SQ","1","FixationDeviceSequence"],"0x0192":["CS","1","FixationDeviceType"],"0x0194":["SH","1","FixationDeviceLabel"],"0x0196":["ST","1","FixationDeviceDescription"],"0x0198":["SH","1","FixationDevicePosition"],"0x0199":["FL","1","FixationDevicePitchAngle"],"0x019A":["FL","1","FixationDeviceRollAngle"],"0x01A0":["SQ","1","ShieldingDeviceSequence"],"0x01A2":["CS","1","ShieldingDeviceType"],"0x01A4":["SH","1","ShieldingDeviceLabel"],"0x01A6":["ST","1","ShieldingDeviceDescription"],"0x01A8":["SH","1","ShieldingDevicePosition"],"0x01B0":["CS","1","SetupTechnique"],"0x01B2":["ST","1","SetupTechniqueDescription"],"0x01B4":["SQ","1","SetupDeviceSequence"],"0x01B6":["CS","1","SetupDeviceType"],"0x01B8":["SH","1","SetupDeviceLabel"],"0x01BA":["ST","1","SetupDeviceDescription"],"0x01BC":["DS","1","SetupDeviceParameter"],"0x01D0":["ST","1","SetupReferenceDescription"],"0x01D2":["DS","1","TableTopVerticalSetupDisplacement"],"0x01D4":["DS","1","TableTopLongitudinalSetupDisplacement"],"0x01D6":["DS","1","TableTopLateralSetupDisplacement"],"0x0200":["CS","1","BrachyTreatmentTechnique"],"0x0202":["CS","1","BrachyTreatmentType"],"0x0206":["SQ","1","TreatmentMachineSequence"],"0x0210":["SQ","1","SourceSequence"],"0x0212":["IS","1","SourceNumber"],"0x0214":["CS","1","SourceType"],"0x0216":["LO","1","SourceManufacturer"],"0x0218":["DS","1","ActiveSourceDiameter"],"0x021A":["DS","1","ActiveSourceLength"],"0x021B":["SH","1","SourceModelID"],"0x021C":["LO","1","SourceDescription"],"0x0222":["DS","1","SourceEncapsulationNominalThickness"],"0x0224":["DS","1","SourceEncapsulationNominalTransmission"],"0x0226":["LO","1","SourceIsotopeName"],"0x0228":["DS","1","SourceIsotopeHalfLife"],"0x0229":["CS","1","SourceStrengthUnits"],"0x022A":["DS","1","ReferenceAirKermaRate"],"0x022B":["DS","1","SourceStrength"],"0x022C":["DA","1","SourceStrengthReferenceDate"],"0x022E":["TM","1","SourceStrengthReferenceTime"],"0x0230":["SQ","1","ApplicationSetupSequence"],"0x0232":["CS","1","ApplicationSetupType"],"0x0234":["IS","1","ApplicationSetupNumber"],"0x0236":["LO","1","ApplicationSetupName"],"0x0238":["LO","1","ApplicationSetupManufacturer"],"0x0240":["IS","1","TemplateNumber"],"0x0242":["SH","1","TemplateType"],"0x0244":["LO","1","TemplateName"],"0x0250":["DS","1","TotalReferenceAirKerma"],"0x0260":["SQ","1","BrachyAccessoryDeviceSequence"],"0x0262":["IS","1","BrachyAccessoryDeviceNumber"],"0x0263":["SH","1","BrachyAccessoryDeviceID"],"0x0264":["CS","1","BrachyAccessoryDeviceType"],"0x0266":["LO","1","BrachyAccessoryDeviceName"],"0x026A":["DS","1","BrachyAccessoryDeviceNominalThickness"],"0x026C":["DS","1","BrachyAccessoryDeviceNominalTransmission"],"0x0280":["SQ","1","ChannelSequence"],"0x0282":["IS","1","ChannelNumber"],"0x0284":["DS","1","ChannelLength"],"0x0286":["DS","1","ChannelTotalTime"],"0x0288":["CS","1","SourceMovementType"],"0x028A":["IS","1","NumberOfPulses"],"0x028C":["DS","1","PulseRepetitionInterval"],"0x0290":["IS","1","SourceApplicatorNumber"],"0x0291":["SH","1","SourceApplicatorID"],"0x0292":["CS","1","SourceApplicatorType"],"0x0294":["LO","1","SourceApplicatorName"],"0x0296":["DS","1","SourceApplicatorLength"],"0x0298":["LO","1","SourceApplicatorManufacturer"],"0x029C":["DS","1","SourceApplicatorWallNominalThickness"],"0x029E":["DS","1","SourceApplicatorWallNominalTransmission"],"0x02A0":["DS","1","SourceApplicatorStepSize"],"0x02A2":["IS","1","TransferTubeNumber"],"0x02A4":["DS","1","TransferTubeLength"],"0x02B0":["SQ","1","ChannelShieldSequence"],"0x02B2":["IS","1","ChannelShieldNumber"],"0x02B3":["SH","1","ChannelShieldID"],"0x02B4":["LO","1","ChannelShieldName"],"0x02B8":["DS","1","ChannelShieldNominalThickness"],"0x02BA":["DS","1","ChannelShieldNominalTransmission"],"0x02C8":["DS","1","FinalCumulativeTimeWeight"],"0x02D0":["SQ","1","BrachyControlPointSequence"],"0x02D2":["DS","1","ControlPointRelativePosition"],"0x02D4":["DS","3","ControlPoint3DPosition"],"0x02D6":["DS","1","CumulativeTimeWeight"],"0x02E0":["CS","1","CompensatorDivergence"],"0x02E1":["CS","1","CompensatorMountingPosition"],"0x02E2":["DS","1-n","SourceToCompensatorDistance"],"0x02E3":["FL","1","TotalCompensatorTrayWaterEquivalentThickness"],"0x02E4":["FL","1","IsocenterToCompensatorTrayDistance"],"0x02E5":["FL","1","CompensatorColumnOffset"],"0x02E6":["FL","1-n","IsocenterToCompensatorDistances"],"0x02E7":["FL","1","CompensatorRelativeStoppingPowerRatio"],"0x02E8":["FL","1","CompensatorMillingToolDiameter"],"0x02EA":["SQ","1","IonRangeCompensatorSequence"],"0x02EB":["LT","1","CompensatorDescription"],"0x0302":["IS","1","RadiationMassNumber"],"0x0304":["IS","1","RadiationAtomicNumber"],"0x0306":["SS","1","RadiationChargeState"],"0x0308":["CS","1","ScanMode"],"0x030A":["FL","2","VirtualSourceAxisDistances"],"0x030C":["SQ","1","SnoutSequence"],"0x030D":["FL","1","SnoutPosition"],"0x030F":["SH","1","SnoutID"],"0x0312":["IS","1","NumberOfRangeShifters"],"0x0314":["SQ","1","RangeShifterSequence"],"0x0316":["IS","1","RangeShifterNumber"],"0x0318":["SH","1","RangeShifterID"],"0x0320":["CS","1","RangeShifterType"],"0x0322":["LO","1","RangeShifterDescription"],"0x0330":["IS","1","NumberOfLateralSpreadingDevices"],"0x0332":["SQ","1","LateralSpreadingDeviceSequence"],"0x0334":["IS","1","LateralSpreadingDeviceNumber"],"0x0336":["SH","1","LateralSpreadingDeviceID"],"0x0338":["CS","1","LateralSpreadingDeviceType"],"0x033A":["LO","1","LateralSpreadingDeviceDescription"],"0x033C":["FL","1","LateralSpreadingDeviceWaterEquivalentThickness"],"0x0340":["IS","1","NumberOfRangeModulators"],"0x0342":["SQ","1","RangeModulatorSequence"],"0x0344":["IS","1","RangeModulatorNumber"],"0x0346":["SH","1","RangeModulatorID"],"0x0348":["CS","1","RangeModulatorType"],"0x034A":["LO","1","RangeModulatorDescription"],"0x034C":["SH","1","BeamCurrentModulationID"],"0x0350":["CS","1","PatientSupportType"],"0x0352":["SH","1","PatientSupportID"],"0x0354":["LO","1","PatientSupportAccessoryCode"],"0x0356":["FL","1","FixationLightAzimuthalAngle"],"0x0358":["FL","1","FixationLightPolarAngle"],"0x035A":["FL","1","MetersetRate"],"0x0360":["SQ","1","RangeShifterSettingsSequence"],"0x0362":["LO","1","RangeShifterSetting"],"0x0364":["FL","1","IsocenterToRangeShifterDistance"],"0x0366":["FL","1","RangeShifterWaterEquivalentThickness"],"0x0370":["SQ","1","LateralSpreadingDeviceSettingsSequence"],"0x0372":["LO","1","LateralSpreadingDeviceSetting"],"0x0374":["FL","1","IsocenterToLateralSpreadingDeviceDistance"],"0x0380":["SQ","1","RangeModulatorSettingsSequence"],"0x0382":["FL","1","RangeModulatorGatingStartValue"],"0x0384":["FL","1","RangeModulatorGatingStopValue"],"0x0386":["FL","1","RangeModulatorGatingStartWaterEquivalentThickness"],"0x0388":["FL","1","RangeModulatorGatingStopWaterEquivalentThickness"],"0x038A":["FL","1","IsocenterToRangeModulatorDistance"],"0x0390":["SH","1","ScanSpotTuneID"],"0x0392":["IS","1","NumberOfScanSpotPositions"],"0x0394":["FL","1-n","ScanSpotPositionMap"],"0x0396":["FL","1-n","ScanSpotMetersetWeights"],"0x0398":["FL","2","ScanningSpotSize"],"0x039A":["IS","1","NumberOfPaintings"],"0x03A0":["SQ","1","IonToleranceTableSequence"],"0x03A2":["SQ","1","IonBeamSequence"],"0x03A4":["SQ","1","IonBeamLimitingDeviceSequence"],"0x03A6":["SQ","1","IonBlockSequence"],"0x03A8":["SQ","1","IonControlPointSequence"],"0x03AA":["SQ","1","IonWedgeSequence"],"0x03AC":["SQ","1","IonWedgePositionSequence"],"0x0401":["SQ","1","ReferencedSetupImageSequence"],"0x0402":["ST","1","SetupImageComment"],"0x0410":["SQ","1","MotionSynchronizationSequence"],"0x0412":["FL","3","ControlPointOrientation"],"0x0420":["SQ","1","GeneralAccessorySequence"],"0x0421":["SH","1","GeneralAccessoryID"],"0x0422":["ST","1","GeneralAccessoryDescription"],"0x0423":["CS","1","GeneralAccessoryType"],"0x0424":["IS","1","GeneralAccessoryNumber"],"0x0425":["FL","1","SourceToGeneralAccessoryDistance"],"0x0431":["SQ","1","ApplicatorGeometrySequence"],"0x0432":["CS","1","ApplicatorApertureShape"],"0x0433":["FL","1","ApplicatorOpening"],"0x0434":["FL","1","ApplicatorOpeningX"],"0x0435":["FL","1","ApplicatorOpeningY"],"0x0436":["FL","1","SourceToApplicatorMountingPositionDistance"],"0x0440":["IS","1","NumberOfBlockSlabItems"],"0x0441":["SQ","1","BlockSlabSequence"],"0x0442":["DS","1","BlockSlabThickness"],"0x0443":["US","1","BlockSlabNumber"],"0x0450":["SQ","1","DeviceMotionControlSequence"],"0x0451":["CS","1","DeviceMotionExecutionMode"],"0x0452":["CS","1","DeviceMotionObservationMode"],"0x0453":["SQ","1","DeviceMotionParameterCodeSequence"]},"0x300C":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["SQ","1","ReferencedRTPlanSequence"],"0x0004":["SQ","1","ReferencedBeamSequence"],"0x0006":["IS","1","ReferencedBeamNumber"],"0x0007":["IS","1","ReferencedReferenceImageNumber"],"0x0008":["DS","1","StartCumulativeMetersetWeight"],"0x0009":["DS","1","EndCumulativeMetersetWeight"],"0x000A":["SQ","1","ReferencedBrachyApplicationSetupSequence"],"0x000C":["IS","1","ReferencedBrachyApplicationSetupNumber"],"0x000E":["IS","1","ReferencedSourceNumber"],"0x0020":["SQ","1","ReferencedFractionGroupSequence"],"0x0022":["IS","1","ReferencedFractionGroupNumber"],"0x0040":["SQ","1","ReferencedVerificationImageSequence"],"0x0042":["SQ","1","ReferencedReferenceImageSequence"],"0x0050":["SQ","1","ReferencedDoseReferenceSequence"],"0x0051":["IS","1","ReferencedDoseReferenceNumber"],"0x0055":["SQ","1","BrachyReferencedDoseReferenceSequence"],"0x0060":["SQ","1","ReferencedStructureSetSequence"],"0x006A":["IS","1","ReferencedPatientSetupNumber"],"0x0080":["SQ","1","ReferencedDoseSequence"],"0x00A0":["IS","1","ReferencedToleranceTableNumber"],"0x00B0":["SQ","1","ReferencedBolusSequence"],"0x00C0":["IS","1","ReferencedWedgeNumber"],"0x00D0":["IS","1","ReferencedCompensatorNumber"],"0x00E0":["IS","1","ReferencedBlockNumber"],"0x00F0":["IS","1","ReferencedControlPointIndex"],"0x00F2":["SQ","1","ReferencedControlPointSequence"],"0x00F4":["IS","1","ReferencedStartControlPointIndex"],"0x00F6":["IS","1","ReferencedStopControlPointIndex"],"0x0100":["IS","1","ReferencedRangeShifterNumber"],"0x0102":["IS","1","ReferencedLateralSpreadingDeviceNumber"],"0x0104":["IS","1","ReferencedRangeModulatorNumber"],"0x0111":["SQ","1","OmittedBeamTaskSequence"],"0x0112":["CS","1","ReasonForOmission"],"0x0113":["LO","1","ReasonForOmissionDescription"]},"0x300E":{"0x0000":["UL","1","GenericGroupLength"],"0x0002":["CS","1","ApprovalStatus"],"0x0004":["DA","1","ReviewDate"],"0x0005":["TM","1","ReviewTime"],"0x0008":["PN","1","ReviewerName"]},"0x4000":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["LT","1","Arbitrary"],"0x4000":["LT","1","TextComments"]},"0x4008":{"0x0000":["UL","1","GenericGroupLength"],"0x0040":["SH","1","ResultsID"],"0x0042":["LO","1","ResultsIDIssuer"],"0x0050":["SQ","1","ReferencedInterpretationSequence"],"0x00FF":["CS","1","ReportProductionStatusTrial"],"0x0100":["DA","1","InterpretationRecordedDate"],"0x0101":["TM","1","InterpretationRecordedTime"],"0x0102":["PN","1","InterpretationRecorder"],"0x0103":["LO","1","ReferenceToRecordedSound"],"0x0108":["DA","1","InterpretationTranscriptionDate"],"0x0109":["TM","1","InterpretationTranscriptionTime"],"0x010A":["PN","1","InterpretationTranscriber"],"0x010B":["ST","1","InterpretationText"],"0x010C":["PN","1","InterpretationAuthor"],"0x0111":["SQ","1","InterpretationApproverSequence"],"0x0112":["DA","1","InterpretationApprovalDate"],"0x0113":["TM","1","InterpretationApprovalTime"],"0x0114":["PN","1","PhysicianApprovingInterpretation"],"0x0115":["LT","1","InterpretationDiagnosisDescription"],"0x0117":["SQ","1","InterpretationDiagnosisCodeSequence"],"0x0118":["SQ","1","ResultsDistributionListSequence"],"0x0119":["PN","1","DistributionName"],"0x011A":["LO","1","DistributionAddress"],"0x0200":["SH","1","InterpretationID"],"0x0202":["LO","1","InterpretationIDIssuer"],"0x0210":["CS","1","InterpretationTypeID"],"0x0212":["CS","1","InterpretationStatusID"],"0x0300":["ST","1","Impressions"],"0x4000":["ST","1","ResultsComments"]},"0x4010":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["CS","1","LowEnergyDetectors"],"0x0002":["CS","1","HighEnergyDetectors"],"0x0004":["SQ","1","DetectorGeometrySequence"],"0x1001":["SQ","1","ThreatROIVoxelSequence"],"0x1004":["FL","3","ThreatROIBase"],"0x1005":["FL","3","ThreatROIExtents"],"0x1006":["OB","1","ThreatROIBitmap"],"0x1007":["SH","1","RouteSegmentID"],"0x1008":["CS","1","GantryType"],"0x1009":["CS","1","OOIOwnerType"],"0x100A":["SQ","1","RouteSegmentSequence"],"0x1010":["US","1","PotentialThreatObjectID"],"0x1011":["SQ","1","ThreatSequence"],"0x1012":["CS","1","ThreatCategory"],"0x1013":["LT","1","ThreatCategoryDescription"],"0x1014":["CS","1","ATDAbilityAssessment"],"0x1015":["CS","1","ATDAssessmentFlag"],"0x1016":["FL","1","ATDAssessmentProbability"],"0x1017":["FL","1","Mass"],"0x1018":["FL","1","Density"],"0x1019":["FL","1","ZEffective"],"0x101A":["SH","1","BoardingPassID"],"0x101B":["FL","3","CenterOfMass"],"0x101C":["FL","3","CenterOfPTO"],"0x101D":["FL","6-n","BoundingPolygon"],"0x101E":["SH","1","RouteSegmentStartLocationID"],"0x101F":["SH","1","RouteSegmentEndLocationID"],"0x1020":["CS","1","RouteSegmentLocationIDType"],"0x1021":["CS","1-n","AbortReason"],"0x1023":["FL","1","VolumeOfPTO"],"0x1024":["CS","1","AbortFlag"],"0x1025":["DT","1","RouteSegmentStartTime"],"0x1026":["DT","1","RouteSegmentEndTime"],"0x1027":["CS","1","TDRType"],"0x1028":["CS","1","InternationalRouteSegment"],"0x1029":["LO","1-n","ThreatDetectionAlgorithmandVersion"],"0x102A":["SH","1","AssignedLocation"],"0x102B":["DT","1","AlarmDecisionTime"],"0x1031":["CS","1","AlarmDecision"],"0x1033":["US","1","NumberOfTotalObjects"],"0x1034":["US","1","NumberOfAlarmObjects"],"0x1037":["SQ","1","PTORepresentationSequence"],"0x1038":["SQ","1","ATDAssessmentSequence"],"0x1039":["CS","1","TIPType"],"0x103A":["CS","1","DICOSVersion"],"0x1041":["DT","1","OOIOwnerCreationTime"],"0x1042":["CS","1","OOIType"],"0x1043":["FL","3","OOISize"],"0x1044":["CS","1","AcquisitionStatus"],"0x1045":["SQ","1","BasisMaterialsCodeSequence"],"0x1046":["CS","1","PhantomType"],"0x1047":["SQ","1","OOIOwnerSequence"],"0x1048":["CS","1","ScanType"],"0x1051":["LO","1","ItineraryID"],"0x1052":["SH","1","ItineraryIDType"],"0x1053":["LO","1","ItineraryIDAssigningAuthority"],"0x1054":["SH","1","RouteID"],"0x1055":["SH","1","RouteIDAssigningAuthority"],"0x1056":["CS","1","InboundArrivalType"],"0x1058":["SH","1","CarrierID"],"0x1059":["CS","1","CarrierIDAssigningAuthority"],"0x1060":["FL","3","SourceOrientation"],"0x1061":["FL","3","SourcePosition"],"0x1062":["FL","1","BeltHeight"],"0x1064":["SQ","1","AlgorithmRoutingCodeSequence"],"0x1067":["CS","1","TransportClassification"],"0x1068":["LT","1","OOITypeDescriptor"],"0x1069":["FL","1","TotalProcessingTime"],"0x106C":["OB","1","DetectorCalibrationData"],"0x106D":["CS","1","AdditionalScreeningPerformed"],"0x106E":["CS","1","AdditionalInspectionSelectionCriteria"],"0x106F":["SQ","1","AdditionalInspectionMethodSequence"],"0x1070":["CS","1","AITDeviceType"],"0x1071":["SQ","1","QRMeasurementsSequence"],"0x1072":["SQ","1","TargetMaterialSequence"],"0x1073":["FD","1","SNRThreshold"],"0x1075":["DS","1","ImageScaleRepresentation"],"0x1076":["SQ","1","ReferencedPTOSequence"],"0x1077":["SQ","1","ReferencedTDRInstanceSequence"],"0x1078":["ST","1","PTOLocationDescription"],"0x1079":["SQ","1","AnomalyLocatorIndicatorSequence"],"0x107A":["FL","3","AnomalyLocatorIndicator"],"0x107B":["SQ","1","PTORegionSequence"],"0x107C":["CS","1","InspectionSelectionCriteria"],"0x107D":["SQ","1","SecondaryInspectionMethodSequence"],"0x107E":["DS","6","PRCSToRCSOrientation"]},"0x4FFE":{"0x0000":["UL","1","GenericGroupLength"],"0x0001":["SQ","1","MACParametersSequence"]},"0x5000":{"0x0000":["UL","1","GenericGroupLength"],"0x0005":["US","1","CurveDimensions"],"0x0010":["US","1","NumberOfPoints"],"0x0020":["CS","1","TypeOfData"],"0x0022":["LO","1","CurveDescription"],"0x0030":["SH","1-n","AxisUnits"],"0x0040":["SH","1-n","AxisLabels"],"0x0103":["US","1","DataValueRepresentation"],"0x0104":["US","1-n","MinimumCoordinateValue"],"0x0105":["US","1-n","MaximumCoordinateValue"],"0x0106":["SH","1-n","CurveRange"],"0x0110":["US","1-n","CurveDataDescriptor"],"0x0112":["US","1-n","CoordinateStartValue"],"0x0114":["US","1-n","CoordinateStepValue"],"0x1001":["CS","1","CurveActivationLayer"],"0x2000":["US","1","AudioType"],"0x2002":["US","1","AudioSampleFormat"],"0x2004":["US","1","NumberOfChannels"],"0x2006":["UL","1","NumberOfSamples"],"0x2008":["UL","1","SampleRate"],"0x200A":["UL","1","TotalTime"],"0x200C":["ox","1","AudioSampleData"],"0x200E":["LT","1","AudioComments"],"0x2500":["LO","1","CurveLabel"],"0x2600":["SQ","1","CurveReferencedOverlaySequence"],"0x2610":["US","1","CurveReferencedOverlayGroup"],"0x3000":["ox","1","CurveData"]},"0x5200":{"0x0000":["UL","1","GenericGroupLength"],"0x9229":["SQ","1","SharedFunctionalGroupsSequence"],"0x9230":["SQ","1","PerFrameFunctionalGroupsSequence"]},"0x5400":{"0x0000":["UL","1","GenericGroupLength"],"0x0100":["SQ","1","WaveformSequence"],"0x0110":["ox","1","ChannelMinimumValue"],"0x0112":["ox","1","ChannelMaximumValue"],"0x1004":["US","1","WaveformBitsAllocated"],"0x1006":["CS","1","WaveformSampleInterpretation"],"0x100A":["ox","1","WaveformPaddingValue"],"0x1010":["ox","1","WaveformData"]},"0x5600":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["OF","1","FirstOrderPhaseCorrectionAngle"],"0x0020":["OF","1","SpectroscopyData"]},"0x6000":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["US","1","OverlayRows"],"0x0011":["US","1","OverlayColumns"],"0x0012":["US","1","OverlayPlanes"],"0x0015":["IS","1","NumberOfFramesInOverlay"],"0x0022":["LO","1","OverlayDescription"],"0x0040":["CS","1","OverlayType"],"0x0045":["LO","1","OverlaySubtype"],"0x0050":["SS","2","OverlayOrigin"],"0x0051":["US","1","ImageFrameOrigin"],"0x0052":["US","1","OverlayPlaneOrigin"],"0x0060":["CS","1","OverlayCompressionCode"],"0x0061":["SH","1","OverlayCompressionOriginator"],"0x0062":["SH","1","OverlayCompressionLabel"],"0x0063":["CS","1","OverlayCompressionDescription"],"0x0066":["AT","1-n","OverlayCompressionStepPointers"],"0x0068":["US","1","OverlayRepeatInterval"],"0x0069":["US","1","OverlayBitsGrouped"],"0x0100":["US","1","OverlayBitsAllocated"],"0x0102":["US","1","OverlayBitPosition"],"0x0110":["CS","1","OverlayFormat"],"0x0200":["US","1","OverlayLocation"],"0x0800":["CS","1-n","OverlayCodeLabel"],"0x0802":["US","1","OverlayNumberOfTables"],"0x0803":["AT","1-n","OverlayCodeTableLocation"],"0x0804":["US","1","OverlayBitsForCodeWord"],"0x1001":["CS","1","OverlayActivationLayer"],"0x1100":["US","1","OverlayDescriptorGray"],"0x1101":["US","1","OverlayDescriptorRed"],"0x1102":["US","1","OverlayDescriptorGreen"],"0x1103":["US","1","OverlayDescriptorBlue"],"0x1200":["US","1-n","OverlaysGray"],"0x1201":["US","1-n","OverlaysRed"],"0x1202":["US","1-n","OverlaysGreen"],"0x1203":["US","1-n","OverlaysBlue"],"0x1301":["IS","1","ROIArea"],"0x1302":["DS","1","ROIMean"],"0x1303":["DS","1","ROIStandardDeviation"],"0x1500":["LO","1","OverlayLabel"],"0x3000":["ox","1","OverlayData"],"0x4000":["LT","1","OverlayComments"]},"0x7FE0":{"0x0000":["UL","1","GenericGroupLength"],"0x0008":["OF","1","FloatPixelData"],"0x0009":["OD","1","DoubleFloatPixelData"],"0x0010":["ox","1","PixelData"],"0x0020":["OW","1","CoefficientsSDVN"],"0x0030":["OW","1","CoefficientsSDHN"],"0x0040":["OW","1","CoefficientsSDDN"]},"0x7F00":{"0x0000":["UL","1","GenericGroupLength"],"0x0010":["ox","1","VariablePixelData"],"0x0011":["US","1","VariableNextDataGroup"],"0x0020":["OW","1","VariableCoefficientsSDVN"],"0x0030":["OW","1","VariableCoefficientsSDHN"],"0x0040":["OW","1","VariableCoefficientsSDDN"]},"0xFFFA":{"0x0000":["UL","1","GenericGroupLength"],"0xFFFA":["SQ","1","DigitalSignaturesSequence"]},"0xFFFC":{"0x0000":["UL","1","GenericGroupLength"],"0xFFFC":["OB","1","DataSetTrailingPadding"]},"0xFFFE":{"0x0000":["UL","1","GenericGroupLength"],"0xE000":["NONE","1","Item"],"0xE00D":["NONE","1","ItemDelimitationItem"],"0xE0DD":["NONE","1","SequenceDelimitationItem"]}},u.dicom.TagGroups={x0000:"Command",x0002:"Meta Element",x0004:"File Set",x0008:"Identifying",x0009:"SPI Identifying",x0010:"Patient",x0012:"Clinical Trial",x0018:"Acquisition",x0019:"SPI Acquisition",x0020:"Image",x0021:"SPI Image",x0022:"Ophtalmology",x0028:"Image Presentation",x0032:"Study",x0038:"Visit",x003A:"Waveform",x0040:"Procedure",x0042:"Encapsulated Document",x0050:"Device Informations",x0054:"Nuclear Medicine",x0060:"Histogram",x0070:"Presentation State",x0072:"Hanging Protocol",x0088:"Storage",x0100:"Authorization",x0400:"Digital Signature",x1000:"Code Table",x1010:"Zonal Map",x2000:"Film Session",x2010:"Film Box",x2020:"Image Box",x2030:"Annotation",x2040:"Overlay Box",x2050:"Presentation LUT",x2100:"Print Job",x2110:"Printer",x2120:"Queue",x2130:"Print Content",x2200:"Media Creation",x3002:"RT Image",x3004:"RT Dose",x3006:"RT StructureSet",x3008:"RT Treatment",x300A:"RT Plan",x300C:"RT Relationship",x300E:"RT Approval",x4000:"Text",x4008:"Results",x4FFE:"MAC Parameters",x5000:"Curve",x5002:"Curve",x5004:"Curve",x5006:"Curve",x5008:"Curve",x500A:"Curve",x500C:"Curve",x500E:"Curve",x5400:"Waveform Data",x6000:"Overlays",x6002:"Overlays",x6004:"Overlays",x6008:"Overlays",x600A:"Overlays",x600C:"Overlays",x600E:"Overlays",xFFFC:"Generic",x7FE0:"Pixel Data",xFFFF:"Unknown"};(u=u||{}).gui=u.gui||{},u.gui.base=u.gui.base||{},u.gui.filter=u.gui.filter||{},u.gui.filter.base=u.gui.filter.base||{},u.gui.base.Filter=function(e){this.setup=function(t){var n=u.html.createHtmlSelect("filterSelect",t,"filter");n.onchange=e.onChangeFilter;var i=u.html.createHiddenElement("li","filterLi");i.className+=" ui-block-b",i.appendChild(n);var r=e.getElement("toolList").getElementsByTagName("ul")[0];u.html.appendElement(r,i)},this.display=function(t){var n=e.getElement("filterLi");u.html.displayElement(n,t)},this.initialise=function(){var t=e.getElement("filterSelect");t.selectedIndex=0,u.gui.refreshElement(t)}},u.gui.base.Threshold=function(e){var t=new u.gui.Slider(e);this.setup=function(){var n=u.html.createHiddenElement("li","thresholdLi");n.className+=" ui-block-c";var i=e.getElement("toolList").getElementsByTagName("ul")[0];i.appendChild(n),t.append(),u.gui.refreshElement(i)},this.display=function(n){n&&t.initialise();var i=e.getElement("thresholdLi");u.html.displayElement(i,n)},this.initialise=function(){}},u.gui.filter.base.createFilterApplyButton=function(e){var t=document.createElement("button");return t.id="runFilterButton",t.onclick=e.onRunFilter,t.setAttribute("style","width:100%; margin-top:0.5em;"),t.setAttribute("class","ui-btn ui-btn-b"),t.appendChild(document.createTextNode(u.i18n("basics.apply"))),t},u.gui.base.Sharpen=function(e){this.setup=function(){var t=u.html.createHiddenElement("li","sharpenLi");t.className+=" ui-block-c",t.appendChild(u.gui.filter.base.createFilterApplyButton(e));var n=e.getElement("toolList").getElementsByTagName("ul")[0];u.html.appendElement(n,t)},this.display=function(t){var n=e.getElement("sharpenLi");u.html.displayElement(n,t)}},u.gui.base.Sobel=function(e){this.setup=function(){var t=u.html.createHiddenElement("li","sobelLi");t.className+=" ui-block-c",t.appendChild(u.gui.filter.base.createFilterApplyButton(e));var n=e.getElement("toolList").getElementsByTagName("ul")[0];u.html.appendElement(n,t)},this.display=function(t){var n=e.getElement("sobelLi");u.html.displayElement(n,t)}};(u=u||{}).gui=u.gui||{},u.gui.base=u.gui.base||{},u.gui.base.getWindowSize=function(){return{width:l.innerWidth,height:l.innerHeight-147}},u.gui.base.prompt=function(e,t){return prompt(e,t)},u.gui.base.displayProgress=function(){},u.gui.base.focusImage=function(){},u.gui.base.postProcessTable=function(){},u.gui.base.getElement=function(e,t){var n=document.getElementById(e).getElementsByClassName(t),i=n[n.length-1];return void 0===i&&(i=document.getElementById(e+"-"+t)),i},u.gui.base.refreshElement=function(){},u.gui.setSelected=function(e,t){if(e){var n=0;for(n in e.options)if(e.options[n].value===t)break;e.selectedIndex=n,u.gui.refreshElement(e)}},u.gui.base.Slider=function(e){this.append=function(){var t=document.createElement("input");t.id="threshold-min",t.type="range",t.max=1,t.min=0,t.value=0;var n=document.createElement("input");n.id="threshold-max",n.type="range",n.max=1,n.min=0,n.value=1;var i=document.createElement("div");i.id="threshold-div",i.setAttribute("data-role","rangeslider"),i.appendChild(t),i.appendChild(n),i.setAttribute("data-mini","true"),e.getElement("thresholdLi").appendChild(i),$("#threshold-div").on("change",function(){e.onChangeMinMax({min:$("#threshold-min").val(),max:$("#threshold-max").val()})}),u.gui.refreshElement(e.getElement("toolList"))},this.initialise=function(){var t=e.getImage().getDataRange().min,n=e.getImage().getDataRange().max,i=document.getElementById("threshold-min");i.max=n,i.min=t,i.value=t;var r=document.getElementById("threshold-max");r.max=n,r.min=t,r.value=n,u.gui.refreshElement(e.getElement("toolList"))}},u.gui.base.DicomTags=function(e){this.update=function(t){var n=e.getElement("tags");if(null!==n){for(;n.hasChildNodes();)n.removeChild(n.firstChild);if(0!==t.length){var i=u.html.toTable(t);i.className="tagsTable",u.gui.postProcessTable(i),0!==i.rows.length?(u.html.translateTableRow(i.rows.item(0)),n.appendChild(u.html.getHtmlSearchForm(i)),n.appendChild(i),u.gui.refreshElement(n)):console.warn("The processed table does not contain data.")}else console.warn("No DICOM tags to show.")}else console.warn("Cannot find a node to append the DICOM tags.")}},u.gui.base.DrawList=function(e){var t=this;this.update=function(n){var i=!1;void 0!==n.editable&&(i=n.editable);var r=e.getElement("drawList");if(null!==r){for(;r.hasChildNodes();)r.removeChild(r.firstChild);var o=e.getDrawDisplayDetails();if(0!==o.length){var a=u.html.toTable(o);if(a.className="drawsTable",u.gui.postProcessTable(a),0!==a.rows.length){u.html.translateTableRow(a.rows.item(0)),u.html.translateTableColumn(a,3,"shape","name");var s=function(t){return function(){t.color=this.value,e.updateDraw(t)}},l=function(t){return function(){t.label=this.value,e.updateDraw(t)}},c=function(t){return function(){t.description=this.value,e.updateDraw(t)}},d=function(t,n){return function(){var i=e.getViewController().getCurrentPosition();i.k=t,e.getViewController().setCurrentPosition(i),e.getViewController().setCurrentFrame(n),u.gui.focusImage()}},S=function(t){return function(){e.toogleGroupVisibility(t)}};a.rows.item(0).insertCell(0).outerHTML="<th>"+u.i18n("basics.visible")+"</th>";for(var x=1;x<a.rows.length;++x){for(var g=o[x-1],m=a.rows.item(x),h=m.cells,p=0;p<h.length;++p)0===p&&(h[p].firstChild.data=h[p].firstChild.data.substring(0,5)),i?4===p?u.html.makeCellEditable(h[p],s(g),"color"):5===p?u.html.makeCellEditable(h[p],l(g)):6===p&&u.html.makeCellEditable(h[p],c(g)):(h[0].onclick=d(h[1].firstChild.data,h[2].firstChild.data),h[0].onmouseover=u.html.setCursorToPointer,h[0].onmouseout=u.html.setCursorToDefault,4===p&&u.html.makeCellEditable(h[p],null,"color"));var f=m.insertCell(0),C=document.createElement("input");C.setAttribute("type","checkbox"),C.checked=e.isGroupVisible(g),C.onclick=S(g),f.appendChild(C)}var y=document.createElement("input");y.setAttribute("type","checkbox"),y.id="checkbox-editable",y.checked=i,y.onclick=function(){t.update({editable:this.checked})};var D=document.createElement("label");D.setAttribute("for",y.id),D.setAttribute("class","inline"),D.appendChild(document.createTextNode(u.i18n("basics.editMode")));var v=document.createElement("div");v.appendChild(D),v.appendChild(y),r.appendChild(u.html.getHtmlSearchForm(a)),r.appendChild(v),r.appendChild(a);var L=document.createElement("button");L.onclick=function(){e.deleteDraws()},L.setAttribute("class","ui-btn ui-btn-inline"),L.appendChild(document.createTextNode(u.i18n("basics.deleteDraws"))),i||(L.style.display="none"),r.appendChild(L),u.gui.refreshElement(r)}else console.warn("The processed table does not contain data.")}}else console.warn("Cannot find a node to append the drawing list.")}};(u=u||{}).gui=u.gui||{},u.gui.base=u.gui.base||{},u.gui.base.appendVersionHtml=function(e){var t=document.getElementsByClassName("dwv-version");if(t)for(var n=0;n<t.length;++n)t[n].appendChild(document.createTextNode(e))},u.gui.base.appendHelpHtml=function(e,t,n){var i="mouse";t&&(i="touch");for(var r=document.createElement("div"),o=l.location.pathname,a=o.substring(0,o.lastIndexOf("/")),s=null,c=Object.keys(e),d=0;d<c.length;++d){s=e[c[d]];var S=document.createElement("h3");S.appendChild(document.createTextNode(s.getHelp().title));var x=document.createElement("div"),g=document.createElement("p");if(g.appendChild(document.createTextNode(s.getHelp().brief)),x.appendChild(g),s.getHelp()[i])for(var m=Object.keys(s.getHelp()[i]),h=0;h<m.length;++h){var p=s.getHelp()[i][m[h]],f=document.createElement("img");f.src=a+"/../../resources/help/"+m[h]+".png",f.style.float="left",f.style.margin="0px 15px 15px 0px";var C=document.createElement("br");C.style.clear="both";var y=document.createElement("p");y.appendChild(f),y.appendChild(document.createTextNode(p)),y.appendChild(C),x.appendChild(y)}if(t){var D=document.createElement("div");D.setAttribute("data-role","collapsible"),D.appendChild(S),D.appendChild(x),r.appendChild(D)}else r.id="accordion",r.appendChild(S),r.appendChild(x)}var v=n.getElement("help"),L=document.createElement("p");L.appendChild(document.createTextNode(u.i18n("help.intro.p0"))),v.appendChild(L);var T=document.createElement("p");T.appendChild(document.createTextNode(u.i18n("help.intro.p1"))),v.appendChild(T);var I=document.createElement("p");I.appendChild(document.createTextNode(u.i18n("help.tool_intro"))),v.appendChild(I),v.appendChild(r)};(u=u||{}).html=u.html||{},u.html.appendCell=function(e,t){var n=e.insertCell(-1),i=t;(t instanceof Array||t instanceof Uint8Array||t instanceof Int8Array||t instanceof Uint16Array||t instanceof Int16Array||t instanceof Uint32Array)&&(t.length>10&&((t=Array.prototype.slice.call(t,0,10))[10]="..."),i=Array.prototype.join.call(t,", ")),n.appendChild(document.createTextNode(i))},u.html.appendHCell=function(e,t){var n=document.createElement("th");n.appendChild(document.createTextNode(t)),e.appendChild(n)},u.html.appendRowForArray=function(e,t,n,i,r){for(var o=null,a=0;a<t.length;++a){var s=t[a];"number"==typeof s||"string"==typeof s||null===s||void 0===s||n>=i?(o||(o=e.insertRow(-1)),u.html.appendCell(o,s)):u.html.appendRow(e,s,n+a,i,r)}},u.html.appendRowForObject=function(e,t,n,i,r){for(var o=Object.keys(t),a=null,s=0;s<o.length;++s){var l=t[o[s]];"number"==typeof l||"string"==typeof l||null===l||void 0===l||n>=i?(a||(a=e.insertRow(-1)),0===s&&r&&u.html.appendCell(a,r),u.html.appendCell(a,l)):u.html.appendRow(e,l,n+s,i,o[s])}if(2===n){var c=e.createTHead().insertRow(-1);r&&u.html.appendHCell(c,"");for(var d=0;d<o.length;++d)u.html.appendHCell(c,o[d])}},u.html.appendRow=function(e,t,n,i,r){if(t instanceof Array)u.html.appendRowForArray(e,t,n+1,i,r);else{if("object"!=typeof t)throw new Error("Unsupported input data type.");u.html.appendRowForObject(e,t,n+1,i,r)}},u.html.toTable=function(e){if(0===e.length)return null;var t=document.createElement("table");return u.html.appendRow(t,e,0,2),t},u.html.getHtmlSearchForm=function(e){var t=document.createElement("input");t.id="table-search",t.onkeyup=function(){u.html.filterTable(t,e)};var n=document.createElement("label");n.setAttribute("for",t.id),n.appendChild(document.createTextNode(u.i18n("basics.search")+": "));var i=document.createElement("form");return i.setAttribute("class","filter"),i.onsubmit=function(e){e.preventDefault()},i.appendChild(n),i.appendChild(t),i},u.html.filterTable=function(e,t){u.html.dehighlight(t);for(var n=e.value.toLowerCase().split(" "),i=0,r=1;r<t.rows.length;++r){i="";for(var o=0;o<n.length;++o)t.rows[r].innerHTML.replace(/<[^>]+>/g,"").toLowerCase().indexOf(n[o])<0?i="none":n[o].length&&u.html.highlight(n[o],t.rows[r]),t.rows[r].style.display=i}},u.html.dehighlight=function(e){for(var t=0;t<e.childNodes.length;t++){var n=e.childNodes[t];if(n.attributes&&n.attributes.class&&"highlighted"===n.attributes.class.value)return void n.parentNode.parentNode.replaceChild(document.createTextNode(n.parentNode.innerHTML.replace(/<[^>]+>/g,"")),n.parentNode);3!==n.nodeType&&u.html.dehighlight(n)}},u.html.highlight=function(e,t){for(var n=0;n<t.childNodes.length;n++){var i=t.childNodes[n];if(3===i.nodeType){var r=i.data,o=r.toLowerCase();if(o.indexOf(e)>=0){var a=document.createElement("span");i.parentNode.replaceChild(a,i);for(var s;-1!==(s=o.indexOf(e));)a.appendChild(document.createTextNode(r.substr(0,s))),a.appendChild(u.html.createHighlightNode(document.createTextNode(r.substr(s,e.length)))),r=r.substr(s+e.length),o=o.substr(s+e.length);a.appendChild(document.createTextNode(r))}}else u.html.highlight(e,i)}},u.html.createHighlightNode=function(e){var t=document.createElement("span");return t.setAttribute("class","highlighted"),t.attributes.class.value="highlighted",t.appendChild(e),t},u.html.cleanNode=function(e){if(e)for(;e.hasChildNodes();)e.removeChild(e.firstChild)},u.html.removeNode=function(e){if(e){u.html.cleanNode(e);e.parentNode.removeChild(e)}},u.html.removeNodes=function(e){for(var t=0;t<e.length;++t)u.html.removeNode(e[t])},u.html.translateTableRow=function(e,t){var n=void 0===t?"basics":t;0!==n.length&&(n+=".");for(var i=e.cells,r=0;r<i.length;++r){var o=i[r].firstChild.data;i[r].firstChild.data=u.i18n(n+o)}},u.html.translateTableColumn=function(e,t,n,i){var r=void 0===n?"basics":n;0!==r.length&&(r+=".");var o=void 0===i?"":i;if(0!==o.length&&(o="."+o),0!==e.rows.length)for(var a=1;a<e.rows.length;++a){var s=e.rows.item(a).cells;if(s.length>=t){var l=s[t].firstChild.data;s[t].firstChild.data=u.i18n(r+l+o)}}},u.html.makeCellEditable=function(e,t,n){if(void 0!==e){var i=document.createElement("input");t?i.onchange=t:i.disabled=!0,i.value=e.firstChild.data,void 0===n||"color"===n&&!u.browser.hasInputColor()?i.type="text":i.type=n,u.html.cleanNode(e);var r=document.createElement("form");r.onsubmit=function(e){e.preventDefault()},r.appendChild(i),e.appendChild(r)}else console.warn("Cannot create input for non existing cell.")},u.html.setCursorToPointer=function(){document.body.style.cursor="pointer"},u.html.setCursorToDefault=function(){document.body.style.cursor="default"},u.html.createHtmlSelect=function(e,t,n,i){var r=document.createElement("select");r.className=e;var o,a=void 0===n?"":n+".",s=void 0!==i,l=function(e){var t=a+e+".name";return s?u.i18nExists(t)?u.i18n(t):e:u.i18n(t)};if(t instanceof Array)for(var c in t)t.hasOwnProperty(c)&&((o=document.createElement("option")).value=t[c],o.appendChild(document.createTextNode(l(t[c]))),r.appendChild(o));else{if("object"!=typeof t)throw new Error("Unsupported input list type.");for(var d in t)(o=document.createElement("option")).value=d,o.appendChild(document.createTextNode(l(d))),r.appendChild(o)}return r},u.html.displayElement=function(e,t){e.style.display=t?"":"none"},u.html.toggleDisplay=function(e){"none"===e.style.display?e.style.display="":e.style.display="none"},u.html.appendElement=function(e,t){e.appendChild(t),u.gui.refreshElement(e)},u.html.createHiddenElement=function(e,t){var n=document.createElement(e);return n.className=t,n.style.display="none",n};(u=u||{}).gui=u.gui||{},u.gui.base=u.gui.base||{},u.gui.info=u.gui.info||{},u.gui.base.plot=function(){},u.gui.info.MiniColourMap=function(e,t){this.create=function(){var t=e.getElementsByClassName("colour-map-info");0!==t.length&&u.html.removeNodes(t);var n=document.createElement("canvas");n.className="colour-map-info",n.width=98,n.height=10,e.appendChild(n)},this.update=function(n){for(var i,r=n.wc,o=n.ww,a=e.getElementsByClassName("colour-map-info")[0],s=a.getContext("2d"),l=t.getViewController().getColourMap(),u=s.getImageData(0,0,a.width,a.height),c=0,d=t.getImage().getRescaledDataRange().min,S=(t.getImage().getRescaledDataRange().max-d)/a.width,x=0,g=r-.5-(o-1)/2,m=r-.5+(o-1)/2,h=0;h<a.height;++h){c=d;for(var p=0;p<a.width;++p)c<=g?x=0:c>m?x=255:(x=255*((c-(r-.5))/(o-1)+.5)+0,x=parseInt(x,10)),i=4*(p+h*a.width),u.data[i]=l.red[x],u.data[i+1]=l.green[x],u.data[i+2]=l.blue[x],u.data[i+3]=255,c+=S}s.putImageData(u,0,0)}},u.gui.info.Plot=function(e,t){this.create=function(){e&&u.html.cleanNode(e),u.gui.plot(e,t.getImage().getHistogram())},this.update=function(n){var i=n.wc,r=n.ww,o=parseInt((r-1)/2,10),a=parseInt(i-.5,10),s=a-o,l=a+o,c=[{color:"#faa",lineWidth:1,xaxis:{from:s,to:s}},{color:"#aaf",lineWidth:1,xaxis:{from:l,to:l}}];u.gui.plot(e,t.getImage().getHistogram(),{markings:c})}},u.gui.info.Overlay=function(e,t,n){var i=this;this.getOverlays=function(){var e=n.getImage();if(e){var i=e.getOverlays();if(i){var r=i[n.getViewController().getCurrentPosition().k];if(r)return r[t]}}},this.create=function(){u.html.cleanNode(e);var n=i.getOverlays();if(n)if("bc"===t||"tc"===t||"cr"===t||"cl"===t)e.textContent=n[0].value;else{for(var r=document.createElement("ul"),o=0;n[o];o++){var a;"window-center"===n[o].value?((a=document.createElement("li")).className="info-"+t+"-window-center",r.appendChild(a)):"window-width"===n[o].value?((a=document.createElement("li")).className="info-"+t+"-window-width",r.appendChild(a)):"zoom"===n[o].value?((a=document.createElement("li")).className="info-"+t+"-zoom",r.appendChild(a)):"offset"===n[o].value?((a=document.createElement("li")).className="info-"+t+"-offset",r.appendChild(a)):"value"===n[o].value?((a=document.createElement("li")).className="info-"+t+"-value",r.appendChild(a)):"position"===n[o].value?((a=document.createElement("li")).className="info-"+t+"-position",r.appendChild(a)):"frame"===n[o].value?((a=document.createElement("li")).className="info-"+t+"-frame",r.appendChild(a)):((a=document.createElement("li")).className="info-"+t+"-"+o,a.appendChild(document.createTextNode(n[o].value)),r.appendChild(a))}e.appendChild(r)}},this.update=function(n){var r=i.getOverlays();if(r)if("bc"===t||"tc"===t||"cr"===t||"cl"===t)e.textContent=r[0].value;else{var o,a;for(a=0;r[a];a++)if("window-center"===r[a].value){if("wl-center-change"===n.type){o=e.getElementsByClassName("info-"+t+"-window-center")[0],u.html.cleanNode(o);var s=u.utils.replaceFlags2(r[a].format,[Math.round(n.wc)]);o&&o.appendChild(document.createTextNode(s))}}else if("window-width"===r[a].value){if("wl-width-change"===n.type){o=e.getElementsByClassName("info-"+t+"-window-width")[0],u.html.cleanNode(o);var l=u.utils.replaceFlags2(r[a].format,[Math.round(n.ww)]);o&&o.appendChild(document.createTextNode(l))}}else if("zoom"===r[a].value){if("zoom-change"===n.type){o=e.getElementsByClassName("info-"+t+"-zoom")[0],u.html.cleanNode(o);var c=Number(n.scale).toPrecision(3),d=u.utils.replaceFlags2(r[a].format,[c]);o&&o.appendChild(document.createTextNode(d))}}else if("offset"===r[a].value){if("zoom-change"===n.type){o=e.getElementsByClassName("info-"+t+"-offset")[0],u.html.cleanNode(o);var S=[Number(n.cx).toPrecision(3),Number(n.cy).toPrecision(3)],x=u.utils.replaceFlags2(r[a].format,S);o&&o.appendChild(document.createTextNode(x))}}else if("value"===r[a].value){if("position-change"===n.type){o=e.getElementsByClassName("info-"+t+"-value")[0],u.html.cleanNode(o);var g=u.utils.replaceFlags2(r[a].format,[n.value]);o&&o.appendChild(document.createTextNode(g))}}else if("position"===r[a].value){if("position-change"===n.type){o=e.getElementsByClassName("info-"+t+"-position")[0],u.html.cleanNode(o);var m=u.utils.replaceFlags2(r[a].format,[n.i,n.j,n.k]);o&&o.appendChild(document.createTextNode(m))}}else if("frame"===r[a].value){if("frame-change"===n.type){o=e.getElementsByClassName("info-"+t+"-frame")[0],u.html.cleanNode(o);var h=u.utils.replaceFlags2(r[a].format,[n.frame]);o&&o.appendChild(document.createTextNode(h))}}else"position-change"===n.type&&(o=e.getElementsByClassName("info-"+t+"-"+a)[0],u.html.cleanNode(o),o&&o.appendChild(document.createTextNode(r[a].value)))}}},u.gui.info.createOverlays=function(e){var t={},n=e.getFromKey("x00080060");if(!n)return t;var i=u.gui.info.overlayMaps;if(!i)return t;for(var r=i[n]||i["*"],o=0;r[o];o++){var a=r[o].value,s=r[o].tags,l=r[o].format,c=r[o].pos;if(void 0!==s&&0!==s.length){for(var d=[],S=0;S<s.length;++S)d.push(e.getElementValueAsStringFromKey(s[S]));void 0!==l&&null!==l||(l=u.utils.createDefaultReplaceFormat(d)),a=u.utils.replaceFlags2(l,d)}a&&0!==a.length&&(t[c]||(t[c]=[]),t[c].push({value:a.trim(),format:l}))}var x=e.getFromKey("x00200020");if(void 0!==x&&null!==x&&2==x.length){var g=u.dicom.cleanString(x[0]),m=u.dicom.cleanString(x[1]);t.cr=[{value:g}],t.cl=[{value:u.dicom.getReverseOrientation(g)}],t.bc=[{value:m}],t.tc=[{value:u.dicom.getReverseOrientation(m)}]}return t},u.gui.info.createOverlaysForDom=function(e){var t={},n=u.gui.info.overlayMaps;if(!n)return t;var i=n.DOM;if(!i)return t;for(var r=0;i[r];r++){var o=i[r].value,a=i[r].tags,s=i[r].format,l=i[r].pos;if(void 0!==a&&0!==a.length){for(var c=[],d=0;d<a.length;++d)for(var S=0;S<e.length;++S)a[d]===e[S].name&&c.push(e[S].value);void 0!==s&&null!==s||(s=u.utils.createDefaultReplaceFormat(c)),o=u.utils.replaceFlags2(s,c)}o&&0!==o.length&&(t[l]||(t[l]=[]),t[l].push({value:o.trim(),format:s}))}return t};(u=u||{}).html=u.html||{},u.html.Layer=function(e){var t=null,n=null;this.getCanvas=function(){return e},this.getContext=function(){return n},this.getOffset=function(){return e.offset()};var i=null,r={x:0,y:0};this.getOrigin=function(){return r};var o={x:1,y:1};this.getZoom=function(){return o};var a={x:0,y:0};this.getTrans=function(){return a},this.setWidth=function(t){e.width=t},this.setHeight=function(t){e.height=t},this.zoom=function(e,t,n,i){r.x=n-(n-r.x)*(e/o.x),r.y=i-(i-r.y)*(t/o.y),o.x=e,o.y=t},this.translate=function(e,t){a.x=e,a.y=t},this.setImageData=function(e){i=e,t.getContext("2d").putImageData(i,0,0)},this.resetLayout=function(e){r.x=0,r.y=0,o.x=e,o.y=e,a.x=0,a.y=0},this.displayToIndex=function(e){return{x:(e.x-r.x)/o.x-a.x,y:(e.y-r.y)/o.y-a.y}},this.draw=function(){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,e.width,e.height),n.restore(),n.setTransform(o.x,0,0,o.y,r.x+a.x*o.x,r.y+a.y*o.y),n.drawImage(t,0,0)},this.initialise=function(r,o){e.getContext?(n=e.getContext("2d"))?(e.width=r,e.height=o,n.clearRect(0,0,e.width,e.height),i=n.getImageData(0,0,e.width,e.height),(t=document.createElement("canvas")).width=r,t.height=o):alert("Error: failed to get the 2D context."):alert("Error: no canvas.getContext method.")},this.fillContext=function(){n.fillRect(0,0,e.width,e.height)},this.clear=function(){n.clearRect(0,0,e.width,e.height),i=n.getImageData(0,0,e.width,e.height),this.resetLayout()},this.merge=function(t){for(var n=t.getContext().getImageData(0,0,e.width,e.height),a=0,s=0,l=0,u=0,c=0,d=0;d<e.height;++d){s=parseInt(r.y+d*o.y,10)*e.width,u=d*e.width;for(var S=0;S<e.width;++S)a=4*(parseInt(r.x+S*o.x,10)+s),l=4*(S+u),0!==(c=n.data[a+3])&&(i.data[l]=n.data[a],i.data[l+1]=n.data[a+1],i.data[l+2]=n.data[a+2],i.data[l+3]=c)}t.clear(),this.draw()},this.setLineColour=function(e){n.fillStyle=e,n.strokeStyle=e},this.setStyleDisplay=function(t){e.style.display=!0===t?"":"none"},this.isVisible=function(){return"none"!==e.style.display},this.align=function(t){e.style.top=t.getCanvas().offsetTop,e.style.left=t.getCanvas().offsetLeft}},u.html.getEventOffset=function(e){var t=[],n=0,i=0;if(e.targetTouches){for(var r=0,o=0,a=e.targetTouches[0].target.offsetParent;a;)isNaN(a.offsetLeft)||(r+=a.offsetLeft),isNaN(a.offsetTop)||(o+=a.offsetTop),a=a.offsetParent;for(var s=null,l=0;l<e.targetTouches.length;++l)n=(s=e.targetTouches[l]).pageX-r,i=s.pageY-o,t.push({x:n,y:i})}else n=void 0===e.offsetX?e.layerX:e.offsetX,i=void 0===e.offsetY?e.layerY:e.offsetY,t.push({x:n,y:i});return t};(u=u||{}).gui=u.gui||{},u.gui.base=u.gui.base||{},u.gui.base.Loadbox=function(e,t){var n=null;this.setup=function(){(n=u.html.createHtmlSelect("loaderSelect",t,"io")).onchange=e.onChangeLoader;for(var i=e.getElement("loaderlist");i.hasChildNodes();)i.removeChild(i.firstChild);i.appendChild(n),u.gui.refreshElement(i)},this.displayLoader=function(e){for(var n=Object.keys(t),i=0;i<n.length;++i)n[i]===e?t[n[i]].display(!0):t[n[i]].display(!1)},this.reset=function(){var e=Object.keys(t);this.displayLoader(e[0]),n&&(n.selectedIndex=0)}},u.gui.base.FileLoad=function(e){function t(t){"function"==typeof n.onchange&&n.onchange(t),e.onChangeFiles(t)}var n=this;this.setup=function(){var n=document.createElement("input");n.onchange=t,n.type="file",n.multiple=!0,n.className="imagefiles",n.setAttribute("data-clear-btn","true"),n.setAttribute("data-mini","true");var i=document.createElement("div");i.className="imagefilesdiv",i.style.display="none",i.appendChild(n);var r=e.getElement("loaderlist");r.appendChild(i),u.gui.refreshElement(r)},this.display=function(t){e.getElement("loaderlist").getElementsByClassName("imagefilesdiv")[0].style.display=t?"":"none"}},u.gui.base.FolderLoad=function(e){function t(t){"function"==typeof n.onchange&&n.onchange(t),e.onChangeFiles(t)}var n=this;this.setup=function(){var n=document.createElement("input");n.onchange=t,n.type="file",n.multiple=!0,n.webkitdirectory=!0,n.className="imagefolder",n.setAttribute("data-clear-btn","true"),n.setAttribute("data-mini","true");var i=document.createElement("div");i.className="imagefolderdiv",i.style.display="none",i.appendChild(n);var r=e.getElement("loaderlist");r.appendChild(i),u.gui.refreshElement(r)},this.display=function(t){e.getElement("loaderlist").getElementsByClassName("imagefolderdiv")[0].style.display=t?"":"none"}},u.gui.base.UrlLoad=function(e){function t(t){"function"==typeof n.onchange&&n.onchange(t),e.onChangeURL(t)}var n=this;this.setup=function(){var n=document.createElement("input");n.onchange=t,n.type="url",n.className="imageurl",n.setAttribute("data-clear-btn","true"),n.setAttribute("data-mini","true");var i=document.createElement("div");i.className="imageurldiv",i.style.display="none",i.appendChild(n);var r=e.getElement("loaderlist");r.appendChild(i),u.gui.refreshElement(r)},this.display=function(t){e.getElement("loaderlist").getElementsByClassName("imageurldiv")[0].style.display=t?"":"none"}};(u=u||{}).html=u.html||{},u.html.Style=function(){var e="#ffff80",t=1;this.getFontFamily=function(){return"Verdana"},this.getFontSize=function(){return 12},this.getStrokeWidth=function(){return 2},this.getTextColour=function(){return"#fff"},this.getLineColour=function(){return e},this.setLineColour=function(t){e=t},this.setScale=function(e){t=e},this.scale=function(e){return e/t}},u.html.Style.prototype.getFontStr=function(){return"normal "+this.getFontSize()+"px sans-serif"},u.html.Style.prototype.getLineHeight=function(){return this.getFontSize()+this.getFontSize()/5},u.html.Style.prototype.getScaledFontSize=function(){return this.scale(this.getFontSize())},u.html.Style.prototype.getScaledStrokeWidth=function(){return this.scale(this.getStrokeWidth())};(u=u||{}).gui=u.gui||{},u.gui.base=u.gui.base||{},u.gui.base.Toolbox=function(e){this.setup=function(t){var n=u.html.createHtmlSelect("toolSelect",t,"tool");n.onchange=e.onChangeTool;var i=document.createElement("li");i.className="toolLi ui-block-a",i.style.display="none",i.appendChild(n);var r=document.createElement("ul");r.appendChild(i),r.className="ui-grid-b";var o=e.getElement("toolList");o.appendChild(r),u.gui.refreshElement(o)},this.display=function(t){var n=e.getElement("toolLi");u.html.displayElement(n,t)},this.initialise=function(t){for(var n=e.getElement("toolSelect"),i=n.options,r=-1,o=0;o<i.length;++o)t[o]?(-1===r&&(r=o),i[o].style.display=""):i[o].style.display="none";n.selectedIndex=r,u.gui.refreshElement(n)}},u.gui.base.WindowLevel=function(e){this.setup=function(){var t=u.html.createHtmlSelect("presetSelect",[]);t.onchange=e.onChangeWindowLevelPreset;var n=u.html.createHtmlSelect("colourMapSelect",u.tool.colourMaps,"colourmap");n.onchange=e.onChangeColourMap;var i=document.createElement("li");i.className="wlLi ui-block-b",i.style.display="none",i.appendChild(t);var r=document.createElement("li");r.className="cmLi ui-block-c",r.style.display="none",r.appendChild(n);var o=e.getElement("toolList").getElementsByTagName("ul")[0];o.appendChild(i),o.appendChild(r),u.gui.refreshElement(o)},this.display=function(t){var n=e.getElement("wlLi");u.html.displayElement(n,t),n=e.getElement("cmLi"),u.html.displayElement(n,t)},this.initialise=function(){var t=u.html.createHtmlSelect("presetSelect",e.getViewController().getWindowLevelPresetsNames(),"wl.presets",!0);t.onchange=e.onChangeWindowLevelPreset,t.title="Select w/l preset.";var n=e.getElement("wlLi");u.html.cleanNode(n),n.appendChild(t),u.gui.refreshElement(n);var i=e.getElement("colourMapSelect");i.selectedIndex=0,"MONOCHROME1"===e.getImage().getPhotometricInterpretation()&&(i.selectedIndex=1),u.gui.refreshElement(i)}},u.gui.base.Draw=function(e){var t=["Yellow","Red","White","Green","Blue","Lime","Fuchsia","Black"];this.getDefaultColour=function(){return u.browser.hasInputColor()?"#FFFF80":t[0]},this.setup=function(n){var i=u.html.createHtmlSelect("shapeSelect",n,"shape");i.onchange=e.onChangeShape;var r=null;u.browser.hasInputColor()?((r=document.createElement("input")).className="colourSelect",r.type="color",r.value="#FFFF80"):r=u.html.createHtmlSelect("colourSelect",t,"colour"),r.onchange=e.onChangeLineColour;var o=document.createElement("li");o.className="shapeLi ui-block-c",o.style.display="none",o.appendChild(i);var a=document.createElement("li");a.className="colourLi ui-block-b",a.style.display="none",a.appendChild(r);var s=e.getElement("toolList").getElementsByTagName("ul")[0];s.appendChild(o),s.appendChild(a),u.gui.refreshElement(s)},this.display=function(t){var n=e.getElement("colourLi");u.html.displayElement(n,t),n=e.getElement("shapeLi"),u.html.displayElement(n,t)},this.initialise=function(){var t=e.getElement("shapeSelect");t.selectedIndex=0,u.gui.refreshElement(t);var n=e.getElement("colourSelect");u.browser.hasInputColor()||(n.selectedIndex=0),u.gui.refreshElement(n)}},u.gui.base.ColourTool=function(e,t){var n=["Yellow","Red","White","Green","Blue","Lime","Fuchsia","Black"],i=t+"ColourSelect",r=t+"ColourLi";this.getDefaultColour=function(){return u.browser.hasInputColor()?"#FFFF80":n[0]},this.setup=function(){var t=null;u.browser.hasInputColor()?((t=document.createElement("input")).className=i,t.type="color",t.value="#FFFF80"):t=u.html.createHtmlSelect(i,n,"colour"),t.onchange=e.onChangeLineColour;var o=document.createElement("li");o.className=r+" ui-block-b",o.style.display="none",o.appendChild(t);var a=e.getElement("toolList").getElementsByTagName("ul")[0];a.appendChild(o),u.gui.refreshElement(a)},this.display=function(t){var n=e.getElement(r);u.html.displayElement(n,t)},this.initialise=function(){var t=e.getElement(i);u.browser.hasInputColor()||(t.selectedIndex=0),u.gui.refreshElement(t)}},u.gui.base.ZoomAndPan=function(e){this.setup=function(){var t=document.createElement("button");t.className="zoomResetButton",t.name="zoomResetButton",t.onclick=e.onZoomReset,t.setAttribute("style","width:100%; margin-top:0.5em;"),t.setAttribute("class","ui-btn ui-btn-b");var n=document.createTextNode(u.i18n("basics.reset"));t.appendChild(n);var i=document.createElement("li");i.className="zoomLi ui-block-c",i.style.display="none",i.appendChild(t);var r=e.getElement("toolList").getElementsByTagName("ul")[0];r.appendChild(i),u.gui.refreshElement(r)},this.display=function(t){var n=e.getElement("zoomLi");u.html.displayElement(n,t)}},u.gui.base.Scroll=function(e){this.setup=function(){var t=document.createElement("li");t.className="scrollLi ui-block-c",t.style.display="none";var n=e.getElement("toolList").getElementsByTagName("ul")[0];n.appendChild(t),u.gui.refreshElement(n)},this.display=function(t){var n=e.getElement("scrollLi");u.html.displayElement(n,t)}};(u=u||{}).gui=u.gui||{},u.gui.base=u.gui.base||{},u.gui.base.Undo=function(e){this.setup=function(){var t=document.createElement("p");t.appendChild(document.createTextNode("History:")),t.appendChild(document.createElement("br"));var n=document.createElement("select");n.className="history_list",n.name="history_list",n.multiple="multiple",t.appendChild(n);for(var i=e.getElement("history");i.hasChildNodes();)i.removeChild(i.firstChild);i.appendChild(t),u.gui.refreshElement(i)},this.initialise=function(){var t=e.getElement("history_list");if(t&&0!==t.length)for(var n=t.length-1;n>=0;--n)t.remove(n);u.gui.refreshElement(t)},this.addCommandToUndoHtml=function(t){var n=e.getElement("history_list"),i=n.length-(n.selectedIndex+1);if(i>0)for(var r=0;r<i;++r)n.remove(n.length-1);var o=document.createElement("option");o.text=t,o.value=t,n.add(o),n.selectedIndex++,u.gui.refreshElement(n)},this.enableInUndoHtml=function(t){var n=e.getElement("history_list");t?(n.selectedIndex++,n.options[n.selectedIndex].disabled=!1):(n.options[n.selectedIndex].disabled=!0,n.selectedIndex--),u.gui.refreshElement(n)}};(u=u||{}).image=u.image||{};var c=void 0!==d,d=d||{},S=void 0!==x&&void 0!==x.lossless,x=x||{};x.lossless=x.lossless||{};var g=void 0!==m,m=m||{};u.image.AsynchPixelBufferDecoder=function(e){var t=new u.utils.ThreadPool(15);t.init(),this.decode=function(n,i,r,o){t.onpoolworkend=this.ondecodeend,t.onworkerend=this.ondecoded;var a=new u.utils.WorkerTask(e,o,{buffer:n,bitsAllocated:i,isSigned:r});t.addWorkerTask(a)},this.abort=function(){t.abort()}},u.image.AsynchPixelBufferDecoder.prototype.ondecodeend=function(){},u.image.AsynchPixelBufferDecoder.prototype.ondecoded=function(){},u.image.SynchPixelBufferDecoder=function(e){this.decode=function(t,n,i,r){var o=null,a=null;if("jpeg-lossless"===e){if(!S)throw new Error("No JPEG Lossless decoder provided");var s=n/8,l=new Uint8Array(t),u=(o=new x.lossless.Decoder).decode(l.buffer,0,l.buffer.byteLength,s);8===n?a=i?new Int8Array(u.buffer):new Uint8Array(u.buffer):16===n&&(a=i?new Int16Array(u.buffer):new Uint16Array(u.buffer))}else if("jpeg-baseline"===e){if(!c)throw new Error("No JPEG Baseline decoder provided");(o=new d).parse(t),a=o.getData(o.width,o.height)}else if("jpeg2000"===e){if(!g)throw new Error("No JPEG 2000 decoder provided");(o=new m).parse(t),a=o.tiles[0].items}this.ondecoded(),this.ondecodeend(),r({data:[a]})},this.abort=function(){}},u.image.SynchPixelBufferDecoder.prototype.ondecodeend=function(){},u.image.SynchPixelBufferDecoder.prototype.ondecoded=function(){},u.image.PixelBufferDecoder=function(e){var t=null;t=void 0!==u.image.decoderScripts&&void 0!==u.image.decoderScripts[e]?new u.image.AsynchPixelBufferDecoder(u.image.decoderScripts[e]):new u.image.SynchPixelBufferDecoder(e),this.decode=function(e,n,i,r){t.ondecodeend=this.ondecodeend,t.ondecoded=this.ondecoded,t.decode(e,n,i,r)},this.abort=function(){t.abort()}},u.image.PixelBufferDecoder.prototype.ondecodeend=function(){},u.image.PixelBufferDecoder.prototype.ondecoded=function(){};(u=u||{}).image=u.image||{},u.image.DicomBufferToView=function(){var e,t=this;this.setDefaultCharacterSet=function(t){e=t};var n=null;this.convert=function(i,r){var o=new u.dicom.DicomParser;o.setDefaultCharacterSet(e),o.parse(i);var a=o.getRawDicomElements().x7FE00010.value,s=u.dicom.cleanString(o.getRawDicomElements().x00020010.value[0]),l=u.dicom.getSyntaxDecompressionName(s),c=function(){var e=(new u.image.ImageFactory).create(o.getDicomElements(),a),n=(new u.image.ViewFactory).create(o.getDicomElements(),e);t.onload({view:n,info:o.getDicomElements().dumpToTable()})};if(null!==l){var d=o.getRawDicomElements().x00280100.value[0],S=1===o.getRawDicomElements().x00280103.value[0],x=a.length;n||(n=new u.image.PixelBufferDecoder(l)),n.ondecodeend=function(){t.onloadend()},1===x&&(n.ondecoded=function(){t.onloadend()});var g=0,m=function(e){return function(n){var i={type:"load-progress",lengthComputable:!0,loaded:100*++g/x,total:100};void 0!==r&&(i.index=r),t.onprogress(i),a[e]=n.data[0],0===e&&c()}};if(n.decode(a[0],d,S,m(0),!1),1!==x)for(var h=1;h<x;++h)n.decode(a[h],d,S,m(h))}else{var p={type:"load-progress",lengthComputable:!0,loaded:100,total:100};void 0!==r&&(p.index=r),t.onprogress(p),c(),t.onloadend()}},this.abort=function(){n&&n.abort()}},u.image.DicomBufferToView.prototype.onloadend=function(){},u.image.DicomBufferToView.prototype.onload=function(){},u.image.DicomBufferToView.prototype.onprogress=function(){};(u=u||{}).image=u.image||{},u.image.imageDataToBuffer=function(e){for(var t=e.data.length,n=new Uint8Array(t/4*3),i=0,r=0;r<t;r+=4)n[i]=e.data[r],n[i+1]=e.data[r+1],n[i+2]=e.data[r+2],i+=3;return n},u.image.getDefaultView=function(e,t,n,i,r,o){var a=new u.image.Size(e,t),s=new u.image.Spacing(1,1),l=new u.math.Point3D(0,0,n),c=new u.image.Geometry(l,a,s),d=new u.image.Image(c,i,r);d.setPhotometricInterpretation("RGB");var S={};S.BitsStored=8,d.setMeta(S),d.setFirstOverlay(u.gui.info.createOverlaysForDom(o));var x=new u.image.View(d);return x.setWindowLevelMinMax(),x},u.image.getViewFromDOMImage=function(e){var t=e.width,n=e.height,i=document.createElement("canvas");i.width=t,i.height=n;var r=i.getContext("2d");r.drawImage(e,0,0);var o=r.getImageData(0,0,t,n),a=[];"string"==typeof e.origin?a.push({name:"origin",value:e.origin}):(a.push({name:"fileName",value:e.origin.name}),a.push({name:"fileType",value:e.origin.type}),a.push({name:"fileLastModifiedDate",value:e.origin.lastModifiedDate})),a.push({name:"imageWidth",value:t}),a.push({name:"imageHeight",value:n});var s=e.index?e.index:0,l=u.image.imageDataToBuffer(o);return{view:u.image.getDefaultView(t,n,s,[l],1,a),info:a}},u.image.getViewFromDOMVideo=function(e,t,n,i,r){function o(){!function(){var i={type:"load-progress",lengthComputable:!0,loaded:g,total:c};void 0!==r&&(i.index=r),n(i),x.drawImage(e,0,0);var o=u.image.imageDataToBuffer(x.getImageData(0,0,a,s));0===g?(m=u.image.getDefaultView(a,s,1,[o],c,d),t({view:m,info:d})):m.appendFrameBuffer(o)}();var S=++g/l;S<=this.duration?this.currentTime=S:(i(),e.removeEventListener("seeked",o))}var a=e.videoWidth,s=e.videoHeight,l=30,c=Math.floor(e.duration*l),d=[];e.file&&(d.push({name:"fileName",value:e.file.name}),d.push({name:"fileType",value:e.file.type}),d.push({name:"fileLastModifiedDate",value:e.file.lastModifiedDate})),d.push({name:"imageWidth",value:a}),d.push({name:"imageHeight",value:s}),d.push({name:"numberOfFrames",value:c});var S=document.createElement("canvas");S.width=a,S.height=s;var x=S.getContext("2d");e.addEventListener("seeked",o,!1);var g=0,m=null;e.currentTime=0};(u=u||{}).image=u.image||{},u.image.filter=u.image.filter||{},u.image.filter.Threshold=function(){var e=0,t=0;this.getMin=function(){return e},this.setMin=function(t){e=t},this.getMax=function(){return t},this.setMax=function(e){t=e},this.getName=function(){return"Threshold"};var n=null;this.setOriginalImage=function(e){n=e},this.getOriginalImage=function(){return n}},u.image.filter.Threshold.prototype.update=function(){var e=this.getOriginalImage(),t=e.getDataRange().min,n=this;return e.transform(function(e){return e<n.getMin()||e>n.getMax()?t:e})},u.image.filter.Sharpen=function(){this.getName=function(){return"Sharpen"};var e=null;this.setOriginalImage=function(t){e=t},this.getOriginalImage=function(){return e}},u.image.filter.Sharpen.prototype.update=function(){return this.getOriginalImage().convolute2D([0,-1,0,-1,5,-1,0,-1,0])},u.image.filter.Sobel=function(){this.getName=function(){return"Sobel"};var e=null;this.setOriginalImage=function(t){e=t},this.getOriginalImage=function(){return e}},u.image.filter.Sobel.prototype.update=function(){var e=this.getOriginalImage(),t=e.convolute2D([1,0,-1,2,0,-2,1,0,-1]),n=e.convolute2D([1,2,1,0,0,0,-1,-2,-1]);return t.compose(n,function(e,t){return Math.sqrt(e*e+t*t)})};(u=u||{}).image=u.image||{},u.image.Size=function(e,t,n){this.getNumberOfColumns=function(){return e},this.getNumberOfRows=function(){return t},this.getNumberOfSlices=function(){return n||1}},u.image.Size.prototype.getSliceSize=function(){return this.getNumberOfColumns()*this.getNumberOfRows()},u.image.Size.prototype.getTotalSize=function(){return this.getSliceSize()*this.getNumberOfSlices()},u.image.Size.prototype.equals=function(e){return null!==e&&this.getNumberOfColumns()===e.getNumberOfColumns()&&this.getNumberOfRows()===e.getNumberOfRows()&&this.getNumberOfSlices()===e.getNumberOfSlices()},u.image.Size.prototype.isInBounds=function(e,t,n){return!(e<0||e>this.getNumberOfColumns()-1||t<0||t>this.getNumberOfRows()-1||n<0||n>this.getNumberOfSlices()-1)},u.image.Size.prototype.toString=function(){return"("+this.getNumberOfColumns()+", "+this.getNumberOfRows()+", "+this.getNumberOfSlices()+")"},u.image.Spacing=function(e,t,n){this.getColumnSpacing=function(){return e},this.getRowSpacing=function(){return t},this.getSliceSpacing=function(){return n||1}},u.image.Spacing.prototype.equals=function(e){return null!==e&&this.getColumnSpacing()===e.getColumnSpacing()&&this.getRowSpacing()===e.getRowSpacing()&&this.getSliceSpacing()===e.getSliceSpacing()},u.image.Spacing.prototype.toString=function(){return"("+this.getColumnSpacing()+", "+this.getRowSpacing()+", "+this.getSliceSpacing()+")"},u.image.Geometry=function(e,t,n,i){void 0===e&&(e=new u.math.Point3D(0,0,0));var r=[e];void 0===i&&(i=new u.math.getIdentityMat33),this.getOrigin=function(){return e},this.getOrigins=function(){return r},this.getSize=function(){return t},this.getSpacing=function(){return n},this.getOrientation=function(){return i},this.getSliceIndex=function(e){for(var t=0,n=e.getDistance(r[0]),o=0,a=0;a<r.length;++a)(o=e.getDistance(r[a]))<n&&(n=o,t=a);return new u.math.Vector3D(i.get(2,0),i.get(2,1),i.get(2,2)).dotProduct(e.minus(r[t]))>0?t+1:t},this.appendOrigin=function(e,n){r.splice(n,0,e),t=new u.image.Size(t.getNumberOfColumns(),t.getNumberOfRows(),t.getNumberOfSlices()+1)}},u.image.Geometry.prototype.equals=function(e){return null!==e&&this.getOrigin()===e.getOrigin()&&this.getSize()===e.getSize()&&this.getSpacing()===e.getSpacing()},u.image.Geometry.prototype.indexToOffset=function(e){var t=this.getSize();return e.getI()+e.getJ()*t.getNumberOfColumns()+e.getK()*t.getSliceSize()},u.image.Geometry.prototype.indexToWorld=function(e){var t=this.getOrigin(),n=this.getSpacing();return new u.math.Point3D(t.getX()+e.getI()*n.getColumnSpacing(),t.getY()+e.getJ()*n.getRowSpacing(),t.getZ()+e.getK()*n.getSliceSpacing())},u.image.Geometry.prototype.worldToIndex=function(e){var t=this.getOrigin(),n=this.getSpacing();return new u.math.Point3D(e.getX()/n.getColumnSpacing()-t.getX(),e.getY()/n.getRowSpacing()-t.getY(),e.getZ()/n.getSliceSpacing()-t.getZ())};(u=u||{}).image=u.image||{},u.image.RescaleSlopeAndIntercept=function(e,t){this.getSlope=function(){return e},this.getIntercept=function(){return t},this.apply=function(n){return n*e+t}},u.image.RescaleSlopeAndIntercept.prototype.equals=function(e){return null!==e&&this.getSlope()===e.getSlope()&&this.getIntercept()===e.getIntercept()},u.image.RescaleSlopeAndIntercept.prototype.toString=function(){return this.getSlope()+", "+this.getIntercept()},u.image.RescaleSlopeAndIntercept.prototype.isID=function(){return 1===this.getSlope()&&0===this.getIntercept()},u.image.Image=function(e,t,n){void 0===n&&(n=t.length),this.getNumberOfFrames=function(){return n};for(var i=[],r=0,o=e.getSize().getNumberOfSlices();r<o;++r)i.push(new u.image.RescaleSlopeAndIntercept(1,0));var a=!0,s=!0,l="MONOCHROME2",c=0,d=t[0].length/e.getSize().getTotalSize(),S={},x=null,g=null,m=null,h=[];this.setFirstOverlay=function(e){h[0]=e},this.getOverlays=function(){return h},this.getGeometry=function(){return e},this.getBuffer=function(){return t},this.getFrame=function(e){return t[e]},this.getRescaleSlopeAndIntercept=function(e){return i[e]},this.setRescaleSlopeAndIntercept=function(e,t){void 0===t&&(t=0),i[t]=e,a=!0,s=!0;for(var n=0,r=i.length;n<r;++n)i[n].isID()||(a=!1),n>0&&!i[n].equals(i[n-1])&&(s=!1)},this.isIdentityRSI=function(){return a},this.isConstantRSI=function(){return s},this.getPhotometricInterpretation=function(){return l},this.setPhotometricInterpretation=function(e){l=e},this.getPlanarConfiguration=function(){return c},this.setPlanarConfiguration=function(e){c=e},this.getNumberOfComponents=function(){return d},this.getMeta=function(){return S},this.setMeta=function(e){S=e},this.getValueAtOffset=function(e,n){return t[n][e]},this.clone=function(){for(var e=[],n=0,i=this.getNumberOfFrames();n<i;++n)e[n]=t[n].slice(0);for(var r=new u.image.Image(this.getGeometry(),e),o=this.getGeometry().getSize().getNumberOfSlices(),a=0;a<o;++a)r.setRescaleSlopeAndIntercept(this.getRescaleSlopeAndIntercept(a),a);return r.setPhotometricInterpretation(this.getPhotometricInterpretation()),r.setPlanarConfiguration(this.getPlanarConfiguration()),r.setMeta(this.getMeta()),r},this.appendSlice=function(n,r){if(null===n)throw new Error("Cannot append null slice");var o=n.getGeometry().getSize(),a=e.getSize();if(1!==o.getNumberOfSlices())throw new Error("Cannot append more than one slice");if(a.getNumberOfColumns()!==o.getNumberOfColumns())throw new Error("Cannot append a slice with different number of columns");if(a.getNumberOfRows()!==o.getNumberOfRows())throw new Error("Cannot append a slice with different number of rows");if(l!==n.getPhotometricInterpretation())throw new Error("Cannot append a slice with different photometric interpretation");for(var s in S)if(S[s]!==n.getMeta()[s])throw new Error("Cannot append a slice with different "+s);var c=void 0===r?0:r,d=1;"RGB"!==l&&"YBR_FULL_422"!==l||(d=3);var x=d*a.getSliceSize(),g=u.dicom.getTypedArray(8*t[c].BYTES_PER_ELEMENT,S.IsSigned?1:0,x*(a.getNumberOfSlices()+1)),m=e.getSliceIndex(n.getGeometry().getOrigin());if(0===m)g.set(n.getFrame(c)),g.set(t[c],x);else if(m===a.getNumberOfSlices())g.set(t[c]),g.set(n.getFrame(c),a.getNumberOfSlices()*x);else{var p=m*x;g.set(t[c].subarray(0,p-1)),g.set(n.getFrame(c),p),g.set(t[c].subarray(p),p+x)}return e.appendOrigin(n.getGeometry().getOrigin(),m),i.splice(m,0,n.getRescaleSlopeAndIntercept(0)),t[c]=g,h.splice(m,0,n.getOverlays()[0]),m},this.appendFrameBuffer=function(e){t.push(e)},this.getDataRange=function(){return x||(x=this.calculateDataRange()),x},this.getRescaledDataRange=function(){return g||(g=this.calculateRescaledDataRange()),g},this.getHistogram=function(){if(!m){var e=this.calculateHistogram();x=e.dataRange,g=e.rescaledDataRange,m=e.histogram}return m}},u.image.Image.prototype.getValue=function(e,t,n,i){var r=i||0,o=new u.math.Index3D(e,t,n);return this.getValueAtOffset(this.getGeometry().indexToOffset(o),r)},u.image.Image.prototype.getRescaledValue=function(e,t,n,i){var r=i||0,o=this.getValue(e,t,n,r);return this.isIdentityRSI()||(o=this.getRescaleSlopeAndIntercept(n).apply(o)),o},u.image.Image.prototype.calculateDataRange=function(){for(var e=this.getGeometry().getSize().getTotalSize(),t=this.getValueAtOffset(0,0),n=t,i=0,r=0;r<1;++r)for(var o=0;o<e;++o)(i=this.getValueAtOffset(o,r))>n&&(n=i),i<t&&(t=i);return{min:t,max:n}},u.image.Image.prototype.calculateRescaledDataRange=function(){if(this.isIdentityRSI())return this.getDataRange();if(this.isConstantRSI()){var e=this.getDataRange(),t=this.getRescaleSlopeAndIntercept(0).apply(e.min),n=this.getRescaleSlopeAndIntercept(0).apply(e.max);return{min:t<n?t:n,max:t>n?t:n}}for(var i=this.getGeometry().getSize(),r=this.getRescaledValue(0,0,0),o=r,a=0,s=0;s<1;++s)for(var l=0,u=i.getNumberOfSlices();l<u;++l)for(var c=0,d=i.getNumberOfRows();c<d;++c)for(var S=0,x=i.getNumberOfColumns();S<x;++S)(a=this.getRescaledValue(S,c,l,s))>o&&(o=a),a<r&&(r=a);return{min:r,max:o}},u.image.Image.prototype.calculateHistogram=function(){for(var e=this.getGeometry().getSize(),t=[],n=this.getValue(0,0,0),i=n,r=0,o=this.getRescaledValue(0,0,0),a=o,s=0,l=0,u=this.getNumberOfFrames();l<u;++l)for(var c=0,d=e.getNumberOfSlices();c<d;++c)for(var S=0,x=e.getNumberOfRows();S<x;++S)for(var g=0,m=e.getNumberOfColumns();g<m;++g)(r=this.getValue(g,S,c,l))>i&&(i=r),r<n&&(n=r),(s=this.getRescaleSlopeAndIntercept(c).apply(r))>a&&(a=s),s<o&&(o=s),t[s]=(t[s]||0)+1;for(var h={min:n,max:i},p={min:o,max:a},f=[],C=o;C<=a;++C)f.push([C,t[C]||0]);return{dataRange:h,rescaledDataRange:p,histogram:f}},u.image.Image.prototype.convolute2D=function(e){if(9!==e.length)throw new Error("The convolution matrix does not have a length of 9; it has "+e.length);var t=this.clone(),n=t.getBuffer(),i=this.getGeometry().getSize(),r=i.getNumberOfColumns(),o=i.getNumberOfRows(),a=i.getNumberOfSlices(),s=this.getNumberOfFrames(),l=this.getNumberOfComponents(),u=1,c=1,d=i.getTotalSize();3===l&&(d*=3,0===this.getPlanarConfiguration()?u=3:c=i.getTotalSize());var S=[];S[0]=(-r-1)*u,S[1]=-r*u,S[2]=(1-r)*u,S[3]=-u,S[4]=0,S[5]=1*u,S[6]=(r-1)*u,S[7]=r*u,S[8]=(r+1)*u;var x=[];x[0]=S[4],x[1]=S[4],x[2]=S[5],x[3]=S[4],x[4]=S[4],x[5]=S[5],x[6]=S[7],x[7]=S[7],x[8]=S[8];var g=[];g[0]=S[1],g[1]=S[1],g[2]=S[2],g[3]=S[4],g[4]=S[4],g[5]=S[5],g[6]=S[7],g[7]=S[7],g[8]=S[8];var m=[];m[0]=S[1],m[1]=S[1],m[2]=S[2],m[3]=S[4],m[4]=S[4],m[5]=S[5],m[6]=S[4],m[7]=S[4],m[8]=S[5];var h=[];h[0]=S[3],h[1]=S[4],h[2]=S[5],h[3]=S[3],h[4]=S[4],h[5]=S[5],h[6]=S[6],h[7]=S[7],h[8]=S[8];var p=[];p[0]=S[0],p[1]=S[1],p[2]=S[2],p[3]=S[3],p[4]=S[4],p[5]=S[5],p[6]=S[3],p[7]=S[4],p[8]=S[5];var f=[];f[0]=S[3],f[1]=S[4],f[2]=S[4],f[3]=S[3],f[4]=S[4],f[5]=S[4],f[6]=S[6],f[7]=S[7],f[8]=S[7];var C=[];C[0]=S[0],C[1]=S[1],C[2]=S[1],C[3]=S[3],C[4]=S[4],C[5]=S[4],C[6]=S[6],C[7]=S[7],C[8]=S[7];var y=[];y[0]=S[0],y[1]=S[1],y[2]=S[1],y[3]=S[3],y[4]=S[4],y[5]=S[4],y[6]=S[3],y[7]=S[4],y[8]=S[4];for(var D=0,v=0,L=[],T=0;T<s;T++){D=T*d;for(var I=0;I<l;I++){D+=I*c;for(var P=0;P<a;P++)for(var F=0;F<o;F++)for(var A=0;A<r;A++){L=S,0===A&&0===F?L=x:0===A&&F===o-1?L=m:A===r-1&&0===F?L=f:A===r-1&&F===o-1?L=y:0===A&&F!==o-1&&0!==F?L=g:A===r-1&&F!==o-1&&0!==F?L=C:0!==A&&A!==r-1&&0===F?L=h:0!==A&&A!==r-1&&F===o-1&&(L=p),v=0;for(var E=0;E<9;++E)v+=this.getValueAtOffset(D+L[E],T)*e[E];n[T][D]=v,D+=u}}}return t},u.image.Image.prototype.transform=function(e){for(var t=this.clone(),n=t.getBuffer(),i=0,r=this.getNumberOfFrames();i<r;++i)for(var o=0,a=n[i].length;o<a;++o)n[i][o]=e(t.getValueAtOffset(o,i));return t},u.image.Image.prototype.compose=function(e,t){for(var n=this.clone(),i=n.getBuffer(),r=0,o=this.getNumberOfFrames();r<o;++r)for(var a=0,s=i[r].length;a<s;++a)i[r][a]=Math.floor(t(this.getValueAtOffset(a,r),e.getValueAtOffset(a,r)));return n},u.image.Image.prototype.quantifyLine=function(e){var t={},n=this.getGeometry().getSpacing(),i=e.getWorldLength(n.getColumnSpacing(),n.getRowSpacing());return null!==i&&(t.length={value:i,unit:u.i18n("unit.mm")}),t},u.image.Image.prototype.quantifyRect=function(e){var t={},n=this.getGeometry().getSpacing(),i=e.getWorldSurface(n.getColumnSpacing(),n.getRowSpacing());null!==i&&(t.surface={value:i/100,unit:u.i18n("unit.cm2")});for(var r=[],o=parseInt(e.getBegin().getY(),10),a=parseInt(e.getEnd().getY(),10),s=parseInt(e.getBegin().getX(),10),l=parseInt(e.getEnd().getX(),10),c=o;c<a;++c)for(var d=s;d<l;++d)r.push(this.getValue(d,c,0));var S=u.math.getStats(r);return t.min={value:S.min,unit:""},t.max={value:S.max,unit:""},t.mean={value:S.mean,unit:""},t.stdDev={value:S.stdDev,unit:""},t},u.image.Image.prototype.quantifyEllipse=function(e){var t={},n=this.getGeometry().getSpacing(),i=e.getWorldSurface(n.getColumnSpacing(),n.getRowSpacing());return null!==i&&(t.surface={value:i/100,unit:u.i18n("unit.cm2")}),t},u.image.ImageFactory=function(){},u.image.ImageFactory.prototype.create=function(e,t){var n=e.getFromKey("x00280011");if(!n)throw new Error("Missing or empty DICOM image number of columns");var i=e.getFromKey("x00280010");if(!i)throw new Error("Missing or empty DICOM image number of rows");var r=new u.image.Size(n,i),o=null,a=null,s=e.getFromKey("x00280030"),l=e.getFromKey("x00181164");s&&s[0]&&s[1]?(o=parseFloat(s[0]),a=parseFloat(s[1])):l&&l[0]&&l[1]&&(o=parseFloat(l[0]),a=parseFloat(l[1]));var c=new u.image.Spacing(a,o),d=e.getFromKey("x00020010"),S=u.dicom.cleanString(d),x=u.dicom.isJpeg2000TransferSyntax(S),g=u.dicom.isJpegBaselineTransferSyntax(S),m=u.dicom.isJpegLosslessTransferSyntax(S),h=new Array(0,0,0),p=e.getFromKey("x00200032");p&&(h=[parseFloat(p[0]),parseFloat(p[1]),parseFloat(p[2])]);var f,C=e.getFromKey("x00200037");if(C){var y=new u.math.Vector3D(parseFloat(C[0]),parseFloat(C[1]),parseFloat(C[2])),D=new u.math.Vector3D(parseFloat(C[3]),parseFloat(C[4]),parseFloat(C[5])),v=y.crossProduct(D);f=new u.math.Matrix33(y.getX(),y.getY(),y.getZ(),D.getX(),D.getY(),D.getZ(),v.getX(),v.getY(),v.getZ())}var L=new u.math.Point3D(h[0],h[1],h[2]),T=new u.image.Geometry(L,r,c,f),I=new u.image.Image(T,t),P=e.getFromKey("x00280004");if(P){var F=u.dicom.cleanString(P).toUpperCase();(x||g||m)&&"MONOCHROME1"!==F&&"MONOCHROME2"!==F&&(F="RGB"),I.setPhotometricInterpretation(F)}var A=e.getFromKey("x00280006");A&&I.setPlanarConfiguration(A);var E=1,O=e.getFromKey("x00281053");O&&(E=parseFloat(O));var b=0,w=e.getFromKey("x00281052");w&&(b=parseFloat(w));var R=new u.image.RescaleSlopeAndIntercept(E,b);I.setRescaleSlopeAndIntercept(R);var q={},U=e.getFromKey("x00080060");U&&(q.Modality=U);var M=e.getFromKey("x0020000D");M&&(q.StudyInstanceUID=M);var Q=e.getFromKey("x0020000E");Q&&(q.SeriesInstanceUID=Q);var N=e.getFromKey("x00280101");N&&(q.BitsStored=parseInt(N,10));var B=e.getFromKey("x00280103");return q.IsSigned=!1,B&&(q.IsSigned=1===B),I.setMeta(q),I.setFirstOverlay(u.gui.info.createOverlays(e)),I};(u=u||{}).image=u.image||{},u.image.lut=u.image.lut||{},u.image.lut.Rescale=function(e,t){var n=null,i=!1,r=Math.pow(2,t);this.getRSI=function(){return e},this.isReady=function(){return i},this.initialise=function(){if(!i){n=new Float32Array(r);for(var t=0;t<r;++t)n[t]=e.apply(t);i=!0}},this.getLength=function(){return r},this.getValue=function(e){return n[e]}},u.image.lut.Window=function(e,t){var n=null,i=null,r=!1,o=0;this.getWindowLevel=function(){return i},this.isSigned=function(){return t},this.getRescaleLut=function(){return e},this.isReady=function(){return r},this.setWindowLevel=function(n){if(i=n,o=0,i.setSignedOffset(0),t){var a=e.getLength();o=a/2,i.setSignedOffset(e.getRSI().getSlope()*o)}r=!1},this.update=function(){if(!r){e.isReady()||e.initialise();var t=e.getLength();n||(n=new Uint8ClampedArray(t));for(var o=0;o<t;++o)n[o]=i.apply(e.getValue(o));r=!0}},this.getLength=function(){return n.length},this.getValue=function(e){return n[e+o]}},u.image.lut.range_max=256,u.image.lut.buildLut=function(e){for(var t=[],n=0;n<u.image.lut.range_max;++n)t.push(e(n));return t},u.image.lut.max=function(){return u.image.lut.range_max-1},u.image.lut.maxFirstThird=function(e){return e<u.image.lut.range_max/3?u.image.lut.range_max-1:0},u.image.lut.maxSecondThird=function(e){var t=u.image.lut.range_max/3;return e>=t&&e<2*t?u.image.lut.range_max-1:0},u.image.lut.maxThirdThird=function(e){return e>=2*u.image.lut.range_max/3?u.image.lut.range_max-1:0},u.image.lut.toMaxFirstThird=function(e){var t=3*e;return t>u.image.lut.range_max-1?u.image.lut.range_max-1:t},u.image.lut.toMaxSecondThird=function(e){var t=u.image.lut.range_max/3,n=0;return e>=t&&(n=3*(e-t))>u.image.lut.range_max-1?u.image.lut.range_max-1:n},u.image.lut.toMaxThirdThird=function(e){var t=u.image.lut.range_max/3,n=0;return e>=2*t&&(n=3*(e-2*t))>u.image.lut.range_max-1?u.image.lut.range_max-1:n},u.image.lut.zero=function(){return 0},u.image.lut.id=function(e){return e},u.image.lut.invId=function(e){return u.image.lut.range_max-1-e},u.image.lut.plain={red:u.image.lut.buildLut(u.image.lut.id),green:u.image.lut.buildLut(u.image.lut.id),blue:u.image.lut.buildLut(u.image.lut.id)},u.image.lut.invPlain={red:u.image.lut.buildLut(u.image.lut.invId),green:u.image.lut.buildLut(u.image.lut.invId),blue:u.image.lut.buildLut(u.image.lut.invId)},u.image.lut.rainbow={blue:[0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,255,247,239,231,223,215,207,199,191,183,175,167,159,151,143,135,127,119,111,103,95,87,79,71,63,55,47,39,31,23,15,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],green:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128,136,144,152,160,168,176,184,192,200,208,216,224,232,240,248,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,253,251,249,247,245,243,241,239,237,235,233,231,229,227,225,223,221,219,217,215,213,211,209,207,205,203,201,199,197,195,193,192,189,186,183,180,177,174,171,168,165,162,159,156,153,150,147,144,141,138,135,132,129,126,123,120,117,114,111,108,105,102,99,96,93,90,87,84,81,78,75,72,69,66,63,60,57,54,51,48,45,42,39,36,33,30,27,24,21,18,15,12,9,6,3],red:[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,62,60,58,56,54,52,50,48,46,44,42,40,38,36,34,32,30,28,26,24,22,20,18,16,14,12,10,8,6,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255]},u.image.lut.hot={red:u.image.lut.buildLut(u.image.lut.toMaxFirstThird),green:u.image.lut.buildLut(u.image.lut.toMaxSecondThird),blue:u.image.lut.buildLut(u.image.lut.toMaxThirdThird)},u.image.lut.hot_iron={red:[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255],green:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,255],blue:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,255]},u.image.lut.pet={red:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255],green:[0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,128,126,124,122,120,118,116,114,112,110,108,106,104,102,100,98,96,94,92,90,88,86,84,82,80,78,76,74,72,70,68,66,64,63,61,59,57,55,53,51,49,47,45,43,41,39,37,35,33,31,29,27,25,23,21,19,17,15,13,11,9,7,5,3,1,0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,255],blue:[0,1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,101,103,105,107,109,111,113,115,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255,252,248,244,240,236,232,228,224,220,216,212,208,204,200,196,192,188,184,180,176,172,168,164,160,156,152,148,144,140,136,132,128,124,120,116,112,108,104,100,96,92,88,84,80,76,72,68,64,60,56,52,48,44,40,36,32,28,24,20,16,12,8,4,0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,170,174,178,182,186,190,194,198,202,206,210,214,218,222,226,230,234,238,242,246,250,255]},u.image.lut.hot_metal_blue={red:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,9,12,15,18,21,24,26,29,32,35,38,41,44,47,50,52,55,57,59,62,64,66,69,71,74,76,78,81,83,85,88,90,93,96,99,102,105,108,111,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,166,169,172,175,178,181,184,187,190,194,198,201,205,209,213,217,221,224,228,232,236,240,244,247,251,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255],green:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,4,6,8,9,11,13,15,17,19,21,23,24,26,28,30,32,34,36,38,40,41,43,45,47,49,51,53,55,56,58,60,62,64,66,68,70,72,73,75,77,79,81,83,85,87,88,90,92,94,96,98,100,102,104,105,107,109,111,113,115,117,119,120,122,124,126,128,130,132,134,136,137,139,141,143,145,147,149,151,152,154,156,158,160,162,164,166,168,169,171,173,175,177,179,181,183,184,186,188,190,192,194,196,198,200,201,203,205,207,209,211,213,215,216,218,220,222,224,226,228,229,231,233,235,237,239,240,242,244,246,248,250,251,253,255],blue:[0,2,4,6,8,10,12,14,16,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,117,119,121,123,125,127,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,184,186,188,190,192,194,196,198,200,197,194,191,188,185,182,179,176,174,171,168,165,162,159,156,153,150,144,138,132,126,121,115,109,103,97,91,85,79,74,68,62,56,50,47,44,41,38,35,32,29,26,24,21,18,15,12,9,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,6,9,12,15,18,21,24,26,29,32,35,38,41,44,47,50,53,56,59,62,65,68,71,74,76,79,82,85,88,91,94,97,100,103,106,109,112,115,118,121,124,126,129,132,135,138,141,144,147,150,153,156,159,162,165,168,171,174,176,179,182,185,188,191,194,197,200,203,206,210,213,216,219,223,226,229,232,236,239,242,245,249,252,255]},u.image.lut.pet_20step={red:[0,0,0,0,0,0,0,0,0,0,0,0,0,96,96,96,96,96,96,96,96,96,96,96,96,96,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,80,80,80,80,80,80,80,80,80,80,80,80,80,96,96,96,96,96,96,96,96,96,96,96,96,96,112,112,112,112,112,112,112,112,112,112,112,112,112,128,128,128,128,128,128,128,128,128,128,128,128,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,80,80,80,80,80,80,80,80,80,80,80,80,80,64,64,64,64,64,64,64,64,64,64,64,64,224,224,224,224,224,224,224,224,224,224,224,224,224,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,192,192,192,192,192,192,192,192,192,192,192,192,192,176,176,176,176,176,176,176,176,176,176,176,176,176,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255],green:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,80,80,80,80,80,80,80,80,80,80,80,80,80,96,96,96,96,96,96,96,96,96,96,96,96,96,112,112,112,112,112,112,112,112,112,112,112,112,112,128,128,128,128,128,128,128,128,128,128,128,128,96,96,96,96,96,96,96,96,96,96,96,96,96,144,144,144,144,144,144,144,144,144,144,144,144,144,192,192,192,192,192,192,192,192,192,192,192,192,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,208,208,208,208,208,208,208,208,208,208,208,208,208,176,176,176,176,176,176,176,176,176,176,176,176,176,144,144,144,144,144,144,144,144,144,144,144,144,96,96,96,96,96,96,96,96,96,96,96,96,96,48,48,48,48,48,48,48,48,48,48,48,48,48,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255],blue:[0,0,0,0,0,0,0,0,0,0,0,0,0,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,112,112,112,112,112,112,112,112,112,112,112,112,128,128,128,128,128,128,128,128,128,128,128,128,128,176,176,176,176,176,176,176,176,176,176,176,176,176,192,192,192,192,192,192,192,192,192,192,192,192,192,224,224,224,224,224,224,224,224,224,224,224,224,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,80,80,80,80,80,80,80,80,80,80,80,80,80,64,64,64,64,64,64,64,64,64,64,64,64,80,80,80,80,80,80,80,80,80,80,80,80,80,96,96,96,96,96,96,96,96,96,96,96,96,96,64,64,64,64,64,64,64,64,64,64,64,64,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255]},u.image.lut.test={red:u.image.lut.buildLut(u.image.lut.id),green:u.image.lut.buildLut(u.image.lut.zero),blue:u.image.lut.buildLut(u.image.lut.zero)};(u=u||{}).image=u.image||{},u.image.WindowLevel=function(e,t){function n(){var n=e+i;a=n-.5-(t-1)/2,s=n-.5+(t-1)/2,l=(o-r)/(t-1),u=(-(n-.5)/(t-1)+.5)*(o-r)+r}if(0===t)throw new Error("A window level with a width of zero is not possible.");var i=0,r=0,o=255,a=null,s=null,l=null,u=null;n(),this.getCenter=function(){return e},this.getWidth=function(){return t},this.setRange=function(e,t){r=parseInt(e,10),o=parseInt(t,10),n()},this.setSignedOffset=function(e){i=e,n()},this.apply=function(e){return e<=a?r:e>s?o:parseInt(e*l+u,10)}},u.image.WindowLevel.prototype.equals=function(e){return null!==e&&this.getCenter()===e.getCenter()&&this.getWidth()===e.getWidth()},u.image.WindowLevel.prototype.toString=function(){return this.getCenter()+", "+this.getWidth()},u.image.View=function(e){var t={},n={minmax:{name:"minmax"}},i=null,r=u.image.lut.plain,o={i:0,j:0,k:0},a=null;this.getImage=function(){return e},this.setImage=function(t){e=t},this.getCurrentWindowLut=function(r){var o=this.getCurrentPosition().k;void 0===r&&(r=e.getRescaleSlopeAndIntercept(o));var a=t[r.toString()];if(i&&void 0!==n[i]&&void 0!==n[i].perslice&&!0===n[i].perslice){var s=n[i].wl[o];if(!a.getWindowLevel().equals(s)){var l=a.getWindowLevel().getWidth(),u=a.getWindowLevel().getCenter();a.setWindowLevel(s),l!==s.getWidth()&&this.fireEvent({type:"wl-width-change",wc:s.getCenter(),ww:s.getWidth(),skipGenerate:!0}),u!==s.getCenter()&&this.fireEvent({type:"wl-center-change",wc:s.getCenter(),ww:s.getWidth(),skipGenerate:!0})}}return a.update(),a},this.addWindowLut=function(e){var n=e.getRescaleLut().getRSI();t[n.toString()]=e},this.getWindowPresets=function(){return n},this.getWindowPresetsNames=function(){return Object.keys(n)},this.setWindowPresets=function(e){n=e},this.setDefaultColourMap=function(e){r=e},this.addWindowPresets=function(e,t){for(var i=Object.keys(e),r=null,o=0;o<i.length;++o)r=i[o],void 0!==n[r]&&void 0!==n[r].perslice&&!0===n[r].perslice?n[r].wl.splice(t,0,e[r].wl[0]):n[r]=e[r]},this.getColourMap=function(){return r},this.setColourMap=function(e){r=e,this.fireEvent({type:"colour-change",wc:this.getCurrentWindowLut().getWindowLevel().getCenter(),ww:this.getCurrentWindowLut().getWindowLevel().getWidth()})},this.getCurrentPosition=function(){return{i:o.i,j:o.j,k:o.k}},this.setCurrentPosition=function(t,n){if(void 0===n&&(n=!1),!e.getGeometry().getSize().isInBounds(t.i,t.j,t.k))return!1;var i=o;return o=t,null!==e.getPhotometricInterpretation().match(/MONOCHROME/)?this.fireEvent({type:"position-change",i:t.i,j:t.j,k:t.k,value:e.getRescaledValue(t.i,t.j,t.k,this.getCurrentFrame())}):this.fireEvent({type:"position-change",i:t.i,j:t.j,k:t.k}),n||i.k!==o.k&&this.fireEvent({type:"slice-change"}),!0},this.getCurrentFrame=function(){return a},this.setCurrentFrame=function(t){if(t<0||t>=e.getNumberOfFrames())return!1;var n=a;return a=t,n!==a&&1!==e.getNumberOfFrames()&&(this.fireEvent({type:"frame-change",frame:a}),this.setCurrentPosition(this.getCurrentPosition(),!0)),!0},this.append=function(e){var t=this.getImage().appendSlice(e.getImage());t<=this.getCurrentPosition().k&&this.setCurrentPosition({i:this.getCurrentPosition().i,j:this.getCurrentPosition().j,k:this.getCurrentPosition().k+1},!0),this.addWindowPresets(e.getWindowPresets(),t)},this.appendFrameBuffer=function(e){this.getImage().appendFrameBuffer(e)},this.setWindowLevel=function(n,r,o){if(r>=1){var a=this.getCurrentPosition().k,s=null,l=e.getRescaleSlopeAndIntercept(a);if(l&&void 0!==l){var c=t[l.toString()];c&&void 0!==c&&(s=c.getWindowLevel())}void 0===o&&(o="manual"),i=o;var d=new u.image.WindowLevel(n,r);if(0===Object.keys(t).length){var S=new u.image.lut.Rescale(e.getRescaleSlopeAndIntercept(0),e.getMeta().BitsStored),x=new u.image.lut.Window(S,e.getMeta().IsSigned);this.addWindowLut(x)}for(var g in t)t[g].setWindowLevel(d);s&&void 0!==s?(s.getWidth()!==r&&this.fireEvent({type:"wl-width-change",wc:n,ww:r}),s.getCenter()!==n&&this.fireEvent({type:"wl-center-change",wc:n,ww:r})):(this.fireEvent({type:"wl-width-change",wc:n,ww:r}),this.fireEvent({type:"wl-center-change",wc:n,ww:r}))}},this.setWindowLevelPreset=function(e){var t=this.getWindowPresets()[e];if(void 0===t)throw new Error("Unknown window level preset: '"+e+"'");"minmax"===e&&void 0===t.wl&&(t.wl=this.getWindowLevelMinMax()),void 0!==t.perslice&&!0===t.perslice&&(t={wl:t.wl[this.getCurrentPosition().k]}),this.setWindowLevel(t.wl.getCenter(),t.wl.getWidth(),e)},this.setWindowLevelPresetById=function(e){var t=Object.keys(this.getWindowPresets());this.setWindowLevelPreset(t[e])},this.clone=function(){var e=new u.image.View(this.getImage());for(var n in t)e.addWindowLut(t[n]);return e.setListeners(this.getListeners()),e};var s={};this.getListeners=function(){return s},this.setListeners=function(e){s=e}},u.image.View.prototype.getWindowLevelMinMax=function(){var e=this.getImage().getRescaledDataRange(),t=e.min,n=e.max-t,i=t+n/2;return new u.image.WindowLevel(i,n)},u.image.View.prototype.setWindowLevelMinMax=function(){var e=this.getWindowLevelMinMax();this.setWindowLevel(e.getCenter(),e.getWidth(),"minmax")},u.image.View.prototype.generateImageData=function(e){var t=this.getCurrentWindowLut(),n=this.getImage(),i=n.getGeometry().getSize().getSliceSize(),r=i*this.getCurrentPosition().k,o=this.getCurrentFrame()?this.getCurrentFrame():0,a=0,s=0,l=0,u=n.getPhotometricInterpretation();switch(u){case"MONOCHROME1":case"MONOCHROME2":for(var c=this.getColourMap(),d=r+i,S=r;S<d;++S)s=parseInt(t.getValue(n.getValueAtOffset(S,o)),10),e.data[a]=c.red[s],e.data[a+1]=c.green[s],e.data[a+2]=c.blue[s],e.data[a+3]=255,a+=4;break;case"RGB":r*=3;var x=n.getPlanarConfiguration();if(0!==x&&1!==x)throw new Error("Unsupported planar configuration: "+x);var g=r,m=r+1,h=r+2;l=3,1===x&&(g=r,m=r+i,h=r+2*i,l=1);for(var p=0;p<i;++p)e.data[a]=parseInt(t.getValue(n.getValueAtOffset(g,o)),10),e.data[a+1]=parseInt(t.getValue(n.getValueAtOffset(m,o)),10),e.data[a+2]=parseInt(t.getValue(n.getValueAtOffset(h,o)),10),e.data[a+3]=255,a+=4,g+=l,m+=l,h+=l;break;case"YBR_FULL_422":r*=3;var f=n.getPlanarConfiguration();if(0!==f&&1!==f)throw new Error("Unsupported planar configuration: "+f);var C=r,y=r+1,D=r+2;l=3,1===f&&(C=r,y=r+i,D=r+2*i,l=1);for(var v,L,T,I,P,F,A=0;A<i;++A)v=n.getValueAtOffset(C,o),L=n.getValueAtOffset(y,o),I=v+1.402*((T=n.getValueAtOffset(D,o))-128),P=v-.34414*(L-128)-.71414*(T-128),F=v+1.772*(L-128),e.data[a]=parseInt(t.getValue(I),10),e.data[a+1]=parseInt(t.getValue(P),10),e.data[a+2]=parseInt(t.getValue(F),10),e.data[a+3]=255,a+=4,C+=l,y+=l,D+=l;break;default:throw new Error("Unsupported photometric interpretation: "+u)}},u.image.View.prototype.addEventListener=function(e,t){var n=this.getListeners();n[e]||(n[e]=[]),n[e].push(t)},u.image.View.prototype.removeEventListener=function(e,t){var n=this.getListeners();if(n[e])for(var i=0;i<n[e].length;++i)n[e][i]===t&&n[e].splice(i,1)},u.image.View.prototype.fireEvent=function(e){var t=this.getListeners();if(t[e.type])for(var n=0;n<t[e.type].length;++n)t[e.type][n](e)},u.image.ViewFactory=function(){},u.image.ViewFactory.prototype.create=function(e,t){var n=new u.image.View(t);"MONOCHROME1"===t.getPhotometricInterpretation()&&n.setDefaultColourMap(u.image.lut.invPlain);var i={},r=e.getFromKey("x00281050",!0),o=e.getFromKey("x00281051",!0),a=e.getFromKey("x00281055",!0);if(r&&o)for(var s,l=0;l<r.length;++l){var c=parseFloat(r[l],10),d=parseFloat(o[l],10);c&&d&&(s="",a&&(s=u.dicom.cleanString(a[l])),""===s&&(s="Default"+l),i[s]={wl:[new u.image.WindowLevel(c,d)],name:s,perslice:!0})}if(i.minmax={name:"minmax"},void 0!==u.tool.defaultpresets){var S=t.getMeta().Modality;for(var x in u.tool.defaultpresets[S]){var g=u.tool.defaultpresets[S][x];i[x]={wl:new u.image.WindowLevel(g.center,g.width),name:x}}}return n.setWindowPresets(i),n};(u=u||{}).io=u.io||{},u.io.DicomDataLoader=function(){var e=this,t={},n=!1;this.setOptions=function(e){t=e},this.isLoading=function(){return n};var i=new u.image.DicomBufferToView;this.load=function(r,o,a){n=!0,void 0!==t.defaultCharacterSet&&i.setDefaultCharacterSet(t.defaultCharacterSet),i.onload=e.onload,i.onloadend=function(){n=!1,e.onloadend()},i.onprogress=e.onprogress;try{i.convert(r,a)}catch(t){e.onerror(t)}},this.abort=function(){i.abort(),n=!1,e.onabort({message:"Abort while loading DICOM data."})},this.getFileLoadHandler=function(t,n){return function(i){e.load(i.target.result,t,n)}},this.getUrlLoadHandler=function(t,n){return function(){200===this.status||0===this.status?e.load(this.response,t,n):e.onerror({name:"RequestError",message:"Error status: "+this.status+" while loading '"+t+"' [DicomDataLoader]"})}}},u.io.DicomDataLoader.prototype.canLoadFile=function(e){var t=e.name.split("."),n="";1!==t.length&&(n=t.pop().toLowerCase());return!(0!==n.length)||"dcm"===n},u.io.DicomDataLoader.prototype.canLoadUrl=function(e){var t=e.split("."),n="";1!==t.length&&(n=t.pop().toLowerCase());var i=0!==n.length&&n.length<5;return-1!==e.indexOf("contentType=application/dicom")||"dcm"===n||!i},u.io.DicomDataLoader.prototype.loadFileAs=function(){return u.io.fileContentTypes.ArrayBuffer},u.io.DicomDataLoader.prototype.loadUrlAs=function(){return u.io.urlContentTypes.ArrayBuffer},u.io.DicomDataLoader.prototype.onload=function(){},u.io.DicomDataLoader.prototype.onloadend=function(){},u.io.DicomDataLoader.prototype.onprogress=function(){},u.io.DicomDataLoader.prototype.onerror=function(){},u.io.DicomDataLoader.prototype.onabort=function(){},u.io.loaderList=u.io.loaderList||[],u.io.loaderList.push("DicomDataLoader");(u=u||{}).io=u.io||{},u.io.fileContentTypes={Text:0,ArrayBuffer:1,DataURL:2},u.io.FilesLoader=function(){var e,t=this,n=[],i=[],r=0,o=0;this.getDefaultCharacterSet=function(){return e},this.setDefaultCharacterSet=function(t){e=t},this.storeReader=function(e){n.push(e)},this.clearStoredReaders=function(){n=[]},this.storeLoader=function(e){i=e},this.clearStoredLoader=function(){i=null},this.abort=function(){for(var e=0;e<n.length;++e)1===n[e].readyState&&n[e].abort();this.clearStoredReaders(),i&&i.abort(),this.clearStoredLoader()},this.setNToLoad=function(e){r=e},this.addLoaded=function(){++o===r&&t.onloadend()}},u.io.FilesLoader.prototype.onload=function(){},u.io.FilesLoader.prototype.onloadend=function(){},u.io.FilesLoader.prototype.onprogress=function(){},u.io.FilesLoader.prototype.onerror=function(){},u.io.FilesLoader.prototype.onabort=function(){},u.io.FilesLoader.prototype.load=function(e){this.clearStoredReaders(),this.clearStoredLoader();var t=this;this.setNToLoad(e.length);var n=new u.utils.MultiProgressHandler(t.onprogress);n.setNToLoad(e.length);for(var i=[],r=0;r<u.io.loaderList.length;++r)i.push(new u.io[u.io.loaderList[r]]);for(var o=null,a=0;a<i.length;++a)(o=i[a]).onload=t.onload,o.onloadend=t.addLoaded,o.onerror=t.onerror,o.onabort=t.onabort,o.setOptions({defaultCharacterSet:this.getDefaultCharacterSet()}),o.onprogress=n.getUndefinedMonoProgressHandler(1);for(var s=function(e){return function(n){var i="An error occurred while reading '"+e+"'";void 0!==n.getMessage&&(i+=" ("+n.getMessage()+")"),i+=".",t.onerror({name:"FileReaderError",message:i})}},l=function(e){return function(){t.onabort({message:"Abort while reading '"+e+"'"})}},c=0;c<e.length;++c){var d=e[c],S=new FileReader;this.storeReader(S),S.onprogress=n.getMonoProgressHandler(c,0);for(var x=!1,g=0;g<i.length;++g)if((o=i[g]).canLoadFile(d)){x=!0,this.storeLoader(o),S.onload=o.getFileLoadHandler(d,c),S.onerror=s(d.name),S.onabort=l(d.name),o.loadFileAs()===u.io.fileContentTypes.Text?S.readAsText(d):o.loadFileAs()===u.io.fileContentTypes.DataURL?S.readAsDataURL(d):o.loadFileAs()===u.io.fileContentTypes.ArrayBuffer&&S.readAsArrayBuffer(d);break}if(!x)throw new Error("No loader found for file: "+d)}};(u=u||{}).io=u.io||{},u.io.JSONTextLoader=function(){var e=this,t=!1;this.setOptions=function(){},this.isLoading=function(){return t},this.load=function(n,i,r){t=!0;try{e.onload(n),t=!1,e.onloadend()}catch(t){e.onerror(t)}e.onprogress({type:"read-progress",lengthComputable:!0,loaded:100,total:100,index:r})},this.abort=function(){t=!1,e.onabort()},this.getFileLoadHandler=function(t,n){return function(i){e.load(i.target.result,t,n)}},this.getUrlLoadHandler=function(t,n){return function(){200===this.status||0===this.status?e.load(this.responseText,t,n):e.onerror({name:"RequestError",message:"Error status: "+this.status+" while loading '"+t+"' [JSONTextLoader]"})}}},u.io.JSONTextLoader.prototype.canLoadFile=function(e){return"json"===e.name.split(".").pop().toLowerCase()},u.io.JSONTextLoader.prototype.canLoadUrl=function(e){return"json"===e.split(".").pop().toLowerCase()},u.io.JSONTextLoader.prototype.loadFileAs=function(){return u.io.fileContentTypes.Text},u.io.JSONTextLoader.prototype.loadUrlAs=function(){return u.io.urlContentTypes.Text},u.io.JSONTextLoader.prototype.onload=function(){},u.io.JSONTextLoader.prototype.onloadend=function(){},u.io.JSONTextLoader.prototype.onprogress=function(){},u.io.JSONTextLoader.prototype.onerror=function(){},u.io.JSONTextLoader.prototype.onabort=function(){},u.io.loaderList=u.io.loaderList||[],u.io.loaderList.push("JSONTextLoader");(u=u||{}).io=u.io||{},u.io.MemoryLoader=function(){var e,t=this,n=null,i=0,r=0;this.getDefaultCharacterSet=function(){return e},this.setDefaultCharacterSet=function(t){e=t},this.storeLoader=function(e){n=e},this.clearStoredLoader=function(){n=null},this.abort=function(){n.abort(),this.clearStoredLoaders()},this.setNToLoad=function(e){i=e},this.addLoaded=function(){++r===i&&t.onloadend()}},u.io.MemoryLoader.prototype.onload=function(){},u.io.MemoryLoader.prototype.onloadend=function(){},u.io.MemoryLoader.prototype.onprogress=function(){},u.io.MemoryLoader.prototype.onerror=function(){},u.io.MemoryLoader.prototype.onabort=function(){},u.io.MemoryLoader.prototype.load=function(e){this.clearStoredLoader();this.setNToLoad(e.length);var t=new u.utils.MultiProgressHandler(this.onprogress);t.setNToLoad(e.length);for(var n=[],i=0;i<u.io.loaderList.length;++i)n.push(new u.io[u.io.loaderList[i]]);for(var r=null,o=0;o<n.length;++o)(r=n[o]).onload=this.onload,r.onloadend=this.addLoaded,r.onerror=this.onerror,r.onabort=this.onabort,r.setOptions({defaultCharacterSet:this.getDefaultCharacterSet()}),r.onprogress=t.getUndefinedMonoProgressHandler(1);for(var a=0;a<e.length;++a){for(var s=e[a],l=!1,c=0;c<n.length;++c)if((r=n[c]).canLoadUrl(s.filename)){l=!0,this.storeLoader(r),r.load(s.data,s.filename,a);break}if(!l)throw new Error("No loader found for file: "+s.filename)}};(u=u||{}).io=u.io||{},u.io.RawImageLoader=function(){var e=this;this.setOptions=function(){},this.isLoading=function(){return!0},this.load=function(t,n,i){var r=new Image;r.src=t,r.origin=n,r.index=i,r.onload=function(){try{e.onload(u.image.getViewFromDOMImage(this)),e.onloadend()}catch(t){e.onerror(t)}e.onprogress({type:"read-progress",lengthComputable:!0,loaded:100,total:100,index:i})}},this.abort=function(){e.onabort()},this.getFileLoadHandler=function(t,n){return function(i){e.load(i.target.result,t,n)}},this.getUrlLoadHandler=function(t,n){return function(){if(200===this.status||0===this.status){var i=t.split(".").pop().toLowerCase();e.load(function(e,t){for(var n=new Uint8Array(e),i="",r=0;r<n.byteLength;++r)i+=String.fromCharCode(n[r]);var o=t;return"jpg"===o&&(o="jpeg"),"data:image/"+o+";base64,"+l.btoa(i)}(this.response,i),t,n)}else e.onerror({name:"RequestError",message:"Error status: "+this.status+" while loading '"+t+"' [RawImageLoader]"})}}},u.io.RawImageLoader.prototype.canLoadFile=function(e){return e.type.match("image.*")},u.io.RawImageLoader.prototype.canLoadUrl=function(e){var t=e.split(".").pop().toLowerCase(),n="jpeg"===t||"jpg"===t||"png"===t||"gif"===t;return-1!==e.indexOf("contentType=image/jpeg")||-1!==e.indexOf("contentType=image/png")||-1!==e.indexOf("contentType=image/gif")||n},u.io.RawImageLoader.prototype.loadFileAs=function(){return u.io.fileContentTypes.DataURL},u.io.RawImageLoader.prototype.loadUrlAs=function(){return u.io.urlContentTypes.ArrayBuffer},u.io.RawImageLoader.prototype.onload=function(){},u.io.RawImageLoader.prototype.onloadend=function(){},u.io.RawImageLoader.prototype.onprogress=function(){},u.io.RawImageLoader.prototype.onerror=function(){},u.io.RawImageLoader.prototype.onabort=function(){},u.io.loaderList=u.io.loaderList||[],u.io.loaderList.push("RawImageLoader");(u=u||{}).io=u.io||{},u.io.RawVideoLoader=function(){var e=this;this.setOptions=function(){},this.isLoading=function(){return!0},this.load=function(t,n,i){var r=document.createElement("video");r.src=t,r.file=n,r.index=i,r.onloadedmetadata=function(){try{u.image.getViewFromDOMVideo(this,e.onload,e.onprogress,e.onloadend,i)}catch(t){e.onerror(t)}}},this.abort=function(){e.onabort()},this.getFileLoadHandler=function(t,n){return function(i){e.load(i.target.result,t,n)}},this.getUrlLoadHandler=function(t,n){return function(){if(200===this.status||0===this.status){var i=t.split(".").pop().toLowerCase();e.load(function(e,t){for(var n=new Uint8Array(e),i="",r=0;r<n.byteLength;++r)i+=String.fromCharCode(n[r]);return"data:video/"+t+";base64,"+l.btoa(i)}(this.response,i),t,n)}else e.onerror({name:"RequestError",message:"Error status: "+this.status+" while loading '"+t+"' [RawVideoLoader]"})}}},u.io.RawVideoLoader.prototype.canLoadFile=function(e){return e.type.match("video.*")},u.io.RawVideoLoader.prototype.canLoadUrl=function(e){var t=e.split(".").pop().toLowerCase();return"mp4"===t||"ogg"===t||"webm"===t},u.io.RawVideoLoader.prototype.loadFileAs=function(){return u.io.fileContentTypes.DataURL},u.io.RawVideoLoader.prototype.loadUrlAs=function(){return u.io.urlContentTypes.ArrayBuffer},u.io.RawVideoLoader.prototype.onload=function(){},u.io.RawVideoLoader.prototype.onloadend=function(){},u.io.RawVideoLoader.prototype.onprogress=function(){},u.io.RawVideoLoader.prototype.onerror=function(){},u.io.RawVideoLoader.prototype.onabort=function(){},u.io.loaderList=u.io.loaderList||[],u.io.loaderList.push("RawVideoLoader");(u=u||{}).io=u.io||{},u.io.urlContentTypes={Text:0,ArrayBuffer:1,oups:2},u.io.UrlsLoader=function(){var e,t=this,n=[],i=null,r=0,o=0;this.getDefaultCharacterSet=function(){return e},this.setDefaultCharacterSet=function(t){e=t},this.storeRequest=function(e){n.push(e)},this.clearStoredRequests=function(){n=[]},this.storeLoader=function(e){i=e},this.clearStoredLoader=function(){i=null},this.abort=function(){for(var e=0;e<n.length;++e)2!==n[e].readyState&&3!==n[e].readyState||n[e].abort();this.clearStoredRequests(),i&&i.isLoading()&&i.abort(),this.clearStoredLoader()},this.setNToLoad=function(e){r=e},this.addLoaded=function(){++o===r&&t.onloadend()}},u.io.UrlsLoader.prototype.onload=function(){},u.io.UrlsLoader.prototype.onloadend=function(){},u.io.UrlsLoader.prototype.onprogress=function(){},u.io.UrlsLoader.prototype.onerror=function(){},u.io.UrlsLoader.prototype.onabort=function(){},u.io.UrlsLoader.prototype.load=function(e,t){this.clearStoredRequests(),this.clearStoredLoader();var n=this;this.setNToLoad(e.length);var i=new u.utils.MultiProgressHandler(n.onprogress);i.setNToLoad(e.length);for(var r=[],o=0;o<u.io.loaderList.length;++o)r.push(new u.io[u.io.loaderList[o]]);for(var a=null,s=0;s<r.length;++s)(a=r[s]).onload=n.onload,a.onloadend=n.addLoaded,a.onerror=n.onerror,a.onabort=n.onabort,a.setOptions({defaultCharacterSet:this.getDefaultCharacterSet()}),a.onprogress=i.getUndefinedMonoProgressHandler(1);for(var l=function(e){return function(){var t="An error occurred while downloading '"+e+"'";void 0!==this.status&&(t+=" (http status: "+this.status+")"),t+=".",n.onerror({name:"RequestError",message:t})}},c=function(e){return function(){n.onabort({message:"Abort while downloading '"+e+"'."})}},d=0;d<e.length;++d){var S=e[d],x=new XMLHttpRequest;if(x.open("GET",S,!0),this.storeRequest(x),void 0!==t.requestHeaders)for(var g=t.requestHeaders,m=0;m<g.length;++m)void 0!==g[m].name&&void 0!==g[m].value&&x.setRequestHeader(g[m].name,g[m].value);x.onprogress=i.getMonoProgressHandler(d,0),x.onloadend=i.getMonoOnLoadEndHandler(d,0);for(var h=!1,p=0;p<r.length;++p)if((a=r[p]).canLoadUrl(S)){h=!0,this.storeLoader(a),x.onload=a.getUrlLoadHandler(S,d),x.onerror=l(S),x.onabort=c(S),a.loadUrlAs()===u.io.urlContentTypes.ArrayBuffer&&(x.responseType="arraybuffer"),x.send(null);break}if(!h)throw new Error("No loader found for url: "+S)}};(u=u||{}).io=u.io||{};r=r||{};u.io.ZipLoader=function(){function e(r){if(o.push({filename:i,data:r}),o.length<a.length){var s=o.length;i=a[s].name,a[s].async("arrayBuffer").then(e)}else{var l=new u.io.MemoryLoader;l.onload=t.onload,l.onloadend=function(){n=!1,t.onloadend()},l.onprogress=t.onprogress,l.onerror=t.onerror,l.onabort=t.onabort,l.load(o)}}var t=this,n=!1;this.setOptions=function(e){e},this.isLoading=function(){return n};var i="",o=[],a=null;this.load=function(t){n=!0,r.loadAsync(t).then(function(t){o=[],a=t.file(/.*\.dcm/);var n=o.length;i=a[n].name,a[n].async("arrayBuffer").then(e)})},this.abort=function(){n=!1,t.onabort()},this.getFileLoadHandler=function(e,n){return function(i){t.load(i.target.result,e,n)}},this.getUrlLoadHandler=function(e,n){return function(){200===this.status||0===this.status?t.load(this.response,e,n):t.onerror({name:"RequestError",message:"Error status: "+this.status+" while loading '"+e+"' [ZipLoader]"})}}},u.io.ZipLoader.prototype.canLoadFile=function(e){return"zip"===e.name.split(".").pop().toLowerCase()},u.io.ZipLoader.prototype.canLoadUrl=function(e){return"zip"===e.split(".").pop().toLowerCase()},u.io.ZipLoader.prototype.loadFileAs=function(){return u.io.fileContentTypes.ArrayBuffer},u.io.ZipLoader.prototype.loadUrlAs=function(){return u.io.urlContentTypes.ArrayBuffer},u.io.ZipLoader.prototype.onload=function(){},u.io.ZipLoader.prototype.onloadend=function(){},u.io.ZipLoader.prototype.onprogress=function(){},u.io.ZipLoader.prototype.onerror=function(){},u.io.ZipLoader.prototype.onabort=function(){},u.io.loaderList=u.io.loaderList||[],u.io.loaderList.push("ZipLoader");(u=u||{}).math=u.math||{},u.math.BucketQueue=function(e,t){this.bucketCount=1<<e,this.mask=this.bucketCount-1,this.size=0,this.loc=0,this.cost=void 0!==t?t:function(e){return e},this.buckets=this.buildArray(this.bucketCount)},u.math.BucketQueue.prototype.push=function(e){var t=this.getBucket(e);e.next=this.buckets[t],this.buckets[t]=e,this.size++},u.math.BucketQueue.prototype.pop=function(){if(0===this.size)throw new Error("Cannot pop, bucketQueue is empty.");for(;null===this.buckets[this.loc];)this.loc=(this.loc+1)%this.bucketCount;var e=this.buckets[this.loc];return this.buckets[this.loc]=e.next,e.next=null,this.size--,e},u.math.BucketQueue.prototype.remove=function(e){if(!e)return!1;for(var t=this.getBucket(e),n=this.buckets[t];null!==n&&!e.equals(n.next);)n=n.next;return null!==n&&(n.next=n.next.next,this.size--,!0)},u.math.BucketQueue.prototype.isEmpty=function(){return 0===this.size},u.math.BucketQueue.prototype.getBucket=function(e){return this.cost(e)&this.mask},u.math.BucketQueue.prototype.buildArray=function(e){for(var t=new Array(e),n=0;n<t.length;n++)t[n]=null;return t};(u=u||{}).math=u.math||{},u.math.Matrix33=function(e,t,n,i,r,o,a,s,l){var u=new Float32Array(9);u[0]=e,u[1]=t,u[2]=n,u[3]=i,u[4]=r,u[5]=o,u[6]=a,u[7]=s,u[8]=l,this.get=function(e,t){return u[3*e+t]}},u.math.Matrix33.prototype.equals=function(e){return this.get(0,0)===e.get(0,0)&&this.get(0,1)===e.get(0,1)&&this.get(0,2)===e.get(0,2)&&this.get(1,0)===e.get(1,0)&&this.get(1,1)===e.get(1,1)&&this.get(1,2)===e.get(1,2)&&this.get(2,0)===e.get(2,0)&&this.get(2,1)===e.get(2,1)&&this.get(2,2)===e.get(2,2)},u.math.Matrix33.prototype.toString=function(){return"["+this.get(0,0)+", "+this.get(0,1)+", "+this.get(0,2)+"\n "+this.get(1,0)+", "+this.get(1,1)+", "+this.get(1,2)+"\n "+this.get(2,0)+", "+this.get(2,1)+", "+this.get(2,2)+"]"},u.math.Matrix33.multiplyVector3D=function(e){var t=this.get(0,0),n=this.get(0,1),i=this.get(0,2),r=this.get(1,0),o=this.get(1,1),a=this.get(1,2),s=this.get(2,0),l=this.get(2,1),c=this.get(2,2),d=e.getX(),S=e.getY(),x=e.getZ();return new u.math.Vector3D(t*d+n*S+i*x,r*d+o*S+a*x,s*d+l*S+c*x)},u.math.getIdentityMat33=function(){return new u.math.Matrix33(1,0,0,0,1,0,0,0,1)};(u=u||{}).math=u.math||{},u.math.Point2D=function(e,t){this.getX=function(){return e},this.getY=function(){return t}},u.math.Point2D.prototype.equals=function(e){return null!==e&&this.getX()===e.getX()&&this.getY()===e.getY()},u.math.Point2D.prototype.toString=function(){return"("+this.getX()+", "+this.getY()+")"},u.math.Point2D.prototype.getDistance=function(e){return Math.sqrt((this.getX()-e.getX())*(this.getX()-e.getX())+(this.getY()-e.getY())*(this.getY()-e.getY()))},u.math.FastPoint2D=function(e,t){this.x=e,this.y=t},u.math.FastPoint2D.prototype.equals=function(e){return null!==e&&this.x===e.x&&this.y===e.y},u.math.FastPoint2D.prototype.toString=function(){return"("+this.x+", "+this.y+")"},u.math.Point3D=function(e,t,n){this.getX=function(){return e},this.getY=function(){return t},this.getZ=function(){return n}},u.math.Point3D.prototype.equals=function(e){return null!==e&&this.getX()===e.getX()&&this.getY()===e.getY()&&this.getZ()===e.getZ()},u.math.Point3D.prototype.toString=function(){return"("+this.getX()+", "+this.getY()+", "+this.getZ()+")"},u.math.Point3D.prototype.getDistance=function(e){return Math.sqrt((this.getX()-e.getX())*(this.getX()-e.getX())+(this.getY()-e.getY())*(this.getY()-e.getY())+(this.getZ()-e.getZ())*(this.getZ()-e.getZ()))},u.math.Point3D.prototype.minus=function(e){return new u.math.Vector3D(this.getX()-e.getX(),this.getY()-e.getY(),this.getZ()-e.getZ())},u.math.Index3D=function(e,t,n){this.getI=function(){return e},this.getJ=function(){return t},this.getK=function(){return n}},u.math.Index3D.prototype.equals=function(e){return null!==e&&this.getI()===e.getI()&&this.getJ()===e.getJ()&&this.getK()===e.getK()},u.math.Index3D.prototype.toString=function(){return"("+this.getI()+", "+this.getJ()+", "+this.getK()+")"};(u=u||{}).math=u.math||{};var h=2/(3*Math.PI);u.math.computeGreyscale=function(e,t,n){for(var i=[],r=0;r<n;r++){i[r]=[];for(var o=0;o<t;o++){var a=4*(r*t+o);i[r][o]=(e[a]+e[a+1]+e[a+2])/765}}return i.dx=function(e,t){return e+1===this[t].length&&e--,this[t][e+1]-this[t][e]},i.dy=function(e,t){return t+1===this.length&&t--,this[t][e]-this[t+1][e]},i.gradMagnitude=function(e,t){var n=this.dx(e,t),i=this.dy(e,t);return Math.sqrt(n*n+i*i)},i.laplace=function(e,t){var n=-16*this[t][e];return n+=this[t-2][e],n+=this[t-1][e-1]+2*this[t-1][e]+this[t-1][e+1],n+=this[t][e-2]+2*this[t][e-1]+2*this[t][e+1]+this[t][e+2],n+=this[t+1][e-1]+2*this[t+1][e]+this[t+1][e+1],n+=this[t+2][e]},i},u.math.computeGradient=function(e){var t=[],n=0,i=0,r=0;for(r=0;r<e.length-1;r++){for(t[r]=[],i=0;i<e[r].length-1;i++)t[r][i]=e.gradMagnitude(i,r),n=Math.max(t[r][i],n);t[r][e[r].length-1]=t[r][e.length-2]}t[e.length-1]=[];for(var o=0;o<t[0].length;o++)t[e.length-1][o]=t[e.length-2][o];for(r=0;r<t.length;r++)for(i=0;i<t[r].length;i++)t[r][i]=1-t[r][i]/n;return t},u.math.computeLaplace=function(e){var t=[];t[0]=[],t[1]=[];for(var n=1;n<e.length;n++)t[0][n]=1,t[1][n]=1;for(var i=2;i<e.length-2;i++){t[i]=[],t[i][0]=1,t[i][1]=1;for(var r=2;r<e[i].length-2;r++)t[i][r]=e.laplace(r,i)>.33?0:1;t[i][e[i].length-2]=1,t[i][e[i].length-1]=1}t[e.length-2]=[],t[e.length-1]=[];for(var o=1;o<e.length;o++)t[e.length-2][o]=1,t[e.length-1][o]=1;return t},u.math.computeGradX=function(e){for(var t=[],n=0;n<e.length;n++){t[n]=[];for(var i=0;i<e[n].length-1;i++)t[n][i]=e.dx(i,n);t[n][e[n].length-1]=t[n][e[n].length-2]}return t},u.math.computeGradY=function(e){for(var t=[],n=0;n<e.length-1;n++){t[n]=[];for(var i=0;i<e[n].length;i++)t[n][i]=e.dy(i,n)}t[e.length-1]=[];for(var r=0;r<e[0].length;r++)t[e.length-1][r]=t[e.length-2][r];return t},u.math.gradUnitVector=function(e,t,n,i,r){var o=e[i][n],a=t[i][n],s=Math.sqrt(o*o+a*a);s=Math.max(s,1e-100),r.x=o/s,r.y=a/s},u.math.gradDirection=function(e,t,n,i,r,o){var a=new u.math.FastPoint2D(-1,-1),s=new u.math.FastPoint2D(-1,-1);u.math.gradUnitVector(e,t,n,i,a),u.math.gradUnitVector(e,t,r,o,s);var l=a.y*(r-n)-a.x*(o-i),c=s.y*(r-n)-s.x*(o-i);return l<0&&(l=-l,c=-c),n!==r&&i!==o&&(l*=Math.SQRT1_2,c*=Math.SQRT1_2),h*(Math.acos(l)+Math.acos(c))},u.math.computeSides=function(e,t,n,i){var r={};r.inside=[],r.outside=[];for(var o=new u.math.FastPoint2D(-1,-1),a=0;a<t.length;a++){r.inside[a]=[],r.outside[a]=[];for(var s=0;s<t[a].length;s++){u.math.gradUnitVector(t,n,s,a,o);var l=Math.round(s+e*o.y),c=Math.round(a-e*o.x),d=Math.round(s-e*o.y),S=Math.round(a+e*o.x);l=Math.max(Math.min(l,t[a].length-1),0),d=Math.max(Math.min(d,t[a].length-1),0),c=Math.max(Math.min(c,t.length-1),0),S=Math.max(Math.min(S,t.length-1),0),r.inside[a][s]=i[c][l],r.outside[a][s]=i[S][d]}}return r},u.math.gaussianBlur=function(e,t){t[0]=.4*e[0]+.5*e[1]+.1*e[1],t[1]=.25*e[0]+.4*e[1]+.25*e[2]+.1*e[3];for(var n=2;n<e.length-2;n++)t[n]=.05*e[n-2]+.25*e[n-1]+.4*e[n]+.25*e[n+1]+.05*e[n+2];var i=e.length;t[i-2]=.25*e[i-1]+.4*e[i-2]+.25*e[i-3]+.1*e[i-4],t[i-1]=.4*e[i-1]+.5*e[i-2]+.1*e[i-3]},u.math.Scissors=function(){this.width=-1,this.height=-1,this.curPoint=null,this.searchGranBits=8,this.searchGran=1<<this.earchGranBits,this.pointsPerPost=500,this.greyscale=null,this.laplace=null,this.gradient=null,this.gradX=null,this.gradY=null,this.parents=null,this.working=!1,this.trained=!1,this.trainingPoints=null,this.edgeWidth=2,this.trainingLength=32,this.edgeGran=256,this.edgeTraining=null,this.gradPointsNeeded=32,this.gradGran=1024,this.gradTraining=null,this.insideGran=256,this.insideTraining=null,this.outsideGran=256,this.outsideTraining=null},u.math.Scissors.prototype.getTrainingIdx=function(e,t){return Math.round((e-1)*t)},u.math.Scissors.prototype.getTrainedEdge=function(e){return this.edgeTraining[this.getTrainingIdx(this.edgeGran,e)]},u.math.Scissors.prototype.getTrainedGrad=function(e){return this.gradTraining[this.getTrainingIdx(this.gradGran,e)]},u.math.Scissors.prototype.getTrainedInside=function(e){return this.insideTraining[this.getTrainingIdx(this.insideGran,e)]},u.math.Scissors.prototype.getTrainedOutside=function(e){return this.outsideTraining[this.getTrainingIdx(this.outsideGran,e)]},u.math.Scissors.prototype.setWorking=function(e){this.working=e},u.math.Scissors.prototype.setDimensions=function(e,t){this.width=e,this.height=t},u.math.Scissors.prototype.setData=function(e){if(-1===this.width||-1===this.height)throw new Error("Dimensions have not been set.");this.greyscale=u.math.computeGreyscale(e,this.width,this.height),this.laplace=u.math.computeLaplace(this.greyscale),this.gradient=u.math.computeGradient(this.greyscale),this.gradX=u.math.computeGradX(this.greyscale),this.gradY=u.math.computeGradY(this.greyscale);var t=u.math.computeSides(this.edgeWidth,this.gradX,this.gradY,this.greyscale);this.inside=t.inside,this.outside=t.outside,this.edgeTraining=[],this.gradTraining=[],this.insideTraining=[],this.outsideTraining=[]},u.math.Scissors.prototype.findTrainingPoints=function(e){var t=[];if(null!==this.parents)for(var n=0;n<this.trainingLength&&e;n++)t.push(e),e=this.parents[e.y][e.x];return t},u.math.Scissors.prototype.resetTraining=function(){this.trained=!1},u.math.Scissors.prototype.doTraining=function(e){if(this.trainingPoints=this.findTrainingPoints(e),!(this.trainingPoints.length<8)){var t=[];this.calculateTraining(t,this.edgeGran,this.greyscale,this.edgeTraining),this.calculateTraining(t,this.gradGran,this.gradient,this.gradTraining),this.calculateTraining(t,this.insideGran,this.inside,this.insideTraining),this.calculateTraining(t,this.outsideGran,this.outside,this.outsideTraining),this.trainingPoints.length<this.gradPointsNeeded&&this.addInStaticGrad(this.trainingPoints.length,this.gradPointsNeeded),this.trained=!0}},u.math.Scissors.prototype.calculateTraining=function(e,t,n,i){var r=0;for(e.length=t,r=0;r<t;r++)e[r]=0;var o=1;for(r=0;r<this.trainingPoints.length;r++){var a=this.trainingPoints[r],s=this.getTrainingIdx(t,n[a.y][a.x]);e[s]+=1,o=Math.max(o,e[s])}for(r=0;r<t;r++)e[r]=1-e[r]/o;u.math.gaussianBlur(e,i)},u.math.Scissors.prototype.addInStaticGrad=function(e,t){for(var n=0;n<this.gradGran;n++)this.gradTraining[n]=Math.min(this.gradTraining[n],1-n*(t-e)/(t*this.gradGran))},u.math.Scissors.prototype.gradDirection=function(e,t,n,i){return u.math.gradDirection(this.gradX,this.gradY,e,t,n,i)},u.math.Scissors.prototype.dist=function(e,t,n,i){var r=this.gradient[i][n];e!==n&&t!==i||(r*=Math.SQRT1_2);var o=this.laplace[i][n],a=this.gradDirection(e,t,n,i);if(this.trained){return.3*this.getTrainedGrad(r)+.3*o+.1*(a+this.getTrainedEdge(this.greyscale[t][e])+this.getTrainedInside(this.inside[t][e])+this.getTrainedOutside(this.outside[t][e]))}return.43*r+.43*o+.11*a},u.math.Scissors.prototype.adj=function(e){for(var t=[],n=Math.max(e.x-1,0),i=Math.max(e.y-1,0),r=Math.min(e.x+1,this.greyscale[0].length-1),o=Math.min(e.y+1,this.greyscale.length-1),a=0,s=i;s<=o;s++)for(var l=n;l<=r;l++)l===e.x&&s===e.y||(t[a++]=new u.math.FastPoint2D(l,s));return t},u.math.Scissors.prototype.setPoint=function(e){this.setWorking(!0),this.curPoint=e;var t=0,n=0;for(this.visited=[],n=0;n<this.height;n++)for(this.visited[n]=[],t=0;t<this.width;t++)this.visited[n][t]=!1;for(this.parents=[],n=0;n<this.height;n++)this.parents[n]=[];for(this.cost=[],n=0;n<this.height;n++)for(this.cost[n]=[],t=0;t<this.width;t++)this.cost[n][t]=Number.MAX_VALUE;this.pq=new u.math.BucketQueue(this.searchGranBits,function(e){return Math.round(this.searchGran*this.costArr[e.y][e.x])}),this.pq.searchGran=this.searchGran,this.pq.costArr=this.cost,this.pq.push(e),this.cost[e.y][e.x]=0},u.math.Scissors.prototype.doWork=function(){if(this.working){this.timeout=null;for(var e=0,t=[];!this.pq.isEmpty()&&e<this.pointsPerPost;){var n=this.pq.pop();t.push(n),t.push(this.parents[n.y][n.x]),this.visited[n.y][n.x]=!0;for(var i=this.adj(n),r=0;r<i.length;r++){var o=i[r],a=this.cost[n.y][n.x]+this.dist(n.x,n.y,o.x,o.y);a<this.cost[o.y][o.x]&&(this.cost[o.y][o.x]!==Number.MAX_VALUE&&this.pq.remove(o),this.cost[o.y][o.x]=a,this.parents[o.y][o.x]=n,this.pq.push(o))}e++}return t}};(u=u||{}).math=u.math||{},u.math.Circle=function(e,t){var n=Math.PI*t*t;this.getCenter=function(){return e},this.getRadius=function(){return t},this.getSurface=function(){return n},this.getWorldSurface=function(e,t){return s(n,e,t)}},u.math.Ellipse=function(e,t,n){var i=Math.PI*t*n;this.getCenter=function(){return e},this.getA=function(){return t},this.getB=function(){return n},this.getSurface=function(){return i},this.getWorldSurface=function(e,t){return s(i,e,t)}},u.math.Line=function(e,t){var n=t.getX()-e.getX(),i=t.getY()-e.getY(),r=Math.sqrt(n*n+i*i);this.getBegin=function(){return e},this.getEnd=function(){return t},this.getDeltaX=function(){return n},this.getDeltaY=function(){return i},this.getLength=function(){return r},this.getWorldLength=function(e,t){var r=null;if(null!==e&&null!==t){var o=n*e,a=i*t;r=Math.sqrt(o*o+a*a)}return r},this.getMidpoint=function(){return new u.math.Point2D(parseInt((e.getX()+t.getX())/2,10),parseInt((e.getY()+t.getY())/2,10))},this.getSlope=function(){return i/n},this.getIntercept=function(){return(t.getX()*e.getY()-e.getX()*t.getY())/n},this.getInclination=function(){return 180-180*Math.atan2(i,n)/Math.PI}},u.math.getAngle=function(e,t){var n=e.getDeltaX(),i=e.getDeltaY(),r=t.getDeltaX(),o=t.getDeltaY(),a=n*r+i*o,s=n*o-i*r;return 360-(180-180*Math.atan2(s,a)/Math.PI)},u.math.getPerpendicularLine=function(e,t,n){var i=0,r=0,o=0,a=0;if(0!==e.getSlope()){var s=-1/e.getSlope(),l=t.getY()-s*t.getX(),c=n/(2*Math.sqrt(1+s*s));r=s*(i=t.getX()-c)+l,a=s*(o=t.getX()+c)+l}else i=t.getX(),r=t.getY()-n/2,o=t.getX(),a=t.getY()+n/2;return new u.math.Line(new u.math.Point2D(i,r),new u.math.Point2D(o,a))},u.math.Rectangle=function(e,t){if(t.getX()<e.getX()){var n=e.getX();e=new u.math.Point2D(t.getX(),e.getY()),t=new u.math.Point2D(n,t.getY())}if(t.getY()<e.getY()){var i=e.getY();e=new u.math.Point2D(e.getX(),t.getY()),t=new u.math.Point2D(t.getX(),i)}var r=Math.abs(t.getX()-e.getX())*Math.abs(t.getY()-e.getY());this.getBegin=function(){return e},this.getEnd=function(){return t},this.getRealWidth=function(){return t.getX()-e.getX()},this.getRealHeight=function(){return t.getY()-e.getY()},this.getWidth=function(){return Math.abs(this.getRealWidth())},this.getHeight=function(){return Math.abs(this.getRealHeight())},this.getSurface=function(){return r},this.getWorldSurface=function(e,t){return s(r,e,t)}},u.math.ROI=function(){var e=[];this.getPoint=function(t){return e[t]},this.getLength=function(){return e.length},this.addPoint=function(t){e.push(t)},this.addPoints=function(t){e=e.concat(t)}},u.math.Path=function(e,t){this.pointArray=e?e.slice():[],this.controlPointIndexArray=t?t.slice():[]},u.math.Path.prototype.getPoint=function(e){return this.pointArray[e]},u.math.Path.prototype.isControlPoint=function(e){var t=this.pointArray.indexOf(e);if(-1!==t)return-1!==this.controlPointIndexArray.indexOf(t);throw new Error("Error: isControlPoint called with not in list point.")},u.math.Path.prototype.getLength=function(){return this.pointArray.length},u.math.Path.prototype.addPoint=function(e){this.pointArray.push(e)},u.math.Path.prototype.addControlPoint=function(e){var t=this.pointArray.indexOf(e);if(-1===t)throw new Error("Error: addControlPoint called with no point in list point.");this.controlPointIndexArray.push(t)},u.math.Path.prototype.addPoints=function(e){this.pointArray=this.pointArray.concat(e)},u.math.Path.prototype.appenPath=function(e){var t=this.pointArray.length;this.pointArray=this.pointArray.concat(e.pointArray);for(var n=[],i=0;i<e.controlPointIndexArray.length;++i)n[i]=e.controlPointIndexArray[i]+t;this.controlPointIndexArray=this.controlPointIndexArray.concat(n)};(u=u||{}).math=u.math||{},u.math.getStats=function(e){for(var t=e[0],n=t,i=0,r=0,o=0,a=0,s=0,l=0,u=0;u<e.length;++u)(l=e[u])<t?t=l:l>n&&(n=l),r+=l,o+=l*l;return i=r/e.length,s=o/e.length-i*i,a=Math.sqrt(s),{min:t,max:n,mean:i,stdDev:a}},u.math.guid=function(){return Math.random().toString(36).substring(2,15)};(u=u||{}).math=u.math||{},u.math.Vector3D=function(e,t,n){this.getX=function(){return e},this.getY=function(){return t},this.getZ=function(){return n}},u.math.Vector3D.prototype.equals=function(e){return null!==e&&this.getX()===e.getX()&&this.getY()===e.getY()&&this.getZ()===e.getZ()},u.math.Vector3D.prototype.toString=function(){return"("+this.getX()+", "+this.getY()+", "+this.getZ()+")"},u.math.Vector3D.prototype.norm=function(){return Math.sqrt(this.getX()*this.getX()+this.getY()*this.getY()+this.getZ()*this.getZ())},u.math.Vector3D.prototype.crossProduct=function(e){return new u.math.Vector3D(this.getY()*e.getZ()-e.getY()*this.getZ(),this.getZ()*e.getX()-e.getZ()*this.getX(),this.getX()*e.getY()-e.getX()*this.getY())},u.math.Vector3D.prototype.dotProduct=function(e){return this.getX()*e.getX()+this.getY()*e.getY()+this.getZ()*e.getZ()};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.ArrowFactory=function(){this.getNPoints=function(){return 2},this.getTimeout=function(){return 0}},u.tool.ArrowFactory.prototype.create=function(e,t){var n=new u.math.Line(e[0],e[1]),i=new o.Line({points:[n.getBegin().getX(),n.getBegin().getY(),n.getEnd().getX(),n.getEnd().getY()],stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape"}),r=u.math.getPerpendicularLine(n,e[0],10),a=u.math.getPerpendicularLine(n,e[1],10);i.hitFunc(function(e){e.beginPath(),e.moveTo(r.getBegin().getX(),r.getBegin().getY()),e.lineTo(r.getEnd().getX(),r.getEnd().getY()),e.lineTo(a.getEnd().getX(),a.getEnd().getY()),e.lineTo(a.getBegin().getX(),a.getBegin().getY()),e.closePath(),e.fillStrokeShape(this)});var s=new u.math.Point2D(n.getBegin().getX(),n.getBegin().getY()-10),l=new u.math.Line(n.getBegin(),s),c=u.math.getAngle(n,l),d=c*Math.PI/180,S=new o.RegularPolygon({x:n.getBegin().getX()+5*Math.sin(d),y:n.getBegin().getY()+5*Math.cos(d),sides:3,radius:5,rotation:-c,fill:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape-triangle"}),x=new o.Text({fontSize:t.getScaledFontSize(),fontFamily:t.getFontFamily(),fill:t.getLineColour(),name:"text"});x.textExpr="",x.longText="",x.quant=null,x.setText(x.textExpr);var g=n.getBegin().getX()>n.getEnd().getX()?0:-1,m=n.getBegin().getY()>n.getEnd().getY()?-1:.5,h=new o.Label({x:n.getEnd().getX()+25*g,y:n.getEnd().getY()+15*m,name:"label"});h.add(x),h.add(new o.Tag);var p=new o.Group;return p.name("line-group"),p.add(i),p.add(S),p.add(h),p.visible(!0),p},u.tool.UpdateArrow=function(e){var t=e.getParent(),n=t.getChildren(function(e){return"shape"===e.name()})[0],i=t.getChildren(function(e){return"shape-triangle"===e.name()})[0],r=t.getChildren(function(e){return"label"===e.name()})[0],o=t.getChildren(function(e){return"begin"===e.id()})[0],a=t.getChildren(function(e){return"end"===e.id()})[0];switch(e.id()){case"begin":o.x(e.x()),o.y(e.y());break;case"end":a.x(e.x()),a.y(e.y())}var s=o.x()-n.x(),l=o.y()-n.y(),c=a.x()-n.x(),d=a.y()-n.y();n.points([s,l,c,d]);var S=new u.math.Point2D(o.x(),o.y()),x=new u.math.Point2D(a.x(),a.y()),g=new u.math.Line(S,x),m=new u.math.Point2D(s,l),h=new u.math.Point2D(c,d),p=u.math.getPerpendicularLine(g,m,10),f=u.math.getPerpendicularLine(g,h,10);n.hitFunc(function(e){e.beginPath(),e.moveTo(p.getBegin().getX(),p.getBegin().getY()),e.lineTo(p.getEnd().getX(),p.getEnd().getY()),e.lineTo(f.getEnd().getX(),f.getEnd().getY()),e.lineTo(f.getBegin().getX(),f.getBegin().getY()),e.closePath(),e.fillStrokeShape(this)});var C=new u.math.Point2D(g.getBegin().getX(),g.getBegin().getY()-10),y=new u.math.Line(g.getBegin(),C),D=u.math.getAngle(g,y),v=D*Math.PI/180;i.x(g.getBegin().getX()+i.radius()*Math.sin(v)),i.y(g.getBegin().getY()+i.radius()*Math.cos(v)),i.rotation(-D);var L=r.getText();L.quant=null,L.setText(L.textExpr);var T=g.getBegin().getX()>g.getEnd().getX()?0:-1,I=g.getBegin().getY()>g.getEnd().getY()?-1:.5,P={x:g.getEnd().getX()+25*T,y:g.getEnd().getY()+15*I};r.position(P)};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.Draw=function(e,t){function n(){i(!1),y=e.getCurrentDrawLayer(),i(!0)}function i(t){y.listening(t),y.hitGraphEnabled(t);for(var n=y.getChildren(),i=[],r=function(e){return"shape"===e.name()},o=0;o<n.length;++o)i.push(n[o].getChildren(r)[0]);t?(e.addToolCanvasListeners(e.getDrawStage().getContent()),i.forEach(function(e){s.setShapeOn(e)})):(e.removeToolCanvasListeners(e.getDrawStage().getContent()),i.forEach(function(e){!function(e){e.off("mouseover"),e.off("mouseout"),e.draggable(!1),e.off("dragstart"),e.off("dragmove"),e.off("dragend"),e.off("dblclick")}(e)})),y.draw()}function r(t){var n=e.getDrawStage();return{x:n.offset().x+t.x/n.scale().x,y:n.offset().y+t.y/n.scale().y}}function a(e){if(void 0!==C[e.type])for(var t=0;t<C[e.type].length;++t)C[e.type][t](e)}var s=this,l=null,c=!1;this.shapeFactoryList=t;var d=null,S=null;this.shapeName=0;var x=[],g=null,m=new u.tool.ShapeEditor(e);m.setDrawEventCallback(a);var h=new o.Group,p=new o.Line({points:[-10,-10,10,10],stroke:"red"}),f=new o.Line({points:[10,-10,-10,10],stroke:"red"});h.add(p),h.add(f),this.style=new u.html.Style;var C={},y=null;this.mousedown=function(t){var n=e.getDrawStage().getIntersection({x:t._xs,y:t._ys});if(n){var i=n.getParent().find(".shape")[0];i&&i!==m.getShape()&&(m.disable(),m.setShape(i),m.setImage(e.getImage()),m.enable())}else m.disable(),m.setShape(null),m.setImage(null),c=!0,x=[],g=new u.math.Point2D(t._x,t._y),x.push(g)},this.mousemove=function(t){if(c&&(Math.abs(t._x-g.getX())>0||Math.abs(t._y-g.getY())>0)){g=new u.math.Point2D(t._x,t._y),1!=x.length&&x.pop(),x.push(g);var n=new s.shapeFactoryList[s.shapeName];x.length<n.getNPoints()&&(clearTimeout(this.timer),this.timer=setTimeout(function(){x.push(g)},n.getTimeout())),S&&S.destroy();(S=n.create(x,s.style,e.getImage())).getChildren(function(e){return"shape"===e.name()})[0].listening(!1),y.hitGraphEnabled(!1),(d=new u.tool.DrawGroupCommand(S,s.shapeName,y,!0)).execute()}},this.mouseup=function(){if(c&&x.length>1){S&&S.destroy();var t=(new s.shapeFactoryList[s.shapeName]).create(x,s.style,e.getImage());t.id(u.math.guid()),y.hitGraphEnabled(!0),(d=new u.tool.DrawGroupCommand(t,s.shapeName,y)).onExecute=a,d.onUndo=a,d.execute(),e.addToUndoStack(d);var n=t.getChildren(function(e){return"shape"===e.name()})[0];s.setShapeOn(n)}c=!1},this.mouseout=function(e){s.mouseup(e)},this.touchstart=function(e){s.mousedown(e)},this.touchmove=function(e){s.mousemove(e)},this.touchend=function(e){s.mouseup(e)},this.keydown=function(t){e.onKeydown(t)},this.setup=function(){(l=new u.gui.Draw(e)).setup(this.shapeFactoryList)},this.display=function(t){l&&l.display(t),m.disable(),m.setShape(null),m.setImage(null),document.body.style.cursor="default",e.getDrawStage().listening(t),y=e.getCurrentDrawLayer(),i(t),t?(e.addEventListener("slice-change",n),e.addEventListener("frame-change",n)):(e.removeEventListener("slice-change",n),e.removeEventListener("frame-change",n))},this.setShapeOn=function(t){t.on("mouseover",function(){document.body.style.cursor="pointer"}),t.on("mouseout",function(){document.body.style.cursor="default"}),t.draggable(!0);var n=null,i=null,o=u.tool.GetShapeDisplayName(t),s=null;n={x:t.x(),y:t.y()},t.on("dragstart",function(){s=t.stroke();var n=e.getDrawStage(),i=n.scale(),r={x:1/i.x,y:1/i.y};h.x(n.offset().x+256/i.x),h.y(n.offset().y+20/i.y),h.scale(r),y.add(h),m.setAnchorsActive(!1),y.draw()}),t.on("dragmove",function(e){var o,a={x:this.x(),y:this.y()};o=i?{x:a.x-i.x,y:a.y-i.y}:{x:a.x-n.x,y:a.y-n.y},i=a;var l=r(u.html.getEventOffset(e.evt)[0]);Math.abs(l.x-h.x())<10&&Math.abs(l.y-h.y())<10?(h.getChildren().each(function(e){e.stroke("orange")}),t.stroke("red")):(h.getChildren().each(function(e){e.stroke("red")}),t.stroke(s));this.getParent().getChildren().each(function(e){e!==t&&(e.x(e.x()+o.x),e.y(e.y()+o.y))}),m.resetAnchors(),y.draw()}),t.on("dragend",function(l){var c=this.x(),d=this.y();i=null,h.remove();var S=r(u.html.getEventOffset(l.evt)[0]);if(Math.abs(S.x-h.x())<10&&Math.abs(S.y-h.y())<10){var x=S.x-n.x,g=S.y-n.y;this.getParent().getChildren().each(function(e){e.x(e.x()-x),e.y(e.y()-g)}),m.disable(),m.setShape(null),m.setImage(null),t.stroke(s),document.body.style.cursor="default";var p=new u.tool.DeleteGroupCommand(this.getParent(),o,y);p.onExecute=a,p.onUndo=a,p.execute(),e.addToUndoStack(p)}else{var f={x:c-n.x,y:d-n.y};if(0!==f.x||0!==f.y){var C=new u.tool.MoveGroupCommand(this.getParent(),o,f,y);C.onExecute=a,C.onUndo=a,e.addToUndoStack(C),n={x:this.x(),y:this.y()},a({type:"draw-move"})}m.setAnchorsActive(!0),m.resetAnchors()}y.draw()}),t.on("dblclick",function(){var e=this.getParent().find("Label");if(1!==e.length)throw new Error("Could not find the shape label.");var t=e[0].getText(),n=u.gui.prompt("Shape label",t.textExpr);null!==n&&n!==t.textExpr&&(t.textExpr=n,t.setText(u.utils.replaceFlags(t.textExpr,t.quant)),a({type:"draw-change"}),y.draw())})},this.init=function(){var t=0;for(var n in this.shapeFactoryList){t=n;break}return this.setShapeName(t),l&&(this.style.setScale(e.getWindowScale()),this.setLineColour(this.style.getLineColour()),l.initialise()),!0},this.addEventListener=function(e,t){void 0===C[e]&&(C[e]=[]),C[e].push(t)},this.removeEventListener=function(e,t){if(void 0!==C[e])for(var n=0;n<C[e].length;++n)C[e][n]===t&&C[e].splice(n,1)},this.setLineColour=function(e){this.style.setLineColour(e)}},u.tool.Draw.prototype.getHelp=function(){return{title:u.i18n("tool.Draw.name"),brief:u.i18n("tool.Draw.brief"),mouse:{mouse_drag:u.i18n("tool.Draw.mouse_drag")},touch:{touch_drag:u.i18n("tool.Draw.touch_drag")}}},u.tool.Draw.prototype.setShapeName=function(e){if(!this.hasShape(e))throw new Error("Unknown shape: '"+e+"'");this.shapeName=e},u.tool.Draw.prototype.hasShape=function(e){return this.shapeFactoryList[e]};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.GetShapeDisplayName=function(e){var t="shape";return e instanceof o.Line?t=4===e.points().length?"line":6===e.points().length?"protractor":"roi":e instanceof o.Rect?t="rectangle":e instanceof o.Ellipse&&(t="ellipse"),t},u.tool.DrawGroupCommand=function(e,t,n,i){var r=void 0!==i;this.getName=function(){return"Draw-"+t},this.execute=function(){n.add(e),n.draw(),r||this.onExecute({type:"draw-create",id:e.id()})},this.undo=function(){e.remove(),n.draw(),this.onUndo({type:"draw-delete",id:e.id()})}},u.tool.DrawGroupCommand.prototype.onExecute=function(){},u.tool.DrawGroupCommand.prototype.onUndo=function(){},u.tool.MoveGroupCommand=function(e,t,n,i){this.getName=function(){return"Move-"+t},this.execute=function(){e.getChildren().each(function(e){e.x(e.x()+n.x),e.y(e.y()+n.y)}),i.draw(),this.onExecute({type:"draw-move",id:e.id()})},this.undo=function(){e.getChildren().each(function(e){e.x(e.x()-n.x),e.y(e.y()-n.y)}),i.draw(),this.onUndo({type:"draw-move",id:e.id()})}},u.tool.MoveGroupCommand.prototype.onExecute=function(){},u.tool.MoveGroupCommand.prototype.onUndo=function(){},u.tool.ChangeGroupCommand=function(e,t,n,i,r,o){this.getName=function(){return"Change-"+e},this.execute=function(){t(i,o),r.draw(),this.onExecute({type:"draw-change"})},this.undo=function(){t(n,o),r.draw(),this.onUndo({type:"draw-change"})}},u.tool.ChangeGroupCommand.prototype.onExecute=function(){},u.tool.ChangeGroupCommand.prototype.onUndo=function(){},u.tool.DeleteGroupCommand=function(e,t,n){this.getName=function(){return"Delete-"+t},this.execute=function(){e.remove(),n.draw(),this.onExecute({type:"draw-delete",id:e.id()})},this.undo=function(){n.add(e),n.draw(),this.onUndo({type:"draw-create",id:e.id()})}},u.tool.DeleteGroupCommand.prototype.onExecute=function(){},u.tool.DeleteGroupCommand.prototype.onUndo=function(){};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.ShapeEditor=function(e){function t(e){if(c&&c.getParent()){c.getParent().find(".anchor").each(e)}}function n(e){t(function(t){t.visible(e)})}function i(){t(function(e){e.remove()})}function r(){if(c&&c.getLayer()){var e=c.getParent();if(c instanceof o.Line){var t=c.points();if(4===t.length||6===t.length){var n=t[0]+c.x(),i=t[1]+c.y(),r=t[2]+c.x(),s=t[3]+c.y();if(a(e,n,i,"begin"),4===t.length){var l=e.getChildren(function(e){return e.name().startsWith("shape-")});x=2===l.length?u.tool.UpdateRuler:u.tool.UpdateArrow,a(e,r,s,"end")}else{x=u.tool.UpdateProtractor,a(e,r,s,"mid");a(e,t[4]+c.x(),t[5]+c.y(),"end")}}else{x=u.tool.UpdateRoi;for(var d=0;d<t.length;d+=2)a(e,t[d]+c.x(),t[d+1]+c.y(),d)}}else if(c instanceof o.Rect){x=u.tool.UpdateRect;var S=c.x(),g=c.y(),m=c.width(),h=c.height();a(e,S,g,"topLeft"),a(e,S+m,g,"topRight"),a(e,S+m,g+h,"bottomRight"),a(e,S,g+h,"bottomLeft")}else if(c instanceof o.Ellipse){x=u.tool.UpdateEllipse;var p=c.x(),f=c.y(),C=c.radius();a(e,p-C.x,f-C.y,"topLeft"),a(e,p+C.x,f-C.y,"topRight"),a(e,p+C.x,f+C.y,"bottomRight"),a(e,p-C.x,f+C.y,"bottomLeft")}c.getLayer().add(e)}}function a(t,n,i,r){var a=new o.Circle({x:n,y:i,stroke:"#999",fill:"rgba(100,100,100,0.7",strokeWidth:e.getStyle().getScaledStrokeWidth()/e.getScale(),radius:e.getStyle().scale(6)/e.getScale(),name:"anchor",id:r,dragOnTop:!1,draggable:!0,visible:!1});l(a),t.add(a)}function s(e){var t=e.getParent(),n=e.id(),i=e.x(),r=e.y(),o={};return o.getParent=function(){return t},o.id=function(){return n},o.x=function(){return i},o.y=function(){return r},o}function l(t){var n=null,i=u.tool.GetShapeDisplayName(c);t.on("dragstart",function(){n=s(this)}),t.on("dragmove",function(){x&&x(this,d),this.getLayer()?this.getLayer().draw():console.warn("No layer to draw the anchor!")}),t.on("dragend",function(){var t=s(this),r=new u.tool.ChangeGroupCommand(i,x,n,t,this.getLayer(),d);r.onExecute=g,r.onUndo=g,r.execute(),e.addToUndoStack(r),n=t}),t.on("mousedown touchstart",function(){this.moveToTop()}),t.on("mouseover",function(){document.body.style.cursor="pointer",this.stroke("#ddd"),this.getLayer()?this.getLayer().draw():console.warn("No layer to draw the anchor!")}),t.on("mouseout",function(){document.body.style.cursor="default",this.stroke("#999"),this.getLayer()?this.getLayer().draw():console.warn("No layer to draw the anchor!")})}var c=null,d=null,S=!1,x=null,g=null;this.setShape=function(e){(c=e)&&(i(),r())},this.setImage=function(e){d=e},this.getShape=function(){return c},this.isActive=function(){return S},this.setDrawEventCallback=function(e){g=e},this.enable=function(){S=!0,c&&(n(!0),c.getLayer()&&c.getLayer().draw())},this.disable=function(){S=!1,c&&(n(!1),c.getLayer()&&c.getLayer().draw())},this.resetAnchors=function(){i(),r(),n(!0)},this.setAnchorsActive=function(e){t(e?function(e){l(e)}:function(e){!function(e){e.off("dragstart"),e.off("dragmove"),e.off("dragend"),e.off("mousedown touchstart"),e.off("mouseover"),e.off("mouseout")}(e)})}};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.EllipseFactory=function(){this.getNPoints=function(){return 2},this.getTimeout=function(){return 0}},u.tool.EllipseFactory.prototype.create=function(e,t,n){var i=Math.abs(e[0].getX()-e[1].getX()),r=Math.abs(e[0].getY()-e[1].getY()),a=new u.math.Ellipse(e[0],i,r),s=new o.Ellipse({x:a.getCenter().getX(),y:a.getCenter().getY(),radius:{x:a.getA(),y:a.getB()},stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape"}),l=n.quantifyEllipse(a),c=new o.Text({fontSize:t.getScaledFontSize(),fontFamily:t.getFontFamily(),fill:t.getLineColour(),name:"text"});c.textExpr="{surface}",c.longText="",c.quant=l,c.setText(u.utils.replaceFlags(c.textExpr,c.quant));var d=new o.Label({x:a.getCenter().getX(),y:a.getCenter().getY(),name:"label"});d.add(c),d.add(new o.Tag);var S=new o.Group;return S.name("ellipse-group"),S.add(s),S.add(d),S.visible(!0),S},u.tool.UpdateEllipse=function(e,t){var n=e.getParent(),i=n.getChildren(function(e){return"shape"===e.name()})[0],r=n.getChildren(function(e){return"label"===e.name()})[0],o=n.getChildren(function(e){return"topLeft"===e.id()})[0],a=n.getChildren(function(e){return"topRight"===e.id()})[0],s=n.getChildren(function(e){return"bottomRight"===e.id()})[0],l=n.getChildren(function(e){return"bottomLeft"===e.id()})[0];switch(e.id()){case"topLeft":o.x(e.x()),o.y(e.y()),a.y(e.y()),l.x(e.x());break;case"topRight":a.x(e.x()),a.y(e.y()),o.y(e.y()),s.x(e.x());break;case"bottomRight":s.x(e.x()),s.y(e.y()),l.y(e.y()),a.x(e.x());break;case"bottomLeft":l.x(e.x()),l.y(e.y()),s.y(e.y()),o.x(e.x());break;default:console.error("Unhandled anchor id: "+e.id())}var c=(a.x()-o.x())/2,d=(s.y()-a.y())/2,S={x:o.x()+c,y:a.y()+d};i.position(S);var x={x:Math.abs(c),y:Math.abs(d)};x&&i.radius(x);var g=new u.math.Ellipse(S,x.x,x.y),m=t.quantifyEllipse(g),h=r.getText();h.quant=m,h.setText(u.utils.replaceFlags(h.textExpr,h.quant));var p={x:S.x,y:S.y};r.position(p)};(u=u||{}).tool=u.tool||{},u.tool.filter=u.tool.filter||{},u.tool.Filter=function(e,t){function n(e){r.fireEvent(e)}var i=null;this.filterList=e,this.selectedFilter=0,this.defaultFilterName=0,this.displayed=!1;var r=new u.utils.ListenerHandler;this.setup=function(){if(0!==Object.keys(this.filterList).length){(i=new u.gui.Filter(t)).setup(this.filterList);for(var e in this.filterList)this.filterList[e].setup(),this.filterList[e].addEventListener("filter-run",n),this.filterList[e].addEventListener("filter-undo",n)}},this.display=function(e){i&&i.display(e),this.displayed=e,this.selectedFilter.display(e)},this.init=function(){for(var e in this.filterList){this.defaultFilterName=e;break}this.setSelectedFilter(this.defaultFilterName);for(e in this.filterList)this.filterList[e].init();return i&&i.initialise(),!0},this.keydown=function(e){t.onKeydown(e)},this.addEventListener=function(e,t){r.add(e,t)},this.removeEventListener=function(e,t){r.remove(e,t)}},u.tool.Filter.prototype.getHelp=function(){return{title:u.i18n("tool.Filter.name"),brief:u.i18n("tool.Filter.brief")}},u.tool.Filter.prototype.getSelectedFilter=function(){return this.selectedFilter},u.tool.Filter.prototype.setSelectedFilter=function(e){if(!this.hasFilter(e))throw new Error("Unknown filter: '"+e+"'");this.displayed&&this.selectedFilter.display(!1),this.selectedFilter=this.filterList[e],this.displayed&&this.selectedFilter.display(!0)},u.tool.Filter.prototype.getFilterList=function(){return this.filterList},u.tool.Filter.prototype.hasFilter=function(e){return this.filterList[e]},u.tool.filter.Threshold=function(e){function t(e){o.fireEvent(e)}var n=new u.image.filter.Threshold,i=new u.gui.Threshold(e),r=!0,o=new u.utils.ListenerHandler;this.setup=function(){i.setup()},this.display=function(e){i.display(e),e&&(r=!0)},this.init=function(){i.initialise()},this.run=function(i){n.setMin(i.min),n.setMax(i.max),r&&(n.setOriginalImage(e.getImage()),r=!1);var o=new u.tool.RunFilterCommand(n,e);o.onExecute=t,o.onUndo=t,o.execute(),e.addToUndoStack(o)},this.addEventListener=function(e,t){o.add(e,t)},this.removeEventListener=function(e,t){o.remove(e,t)}},u.tool.filter.Sharpen=function(e){function t(e){i.fireEvent(e)}var n=new u.gui.Sharpen(e),i=new u.utils.ListenerHandler;this.setup=function(){n.setup()},this.display=function(e){n.display(e)},this.init=function(){},this.run=function(){var n=new u.image.filter.Sharpen;n.setOriginalImage(e.getImage());var i=new u.tool.RunFilterCommand(n,e);i.onExecute=t,i.onUndo=t,i.execute(),e.addToUndoStack(i)},this.addEventListener=function(e,t){i.add(e,t)},this.removeEventListener=function(e,t){i.remove(e,t)}},u.tool.filter.Sobel=function(e){function t(e){i.fireEvent(e)}var n=new u.gui.Sobel(e),i=new u.utils.ListenerHandler;this.setup=function(){n.setup()},this.display=function(e){n.display(e)},this.init=function(){},u.tool.filter.Sobel.prototype.run=function(){var n=new u.image.filter.Sobel;n.setOriginalImage(e.getImage());var i=new u.tool.RunFilterCommand(n,e);i.onExecute=t,i.onUndo=t,i.execute(),e.addToUndoStack(i)},this.addEventListener=function(e,t){i.add(e,t)},this.removeEventListener=function(e,t){i.remove(e,t)}},u.tool.RunFilterCommand=function(e,t){this.getName=function(){return"Filter-"+e.getName()},this.execute=function(){t.setImage(e.update()),t.render(),this.onExecute({type:"filter-run",id:this.getName()})},this.undo=function(){t.setImage(e.getOriginalImage()),t.render(),this.onUndo({type:"filter-undo",id:this.getName()})}},u.tool.RunFilterCommand.prototype.onExecute=function(){},u.tool.RunFilterCommand.prototype.onUndo=function(){};(u=u||{}).tool=u.tool||{};a=a||{};u.tool.Floodfill=function(e){function t(e){for(var t=0;t<h.length;++t)h[t](e)}var n=null,i=null,r=null,o=this;this.started=!1;var s,l,c=null,d=null,S=null,x=null,g=[],m=!1;this.style=new u.html.Style;var h=[];this.setExtend=function(e){m=e},this.getExtend=function(){return m};var p=function(e){return{x:e._x,y:e._y}},f=function(e,t,r){g=[];var o={data:n.data,width:n.width,height:n.height,bytes:4};i=a.floodFill(o,e.x,e.y,t),i=a.gaussBlurOnlyBorder(i,5);var s=a.traceContours(i);if((s=a.simplifyContours(s,0,2e3)).length>0&&s[0].points[0].x){if(r)return s[0].points;for(var l=0,c=s[0].points.length;l<c;l++)g.push(new u.math.Point2D(s[0].points[l].x,s[0].points[l].y));return g}return!1},C=function(n,i){if(x=f(n,i)){var r=new u.tool.RoiFactory;return(S=r.create(x,o.style)).id(u.math.guid()),d=new u.tool.DrawGroupCommand(S,"floodfill",e.getCurrentDrawLayer()),d.onExecute=t,d.onUndo=t,d.execute(),e.addToUndoStack(d),!0}return!1};this.extend=function(t,n){if(!s)throw"'initialpoint' not found. User must click before use extend!";S&&S.destroy();for(var i=e.getViewController().getCurrentPosition(),o=r||10,a=i.k,l=n||e.getImage().getGeometry().getSize().getNumberOfSlices();a<l&&C(s,o);a++)e.getViewController().incrementSliceNb();e.getViewController().setCurrentPosition(i);for(var u=i.k,c=t||0;u>c&&C(s,o);u--)e.getViewController().decrementSliceNb();e.getViewController().setCurrentPosition(i)},this.modifyThreshold=function(e,t){if(t||!S)throw"No shape found";t=S.getChildren(function(e){return"shape"===e.name()})[0],clearTimeout(l),l=setTimeout(function(){if(!(x=f(s,e,!0)))return!1;for(var n=[],i=0,r=x.length;i<r;++i)n.push(x[i].x),n.push(x[i].y);t.setPoints(n);t.getLayer().draw(),o.onThresholdChange(e)},100)},this.onThresholdChange=function(){},this.mousedown=function(t){if(!(n=e.getImageData()))return console.error("No image found");o.started=!0,s=p(t),C(s,10),o.onThresholdChange(10)},this.mousemove=function(e){if(o.started){var t=p(e);r=(r=Math.round(Math.sqrt(Math.pow(s.x-t.x,2)+Math.pow(s.y-t.y,2))/2))<10?10:r-10,o.modifyThreshold(r)}},this.mouseup=function(){o.started=!1,m&&o.extend()},this.mouseout=function(){o.mouseup()},this.touchstart=function(e){o.mousedown(e)},this.touchmove=function(e){o.mousemove(e)},this.touchend=function(){o.mouseup()},this.keydown=function(t){e.onKeydown(t)},this.setup=function(){(c=new u.gui.ColourTool(e,"ff")).setup()},this.display=function(e){c&&c.display(e),this.init()},this.init=function(){return c&&(this.style.setScale(e.getWindowScale()),this.setLineColour(this.style.getLineColour()),c.initialise()),!0},this.addEventListener=function(e){h.push(e)},this.removeEventListener=function(e){for(var t=0;t<h.length;++t)h[t]===e&&h.splice(t,1)}},u.tool.Floodfill.prototype.getHelp=function(){return{title:u.i18n("tool.Floodfill.name"),brief:u.i18n("tool.Floodfill.brief"),mouse:{click:u.i18n("tool.Floodfill.click")},touch:{tap:u.i18n("tool.Floodfill.tap")}}},u.tool.Floodfill.prototype.setLineColour=function(e){this.style.setLineColour(e)};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.FreeHandFactory=function(){this.getNPoints=function(){return 1e3},this.getTimeout=function(){return 25}},u.tool.FreeHandFactory.prototype.create=function(e,t){for(var n=[],i=0;i<e.length;++i)n.push(e[i].getX()),n.push(e[i].getY());var r=new o.Line({points:n,stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape",tension:.5}),a=new o.Text({fontSize:t.getScaledFontSize(),fontFamily:t.getFontFamily(),fill:t.getLineColour(),name:"text"});a.textExpr="",a.longText="",a.quant=null,a.setText(a.textExpr);var s=new o.Label({x:e[0].getX(),y:e[0].getY()+10,name:"label"});s.add(a),s.add(new o.Tag);var l=new o.Group;return l.name("freeHand-group"),l.add(r),l.add(s),l.visible(!0),l},u.tool.UpdateFreeHand=function(e){var t=e.getParent(),n=t.getChildren(function(e){return"shape"===e.name()})[0],i=t.getChildren(function(e){return"label"===e.name()})[0],r=t.getChildren(function(t){return t.id()===e.id()})[0];r.x(e.x()),r.y(e.y());var o=n.points();o[e.id()]=e.x()-n.x(),o[e.id()+1]=e.y()-n.y(),n.points(o);var a=i.getText();a.quant=null,a.setText(u.utils.replaceFlags(a.textExpr,a.quant));var s={x:o[0]+n.x(),y:o[1]+n.y()+10};i.position(s)};(u=u||{}).tool=u.tool||{},u.tool.Livewire=function(e){function t(){for(var t=e.getImage().getGeometry().getSize().getNumberOfRows(),n=0;n<t;++n)c[n]=[]}function n(e){for(var t=0;t<d.length;++t)d[t](e)}var i=this,r=null;this.started=!1;var o=null,a=null;this.style=new u.html.Style,this.style.setScale(e.getWindowScale());var s=new u.math.Path,l=new u.math.Path,c=[],d=[],S=new u.math.Scissors;this.mousedown=function(r){if(i.started)if(Math.abs(r._x-i.x0)<5&&Math.abs(r._y-i.y0)<5)i.mousemove(r),o.onExecute=n,o.onUndo=n,console.log("Done."),e.addToUndoStack(o),i.started=!1;else{s=l,t();var a=new u.math.FastPoint2D(r._x,r._y);S.doTraining(a),s.addControlPoint(l.getPoint(0))}else{i.started=!0,i.x0=r._x,i.y0=r._y,s=new u.math.Path,l=new u.math.Path,t();var c=new u.math.FastPoint2D(r._x,r._y);S.doTraining(c);var d=new u.math.Point2D(r._x,r._y);s.addPoint(d),s.addControlPoint(d)}},this.mousemove=function(t){if(i.started){var n=new u.math.FastPoint2D(t._x,t._y);S.setPoint(n);for(var r=0,d=!1;!c[n.y][n.x]&&!d;)if(console.log("Getting ready..."),0===(r=S.doWork()).length)d=!0;else for(var x=0;x<r.length-1;x+=2){var g=r[x],m=r[x+1];c[g.y][g.x]=m}for(console.log("Ready!"),l=new u.math.Path,d=!1;n&&!d;)l.addPoint(new u.math.Point2D(n.x,n.y)),c[n.y]&&c[n.y][n.x]?n=c[n.y][n.x]:d=!0;l.appenPath(s),a&&a.destroy();var h=new u.tool.RoiFactory;(a=h.create(l.pointArray,i.style)).id(u.math.guid()),(o=new u.tool.DrawGroupCommand(a,"livewire",e.getCurrentDrawLayer())).execute()}},this.mouseup=function(){},this.mouseout=function(e){i.mouseup(e)},this.dblclick=function(){console.log("dblclick"),e.addToUndoStack(o),i.started=!1},this.touchstart=function(e){i.mousedown(e)},this.touchmove=function(e){i.mousemove(e)},this.touchend=function(e){i.mouseup(e)},this.keydown=function(t){e.onKeydown(t)},this.setup=function(){(r=new u.gui.ColourTool(e,"lw")).setup()},this.display=function(t){if(r&&r.display(t),t){var n=e.getImage().getGeometry().getSize();S.setDimensions(n.getNumberOfColumns(),n.getNumberOfRows()),S.setData(e.getImageData().data)}},this.init=function(){return r&&(this.style.setScale(e.getWindowScale()),this.setLineColour(this.style.getLineColour()),r.initialise()),!0},this.addEventListener=function(e){d.push(e)},this.removeEventListener=function(e){for(var t=0;t<d.length;++t)d[t]===e&&d.splice(t,1)}},u.tool.Livewire.prototype.getHelp=function(){return{title:u.i18n("tool.Livewire.name"),brief:u.i18n("tool.Livewire.brief")}},u.tool.Livewire.prototype.setLineColour=function(e){this.style.setLineColour(e)};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.ProtractorFactory=function(){this.getNPoints=function(){return 3},this.getTimeout=function(){return 500}},u.tool.ProtractorFactory.prototype.create=function(e,t){for(var n=new u.math.Line(e[0],e[1]),i=[],r=0;r<e.length;++r)i.push(e[r].getX()),i.push(e[r].getY());var a=new o.Line({points:i,stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape"}),s=new o.Group;if(s.name("protractor-group"),s.add(a),s.visible(!0),3===e.length){var l=new u.math.Line(e[1],e[2]);a.hitFunc(function(t){t.beginPath(),t.moveTo(e[0].getX(),e[0].getY()),t.lineTo(e[1].getX(),e[1].getY()),t.lineTo(e[2].getX(),e[2].getY()),t.closePath(),t.fillStrokeShape(this)});var c=u.math.getAngle(n,l),d=n.getInclination();c>180&&(d+=c=360-c);var S={angle:{value:c,unit:u.i18n("unit.degree")}},x=new o.Text({fontSize:t.getScaledFontSize(),fontFamily:t.getFontFamily(),fill:t.getLineColour(),name:"text"});x.textExpr="{angle}",x.longText="",x.quant=S,x.setText(u.utils.replaceFlags(x.textExpr,x.quant));var g=(n.getMidpoint().getX()+l.getMidpoint().getX())/2,m=(n.getMidpoint().getY()+l.getMidpoint().getY())/2,h=new o.Label({x:g,y:m-15,name:"label"});h.add(x),h.add(new o.Tag);var p=33*Math.min(n.getLength(),l.getLength())/100,f=new o.Arc({innerRadius:p,outerRadius:p,stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),angle:c,rotation:-d,x:e[1].getX(),y:e[1].getY(),name:"shape-arc"});s.add(h),s.add(f)}return s},u.tool.UpdateProtractor=function(e){var t=e.getParent(),n=t.getChildren(function(e){return"shape"===e.name()})[0],i=t.getChildren(function(e){return"label"===e.name()})[0],r=t.getChildren(function(e){return"shape-arc"===e.name()})[0],o=t.getChildren(function(e){return"begin"===e.id()})[0],a=t.getChildren(function(e){return"mid"===e.id()})[0],s=t.getChildren(function(e){return"end"===e.id()})[0];switch(e.id()){case"begin":o.x(e.x()),o.y(e.y());break;case"mid":a.x(e.x()),a.y(e.y());break;case"end":s.x(e.x()),s.y(e.y())}var l=o.x()-n.x(),c=o.y()-n.y(),d=a.x()-n.x(),S=a.y()-n.y(),x=s.x()-n.x(),g=s.y()-n.y();n.points([l,c,d,S,x,g]),n.hitFunc(function(e){e.beginPath(),e.moveTo(l,c),e.lineTo(d,S),e.lineTo(x,g),e.closePath(),e.fillStrokeShape(this)});var m=new u.math.Point2D(o.x(),o.y()),h=new u.math.Point2D(a.x(),a.y()),p=new u.math.Point2D(s.x(),s.y()),f=new u.math.Line(m,h),C=new u.math.Line(h,p),y=u.math.getAngle(f,C),D=f.getInclination();y>180&&(D+=y=360-y);var v={angle:{value:y,unit:u.i18n("unit.degree")}},L=i.getText();L.quant=v,L.setText(u.utils.replaceFlags(L.textExpr,L.quant));var T={x:(f.getMidpoint().getX()+C.getMidpoint().getX())/2,y:(f.getMidpoint().getY()+C.getMidpoint().getY())/2-15};i.position(T);var I=33*Math.min(f.getLength(),C.getLength())/100;r.innerRadius(I),r.outerRadius(I),r.angle(y),r.rotation(-D);var P={x:a.x(),y:a.y()};r.position(P)};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.RectangleFactory=function(){this.getNPoints=function(){return 2},this.getTimeout=function(){return 0}},u.tool.RectangleFactory.prototype.create=function(e,t,n){var i=new u.math.Rectangle(e[0],e[1]),r=new o.Rect({x:i.getBegin().getX(),y:i.getBegin().getY(),width:i.getWidth(),height:i.getHeight(),stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape"}),a=n.quantifyRect(i),s=new o.Text({fontSize:t.getScaledFontSize(),fontFamily:t.getFontFamily(),fill:t.getLineColour(),name:"text"});s.textExpr="{surface}",s.longText="",s.quant=a,s.setText(u.utils.replaceFlags(s.textExpr,s.quant));var l=new o.Label({x:i.getBegin().getX(),y:i.getEnd().getY()+10,name:"label"});l.add(s),l.add(new o.Tag);var c=new o.Group;return c.name("rectangle-group"),c.add(r),c.add(l),c.visible(!0),c},u.tool.UpdateRect=function(e,t){var n=e.getParent(),i=n.getChildren(function(e){return"shape"===e.name()})[0],r=n.getChildren(function(e){return"label"===e.name()})[0],o=n.getChildren(function(e){return"topLeft"===e.id()})[0],a=n.getChildren(function(e){return"topRight"===e.id()})[0],s=n.getChildren(function(e){return"bottomRight"===e.id()})[0],l=n.getChildren(function(e){return"bottomLeft"===e.id()})[0];switch(e.id()){case"topLeft":o.x(e.x()),o.y(e.y()),a.y(e.y()),l.x(e.x());break;case"topRight":a.x(e.x()),a.y(e.y()),o.y(e.y()),s.x(e.x());break;case"bottomRight":s.x(e.x()),s.y(e.y()),l.y(e.y()),a.x(e.x());break;case"bottomLeft":l.x(e.x()),l.y(e.y()),s.y(e.y()),o.x(e.x());break;default:console.error("Unhandled anchor id: "+e.id())}i.position(o.position());var c=a.x()-o.x(),d=l.y()-o.y();c&&d&&i.size({width:c,height:d});var S=new u.math.Point2D(o.x(),o.y()),x=new u.math.Point2D(s.x(),s.y()),g=new u.math.Rectangle(S,x),m=t.quantifyRect(g),h=r.getText();h.quant=m,h.setText(u.utils.replaceFlags(h.textExpr,h.quant));var p={x:g.getBegin().getX(),y:g.getEnd().getY()+10};r.position(p)};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.RoiFactory=function(){this.getNPoints=function(){return 50},this.getTimeout=function(){return 100}},u.tool.RoiFactory.prototype.create=function(e,t){var n=new u.math.ROI;n.addPoints(e);for(var i=[],r=0;r<n.getLength();++r)i.push(n.getPoint(r).getX()),i.push(n.getPoint(r).getY());var a=new o.Line({points:i,stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape",closed:!0}),s=new o.Text({fontSize:t.getScaledFontSize(),fontFamily:t.getFontFamily(),fill:t.getLineColour(),name:"text"});s.textExpr="",s.longText="",s.quant=null,s.setText(u.utils.replaceFlags(s.textExpr,s.quant));var l=new o.Label({x:n.getPoint(0).getX(),y:n.getPoint(0).getY()+10,name:"label"});l.add(s),l.add(new o.Tag);var c=new o.Group;return c.name("roi-group"),c.add(a),c.add(l),c.visible(!0),c},u.tool.UpdateRoi=function(e){var t=e.getParent(),n=t.getChildren(function(e){return"shape"===e.name()})[0],i=t.getChildren(function(e){return"label"===e.name()})[0],r=t.getChildren(function(t){return t.id()===e.id()})[0];r.x(e.x()),r.y(e.y());var o=n.points();o[e.id()]=e.x()-n.x(),o[e.id()+1]=e.y()-n.y(),n.points(o);var a=i.getText();a.quant=null,a.setText(u.utils.replaceFlags(a.textExpr,a.quant));var s={x:o[0]+n.x(),y:o[1]+n.y()+10};i.position(s)};(u=u||{}).tool=u.tool||{};o=o||{};u.tool.RulerFactory=function(){this.getNPoints=function(){return 2},this.getTimeout=function(){return 0}},u.tool.RulerFactory.prototype.create=function(e,t,n){var i=new u.math.Line(e[0],e[1]),r=new o.Line({points:[i.getBegin().getX(),i.getBegin().getY(),i.getEnd().getX(),i.getEnd().getY()],stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape"}),a=u.math.getPerpendicularLine(i,e[0],10),s=new o.Line({points:[a.getBegin().getX(),a.getBegin().getY(),a.getEnd().getX(),a.getEnd().getY()],stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape-tick0"}),l=u.math.getPerpendicularLine(i,e[1],10),c=new o.Line({points:[l.getBegin().getX(),l.getBegin().getY(),l.getEnd().getX(),l.getEnd().getY()],stroke:t.getLineColour(),strokeWidth:t.getScaledStrokeWidth(),name:"shape-tick1"});r.hitFunc(function(e){e.beginPath(),e.moveTo(a.getBegin().getX(),a.getBegin().getY()),e.lineTo(a.getEnd().getX(),a.getEnd().getY()),e.lineTo(l.getEnd().getX(),l.getEnd().getY()),e.lineTo(l.getBegin().getX(),l.getBegin().getY()),e.closePath(),e.fillStrokeShape(this)});var d=n.quantifyLine(i),S=new o.Text({fontSize:t.getScaledFontSize(),fontFamily:t.getFontFamily(),fill:t.getLineColour(),name:"text"});S.textExpr="{length}",S.longText="",S.quant=d,S.setText(u.utils.replaceFlags(S.textExpr,S.quant));var x=i.getBegin().getX()>i.getEnd().getX()?0:-1,g=i.getBegin().getY()>i.getEnd().getY()?-1:.5,m=new o.Label({x:i.getEnd().getX()+25*x,y:i.getEnd().getY()+15*g,name:"label"});m.add(S),m.add(new o.Tag);var h=new o.Group;return h.name("ruler-group"),h.add(r),h.add(s),h.add(c),h.add(m),h.visible(!0),h},u.tool.UpdateRuler=function(e,t){var n=e.getParent(),i=n.getChildren(function(e){return"shape"===e.name()})[0],r=n.getChildren(function(e){return"shape-tick0"===e.name()})[0],o=n.getChildren(function(e){return"shape-tick1"===e.name()})[0],a=n.getChildren(function(e){return"label"===e.name()})[0],s=n.getChildren(function(e){return"begin"===e.id()})[0],l=n.getChildren(function(e){return"end"===e.id()})[0];switch(e.id()){case"begin":s.x(e.x()),s.y(e.y());break;case"end":l.x(e.x()),l.y(e.y())}var c=s.x()-i.x(),d=s.y()-i.y(),S=l.x()-i.x(),x=l.y()-i.y();i.points([c,d,S,x]);var g=new u.math.Point2D(s.x(),s.y()),m=new u.math.Point2D(l.x(),l.y()),h=new u.math.Line(g,m),p=new u.math.Point2D(c,d),f=new u.math.Point2D(S,x),C=u.math.getPerpendicularLine(h,p,10);r.points([C.getBegin().getX(),C.getBegin().getY(),C.getEnd().getX(),C.getEnd().getY()]);var y=u.math.getPerpendicularLine(h,f,10);o.points([y.getBegin().getX(),y.getBegin().getY(),y.getEnd().getX(),y.getEnd().getY()]),i.hitFunc(function(e){e.beginPath(),e.moveTo(C.getBegin().getX(),C.getBegin().getY()),e.lineTo(C.getEnd().getX(),C.getEnd().getY()),e.lineTo(y.getEnd().getX(),y.getEnd().getY()),e.lineTo(y.getBegin().getX(),y.getBegin().getY()),e.closePath(),e.fillStrokeShape(this)});var D=t.quantifyLine(h),v=a.getText();v.quant=D,v.setText(u.utils.replaceFlags(v.textExpr,v.quant));var L=h.getBegin().getX()>h.getEnd().getX()?0:-1,T=h.getBegin().getY()>h.getEnd().getY()?-1:.5,I={x:h.getEnd().getX()+25*L,y:h.getEnd().getY()+15*T};a.position(I)};(u=u||{}).tool=u.tool||{},u.tool.Scroll=function(e){function t(t){var n=1!==e.getImage().getGeometry().getSize().getNumberOfSlices(),i=1!==e.getImage().getNumberOfFrames();t?n?e.getViewController().incrementSliceNb():i&&e.getViewController().incrementFrameNb():n?e.getViewController().decrementSliceNb():i&&e.getViewController().decrementFrameNb()}var n=this,i=null;this.started=!1;var r=null;this.mousedown=function(t){e.getViewController().isPlaying()&&e.getViewController().stop(),n.started=!0,n.x0=t._x,n.y0=t._y},this.mousemove=function(t){if(n.started){var i=t._y-n.y0,r=Math.abs(i)>15;r&&(i>0?e.getViewController().decrementSliceNb():e.getViewController().incrementSliceNb());var o=t._x-n.x0,a=Math.abs(o)>15;a&&(o>0?e.getViewController().incrementFrameNb():e.getViewController().decrementFrameNb()),a&&(n.x0=t._x),r&&(n.y0=t._y)}},this.mouseup=function(){n.started&&(n.started=!1)},this.mouseout=function(e){n.mouseup(e)},this.touchstart=function(e){r=setTimeout(n.dblclick,500),n.mousedown(e)},this.touchmove=function(e){null!==r&&(clearTimeout(r),r=null),n.mousemove(e)},this.touchend=function(e){null!==r&&(clearTimeout(r),r=null),n.mouseup(e)},this.DOMMouseScroll=function(e){e.detail<0?t(!0):t(!1)},this.mousewheel=function(e){e.wheelDelta>0?t(!0):t(!1)},this.keydown=function(t){e.onKeydown(t)},this.dblclick=function(){e.getViewController().play()},this.setup=function(){(i=new u.gui.Scroll(e)).setup()},this.display=function(e){i&&i.display(e)},this.init=function(){return!e.isMonoSliceData()||1!==e.getImage().getNumberOfFrames()}},u.tool.Scroll.prototype.getHelp=function(){return{title:u.i18n("tool.Scroll.name"),brief:u.i18n("tool.Scroll.brief"),mouse:{mouse_drag:u.i18n("tool.Scroll.mouse_drag"),double_click:u.i18n("tool.Scroll.double_click")},touch:{touch_drag:u.i18n("tool.Scroll.touch_drag"),tap_and_hold:u.i18n("tool.Scroll.tap_and_hold")}}};(u=u||{}).tool=u.tool||{},u.tool.Toolbox=function(e,t){var n=null,i=null,r=null;this.getToolList=function(){return e},this.getSelectedTool=function(){return i},this.setup=function(){if(0!==Object.keys(e).length){(n=new u.gui.Toolbox(t)).setup(e);for(var i in e)e[i].setup()}},this.display=function(t){0!==Object.keys(e).length&&n&&n.display(t)},this.init=function(){if(0!==Object.keys(e).length){r="";var t=[],i=null;for(var o in e)(i=e[o].init())&&""===r&&(r=o),t.push(i);this.setSelectedTool(r),n&&n.initialise(t)}},this.setSelectedTool=function(t){if(!this.hasTool(t))throw new Error("Unknown tool: '"+t+"'");i&&i.display(!1),(i=e[t]).display(!0)},this.reset=function(){i&&i.display(!1),i=null,r=null}},u.tool.Toolbox.prototype.hasTool=function(e){return this.getToolList()[e]};(u=u||{}).tool=u.tool||{},u.tool.UndoStack=function(e){var t=new u.gui.Undo(e),n=[];this.getStack=function(){return n};var i=0;this.add=function(e){(n=n.slice(0,i)).push(e),++i,t.addCommandToUndoHtml(e.getName())},this.undo=function(){i>0&&(n[--i].undo(),t.enableInUndoHtml(!1))},this.redo=function(){i<n.length&&(n[i].execute(),++i,t.enableInUndoHtml(!0))},this.setup=function(){t.setup()},this.initialise=function(){t.initialise()}};(u=u||{}).tool=u.tool||{},u.tool.WindowLevel=function(e){var t=this,n=null;this.started=!1,this.mousedown=function(n){t.started=!0,t.x0=n._x,t.y0=n._y,e.getViewController().setCurrentPosition2D(n._x,n._y)},this.mousemove=function(i){if(t.started){var r=i._x-t.x0,o=t.y0-i._y,a=parseInt(e.getViewController().getWindowLevel().center,10)+o,s=parseInt(e.getViewController().getWindowLevel().width,10)+r;e.getViewController().addWindowLevelPresets({manual:{wl:new u.image.WindowLevel(a,s),name:"manual"}}),e.getViewController().setWindowLevelPreset("manual"),n&&(n.initialise(),u.gui.setSelected(e.getElement("presetSelect"),"manual")),t.x0=i._x,t.y0=i._y}},this.mouseup=function(){t.started&&(t.started=!1)},this.mouseout=function(e){t.mouseup(e)},this.touchstart=function(e){t.mousedown(e)},this.touchmove=function(e){t.mousemove(e)},this.touchend=function(e){t.mouseup(e)},this.dblclick=function(t){e.getViewController().setWindowLevel(parseInt(e.getImage().getRescaledValue(t._x,t._y,e.getViewController().getCurrentPosition().k),10),parseInt(e.getViewController().getWindowLevel().width,10))},this.keydown=function(t){e.onKeydown(t)},this.setup=function(){(n=new u.gui.WindowLevel(e)).setup()},this.display=function(t){n&&(null!==e.getImage().getPhotometricInterpretation().match(/MONOCHROME/)?n.display(t):n.display(!1))},this.init=function(){return n&&n.initialise(),!0}},u.tool.WindowLevel.prototype.getHelp=function(){return{title:u.i18n("tool.WindowLevel.name"),brief:u.i18n("tool.WindowLevel.brief"),mouse:{mouse_drag:u.i18n("tool.WindowLevel.mouse_drag"),double_click:u.i18n("tool.WindowLevel.double_click")},touch:{touch_drag:u.i18n("tool.WindowLevel.touch_drag")}}};(u=u||{}).tool=u.tool||{},u.tool.ZoomAndPan=function(e){var t=this,n=null;this.started=!1,this.mousedown=function(e){t.started=!0,t.x0=e._xs,t.y0=e._ys},this.twotouchdown=function(e){t.started=!0,t.x0=e._x,t.y0=e._y;var n=new u.math.Point2D(e._x,e._y),i=new u.math.Point2D(e._x1,e._y1);t.line0=new u.math.Line(n,i),t.midPoint=t.line0.getMidpoint()},this.mousemove=function(n){if(t.started){var i=n._xs-t.x0,r=n._ys-t.y0;e.stepTranslate(i,r),t.x0=n._xs,t.y0=n._ys}},this.twotouchmove=function(n){if(t.started){var i=new u.math.Point2D(n._x,n._y),r=new u.math.Point2D(n._x1,n._y1),o=new u.math.Line(i,r).getLength()/t.line0.getLength();if(1===o){var a=n._y-t.y0;if(Math.abs(a)<15)return;a>0?e.getViewController().incrementSliceNb():e.getViewController().decrementSliceNb()}else{var s=(o-1)/2;Math.abs(s)%.1<=.05&&e.stepZoom(s,n._xs,n._ys)}}},this.mouseup=function(){t.started&&(t.started=!1)},this.mouseout=function(e){t.mouseup(e)},this.touchstart=function(e){var n=e.targetTouches;1===n.length?t.mousedown(e):2===n.length&&t.twotouchdown(e)},this.touchmove=function(e){var n=e.targetTouches;1===n.length?t.mousemove(e):2===n.length&&t.twotouchmove(e)},this.touchend=function(e){t.mouseup(e)},this.DOMMouseScroll=function(t){var n=-t.detail/30;e.stepZoom(n,t._xs,t._ys)},this.mousewheel=function(t){var n=t.wheelDelta/1200;e.stepZoom(n,t._xs,t._ys)},this.keydown=function(t){e.onKeydown(t)},this.setup=function(){(n=new u.gui.ZoomAndPan(e)).setup()},this.display=function(e){n&&n.display(e)}},u.tool.ZoomAndPan.prototype.getHelp=function(){return{title:u.i18n("tool.ZoomAndPan.name"),brief:u.i18n("tool.ZoomAndPan.brief"),mouse:{mouse_wheel:u.i18n("tool.ZoomAndPan.mouse_wheel"),mouse_drag:u.i18n("tool.ZoomAndPan.mouse_drag")},touch:{twotouch_pinch:u.i18n("tool.ZoomAndPan.twotouch_pinch"),touch_drag:u.i18n("tool.ZoomAndPan.touch_drag")}}},u.tool.ZoomAndPan.prototype.init=function(){return!0};(u=u||{}).browser=u.browser||{};e=e||{};u.browser.hasFileApi=function(){return-1!==navigator.appVersion.indexOf("Safari")&&-1===navigator.appVersion.indexOf("Chrome")&&(-1!==navigator.appVersion.indexOf("5.0.")||-1!==navigator.appVersion.indexOf("5.1."))?(console.warn("Assuming FileAPI support for Safari5..."),!0):e.filereader},u.browser.hasXmlHttpRequest=function(){return e.xhrresponsetype&&e.xhrresponsetypearraybuffer&&e.xhrresponsetypetext&&"XMLHttpRequest"in l&&"withCredentials"in new XMLHttpRequest},u.browser.hasTypedArray=function(){return e.dataview&&e.typedarrays},u.browser.hasInputColor=function(){return e.inputtypes.color},u.browser.hasInputDirectory=function(){return e.fileinputdirectory},u.browser._hasTypedArraySlice=void 0!==Uint8Array.prototype.slice,u.browser.hasTypedArraySlice=function(){return u.browser._hasTypedArraySlice},u.browser._hasFloat64Array="Float64Array"in l,u.browser.hasFloat64Array=function(){return u.browser._hasFloat64Array},u.browser._hasClampedArray="Uint8ClampedArray"in l,u.browser.hasClampedArray=function(){return u.browser._hasClampedArray},u.browser.check=function(){var e="The application cannot be run.",t="";if(!u.browser.hasFileApi())throw t="The File APIs are not supported in this browser. ",alert(t+e),new Error(t);if(!u.browser.hasXmlHttpRequest())throw t="The XMLHttpRequest is not supported in this browser. ",alert(t+e),new Error(t);if(!u.browser.hasTypedArray())throw t="The Typed arrays are not supported in this browser. ",alert(t+e),new Error(t);u.browser.hasTypedArraySlice()||(console.warn("The TypedArray.slice method is not supported in this browser. This may impair performance. "),Uint16Array.prototype.slice=function(e,t){for(var n=t-e,i=new Uint16Array(n),r=0;r<n;r++)i[r]=this[e+r];return i},Int16Array.prototype.slice=function(e,t){for(var n=t-e,i=new Int16Array(n),r=0;r<n;r++)i[r]=this[e+r];return i},Uint8Array.prototype.slice=function(e,t){for(var n=t-e,i=new Uint8Array(n),r=0;r<n;r++)i[r]=this[e+r];return i},Int8Array.prototype.slice=function(e,t){for(var n=t-e,i=new Int8Array(n),r=0;r<n;r++)i[r]=this[e+r];return i}),u.browser.hasClampedArray()||(console.warn("The Uint8ClampedArray is not supported in this browser. This may impair performance. "),l.Uint8ClampedArray=l.Uint8Array),u.browser.hasFloat64Array()||(console.warn("The Float64Array is not supported in this browser. This may impair performance. "),l.Float64Array=l.Float32Array)};u=u||{},t=t||{},n=n||{},i=i||{};u.i18nLocalesPath=null,u.i18nInitialise=function(e,r){var o=void 0===e?"auto":e,a=void 0===r?"../..":r;u.i18nLocalesPath=a;var s={fallbackLng:"en",load:"languageOnly",backend:{loadPath:a+"/locales/{{lng}}/{{ns}}.json"}},l=t.use(n);"auto"===o?l.use(i):s.lng=o,l.init(s)},u.i18nInitialiseWithResources=function(e,n){var r=void 0===e?"auto":e,o={fallbackLng:"en",load:"languageOnly",resources:n};if("auto"===r){t.use(i).init(o)}else o.lng=r,t.init(o)},u.i18nOnInitialised=function(e){t.on("initialized",e)},u.i18nOffInitialised=function(){t.off("initialized")},u.i18nOnFailedLoad=function(e){t.on("failedLoading",e)},u.i18nOffFailedLoad=function(){t.off("failedLoading")},u.i18n=function(e,n){return t.t(e,n)},u.i18nExists=function(e,n){return t.exists(e,n)},u.i18nPage=function(){for(var e=document.getElementsByTagName("*"),t=0;t<e.length;++t)void 0!==e[t].dataset.i18n&&(e[t].innerHTML=u.i18n(e[t].dataset.i18n))},u.i18nGetLocalePath=function(e){var n=t.language.substr(0,2);return u.i18nLocalesPath+"/locales/"+n+"/"+e},u.i18nGetFallbackLocalePath=function(e){var n=t.languages[t.languages.length-1].substr(0,2);return u.i18nLocalesPath+"/locales/"+n+"/"+e};(u=u||{}).utils=u.utils||{},u.utils.ListenerHandler=function(){var e={};this.add=function(t,n){void 0===e[t]&&(e[t]=[]),e[t].push(n)},this.remove=function(t,n){if(void 0!==e[t])for(var i=0;i<e[t].length;++i)e[t][i]===n&&e[t].splice(i,1)},this.fireEvent=function(t){if(void 0!==e[t.type])for(var n=0;n<e[t.type].length;++n)e[t.type][n](t)}};(u=u||{}).utils=u.utils||{},u.utils.MultiProgressHandler=function(e){var t=this,n=[],i=2;this.setNumberOfDimensions=function(e){i=e},this.setNToLoad=function(e){for(var t=0;t<e;++t){n[t]=[];for(var r=0;r<i;++r)n[t][r]=0}},this.onprogress=function(t){if(t.lengthComputable&&void 0!==t.subindex&&void 0!==t.index){var r=100*t.loaded/t.total;n[t.index][t.subindex]=r,e({type:t.type,lengthComputable:!0,loaded:function(){for(var e=0,t=n.length,r=0;r<t;++r)for(var o=0;o<i;++o)e+=n[r][o];return Math.round(e/(t*i))}(),total:100})}},this.getMonoProgressHandler=function(e,n){return function(i){i.index=e,i.subindex=n,t.onprogress(i)}},this.getMonoOnLoadEndHandler=function(e,n){return function(){t.onprogress({type:"load-progress",lengthComputable:!0,loaded:100,total:100,index:e,subindex:n})}},this.getUndefinedMonoProgressHandler=function(e){return function(n){n.subindex=e,t.onprogress(n)}}};(u=u||{}).utils=u.utils||{},u.utils.capitaliseFirstLetter=function(e){var t=e;return e&&(t=e.charAt(0).toUpperCase()+e.slice(1)),t},u.utils.splitKeyValueString=function(e){var t={};if(e)for(var n=e.split("&"),i=0;i<n.length;++i){var r=n[i].split("=");t[r[0]]?(t[r[0]]instanceof Array||(t[r[0]]=[t[r[0]]]),t[r[0]].push(r[1])):t[r[0]]=r[1]}return t},u.utils.replaceFlags=function(e,t){var n="";if(null===e||void 0===e)return n;if(n=e,null===t||void 0===t)return n;for(var i=Object.keys(t),r=0;r<i.length;++r){var o=t[i[r]];if(null!==o&&void 0!==o&&null!==o.value&&void 0!==o.value){var a=o.value.toPrecision(4);null!==o.unit&&void 0!==o.unit&&0!==o.unit.length&&("degree"!==o.unit&&(a+=" "),a+=o.unit);var s="{"+i[r]+"}";n=n.replace(s,a)}}return n},u.utils.replaceFlags2=function(e,t){for(var n=e,i=0;i<t.length;++i)n=n.replace("{v"+i+"}",t[i]);return n},u.utils.createDefaultReplaceFormat=function(e){for(var t="",n=0;n<e.length;++n)0!==n&&(t+=", "),t+="{v"+n+"}";return t};(u=u||{}).utils=u.utils||{},u.utils.ThreadPool=function(e){var t=[],n=[],i=[];this.init=function(){for(var t=0;t<e;++t)n.push(new u.utils.WorkerThread(this))},this.addWorkerTask=function(e){if(n.length>0){var r=n.shift();r.run(e),i.push(r)}else t.push(e)},this.abort=function(){t=[];for(var e=0;e<i.length;++e)i[e].stop();i=[],this.init()},this.freeWorkerThread=function(r){if(this.onworkerend(),t.length>0){var o=t.shift();r.run(o)}else{n.push(r);for(var a=0;a<i.length;++a)i[a].getId()===r.getId()&&i.splice(a,1);n.length===e&&this.onpoolworkend()}}},u.utils.ThreadPool.prototype.onpoolworkend=function(){},u.utils.ThreadPool.prototype.onworkerend=function(){},u.utils.WorkerThread=function(e){function t(e){o.callback(e),i.stop()}var n,i=this,r=Math.random().toString(36).substring(2,15),o={};this.getId=function(){return r},this.run=function(e){null!==(o=e).script&&((n=new Worker(o.script)).addEventListener("message",t,!1),n.postMessage(o.startMessage))},this.stop=function(){n.terminate(),e.freeWorkerThread(this)}},u.utils.WorkerTask=function(e,t,n){this.script=e,this.callback=t,this.startMessage=n};return(u=u||{}).utils=u.utils||{},u.utils.base=u.utils.base||{},u.utils.splitUri=function(e){var t={},n=null;if(e&&-1!==(n=e.indexOf("?"))){t.base=e.substr(0,n);var i=e.indexOf("#");-1===i&&(i=e.length);var r=e.substr(n+1,i-1-n);t.query=u.utils.splitKeyValueString(r)}return t},u.utils.getUriQuery=function(e){var t=u.utils.splitUri(e);return 0===Object.keys(t).length?null:t.query},u.utils.base.decodeQuery=function(e,t){e.type&&"manifest"===e.type?u.utils.decodeManifestQuery(e,t):t(u.utils.decodeKeyValueUri(e.input,e.dwvReplaceMode))},u.utils.decodeKeyValueUri=function(e,t){var n=[],i="key";t&&(i=t);var r=decodeURIComponent(e),o=u.utils.splitUri(r);if(0===Object.keys(o).length)n.push(r);else{for(var a=Object.keys(o.query),s=null,l=0;l<a.length;++l)if(o.query[a[l]]instanceof Array){s=a[l];break}if(s){var c=o.query[s],d=o.base;"file"!==s&&(d+="?");for(var S=!1,x=0;x<a.length;++x)a[x]!==s&&(S&&(d+="&"),d+=a[x]+"="+o.query[a[x]],S=!0);for(var g,m=0;m<c.length;++m)g=d,S&&(g+="&"),"key"===i&&(g+=s+"="),g+=c[m],n.push(g)}else n.push(r)}return n},u.utils.decodeManifestQuery=function(e,t){var n="";"/"===e.input[0]&&(n=l.location.protocol+"//"+l.location.host),n+=e.input;var i=new XMLHttpRequest;i.open("GET",decodeURIComponent(n),!0),i.responseType="document",i.onload=function(){t(u.utils.decodeManifest(this.responseXML,e.nslices))},i.onerror=function(){console.warn("RequestError while receiving manifest: "+this.status)},i.send(null)},u.utils.decodeManifest=function(e,t){var n=[],i=e.getElementsByTagName("wado_query")[0].getAttribute("wadoURL")+"?requestType=WADO&contentType=application/dicom&",r=e.getElementsByTagName("Patient");r.length>1&&console.warn("More than one patient, loading first one.");var o=r[0].getElementsByTagName("Study");o.length>1&&console.warn("More than one study, loading first one.");var a=o[0].getAttribute("StudyInstanceUID"),s=o[0].getElementsByTagName("Series");s.length>1&&console.warn("More than one series, loading first one.");var l=s[0].getAttribute("SeriesInstanceUID"),u=s[0].getElementsByTagName("Instance"),c=u.length;t<c&&(c=t);for(var d=0;d<c;++d){var S=i+"&studyUID="+a+"&seriesUID="+l+"&objectUID="+u[d].getAttribute("SOPInstanceUID");n.push(S)}return n},u}); |