UNPKG

modified-dicom-pacs

Version:

A modified version of DICOM PACS implementation

2 lines 4.57 kB
"use strict";(globalThis.webpackChunk=globalThis.webpackChunk||[]).push([[862],{49862:(e,t,n)=>{n.r(t),n.d(t,{default:()=>E});var r=n(41766),s=n(11374),i=n.n(s),o=n(5085),a=n(39371),l=n(219),c=n(92136),u=n(80619);function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},m.apply(this,arguments)}function d(e){const{displaySets:t,viewportId:n,servicesManager:s,extensionManager:i}=e,{measurementService:d,cornerstoneViewportService:E,viewportGridService:v,viewportActionCornersService:f}=s.services,S=t[0],{t:I}=(0,u.Bd)("Common"),[w]=(0,o.ih)(),{activeViewportId:b}=w,[g,h]=(0,l.B)(),[y,V]=(0,r.useState)(!1),[D,T]=(0,r.useState)(null),[N,C]=(0,r.useState)(null),{trackedSeries:x}=g.context,{SeriesInstanceUID:O}=S,k=(0,r.useCallback)((()=>{const e=E.getCornerstoneViewport(n);if(e instanceof c.BaseVolumeViewport){const t=e?.getCurrentImageId();if(!t)return void(y&&V(!1))}x.includes(O)!==y&&V(!y)}),[y,g,n,O]),A=(0,r.useCallback)((e=>{e.detail.element!==N&&(e.detail.element?.addEventListener(c.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,k),C(e.detail.element))}),[k,N]),M=(0,r.useCallback)((()=>{N?.removeEventListener(c.Enums.Events.VOLUME_VIEWPORT_NEW_VOLUME,k)}),[k,N]);(0,r.useEffect)(k,[k]),(0,r.useEffect)((()=>{const{unsubscribe:e}=E.subscribe(E.EVENTS.VIEWPORT_DATA_CHANGED,(e=>{e.viewportId===n&&k()}));return()=>{e()}}),[k,n]),(0,r.useEffect)((()=>y?(a.annotation.config.style.setViewportToolStyles(n,{global:{lineDash:""}}),void E.getRenderingEngine().renderViewport(n)):(a.annotation.config.style.setViewportToolStyles(n,{global:{lineDash:"4,4"}}),E.getRenderingEngine().renderViewport(n),()=>{a.annotation.config.style.setViewportToolStyles(n,{})})),[y]),(0,r.useEffect)((()=>{const e=d.EVENTS.MEASUREMENT_ADDED,t=d.EVENTS.RAW_MEASUREMENT_ADDED,r=[];return[e,t].forEach((e=>{r.push(d.subscribe(e,(({source:e,measurement:t})=>{const{activeViewportId:r}=v.getState();if(n===r){const{referenceStudyUID:e,referenceSeriesUID:r,uid:s}=t;h("SET_DIRTY",{SeriesInstanceUID:r}),h("TRACK_SERIES",{viewportId:n,StudyInstanceUID:e,SeriesInstanceUID:r,measurementId:s})}})).unsubscribe)})),()=>{r.forEach((e=>{e()}))}}),[d,h,n,v]);const R=(0,r.useCallback)((e=>{const t=function(e,t,n,r){const{measurementService:s,viewportGridService:i}=t.services,o=s.getMeasurements(),{activeViewportId:a,viewports:l}=i.getState(),{displaySetInstanceUIDs:c}=l.get(a),{trackedSeries:u}=r.context,m=o.filter((e=>u.includes(e.referenceSeriesUID)&&c.includes(e.displaySetInstanceUID)));if(!m.length)return;const d=m.length,p=m.map((e=>e.uid));let E=p.findIndex((e=>e===n));-1===E?E=0:(E+=e,E<0?E=d-1:E===d&&(E=0));return p[E]}(e,s,D,g);t&&(T(t),d.jumpToMeasurement(n,t))}),[d,s,D,g,n]);(0,r.useEffect)((()=>{const e=function(e,t){if(!e)return null;return r.createElement("div",{className:"relative"},r.createElement(o.m_,{position:"bottom-left",content:r.createElement("div",{className:"flex py-2"},r.createElement("div",{className:"flex pt-1"},r.createElement(o.In,{name:"info-link",className:"text-primary-main w-4"})),r.createElement("div",{className:"ml-4 flex"},r.createElement("span",{className:"text-common-light text-base"},e?r.createElement(r.Fragment,null,t("Series is tracked and can be viewed in the measurement panel")):r.createElement(r.Fragment,null,t("Measurements for untracked series will not be shown in the measurements panel")))))},r.createElement(o.In,{name:"viewport-status-tracked",className:"text-aqua-pale"})))}(y,I),t=p(y,R,n===b);f.setComponents([{viewportId:n,id:"viewportStatusComponent",component:e,indexPriority:-100,location:f.LOCATIONS.topLeft},{viewportId:n,id:"viewportActionArrowsComponent",component:t,indexPriority:0,location:f.LOCATIONS.topRight}])}),[b,y,R,f,n]);return r.createElement(r.Fragment,null,r.createElement("div",{className:"relative flex h-full w-full flex-row overflow-hidden"},(()=>{const{component:t}=i.getModuleEntry("@ohif/extension-cornerstone.viewportModule.cornerstone");return r.createElement(t,m({},e,{onElementEnabled:t=>{e.onElementEnabled?.(t),A(t)},onElementDisabled:M}))})()))}d.propTypes={displaySets:i().arrayOf(i().object.isRequired).isRequired,viewportId:i().string.isRequired,dataSource:i().object,children:i().node,customProps:i().object},d.defaultProps={customProps:{}};const p=(e,t,n)=>e?r.createElement(o.$I,{onArrowsClick:e=>t(e),className:n?"visible":"invisible group-hover:visible"}):null;const E=d}}]); //# sourceMappingURL=862.bundle.a1442fe06bd57f283389.js.map