@fnndsc/argus 0.15.0 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{Settings-DScSRN4w.js → Settings-CpJHgU8P.js} +1 -1
- package/dist/assets/{Texture-C5SfDh5g.js → Texture-BFywN4BL.js} +1 -1
- package/dist/assets/{addVolumesToViewports-BVAFib39.js → addVolumesToViewports-CKWYzwhw.js} +1 -1
- package/dist/assets/cornerstoneEngine-DgoPMn1N.js +2 -0
- package/dist/assets/index-Bm3uV1GS.js +4231 -0
- package/dist/assets/index-CIblWv2u.css +1 -0
- package/dist/assets/{index-D9ut-XoL.js → index-CWklH47t.js} +1 -1
- package/dist/assets/{index-g0L5iAkX.js → index-Cdc7wwHW.js} +1 -1
- package/dist/assets/{index-Cp_HszKm.js → index-CokKuJob.js} +1 -1
- package/dist/assets/{index-uGrOO66a.js → index-DSjYEFdg.js} +1 -1
- package/dist/assets/{index-Cu42vM8O.js → index-DfeCnMQa.js} +1 -1
- package/dist/assets/{index-D1rU7b6p.js → index-TqVFBkTw.js} +1 -1
- package/dist/assets/layoutWorker-DqMRqv-I.js +1 -0
- package/dist/assets/niivueEngine-DSlA46Rh.js +2 -0
- package/dist/assets/{slabScene-DlAXLC-K.js → slabScene-D4-P_5n2.js} +1 -1
- package/dist/index.html +3 -2
- package/package.json +1 -1
- package/dist/assets/cornerstoneEngine-CZtg0zW5.js +0 -2
- package/dist/assets/index-CockqLgs.css +0 -1
- package/dist/assets/index-ZX_UE_97.js +0 -4189
- package/dist/assets/niivueEngine-BvSlE0Vd.js +0 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Antonio;src:url(./antonio-latin-400-normal-CZjzwNAN.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Antonio;src:url(./antonio-latin-700-normal-DSH-lEDG.woff2) format("woff2");font-weight:700;font-display:swap}html{font-size:22px;color:#fff}:root{--lfw: 168px;--bar-height: 28px;--left-frame-padding: .75rem;--elbow-radius: 100px;--elbow-inner: 60px;--elbow-inner-radius: 44px;--bar-spur: 8px;--bar-spur-lift: 22px;--bar-bite-radius: 8px;--panel-border: 8px solid #000}body{display:flex;flex-direction:row;margin:0;padding:10px 0 0 5px;background-color:#000;color:var(--daybreak);font-family:Antonio,Arial Narrow,Avenir Next Condensed,sans-serif;line-height:1.5}.wrap-all{display:flex;flex-direction:column;flex:1 1 auto;min-width:auto;min-height:auto;width:100%}.wrap{display:flex;flex:1 1 auto;width:100%;padding:0 15px 0 5px;overflow:hidden}#gap.wrap{margin-top:var(--left-frame-padding)}main{display:block;flex:1 1 auto;padding:60px 0 11px 50px}.left-frame{display:flex;flex-direction:column;justify-content:space-between;position:relative;flex:none;width:var(--lfw);background-color:var(--orange);color:#000;text-align:right;font-weight:700;line-height:1.2}.left-frame-top{display:flex;flex-direction:column;flex:none;width:var(--lfw);border-bottom-left-radius:var(--elbow-radius);background-color:var(--october-sunset);color:#000;text-align:right;font-weight:700;line-height:1.2}button[class^=panel-]{display:flex;justify-content:flex-end;width:var(--lfw);padding:var(--left-frame-padding);border:none;border-bottom:8px solid #000;color:#000;text-align:right;font-family:inherit;font-weight:700;font-size:inherit;line-height:1.2;cursor:pointer}button.panel-1{min-height:160px;flex-direction:column;justify-content:space-between;align-items:flex-end;overflow:hidden}button.panel-2{position:relative;flex:1 1 auto;border-bottom:0;border-bottom-left-radius:var(--elbow-radius)}button.panel-3{align-items:flex-end;border-top-left-radius:var(--elbow-radius)}button.panel-7{border-top:8px solid #000;border-bottom:0}button.panel-console,button.panel-lang{border-bottom:8px solid #000}.banner{min-width:0;min-height:0;padding-left:5px;padding-bottom:4.4px;color:var(--honey);text-align:right;text-transform:uppercase;line-height:1.1}.panel-1,.panel-4,.panel-spacer{background-color:var(--orange)}.panel-2,.panel-3,.panel-6{background-color:var(--october-sunset)}.panel-5,.panel-7,.panel-gather{background-color:var(--harvestgold)}.panel-spacer{width:var(--lfw);background-color:var(--orange);color:#000;text-align:right;font-weight:700;line-height:1.2}.hop{font-family:inherit;font-size:inherit;font-weight:700;line-height:1.2;text-align:right}h1{margin:0;font-size:4rem;font-weight:400;letter-spacing:.2em;line-height:1.2;text-align:right;text-transform:uppercase}.right-frame{position:relative;display:flex;flex-direction:column;flex:1 1 auto}.right-frame-top{position:relative;display:block;width:100%}.bar-panel{display:flex;width:100%}.data-cascade-button-group{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;min-width:0;min-height:0;padding-bottom:var(--left-frame-padding)}.first-bar-panel{position:relative;margin-top:2.5vh}.bar-1,.bar-2,.bar-3,.bar-4,.bar-5,.bar-6,.bar-7,.bar-8,.bar-9,.bar-10{height:var(--bar-height)}.bar-1,.bar-6{width:10%;background-color:var(--october-sunset);border-right:8px solid #000}.bar-2,.bar-7{width:12%;background-color:var(--orange);border-right:8px solid #000}.bar-3,.bar-8{width:17%;background-color:var(--honey);border-right:8px solid #000}.bar-5,.bar-10{width:5%;background-color:var(--october-sunset);border-left:8px solid #000}.bar-4,.bar-9{position:relative;width:56.0022%;background-color:var(--harvestgold);z-index:-1}.bar-4:before,.bar-9:before,.bar-4:after,.bar-9:after{content:"";position:absolute}.bar-4:before,.bar-9:before{right:60%;width:40%;height:var(--bar-spur);background-color:var(--october-sunset)}.bar-4:before{top:calc(-1 * var(--bar-spur-lift))}.bar-9:before{bottom:calc(-1 * var(--bar-spur-lift))}.bar-4:after,.bar-9:after{right:68%;width:32%;height:48%;background-color:#000;z-index:-1}.bar-4:after{top:52%;border-top-right-radius:var(--bar-bite-radius)}.bar-9:after{bottom:52%;border-bottom-right-radius:var(--bar-bite-radius)}.headtrim,.baseboard{position:fixed;left:0;right:0;height:10px;background-color:#000;z-index:999}.headtrim{top:0}.baseboard{bottom:0}*{box-sizing:border-box}button{margin:0;padding:0;font-family:inherit;font-size:inherit;font-weight:700;line-height:1.5;color:inherit}input,select,textarea{margin:0;padding:0;font-family:inherit;font-size:inherit;line-height:1.5;color:inherit}.argus-input-line input{font-weight:400}a{color:var(--honey);text-decoration:none;text-transform:uppercase;line-height:1.3}.banner a{line-height:1.1}.about-footer a{color:var(--october-sunset);text-transform:none}p{margin:0}label{line-height:1.5}:root{--face-label: "Antonio", sans-serif;--face-data: inherit;--lfw: 168px;--state-done: var(--daybreak);--state-running: var(--orange);--state-error: color-mix(in srgb, #f2402a 80%, var(--october-sunset));--mars: #f2402a}@font-face{font-family:MesloLGS NF;src:url(./MesloLGS-NF-Regular-DAUcZJjt.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:MesloLGS NF;src:url(./MesloLGS-NF-Bold-DbxbaV6p.ttf) format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Chakra Petch;src:url(./chakra-petch-latin-400-normal-SafcrIr2.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Chakra Petch;src:url(./chakra-petch-latin-500-normal-BR1ody1F.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Chakra Petch;src:url(./chakra-petch-latin-600-normal-DVQm9bgb.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Chakra Petch;src:url(./chakra-petch-latin-700-normal-CnDBPjkL.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2");font-weight:500;font-display:swap}#status-strip{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin-bottom:.8rem;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}#status-strip .readout{color:var(--honey)}#status-strip .readout:empty{display:none}#status-strip .lamp-online{color:#000}#status-strip .mismatch{color:#ff5f5f;font-weight:700}.lamp-online{background:#6f6;color:#000;padding:0 .5rem;border-radius:.6rem}.lamp-host{background:#ffaf00;color:#000;padding:0 .5rem;border-radius:.6rem}#status-strip .lamp-host{color:#000}.lamp-offline{background:var(--state-error);color:var(--butter);padding:0 .5rem;border-radius:.6rem}.wrap:not(#gap),.left-frame{transition:translate .5s cubic-bezier(.22,1,.36,1),margin .5s cubic-bezier(.22,1,.36,1)}body[data-zoom]{height:100dvh;overflow:hidden}body[data-zoom] .wrap:not(#gap){translate:0 calc(-1 * var(--zoom-header-height, 100vh));margin-bottom:calc(-1 * var(--zoom-header-height, 0px))}body[data-zoom] .left-frame,body[data-gutter=away] .left-frame{translate:calc(-100% - 20px) 0;margin-right:calc(-1 * var(--lfw))}#gutter-restore{display:none}body[data-gutter=away] #gutter-restore{display:block;position:fixed;left:0;top:20%;bottom:20%;width:12px;z-index:1000;border-radius:0 6px 6px 0;background-color:var(--october-sunset);cursor:pointer;animation:beckon 3.5s ease-in-out infinite}#gutter-restore:hover{animation:none;background-color:var(--harvestgold);box-shadow:0 0 8px color-mix(in srgb,var(--harvestgold) 60%,transparent)}#drawer{transition:height .5s cubic-bezier(.22,1,.36,1)}#drawer.drawer-dragging{transition:none}body[data-zoom=console] #drawer{height:auto!important;flex:1 1 auto;min-height:0}body[data-zoom=console] main{display:none}body[data-zoom]:not([data-zoom=console]) #drawer{height:0!important}body[data-zoom] .pane-zoomed .files-panel{max-height:calc(100dvh - 7rem)}.lcars-bar-zoom{width:40px;height:28px;background-color:var(--butter);margin-left:.5rem;cursor:pointer}.lcars-bar-zoom:hover{filter:brightness(1.18)}body[data-zoom=console] #drawer .lcars-bar-zoom{background-color:var(--october-sunset)}.files-header-bar{margin:.2rem 0 .5rem}.pane-zoomed .files-header-bar .lcars-bar-zoom{background-color:var(--october-sunset)}.lcars-bar-split{width:28px;height:28px;margin-left:.5rem;cursor:pointer;background:linear-gradient(to right,var(--pumpkin-pie) 45%,transparent 45%,transparent 55%,var(--pumpkin-pie) 55%)}.lcars-bar-split.lcars-split-row{background:linear-gradient(to bottom,var(--pumpkin-pie) 45%,transparent 45%,transparent 55%,var(--pumpkin-pie) 55%)}.lcars-bar-split:hover{filter:brightness(1.4);box-shadow:0 0 10px var(--pumpkin-pie)}.pane-handle{cursor:pointer}.pane-handle:hover .lcars-bar-end{filter:brightness(1.25)}.pane-drawer{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.35rem .6rem;margin:-.3rem 0 .5rem;background-color:#00000059;border-left:6px solid var(--pumpkin-pie);border-radius:0 12px 12px 0}.pane-drawer[hidden]{display:none}.pane-drawer button:focus{outline:2px solid var(--butter);outline-offset:2px;box-shadow:0 0 8px var(--butter)}.pane-drawer .drawer-children{display:inline-flex;gap:.4rem}.drawer-group{display:inline-flex;align-items:center;gap:.4rem}.drawer-group+.drawer-group{margin-left:.7rem;padding-left:.7rem;border-left:2px solid color-mix(in srgb,var(--harvestgold) 35%,transparent)}.drawer-group:empty{display:none}.drawer-label{color:var(--harvestgold);font-family:var(--face-label);font-size:.7rem;letter-spacing:.14em;margin-right:.1rem}.drawer-structure .pacs-capsule{background-color:var(--harvestgold);color:#000}.drawer-binding .drawer-bind,.drawer-binding .drawer-cwdbind{background-color:#ffeecc38;color:var(--butter)}.drawer-binding .drawer-label-cwd{margin-left:.5rem}.drawer-binding .drawer-bind.drawer-bind-selected,.drawer-binding .drawer-cwdbind.drawer-bind-selected{background-color:var(--butter);color:#000;box-shadow:0 0 8px #fec9}.drawer-children .drawer-child{background-color:var(--orange);color:#000}.drawer-children .drawer-child.drawer-destructive{background-color:#d22;color:var(--butter)}.pane-zoomed .pane-drawer .drawer-zoom{background-color:var(--butter)}.pane-view .view-body{flex:1 1 0;min-height:0;overflow:auto}#pacs-workspace{--roster-gap: .8rem;--roster-pad: 6px;display:flex;flex-direction:column;height:100%;overflow:auto;scrollbar-gutter:stable;min-width:0;min-height:0}.workspace-pane{display:none}.layout-leaf>.workspace-pane{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:hidden}.roster-order{position:sticky;top:0;z-index:2;background:#000}.files-panel>.roster-order{position:static;z-index:auto;flex:none}.files-body{--roster-gap: 0px;--roster-pad: 0px}.dag-roster{--roster-gap: .8rem;--roster-pad: 6px}.roster-caps{display:grid;grid-template-columns:var(--roster-cols);column-gap:var(--roster-gap);padding:0 calc(var(--roster-pad) + var(--elbow-clear, 0px)) 0 var(--roster-pad);margin:.2rem 0 .45rem;font-size:.8rem}.roster-cap{min-width:0;height:24px;margin-right:calc(3px - var(--roster-gap));border:none;border-radius:0;background-color:var(--harvestgold);color:#000;font-family:var(--face-label);font-size:.66rem;letter-spacing:.12em;text-align:left;padding:0 .15rem;cursor:pointer}.pane-dag .roster-cap[data-key=id],.files-body .roster-cap[data-key=size],.files-body .roster-cap[data-key=owner],.files-body .roster-cap[data-key=date]{text-align:right}.roster-cap:first-of-type{border-radius:9px 0 0 9px;padding-left:.7rem}.roster-cap:last-of-type{border-radius:0 9px 9px 0;padding-right:.7rem;margin-right:0}.roster-cap:nth-of-type(3n+2),.mode-frame .strategy-pill:nth-of-type(3n+2){background-color:var(--daybreak)}.roster-cap:nth-of-type(3n+3),.mode-frame .strategy-pill:nth-of-type(3n+3){background-color:var(--orange)}.roster-cap.roster-active{background-color:var(--butter)}.roster-filter[hidden]{display:none}.roster-filter{display:flex;align-items:stretch;height:26px;margin:0 0 .4rem;background:#000}.roster-filter-glyph{display:flex;align-items:center;padding:0 .8rem 0 1rem;background:var(--harvestgold);color:#000;font-family:var(--face-label);font-size:.7rem;letter-spacing:.12em;border-radius:13px 0 0 13px}.roster-filter-input{flex:1;background:transparent;border:none;border-bottom:2px solid var(--pumpkin-pie);outline:none;padding:0 .7rem;color:var(--butter);font-family:Share Tech Mono,monospace;font-size:.74rem}.pane-mode{margin-left:auto;font-family:Share Tech Mono,monospace;font-size:.6rem;letter-spacing:.06em;text-transform:none;opacity:.85}.pane-mode:empty{display:none}.pane-legend .legend-swatch{display:inline-block;width:.55rem;height:.55rem;margin:0 .25rem 0 0;border-radius:2px;vertical-align:-1px}.pane-state{margin-left:1rem;font-family:Share Tech Mono,monospace;font-size:.6rem;letter-spacing:.06em;text-transform:none;opacity:.85}.pane-state.state-live{color:var(--harvestgold);opacity:1}.pane-state.state-settled{opacity:.7}.pane-state.state-stale{color:color-mix(in srgb,var(--orange) 40%,#000);opacity:1;text-decoration:underline dotted}.pane-state.state-wait{color:var(--butter);opacity:1}.left-frame-top .panel-1{flex-direction:column;align-items:flex-end;justify-content:space-between}.brand-mark{width:4.2rem;aspect-ratio:111 / 78;background-color:#000;mask:url(./ChRISlogo-color-t-i99soF.svg) no-repeat center / contain;-webkit-mask:url(./ChRISlogo-color-t-i99soF.svg) no-repeat center / contain}.left-frame>div:first-child{position:relative;flex:1 1 0;min-height:0;display:flex;flex-direction:column}.left-frame>div:first-child:before{content:"";position:absolute;top:0;left:0;width:var(--elbow-radius);height:var(--elbow-radius);background-color:#000}.right-frame-top:before,.right-frame-top:after,.right-frame:before,.right-frame:after{content:"";position:absolute;left:0;z-index:-1;width:var(--elbow-inner);height:var(--elbow-inner)}.right-frame-top:before,.right-frame-top:after{bottom:var(--bar-height)}.right-frame:before,.right-frame:after{top:var(--bar-height)}.right-frame-top:before{background-image:linear-gradient(to right top,var(--october-sunset) 50%,#000 50%)}.right-frame-top:after{background-color:#000;border-bottom-left-radius:var(--elbow-inner-radius)}.right-frame:before{background-image:linear-gradient(to right bottom,var(--october-sunset) 50%,#000 50%)}.right-frame:after{background-color:#000;border-top-left-radius:var(--elbow-inner-radius)}body[data-zoom] .right-frame:before,body[data-zoom] .right-frame:after,body[data-zoom] .right-frame-top:before,body[data-zoom] .right-frame-top:after,body[data-gutter=away] .right-frame:before,body[data-gutter=away] .right-frame:after,body[data-gutter=away] .right-frame-top:before,body[data-gutter=away] .right-frame-top:after{display:none}.left-frame button[class^=panel-],.left-frame .panel-spacer{position:relative}.left-frame .panel-3{height:auto;max-height:none;flex:3 1 0;min-height:3.5rem}.left-frame .panel-4{height:auto;min-height:3rem;flex:2 1 0}.left-frame .panel-5{height:auto;flex:4 1 0;min-height:3rem}.left-frame .panel-6{height:auto;flex:2 1 0;min-height:3rem}.left-frame .panel-spacer{height:auto;flex:1 1 0;min-height:.8rem}.left-frame .panel-7{height:clamp(3.5rem,12vh,30vh)}html,body{height:100dvh}body{overflow:hidden}.wrap-all{height:100%;display:flex;flex-direction:column}.wrap-all>.wrap{width:100%}.wrap:not(#gap){flex:none}#gap{flex:1;min-height:0}.right-frame{display:flex;flex-direction:column;min-height:0}.bar-panel{flex:none}main{flex:1;min-height:0;display:flex;flex-direction:column}#status-strip{flex:none}#layout-root{flex:1;min-height:0}#layout-root>.layout-split,#layout-root>.layout-leaf{height:100%}.layout-split{min-height:0}.layout-leaf{display:flex;min-height:0}#pacs-form{display:grid;grid-template-columns:var(--roster-cols);align-items:end;column-gap:var(--roster-gap);padding:0 calc(var(--roster-pad) + var(--elbow-clear, 0px)) 0 var(--roster-pad);margin:.3rem 0 .5rem;font-size:.8rem}#pacs-form label{display:flex;flex-direction:column;gap:.15rem;min-width:0;color:var(--honey);font-family:var(--face-label);font-size:.66rem;letter-spacing:.12em}#pacs-form .pacs-form-gutter,#pacs-form .pacs-form-blank{min-width:0}#pacs-form #pacs-run{min-width:0;justify-self:stretch}#pacs-form input{min-width:0;width:100%}#pacs-form input{background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--butter);font-family:Share Tech Mono,monospace;font-size:.8rem;padding:.15rem .5rem;outline:none}#pacs-form input:focus,#pacs-command:focus{border-color:var(--harvestgold);box-shadow:0 0 6px #fa46}#pacs-commandline{display:flex;gap:.6rem;margin-bottom:.6rem}#pacs-command{flex:1;background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.85rem;padding:.2rem .6rem;outline:none}.pacs-capsule{border:none;border-radius:.8rem;padding:.1rem .9rem;background-color:var(--harvestgold);color:#000;font-family:var(--face-label);font-weight:700;font-size:.7rem;letter-spacing:.1em;cursor:pointer}.pacs-capsule-off{background-color:color-mix(in srgb,var(--harvestgold) 28%,transparent);color:var(--honey)}.pacs-capsule:hover{filter:brightness(1.3);box-shadow:0 0 8px var(--harvestgold)}.pacs-capsule:active{background-color:color-mix(in srgb,var(--harvestgold) 45%,#000);color:var(--butter);filter:none;box-shadow:none}.pacs-capsule:disabled{opacity:.35;cursor:default}.pacs-provenance{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:right;padding-right:.6rem;color:var(--honey);font-family:var(--face-label);font-size:.66rem;letter-spacing:.12em}.pacs-capsule.pacs-capsule-requery{background-color:var(--october-sunset);color:#000}.pacs-capsule.pacs-capsule-requery:hover{box-shadow:0 0 8px var(--october-sunset)}.pacs-listing{position:relative;display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding-right:var(--spine-w);margin-bottom:.6rem}#pacs-results{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;padding-top:calc(var(--rule-h) + .3rem)}#pacs-results>.roster-order{position:static;z-index:auto;flex:none}#pacs-results>.listing-field{flex:1 1 auto;padding-right:.5rem}.pacs-study{margin-bottom:.7rem}.pacs-study-row{padding-block:3px;color:var(--orange);border-bottom:2px solid var(--orange);cursor:pointer}.pacs-study-row:hover{background:color-mix(in srgb,var(--harvestgold) 12%,transparent)}.pacs-study-row>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pacs-study-patient,.pacs-study-desc{color:var(--butter)}.pacs-study-mrn,.pacs-study-accession{color:var(--harvestgold)}.pacs-study-date,.pacs-study-modalities,.pacs-study-server,.pacs-study-count{color:var(--pumpkin-pie)}#pacs-results .listing-level[data-depth="2"]{font-size:.8rem;padding-left:1.4em}#pacs-results .listing-level[data-depth="2"] .roster-caps{margin:.35rem 0 .3rem}.pacs-series{padding-block:2px}.pacs-series:hover{background:color-mix(in srgb,var(--harvestgold) 12%,transparent)}.pacs-series-desc{color:var(--butter);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pacs-series-modality{color:var(--harvestgold)}.pacs-series-files{color:var(--pumpkin-pie);text-align:right}#pacs-results .roster-cap[data-key=files]{text-align:right}.pacs-badge{display:grid;grid-template-columns:1fr 9.5em;align-items:center;gap:.4rem;min-width:0;font-size:.7rem;color:var(--honey)}.pacs-badge:not(:has(>.listing-progress,>.pacs-bar-full,>.pacs-bar)){grid-template-columns:1fr}.pacs-badge .listing-progress,.pacs-badge .pacs-bar{min-width:0}.pacs-badge-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pacs-badge[data-state=running]{color:var(--state-running)}.pacs-badge[data-state=done]{color:var(--state-done)}.pacs-badge[data-state=error]{color:var(--state-error)}.pacs-badge[data-state=unconfirmed]{color:var(--honey)}.pane-gather{display:flex;flex-direction:column;min-height:0}.gather-listing{--roster-gap: .8rem;--roster-pad: 6px;position:relative;display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding-right:var(--spine-w)}.gather-rows{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow-y:auto}.gather-cohort-name{color:var(--harvestgold);font-weight:700}.gather-series-desc{color:var(--butter)}.gather-series-state{color:var(--honey);text-transform:uppercase;font-size:.75rem}#layout-root{width:100%}#layout-root.layout-arrive{animation:layout-arrive .45s cubic-bezier(.22,1,.36,1)}@keyframes layout-arrive{0%{transform:translate(60px);opacity:0}to{transform:translate(0);opacity:1}}.layout-split{display:flex;width:100%;min-width:0}.layout-col{flex-direction:row}.layout-row{flex-direction:column}.layout-leaf{min-width:0;overflow:hidden;border-radius:4px}.layout-leaf.pane-focused{position:relative}.layout-leaf.pane-focused:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:20;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--harvestgold) 45%,transparent)}.layout-divider{flex:none;background:var(--pumpkin-pie);opacity:.35;border-radius:3px}.layout-col>.layout-divider{width:6px;margin:0 4px;cursor:col-resize}.layout-row>.layout-divider{height:6px;margin:4px 0;cursor:row-resize}.layout-divider:hover{opacity:1;background:var(--harvestgold);box-shadow:0 0 8px color-mix(in srgb,var(--harvestgold) 60%,transparent)}.dag-canvas{flex:1 1 0;min-height:0;overflow:hidden;position:relative}.node-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;background:#000000eb;border-left:6px solid var(--harvestgold);opacity:0;transition:opacity .3s ease;overflow:hidden}.node-overlay-open{opacity:1}.node-overlay-header{display:flex;justify-content:space-between;gap:.6rem;padding:.3rem .6rem;color:var(--harvestgold);font-size:.72rem;letter-spacing:.08em;border-bottom:1px solid var(--pumpkin-pie);white-space:nowrap;overflow:hidden}.node-overlay-hint{color:var(--butter);opacity:.7}.node-overlay-body{flex:1;min-height:0;padding:.4rem 0 0 .6rem}.dag-node-tip{position:absolute;z-index:5;pointer-events:none;padding:.15rem .55rem;background:#000000d9;border:1px solid var(--pumpkin-pie);border-radius:.6rem .2rem;color:var(--butter);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.dag-canvas canvas,.universe-canvas canvas{display:block;width:100%!important;height:100%!important}.wait-progress{position:absolute;left:1rem;bottom:1rem;z-index:6;pointer-events:none;display:flex;flex-direction:column;gap:.35rem;min-width:18rem;max-width:calc(100% - 2rem);padding:.45rem .8rem .55rem;background:#000c;border:1px solid var(--pumpkin-pie);border-radius:.8rem .25rem}.wait-progress[hidden]{display:none}.wait-progress-label{color:var(--butter);font-family:var(--face-label);font-size:.8rem;letter-spacing:.08em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wait-progress-track{position:relative;display:block;height:.4rem;border-radius:.2rem;background:#ffffff1f;overflow:hidden}.wait-progress-fill{position:absolute;inset:0 auto 0 0;width:0;background:var(--pumpkin-pie);border-radius:.2rem;transition:width .15s linear}.wait-progress-indeterminate .wait-progress-fill{width:30%;animation:wait-progress-run 1.2s ease-in-out infinite}@keyframes wait-progress-run{0%{left:-30%}to{left:100%}}.universe-canvas{flex:1 1 0;min-height:0;overflow:hidden;position:relative}body[data-zoom]:not([data-zoom=console]) .layout-leaf:not(.pane-zoomed),body[data-zoom]:not([data-zoom=console]) .layout-divider{display:none}body[data-zoom]:not([data-zoom=console]) .pane-zoomed-path,body[data-zoom]:not([data-zoom=console]) .pane-zoomed{flex:1 1 100%!important;width:100%!important;height:100%!important}body[data-zoom]:not([data-zoom=console]) .pane-zoomed-path>:not(.pane-zoomed,.pane-zoomed-path,.layout-divider){display:none}.dag-facts{position:absolute;left:.6rem;bottom:.5rem;z-index:3;max-width:46%;padding:.25rem .6rem;font-size:.75rem;background:#000000b8;border-left:4px solid var(--harvestgold);border-radius:0 10px 10px 0}.dag-facts:empty{display:none}.dag-subway{display:flex;align-items:flex-start;margin-top:.5rem;padding-bottom:.1rem}.subway-step{display:flex;flex-direction:column;align-items:center;gap:.2rem;flex:none;margin-top:0}.subway-stop{width:10px;height:10px;border-radius:50%;border:1px solid var(--pumpkin-pie);background:transparent;flex:none}.subway-label{font-family:var(--face-label);font-size:.5rem;letter-spacing:.06em;line-height:1;color:var(--pumpkin-pie);white-space:nowrap}.subway-step-here .subway-label{color:var(--orange);font-weight:700}.subway-step:has(.subway-passed) .subway-label,.subway-step:has(.subway-done) .subway-label{color:var(--harvestgold)}.subway-step:has(.subway-failed) .subway-label{color:var(--state-error)}.subway-step-here .subway-stop{width:13px;height:13px;margin-top:-1.5px}.subway-stop.subway-passed{background:var(--harvestgold);border-color:var(--harvestgold)}.subway-stop.subway-here{background:var(--orange);border-color:var(--orange);box-shadow:0 0 7px var(--orange)}.subway-stop.subway-terminal.subway-done{background:var(--butter);border-color:var(--butter)}.subway-stop.subway-terminal.subway-failed{background:var(--state-error);border-color:var(--state-error);box-shadow:0 0 7px var(--state-error)}.subway-link{height:2px;flex:1 1 8px;min-width:10px;margin-top:4px;background:#cc550073}.subway-link.subway-passed{background:var(--harvestgold)}.dag-roster{display:none;position:relative;flex:1 1 0;min-height:0;padding-right:var(--spine-w)}.dag-roster.roster-shown{display:flex;flex-direction:column}.dag-feedlist{display:none;flex:1 1 0;min-height:0;flex-direction:column;overflow:hidden;font-size:.8rem}.dag-feedlist>.roster-order{position:static;z-index:auto;flex:none}.dag-feedlist .roster-order{margin-bottom:calc(var(--rule-h) + .3rem)}.feedlist-loading{padding:.5rem .6rem;color:var(--harvestgold);letter-spacing:.12em;animation:roster-breathe 1.2s ease-in-out infinite}.feedlist-refusal{padding:.5rem .9rem .15rem;color:var(--honey);font-family:var(--face-label);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.feedlist-warming{padding:.15rem .9rem .5rem;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.7rem}@keyframes roster-breathe{0%,to{opacity:.35}50%{opacity:1}}.feedlist-row:hover{background:color-mix(in srgb,var(--harvestgold) 18%,transparent)}.feedlist-row.feedlist-arrived .feedlist-id,.feedlist-row.feedlist-arrived .feedlist-title{animation:roster-breathe 1.6s ease-in-out infinite}.feedlist-id{color:var(--daybreak);text-align:right}.feedlist-title{color:var(--butter);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.feedlist-status{color:var(--honey);font-size:.7rem}.feedlist-finishedWithError .feedlist-status,.feedlist-cancelled .feedlist-status{color:var(--state-error)}.feedlist-started .feedlist-status,.feedlist-running .feedlist-status{color:var(--orange)}.feedlist-owner,.feedlist-created{color:var(--daybreak);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}*{scrollbar-width:thin;scrollbar-color:var(--harvestgold) #000}*::-webkit-scrollbar{width:7px;height:7px}*::-webkit-scrollbar-track{background:#000}*::-webkit-scrollbar-thumb{background:var(--harvestgold);border-radius:4px}*::-webkit-scrollbar-button{display:none;height:0}.files-body,.image-body,.tags-body,.dag-canvas,.universe-canvas,.dag-roster,.gather-listing,.header-gather-field,.files-table-field,.pacs-listing{--frame-top: var(--mode-frame-top, 0px);--spine-w: 21px;--rule-h: 6px;--bar-w: 7.2rem;--elbow-h: 30px;--elbow-clear: 36px}.workspace-pane[data-modes=open] .files-body,.workspace-pane[data-modes=open] .image-body,.workspace-pane[data-modes=open] .tags-body,.workspace-pane[data-modes=open] .dag-canvas,.workspace-pane[data-modes=open] .universe-canvas,.workspace-pane[data-modes=open] .dag-roster,.workspace-pane[data-modes=open] .gather-listing,.workspace-pane[data-modes=open] .files-table-field,.workspace-pane[data-modes=open] .pacs-listing,.header-gather-field[data-modes=open]{--spine-w: var(--bar-w)}.header-gather-field[data-modes=open] .mode-frame{visibility:visible;opacity:1;transition:opacity .12s ease-out .16s,visibility 0s linear .16s}.field-rule{position:absolute;top:var(--frame-top);left:0;right:var(--spine-w);height:var(--rule-h);background-color:var(--harvestgold);transition:right .22s ease-out;z-index:4;pointer-events:none}.mode-strip{color:#000;position:absolute;top:var(--frame-top);right:0;bottom:0;width:var(--spine-w);margin:0;padding:0;border:none;border-radius:0 22px 4px 4px;background-color:var(--harvestgold);cursor:pointer;transition:width .22s ease-out;z-index:4}.mode-strip:hover{filter:brightness(1.18)}.mode-elbow{position:absolute;top:var(--frame-top);right:0;width:calc(var(--spine-w) + var(--elbow-clear));height:var(--elbow-h);background-color:var(--harvestgold);border-top-right-radius:22px;transition:width .22s ease-out;z-index:5;pointer-events:none}.mode-elbow:after{content:"";position:absolute;left:0;bottom:0;width:var(--elbow-clear);height:calc(var(--elbow-h) - var(--rule-h));background-color:#000;border-top-right-radius:12px}.mode-frame{position:absolute;top:calc(var(--frame-top) + var(--elbow-h) + 3px);right:0;bottom:0;width:var(--spine-w);display:flex;flex-direction:column;gap:3px;background-color:#000;visibility:hidden;opacity:0;transition:opacity .12s ease-out,visibility 0s linear .12s;z-index:5;overflow-y:auto;scrollbar-width:thin}.workspace-pane[data-modes=open] .mode-frame{visibility:visible;opacity:1;transition:opacity .12s ease-out .16s,visibility 0s linear .16s}.mode-frame .strategy-pill{flex:none;width:100%;min-width:0;height:1.6rem;line-height:1.6rem;margin:0;padding:0 .6rem 0 .4rem;border:none;border-radius:0;background-color:var(--harvestgold);color:#000;text-align:right}.mode-frame .strategy-pill:hover{filter:brightness(1.18)}.mode-fill{flex:1 1 0;min-height:1rem;background-color:var(--daybreak);border-radius:0 0 4px 4px;cursor:pointer}.mode-fill:hover{filter:brightness(1.18)}.mode-frame .strategy-pill.rail-off{background-color:color-mix(in srgb,var(--harvestgold) 30%,transparent);color:var(--honey)}.mode-frame .strategy-pill.rail-na{background-color:color-mix(in srgb,var(--harvestgold) 30%,transparent);color:var(--honey);text-decoration:line-through}.files-body.content-view>.field-rule,.files-body.content-view>.mode-strip,.files-body.content-view>.mode-elbow,.files-body.content-view>.mode-frame,.dag-canvas:has(>.node-overlay)>.field-rule,.dag-canvas:has(>.node-overlay)>.mode-strip,.dag-canvas:has(>.node-overlay)>.mode-elbow,.dag-canvas:has(>.node-overlay)>.mode-frame{display:none}.strategy-pill{border:none;border-radius:.7rem;padding:0 .7rem;background-color:#000;color:var(--harvestgold);font-family:var(--face-label);font-weight:700;font-size:.65rem;letter-spacing:.1em;cursor:pointer}.strategy-pill:hover{filter:brightness(1.18)}#header-dag{gap:2rem}body:not([data-header]) #header-dag,body[data-header=dag] #header-dag{display:flex}#pipeline-cycler{position:relative;flex:0 1 30%;min-width:10rem;height:7.5rem}#header-dag-info{flex:1 1 68%;min-width:0;font-family:Share Tech Mono,monospace;font-size:.72rem}#index-instrument{column-span:all;margin-bottom:.35rem}#index-instrument .index-row{margin-bottom:.15rem}#index-instrument .index-bar{flex:0 1 16rem;min-width:6rem}#index-instrument .status-degraded .telemetry-value{color:var(--state-error)}#index-instrument .index-verb{flex:none;margin-left:.4rem;background-color:var(--state-error);color:var(--butter)}#about-rows{columns:3;column-gap:2rem}#pipeline-cycler canvas{display:block;width:100%!important;height:100%!important}#pipeline-cycler-name{position:absolute;bottom:.2rem;left:.6rem;color:var(--pumpkin-pie);font-family:var(--face-label);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}.files-panel{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.status-degraded{color:var(--state-error)}.listing-progress{display:block;position:relative;height:.45rem;min-width:2rem;border-radius:.25rem;background:color-mix(in srgb,var(--pumpkin-pie) 22%,transparent);overflow:hidden}.listing-progress-idle{background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--harvestgold) 60%,transparent)}.listing-progress-fill{display:block;height:100%;border-radius:.25rem;transition:width .25s linear}.listing-progress-running .listing-progress-fill{background:var(--state-running)}.listing-progress-done .listing-progress-fill{background:var(--pumpkin-pie)}.listing-progress-failed .listing-progress-fill{background:var(--state-error)}.listing-index-cell{display:flex;align-items:center;padding-inline-end:.5rem}.listing-index{box-sizing:border-box;min-width:4.4rem;padding:.05rem .45rem;border-radius:.7rem;font:600 .78rem/1.3 var(--lcars-font, inherit);letter-spacing:.04em;text-align:center;color:#ffffff61;background:#ffffff0f}.listing-index.numbered{color:#000;background:var(--listing-index-hue, var(--butter))}.pane-files{--listing-index-hue: var(--harvestgold)}.pane-pacs,.pacs-panel,[class*=pacs-]{--listing-index-hue: var(--daybreak)}.pane-gather,.gather-rows,#header-gather{--listing-index-hue: var(--butter)}.pane-dag,.pane-tags{--listing-index-hue: var(--harvestgold)}.listing-actions{--listing-action-height: 1.35rem;box-sizing:border-box;display:flex;gap:.4rem;align-items:center;min-height:var(--listing-action-height)}.listing-action{box-sizing:border-box;height:var(--listing-action-height);border:none;border-radius:.8rem;padding:.1rem .9rem;background:var(--harvestgold);color:#000;font-family:var(--face-label);font-weight:700;font-size:.7rem;letter-spacing:.1em;cursor:pointer}.listing-action:hover:not(:disabled){filter:brightness(1.3);box-shadow:0 0 8px var(--harvestgold)}.listing-action:active:not(:disabled),.listing-action-selected:not(:disabled){background:color-mix(in srgb,var(--harvestgold) 42%,#000);color:var(--butter);filter:none;box-shadow:none}.listing-action-selected:hover:not(:disabled){filter:brightness(1.2);box-shadow:0 0 8px color-mix(in srgb,var(--harvestgold) 60%,transparent)}.listing-action:disabled{opacity:.35;cursor:default}.listing-readout{color:var(--honey);font-size:.7rem;letter-spacing:.06em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.files-row-indicated .files-name,.files-row-indicated .files-glyph,.feedlist-row.listing-indicated .feedlist-title,.feedlist-row.listing-indicated .feedlist-id{color:var(--butter);text-shadow:0 0 8px rgb(255 238 204 / 60%)}.listing-row{display:grid;grid-template-columns:var(--roster-cols);align-items:center;column-gap:var(--roster-gap);padding:2px calc(var(--roster-pad) + var(--elbow-clear, 0px)) 2px var(--roster-pad);font-size:.8rem}.listing-row>span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.listing-row>.listing-actions{padding-block:0}.listing-activatable{cursor:pointer}.listing-group{display:block}.listing-level{padding-left:0}.listing-indicated>span:first-child,.listing-indicated>span:nth-child(2){color:var(--butter);text-shadow:0 0 8px rgb(255 238 204 / 60%)}.listing-selected>span{color:var(--butter)}.mode-frame .listing-zone{display:flex;flex-direction:column;gap:3px;margin-top:.75rem}.mode-frame .listing-zone[hidden]{display:none}.mode-frame .listing-zone .listing-action{flex:none;width:100%;min-width:0;height:auto;min-height:1.6rem;line-height:1.2;margin:0;padding:.2rem .6rem .2rem .4rem;border-radius:0;font-size:.65rem;text-align:right;white-space:normal;overflow-wrap:anywhere}.mode-frame .listing-zone .listing-readout{padding:.1rem .6rem 0 .4rem;text-align:right;white-space:normal;overflow:visible;line-height:1.25}.listing-framed .listing-indicated{background:var(--harvestgold);margin-right:-.5rem;padding-right:calc(var(--roster-pad) + var(--elbow-clear, 0px) + .5rem)}.listing-framed .listing-indicated>span,.listing-framed .listing-indicated>span:first-child,.listing-framed .listing-indicated>span:nth-child(2){color:#000;text-shadow:none}.listing-framed .listing-indicated .files-name{font-weight:700}.listing-framed .listing-indicated .listing-progress{background:#00000047}.listing-framed .listing-indicated .listing-progress-idle{background:transparent;box-shadow:inset 0 0 0 1px #0000008c}.listing-framed .listing-indicated .listing-progress-fill,.listing-framed .listing-indicated .pacs-bar-full{background:#000}.listing-framed .listing-indicated .pacs-badge,.listing-framed .listing-indicated .pacs-badge[data-state]{color:#000}.listing-framed:not(.listing-selecting):has(.listing-indicated) .listing-row:not(.listing-indicated):not(.files-lead-up):not(.files-lead-home){opacity:.25;transition:opacity .12s ease-out}.listing-framed:not(.listing-selecting):has(.listing-indicated) .listing-row:not(.listing-indicated):not(.files-lead-up):not(.files-lead-home):hover{opacity:1}.files-row.files-denied{opacity:.55}.files-row.files-denied .files-glyph{color:var(--state-error)}.files-row.files-denied .files-name{text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--state-error) 70%,transparent)}.files-content-refused{color:var(--state-error)}.files-refused{padding:.6rem .2rem}.files-refused-lede{margin:0 0 .4rem;color:var(--state-error);font-family:var(--face-label);font-weight:700;letter-spacing:.12em}.files-refused-said{margin:0;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.8rem;white-space:pre-wrap;opacity:.9}.listing-field{flex:1 1 0;min-height:0;overflow-y:auto}.files-panel>.listing-field{padding-right:.5rem}.empty-shortcuts{display:flex;gap:.6rem;margin:.3rem 0 .6rem}.empty-promptline{display:flex;margin-bottom:.6rem}.empty-prompt{flex:1;background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.85rem;padding:.2rem .6rem;outline:none}.empty-prompt:focus{border-color:var(--harvestgold);box-shadow:0 0 6px color-mix(in srgb,var(--harvestgold) 40%,transparent)}.empty-result{flex:1 1 0;min-height:0;overflow:auto;font-family:Share Tech Mono,monospace;font-size:.8rem;color:var(--daybreak);white-space:pre-wrap}.files-empty{color:var(--honey);opacity:.6;font-size:.8rem;letter-spacing:.08em}.files-listing{margin-bottom:1rem;overflow-x:auto}.files-path{position:sticky;top:0;z-index:2;background:#000;color:var(--orange);font-weight:700;letter-spacing:.05em;padding-bottom:.2rem;margin-bottom:calc(var(--rule-h, 6px) + .4rem);font-size:.9rem;min-width:0;overflow-wrap:anywhere;word-break:break-word}.files-crumb{font:inherit;color:inherit;letter-spacing:inherit;background:none;border:0;padding:0 .1em;margin:0;border-radius:.3em}button.files-crumb{cursor:pointer}button.files-crumb:hover,button.files-crumb:focus-visible{background:var(--orange);color:#000;outline:none}.files-crumb-here{color:var(--honey, var(--orange))}.files-content-header{position:static;border-bottom:2px solid var(--orange);margin-bottom:.3rem}.files-row>span{padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.files-glyph{font-family:MesloLGS NF,Inconsolata,monospace;font-size:.95rem;line-height:1;color:var(--console-white, var(--butter))}.files-glyph-dir,.files-type-dir .files-name{color:var(--console-yellow, var(--harvestgold));font-weight:700}.files-glyph-file,.files-type-file .files-name{color:var(--console-white, var(--butter))}.files-glyph-link,.files-type-link .files-name{color:var(--console-cyan, var(--daybreak))}.files-glyph-plugin,.files-type-plugin .files-name{color:var(--console-green, var(--honey));font-weight:700}.files-glyph-pipeline,.files-type-pipeline .files-name{color:var(--console-magenta, var(--honey));font-weight:700}.files-glyph-vfs,.files-type-vfs .files-name{color:var(--console-magenta, var(--harvestgold));font-weight:700}.files-glyph-job,.files-type-job .files-name{color:var(--console-cyan, var(--harvestgold));font-weight:700}.files-name{color:var(--console-white, var(--butter))}.files-version{color:var(--console-white, var(--butter));font-variant-numeric:tabular-nums}.files-run-strip{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;min-width:0;padding:.3rem var(--roster-pad, 6px) .4rem;margin-right:calc(var(--elbow-clear, 0px) + .5rem)}.files-binding{flex:0 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:var(--honey);font-family:var(--face-label);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.files-command{flex:1 1 14em;min-width:0;background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.85rem;padding:.2rem .6rem;outline:none}.files-command:focus{border-color:var(--harvestgold)}.files-feed{flex:none;border:none}.files-body.files-catalogue .files-home,.files-body.files-catalogue .files-back,.files-body.files-catalogue .files-mkdir,.files-body.files-catalogue .files-upload,.files-body.files-catalogue .files-select{display:none}.files-capsule,.listing-capsule,.listing-control.pacs-fold{display:inline-flex;align-items:center;justify-content:center;align-self:center;box-sizing:border-box;min-height:24px;margin:2px 0;padding:.1rem .7rem;border-radius:.8rem;background:color-mix(in srgb,var(--harvestgold) 38%,transparent);color:#000;font-family:var(--face-label);font-weight:700;font-size:.62rem;letter-spacing:.1em;line-height:1;cursor:pointer;transition:background-color .12s ease-out}.files-capsule:hover,.listing-capsule:hover,.listing-control.pacs-fold:hover{background:var(--harvestgold)}.files-control.files-capsule{font-family:MesloLGS NF,Inconsolata,monospace;font-size:.95rem;letter-spacing:0;padding:.1rem .5rem;color:#000}.files-control.files-capsule.files-glyph-dir{background:var(--console-yellow, var(--harvestgold))}.files-control.files-capsule.files-glyph-file,.files-control.files-capsule.files-glyph-job{background:var(--console-white, var(--butter))}.files-control.files-capsule.files-glyph-link{background:var(--console-cyan, var(--daybreak))}.files-control.files-capsule.files-glyph-plugin{background:var(--console-green, var(--honey))}.files-control.files-capsule.files-glyph-pipeline,.files-control.files-capsule.files-glyph-vfs{background:var(--console-magenta, var(--honey))}.listing-framed .listing-indicated .files-capsule,.listing-framed .listing-indicated .listing-capsule,.listing-framed .listing-indicated .listing-control.pacs-fold{background:#00000047}.listing-framed .listing-indicated .files-capsule:hover,.listing-framed .listing-indicated .listing-capsule:hover,.listing-framed .listing-indicated .listing-control.pacs-fold:hover{background:#000;color:var(--harvestgold)}.files-type{color:var(--honey);font-size:.7rem;letter-spacing:.04em;opacity:.85}.files-size,.files-owner,.files-date{color:var(--pumpkin-pie);text-align:right;white-space:nowrap}.files-activatable{cursor:pointer}.files-activatable:hover>span{background:color-mix(in srgb,var(--harvestgold) 18%,transparent)}.files-content-header{display:flex;align-items:center;gap:.5rem}.files-content-header>span:first-child{flex:1 1 auto;min-width:0}.files-close-pill{border:none;background:var(--mars);color:#000;font-family:inherit;font-size:.6rem;font-weight:700;letter-spacing:.1em;border-radius:.6rem;padding:.1rem .8rem;cursor:pointer}.files-close-pill:hover{filter:brightness(1.3)}.files-image{display:block;max-width:100%;max-height:60vh;margin:.5rem 0;border:1px solid var(--pumpkin-pie)}.files-body{position:relative;flex:1 1 0;min-height:0;display:flex;flex-direction:column;padding-right:var(--spine-w)}.files-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.6rem;padding:.3rem .5rem .6rem 0}.files-card{background:linear-gradient(135deg,#161616,#070707);border:2px solid var(--october-sunset);border-radius:10px;padding:.55rem .7rem;min-width:0;transition:border-color .15s,transform .15s}.files-card.files-activatable{cursor:pointer}.files-cards.files-previews{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}.files-card-thumb{height:6.5rem;margin:-.55rem -.7rem .45rem;border-radius:8px 8px 0 0;background-color:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--pumpkin-pie);font-family:var(--face-label);font-size:2rem}.files-card-thumb.thumb-wait{opacity:.45}.files-card-thumb svg{width:100%;height:100%;color:var(--harvestgold)}.files-card-thumb.thumb-count{font-size:.8rem;letter-spacing:.12em}.files-target{margin-left:.6em;opacity:.6;font-size:.85em}.files-card-target{margin-top:.25rem;color:var(--pumpkin-pie);font-family:Share Tech Mono,monospace;font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.files-card-thumb img{width:100%;height:100%;object-fit:cover}.files-card-thumb pre{margin:0;padding:.3rem .5rem;width:100%;height:100%;font:.55rem/1.3 Share Tech Mono,monospace;color:var(--honey);white-space:pre;overflow:auto;overscroll-behavior:contain;text-align:left}.files-card-thumb pre::-webkit-scrollbar{width:6px;height:6px}.files-card-thumb pre::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--honey) 45%,transparent);border-radius:3px}.files-card:hover .files-card-thumb pre::-webkit-scrollbar-thumb{background:var(--honey)}.files-card.files-activatable:hover{border-color:var(--honey);transform:translateY(-2px)}.files-card-up{display:flex;align-items:center;color:var(--pumpkin-pie);font-family:var(--face-label);letter-spacing:.08em}.files-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.files-card-badge{background:var(--harvestgold);color:#000;border-radius:9px;padding:0 .6rem;font-family:var(--face-label);font-size:.62rem;letter-spacing:.12em;line-height:1.6}.files-card.files-type-plugin .files-card-badge{background:var(--daybreak)}.files-card.files-type-pipeline .files-card-badge{background:var(--orange)}.files-card.files-type-dir .files-card-badge,.files-card.files-type-vfs .files-card-badge,.files-card.files-type-job .files-card-badge{background:var(--butter)}.files-card-size{color:var(--pumpkin-pie);font-family:Share Tech Mono,monospace;font-size:.68rem}.files-card-title{color:var(--honey);font-family:var(--face-label);font-size:.95rem;letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-card-meta{display:flex;justify-content:space-between;margin-top:.3rem;color:var(--pumpkin-pie);font-family:Share Tech Mono,monospace;font-size:.66rem}.files-content-view{display:flex;flex-direction:column;min-height:100%}.dag-scene-canvas{display:block;width:100%!important;height:100%!important}.files-diagram{flex:1 1 0;min-height:14rem;position:relative;overflow:hidden}.files-diagram-empty{display:flex;align-items:center;justify-content:center;color:var(--pumpkin-pie);font-family:var(--face-label);letter-spacing:.1em}.man-head{color:var(--harvestgold);font-weight:600}.man-key{color:var(--honey)}.man-flag{color:var(--daybreak)}.man-str{color:var(--orange)}.files-content{margin:0;padding:.4rem 0;font-family:MesloLGS NF,Inconsolata,Courier New,monospace;font-size:.7rem;line-height:1.35;color:var(--butter);white-space:pre-wrap;word-break:break-word;text-shadow:0 0 5px rgb(255 238 204 / 30%)}.data-column{transition:filter .3s ease}.dc-sweep{filter:brightness(1.6)}.dc-sweep>div{color:var(--butter)!important;text-shadow:0 0 8px rgb(255 238 204 / 60%)}#data-cascade.dc-stale{filter:brightness(.45) saturate(.5)}.banner{font-size:clamp(1.1rem,1.4vw,1.8rem);padding-bottom:.2rem}.header-face{display:none;padding:.2rem .5rem;columns:3;column-gap:2rem;font-family:Share Tech Mono,monospace;font-size:.75rem;letter-spacing:.06em;height:var(--header-band-h, 19vh);max-height:var(--header-band-h, 19vh);overflow:hidden auto}.header-gather-field{position:relative;display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding-right:var(--spine-w);transition:padding-right .22s ease-out}.header-gather-field .gather-rows{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:auto;scrollbar-width:thin;padding-top:calc(var(--rule-h) + .3rem);--roster-gap: .6rem;--roster-pad: .4rem}.header-gather-field .gather-rows>.roster-order{position:sticky;top:0;z-index:2;flex:none;background:#000}.gather-state{flex:none;padding:0 .6rem .2rem;font-family:var(--face-label);font-size:.62rem;letter-spacing:.1em;color:var(--butter)}button.panel-gather{flex:none;min-height:3.2rem;align-items:flex-end;justify-content:flex-end;white-space:nowrap;border-bottom:8px solid #000}button.panel-gather.panel-gather-empty{background-color:color-mix(in srgb,var(--harvestgold) 38%,#000);color:color-mix(in srgb,#000 70%,var(--harvestgold))}body[data-header=stats] #header-telemetry{display:block}body[data-header=gather] #header-gather{display:flex;flex-direction:column;columns:auto;flex:1 1 100%;width:100%;min-width:0}body[data-header=away] .wrap:not(#gap){position:absolute;inset:0 0 auto;translate:0 -100%}#header-restore,body[data-zoom] .headtrim,body[data-zoom] .baseboard{display:none}body[data-zoom]:not([data-zoom=console]) #drawer-toggle,body[data-zoom]:not([data-zoom=console]) #status-strip,body[data-zoom]:not([data-zoom=console]) .right-frame:before{display:none}body[data-header=away]:not([data-zoom]) #gap,body[data-zoom]:not([data-zoom=console]) #gap{margin-top:12px}body[data-header=away] #header-restore,body[data-zoom] #header-restore{display:block;position:fixed;top:0;left:20%;right:20%;height:12px;z-index:1000;border-radius:0 0 6px 6px;background-color:var(--october-sunset);cursor:pointer;animation:beckon 3.5s ease-in-out infinite}#header-restore:hover{animation:none;background-color:var(--harvestgold);box-shadow:0 0 8px color-mix(in srgb,var(--harvestgold) 60%,transparent)}.header-controls{column-span:all;display:flex;gap:.7rem;margin-bottom:.3rem}.telemetry-row{display:flex;align-items:center;gap:.7rem;break-inside:avoid;margin-bottom:.2rem;min-width:0}.telemetry-label{flex:none;min-width:9.5rem;padding:0 .7rem;border-radius:.6rem 0 0 .6rem;background-color:var(--honey);color:#000;font-family:var(--face-label);font-weight:700;font-size:.7rem;line-height:1.2rem;letter-spacing:.08em;text-align:right;text-transform:uppercase}#header-about .telemetry-label{background-color:var(--october-sunset)}:root[data-theme=medical] #header-about .telemetry-label,:root[data-theme=pharos] #header-about .telemetry-label{color:var(--butter)}.telemetry-value{color:var(--daybreak);font-size:.9rem;min-width:0}#header-dag-info .telemetry-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.about-footer{column-span:all;margin-top:.15rem;padding-bottom:0;padding-left:0;font-size:.62rem;line-height:1.3;opacity:.75}.audio-pill,.theme-pill,.door-pill{padding:.1rem .9rem;border:none;border-radius:.8rem;color:#000;font-family:var(--face-label);font-weight:700;font-size:.75rem;letter-spacing:.1em;cursor:pointer}.audio-pill{background-color:var(--state-done)}.theme-pill{background-color:var(--harvestgold)}.door-pill{background-color:var(--orange)}.audio-pill:hover,.theme-pill:hover,.door-pill:hover{filter:brightness(1.3);box-shadow:0 0 8px currentcolor}.audio-pill.audio-off{background-color:var(--state-error)}.audio-pill.audio-off:after{content:" OFF"}:root{--butter: #fec;--daybreak: #f91;--harvestgold: #fa4;--honey: #fc9;--october-sunset: #f40;--orange: #f70;--pumpkin-pie: #c50}:root[data-theme=gold]{--butter: #fff3cd;--daybreak: #fc3;--harvestgold: #ffd75e;--honey: #ffe49c;--october-sunset: #c99700;--orange: #e9b200;--pumpkin-pie: #a07800}:root[data-theme=medical]{--butter: #dff5fd;--daybreak: #7edcf7;--harvestgold: #1ebef0;--honey: #7fd9f7;--october-sunset: #30619d;--orange: #1d7bb9;--pumpkin-pie: #0f3566}:root[data-theme=nemesis]{--butter: #f0e4fc;--daybreak: #cfa0ff;--harvestgold: #d0a8f0;--honey: #e0c8f8;--october-sunset: #8c5fc0;--orange: #b48ae0;--pumpkin-pie: #7a4ea8}:root[data-theme=pharos]{--butter: #dff5fd;--daybreak: #7edcf7;--harvestgold: #1ebef0;--honey: #7fd9f7;--october-sunset: #30619d;--orange: #1d7bb9;--pumpkin-pie: #0f3566;--face-label: "Chakra Petch", "Arial Narrow", sans-serif;--face-data: "JetBrains Mono", "MesloLGS NF", monospace;--elbow-radius: 0;--elbow-inner-radius: 0;--radius-top: 0;--radius-bottom: 0;--radius-content-top: 0;--radius-content-bottom: 0;--pharos-lit: rgba(255, 255, 255, .55);--pharos-cut: 9px;--pharos-cut-small: 5px;--pharos-inset: 18px;--pharos-flank: 26px}[data-theme=pharos] body{font-family:var(--face-label)}[data-theme=pharos] .listing-row,[data-theme=pharos] .roster-filter-input{font-family:var(--face-data)}[data-theme=pharos] .left-frame-top .panel-1,[data-theme=pharos] .left-frame-top .panel-2,[data-theme=pharos] .left-frame-top .panel-gather,[data-theme=pharos] .left-frame button[class^=panel-],[data-theme=pharos] .left-frame .panel-spacer,[data-theme=pharos] .lcars-bar-horizontal,[data-theme=pharos] .lcars-bar-end,[data-theme=pharos] .mode-strip,[data-theme=pharos] .mode-fill{box-shadow:inset 0 3px 0 var(--pharos-lit)}[data-theme=pharos] .left-frame button[class^=panel-]{clip-path:polygon(var(--pharos-cut) 0,100% 0,100% 100%,0 100%,0 var(--pharos-cut));transition:margin-left .18s ease-out,width .18s ease-out}[data-theme=pharos] .roster-cap,[data-theme=pharos] .roster-cap:first-of-type,[data-theme=pharos] .roster-cap:last-of-type,[data-theme=pharos] .strategy-pill,[data-theme=pharos] .listing-action,[data-theme=pharos] .pacs-capsule,[data-theme=pharos] .ask-capsule,[data-theme=pharos] .theme-pill,[data-theme=pharos] .audio-pill,[data-theme=pharos] .telemetry-label,[data-theme=pharos] .lamp-online,[data-theme=pharos] .lamp-host,[data-theme=pharos] .lamp-offline{border-radius:0;clip-path:polygon(0 0,calc(100% - var(--pharos-cut-small)) 0,100% var(--pharos-cut-small),100% 100%,0 100%)}[data-theme=pharos] .pacs-capsule,[data-theme=pharos] .listing-action,[data-theme=pharos] .strategy-pill{white-space:nowrap;letter-spacing:.04em}[data-theme=pharos] body[data-focus=files] #gutter-files,[data-theme=pharos] body[data-focus=dag] #gutter-runs,[data-theme=pharos] body[data-focus=pacs] #gutter-tools{margin-left:var(--pharos-inset);width:calc(var(--lfw) - var(--pharos-inset))}[data-theme=pharos] .left-frame-top{position:relative;overflow:hidden}[data-theme=pharos] .left-frame-top:after{content:"";position:absolute;left:0;bottom:0;width:78px;height:78px;pointer-events:none;background:radial-gradient(circle at 0 100%,var(--butter) 0 11px,transparent 11.5px),repeating-radial-gradient(circle at 0 100%,var(--butter) 0 2px,transparent 2px 9px);clip-path:circle(78px at 0 100%);animation:pharos-lamp 5s ease-in-out infinite}@keyframes pharos-lamp{0%,to{opacity:.55}50%{opacity:1}}[data-theme=pharos] .wrap-all{border-left:3px solid var(--october-sunset);border-radius:var(--pharos-flank) 0 0 var(--pharos-flank)}[data-theme=pharos] .left-frame-top{border-top-left-radius:calc(var(--pharos-flank) - 3px)}[data-theme=pharos] .left-frame>div:last-child .panel-7{clip-path:none;border-bottom-left-radius:calc(var(--pharos-flank) - 3px)}[data-theme=pharos] .lcars-bar-horizontal{border-radius:0}[data-theme=pharos] .lcars-bar-end{border-radius:0;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 100%,0 100%)}[data-theme=pharos] .mode-elbow,[data-theme=pharos] .mode-elbow:after{border-top-right-radius:0}[data-theme=pharos] .mode-strip,[data-theme=pharos] .mode-fill{border-radius:0}[data-theme=pharos] .listing-indicated>span:first-child,[data-theme=pharos] .listing-indicated>span:nth-child(2){text-shadow:none}[data-theme=pharos] .listing-action:hover:not(:disabled),[data-theme=pharos] .audio-pill:hover,[data-theme=pharos] .theme-pill:hover,[data-theme=pharos] .pacs-capsule:hover{box-shadow:none;filter:brightness(1.15)}@media(prefers-reduced-motion:reduce){[data-theme=pharos] .left-frame-top:after{animation:none}[data-theme=pharos] .left-frame button[class^=panel-]{transition:none}}[data-theme=pharos] body,[data-theme=pharos] .banner,[data-theme=pharos] h1,[data-theme=pharos] a,[data-theme=pharos] button,[data-theme=pharos] #status-strip,[data-theme=pharos] .dag-node-tip,[data-theme=pharos] .feedlist-refusal,[data-theme=pharos] .telemetry-label,[data-theme=pharos] .lcars-bar-horizontal{text-transform:lowercase}[data-theme=pharos] .listing-row,[data-theme=pharos] .argus-output,[data-theme=pharos] #pacs-results,[data-theme=pharos] #files-results,[data-theme=pharos] #pipeline-cycler-name,[data-theme=pharos] input,[data-theme=pharos] textarea,[data-theme=pharos] select,[data-theme=pharos] .about-footer,[data-theme=pharos] .about-footer a{text-transform:none}#drawer{display:flex;flex-direction:column;flex:none;height:28vh;min-height:0;overflow:hidden}#drawer.drawer-closed{height:0}.lcars-terminal-header-bar{flex:none;display:flex;height:28px;align-items:flex-end}.lcars-bar-horizontal{flex:1;height:28px;background-color:var(--harvestgold);display:flex;align-items:center;justify-content:space-between;padding-inline:1rem;color:#000;font-weight:700;text-transform:uppercase;font-family:var(--face-label);font-size:.8rem;letter-spacing:1px}.lcars-bar-horizontal>.lcars-title{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lcars-bar-horizontal>.pane-mode,.lcars-bar-horizontal>.pane-state{flex:none;white-space:nowrap}.lcars-terminal-status{font-size:.6rem;opacity:.8;margin-left:1rem;font-family:Share Tech Mono,monospace;text-transform:none}.lcars-bar-end{width:60px;height:28px;background-color:var(--harvestgold);border-radius:0 14px 14px 0;margin-left:.5rem}#terminal{flex:1;min-height:0;display:flex}.argus-screen{flex:1;min-width:0;background-color:#000;padding:.8rem 1rem;display:flex;flex-direction:column;font-family:Share Tech Mono,MesloLGS NF,monospace;color:var(--daybreak)}.argus-output{flex:1;overflow-y:auto;margin-bottom:.5rem;font-size:.75rem;line-height:1.35;letter-spacing:1px;white-space:pre-wrap;word-break:break-word}.argus-line{min-height:1em}.argus-echo .user-input,.user-input{color:var(--butter);text-shadow:none}.argus-echo .prompt-glyph{color:var(--sky, #9cf)}.argus-result.error{color:#f24444}.argus-banner-line{opacity:.9}.argus-splash{display:flex;align-items:center;gap:1.5rem;margin-bottom:.4rem}.argus-splash-brain{flex:none;margin:0;font-size:.42em;line-height:1;letter-spacing:0;white-space:pre;opacity:.9}.argus-splash-greeting{flex:1 1 auto;min-width:0}.pane-universe:not(.universe-inside) .universe-open,.pane-universe:not(.universe-inside):not(.universe-cluster) .universe-back,.universe-facts[hidden]{display:none}.universe-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.universe-node-verbs{display:flex;gap:.4rem;margin-top:.35rem}.argus-greeting-line{white-space:pre-wrap;min-height:1em}.dim{opacity:.45}.argus-progress{flex:none;font-size:.7rem;letter-spacing:0;text-shadow:none;line-height:1.6}.argus-progress-row{display:flex;align-items:center;gap:.5rem;color:var(--butter);opacity:.85}.argus-progress-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.argus-progress-counts{opacity:.6}.argus-progress-elapsed{flex:none;opacity:.5;font-variant-numeric:tabular-nums}.argus-progress-spin{flex:none;width:.6rem;height:.6rem;border:2px solid var(--pumpkin-pie);border-top-color:transparent;border-radius:50%;animation:argus-progress-turn .8s linear infinite}.argus-progress-bar{flex:2;height:.4rem;background:#ffffff1f;border-radius:.2rem;overflow:hidden}.argus-progress-fill{display:block;height:100%;width:0;background:var(--pumpkin-pie);transition:width .12s linear}@keyframes argus-progress-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.argus-progress-spin{animation:none}.argus-progress-fill{transition:none}}.argus-prompt-bar{flex:none;font-size:.7rem;letter-spacing:0;text-shadow:none;line-height:1.5;white-space:pre;overflow-x:hidden}.argus-input-line{flex:none;display:flex;align-items:center;border-top:1px solid var(--pumpkin-pie);padding-top:.4rem;margin-top:.2rem}.argus-input-glyph{color:#00d787;font-size:.8rem}.argus-input-line input{background:transparent;border:none;color:var(--butter);font-family:inherit;font-size:.75rem;letter-spacing:1px;flex:1;outline:none;margin-left:.6rem}#drawer-strip{flex:none;height:4px;margin:3px 0;background:var(--pumpkin-pie);border-radius:0;cursor:row-resize}#drawer-strip:hover,#drawer-strip:active{animation:none;background:var(--harvestgold);box-shadow:0 0 8px color-mix(in srgb,var(--harvestgold) 60%,transparent)}#drawer-toggle{cursor:pointer}@keyframes beckon{0%,to{filter:brightness(1)}50%{filter:brightness(1.2);box-shadow:0 0 8px #ff770073}}@keyframes beckon-mars{0%,to{filter:brightness(1);box-shadow:none}50%{filter:brightness(1.3);box-shadow:0 0 10px #f229}}.attach-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#000000e0;z-index:100}.attach-hidden{display:none}.attach-card{width:20rem;border:2px solid var(--orange);border-radius:1.2rem 0;padding:1.2rem 1.4rem;background:#000}.attach-card h1{margin:0 0 .3rem;color:var(--orange);letter-spacing:.2em}.attach-card p{margin:0 0 .7rem;font-size:.7rem;color:var(--honey)}.attach-card input{width:100%;background:#111;color:var(--butter);border:1px solid var(--harvestgold);border-radius:4px;padding:.4rem .5rem;font-family:inherit;font-size:.75rem;letter-spacing:.1em;margin-bottom:.6rem;box-sizing:border-box}.attach-card button{background:var(--orange);color:#000;border:none;border-radius:.65rem;padding:.4rem 1.1rem;font-family:inherit;font-size:.75rem;font-weight:700;letter-spacing:.1em;cursor:pointer}.attach-card button:hover{filter:brightness(1.15)}.attach-error{color:var(--state-error);min-height:1.2em;margin-top:.5rem}.domain-inert{background-color:color-mix(in srgb,var(--inert-ground, var(--october-sunset)) 50%,#000);color:var(--butter)}.panel-1.domain-inert,.panel-4.domain-inert,.panel-spacer.domain-inert{--inert-ground: var(--orange)}.panel-2.domain-inert,.panel-3.domain-inert,.panel-6.domain-inert{--inert-ground: var(--october-sunset)}.panel-5.domain-inert,.panel-7.domain-inert{--inert-ground: var(--harvestgold)}.pacs-study-progress{display:block;min-width:0}.listing-control.pacs-fold-none{background:transparent;cursor:default}.pacs-fold:before{content:"OPEN"}.listing-group.listing-open>.listing-row>.pacs-fold:before{content:"CLOSE"}.pacs-fold.pacs-fold-none:before{content:""}.pacs-capsule-study{background-color:var(--october-sunset);color:#000}.pacs-capsule-study:hover{box-shadow:0 0 8px var(--october-sunset)}.pacs-bar-full{min-width:2rem;height:.45rem;border-radius:.25rem;background:var(--state-done)}.pacs-waiting{display:flex;align-items:center;gap:.7rem;padding:.6rem .2rem}.pacs-waiting .pacs-bar{flex:0 0 12rem}.pacs-waiting-note{color:var(--harvestgold);font-family:var(--face-label);letter-spacing:.12em;font-size:.8rem}.pacs-bar{position:relative;flex:1 1 auto;min-width:2rem;height:.45rem;border-radius:.25rem;background:color-mix(in srgb,var(--state-running) 18%,transparent);overflow:hidden}.listing-framed .listing-indicated .pacs-bar{background:#00000047}.listing-framed .listing-indicated .pacs-bar-fill{background:#000}.pacs-bar-fill{display:block;width:0;height:100%;border-radius:.25rem;background:var(--state-running);transition:width .25s linear}.pacs-bar-pacing .pacs-bar-fill{width:35%;animation:pacs-pace 1.4s ease-in-out infinite}@keyframes pacs-pace{0%{transform:translate(-100%)}to{transform:translate(300%)}}#lang-palette{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:1200;display:flex;align-items:stretch;width:min(52rem,70vw);height:30px;background:#000}#lang-palette[hidden]{display:none}.lang-glyph{display:flex;align-items:center;padding:0 .9rem 0 1.1rem;background:var(--harvestgold);color:#000;font-family:var(--face-label);font-size:.8rem;letter-spacing:.12em;border-radius:0 0 0 14px}#lang-input{flex:1;background:transparent;border:none;border-bottom:2px solid var(--pumpkin-pie);outline:none;padding:0 .7rem;color:var(--butter);font-family:Share Tech Mono,monospace;font-size:.78rem;letter-spacing:.04em}#lang-palette:after{content:"";width:34px;background:var(--harvestgold);border-radius:0 0 14px}#lang-result{position:absolute;top:100%;left:0;right:0;padding:.25rem .9rem;color:var(--honey);font-family:Share Tech Mono,monospace;font-size:.72rem;white-space:pre-wrap;background:#000000eb;border-bottom:1px solid color-mix(in srgb,var(--orange) 55%,transparent)}#lang-result:empty{display:none}.left-frame .panel-lang{display:flex;justify-content:flex-end;height:auto;flex:1.2 1 0;min-height:2.4rem;padding:var(--left-frame-padding);background-color:var(--harvestgold);border-bottom:var(--panel-border)}.left-frame .panel-console{display:flex;justify-content:flex-end;height:auto;flex:2 1 0;min-height:3rem;padding:var(--left-frame-padding);background-color:var(--october-sunset);border-bottom:var(--panel-border)}.left-frame .panel-lang.lang-live{background-color:var(--butter)}#drawer~.bar-panel{flex-wrap:nowrap;cursor:pointer}#drawer~.bar-panel:hover .bar-10{filter:brightness(1.2)}#drawer.drawer-closed~.bar-panel .bar-10{animation:lid-beckon 3.5s ease-in-out infinite}@keyframes lid-beckon{0%,to{filter:brightness(1)}50%{filter:brightness(1.35)}}.feedlist-size,.feedlist-time{text-align:right;font-family:Share Tech Mono,monospace}.dag-roster .roster-cap[data-key=sizeBytes],.dag-roster .roster-cap[data-key=wallSeconds]{text-align:right}.files-body .diagram-strategy,.files-body .diagram-projection,.files-body .diagram-pulse,.files-body.diagram-shown .files-view,.files-body.diagram-shown .files-filter,.files-body.diagram-shown .files-home,.files-body.diagram-shown .files-back,.files-body.diagram-shown .files-mkdir,.files-body.diagram-shown .files-upload,.files-body.diagram-shown .files-select,.files-body.diagram-shown .files-row-zone{display:none}.files-row-selected .files-name,.files-row-selected .files-glyph,.files-row-selected .files-type,.files-row-selected .files-size{background:color-mix(in srgb,var(--butter) 22%,transparent);color:var(--butter)}.files-body.diagram-shown .diagram-strategy,.files-body.diagram-shown .diagram-projection,.files-body.diagram-shown .diagram-pulse{display:block}.files-body .diagram-run{display:none}.files-body.files-catalogue.diagram-shown .diagram-run{display:block;background-color:var(--october-sunset);color:#000}.telemetry-input{flex:1 1 8em;min-width:0;background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.85rem;padding:.1rem .5rem;outline:none}.telemetry-input:focus{border-color:var(--harvestgold)}.telemetry-input[type=checkbox]{flex:none;width:1rem;height:1rem;accent-color:var(--harvestgold)}.telemetry-hint{flex:none;color:var(--honey);font-size:.7rem;opacity:.8}.mode-frame .strategy-pill.diagram-pulse.pulse-running{background-color:var(--october-sunset);color:#000}.dag-facts-immersed{max-width:72%;max-height:70%;overflow-y:auto;border-left-color:var(--october-sunset)}.pacs-patient{margin-bottom:.9rem}.pacs-patient-row{padding-block:4px;color:var(--harvestgold);border-bottom:2px solid var(--harvestgold);cursor:pointer}.pacs-patient-row:hover{background:color-mix(in srgb,var(--harvestgold) 12%,transparent)}.pacs-patient-row>span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pacs-patient-name{color:var(--butter)}.pacs-patient-mrn{color:var(--harvestgold)}.pacs-patient-count,.pacs-patient-server,.pacs-patient-answered{color:var(--pumpkin-pie)}.pacs-unasked,.pacs-patient-unasked .pacs-patient-count{color:var(--mars)}.pacs-patient-progress{display:block;min-width:0}#pacs-results .listing-level[data-depth="1"]{box-shadow:inset 2px 0 #ffcc6659}#pacs-results .listing-level[data-depth="1"] .roster-caps{margin:.35rem 0 .3rem}#pacs-form .pacs-form-field{display:flex;flex-direction:column;gap:.15rem;min-width:0;color:var(--honey);font-family:var(--face-label);font-size:.66rem;letter-spacing:.12em}.pacs-server-cell{min-width:0;width:100%;background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--butter);font-family:Share Tech Mono,monospace;font-size:.8rem;padding:.15rem .5rem;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}.pacs-server-cell:hover,.pacs-server-open{border-color:var(--harvestgold);color:var(--harvestgold)}.pacs-server-many{color:var(--october-sunset);border-color:var(--october-sunset)}.pacs-server-strip{display:flex;flex-wrap:wrap;gap:.3rem;padding:.35rem var(--roster-pad) .5rem;margin-bottom:.4rem;border-bottom:2px solid var(--pumpkin-pie)}.pacs-server-segment{background:#000;border:1px solid var(--pumpkin-pie);border-radius:.9rem;color:var(--pumpkin-pie);font-family:var(--face-label);font-size:.7rem;letter-spacing:.1em;padding:.1rem .7rem;cursor:pointer}.pacs-server-segment:hover{color:var(--harvestgold);border-color:var(--harvestgold)}.pacs-server-chosen{background:var(--harvestgold);border-color:var(--harvestgold);color:#000}.argus-ask{color:var(--harvestgold)}.ask-glyph{color:var(--butter);margin-right:.35rem}.ask-answer,.argus-ask-answered .ask-glyph{color:var(--pumpkin-pie)}.ask-capsule{background:var(--harvestgold);border:none;border-radius:.9rem;color:#000;font-family:var(--face-label);font-size:.7rem;letter-spacing:.1em;padding:.1rem .9rem;cursor:pointer}.ask-capsule-no{background:var(--october-sunset)}.ask-capsule:hover{filter:brightness(1.3)}.stale-page{position:fixed;top:calc(env(safe-area-inset-top,0px) + 1rem);left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:1rem;max-width:calc(100% - 2rem);padding:.55rem .7rem .55rem 1.1rem;background:#000;border:2px solid var(--pumpkin-pie);border-radius:1.2rem .3rem;color:var(--butter);font-family:var(--face-label);letter-spacing:.08em}.stale-page-words{min-width:0}.errand-bar{display:flex;align-items:center;gap:.6rem;padding:.35rem .6rem;margin-bottom:.3rem;border-bottom:2px solid var(--october-sunset);flex:none}.errand-caption{color:var(--butter);font-family:var(--face-label);font-size:.7rem;letter-spacing:.1em;white-space:nowrap;align-self:center}.errand-path{flex:1 1 14em;min-width:0;background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.75rem;padding:.1rem .5rem;outline:none}.errand-path:focus{border-color:var(--harvestgold)}.errand-commit{background-color:var(--october-sunset)}.pacs-wrote{color:var(--pumpkin-pie);font-family:var(--face-label);font-size:.68rem;letter-spacing:.1em;align-self:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.pane-image{display:flex;flex-direction:column;min-height:0}.image-body{position:relative;flex:1 1 0;min-height:0;overflow:hidden}.pane-image[data-modality=MR] .image-body{--harvestgold: var(--daybreak)}.pane-image[data-modality=CT] .image-body{--harvestgold: var(--honey)}.pane-image[data-modality=PT] .image-body{--harvestgold: var(--tomato, #f77)}.pane-image[data-modality=NIFTI] .image-body{--harvestgold: var(--daybreak)}.image-field{position:absolute;top:calc(var(--frame-top) + var(--rule-h));left:0;right:var(--spine-w);bottom:0;background:#000;outline:none;transition:right .22s ease-out}.image-working{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:14rem;padding:1rem 1.4rem;background:#000000b8;border-radius:.4rem;font-family:var(--face-label);letter-spacing:.12em;color:var(--harvestgold);font-size:.75rem;pointer-events:none;z-index:3}.image-working-track{width:100%;height:.35rem;border-radius:.2rem;background:color-mix(in srgb,var(--harvestgold) 22%,transparent);overflow:hidden}.image-working-fill{display:block;height:100%;width:0;border-radius:.2rem;background:var(--harvestgold);transition:width .12s linear}.image-working-fill.image-working-pacing{width:35%;animation:image-pacing 1.1s ease-in-out infinite}@keyframes image-pacing{0%{transform:translate(-100%)}to{transform:translate(285%)}}.image-working-count{font-size:.7rem;color:var(--honey)}.image-working-failed{color:var(--tomato, #f77)}.image-working-failed .image-working-track{display:none}.image-working-failed .image-working-count{color:var(--tomato, #f77);letter-spacing:.04em}.image-overlay-note{position:absolute;left:.8rem;top:.6rem;display:flex;flex-direction:column;gap:.05rem;font-family:var(--face-label);font-size:.62rem;letter-spacing:.09em;line-height:1.35;color:var(--honey);text-shadow:0 0 4px #000,0 0 2px #000;pointer-events:none;z-index:2}.image-probe-note{position:absolute;left:.8rem;bottom:.6rem;font-family:var(--face-label);font-size:.66rem;letter-spacing:.1em;color:var(--harvestgold);text-shadow:0 0 4px #000,0 0 2px #000;pointer-events:none;z-index:2}.pane-image.image-field-focused .image-field{box-shadow:inset 0 0 0 2px var(--harvestgold)}.image-viewport{position:absolute;inset:0}.image-mpr,.image-render{position:absolute;inset:0;display:grid;gap:2px}.image-mpr{grid-template-columns:1fr 1fr 1fr}.image-mpr .image-viewport,.image-render .image-viewport{position:relative;inset:auto;min-width:0;min-height:0}.image-canvas{display:block;width:100%!important;height:100%!important}.mode-frame .image-focus{text-align:right;padding:0 .6rem 0 .4rem;height:1.6rem;line-height:1.6rem;background-color:var(--harvestgold);color:#000}.pane-tags{display:flex;flex-direction:column;min-height:0}.tags-body{--roster-gap: 0px;--roster-pad: 0px;position:relative;flex:1 1 0;min-height:0;display:flex;flex-direction:column;padding-right:var(--spine-w)}.pane-tags[data-modality=MR] .tags-body{--harvestgold: var(--daybreak)}.pane-tags[data-modality=CT] .tags-body{--harvestgold: var(--honey)}.pane-tags[data-modality=PT] .tags-body{--harvestgold: var(--tomato, #f77)}.tags-panel{flex:1 1 0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tags-panel>.roster-order{position:static;z-index:auto;flex:none}.tags-panel>.listing-field{padding-right:.5rem}.tags-fold{color:var(--harvestgold)}.tags-fold:before{content:"▸"}.listing-group.listing-open>.listing-row>.tags-fold:before{content:"▾"}.tags-fold.tags-fold-none:before{content:""}.tags-group-row{font-weight:700}.tags-tag,.tags-vr{opacity:.7;font-family:monospace}.tags-name,.tags-value-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.tags-decoded{opacity:.6}.tags-redacted .tags-phi .tags-value{letter-spacing:.15em;opacity:.6}.tags-note{padding:1rem;opacity:.7}.files-card-thumb.thumb-series{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem}.thumb-series-mark{font-weight:700;letter-spacing:.1em;color:var(--harvestgold)}.thumb-series-text{font-size:.8em;opacity:.8;text-align:center;padding:0 .4rem}@keyframes lcars-breath{0%{filter:brightness(.82)}to{filter:brightness(1.28)}}#header-restore,.mode-strip,.mode-fill{animation:lcars-breath 2.2s ease-in-out infinite alternate}@keyframes lcars-breath-spine{0%{filter:brightness(.45)}to{filter:brightness(1.6)}}.mode-strip{animation:lcars-breath-spine 1.6s ease-in-out infinite alternate}#header-restore{animation-duration:2s}#header-restore:hover,.mode-strip:hover,.mode-fill:hover{animation:none}@media(prefers-reduced-motion:reduce){#drawer.drawer-closed~.bar-panel .bar-10,#header-restore,.mode-strip,.mode-fill,.image-working-fill.image-working-pacing{animation:none!important}}[data-theme=pharos] .left-frame-top,[data-theme=pharos] button.panel-2,[data-theme=pharos] button.panel-3{border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-right-radius:0}[data-theme=pharos] button.panel-3{border-top-left-radius:0}.launcher-body{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative;padding:0 .6rem .6rem .2rem}.launcher-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:.85rem;flex:1 1 auto;min-height:0}.launcher-tile{display:flex;flex-direction:column;gap:.45rem;align-items:stretch;text-align:left;border:none;cursor:pointer;padding:.9rem 1.1rem .8rem;border-radius:8px 28px 28px 8px;background-color:var(--tile-hue);color:#000;overflow:hidden}.launcher-tile-wide{grid-column:span 2}.launcher-tile:hover{filter:brightness(1.08)}.launcher-head{display:flex;align-items:baseline;gap:.7rem}.launcher-name{font-family:var(--face-label);font-weight:700;font-size:1.5rem;letter-spacing:.14em}.launcher-tile-wide .launcher-name{font-size:1.9rem}.launcher-numeral{margin-left:auto;font-family:Share Tech Mono,monospace;font-size:.85rem}.launcher-figure{border:none;border-radius:.8rem;padding:.1rem .7rem;background-color:var(--butter);color:#000;font-family:Share Tech Mono,monospace;font-size:.8rem;cursor:inherit}button.launcher-figure{cursor:pointer}.launcher-figure-errored{background-color:var(--state-error);color:#000}.launcher-rule{display:block;height:3px;background-color:#000}.launcher-rows{display:flex;flex-direction:column;gap:.15rem;overflow:hidden}.launcher-row{display:flex;align-items:center;gap:.55rem;border:none;background:none;padding:.12rem .3rem;border-radius:.5rem;color:#000;font-family:Share Tech Mono,monospace;font-size:.85rem;text-align:left;cursor:inherit}button.launcher-row{cursor:pointer}button.launcher-row:hover,.launcher-row-arrived{background-color:color-mix(in srgb,#000 12%,var(--tile-hue))}.launcher-row-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.launcher-dot{flex:none;width:.5rem;height:.5rem;border-radius:50%;background-color:#000}.launcher-dot-errored{background-color:var(--state-error)}.launcher-go{flex:none;font-family:Share Tech Mono,monospace}.launcher-verb{margin-top:auto;align-self:flex-start;background-color:#000;color:var(--tile-hue);font-family:var(--face-label);font-weight:700;font-size:.7rem;letter-spacing:.12em;padding:.22rem .85rem;border-radius:.9rem}.launcher-start{position:absolute;right:.9rem;bottom:-.1rem}.panes-body{overflow:auto;padding:.9rem;min-height:0}.panes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.9rem;align-content:start}.panes-empty{color:var(--honey);font-family:var(--face-data);font-size:.8rem;padding:1.2rem .4rem}.panes-card{display:grid;grid-template-rows:auto auto auto;gap:.4rem;padding:.6rem;border:none;border-radius:.6rem;background-color:color-mix(in srgb,var(--harvestgold) 14%,transparent);text-align:left;cursor:pointer;position:relative}.panes-card:hover{background-color:color-mix(in srgb,var(--harvestgold) 26%,transparent);box-shadow:0 0 8px var(--harvestgold)}.panes-card-figure{display:block;aspect-ratio:4 / 3;max-width:100%;background-color:#000;border-radius:.3rem;overflow:hidden}.panes-card-figure img{width:100%;height:100%;object-fit:contain;display:block}.panes-card-glyph{display:flex;align-items:center;justify-content:center;color:var(--harvestgold);font-size:2.4rem;line-height:1}.panes-card-label{color:var(--daybreak);font-family:var(--face-label);font-weight:700;font-size:.78rem;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panes-card-badges{display:flex;flex-wrap:wrap;gap:.3rem}.panes-card-badge{font-family:var(--face-label);font-size:.56rem;letter-spacing:.12em;color:#000;background-color:var(--harvestgold);border-radius:.5rem;padding:.05rem .45rem}.panes-card-dismiss{position:absolute;top:.5rem;right:.5rem;border:none;border-radius:.5rem;padding:.05rem .45rem;font-family:var(--face-label);font-size:.56rem;letter-spacing:.12em;color:var(--honey);background-color:color-mix(in srgb,var(--october-sunset) 55%,transparent);cursor:pointer;opacity:0}.panes-card:hover .panes-card-dismiss{opacity:1}.panes-card-dismiss:hover{color:#000;background-color:var(--october-sunset)}.ask-bar{display:flex;align-items:center;gap:.6rem;padding:0 .6rem;flex:none;max-height:0;overflow:hidden;border-bottom:2px solid var(--harvestgold);transition:max-height .16s ease-out,padding .16s ease-out}.ask-bar-shown{max-height:3rem;padding:.35rem .6rem;margin-bottom:.3rem}.ask-bar-glyph{color:var(--harvestgold);font-family:var(--face-label);font-weight:700;font-size:.85rem}.ask-bar-caption{color:var(--butter);font-family:var(--face-label);font-size:.7rem;letter-spacing:.1em;white-space:nowrap;align-self:center}.ask-bar-field{flex:1 1 12em;min-width:0;background:#000;border:1px solid var(--pumpkin-pie);border-radius:.4rem;color:var(--daybreak);font-family:Share Tech Mono,monospace;font-size:.75rem;padding:.1rem .5rem;outline:none}.ask-bar-field:focus{border-color:var(--harvestgold)}.ask-bar-commit,.ask-bar-yes{background-color:var(--harvestgold)}.ask-bar-no,.ask-bar-abandon{background-color:var(--october-sunset)}.dag-process{align-self:flex-start;margin-top:.6rem}.files-projection .files-mkdir,.files-projection .files-upload{display:none}.pacs-wrote-opens{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.files-table-view{display:flex;flex-direction:column;flex:1 1 0;min-height:0}.files-table-field{position:relative;display:flex;flex-direction:column;flex:1 1 0;min-height:0;padding-right:var(--spine-w);transition:padding-right .22s ease-out;--mode-frame-top: 0px}.files-table-rows{display:flex;flex-direction:column;flex:1 1 0;min-height:0;overflow:auto;scrollbar-width:thin;padding-top:calc(var(--rule-h) + .3rem);--roster-gap: .6rem;--roster-pad: .4rem}.files-table-rows>.roster-order{position:sticky;top:0;z-index:2;flex:none;background:#000}.files-table-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-raw-pill,.files-download-pill{background-color:var(--october-sunset)}.gather-series-study{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#header-strip{position:fixed;left:var(--lfw);right:0;height:10px;z-index:40;cursor:ns-resize;background:transparent}#header-strip:after{content:"";position:absolute;left:50%;top:4px;width:6rem;height:2px;transform:translate(-50%);background:color-mix(in srgb,var(--harvestgold) 45%,transparent)}body[data-header=away] #header-strip,body[data-zoom] #header-strip,body:not([data-header]) #header-strip{display:none}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import We,{data as A,normalizers as k,utilities as D,derivations as Ie,constants as hn,sr as yn}from"./dcmjs.es-DfWkgqfk.js";import{bY as Bt,bZ as Yt,dA as Dn,at as Tn,cD as Kt,t as Cn,e as bn,bi as q,cp as $e,cs as Rn}from"./Settings-
|
|
1
|
+
import We,{data as A,normalizers as k,utilities as D,derivations as Ie,constants as hn,sr as yn}from"./dcmjs.es-DfWkgqfk.js";import{bY as Bt,bZ as Yt,dA as Dn,at as Tn,cD as Kt,t as Cn,e as bn,bi as q,cp as $e,cs as Rn}from"./Settings-CpJHgU8P.js";import"./cornerstoneEngine-DgoPMn1N.js";import"./Texture-BFywN4BL.js";import{m as Mn,t as Pn}from"./throttle-CjIII7Yf.js";import"./index-Bm3uV1GS.js";import"./_commonjsHelpers-CE1G-McA.js";const R=r=>Array.isArray(r)?r:r!==void 0?[r]:[],Pe=r=>e=>e.ConceptNameCodeSequence.CodeMeaning===r;A.datasetToBlob;const vn=Bt;let Nn=vn;function E(r,e){let t=r.is3DMeasurement,n=r.referencedImageId;if(t)return{x:e[0],y:e[1],z:e[2]};const a=Nn(n,e);return{x:a[0],y:a[1]}}function Q(r,e){return e.map(t=>E(r,t))}const En=Yt;function pe(r,e){let t=r.is3DMeasurement,n=r.referencedImageId;const a=[];if(t){const o=e.GraphicData;for(let s=0;s<o.length;s+=3){const i=[o[s],o[s+1],o[s+2]];a.push(i)}}else{const o=e.GraphicData;for(let s=0;s<o.length;s+=2){const i=En(n,[o[s],o[s+1]]);a.push(i)}}return a}const zt=D.TID1500,st=D.addAccessors,wn=Ie.StructuredReport,An=k.Normalizer,Un=zt.TID1500MeasurementReport,jn=zt.TID1501MeasurementGroup,xn=A.DicomMetaDictionary,Gn={CodingSchemeDesignator:"DCM",CodeValue:"121071"},_n={CodingSchemeDesignator:"SCT",CodeValue:"363698007"},Vn={CodingSchemeDesignator:"SRT",CodeValue:"G-C0E3"},it=(r,e,t)=>{const n=r.ConceptNameCodeSequence;if(!n)return;const a=n.CodingSchemeDesignator,o=n.CodeValue;return a==e.CodingSchemeDesignator&&o==e.CodeValue||t&&a==t.CodingSchemeDesignator&&o==t.CodeValue};function $n(r,e,t){const n=t.getTID300RepresentationArguments(r);return n.ReferencedSOPSequence=e,n.ReferencedFrameOfReferenceUID=n.use3DSpatialCoordinates?r.metadata.FrameOfReferenceUID:null,new t.TID300Representation(n)}function qn(r,e,t){const n=e[r],a=M.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[r];if(!n||!n.data||!n.data.length||!a)return;const o=n.data.map(s=>$n(s,t,a));return new jn(o)}let M=class ue{static getSetupMeasurementData(e){const t=e.ContentSequence,n=R(t),a=n.find(g=>it(g,Gn)),o=n.filter(g=>it(g,_n,Vn))||[],s=n.find(g=>g.ValueType==="NUM"),i=R(s.ContentSequence).find(g=>g.ValueType==="SCOORD"),c=i.ContentSequence.ReferencedSOPSequence,u=c.ReferencedSOPInstanceUID,l=c.ReferencedFrameNumber,d={sopInstanceUid:u,frameIndex:l||1,complete:!0,finding:a?st(a.ConceptCodeSequence):void 0,findingSites:o.map(g=>st(g.ConceptCodeSequence))};d.finding&&(d.description=d.finding.CodeMeaning);const p=d.findingSites&&d.findingSites[0];return p&&(d.location=p[0]&&p[0].CodeMeaning||p.CodeMeaning),{defaultState:d,findingGroup:a,findingSiteGroups:o,NUMGroup:s,SCOORDGroup:i,ReferencedSOPSequence:c,ReferencedSOPInstanceUID:u,ReferencedFrameNumber:l}}static generateReport(e,t,n){let a=[];const o=Object.keys(e)[0];if(!o)throw new Error("No measurements provided.");const s=t.get("generalSeriesModule",o),i=s.studyInstanceUID,c=s.seriesInstanceUID;Object.keys(e).forEach(m=>{const h=t.get("sopCommonModule",m),O=t.get("frameNumber",m),y=e[m],S=Object.keys(y),b={ReferencedSOPClassUID:h.sopClassUID,ReferencedSOPInstanceUID:h.sopInstanceUID};An.isMultiframeSOPClassUID(h.sopClassUID)&&(b.ReferencedFrameNumber=O);const T=[];S.forEach(v=>{const j=qn(v,y,b);j&&T.push(j)}),a=a.concat(T)});const u=new Un({TID1501MeasurementGroups:a},n),l=new Uint8Array(2);l[1]=1;const d={StudyInstanceUID:i,SeriesInstanceUID:c},p={FileMetaInformationVersion:{Value:[l.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2.1"],vr:"UI"},ImplementationClassUID:{Value:[xn.uid()],vr:"UI"},ImplementationVersionName:{Value:["dcmjs"],vr:"SH"}},g={PixelData:"OW"};d._meta=p,d._vrMap=g;const f=new wn([d]),I=u.contentItem(d);return f.dataset=Object.assign(f.dataset,I),f.dataset._meta=p,f.dataset.SpecificCharacterSet="ISO_IR 192",f}static generateToolState(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e.ContentTemplateSequence.TemplateIdentifier!=="1500")throw new Error("This package can currently only interpret DICOM SR TID 1500");const n="Imaging Measurements",a="Measurement Group",o="Tracking Identifier",s=R(e.ContentSequence).find(Pe(n)),i=R(s.ContentSequence).filter(Pe(a)),c={},u=ue.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE,l=[];return Object.keys(u).forEach(d=>{l.push(u[d]),c[d]=[]}),i.forEach(d=>{const f=R(d.ContentSequence).find(m=>m.ConceptNameCodeSequence.CodeMeaning===o).TextValue,I=t.getToolClass?t.getToolClass(d,e,l):l.find(m=>m.isValidCornerstoneTrackingIdentifier(f));if(I){const m=I.getMeasurementData(d);console.log("=== ".concat(I.toolType," ===")),console.log(m),c[I.toolType].push(m)}}),c}static registerTool(e){ue.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE[e.utilityToolType]=e,ue.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE[e.toolType]=e,ue.MEASUREMENT_BY_TOOLTYPE[e.toolType]=e.utilityToolType}};M.MEASUREMENT_BY_TOOLTYPE={};M.CORNERSTONE_TOOL_CLASSES_BY_UTILITY_TYPE={};M.CORNERSTONE_TOOL_CLASSES_BY_TOOL_TYPE={};function Fn(r){if(Array.isArray(r))return r}function Ln(r,e){var t=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(t!=null){var n,a,o,s,i=[],c=!0,u=!1;try{if(o=(t=t.call(r)).next,e===0){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=o.call(t)).done)&&(i.push(n.value),i.length!==e);c=!0);}catch(l){u=!0,a=l}finally{try{if(!c&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(u)throw a}}return i}}function ct(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=Array(e);t<e;t++)n[t]=r[t];return n}function kn(r,e){if(r){if(typeof r=="string")return ct(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?ct(r,e):void 0}}function Bn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
2
2
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function w(r,e){return Fn(r)||Ln(r,e)||kn(r,e)||Bn()}function me(r){"@babel/helpers - typeof";return me=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},me(r)}function Yn(r,e){if(me(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e);if(me(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function Kn(r){var e=Yn(r,"string");return me(e)=="symbol"?e:e+""}function P(r,e,t){return(e=Kn(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}var $="cornerstoneTools@^4.0.0";function ut(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function dt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ut(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ut(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const zn=D.TID300.Length,Qe="Length";let J=class Xt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,o=t.SCOORDGroup,s=dt(dt({},n),{},{length:a.MeasuredValueSequence.NumericValue,toolType:Xt.toolType,handles:{start:{},end:{},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}});var i=w(o.GraphicData,4);return s.handles.start.x=i[0],s.handles.start.y=i[1],s.handles.end.x=i[2],s.handles.end.y=i[3],s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=t.start,s=t.end,i=e.length;return{point1:o,point2:s,distance:i,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Length",finding:n,findingSites:a||[]}}};J.toolType=Qe;J.utilityToolType=Qe;J.TID300Representation=zn;J.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===Qe};M.registerTool(J);function lt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function pt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?lt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):lt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Xn=D.TID300.Polyline;class _{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.SCOORDGroup,o=t.NUMGroup,s=pt(pt({},n),{},{toolType:_.toolType,handles:{points:[],textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},cachedStats:{area:o?o.MeasuredValueSequence.NumericValue:0},color:void 0,invalidated:!0}),i=a.GraphicData;for(let c=0;c<i.length;c+=2)s.handles.points.push({x:i[c],y:i[c+1]});return s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=e.cachedStats,s=o===void 0?{}:o,i=t.points,c=s.area,u=c===void 0?0:c,l=s.perimeter;return{points:i,area:u,perimeter:l===void 0?0:l,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:FreehandRoi",finding:n,findingSites:a||[]}}}_.toolType="FreehandRoi";_.utilityToolType="FreehandRoi";_.TID300Representation=Xn;_.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===_.toolType};M.registerTool(_);const Hn=D.TID300.Bidirectional,Je="Bidirectional",Wn="Long Axis",Qn="Short Axis",Jn="121071",Zn="G-C0E3";let Z=class Ht{static getMeasurementData(e){const t=e.ContentSequence,n=R(t).find(m=>m.ConceptNameCodeSequence.CodeValue===Jn),a=R(t).filter(m=>m.ConceptNameCodeSequence.CodeValue===Zn),o=R(t).find(m=>m.ConceptNameCodeSequence.CodeMeaning===Wn),s=R(o.ContentSequence).find(m=>m.ValueType==="SCOORD"),i=R(t).find(m=>m.ConceptNameCodeSequence.CodeMeaning===Qn),c=R(i.ContentSequence).find(m=>m.ValueType==="SCOORD"),u=s.ContentSequence.ReferencedSOPSequence,l=u.ReferencedSOPInstanceUID,d=u.ReferencedFrameNumber,p=String(o.MeasuredValueSequence.NumericValue),g=String(i.MeasuredValueSequence.NumericValue),f={x:Math.max(s.GraphicData[0],s.GraphicData[2],c.GraphicData[0],c.GraphicData[2]),y:Math.max(s.GraphicData[1],s.GraphicData[3],c.GraphicData[1],c.GraphicData[3])};return{sopInstanceUid:l,frameIndex:d||1,toolType:Ht.toolType,active:!1,handles:{start:{x:s.GraphicData[0],y:s.GraphicData[1],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:0},end:{x:s.GraphicData[2],y:s.GraphicData[3],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:1},perpendicularStart:{x:c.GraphicData[0],y:c.GraphicData[1],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:2},perpendicularEnd:{x:c.GraphicData[2],y:c.GraphicData[3],drawnIndependently:!1,allowedOutsideImage:!1,active:!1,highlight:!1,index:3},textBox:{highlight:!1,hasMoved:!0,active:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0,x:f.x+10,y:f.y+10}},invalidated:!1,isCreating:!1,longestDiameter:p,shortestDiameter:g,toolName:"Bidirectional",visible:!0,finding:n?n.ConceptCodeSequence:void 0,findingSites:a.map(m=>m.ConceptCodeSequence)}}static getTID300RepresentationArguments(e){const t=e.handles,n=t.start,a=t.end,o=t.perpendicularStart,s=t.perpendicularEnd,i=e.shortestDiameter,c=e.longestDiameter,u=e.finding,l=e.findingSites;return{longAxis:{point1:n,point2:a},shortAxis:{point1:o,point2:s},longAxisLength:c,shortAxisLength:i,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Bidirectional",finding:u,findingSites:l||[]}}};Z.toolType=Je;Z.utilityToolType=Je;Z.TID300Representation=Hn;Z.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===Je};M.registerTool(Z);function gt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ft(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?gt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):gt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const er=D.TID300.Ellipse,Ze="EllipticalRoi";class B{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,s=t.SCOORDGroup.GraphicData,i=[{x:s[0],y:s[1]},{x:s[2],y:s[3]}],c=[{x:s[4],y:s[5]},{x:s[6],y:s[7]}],u=Math.sqrt(Math.pow(c[0].x-c[1].x,2)+Math.pow(c[0].y-c[1].y,2)),l={x:(c[1].x-c[0].x)/u,y:(c[1].y-c[0].y)/u},d=u/2,p={x:i[0].x+l.x*d,y:i[0].y+l.y*d},g={x:i[1].x-l.x*d,y:i[1].y-l.y*d};return ft(ft({},n),{},{toolType:B.toolType,active:!1,cachedStats:{area:a?a.MeasuredValueSequence.NumericValue:0},handles:{end:{x:p.x,y:p.y,highlight:!1,active:!1},initialRotation:0,start:{x:g.x,y:g.y,highlight:!1,active:!1},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,visible:!0})}static getTID300RepresentationArguments(e){const t=e.cachedStats,n=t===void 0?{}:t,a=e.handles,o=e.finding,s=e.findingSites,i=a.start,c=a.end,u=n.area,l=Math.abs(i.x-c.x)/2,d=Math.abs(i.y-c.y)/2,p=[],g={x:(i.x+c.x)/2,y:(i.y+c.y)/2};return l>d?(p.push({x:g.x-l,y:g.y}),p.push({x:g.x+l,y:g.y}),p.push({x:g.x,y:g.y-d}),p.push({x:g.x,y:g.y+d})):(p.push({x:g.x,y:g.y-d}),p.push({x:g.x,y:g.y+d}),p.push({x:g.x-l,y:g.y}),p.push({x:g.x+l,y:g.y})),{area:u,points:p,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:EllipticalRoi",finding:o,findingSites:s||[]}}}B.toolType=Ze;B.utilityToolType=Ze;B.TID300Representation=er;B.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===Ze};M.registerTool(B);function mt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function X(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?mt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):mt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const tr=D.TID300.Circle,et="CircleRoi";class Y{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,s=t.SCOORDGroup.GraphicData,i={x:s[0],y:s[1]},c={x:s[2],y:s[3]};return X(X({},n),{},{toolType:Y.toolType,active:!1,cachedStats:{area:a?a.MeasuredValueSequence.NumericValue:0,radius:0,perimeter:0},handles:{end:X(X({},c),{},{highlight:!1,active:!1}),initialRotation:0,start:X(X({},i),{},{highlight:!1,active:!1}),textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,visible:!0})}static getTID300RepresentationArguments(e){const t=e.cachedStats,n=t===void 0?{}:t,a=e.handles,o=e.finding,s=e.findingSites,i=a.start,c=a.end,u=n.area,l=n.radius,d=2*Math.PI*l,p=[];return p.push(i),p.push(c),{area:u,perimeter:d,radius:l,points:p,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:CircleRoi",finding:o,findingSites:s||[]}}}Y.toolType=et;Y.utilityToolType=et;Y.TID300Representation=tr;Y.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===et};M.registerTool(Y);function It(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function St(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?It(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):It(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const nr=D.TID300.Point,tt="ArrowAnnotate",Ot="CORNERSTONEFREETEXT";let ee=class Wt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.SCOORDGroup;t.findingGroup;const o=a.GraphicData;return St(St({},n),{},{toolType:Wt.toolType,active:!1,handles:{start:{x:o[0],y:o[1],highlight:!0,active:!1},end:{x:o.length==4?o[2]:o[0]+20,y:o.length==4?o[3]:o[1]+20,highlight:!0,active:!1},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}},invalidated:!0,visible:!0})}static getTID300RepresentationArguments(e){const t=[e.handles.start,e.handles.end],n=e.findingSites;let a=e.finding;const o={points:t,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:ArrowAnnotate",findingSites:n||[]};return(!a||a.CodeValue!==Ot)&&(a={CodeValue:Ot,CodingSchemeDesignator:"CST4",CodeMeaning:e.label}),o.finding=a,o}};ee.toolType=tt;ee.utilityToolType=tt;ee.TID300Representation=nr;ee.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===tt};M.registerTool(ee);function ht(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function yt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ht(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):ht(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const rr=D.TID300.CobbAngle,nt="CobbAngle";let te=class Qt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,o=t.SCOORDGroup,s=yt(yt({},n),{},{rAngle:a.MeasuredValueSequence.NumericValue,toolType:Qt.toolType,handles:{start:{},end:{},start2:{highlight:!0,drawnIndependently:!0},end2:{highlight:!0,drawnIndependently:!0},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}});var i=w(o.GraphicData,8);return s.handles.start.x=i[0],s.handles.start.y=i[1],s.handles.end.x=i[2],s.handles.end.y=i[3],s.handles.start2.x=i[4],s.handles.start2.y=i[5],s.handles.end2.x=i[6],s.handles.end2.y=i[7],s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=t.start,s=t.end,i=t.start2,c=t.end2,u=e.rAngle;return{point1:o,point2:s,point3:i,point4:c,rAngle:u,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:CobbAngle",finding:n,findingSites:a||[]}}};te.toolType=nt;te.utilityToolType=nt;te.TID300Representation=rr;te.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===nt};M.registerTool(te);function Dt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Tt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Dt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Dt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const ar=D.TID300.Angle,rt="Angle";let ne=class Jt{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.NUMGroup,o=t.SCOORDGroup,s=Tt(Tt({},n),{},{rAngle:a.MeasuredValueSequence.NumericValue,toolType:Jt.toolType,handles:{start:{},middle:{},end:{},textBox:{hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0}}});var i=w(o.GraphicData,8);return s.handles.start.x=i[0],s.handles.start.y=i[1],s.handles.middle.x=i[2],s.handles.middle.y=i[3],s.handles.middle.x=i[4],s.handles.middle.y=i[5],s.handles.end.x=i[6],s.handles.end.y=i[7],s}static getTID300RepresentationArguments(e){const t=e.handles,n=e.finding,a=e.findingSites,o=t.start,s=t.middle,i=t.middle,c=t.end,u=e.rAngle;return{point1:o,point2:s,point3:i,point4:c,rAngle:u,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:Angle",finding:n,findingSites:a||[]}}};ne.toolType=rt;ne.utilityToolType=rt;ne.TID300Representation=ar;ne.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===rt};M.registerTool(ne);function Ct(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function bt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ct(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Ct(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const or=D.TID300.Polyline;class V{static getMeasurementData(e){const t=M.getSetupMeasurementData(e),n=t.defaultState,a=t.SCOORDGroup,o=t.NUMGroup,s=bt(bt({},n),{},{toolType:V.toolType,handles:{start:{},end:{},textBox:{active:!1,hasMoved:!1,movesIndependently:!1,drawnIndependently:!0,allowedOutsideImage:!0,hasBoundingBox:!0},initialRotation:0},cachedStats:{area:o?o.MeasuredValueSequence.NumericValue:0},color:void 0,invalidated:!0});var i=w(a.GraphicData,6);return s.handles.start.x=i[0],s.handles.start.y=i[1],i[2],i[3],s.handles.end.x=i[4],s.handles.end.y=i[5],s}static getTID300RepresentationArguments(e){const t=e.finding,n=e.findingSites,a=e.cachedStats,o=a===void 0?{}:a,s=e.handles,i=s.start,c=s.end,u=[i,{x:i.x,y:c.y},c,{x:c.x,y:i.y}],l=o.area,d=o.perimeter;return{points:u,area:l,perimeter:d,trackingIdentifierTextValue:"cornerstoneTools@^4.0.0:RectangleRoi",finding:t,findingSites:n||[]}}}V.toolType="RectangleRoi";V.utilityToolType="RectangleRoi";V.TID300Representation=or;V.isValidCornerstoneTrackingIdentifier=r=>{if(!r.includes(":"))return!1;const e=r.split(":"),t=w(e,2),n=t[0],a=t[1];return n!==$?!1:a===V.toolType};M.registerTool(V);A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;const we=D.orientation;we.rotateDirectionCosinesInPlane;we.flipImageOrientationPatient;we.flipMatrix2D;we.rotateMatrix902D;D.datasetToBlob;D.BitArray;D.DicomMessage;D.DicomMetaDictionary;k.Normalizer;Ie.Segmentation;hn.EXPLICIT_LITTLE_ENDIAN;var qe;(function(r){r.SEGMENTATION_LOAD_PROGRESS="CORNERSTONE_ADAPTER_SEGMENTATION_LOAD_PROGRESS"})(qe||(qe={}));const Ae=D.orientation;Ae.rotateDirectionCosinesInPlane;Ae.flipImageOrientationPatient;Ae.flipMatrix2D;Ae.rotateMatrix902D;A.BitArray;A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;Ie.Segmentation;const Zt=D.compression;Zt.encode;Zt.decode;A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;const sr={Length:J,FreehandRoi:_,Bidirectional:Z,EllipticalRoi:B,CircleRoi:Y,ArrowAnnotate:ee,MeasurementReport:M,CobbAngle:te,Angle:ne,RectangleRoi:V};var ge="Cornerstone3DTools@^0.1.0";const ir=["PatientName","PatientID","PatientBirthDate","PatientBirthTime","IssuerOfPatientID","OtherPatientIDs","OtherPatientIDsSequence","PatientSex","PatientIdentityRemoved","DeidentificationMethodCodeSequence"],cr=["StudyDate","StudyTime","StudyStatusID","StudyPriorityID","StudyInstanceUID","StudyDescription","AccessionNumber","StudyID","ReferringPhysicianName","TimezoneOffsetFromUTC"],ur=[...ir,...cr];function dr(r){const e={_meta:r._meta,_vrMap:r._vrMap};for(const t of ur){const n=r[t];n!==void 0&&(e[t]=n)}return e}const lr=["SeriesInstanceUID","SeriesNumber","SeriesDescription","Modality","SeriesDate","SeriesTime","_meta","_vrMap"];function pr(r){const e={};for(const t of lr){const n=r[t];n!==void 0&&(e[t]=n)}return e}function gr(r){const e=[];if(!(r!=null&&r.length))return e;const t=r.length;if(t%3!==0)throw new Error("Points array should be divisible by 3 for SCOORD3D, but contents are: ".concat(JSON.stringify(r)," of length ").concat(t));for(let n=0;n<t;n+=3)e.push([r[n],r[n+1],r[n+2]]);return e}const fr="CORNERSTONEFREETEXT",mr="CORNERSTONEJS",en={CodingSchemeDesignator:mr,codeValues:{CORNERSTONEFREETEXT:fr}};function Rt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Mt(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Rt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Rt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Fe="none",at="99CS3D",ve={schemeDesignator:at,meaning:"Text Annotation Position",value:"TextPosition"},F={schemeDesignator:at,meaning:"Control Points",value:"ControlPoints"},fe={schemeDesignator:at,meaning:"Spline Type",value:"SplineType"},Ne={schemeDesignator:"DCM",meaning:"Comment",value:"121106"},Ir=new Uint8Array(2);Ir[1]=1;const tn=new Uint8Array(2);tn[1]=2;const Sr="2.25.2470123695996825859949881583571202391.1.0.1",Or="2.25.2470123695996825859949881583571202391.2.0.1",hr=new Uint8Array(2);hr[1]=1;const ot={FileMetaInformationVersion:{Value:[tn.buffer],vr:"OB"},TransferSyntaxUID:{Value:["1.2.840.10008.1.2"],vr:"UI"},ImplementationClassUID:{Value:[Sr],vr:"UI"},ImplementationVersionName:{Value:["cs3d-4.8.4"],vr:"SH"}},yr=Mt(Mt({},ot),{},{ImplementationClassUID:{Value:[Or],vr:"UI"}}),nn=We.sr,x=nn.valueTypes,Pt=nn.coding,Dr=We.adapters.Cornerstone3D;class Tr{constructor(e,t){this.tid300Item=e,this.annotation=t,this.ReferencedSOPSequence=e.ReferencedSOPSequence}contentItem(){var e;const t=this.tid300Item.contentItem();this.fixScoordRelationships(t);const n=this.annotation.data,a=n.label,o=n.handles;return a&&(t.push(this.createQualitativeLabel(a)),this.filterCornerstoneFreeText(t)),o!=null&&(e=o.textBox)!==null&&e!==void 0&&e.hasMoved&&t.push(this.createQualitativeLabelPosition(this.annotation)),t}fixScoordRelationships(e){const t=x.RelationshipTypes.INFERRED_FROM;for(const n of e){const o=n.ContentSequence,s=this.normalizeContentSequence(o);for(const i of s)(i.ValueType==="SCOORD"||i.ValueType==="SCOORD3D")&&(i.RelationshipType==="CONTAINS"||i.RelationshipType==="Contains")&&(i.RelationshipType=t)}}normalizeContentSequence(e){return e?Array.isArray(e)?e:[e]:[]}filterCornerstoneFreeText(e){const t=Dr.CodeScheme.codeValues,n=[t.FREE_TEXT_CODE_VALUE,t.CORNERSTONEFREETEXT];for(let a=0;a<e.length;a++){const o=e[a];if(!o.ConceptCodeSequence)continue;const s=o.ConceptCodeSequence.findIndex(i=>n.includes(i.CodeValue));if(s!==-1){o.ConceptCodeSequence.splice(s,1),o.ConceptCodeSequence.length===0&&e.splice(a,1);return}}}createQualitativeLabel(e){const t=x.RelationshipTypes.CONTAINS;return new x.TextContentItem({name:new Pt.CodedConcept(Ne),relationshipType:t,value:e})}createQualitativeLabelPosition(e){const t=e.data.handles.textBox,n=e.metadata,a=n.referencedImageId,o=n.FrameOfReferenceUID,s=!a,i=E({is3DMeasurement:s,referencedImageId:a},t.worldPosition),c=i.x,u=i.y,l=i.z,d=x.GraphicTypes.POINT,p=x.RelationshipTypes.CONTAINS,g=new Pt.CodedConcept(ve),f=s?new x.Scoord3DContentItem({name:g,relationshipType:p,graphicType:d,graphicData:[c,u,l],frameOfReferenceUID:o}):new x.ScoordContentItem({name:g,relationshipType:p,graphicType:d,graphicData:[c,u]});return f.ContentSequence=[{RelationshipType:x.RelationshipTypes.SELECTED_FROM,ValueType:x.ValueTypes.IMAGE,ReferencedSOPSequence:this.ReferencedSOPSequence}],f}}var z;function vt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function W(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?vt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):vt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Cr=Kt,rn=D.TID1500,Nt=D.addAccessors,br=Ie.StructuredReport,Rr=k.Normalizer,Mr=rn.TID1500MeasurementReport,Pr=rn.TID1501MeasurementGroup,Se=A.DicomMetaDictionary,vr={CodingSchemeDesignator:"DCM",CodeValue:"121071"},Nr={CodingSchemeDesignator:Ne.schemeDesignator,CodeValue:Ne.value},Er={CodingSchemeDesignator:ve.schemeDesignator,CodeValue:ve.value},Ee={CodingSchemeDesignator:F.schemeDesignator,CodeValue:F.value},wr={CodingSchemeDesignator:"SCT",CodeValue:"363698007"},Ar={CodingSchemeDesignator:"SRT",CodeValue:"G-C0E3"};function Et(r){if(r.ValueType!=="SCOORD"&&r.ValueType!=="SCOORD3D")return!1;const e=r.ConceptNameCodeSequence,t=Array.isArray(e)?e[0]:e;return!!t&&t.CodingSchemeDesignator===Ee.CodingSchemeDesignator&&t.CodeValue===Ee.CodeValue}class N{static getTID300ContentItem(e,t,n,a){const o=n.getTID300RepresentationArguments(e,a);o.ReferencedSOPSequence=t,o.use3DSpatialCoordinates&&(o.ReferencedFrameOfReferenceUID=e.metadata.FrameOfReferenceUID);const s=new n.TID300Representation(o);return new Tr(s,e)}static getMeasurementGroup(e,t,n,a){const o=t[e],s=this.measurementAdapterByToolType.get(e);if(!o||!o.data||!o.data.length||!s)return;const i=o.data.map(c=>this.getTID300ContentItem(c,n,s,a));return new Pr(i)}static getCornerstoneLabelFromDefaultState(e){const t=e.findingSites,n=t===void 0?[]:t,a=e.finding,o=e.commentGroup;if(o!=null&&o.TextValue)return o.TextValue;const s=en.codeValues.CORNERSTONEFREETEXT,i=n.find(c=>c.CodeValue===s);if(i)return i.CodeMeaning;if(a&&a.CodeValue===s)return a.CodeMeaning}static generateDatasetMeta(){return ot}static processSCOORDGroup(e){let t=e.SCOORDGroup,n=e.toolType,a=e.sopInstanceUIDToImageIdMap,o=e.metadata;const s=t.ContentSequence.ReferencedSOPSequence,i=s.ReferencedSOPInstanceUID,c=s.ReferencedFrameNumber,u=c===void 0?1:c,l=a["".concat(i,":").concat(u)],d=o.get("imagePlaneModule",l),p=Se.uid();return{SCOORDGroup:t,ReferencedSOPSequence:s,ReferencedSOPInstanceUID:i,ReferencedFrameNumber:u,referencedImageId:l,state:{description:void 0,sopInstanceUid:i,annotation:{data:{annotationUID:p,cachedStats:{},handles:{activeHandleIndex:0,textBox:{hasMoved:!1}}},annotationUID:p,metadata:{toolName:n,referencedImageId:l,FrameOfReferenceUID:d.frameOfReferenceUID}}}}}static processSCOORD3DGroup(e){let t=e.SCOORD3DGroup,n=e.toolType;const a=Se.uid(),o={SCOORD3DGroup:t,FrameOfReferenceUID:t.ReferencedFrameOfReferenceUID,state:{description:void 0,annotation:{annotationUID:a,data:{annotationUID:a,cachedStats:{},handles:{activeHandleIndex:0,textBox:{hasMoved:!1}}},metadata:{toolName:n,FrameOfReferenceUID:t.ReferencedFrameOfReferenceUID}}}};return Dn(gr(t.GraphicData),o.state.annotation.metadata),o}static getSpatialCoordinatesState(e){var t,n;let a=e.NUMGroup,o=e.sopInstanceUIDToImageIdMap,s=e.metadata,i=e.toolType;const c=R(a.ContentSequence),u=(t=c.find(p=>p.ValueType==="SCOORD"&&!Et(p)))!==null&&t!==void 0?t:c.find(p=>p.ValueType==="SCOORD"),l=(n=c.find(p=>p.ValueType==="SCOORD3D"&&!Et(p)))!==null&&n!==void 0?n:c.find(p=>p.ValueType==="SCOORD3D"),d=l&&this.processSCOORD3DGroup({SCOORD3DGroup:l,toolType:i})||u&&this.processSCOORDGroup({SCOORDGroup:u,toolType:i,metadata:s,sopInstanceUIDToImageIdMap:o});if(!d)throw new Error("No spatial coordinates group found.");return d}static processSpatialCoordinatesGroup(e){let t=e.NUMGroup,n=e.sopInstanceUIDToImageIdMap,a=e.metadata,o=e.findingGroup,s=e.findingSiteGroups,i=e.commentGroup,c=e.commentPositionGroup,u=e.controlPointsGroup,l=e.toolType;const d=this.getSpatialCoordinatesState({NUMGroup:t,sopInstanceUIDToImageIdMap:n,metadata:a,toolType:l}),p=d.state,g=d.SCOORDGroup,f=d.ReferencedSOPSequence,I=d.ReferencedSOPInstanceUID,m=d.ReferencedFrameNumber,h=d.SCOORD3DGroup,O=d.FrameOfReferenceUID,y=d.referencedImageId,S=d.textBoxPosition,b=o?Nt(o.ConceptCodeSequence):void 0,T=s.map(v=>Nt(v.ConceptCodeSequence));if(c){p.commentPositionGroup=c;const v=pe({is3DMeasurement:!y,referencedImageId:y},c);p.annotation.data.handles.textBox={hasMoved:!0,worldPosition:v[0]}}if(u){const v=pe({is3DMeasurement:!y,referencedImageId:y},u);p.annotation.data.handles.points=v}return p.finding=b,p.findingSites=T,p.commentGroup=i,p.commentPositionGroup=c,b&&(p.description=b.CodeMeaning),p.annotation.data.label=this.getCornerstoneLabelFromDefaultState(p),{defaultState:p,state:p,NUMGroup:t,scoord:h||g,SCOORDGroup:g,ReferencedSOPSequence:f,ReferencedSOPInstanceUID:I,referencedImageId:y,textBoxPosition:S,ReferencedFrameNumber:m,SCOORD3DGroup:h,FrameOfReferenceUID:O}}static getSetupMeasurementData(e,t,n,a){const o=e.ContentSequence,s=R(o),i=s.find(S=>this.codeValueMatch(S,vr)),c=s.find(S=>this.codeValueMatch(S,Nr)),u=s.find(S=>this.codeValueMatch(S,Er));let l=s.find(S=>this.codeValueMatch(S,Ee));const d=s.find(S=>S.ValueType==="NUM");!l&&d!==null&&d!==void 0&&d.ContentSequence&&(l=R(d.ContentSequence).find(S=>this.codeValueMatch(S,Ee)));const p=s.filter(S=>this.codeValueMatch(S,wr,Ar))||[],g=d||{ContentSequence:s.filter(S=>S.ValueType==="SCOORD"||S.ValueType==="SCOORD3D")},f=this.processSpatialCoordinatesGroup({NUMGroup:g,sopInstanceUIDToImageIdMap:t,metadata:n,findingGroup:i,findingSiteGroups:p,commentGroup:c,commentPositionGroup:u,controlPointsGroup:l,toolType:a}),I=f.state.annotation.metadata.referencedImageId,m=!!f.SCOORD3DGroup,h={referencedImageId:I,is3DMeasurement:m},O=f.SCOORD3DGroup||f.SCOORDGroup,y=pe(h,O);return W(W({},f),{},{is3DMeasurement:m,scoordArgs:h,scoord:O,worldCoords:y})}static generateReferencedSOPSequence(e){let t=e.toolData,n=e.toolTypes,a=e.metadataProvider,o=e.imageId,s=e.sopInstanceUIDsToSeriesInstanceUIDMap,i=e.derivationSourceDatasets;const c=o===Fe?this.getImageIdFromVolume({toolData:t,toolTypes:n}):o,u=a.get("sopCommonModule",c),l=a.get("instance",c),d=u.sopInstanceUID,p=u.sopClassUID,g=l.SeriesInstanceUID;if(s[d]=g,!i.find(m=>m.SeriesInstanceUID===g)){const m=N.generateDerivationSourceDataset(l);i.push(m)}const f=a.get("frameNumber",c),I={ReferencedSOPClassUID:p,ReferencedSOPInstanceUID:d,ReferencedFrameNumber:void 0};return(l&&l.NumberOfFrames&&l.NumberOfFrames>1||Rr.isMultiframeSOPClassUID(p))&&(I.ReferencedFrameNumber=f),I}static getImageIdFromVolume(e){var t,n;let a=e.toolData,o=e.toolTypes;const s=a==null||(t=a[o?.[0]])===null||t===void 0||(t=t.data)===null||t===void 0?void 0:t[0],i=s==null||(n=s.metadata)===null||n===void 0?void 0:n.volumeId,c=Tn.getVolume(i);if(!c)throw new Error("No volume found for ".concat(i));return c.imageIds[0]}static generateReport(e,t,n){var a;let o=[];const s={},i=[],c=N.generateDatasetMeta();let u=!1;Object.keys(e).forEach(g=>{const f=e[g],I=Object.keys(f),m=g===Fe,h=this.generateReferencedSOPSequence({toolData:f,toolTypes:I,metadataProvider:t,imageId:g,sopInstanceUIDsToSeriesInstanceUIDMap:s,derivationSourceDatasets:i});m&&(u=!0);const O=[];I.forEach(y=>{const S=this.getMeasurementGroup(y,f,h,m);S&&O.push(S)}),o=o.concat(O)});const l=new Mr({TID1501MeasurementGroups:o},n),d=new br(i,n),p=l.contentItem(i,W(W({},n),{},{sopInstanceUIDsToSeriesInstanceUIDMap:s}));if(d.dataset=Object.assign(d.dataset,p),d.dataset._meta=c,d.SpecificCharacterSet="ISO_IR 192",(a=d.dataset).InstanceNumber||(a.InstanceNumber=n.InstanceNumber||1),n.predecessorImageId&&Object.assign(d.dataset,t.get(Cr.PREDECESSOR_SEQUENCE,n.predecessorImageId)),u&&(d.dataset.SOPClassUID=Se.sopClassUIDsByName.Comprehensive3DSR,!d.dataset.SOPClassUID))throw new Error("NO sop class defined for Comprehensive3DSR in ".concat(JSON.stringify(Se.sopClassUIDsByName)));return d}static generateToolState(e,t,n,a){if(e.ContentTemplateSequence.TemplateIdentifier!=="1500")throw new Error("This package can currently only interpret DICOM SR TID 1500");const o="Imaging Measurements",s="Measurement Group",i="Tracking Identifier",c="Tracking Unique Identifier",u=e.imageId,l=R(e.ContentSequence).find(Pe(o)),d=R(l.ContentSequence).filter(Pe(s)),p={};return d.forEach(g=>{try{var f;const m=R(g.ContentSequence),O=m.find(T=>T.ConceptNameCodeSequence.CodeMeaning===i).TextValue,y=m.find(T=>T.ConceptNameCodeSequence.CodeMeaning===c),S=y?.UID,b=(a==null||(f=a.getToolClass)===null||f===void 0?void 0:f.call(a,g,e,this.measurementAdapterByToolType))||this.getAdapterForTrackingIdentifier(O)||this.getAdapterForCodeType(g);if(b){var I;const T=b.getMeasurementData(g,t,n,O);T.TrackingUniqueIdentifier=S,T.predecessorImageId=u,console.log("=== ".concat(b.toolType," ===")),console.log(T),p[I=b.toolType]||(p[I]=[]),p[b.toolType].push(T)}}catch(m){console.warn("Unable to generate tool state for",g,m)}}),p}static registerTool(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.toolType;if(this.measurementAdapterByToolType.has(n)){if(!t)throw new Error("The registered tool name ".concat(n," already exists in adapters, use a different toolType or use replace"));typeof t=="function"&&t(this.measurementAdapterByToolType.get(n))}this.measurementAdapterByToolType.set(e.toolType,e),this.measurementAdapterByTrackingIdentifier.set(e.trackingIdentifierTextValue,e)}static registerTrackingIdentifier(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];for(const o of n)this.measurementAdapterByTrackingIdentifier.set(o,e)}static getAdapterForTrackingIdentifier(e){const t=this.measurementAdapterByTrackingIdentifier.get(e);if(t)return t;for(const n of[...this.measurementAdapterByToolType.values()])if(n.isValidCornerstoneTrackingIdentifier(e))return this.measurementAdapterByTrackingIdentifier.set(e,n),n}static getAdapterForCodeType(e){for(const t of this.measurementAdapterByTrackingIdentifier.values())if(t.isValidMeasurement(e))return t}static registerAdapterTypes(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];for(const o of n){this.measurementAdaptersByType.has(o)||this.measurementAdaptersByType.set(o,[]);const s=this.measurementAdaptersByType.get(o);s.indexOf(e)===-1&&s.push(e)}}static getAdaptersForTypes(e,t,n){const a=[];return Oe(a,this.measurementAdaptersByType.get("".concat(e,"-").concat(t,"-").concat(n))),Oe(a,this.measurementAdaptersByType.get("".concat(e,"-").concat(t))),Oe(a,this.measurementAdaptersByType.get(e)),Oe(a,this.measurementAdaptersByType.get(t)),a}}z=N;z.CORNERSTONE_3D_TAG=ge;z.measurementAdapterByToolType=new Map;z.measurementAdaptersByType=new Map;z.measurementAdapterByTrackingIdentifier=new Map;z.codeValueMatch=(r,e,t)=>{const n=r.ConceptNameCodeSequence;if(!n)return;const a=Array.isArray(n)?n[0]:n;if(!a)return;const o=a.CodingSchemeDesignator,s=a.CodeValue;return o==e.CodingSchemeDesignator&&s==e.CodeValue||t&&o==t.CodingSchemeDesignator&&s==t.CodeValue};z.generateDerivationSourceDataset=r=>{const e=dr(r),t=pr(r);return W(W({},e),t)};function Oe(r,e){e!=null&&e.length&&r.push(...e)}class U{static registerType(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=e;t&&(a="".concat(a).concat(a.length?"-":"").concat(t)),n&&(a="".concat(a).concat(a.length?"-":"").concat(n)),N.registerAdapterTypes(this,a)}static getPointsCount(e){const n=e.ValueType==="SCOORD3D"?3:2;return e.GraphicData.length/n}static getGraphicItems(e,t){const n=e.ContentSequence.filter(a=>a.ValueType==="SCOORD"||a.ValueType==="SCOORD3D");return t?n.filter(t):n}static getGraphicItem(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:null;return this.getGraphicItems(e,n&&(o=>o.ValueType===n))[t]}static getGraphicCode(e){const t=e.ConceptNameCodeSequence,n=t.CodeValue,a=t.CodingSchemeDesignator;return"".concat(a,":").concat(n)}static getGraphicType(e){return e.GraphicType}static isValidMeasurement(e){return!1}static init(e,t,n){if(this.toolType=e,U.toolType)throw new Error("Base adapter tool type set to ".concat(this.toolType," while setting ").concat(e));if(this.parentType=n?.parentType,this.trackingIdentifiers=new Set,this.TID300Representation=t,this.parentType){this.trackingIdentifierTextValue="".concat(ge,":").concat(this.parentType,":").concat(this.toolType);const a="".concat(ge,":").concat(this.toolType);this.trackingIdentifiers.add(a)}else this.trackingIdentifierTextValue="".concat(ge,":").concat(e);this.trackingIdentifiers.add(this.trackingIdentifierTextValue),N.registerTool(this)}static registerLegacy(){this.trackingIdentifiers.add("cornerstoneTools@^4.0.0:".concat(this.toolType))}static registerSubType(e,t,n){const a=Object.create(e);return a.init(t,e.TID300Representation,{parentType:e.parentType||e.toolType,replace:n}),a}static isValidCornerstoneTrackingIdentifier(e){return this.trackingIdentifiers.has(e)?!0:e.includes(":")?e.startsWith(this.trackingIdentifierTextValue):!1}static getMeasurementData(e,t,n,a){const o=N.getSetupMeasurementData(e,t,n,this.toolType),s=o.defaultState,i=o.ReferencedFrameNumber;return s.annotation.data={cachedStats:{},frameNumber:i,seriesLevel:a?.indexOf(":Series")>0},s}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.metadata,a=e.finding,o=e.findingSites,s=n.referencedImageId;return{points:Q({is3DMeasurement:t,referencedImageId:s},e.data.handles.points),trackingIdentifierTextValue:this.trackingIdentifierTextValue,findingSites:o||[],finding:a,ReferencedFrameOfReferenceUID:t?n.FrameOfReferenceUID:null}}static getCachedStats(e,t){const n=t.referencedImageId,a=t.volumeId;return e["imageId:".concat(n)]||e["volumeId:".concat(a)]||{}}}var Le;function wt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function he(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?wt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):wt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Ur=D.TID300.ArrowAnnotate,jr=Yt;class an extends U{static getMeasurementData(e,t,n,a){const o=N.getSetupMeasurementData(e,t,n,this.toolType),s=o.state,i=o.SCOORDGroup,c=o.worldCoords,u=o.referencedImageId,l=o.ReferencedFrameNumber,d=s.annotation.data.label;if(c.length===1&&i){const p=n.get("imagePixelModule",u);let g=10,f=10;if(p){const h=p.columns,O=p.rows;g=h/10,f=O/10}const I=i.GraphicData,m=jr(u,[I[0]+g,I[1]+f]);c.push(m)}return s.annotation.data=he(he({},s.annotation.data),{},{text:d,handles:he(he({},s.annotation.data.handles),{},{arrowFirst:!0,points:c}),frameNumber:l}),s}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.metadata,o=e.findingSites,s=e.finding,i=a.referencedImageId,c={is3DMeasurement:t,referencedImageId:i},u=n.handles,l=u.points,d=u.arrowFirst,p=d?l[0]:l[1],g=d?l[1]:l[0],f=E(c,p),I=E(c,g);return{points:[f,I],trackingIdentifierTextValue:this.trackingIdentifierTextValue,findingSites:o||[],finding:s,ReferencedFrameOfReferenceUID:t?a.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}Le=an;Le.init("ArrowAnnotate",Ur),Le.registerLegacy();var ke;function At(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ye(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?At(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):At(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const xr=D.TID300.Bidirectional,Gr="Long Axis",_r="Short Axis";class on extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.scoordArgs,i=a.referencedImageId,c=a.ReferencedFrameNumber,u=e.ContentSequence,l=R(u).find(I=>I.ConceptNameCodeSequence.CodeMeaning===Gr),d=R(u).find(I=>I.ConceptNameCodeSequence.CodeMeaning===_r),p=R(l.ContentSequence).find(I=>I.ValueType==="SCOORD3D"||I.ValueType==="SCOORD"),g=R(d.ContentSequence).find(I=>I.ValueType==="SCOORD3D"||I.ValueType==="SCOORD"),f=[];return f.push(...pe(s,p)),f.push(...pe(s,g)),o.annotation.data=ye(ye({},o.annotation.data),{},{handles:ye(ye({},o.annotation.data.handles),{},{points:[f[0],f[1],f[2],f[3]]}),frameNumber:c}),i&&(o.annotation.data.cachedStats={["imageId:".concat(i)]:{length:l.MeasuredValueSequence.NumericValue,width:d.MeasuredValueSequence.NumericValue,unit:l.MeasuredValueSequence.MeasurementUnitsCodeSequence.CodeValue,widthUnit:d.MeasuredValueSequence.MeasurementUnitsCodeSequence.CodeValue}}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=u.points,g=[p[0],p[1]],f=[p[2],p[3]],I=Math.sqrt(Math.pow(g[0][0]-g[1][0],2)+Math.pow(g[0][1]-g[1][1],2)+Math.pow(g[0][2]-g[1][2],2)),m=Math.sqrt(Math.pow(f[0][0]-f[1][0],2)+Math.pow(f[0][1]-f[1][1],2)+Math.pow(f[0][2]-f[1][2],2));let h,O;I>m?(h=g,O=f):(h=f,O=g);const y=E(d,h[0]),S=E(d,h[1]),b=E(d,O[0]),T=E(d,O[1]),v=super.getCachedStats(c,s),j=v.length,re=v.width,ae=v.unit;return{longAxis:{point1:y,point2:S},shortAxis:{point1:b,point2:T},longAxisLength:j,shortAxisLength:re,unit:ae,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}ke=on;ke.init("Bidirectional",xr),ke.registerLegacy();var Be;function Ut(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function De(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ut(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Ut(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Vr=D.TID300.CobbAngle;class sn extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=c?{["imageId:".concat(c)]:{angle:s?s.MeasuredValueSequence.NumericValue:null}}:{};return o.annotation.data=De(De({},o.annotation.data),{},{handles:De(De({},o.annotation.data.handles),{},{points:[i[0],i[1],i[3]]}),cachedStats:l,frameNumber:u}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=E(d,u.points[0]),g=E(d,u.points[1]),f=E(d,u.points[1]),I=E(d,u.points[2]),m=super.getCachedStats(c,s),h=m.angle;return{point1:p,point2:g,point3:f,point4:I,rAngle:h,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}Be=sn;Be.init("Angle",Vr),Be.registerLegacy();var Ye;function jt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Te(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?jt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):jt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const $r=D.TID300.CobbAngle;class Ue extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,Ue.toolType),o=a.state,s=a.NUMGroup,i=a.referencedImageId,c=a.worldCoords,u=a.ReferencedFrameNumber;return o.annotation.data=Te(Te({},o.annotation.data),{},{handles:Te(Te({},o.annotation.data.handles),{},{points:[c[0],c[1],c[2],c[3]]}),frameNumber:u}),i&&(o.annotation.data.cachedStats={["imageId:".concat(i)]:{angle:s?s.MeasuredValueSequence.NumericValue:null}}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,p=Q({is3DMeasurement:t,referencedImageId:l},u.points),g=w(p,4),f=g[0],I=g[1],m=g[2],h=g[3],O=c["imageId:".concat(l)]||{},y=O.angle;return{point1:f,point2:I,point3:m,point4:h,rAngle:y,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}Ye=Ue;Ye.init("CobbAngle",$r),Ye.registerLegacy();const qr="[hnsf'U]",Fr="HU",Lr="mm2",kr="mm²",Br={[qr]:Fr,[Lr]:kr};function cn(r){return r&&(Br[r]||r)}const Ke=new Set(["Mean","Standard Deviation","Maximum","Minimum"]);function je(r,e){const t={};return r.ContentSequence&&r.ContentSequence.forEach(n=>{if(n.ValueType==="NUM"&&n.ConceptNameCodeSequence){var a,o;const s=n.ConceptNameCodeSequence.CodeMeaning,i=(a=n.MeasuredValueSequence)===null||a===void 0?void 0:a.NumericValue,c=(o=n.MeasuredValueSequence)===null||o===void 0||(o=o.MeasurementUnitsCodeSequence)===null||o===void 0?void 0:o.CodeValue;if(i!==void 0&&e){t[e]||(t[e]={});let u="";c&&(u=Yr(s,c)),t[e][s]={value:i,unit:u}}}}),t}function xe(r){const e={};let t="";const n={Mean:"mean","Standard Deviation":"stdDev",Maximum:"max",Minimum:"min",Area:"area",Radius:"radius",Perimeter:"perimeter",Length:"length",Width:"width"},a={mean:"modalityUnit",stdDev:"modalityUnit",max:"modalityUnit",min:"modalityUnit",area:"areaUnit",radius:"radiusUnit",perimeter:"unit",length:"unit",width:"widthUnit"};for(const s of Object.entries(n)){var o=w(s,2);const i=o[0],c=o[1],u=r[i];if(!u)continue;const l=u.value,d=u.unit;if(l==null||(e[c]=l,!d))continue;const p=cn(d);if(!p)continue;Ke.has(i)&&!t&&(t=p);const g=a[c];g?e[g]||(e[g]=p):e["".concat(c,"Unit")]=p}return e.modalityUnit=t,e}function Yr(r,e){if(!e)return"";const t=e.CodeValue,n=e.CodeMeaning;return t==="1"?!Ke.has(r)&&r==="Area"?"".concat(n,"²"):Ke.has(r)?"":n:t}var ze;function xt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function oe(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?xt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):xt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Kr=D.TID300.Circle;class un extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=o.sopInstanceUid,p=je(e,l)[l]||{};return o.annotation.data=oe(oe({},o.annotation.data),{},{handles:oe(oe({},o.annotation.data.handles),{},{points:i}),frameNumber:u}),c&&(o.annotation.data.cachedStats={["imageId:".concat(c)]:oe({area:s?s.MeasuredValueSequence.NumericValue:0,radius:0,perimeter:0},xe(p))}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=E(d,u.points[0]),g=E(d,u.points[1]),f=super.getCachedStats(c,s),I=f.area,m=f.radius,h=f.max,O=f.min,y=f.stdDev,S=f.mean,b=f.modalityUnit,T=f.radiusUnit,v=f.areaUnit,j=2*Math.PI*m;return{area:I,areaUnit:v,perimeter:j,modalityUnit:b,radiusUnit:T,radius:m,max:h,min:O,stdDev:y,mean:S,points:[p,g],trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}ze=un;ze.init("CircleROI",Kr),ze.registerLegacy();var dn;function Gt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function se(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Gt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Gt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const zr=D.TID300.Ellipse;class Ge extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,Ge.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=o.sopInstanceUid,p=je(e,l)[l]||{};return o.annotation.data=se(se({},o.annotation.data),{},{handles:se(se({},o.annotation.data.handles),{},{points:i}),frameNumber:u}),o.annotation.data.cachedStats=c?{["imageId:".concat(c)]:se({area:s?s.MeasuredValueSequence.NumericValue:0},xe(p))}:{},o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=n.initialRotation||0,d=s.referencedImageId,p={is3DMeasurement:t,referencedImageId:d};let g,f,I,m;l==90||l==270?(f=u.points[2],g=u.points[3],I=u.points[0],m=u.points[1]):(g=u.points[0],f=u.points[1],I=u.points[2],m=u.points[3]);const h=Math.sqrt((g[0]-f[0])**2+(g[1]-f[1])**2+(g[2]-f[2])**2),O=Math.sqrt((I[0]-m[0])**2+(I[1]-m[1])**2+(I[2]-m[2])**2),y=[];h>O?y.push(g,f,I,m):y.push(I,m,g,f);const S=super.getCachedStats(c,s),b=S.area,T=S.max,v=S.min,j=S.mean,re=S.stdDev,ae=S.modalityUnit,Ve=S.areaUnit,Sn=y.map(On=>E(p,On));return{area:b,areaUnit:Ve,max:T,min:v,mean:j,stdDev:re,modalityUnit:ae,points:Sn,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],ReferencedFrameOfReferenceUID:t?s.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}dn=Ge;dn.init("EllipticalROI",zr);var de;function _t(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ie(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?_t(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):_t(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Xr=D.TID300.Polyline;class ln extends U{static isValidMeasurement(e){const t=this.getGraphicItem(e),n=this.getPointsCount(t);return this.getGraphicType(t)==="POLYLINE"&&(n===4||n===5)}static getMeasurementData(e,t,n){var a,o;const s=N.getSetupMeasurementData(e,t,n,this.toolType),i=s.state,c=s.worldCoords,u=s.referencedImageId,l=s.ReferencedFrameNumber,d=c.length===5?c.slice(0,4):c,p=e.ContentSequence.find(T=>T.ValueType==="NUM"&&T.ConceptNameCodeSequence.CodeMeaning==="Area"),g=i.sopInstanceUid,I=je(e,g)[g]||{},m=xe(I),h=p==null||(a=p.MeasuredValueSequence)===null||a===void 0||(a=a[0])===null||a===void 0?void 0:a.MeasurementUnitsCodeSequence,O=h?.CodeValue,y=O?cn(O):m.areaUnit,S=u?{["imageId:".concat(u)]:ie({area:(p==null||(o=p.MeasuredValueSequence)===null||o===void 0||(o=o[0])===null||o===void 0?void 0:o.NumericValue)||0,areaUnit:y},m)}:{},b=[d[0],d[1],d[3],d[2]];return i.annotation.data=ie(ie({},i.annotation.data),{},{handles:ie(ie({},i.annotation.data.handles),{},{points:b}),cachedStats:S,frameNumber:l}),i}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=s.referencedImageId,u=Q({is3DMeasurement:t,referencedImageId:i},n.handles.points),l=super.getCachedStats(n.cachedStats,s),d=l.area,p=l.perimeter,g=l.max,f=l.mean,I=l.stdDev,m=l.areaUnit,h=l.modalityUnit;return{points:[u[0],u[1],u[3],u[2],u[0]],area:d,perimeter:p,max:g,mean:f,stdDev:I,areaUnit:m,modalityUnit:h,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],use3DSpatialCoordinates:t}}}de=ln;de.init("RectangleROI",Xr),de.registerLegacy(),de.registerType("DCM:111030","POLYLINE",4),de.registerType("DCM:111030","POLYLINE",5);var Xe;function Vt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Ce(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Vt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Vt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Hr=D.TID300.Length,Wr="Length";class pn extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.NUMGroup,i=a.worldCoords,c=a.referencedImageId,u=a.ReferencedFrameNumber,l=c?{["imageId:".concat(c)]:{length:s?s.MeasuredValueSequence.NumericValue:0,unit:s.MeasuredValueSequence.MeasurementUnitsCodeSequence.CodeValue}}:{};return o.annotation.data=Ce(Ce({},o.annotation.data),{},{handles:Ce(Ce({},o.annotation.data.handles),{},{points:[i[0],i[1]],activeHandleIndex:0}),cachedStats:l,frameNumber:u}),o}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.cachedStats,c=i===void 0?{}:i,u=n.handles,l=s.referencedImageId,d={is3DMeasurement:t,referencedImageId:l},p=E(d,u.points[0]),g=E(d,u.points[1]),f=super.getCachedStats(c,s),I=f.length;return{point1:p,point2:g,distance:I,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[],use3DSpatialCoordinates:t}}}Xe=pn;Xe.init(Wr,Hr),Xe.registerLegacy();const G=yn.valueTypes,Qr=D.TID300.Polyline;class Jr extends Qr{contentItem(){const e=super.contentItem(),t=this,n=t.props,a=n.controlPoints,o=n.use3DSpatialCoordinates,s=n.ReferencedSOPSequence,i=n.ReferencedFrameOfReferenceUID,c=n.use3DSpatialCoordinates;if(!(a!=null&&a.length))return e;const u=t.flattenPoints({points:a,use3DSpatialCoordinates:o}),l=G.GraphicTypes.MULTIPOINT,d=c?{RelationshipType:G.RelationshipTypes.CONTAINS,ValueType:"SCOORD3D",ConceptNameCodeSequence:[{CodeValue:F.value,CodingSchemeDesignator:F.schemeDesignator,CodeMeaning:F.meaning}],GraphicType:l,GraphicData:u,ReferencedFrameOfReferenceUID:i,ContentSequence:[{RelationshipType:G.RelationshipTypes.SELECTED_FROM,ValueType:G.ValueTypes.IMAGE,ReferencedSOPSequence:s}]}:{RelationshipType:G.RelationshipTypes.CONTAINS,ValueType:"SCOORD",ConceptNameCodeSequence:[{CodeValue:F.value,CodingSchemeDesignator:F.schemeDesignator,CodeMeaning:F.meaning}],GraphicType:l,GraphicData:u,ContentSequence:[{RelationshipType:G.RelationshipTypes.SELECTED_FROM,ValueType:G.ValueTypes.IMAGE,ReferencedSOPSequence:s}]},p=t.props.splineType,g=e,f=g.find(I=>I.ValueType==="NUM");if(f){const I=f.ContentSequence,m=Array.isArray(I)?I:I?[I]:[];f.ContentSequence=[...m,d]}else g.push(d);if(p){const I={RelationshipType:G.RelationshipTypes.HAS_OBS_CONTEXT,ValueType:"TEXT",ConceptNameCodeSequence:{CodeValue:fe.value,CodingSchemeDesignator:fe.schemeDesignator,CodeMeaning:fe.meaning},TextValue:p},m=g.findIndex(O=>O.RelationshipType===G.RelationshipTypes.HAS_OBS_CONTEXT),h=m>=0?m+2:2;g.splice(h,0,I)}return g}}var K;function $t(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function H(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?$t(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):$t(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}class gn extends U{static getMeasurementData(e,t,n){var a,o,s;const i=N.getSetupMeasurementData(e,t,n,this.toolType),c=i.state,u=i.NUMGroup,l=i.worldCoords,d=i.referencedImageId,p=i.ReferencedFrameNumber,g=Mn(l[l.length-1],l[0]);let f=!0;g<this.closedContourThreshold&&(l.pop(),f=!1);let I=(a=(o=c.annotation.data.handles)===null||o===void 0?void 0:o.points)!==null&&a!==void 0?a:[];f&&I.length===0&&(I=[l[0],l[l.length-1]]);const m=c.sopInstanceUid,O=je(e,m)[m]||{},y={CodingSchemeDesignator:fe.schemeDesignator,CodeValue:fe.value},S=u?R(u.ContentSequence):[],b=R(e.ContentSequence),T=(s=S.find(v=>N.codeValueMatch(v,y)))!==null&&s!==void 0?s:b.find(v=>N.codeValueMatch(v,y));return c.annotation.data=H(H({},c.annotation.data),{},{contour:{polyline:l,closed:!f},handles:H(H({},c.annotation.data.handles),{},{points:I}),frameNumber:p},T&&{spline:{type:T.TextValue}}),d&&(c.annotation.data.cachedStats={["imageId:".concat(d)]:H(H({},!f&&u?{area:u.MeasuredValueSequence.NumericValue}:{}),xe(O))}),c}static getTID300RepresentationArguments(e){var t,n;let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const o=e.data,s=e.finding,i=e.findingSites,c=e.metadata,u=o.handles,l=o.contour,d=l.polyline,g=l.closed!==!0,f=c.referencedImageId,I={is3DMeasurement:a,referencedImageId:f},m=Q(I,d);if(!g){const Ve=m[0];m.push(Ve)}const h=(u==null||(t=u.points)===null||t===void 0?void 0:t.length)&&Q(I,u.points),O=super.getCachedStats(o.cachedStats,c),y=O.area,S=O.areaUnit,b=O.modalityUnit,T=O.perimeter,v=O.mean,j=O.max,re=O.stdDev,ae=O.length;return{points:m,controlPoints:h,area:y,areaUnit:S,perimeter:T??ae,modalityUnit:b,mean:v,max:j,stdDev:re,splineType:(n=o.spline)===null||n===void 0?void 0:n.type,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:s,findingSites:i||[],ReferencedFrameOfReferenceUID:a?c.FrameOfReferenceUID:null,use3DSpatialCoordinates:a}}}K=gn;K.closedContourThreshold=1e-5;K.init("PlanarFreehandROI",Jr),K.registerSubType(K,"LivewireContour"),K.registerSubType(K,"SplineROI");var le;function qt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function be(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?qt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):qt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Zr=D.TID300.Point;class _e extends U{static isValidMeasurement(e){const t=this.getGraphicItem(e);return this.getGraphicType(t)==="POINT"&&this.getPointsCount(t)<=2}static getMeasurementData(e,t,n,a){var o,s;const i=N.getSetupMeasurementData(e,t,n,this.toolType),c=i.state,u=i.NUMGroup,l=i.worldCoords,d=i.referencedImageId,p=i.ReferencedFrameNumber,g=d?{["imageId:".concat(d)]:{value:(o=u==null||(s=u.MeasuredValueSequence)===null||s===void 0?void 0:s.NumericValue)!==null&&o!==void 0?o:null}}:{};return c.annotation.data=be(be({},c.annotation.data),{},{handles:be(be({},c.annotation.data.handles),{},{points:l}),cachedStats:g,frameNumber:p,invalidated:!0}),c}static getTID300RepresentationArguments(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const n=e.data,a=e.metadata,o=e.finding,s=e.findingSites,i=a.referencedImageId,c={is3DMeasurement:t,referencedImageId:i},u=n.handles.points;return{points:Q(c,u===void 0?[]:u),trackingIdentifierTextValue:this.trackingIdentifierTextValue,findingSites:s||[],finding:o,ReferencedFrameOfReferenceUID:t?a.FrameOfReferenceUID:null,use3DSpatialCoordinates:t}}}le=_e;le.init("Probe",Zr),le.registerLegacy(),le.registerType("DCM:111030","POINT",1),le.registerType("DCM:111030","POINT",2);var fn;function Ft(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function Re(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Ft(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):Ft(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const ea=D.TID300.Length,Lt=Bt;class mn extends U{static getMeasurementData(e,t,n){const a=N.getSetupMeasurementData(e,t,n,this.toolType),o=a.state,s=a.worldCoords,i=a.ReferencedFrameNumber;return o.annotation.data=Re(Re({},o.annotation.data),{},{handles:Re(Re({},o.annotation.data.handles),{},{points:s}),frameNumber:i}),o}static getTID300RepresentationArguments(e,t){const n=e.data,a=e.finding,o=e.findingSites,s=e.metadata,i=n.handles,c=s.referencedImageId;if(!c)throw new Error("UltrasoundDirectionalTool.getTID300RepresentationArguments: referencedImageId is not defined");const u=Lt(c,i.points[0]),l=Lt(c,i.points[1]),d={x:u[0],y:u[1]},p={x:l[0],y:l[1]};return{point1:d,point2:p,trackingIdentifierTextValue:this.trackingIdentifierTextValue,finding:a,findingSites:o||[]}}}fn=mn;fn.init("UltrasoundDirectionalTool",ea);k.SEGImageNormalizer;Ie.Segmentation;A.DicomMessage;A.DicomMetaDictionary;k.Normalizer;Pn(r=>{Cn(bn,qe.SEGMENTATION_LOAD_PROGRESS,{percentComplete:r})},200);function kt(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(r,a).enumerable})),t.push.apply(t,n)}return t}function ce(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?kt(Object(t),!0).forEach(function(n){P(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):kt(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}const Me=We.data.DicomMetaDictionary,C=Kt,ta=[C.GENERAL_STUDY,C.PATIENT_STUDY,C.PATIENT],na=[C.GENERAL_SERIES],ra=[C.GENERAL_IMAGE,C.IMAGE_PLANE,C.CINE,C.VOI_LUT,C.MODALITY_LUT,C.SOP_COMMON],He={get:function(r,e,t){var n;return(n=He[r])===null||n===void 0?void 0:n.call(He,e,t)},[C.IMAGE_SOP_INSTANCE_REFERENCE]:function(r){const e=q(C.FRAME_MODULE,r),t=e.sopClassUID,n=e.sopInstanceUID,a=e.frameNumber;return e.numberOfFrames>1?{ReferencedSOPClassUID:t,ReferencedSOPInstanceUID:n,ReferencedFrameNumber:a}:{ReferencedSOPClassUID:e.sopClassUID,ReferencedSOPInstanceUID:e.sopInstanceUID}},[C.REFERENCED_SERIES_REFERENCE]:r=>{const e=q(C.SOP_COMMON,r);return{SeriesInstanceUID:q(C.GENERAL_SERIES,r).seriesInstanceUID,ReferencedInstanceSequence:[{ReferencedSOPClassUID:e.sopClassUID,ReferencedSOPInstanceUID:e.sopInstanceUID}]}},[C.PREDECESSOR_SEQUENCE]:r=>{const e=ce({},q(C.SERIES_DATA,r)),t=q(C.GENERAL_IMAGE,r),n=q(C.GENERAL_STUDY,r);return e.InstanceNumber=1+Number(t.instanceNumber),e.PredecessorDocumentsSequence={StudyInstanceUID:n.studyInstanceUID,ReferencedSeriesSequence:{SeriesInstanceUID:e.SeriesInstanceUID,ReferencedSOPSequence:{ReferencedSOPClassUID:t.sopClassUID,ReferencedSOPInstanceUID:t.sopInstanceUID}}},e},[C.STUDY_DATA]:r=>$e(r,ta),[C.SERIES_DATA]:r=>$e(r,na),[C.IMAGE_DATA]:r=>$e(r,ra),[C.RTSS_INSTANCE_DATA]:r=>{const e=q(C.NEW_INSTANCE_DATA,r);return ce(ce({},e),{},{SeriesNumber:"3201",StructureSetROISequence:[],ROIContourSequence:[],RTROIObservationsSequence:[],ReferencedFrameOfReferenceSequence:[],Modality:"RTSTRUCT",SOPClassUID:"1.2.840.10008.5.1.4.1.1.481.3",PositionReferenceIndicator:"",StructureSetLabel:"",StructureSetName:"",StructureSetDate:Me.date(),StructureSetTime:Me.time()})},[C.NEW_INSTANCE_DATA]:r=>{const e=q(C.STUDY_DATA,r);return ce(ce({},e),{},{SeriesNumber:"50000",InstanceNumber:"1",OperatorsName:"",ReferringPhysicianName:"",SpecificCharacterSet:"ISO_IR 192",Manufacturer:"cs3d",SOPInstanceUID:Me.uid(),SeriesInstanceUID:Me.uid()})},[C.RTSS_CONTOUR]:()=>yr,[C.SR_ANNOTATION]:()=>ot};Rn(He.get,9023);var L;const aa=D.TID300.Point;class In extends _e{static getMeasurementData(e,t,n,a){const o=super.getMeasurementData(e,t,n,a),s=o.annotation.data;return s.isPoint=a.indexOf("Point")!==-1,o}static getTID300RepresentationArguments(e){const t=super.getTID300RepresentationArguments(e),n=e.data;return n.isPoint&&(n.seriesLevel?t.trackingIdentifierTextValue=this.trackingSeriesPointIdentifier:t.trackingIdentifierTextValue=this.trackingPointIdentifier),n.seriesLevel&&(t.trackingIdentifierTextValue=this.trackingSeriesIdentifier),t.points.length||t.points.push({x:0,y:0}),t}}L=In;L.init("KeyImage",aa,{parentType:_e.toolType});L.trackingSeriesIdentifier="".concat(L.trackingIdentifierTextValue,":Series");L.trackingPointIdentifier="".concat(L.trackingIdentifierTextValue,":Point");L.trackingSeriesPointIdentifier="".concat(L.trackingIdentifierTextValue,":SeriesPoint");const oa={BaseAdapter3D:U,Bidirectional:on,CobbAngle:Ue,Angle:sn,Length:pn,CircleROI:un,EllipticalROI:Ge,RectangleROI:ln,ArrowAnnotate:an,Probe:_e,PlanarFreehandROI:gn,UltrasoundDirectional:mn,KeyImage:In,MeasurementReport:N,CodeScheme:en,CORNERSTONE_3D_TAG:ge,COMMENT_CODE:Ne,NO_IMAGE_ID:Fe,TEXT_ANNOTATION_POSITION:ve};A.Colors;A.BitArray;const ga={Cornerstone:sr,Cornerstone3D:oa};export{Fe as NO_IMAGE_ID,ga as adaptersSR};
|