1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3313],{81632:function(e,t,r){r.d(t,{D:function(){return s}});let a=[/intel.*(hd|uhd)\s*graphics(\s*\d{3,4})?/i,/intel.*iris(\s*plus)?(\s*graphics)?(\s*\d{3,4})?/i,/intel.*iris\s*xe\s*graphics/i,/amd\s*radeon\s*graphics$/i,/amd.*radeon\s*vega(\s*\d+)?$/i,/radeon\s*\(tm\)\s*graphics/i,/apple\s*m[1-9]$/i,/swiftshader/i,/llvmpipe/i,/softpipe/i,/angle.*google/i,/mesa\s*offscreen/i,/microsoft\s*basic\s*render\s*driver/i,/vmware/i,/virtualbox/i,/parallels/i],i=[/intel.*(hd|uhd)\s*graphics/i,/intel.*iris/i,/amd\s*radeon\s*graphics$/i,/amd.*radeon\s*vega/i,/radeon\s*\(tm\)\s*graphics/i,/apple\s*m[1-9]$/i],n=[/swiftshader/i,/llvmpipe/i,/softpipe/i,/angle.*google/i,/mesa\s*offscreen/i,/microsoft\s*basic\s*render\s*driver/i];function o(){return{ok:!1,renderer:"",vendor:"",isIntegrated:!1,isSoftware:!1,isProblematic:!1,supportsWebGL2:!1,supportsFloatColorBuffer:!1,supportsFloatTexture:!1,maxTextureSize:0,max3DTextureSize:0,insufficientForVolumeRendering:!1}}function s(){if("undefined"==typeof document)return o();let e=o();try{var t;let r=document.createElement("canvas");r.width=1,r.height=1;let o=r.getContext("webgl2",{powerPreference:"high-performance",antialias:!1,preserveDrawingBuffer:!1,failIfMajorPerformanceCaveat:!1,depth:!1,stencil:!1});if(o){let t=o.getExtension("WEBGL_debug_renderer_info");t&&(e.renderer=o.getParameter(t.UNMASKED_RENDERER_WEBGL)||"",e.vendor=o.getParameter(t.UNMASKED_VENDOR_WEBGL)||""),e.supportsWebGL2=!0,e.supportsFloatColorBuffer=!!o.getExtension("EXT_color_buffer_float"),e.supportsFloatTexture=!!o.getExtension("OES_texture_float"),e.maxTextureSize=o.getParameter(o.MAX_TEXTURE_SIZE)||0;try{e.max3DTextureSize=o.getParameter(o.MAX_3D_TEXTURE_SIZE)||0}catch(t){e.max3DTextureSize=0}}else{let t=r.getContext("webgl",{powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1});if(t){let r=t.getExtension("WEBGL_debug_renderer_info");r&&(e.renderer=t.getParameter(r.UNMASKED_RENDERER_WEBGL)||"",e.vendor=t.getParameter(r.UNMASKED_VENDOR_WEBGL)||""),e.supportsWebGL2=!1,e.supportsFloatTexture=!!t.getExtension("OES_texture_float"),e.supportsFloatColorBuffer=!!t.getExtension("WEBGL_color_buffer_float"),e.maxTextureSize=t.getParameter(t.MAX_TEXTURE_SIZE)||0,e.max3DTextureSize=0}}let s=(t=e.renderer)?{isIntegrated:i.some(e=>e.test(t)),isSoftware:n.some(e=>e.test(t)),isProblematic:a.some(e=>e.test(t))}:{isIntegrated:!1,isSoftware:!1,isProblematic:!1};e.isIntegrated=s.isIntegrated,e.isSoftware=s.isSoftware,e.isProblematic=s.isProblematic,e.insufficientForVolumeRendering=e.isSoftware||!e.supportsWebGL2||!e.supportsFloatColorBuffer||e.maxTextureSize>0&&e.maxTextureSize<4096||e.supportsWebGL2&&e.max3DTextureSize>0&&e.max3DTextureSize<256,e.ok=!0}catch(e){console.warn("[gpu-warmup] failed:",e)}return e.ok&&console.info("[gpu-warmup] GPU: ".concat(e.renderer," (vendor: ").concat(e.vendor,") ")+"webgl2=".concat(e.supportsWebGL2," ")+"floatColorBuf=".concat(e.supportsFloatColorBuffer," ")+"floatTex=".concat(e.supportsFloatTexture," ")+"maxTex=".concat(e.maxTextureSize," ")+"max3DTex=".concat(e.max3DTextureSize)+(e.isIntegrated?" [integrated]":"")+(e.isSoftware?" [software]":"")+(e.isProblematic?" [problematic]":"")+(e.insufficientForVolumeRendering?" [INSUFFICIENT]":"")),e}},58717:function(e,t,r){r.d(t,{Ic:function(){return l},ZI:function(){return c},m8:function(){return i},rn:function(){return d},ud:function(){return f}});let a="indice.json";function i(e){return e.filter(e=>{let t=e.fileName.toLowerCase();return!("dicomdir"===t||"lockfile"===t||"version"===t||t.endsWith(".txt")||t.endsWith(".xml")||t.endsWith(".json"))&&(!e.size||!(e.size<1e4))})}async function n(){var e;let t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!("undefined"!=typeof navigator&&"function"==typeof(null===(e=navigator.storage)||void 0===e?void 0:e.getDirectory)))return null;try{let e=await navigator.storage.getDirectory();return await e.getDirectoryHandle("examenes-guardados",{create:t})}catch(e){return null}}async function o(){let e=await n();if(!e)return[];try{let t=await e.getFileHandle(a),r=await (await t.getFile()).text(),i=JSON.parse(r);if(!Array.isArray(i))return[];return i.filter(e=>!!e&&"string"==typeof e.clave&&"number"==typeof e.cortes&&e.cortes>0)}catch(e){return[]}}async function s(e){let t=await n(!0);if(!t)return;let r=await t.getFileHandle(a,{create:!0}),i=await r.createWritable();await i.write(JSON.stringify(e)),await i.close()}function u(e,t){let r=(t.split("/").pop()||t).replace(/[^\w.\-]/g,"_");return"".concat(String(e).padStart(5,"0"),"_").concat(r)}async function l(e){return(await o()).find(t=>t.clave===e)||null}async function c(e){let t=await n();if(t){try{await t.removeEntry(e,{recursive:!0})}catch(e){}await s((await o()).filter(t=>t.clave!==e))}}async function f(e){let t=await l(e);if(!t)return null;let r=await n();if(!r)return null;try{let a=await r.getDirectoryHandle(e),i=[];for await(let e of a.values()){if("file"!==e.kind)continue;let t=await e.getFile();i.push(new File([t],function(e){let t=/^\d{5}_(.+)$/.exec(e);return t?t[1]:e}(e.name),{type:"application/dicom"}))}if(i.length!==t.cortes)return await c(e),null;return i.sort((e,t)=>
1e.name.localeCompare(t.name)),await s((await o()).map(t=>t.clave===e?{...t,usadaEn:Date.now()}:t)),i}catch(t){return await c(e),null}}async function p(e,t){let r=(await o()).filter(e=>e.clave!==t),a=r.reduce((e,t)=>e+t.bytes,0);for(r.sort((e,t)=>e.usadaEn-t.usadaEn);r.length>0&&a+e>2147483648;){let e=r.shift();await c(e.clave),a-=e.bytes}}async function d(e,t,r){let a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},{onProgress:i,signal:l,aLaVez:c=16}=a,d=r.reduce((e,t)=>e+(t.size||0),0),g=null;try{let t=await n(!0);if(t){await p(d,e);try{await t.removeEntry(e,{recursive:!0})}catch(e){}g=await t.getDirectoryHandle(e,{create:!0})}}catch(e){g=null}let m=Array(r.length).fill(!1),w=Array(r.length).fill(null),h=g,E=0,y=async e=>{let t=r[e],a=await fetch(t.url,{signal:l});if(!a.ok)throw Error("ERR_CORTE_".concat(a.status));let n=await a.arrayBuffer();if(g)try{let r=await g.getFileHandle(u(e,t.fileName),{create:!0}),a=await r.createWritable();await a.write(n),await a.close(),m[e]=!0}catch(e){g=null}m[e]||(w[e]=new File([n],t.fileName,{type:"application/dicom"})),E+=t.size||n.byteLength,d>0&&(null==i||i(Math.min(99,Math.round(E/d*100))))},x=0,v=async()=>{for(;;){let e=x++;if(e>=r.length)return;if(null==l?void 0:l.aborted)throw Error("ERR_CANCELADO");await y(e)}};if(await Promise.all(Array.from({length:Math.min(c,r.length)},v)),g&&m.every(Boolean))try{await s([...(await o()).filter(t=>t.clave!==e),{clave:e,nombre:t,cortes:r.length,bytes:d,usadaEn:Date.now()}]),null==i||i(100);let a=await f(e);if(a)return{archivos:a,guardada:!0}}catch(e){}let b=[];for(let e=0;e<r.length;e++){if(w[e]){b.push(w[e]);continue}if(m[e]&&h)try{let t=await h.getFileHandle(u(e,r[e].fileName)),a=await t.getFile();b.push(new File([a],r[e].fileName,{type:"application/dicom"}))}catch(e){}}null==i||i(100);let _=await n();if(_)try{await _.removeEntry(e,{recursive:!0})}catch(e){}return{archivos:b,guardada:!1}}},28146:function(e,t,r){r.d(t,{A:function(){return i},k:function(){return a}});let a="cbcthub:aviso-de-demo";function i(e){window.dispatchEvent(new CustomEvent(a,{detail:e}))}},84008:function(e,t,r){r.d(t,{OQ:function(){return c},S9:function(){return n},Ue:function(){return l},YB:function(){return i},Zg:function(){return a},sq:function(){return o},vZ:function(){return s}});let a=["propio","compartido","incrustado"],i=["analisis","informe","guardarEscena","grabarLectura","guardarCaptura","presentar","seguirPresentacion"],n={propio:{analisis:!0,informe:!0,guardarEscena:!0,grabarLectura:!0,guardarCaptura:!0,presentar:!0,seguirPresentacion:!0},compartido:{analisis:!1,informe:!1,guardarEscena:!1,grabarLectura:!1,guardarCaptura:!1,presentar:!1,seguirPresentacion:!0},incrustado:{analisis:!1,informe:!1,guardarEscena:!1,grabarLectura:!1,guardarCaptura:!1,presentar:!1,seguirPresentacion:!0}},o={analisis:{propio:!0,compartido:!0,incrustado:!0},informe:{propio:!0,compartido:!1,incrustado:!1},guardarEscena:{propio:!0,compartido:!0,incrustado:!0},grabarLectura:{propio:!0,compartido:!0,incrustado:!0},guardarCaptura:{propio:!0,compartido:!0,incrustado:!0},presentar:{propio:!0,compartido:!0,incrustado:!0},seguirPresentacion:{propio:!0,compartido:!0,incrustado:!0}},s={analisis:"",informe:"va_en_el_pdf",guardarEscena:"",grabarLectura:"",guardarCaptura:"",presentar:"",seguirPresentacion:""},u="viewer_funciones";async function l(e,t,r){try{let{data:a,error:s}=await e.from("profiles").select(u).eq("id",t).maybeSingle();if(s||!a)return{...n[r]};return function(e,t){let r={...n[e]};if(!t||"object"!=typeof t)return r;let a=t[e];if(!a||"object"!=typeof a)return r;for(let t of i){let i=a[t];"boolean"==typeof i&&(r[t]=i&&o[t][e])}return r}(r,a[u])}catch(e){return{...n[r]}}}function c(e){let t=e&&"object"==typeof e?e:{},r={};for(let e of a){let a=t[e]&&"object"==typeof t[e]?t[e]:{},s={...n[e]};for(let t of i)"boolean"==typeof a[t]&&(s[t]=a[t]&&o[t][e]);r[e]=s}return r}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.