UNPKG

modified-dicom-pacs

Version:

A modified version of DICOM PACS implementation

2 lines 10.5 kB
(self.webpackChunk_name_=self.webpackChunk_name_||[]).push([[888],{1888:function(e,n){var r={Unkown:0,Grayscale:1,AdobeRGB:2,RGB:3,CYMK:4},o=function(){"use strict";var e=new Int32Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]),n=4017,o=799,a=3406,t=2276,s=1567,i=3784,c=5793,l=2896;function f(){}function u(e,n){for(var r,o,a=0,t=[],s=16;s>0&&!e[s-1];)s--;t.push({children:[],index:0});var i,c=t[0];for(r=0;r<s;r++){for(o=0;o<e[r];o++){for((c=t.pop()).children[c.index]=n[a];c.index>0;)c=t.pop();for(c.index++,t.push(c);t.length<=r;)t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i;a++}r+1<s&&(t.push(i={children:[],index:0}),c.children[c.index]=i.children,c=i)}return t[0].children}function h(e,n,r){return 64*((e.blocksPerLine+1)*n+r)}function b(n,r,o,a,t,s,i,c,l){o.precision,o.samplesPerLine,o.scanLines;var f=o.mcusPerLine,u=o.progressive,b=(o.maxH,o.maxV,r),v=0,m=0;function p(){if(m>0)return m--,v>>m&1;if(255==(v=n[r++])){var e=n[r++];if(e)throw"unexpected marker: "+(v<<8|e).toString(16)}return m=7,v>>>7}function d(e){for(var n,r=e;null!==(n=p());){if("number"==typeof(r=r[n]))return r;if("object"!=typeof r)throw"invalid huffman sequence"}return null}function k(e){for(var n=0;e>0;){var r=p();if(null===r)return;n=n<<1|r,e--}return n}function w(e){var n=k(e);return n>=1<<e-1?n:n+(-1<<e)+1}var C=0;var P,g=0;function y(e,n,r,o,a){var t=r%f;n(e,h(e,(r/f|0)*e.v+o,t*e.h+a))}function D(e,n,r){n(e,h(e,r/e.blocksPerLine|0,r%e.blocksPerLine))}var L,x,T,A,U,I,q=a.length;I=u?0===s?0===c?function(e,n){var r=d(e.huffmanTableDC),o=0===r?0:w(r)<<l;e.blockData[n]=e.pred+=o}:function(e,n){e.blockData[n]|=p()<<l}:0===c?function(n,r){if(C>0)C--;else for(var o=s,a=i;o<=a;){var t=d(n.huffmanTableAC),c=15&t,f=t>>4;if(0!==c){var u=e[o+=f];n.blockData[r+u]=w(c)*(1<<l),o++}else{if(f<15){C=k(f)+(1<<f)-1;break}o+=16}}}:function(n,r){for(var o=s,a=i,t=0;o<=a;){var c=e[o];switch(g){case 0:var f=d(n.huffmanTableAC),u=15&f;if(t=f>>4,0===u)t<15?(C=k(t)+(1<<t),g=4):(t=16,g=1);else{if(1!==u)throw"invalid ACn encoding";P=w(u),g=t?2:3}continue;case 1:case 2:n.blockData[r+c]?n.blockData[r+c]+=p()<<l:0==--t&&(g=2==g?3:0);break;case 3:n.blockData[r+c]?n.blockData[r+c]+=p()<<l:(n.blockData[r+c]=P<<l,g=0);break;case 4:n.blockData[r+c]&&(n.blockData[r+c]+=p()<<l)}o++}4===g&&0==--C&&(g=0)}:function(n,r){var o=d(n.huffmanTableDC),a=0===o?0:w(o);n.blockData[r]=n.pred+=a;for(var t=1;t<64;){var s=d(n.huffmanTableAC),i=15&s,c=s>>4;if(0!==i){var l=e[t+=c];n.blockData[r+l]=w(i),t++}else{if(c<15)break;t+=16}}};var G,M,z,H,R=0;for(M=1==q?a[0].blocksPerLine*a[0].blocksPerColumn:f*o.mcusPerColumn,t||(t=M);R<M;){for(x=0;x<q;x++)a[x].pred=0;if(C=0,1==q)for(L=a[0],U=0;U<t;U++)D(L,I,R),R++;else for(U=0;U<t;U++){for(x=0;x<q;x++)for(z=(L=a[x]).h,H=L.v,T=0;T<H;T++)for(A=0;A<z;A++)y(L,I,R,T,A);R++}if(m=0,(G=n[r]<<8|n[r+1])<=65280)throw"marker was not found";if(!(G>=65488&&G<=65495))break;r+=2}return r-b}function v(e,r,f){var u,h,b,v,m,p,d,k,w,C,P=e.quantizationTable;for(C=0;C<64;C++)f[C]=e.blockData[r+C]*P[C];for(C=0;C<8;++C){var g=8*C;0!==f[1+g]||0!==f[2+g]||0!==f[3+g]||0!==f[4+g]||0!==f[5+g]||0!==f[6+g]||0!==f[7+g]?(u=c*f[0+g]+128>>8,h=c*f[4+g]+128>>8,b=f[2+g],v=f[6+g],m=l*(f[1+g]-f[7+g])+128>>8,k=l*(f[1+g]+f[7+g])+128>>8,p=f[3+g]<<4,d=f[5+g]<<4,w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+128>>8,b=b*s-v*i+128>>8,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*n+2048>>12,p=p*n-d*o+2048>>12,d=w,f[0+g]=u+k,f[7+g]=u-k,f[1+g]=h+d,f[6+g]=h-d,f[2+g]=b+p,f[5+g]=b-p,f[3+g]=v+m,f[4+g]=v-m):(w=c*f[0+g]+512>>10,f[0+g]=w,f[1+g]=w,f[2+g]=w,f[3+g]=w,f[4+g]=w,f[5+g]=w,f[6+g]=w,f[7+g]=w)}for(C=0;C<8;++C){var y=C;0!==f[8+y]||0!==f[16+y]||0!==f[24+y]||0!==f[32+y]||0!==f[40+y]||0!==f[48+y]||0!==f[56+y]?(u=c*f[0+y]+2048>>12,h=c*f[32+y]+2048>>12,b=f[16+y],v=f[48+y],m=l*(f[8+y]-f[56+y])+2048>>12,k=l*(f[8+y]+f[56+y])+2048>>12,p=f[24+y],d=f[40+y],w=u-h+1>>1,u=u+h+1>>1,h=w,w=b*i+v*s+2048>>12,b=b*s-v*i+2048>>12,v=w,w=m-d+1>>1,m=m+d+1>>1,d=w,w=k+p+1>>1,p=k-p+1>>1,k=w,w=u-v+1>>1,u=u+v+1>>1,v=w,w=h-b+1>>1,h=h+b+1>>1,b=w,w=m*t+k*a+2048>>12,m=m*a-k*t+2048>>12,k=w,w=p*o+d*n+2048>>12,p=p*n-d*o+2048>>12,d=w,f[0+y]=u+k,f[56+y]=u-k,f[8+y]=h+d,f[48+y]=h-d,f[16+y]=b+p,f[40+y]=b-p,f[24+y]=v+m,f[32+y]=v-m):(w=c*f[C+0]+8192>>14,f[0+y]=w,f[8+y]=w,f[16+y]=w,f[24+y]=w,f[32+y]=w,f[40+y]=w,f[48+y]=w,f[56+y]=w)}for(C=0;C<64;++C){var D=r+C,L=f[C];L=L<=-2056/e.bitConversion?0:L>=2024/e.bitConversion?255/e.bitConversion:L+2056/e.bitConversion>>4,e.blockData[D]=L}}function m(e,n){for(var r=n.blocksPerLine,o=n.blocksPerColumn,a=new Int32Array(64),t=0;t<o;t++)for(var s=0;s<r;s++){v(n,h(n,t,s),a)}return n.blockData}function p(e){return e<=0?0:e>=255?255:0|e}return f.prototype={load:function(e){var n=function(e){this.parse(e),this.onload&&this.onload()}.bind(this);if(e.indexOf("data:")>-1){for(var r=e.indexOf("base64,")+7,o=atob(e.substring(r)),a=new Uint8Array(o.length),t=o.length-1;t>=0;t--)a[t]=o.charCodeAt(t);n(o)}else{var s=new XMLHttpRequest;s.open("GET",e,!0),s.responseType="arraybuffer",s.onload=function(){var e=new Uint8Array(s.response);n(e)}.bind(this),s.send(null)}},parse:function(n){function o(){var e=n[c]<<8|n[c+1];return c+=2,e}function a(){var e=o(),r=n.subarray(c,c+e-2);return c+=r.length,r}function t(e){for(var n=Math.ceil(e.samplesPerLine/8/e.maxH),r=Math.ceil(e.scanLines/8/e.maxV),o=0;o<e.components.length;o++){J=e.components[o];var a=Math.ceil(Math.ceil(e.samplesPerLine/8)*J.h/e.maxH),t=Math.ceil(Math.ceil(e.scanLines/8)*J.v/e.maxV),s=n*J.h,i=64*(r*J.v)*(s+1);J.blockData=new Int16Array(i),J.blocksPerLine=a,J.blocksPerColumn=t}e.mcusPerLine=n,e.mcusPerColumn=r}var s,i,c=0,l=(n.length,null),f=null,h=[],v=[],p=[],d=o();if(65496!=d)throw"SOI not found";for(d=o();65497!=d;){var k,w;switch(d){case 65504:case 65505:case 65506:case 65507:case 65508:case 65509:case 65510:case 65511:case 65512:case 65513:case 65514:case 65515:case 65516:case 65517:case 65518:case 65519:case 65534:var C=a();65504===d&&74===C[0]&&70===C[1]&&73===C[2]&&70===C[3]&&0===C[4]&&(l={version:{major:C[5],minor:C[6]},densityUnits:C[7],xDensity:C[8]<<8|C[9],yDensity:C[10]<<8|C[11],thumbWidth:C[12],thumbHeight:C[13],thumbData:C.subarray(14,14+3*C[12]*C[13])}),65518===d&&65===C[0]&&100===C[1]&&111===C[2]&&98===C[3]&&101===C[4]&&0===C[5]&&(f={version:C[6],flags0:C[7]<<8|C[8],flags1:C[9]<<8|C[10],transformCode:C[11]});break;case 65499:for(var P=o()+c-2;c<P;){var g=n[c++],y=new Int32Array(64);if(g>>4==0)for(k=0;k<64;k++){y[e[k]]=n[c++]}else{if(g>>4!=1)throw"DQT: invalid table spec";for(k=0;k<64;k++){y[e[k]]=o()}}h[15&g]=y}break;case 65472:case 65473:case 65474:if(s)throw"Only single frame JPEGs supported";o(),(s={}).extended=65473===d,s.progressive=65474===d,s.precision=n[c++],s.scanLines=o(),s.samplesPerLine=o(),s.components=[],s.componentIds={};var D,L=n[c++],x=0,T=0;for(E=0;E<L;E++){D=n[c];var A=n[c+1]>>4,U=15&n[c+1];x<A&&(x=A),T<U&&(T=U);var I=n[c+2];w=s.components.push({h:A,v:U,quantizationTable:h[I],quantizationTableId:I,bitConversion:255/((1<<s.precision)-1)}),s.componentIds[D]=w-1,c+=3}s.maxH=x,s.maxV=T,t(s);break;case 65476:var q=o();for(E=2;E<q;){var G=n[c++],M=new Uint8Array(16),z=0;for(k=0;k<16;k++,c++)z+=M[k]=n[c];var H=new Uint8Array(z);for(k=0;k<z;k++,c++)H[k]=n[c];E+=17+z,(G>>4==0?p:v)[15&G]=u(M,H)}break;case 65501:o(),i=o();break;case 65498:o();var R=n[c++],V=[];for(E=0;E<R;E++){var Y=s.componentIds[n[c++]];J=s.components[Y];var B=n[c++];J.huffmanTableDC=p[B>>4],J.huffmanTableAC=v[15&B],V.push(J)}var O=n[c++],X=n[c++],_=n[c++],j=b(n,c,s,V,i,O,X,_>>4,15&_);c+=j;break;case 65535:255!==n[c]&&c--;break;default:if(255==n[c-3]&&n[c-2]>=192&&n[c-2]<=254){c-=3;break}throw"unknown JPEG marker "+d.toString(16)}d=o()}switch(this.width=s.samplesPerLine,this.height=s.scanLines,this.jfif=l,this.adobe=f,this.components=[],s.components.length){case 1:this.colorspace=r.Grayscale;break;case 3:this.adobe?this.colorspace=r.AdobeRGB:this.colorspace=r.RGB;break;case 4:this.colorspace=r.CYMK;break;default:this.colorspace=r.Unknown}for(var E=0;E<s.components.length;E++){var J;(J=s.components[E]).quantizationTable||null===J.quantizationTableId||(J.quantizationTable=h[J.quantizationTableId]),this.components.push({output:m(0,J),scaleX:J.h/s.maxH,scaleY:J.v/s.maxV,blocksPerLine:J.blocksPerLine,blocksPerColumn:J.blocksPerColumn,bitConversion:J.bitConversion})}},getData16:function(e,n){if(1!==this.components.length)throw"Unsupported color mode";var r,o,a,t,s,i,c=this.width/e,l=this.height/n,f=0,u=this.components.length,b=new Uint16Array(e*n*u),v=new Uint16Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<u;i++){for(var m,p,d,k=(r=this.components[i]).blocksPerLine,w=r.blocksPerColumn,C=k<<3,P=0,g=0;g<w;g++)for(var y=g<<3,D=0;D<k;D++){var L=h(r,g,D),x=(f=0,D<<3);for(m=0;m<8;m++){P=(y+m)*C;for(p=0;p<8;p++)v[P+x+p]=r.output[L+f++]}}for(o=r.scaleX*c,a=r.scaleY*l,f=i,s=0;s<n;s++)for(t=0;t<e;t++)d=(0|s*a)*C+(0|t*o),b[f]=v[d],f+=u}return b},getData:function(e,n){var r,o,a,t,s,i,c,l,f,u,b,v,m,d,k,w=this.width/e,C=this.height/n,P=0,g=this.components.length,y=e*n*g,D=new Uint8Array(y),L=new Uint8Array((this.components[0].blocksPerLine<<3)*this.components[0].blocksPerColumn*8);for(i=0;i<g;i++){for(var x,T,A,U=(r=this.components[i]).blocksPerLine,I=r.blocksPerColumn,q=U<<3,G=0,M=0;M<I;M++)for(var z=M<<3,H=0;H<U;H++){var R=h(r,M,H),V=(P=0,H<<3);for(x=0;x<8;x++){G=(z+x)*q;for(T=0;T<8;T++)L[G+V+T]=r.output[R+P++]*r.bitConversion}}for(o=r.scaleX*w,a=r.scaleY*C,P=i,s=0;s<n;s++)for(t=0;t<e;t++)A=(0|s*a)*q+(0|t*o),D[P]=L[A],P+=g}switch(g){case 1:case 2:break;case 3:if(k=!0,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],v=p(c-179.456+1.402*(f=D[i+2])),m=p(c+135.459-.344*l-.714*f),d=p(c-226.816+1.772*l),D[i]=v,D[i+1]=m,D[i+2]=d;break;case 4:if(!this.adobe)throw"Unsupported color mode (4 components)";if(k=!1,this.adobe&&this.adobe.transformCode?k=!0:void 0!==this.colorTransform&&(k=!!this.colorTransform),k)for(i=0;i<y;i+=g)c=D[i],l=D[i+1],u=p(434.456-c-1.402*(f=D[i+2])),b=p(119.541-c+.344*l+.714*f),c=p(481.816-c-1.772*l),D[i]=u,D[i+1]=b,D[i+2]=c;break;default:throw"Unsupported color mode"}return D}},f}();e.exports={JpegImage:o}}}]); //# sourceMappingURL=888.min.worker.js.map