Mini Shell

Direktori : /home/ukubnwwt/viewer.ukubona.cloud/assets/
Upload File :
Current File : /home/ukubnwwt/viewer.ukubona.cloud/assets/ModelView-8EVHRx9v.js

import{_ as k,g as F,h as T,j as w,a as I,i as r,c as a,b as e,t as _,k as h,l as f,n as m,d as x,v as O,F as b,r as D,e as v,o as l,p as P,f as M}from"./index-BsdnYEHO.js";import{r as C,m as S,c as R,e as A,a as p,b as g,d as L,f as N}from"./cornerstoneWADOImageLoader.bundle.min-EU_ZCHA5.js";const U="/assets/1acce291-f809-41b2-b665-8ce57b31efb8-DO4KjI-M.jpg",E={data(){return{img2:F,img1:T,moment:w,radiology:C,microscopy:S,cardiology:R,endoscopy:A,brain_tumor_mri_image:U,selectedFile:null,filesData:null,showFileTableLoader:!1,userData:null,modelResultReady:!1,areImagesPrefetched:!1,element:null}},mounted(){this.$root.loadScripts(),this.getFiles(),this.getUserData(),this.$nextTick(()=>{this.element=this.$refs.dicomImage||document.getElementById("dicomImage")||document.querySelector(".dimg"),console.log("eemmem",document.querySelector("#dicomImage")),console.log("eemmemhome",document.querySelector(".home"))})},methods:{redirectTo(o){this.$router.push(o)},isURLDicomImage(o){return o.split("?")[0].split("#")[0].toLowerCase().endsWith(".dcm")},loadAndDisplayImage(o){p.loadAndCacheImage(o).then(t=>{p.displayImage(this.element,t)}).catch(t=>{console.error(`Error loading image: ${t}`)})},loadFromUrl(){if(this.isURLDicomImage(this.selectedFile.getFileURL))if(this.element=this.element||this.$refs.dicomImage,console.log("stuff",this.element),this.element){p.enable(this.element),g.external.cornerstone=L,g.external.dicomParser=N,g.configure({beforeSend:function(t){}}),p.registerImageLoader("wadouri",g.wadouri.loadImage);const o=`wadouri:${this.selectedFile.getFileURL}`;this.loadAndDisplayImage(o)}else console.error("Failed to find the DICOM image element.")},async refreshToken(o){try{const t=await this.$http.post("api/token/refresh",{refresh:this.$store.state.refresh});t.data.access?(this.$store.commit("setAccess",t.data.access),I.defaults.headers.common.Authorization=`Bearer ${t.data.access}`,await o()):this.$router.push("/login")}catch(t){console.error("Failed to refresh token",t),this.$router.push("/login")}},async getUserData(){this.$root.isLoading=!0;try{const o=await this.$http.get("accounts/userdata");this.userData=o.data,this.$root.profileInfo={name:this.userData.first_name,image:this.userData.profile_image_url},this.$root.isLoading=!1}catch(o){if(this.$root.isLoading=!1,o.response){const t=o.response.status;t===401?await this.refreshToken(this.getUserData):(console.error(`Error ${t}: ${o.response.data.message}`),r.error(`Error ${t}: ${o.response.data.message}`,{autoClose:3e3,position:r.POSITION.TOP_RIGHT}))}else o.request?(console.error("No response received:",o.request),r.error("No response received. Please try again later.",{autoClose:3e3,position:r.POSITION.TOP_RIGHT})):(console.error("Error",o),r.error(`Error: ${o.message}`,{autoClose:3e3,position:r.POSITION.TOP_RIGHT}))}},async useModel(o){if(!this.selectedFile){alert("Please select a file to use the model");return}const t={fileUUID:this.selectedFile.uuid,model_name:o};try{await I.post("api/v1/model",t).then(d=>{console.log("Model used successfully",d.data),r.info("AI Model request is Processing",{autoClose:3e3,position:r.POSITION.TOP_RIGHT}),this.modelResultReady=!0,this.modelResult=d.data.data})}catch(d){if(this.$root.isLoading=!1,d.response){const c=d.response.status;c===401?await this.refreshToken(this.useModel):(console.error(`Error ${c}: ${d.response.data.message}`),r.error(`Error ${c}: ${d.response.data.message}`,{autoClose:3e3,position:r.POSITION.TOP_RIGHT}))}else d.request?(console.error("No response received:",d.request),r.error("No response received. Please try again later.",{autoClose:3e3,position:r.POSITION.TOP_RIGHT})):(console.error("Error",d),r.error(`Error: ${d.message}`,{autoClose:3e3,position:r.POSITION.TOP_RIGHT}))}},async prefetchAllImages(){if(!this.areImagesPrefetched){this.areImagesPrefetched=!0;for(let o=0;o<this.filesData.data.length;o++){let t=this.filesData.data[o];this.$root.preloadImage(t.getFileURL)}}},async getFiles(o=null,t=null){this.showFileTableLoader=!0;let d={};try{o&&(d.page=o),t&&(d.search=t),console.log("herte",o),await this.$http.get("api/v1/files",{params:d}).then(c=>{const s=c.data;s.status&&(this.filesData=s,this.showFileTableLoader=!1)}),this.prefetchAllImages()}catch(c){if(this.showFileTableLoader=!1,c.response){const s=c.response.status;s===401?await this.refreshToken(this.getFiles):(console.error(`Error ${s}: ${c.response.data.message}`),r.error(`Error ${s}: ${c.response.data.message}`,{autoClose:3e3,position:r.POSITION.TOP_RIGHT}))}else c.request?(console.error("No response received:",c.request),r.error("No response received. Please try again later.",{autoClose:3e3,position:r.POSITION.TOP_RIGHT})):(console.error("Error",c),r.error(`Error: ${c.message}`,{autoClose:3e3,position:r.POSITION.TOP_RIGHT}))}}}},n=o=>(P("data-v-798ed3a1"),o=o(),M(),o),H={class:"home"},G={class:"container"},q={key:0},B=n(()=>e("div",{class:"heading flex1"},[e("h3",null," AI Models"),e("p",null,"Dashboard / Models")],-1)),V={class:"content flex"},z={class:"content_left"},j={class:"top"},Y={class:"wlecome flex1"},W=n(()=>e("div",{class:"text"},[e("h3",null,"Welcome Back !"),e("label",null,"Ukubona Dashboard")],-1)),K={class:"img"},X=["src"],J={key:0,class:"profile flex1"},Q={class:"box"},Z={class:"image"},$=["src"],ee={class:"text"},se={key:0,class:"box"},te=n(()=>e("label",null,"Saved FIles",-1)),oe=n(()=>e("br",null,null,-1)),ae=n(()=>e("button",null,[f(" View Profile "),e("i",{class:"fas fa-chevron-down"})],-1)),le={class:"content_right"},ie={class:"right_top grid"},re={class:"rbox flex1"},ne={class:"text"},de=n(()=>e("h4",null,"total AI Results",-1)),ce={key:0},_e={key:1},he=n(()=>e("div",{class:"icon"},[e("span",{class:"material-icons"}," folder_copy ")],-1)),ue={class:"rbox flex1"},me={class:"text"},pe=n(()=>e("h4",null,"Available AI models",-1)),ge=n(()=>e("div",{class:"icon"},[e("span",{class:"material-icons"}," file_download ")],-1)),ve={class:"home",style:{"margin-top":"3rem"}},fe={class:"container"},ye={key:0,class:"img-container"},Ie={style:{color:"var(--dark)"}},be={style:{color:"var(--primary)"}},De={class:"imgbox"},ke=["src"],Fe={key:1,class:"model-view-button",style:{width:"100%","text-align":"center"}},Te={class:"heading flex1"},we=n(()=>e("h3",{style:{"font-size":"22px","font-weight":"600"}},"Available Models",-1)),xe={key:0,style:{color:"#e32"}},Oe={class:"cards"},Pe={class:"card"},Me=["src"],Ce={class:"card__overlay"},Se=v('<div class="card__header" data-v-798ed3a1><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-798ed3a1><path data-v-798ed3a1></path></svg><div class="card__header-text" data-v-798ed3a1><h3 class="card__title" data-v-798ed3a1>Cardiomegaly Model (Gradcam)</h3></div></div><p class="card__description" data-v-798ed3a1>AI model to detect region of cardiomegaly using gradcam.</p><p class="card__description" data-v-798ed3a1>Model Accuracy: 98%</p>',3),Re={class:"card"},Ae=["src"],Le={class:"card__overlay"},Ne=v('<div class="card__header" data-v-798ed3a1><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-798ed3a1><path data-v-798ed3a1></path></svg><div class="card__header-text" data-v-798ed3a1><h3 class="card__title" data-v-798ed3a1>Disease Detection (Bounding Box)</h3></div></div><p class="card__description" data-v-798ed3a1>AI model to detect various diseases in X-Ray Image</p><p class="card__description" data-v-798ed3a1>Model Accuracy: 98%</p>',3),Ue={class:"card"},Ee=n(()=>e("img",{src:"https://images.pexels.com/photos/9891863/pexels-photo-9891863.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1",class:"card__image",alt:""},null,-1)),He={class:"card__overlay"},Ge=v('<div class="card__header" data-v-798ed3a1><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-798ed3a1><path data-v-798ed3a1></path></svg><div class="card__header-text" data-v-798ed3a1><h3 class="card__title" data-v-798ed3a1>Malaria Parasite Detection</h3></div></div><p class="card__description" data-v-798ed3a1>AI model to classify between parasite or uninfected</p><p class="card__description" data-v-798ed3a1>Model Accuracy: 98%</p>',3),qe={class:"card"},Be=["src"],Ve={class:"card__overlay"},ze=v('<div class="card__header" data-v-798ed3a1><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-798ed3a1><path data-v-798ed3a1></path></svg><div class="card__header-text" data-v-798ed3a1><h3 class="card__title" data-v-798ed3a1>Brain Tumor Detection (Segmentation)</h3></div></div><p class="card__description" data-v-798ed3a1>AI model to segment brain Tumor sections</p><p class="card__description" data-v-798ed3a1>Model Accuracy: 98%</p>',3),je=n(()=>e("section",{class:"models"},null,-1)),Ye={class:"table"},We={class:"container"},Ke={class:"top-level"},Xe={class:"left"},Je=n(()=>e("h3",null,"Uploaded Files",-1)),Qe={class:"search-button"},Ze=n(()=>e("div",{class:"right"},[e("span",{class:"delete"},[e("i",{class:"fa-solid fa-trash"})])],-1)),$e=n(()=>e("thead",null,[e("tr",null,[e("th",null,[e("input",{type:"checkbox"})]),e("th",null,"File Name"),e("th",null,"File Size"),e("th",null,"Uploaded"),e("th",null,"File Description"),e("th")])],-1)),es={key:0,style:{position:"relative !important"}},ss=n(()=>e("td",null,[e("input",{type:"checkbox"})],-1)),ts=["onClick"],os=n(()=>e("td",null,null,-1)),as={key:0,class:"loading-table"},ls=n(()=>e("div",{class:"spinner"},null,-1)),is=[ls],rs={key:1},ns={key:0,class:"pagination"},ds=["onClick"];function cs(o,t,d,c,s,u){return l(),a("main",null,[e("section",H,[e("div",G,[s.userData?(l(),a("h3",q,_(s.userData.hospital.name),1)):h("",!0),B,e("div",V,[e("div",z,[e("div",j,[e("div",Y,[W,e("div",K,[e("img",{src:s.img2,alt:""},null,8,X)])]),s.userData?(l(),a("div",J,[e("div",Q,[e("div",Z,[e("img",{src:s.userData.profile_image_url,alt:""},null,8,$)]),e("div",ee,[e("p",null,_(s.userData.last_name)+" "+_(s.userData.first_name),1),e("label",null,_(s.userData.role),1)])]),s.userData?(l(),a("div",se,[e("p",null,_(s.userData.saved_files),1),te,f(),oe,ae])):h("",!0)])):h("",!0)])]),e("div",le,[e("div",ie,[e("div",re,[e("div",ne,[de,s.userData?(l(),a("h2",ce,_(s.userData.total_scans),1)):(l(),a("h2",_e,"..."))]),he]),e("div",ue,[e("div",me,[pe,e("h2",null,_(o.$store.state.total_models),1)]),ge])])])])])]),e("section",ve,[e("div",fe,[s.selectedFile?(l(),a("div",ye,[e("h3",Ie,[f("Selected File:"),e("span",be,_(s.selectedFile.fileName),1)]),e("div",De,[u.isURLDicomImage(s.selectedFile.getFileURL)?h("",!0):(l(),a("img",{key:0,src:s.selectedFile.getFileURL,alt:"",style:{background:"var(--light)"}},null,8,ke))])])):h("",!0),e("div",{id:"dicomImage",ref:"dicomImage",class:m(["img dimg",{disable:!s.selectedFile}]),style:{}},null,2),s.modelResultReady?(l(),a("div",Fe,[e("button",{type:"button",style:{"font-size":"14px","font-weight":"400px",cursor:"pointer !important"},onClick:t[0]||(t[0]=i=>u.redirectTo("/results"))},"View Model Results")])):h("",!0),e("div",Te,[we,s.selectedFile?h("",!0):(l(),a("h3",xe,"SELECT A FILE BEFORE CHOOSING A MODEL"))])]),e("ul",Oe,[e("li",null,[e("span",Pe,[e("img",{src:s.radiology,class:"card__image",alt:""},null,8,Me),e("div",Ce,[Se,s.selectedFile?(l(),a("button",{key:0,type:"button",class:"model-button",onClick:t[1]||(t[1]=i=>u.useModel("cardimegaly_mobilenet"))},"Use Model")):h("",!0)])])]),e("li",null,[e("span",Re,[e("img",{src:s.cardiology,class:"card__image",alt:""},null,8,Ae),e("div",Le,[Ne,s.selectedFile?(l(),a("button",{key:0,type:"button",class:"model-button",onClick:t[2]||(t[2]=i=>u.useModel("bboxv1"))},"Use Model")):h("",!0)])])]),e("li",null,[e("span",Ue,[Ee,e("div",He,[Ge,s.selectedFile?(l(),a("button",{key:0,type:"button",class:"model-button",onClick:t[3]||(t[3]=i=>u.useModel("malaria"))},"Use Model")):h("",!0)])])]),e("li",null,[e("span",qe,[e("img",{src:s.brain_tumor_mri_image,class:"card__image",alt:""},null,8,Be),e("div",Ve,[ze,s.selectedFile?(l(),a("button",{key:0,type:"button",class:"model-button",onClick:t[4]||(t[4]=i=>u.useModel("brain_tumor"))},"Use Model")):h("",!0)])])])])]),je,e("section",Ye,[e("div",We,[e("div",Ke,[e("div",Xe,[Je,x(e("input",{type:"search",name:"",id:"",placeholder:"search files","onUpdate:modelValue":t[5]||(t[5]=i=>o.searchText=i)},null,512),[[O,o.searchText]]),e("span",Qe,[e("i",{class:"fa-solid fa-magnifying-glass",onClick:t[6]||(t[6]=i=>u.getFiles(null,o.searchText))})])]),Ze]),e("table",null,[$e,s.filesData?(l(),a("tbody",es,[(l(!0),a(b,null,D(s.filesData.data,i=>(l(),a("tr",{key:i},[ss,e("td",null,_(i.fileName),1),e("td",null,_(i.fileSize),1),e("td",null,_(s.moment(`${i.dateUploaded}`).format("DD MMM, YYYY . HH:MM:SS")),1),e("td",null,_(i.fileDescription.slice(0,15))+"...",1),e("td",null,[s.selectedFile&&s.selectedFile.uuid==i.uuid?(l(),a("button",{key:0,onClick:t[7]||(t[7]=y=>s.selectedFile=null),style:{"background-color":"var(--success)"}},"Selected")):(l(),a("button",{key:1,onClick:y=>{s.selectedFile=i,u.loadFromUrl()}},"Select File",8,ts))]),os]))),128)),s.showFileTableLoader?(l(),a("div",as,is)):h("",!0)])):(l(),a("tbody",rs))]),s.filesData?(l(),a("div",ns,[e("ul",null,[e("li",null,[e("i",{class:m(["fas fa-chevron-left",{disabled:s.filesData.pagination.current_page<=1}]),onClick:t[8]||(t[8]=i=>u.getFiles(s.filesData.pagination.current_page-1))},null,2)]),(l(!0),a(b,null,D(s.filesData.pagination.total_pages,(i,y)=>(l(),a("li",{key:i,class:m({active:s.filesData.pagination.current_page==i}),onClick:_s=>u.getFiles(i)},[e("span",null,_(i),1)],10,ds))),128)),e("li",null,[e("i",{class:m(["fas fa-chevron-right",{disabled:s.filesData.pagination.current_page>=s.filesData.pagination.total_pages}]),onClick:t[9]||(t[9]=i=>u.getFiles(s.filesData.pagination.current_page+1))},null,2)])])])):h("",!0)])])])}const ms=k(E,[["render",cs],["__scopeId","data-v-798ed3a1"]]);export{ms as default};