1"use strict";(self["webpackChunkfmf_website"]=self["webpackChunkfmf_website"]||[]).push([[498],{38636:function(e,t,s){s.r(t),s.d(t,{default:function(){return c}});var a=function(){var e=this,t=e._self._c;return t("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"image-contest vcontainer"},[t("div",{staticClass:"main-container"},[t("div",{staticClass:"page-header"},[t("div",{staticClass:"header-info"},[t("h1",{staticClass:"page-title"},[e._v("FMF Clinical Image Contest")]),t("div",{staticClass:"page-subtitle"},[e._v(e._s(e.congressInfo.title))])]),t("el-button",{staticClass:"back-btn",attrs:{icon:"el-icon-back",circle:""},on:{click:function(t){return e.$router.back()}}})],1),t("div",{staticClass:"welcome-block"},[t("span",{staticClass:"welcome-text"},[e._v(" Welcome "),t("strong",[e._v(e._s(e.userInfo.title)+" "+e._s(e.userInfo.firstName)+" "+e._s(e.userInfo.lastName))])]),t("p",{staticClass:"welcome-desc"},[e._v("Please submit your most interesting ultrasound image to participate in the contest.")])]),e.isReadonly?t("div",{staticClass:"readonly-notice"},[t("i",{staticClass:"el-icon-info-circle",staticStyle:{"margin-right":"6px"}}),e._v(" Your image has already been submitted. This page is view-only. ")]):e._e(),t("div",{staticClass:"step-block"},[t("div",{staticClass:"step-title",class:{required:!e.isReadonly}},[e._v("Step 1: Choose your image")]),e.isReadonly?e._e():t("ul",{staticClass:"step-hints"},[t("li",[e._v("Formats Accepted: JPG, PNG, BMP, TIFF")]),t("li",[e._v("Only one file can be uploaded, file size must not exceed 500MB.")])]),e.uploading?t("div",{staticClass:"upload-area upload-area--result"},[t("i",{staticClass:"el-icon-loading upload-result-icon"}),t("span",{staticClass:"upload-result-name"},[e._v("Uploading "+e._s(e.uploadedFile&&e.uploadedFile.name)+"...")])]):e.uploadedFileUrl?t("div",{staticClass:"upload-area upload-area--result upload-area--success"},[t("i",{staticClass:"el-icon-circle-check upload-result-icon",staticStyle:{color:"#67c23a"}}),t("span",{staticClass:"upload-result-name"},[e._v(e._s(e.uploadedFileInfo&&(e.uploadedFileInfo.name||e.uploadedFileInfo.url)))]),e.isReadonly?e._e():t("el-button",{staticClass:"upload-clear-btn",attrs:{type:"text",icon:"el-icon-delete"},on:{click:e.clearUpload}},[e._v("Re-upload")])],1):e.isReadonly||!e.uploadedFile||e.uploading?e.isReadonly?e._e():t("div",{staticClass:"upload-area",class:{"upload-area--dragover":e.isDragOver},on:{dragover:function(t){t.preventDefault(),e.isDragOver=!0},dragleave:function(t){t.preventDefault(),e.isDragOver=!1},drop:function(t){return t.preventDefault(),e.onDrop.apply(null,arguments)}}},[t("div",{staticClass:"upload-inner"},[t("span",{staticClass:"upload-hint"},[e._v("Drag & drop an image here or")]),t("el-button",{attrs:{type:"primary",size:"small"},on:{click:e.triggerFileInput}},[e._v("Select Image")])],1)]):t("div",{staticClass:"upload-area upload-area--result upload-area--error"},[t("i",{staticClass:"el-icon-warning upload-result-icon",staticStyle:{color:"#f56c6c"}}),t("span",{staticClass:"upload-result-name",staticStyle:{color:"#f56c6c"}},[e._v("Upload failed")]),t("el-button",{staticClass:"upload-clear-btn",attrs:{type:"text",icon:"el-icon-refresh"},on:{click:e.clearUpload}},[e._v("Retry")])],1),e.isReadonly?e._e():t("input",{ref:"fileInput",staticStyle:{display:"none"},attrs:{type:"file",accept:".jpg,.jpeg,.png,.bmp,.tiff,.tif"},on:{change:e.onFileChange}})]),t("div",{staticClass:"step-block"},[t("div",{staticClass:"step-title",class:{required:!e.isReadonly}},[e._v("Step 2: Choose one Contest Category")]),t("div",{staticClass:"category-row"},[t("label",{staticClass:"category-item",class:{"is-disabled":e.isReadonly}},[t("input",{attrs:{type:"checkbox",disabled:e.isReadonly},domProps:{checked:"Diagnostic"===e.form.category},on:{change:function(t){!e.isReadonly&&e.onCategoryChange("Diagnostic")}}}),e._v(" Diagnostic ")]),t("label",{staticClass:"category-item",class:{"is-disabled":e.isReadonly}},[t("input",{attrs:{type:"checkbox",disabled:e.isReadonly},domProps:{checked:"Artistic"===e.form.category},on:{change:function(t){!e.isReadonly&&e.onCategoryChange("Artistic")}}}),e._v(" Artistic ")])])]),t("div",{staticClass:"step-block"},[t("div",{staticClass:"step-title",class:{required:!e.isReadonly}},[e._v("Step 3: I agree to the terms and conditions")]),t("div",{staticClass:"consent-row"}
1,[t("label",{staticClass:"category-item",class:{"is-disabled":e.isReadonly}},[t("input",{directives:[{name:"model",rawName:"v-model",value:e.form.consent,expression:"form.consent"}],attrs:{type:"checkbox",disabled:e.isReadonly},domProps:{checked:Array.isArray(e.form.consent)?e._i(e.form.consent,null)>-1:e.form.consent},on:{change:function(t){var s=e.form.consent,a=t.target,i=!!a.checked;if(Array.isArray(s)){var o=null,n=e._i(s,o);a.checked?n<0&&e.$set(e.form,"consent",s.concat([o])):n>-1&&e.$set(e.form,"consent",s.slice(0,n).concat(s.slice(n+1)))}else e.$set(e.form,"consent",i)}}}),e._v(" Consent and Data Sharing Agreement ")]),t("a",{staticClass:"read-more",attrs:{href:"javascript:void(0)"},on:{click:function(t){e.showConsent=!0}}},[e._v("Read more")])])]),t("div",{staticClass:"step-block"},[t("div",{staticClass:"step-title"},[e._v("Step 4: Add a description")]),t("el-input",{attrs:{type:"textarea",maxlength:"200","show-word-limit":"",rows:4,disabled:e.isReadonly,placeholder:"Image description, up 200 characters"},model:{value:e.form.description,callback:function(t){e.$set(e.form,"description",t)},expression:"form.description"}})],1),e.sponsorList.length?t("div",{staticClass:"sponsors-block"},e._l(e.sponsorList,function(e,s){return t("img",{key:s,staticClass:"sponsor-logo",attrs:{src:e.companyLogo,alt:"sponsor"}})}),0):e._e(),e.isReadonly?e._e():t("div",{staticClass:"submit-row"},[t("el-button",{staticClass:"submit-btn",attrs:{type:"primary",loading:e.submitting},on:{click:e.handleSubmit}},[e._v("Submit Image")])],1)]),e.submitted?t("div",{staticClass:"success-overlay"},[t("div",{staticClass:"success-box"},[t("div",{staticClass:"success-icon-wrap"},[t("svg",{staticClass:"success-svg",attrs:{viewBox:"0 0 96 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"}},[t("rect",{attrs:{x:"22",y:"10",width:"52",height:"68",rx:"5",fill:"#E8F0FE",stroke:"#A8C4F5","stroke-width":"2"}}),t("rect",{attrs:{x:"32",y:"26",width:"32",height:"4",rx:"2",fill:"#A8C4F5"}}),t("rect",{attrs:{x:"32",y:"36",width:"24",height:"4",rx:"2",fill:"#C5D8FB"}}),t("rect",{attrs:{x:"32",y:"46",width:"20",height:"4",rx:"2",fill:"#C5D8FB"}}),t("circle",{attrs:{cx:"68",cy:"68",r:"18",fill:"#4A90D9",opacity:"0.15"}}),t("circle",{attrs:{cx:"68",cy:"68",r:"13",fill:"#4A90D9",opacity:"0.25"}}),t("polyline",{attrs:{points:"61,68 66,73 76,62",stroke:"#4A90D9","stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round",fill:"none"}})])]),t("p",{staticClass:"success-msg"},[e._v("Your image has been submitted successfully.")]),t("el-button",{staticClass:"success-own-btn",on:{click:e.goOwnPage}},[e._v("Own Page")])],1)]):e._e(),t("el-dialog",{attrs:{title:"Read more",visible:e.showConsent,width:"min(600px, calc(100vw - 32px))","append-to-body":""},on:{"update:visible":function(t){e.showConsent=t}}},[t("div",{staticStyle:{"line-height":"1.7",color:"#333","font-size":"14px","text-align":"justify"}},[t("p",{staticStyle:{"margin-bottom":"16px"}},[e._v("I agree to share my contact information with FMF and the event industry partner GE HealthCare for the purpose of contacting me regarding the FMF Clinical Image Contest. I also agree to provide the clinical image to FMF and GE HealthCare.")]),t("p",{staticStyle:{"margin-bottom":"16px"}},[e._v('I warrant that any data provided to FMF will not contain any "Personal Data" as defined under applicable privacy laws and will be anonymized in accordance with these laws. I agree to only provide data for which I have obtained all necessary rights to share with FMF and subsequently license to GE HealthCare.')]),t("p",{staticStyle:{"margin-bottom":"16px"}},[e._v('I confirm that any Clinical Image provided to FMF has been anonymized in compliance with applicable privacy, data, and patient protection laws, including the General Data Protection Regulation (EU) 2016/679 ("GDPR"), ensuring that the Clinical Image does not identify the patient and does not constitute "personal data" as defined under GDPR ("Anonymized Data"). While some GE HealthCare products include automated anonymization tools, GE HealthCare makes no representation or warranty that such tools will render data anonymized. FMF and GE HealthCare reserve the right, at their sole discretion, to reject and securely destroy any data that is not anonymized.')]),t("p",[e._v("FMF grants GE HealthCare and its affiliates, or third parties acting on behalf of GE HealthCare, a non-exclusive, worldwide, unlimited, royalty-free right to use, copy, reproduce, alter, incorporate, modify, and display the Clinical Image, in whole or in part, and to create derivative works based on it, for marketing purposes in channels such as events, websites, apps, social media, and press releases. All intellectual property rights shall be exclusively owned by GE HealthCare.")])]),t("span",{attrs:{slot:"footer"},slot:"footer"},[t("el-button",{attrs:{type:"primary"},on:{click:function(t){e.showConsent=!1}}},[e._v("Close")])],1)])],1)},i=[],o=(s(44114),{name:"ImageContestPage",inject:["refreshTokenFn"],data(){return{loading:!1,submitting:!1,submitted:!1,congressInfo:{},userInfo:{},sponsorList:[],isDragOver:!1,uploading:!1,uploadedFile:null,uploadedFileUrl:"",uploadedFileInfo:null,showConsent:!1,form:{category:"",consent:!1,description:""}}},computed:{congressId(){return this.$route.query.id},isReadonly(){return!!this.$route.query.readonly}},methods:{triggerFileInput(){this.$refs.fileInput.click()},onFileChange(e){const t=e.target.files[0];t&&this.handleFile(t)},onDrop(e){this.isDragOver=!1;const t=e.dataTransfer.files[0];t&&this.handleFile(t)},async handleFile(e){const t=524288e3;if(e.size>t)this.$message.error("File size must not exceed 500MB.");else{this.uploadedFile=e,this.uploadedFileUrl="",this.uploadedFileInfo=null,this.uploading=!0;try{const t=e.name.includes(".")?e.name.slice(e.name.lastIndexOf(".")):"",s=this.$store.state.user.userInfo||{},a=this.congressInfo.startTime?new Date(this.congressInfo.startTime.replace(" ","T")).getFullYear():"",i=[s.fmfId,s.firstName,s.lastName,a].filter(
1Boolean).join("_")+t,o=await this.uploadFile(e,"congress/image-contest","image-contest",i);this.uploadedFileUrl=o.url,this.uploadedFileInfo=o}catch(s){this.uploadedFile=null,this.uploadedFileUrl="",this.uploadedFileInfo=null,this.$message.error(s?.msg||s?.message||"Image upload failed, please try again.")}finally{this.uploading=!1}}},clearUpload(){this.uploadedFile=null,this.uploadedFileUrl="",this.uploadedFileInfo=null,this.$refs.fileInput.value=""},onCategoryChange(e){this.form.category=this.form.category===e?"":e},validate(){return this.uploadedFile?this.uploading?(this.$message.warning("Image is still uploading, please wait."),!1):this.uploadedFileUrl?this.form.category?!!this.form.consent||(this.$message.warning("Please agree to the terms and conditions."),!1):(this.$message.warning("Please choose a contest category."),!1):(this.$message.warning("Image upload failed, please re-select the image."),!1):(this.$message.warning("Please choose an image to upload."),!1)},async handleSubmit(){if(this.validate()){this.submitting=!0;try{const e={congressId:this.congressId,imageList:[this.uploadedFileInfo],contestCategory:this.form.category,description:this.form.description},t=await this.$api.submitImageContest(e);!t||200!==t.code&&0!==t.code||(this.submitted=!0)}catch(e){this.$message.error(e?.msg||e?.message||"Submission failed, please try again.")}finally{this.submitting=!1}}},goOwnPage(){this.$router.push("/mine")},async getCongressInfo(){if(!this.congressId)return;const e=await this.$api.websiteCongressGet({id:this.congressId}).catch(()=>null);e&&(200===e.code||0===e.code)&&e.data&&(this.congressInfo=e.data,this.sponsorList=e.data.contestSponsorsList)},initUserInfo(){try{const e=JSON.parse(localStorage.getItem("userInfo")||"{}");this.userInfo={title:e.title||"",firstName:e.firstName||"",lastName:e.lastName||""}}catch{this.userInfo={title:"",firstName:"",lastName:""}}},async loadSubmission(){this.loading=!0;try{const e=await this.$api.getImageContestPage({congressId:this.congressId,pageSize:1});if(e&&(200===e.code||0===e.code)&&e.data&&e.data.list&&e.data.list[0]){const t=e.data.list[0];this.form.category=t.contestCategory||"",this.form.description=t.description||"",this.form.consent=!0;const s=Array.isArray(t.imageList)&&t.imageList[0]?t.imageList[0]:null;s&&(this.uploadedFileUrl=s.url||"",this.uploadedFileInfo=s,this.uploadedFile={name:s.name||(s.url||"").split("/").pop()})}}catch{}finally{this.loading=!1}}},async created(){await this.refreshTokenFn(),this.initUserInfo(),this.getCongressInfo(),this.isReadonly&&this.loadSubmission()}}),n=o,l=s(81656),r=(0,l.A)(n,a,i,!1,null,"24c8487a",null),c=r.exports}}]); 2//# sourceMappingURL=imageContest.a1fee3de.js.map
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.