UNPKG

modified-dicom-pacs

Version:

A modified version of DICOM PACS implementation

2 lines 14.1 kB
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{1032:function(e,t,n){"use strict";n.r(t);var r=n(63),a=n(0),s=n.n(a),i=n(17),o=n(1),u=n.n(o),c=n(1059),f=n.n(c),d=n(272),l=n(1054),p=n(1055),y=n(274);function v(e){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function I(e,t,n,r,a,s,i){try{var o=e[s](i),u=o.value}catch(e){return void n(e)}o.done?t(u):Promise.resolve(u).then(r,a)}function h(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function b(e){return(b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S(e,t){return(S=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var g=i.a.log,w=i.a.metadata,U=i.a.utils.studyMetadataManager,O=w.OHIFStudyMetadata,j=function(e){function t(){var e,n,r,a;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t);for(var s=arguments.length,i=new Array(s),o=0;o<s;o++)i[o]=arguments[o];return r=this,n=!(a=(e=b(t)).call.apply(e,[this].concat(i)))||"object"!==v(a)&&"function"!=typeof a?m(r):a,D(m(n),"state",{studies:null,server:null,studyInstanceUIDs:null,seriesInstanceUIDs:null,error:null,loading:!0}),n}var n,r,a,o,u;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&S(e,t)}(t,e),n=t,(r=[{key:"parseQueryAndRetrieveDICOMWebData",value:function(e){var t=this;return new Promise((function(n,r){var a=e.url;if(!a)return r(new Error("No URL was specified. Use ?url=$yourURL"));var s=new XMLHttpRequest;s.addEventListener("error",(function(e){g.warn("An error occurred while retrieving the JSON data"),r(e)})),s.addEventListener("load",(function(a){404===a.target.status&&r(new Error("No JSON data found")),s.responseText||(g.warn("Response was undefined"),r(new Error("Response was undefined"))),g.info(JSON.stringify(s.responseText,null,2));var o=JSON.parse(s.responseText);if(o.servers){e.studyInstanceUIDs||(g.warn("No study instance uids specified"),r(new Error("No study instance uids specified")));var u=o.servers.dicomWeb[0];u.type="dicomWeb",g.warn("Activating server",u),t.props.activateServer(u);var c=e.studyInstanceUIDs.split(";"),f=e.seriesInstanceUIDs?e.seriesInstanceUIDs.split(";"):[];n({server:u,studyInstanceUIDs:c,seriesInstanceUIDs:f})}else{var d,l,p=i.a.cornerstone.metadataProvider;o.studies.forEach((function(e){d=e.StudyInstanceUID,e.series.forEach((function(e){l=e.SeriesInstanceUID,e.instances.forEach((function(e){var t=e.url,n=e.metadata;p.addInstance(n),p.addImageIdToUIDs(t,{StudyInstanceUID:d,SeriesInstanceUID:l,SOPInstanceUID:n.SOPInstanceUID})}))}))})),n({studies:o.studies,studyInstanceUIDs:[]})}})),g.info("Sending Request to: ".concat(a)),s.open("GET",a),s.setRequestHeader("Accept","application/json"),s.send()}))}},{key:"componentDidMount",value:(o=regeneratorRuntime.mark((function e(){var t,n,r,a,s,i,o,u,c,d;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,t=(t=this.props.location.search).slice(1,t.length),n=f.a.parse(t),e.next=6,this.parseQueryAndRetrieveDICOMWebData(n);case 6:r=e.sent,a=r.server,s=r.studies,i=r.studyInstanceUIDs,o=r.seriesInstanceUIDs,s&&(u=R(s),c=u.studies,d=u.studyInstanceUIDs,s=c,i=d),this.setState({studies:s,server:a,studyInstanceUIDs:i,seriesInstanceUIDs:o,loading:!1}),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),this.setState({error:e.t0.message,loading:!1});case 18:case"end":return e.stop()}}),e,this,[[0,15]])})),u=function(){var e=this,t=arguments;return new Promise((function(n,r){var a=o.apply(e,t);function s(e){I(a,n,r,s,i,"next",e)}function i(e){I(a,n,r,s,i,"throw",e)}s(void 0)}))},function(){return u.apply(this,arguments)})},{key:"render",value:function(){var e=this.state.error?"Error: ".concat(JSON.stringify(this.state.error)):"Loading...";return this.state.error||this.state.loading?s.a.createElement(y.a,{message:e,showGoBackButton:this.state.error}):this.state.studies?s.a.createElement(l.a,{studies:this.state.studies}):s.a.createElement(p.a,{studyInstanceUIDs:this.state.studyInstanceUIDs,seriesInstanceUIDs:this.state.seriesInstanceUIDs,server:this.state.server})}}])&&h(n.prototype,r),a&&h(n,a),t}(a.Component);D(j,"propTypes",{location:u.a.object,store:u.a.object,setServers:u.a.func});var R=function(e){U.purge();var t=new Set;return{studies:e.map((function(e){var n=new O(e,e.StudyInstanceUID),r=d.c.modules.sopClassHandlerModule;return e.displaySets=e.displaySets||n.createDisplaySets(r),U.add(n),t.add(e.StudyInstanceUID),e})),studyInstanceUIDs:Array.from(t)}},x=j,A=Object(r.b)(null,(function(e){return{activateServer:function(t){e({type:"ACTIVATE_SERVER",server:t})}}}))(x);t.default=A},1051:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0);function a(e){var t=Object(r.useRef)();return Object(r.useEffect)((function(){t.current=e}),[e]),t.current}},1053:function(e,t,n){var r=n(662);e.exports=function(e,t){return r(t,(function(t){return e[t]}))}},1055:function(e,t,n){"use strict";var r=n(63),a=n(0),s=n.n(a),i=n(95),o=n(179),u=n(147),c=n(9),f=n(1051),d=n(1054),l=n(1),p=n.n(l),y=n(272),v=n(14),I=n(83),h=n(274);function b(e,t,n,r,a,s,i){try{var o=e[s](i),u=o.value}catch(e){return void n(e)}o.done?t(u):Promise.resolve(u).then(r,a)}function m(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var s=e.apply(t,n);function i(e){b(s,r,a,i,o,"next",e)}function o(e){b(s,r,a,i,o,"throw",e)}i(void 0)}))}}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)))return;var n=[],r=!0,a=!1,s=void 0;try{for(var i,o=e[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,s=e}finally{try{r||null==o.return||o.return()}finally{if(a)throw s}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function D(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var g=i.a.OHIFStudyMetadata,w=i.a.OHIFSeriesMetadata,U=o.a.retrieveStudiesMetadata,O=o.a.deleteStudyMetadataPromise,j=u.a.studyMetadataManager,R=u.a.makeCancelable,x=function(e,t,n,r){var a=!1;return r||(a=A(e,t,n)),a},A=function(e,t,n){var r,a,s,i,o,u,c,f=!1;if(Object.keys(n).length>0){var d=n.seriesInstanceUID,l=(r=t.getDisplaySets(),a=d,s=function(e,t){return t.SeriesInstanceUID===e},i=D(r),o=[],u=0,(c=a.split(",")).forEach((function(e){var t=i.findIndex(s.bind(void 0,e));if(t>=0){var n=S(i.splice(t,1),1)[0];o[u]=n,u++}})),{promoted:u===c.length,data:[].concat(o,D(i))});e.displaySets=l.data,f=l.promoted}return f},E=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=t.seriesInstanceUID,a=!0;if(!r)return a;var s=r.split(","),i=function(){if(l.length===s.length)return l.every((function(e){return s.some((function(t){return t===e.SeriesInstanceUID}))}))},o=function(){for(var e=!0,t=0;t<s.length;t++){var n=s[t],r=l[t];if(!r||r.SeriesInstanceUID!==n){e=!1;break}}return e},u=e.series,c=void 0===u?[]:u,f=e.displaySets,d=void 0===f?[]:f,l=n?c:d,p=n?i:o;return a=!!l&&p()},C=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!e){var r=n.show,a=void 0===r?function(){}:r;a({message:t})}},P=function(e,t){var n=y.c.modules.sopClassHandlerModule,r=e.getData(),a=new w(t,r);e.getSeriesByUID(t.SeriesInstanceUID)?e.updateSeries(t.SeriesInstanceUID,a):e.addSeries(a),e.createAndAddDisplaySetsForSeries(n,a),r.displaySets=e.getDisplaySets(),r.derivedDisplaySets=e.getDerivedDatasets({Modality:t.Modality}),k(r,e)},k=function(e,t){var n=e.StudyInstanceUID;j.get(n)||j.add(t)},M=function(e,t){var n=y.c.modules.sopClassHandlerModule;e.displaySets||(e.displaySets=t.createDisplaySets(n)),e.derivedDisplaySets&&t._addDerivedDisplaySets(e.derivedDisplaySets)},T=function(e){return{StudyInstanceUID:e.StudyInstanceUID,series:e.series.map((function(e){return{SeriesInstanceUID:e.SeriesInstanceUID}}))}};function N(e){var t,n,r=e.server,i=e.studyInstanceUIDs,o=e.seriesInstanceUIDs,u=e.clearViewportSpecificData,l=e.setStudyData,p=S(Object(a.useState)(!1),2),y=p[0],b=p[1],w=S(Object(a.useState)([]),2),A=w[0],N=w[1],_=S(Object(a.useState)(!1),2),H=_[0],J=_[1],L=Object(v.R)(),q=Object(a.useContext)(I.c).appConfig,F=void 0===q?{}:q,V=F.filterQueryParam,Q=void 0!==V&&V,W=F.maxConcurrentMetadataRequests,B=function(e,n){if(Array.isArray(e)&&e.length>0){var r=e.map((function(e){l(e.StudyInstanceUID,T(e));var r=new g(e,e.StudyInstanceUID);return M(e,r),k(e,r),t[e.StudyInstanceUID]=R(G(r)).then((function(t){t&&!t.isCanceled&&function(e,t,n){x(e,t,n,Q)&&u(0);var r=E(e,n,Q);C(r,"Query parameters were not totally applied. It might be using original series list for given study.",L),N([].concat(D(A),[e]))}(e,r,n)})).catch((function(e){e&&!e.isCanceled&&(b(e),c.a.error(e))})).finally((function(){J(!0)})),e}));N(r)}},G=function(){var e=m(regeneratorRuntime.mark((function e(t){var n,r,a,s,i,o;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.getData(),r=n.seriesLoader){e.next=3;break}return e.abrupt("return");case 3:return a=function(){var e=m(regeneratorRuntime.mark((function e(){var n;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.hasNext()){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,r.next();case 4:return n=e.sent,P(t,n),N((function(e){return D(e)})),e.abrupt("return",a());case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),s=W||t.getSeriesCount(),i=Array(s).fill(null).map(a),e.next=8,Promise.all(i);case 8:return o=e.sent,J(!0),e.abrupt("return",o);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),K=function(){var e=m(regeneratorRuntime.mark((function e(){var t,a,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:try{t={},a=o&&o[0],s=[r,i],a&&(t.seriesInstanceUID=a,Q&&s.push(t)),(F.splitQueryParameterCalls||F.enableGoogleCloudAdapter)&&s.push(!0),n[i]=R(U.apply(void 0,s)).then((function(e){e&&!e.isCanceled&&B(e,t)})).catch((function(e){e&&!e.isCanceled&&(b(e),c.a.error(e))}))}catch(e){e&&(b(e),c.a.error(e))}case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),X=Object(a.useCallback)((function(){for(var e in n)"cancel"in n[e]&&n[e].cancel();for(var r in t)"cancel"in t[r]&&(t[r].cancel(),O(r),j.remove(r))})),$=Object(f.a)(i);if(Object(a.useEffect)((function(){!($&&$.every((function(e){return i.includes(e)})))&&(j.purge(),X())}),[$,X,i]),Object(a.useEffect)((function(){return t={},n={},K(),function(){X()}}),[]),y){var z=JSON.stringify(y);return z.includes("404")||z.includes("NOT_FOUND")?s.a.createElement(h.a,null):s.a.createElement(h.a,{message:"Failed to retrieve study data"})}return s.a.createElement(d.a,{studies:A,isStudyLoaded:H,studyInstanceUIDs:i})}N.propTypes={studyInstanceUIDs:p.a.array.isRequired,seriesInstanceUIDs:p.a.array,server:p.a.object,clearViewportSpecificData:p.a.func.isRequired,setStudyData:p.a.func.isRequired};var _=N,H=n(17).a.redux.actions,J=H.clearViewportSpecificData,L=H.setStudyData,q=function(e){return!0===e.active},F=Object(r.b)((function(e,t){var n=e.servers.servers.find(q);return{server:t.server||n}}),(function(e){return{setStudyData:function(t,n){e(L(t,n))},clearViewportSpecificData:function(){e(J())}}}))(_);t.a=F},1056:function(e,t,n){var r=n(1053),a=n(273);e.exports=function(e){return null==e?[]:r(e,a(e))}},1059:function(e,t,n){"use strict";t.decode=t.parse=n(1060),t.encode=t.stringify=n(1061)},1060:function(e,t,n){"use strict";function r(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,t,n,s){t=t||"&",n=n||"=";var i={};if("string"!=typeof e||0===e.length)return i;var o=/\+/g;e=e.split(t);var u=1e3;s&&"number"==typeof s.maxKeys&&(u=s.maxKeys);var c=e.length;u>0&&c>u&&(c=u);for(var f=0;f<c;++f){var d,l,p,y,v=e[f].replace(o,"%20"),I=v.indexOf(n);I>=0?(d=v.substr(0,I),l=v.substr(I+1)):(d=v,l=""),p=decodeURIComponent(d),y=decodeURIComponent(l),r(i,p)?a(i[p])?i[p].push(y):i[p]=[i[p],y]:i[p]=y}return i};var a=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},1061:function(e,t,n){"use strict";var r=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,n,o){return t=t||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?s(i(e),(function(i){var o=encodeURIComponent(r(i))+n;return a(e[i])?s(e[i],(function(e){return o+encodeURIComponent(r(e))})).join(t):o+encodeURIComponent(r(e[i]))})).join(t):o?encodeURIComponent(r(o))+n+encodeURIComponent(r(e)):""};var a=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function s(e,t){if(e.map)return e.map(t);for(var n=[],r=0;r<e.length;r++)n.push(t(e[r],r));return n}var i=Object.keys||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}}}]); //# sourceMappingURL=ConnectedStandaloneRouting.bundle.d8e2ba2b6c13b4ff7aed.js.map