Mini Shell

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

import{_ as k,g as F,h as x,j as T,a as I,i as r,c as a,b as e,t as _,k as h,l as v,n as m,d as w,v as O,F as b,r as D,e as f,o as l,p as P,f as M}from"./index-BPjHW1Sm.js";import{r as C,m as S,c as R,e as E,a as p,b as g,d as A,f as L}from"./cornerstoneWADOImageLoader.bundle.min-EU_ZCHA5.js";const N="/assets/1acce291-f809-41b2-b665-8ce57b31efb8-DO4KjI-M.jpg",U={data(){return{img2:F,img1:x,moment:T,radiology:C,microscopy:S,cardiology:R,endoscopy:E,brain_tumor_mri_image:N,selectedFile:null,filesData:null,showFileTableLoader:!1,userData:null,modelResultReady:!1,areImagesPrefetched:!1,element:null,selectedExtension: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")?(this.selectedExtension="dcm",!0):(this.selectedExtension=null,!1)},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=A,g.external.dicomParser=L,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(c=>{console.log("Model used successfully",c.data),r.info("AI Model request is Processing",{autoClose:3e3,position:r.POSITION.TOP_RIGHT}),this.modelResultReady=!0,this.modelResult=c.data.data})}catch(c){if(this.$root.isLoading=!1,c.response){const d=c.response.status;d===401?await this.refreshToken(this.useModel):(console.error(`Error ${d}: ${c.response.data.message}`),r.error(`Error ${d}: ${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}))}},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 c={};try{o&&(c.page=o),t&&(c.search=t),console.log("herte",o),await this.$http.get("api/v1/files",{params:c}).then(d=>{const s=d.data;s.status&&(this.filesData=s,this.showFileTableLoader=!1)}),this.prefetchAllImages()}catch(d){if(this.showFileTableLoader=!1,d.response){const s=d.response.status;s===401?await this.refreshToken(this.getFiles):(console.error(`Error ${s}: ${d.response.data.message}`),r.error(`Error ${s}: ${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}))}}}},n=o=>(P("data-v-252f57aa"),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,[v(" 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"},ce=n(()=>e("h4",null,"total AI Results",-1)),de={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)),fe={class:"home",style:{"margin-top":"3rem"}},ve={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"}},xe={class:"heading flex1"},Te=n(()=>e("h3",{style:{"font-size":"22px","font-weight":"600"}},"Available Models",-1)),we={key:0,style:{color:"#e32"}},Oe={class:"cards"},Pe={class:"card"},Me=["src"],Ce={class:"card__overlay"},Se=f('<div class="card__header" data-v-252f57aa><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-252f57aa><path data-v-252f57aa></path></svg><div class="card__header-text" data-v-252f57aa><h3 class="card__title" data-v-252f57aa>Cardiomegaly Model (Gradcam)</h3></div></div><p class="card__description" data-v-252f57aa>AI model to detect region of cardiomegaly using gradcam.</p><p class="card__description" data-v-252f57aa>Model Accuracy: 98%</p>',3),Re={class:"card"},Ee=["src"],Ae={class:"card__overlay"},Le=f('<div class="card__header" data-v-252f57aa><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-252f57aa><path data-v-252f57aa></path></svg><div class="card__header-text" data-v-252f57aa><h3 class="card__title" data-v-252f57aa>Disease Detection (Bounding Box)</h3></div></div><p class="card__description" data-v-252f57aa>AI model to detect various diseases in X-Ray Image</p><p class="card__description" data-v-252f57aa>Model Accuracy: 98%</p>',3),Ne={class:"card"},Ue=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=f('<div class="card__header" data-v-252f57aa><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-252f57aa><path data-v-252f57aa></path></svg><div class="card__header-text" data-v-252f57aa><h3 class="card__title" data-v-252f57aa>Malaria Parasite Detection</h3></div></div><p class="card__description" data-v-252f57aa>AI model to classify between parasite or uninfected</p><p class="card__description" data-v-252f57aa>Model Accuracy: 98%</p>',3),qe={class:"card"},Be=["src"],Ve={class:"card__overlay"},ze=f('<div class="card__header" data-v-252f57aa><svg class="card__arc" xmlns="http://www.w3.org/2000/svg" data-v-252f57aa><path data-v-252f57aa></path></svg><div class="card__header-text" data-v-252f57aa><h3 class="card__title" data-v-252f57aa>Brain Tumor Detection (Segmentation)</h3></div></div><p class="card__description" data-v-252f57aa>AI model to segment brain Tumor sections</p><p class="card__description" data-v-252f57aa>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"},cs=["onClick"];function ds(o,t,c,d,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,v(),oe,ae])):h("",!0)])):h("",!0)])]),e("div",le,[e("div",ie,[e("div",re,[e("div",ne,[ce,s.userData?(l(),a("h2",de,_(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",fe,[e("div",ve,[s.selectedFile?(l(),a("div",ye,[e("h3",Ie,[v("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||s.selectedExtension!="dcm"}]),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",xe,[Te,s.selectedFile?h("",!0):(l(),a("h3",we,"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,Ee),e("div",Ae,[Le,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",Ne,[Ue,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,w(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,s.selectedExtension=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,cs))),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(U,[["render",ds],["__scopeId","data-v-252f57aa"]]);export{ms as default};