{"version":3,"sources":["webpack:///./src/router/views/TeleconsultationRequest/MatchImages.vue?4442","webpack:///./src/dialogs/ImageLightbox.vue?9bf9","webpack:///./src/router/views/TeleconsultationRequest/MatchImages.vue?e969","webpack:///./src/dialogs/ImageLightbox.vue?a31e","webpack:///src/dialogs/ImageLightbox.vue","webpack:///./src/dialogs/ImageLightbox.vue?50cb","webpack:///./src/dialogs/ImageLightbox.vue","webpack:///src/router/views/TeleconsultationRequest/MatchImages.vue","webpack:///./src/router/views/TeleconsultationRequest/MatchImages.vue?9714","webpack:///./src/router/views/TeleconsultationRequest/MatchImages.vue"],"names":["render","_vm","this","_h","$createElement","_c","_self","_v","_s","heading","staticClass","attrs","_m","_l","thumbnail","directives","name","rawName","value","openLightbox","expression","key","imageId","class","getThumbnailClass","style","getThumbnailUrl","on","$event","selectThumbnail","onDragStart","simpleName","_f","acquisitionTime","forceUTC","preventDefault","addRemainingAsExtraImages","reportTemplateImageViewId","onImageViewClick","onImageViewDragOver","onImageViewDragLeave","onImageViewDrop","_e","extraReason","isRequired","nativeOn","unassignImage","isExtra","reportImagesNotMatching","staticRenderFns","close","isVisible","backgroundImage","url","stopPropagation","onClick","ImageLightbox","components","ModalWrapper","props","image","type","Object","required","data","computed","findImageUrlFromImage","methods","e","dlg","open","component","ids","Array","consultantId","String","studyImages","hasServerMatches","service","allowAttachmentOnly","saleEntry","reportImages","get","images","set","unmatchedStudyImages","_this","filter","some","selectedStudyImage","find","isSelected","watch","handler","isComplete","workflow","canGoNext","immediate","beforeRouteEnter","to","from","next","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$service$getTem","errors","_yield$api$viewer$get","studies","_loop","i","_service$saleEntry","requiredImages","cannotAddImages","skipImageMatching","wrap","_context2","prev","abrupt","isLoading","query","studyId","split","getTemplate","studyIds","sent","length","showAlert","join","api","viewer","getStudy","study","addAcquisitionTime","_context","series","imageData","s","seriesId","_objectSpread","push","apply","_toConsumableArray","thumbnails","map","stop","delegateYield","saleEntryStatus","vm","finish","mounted","nextRoute","$route","classes","isUnmatched","storageLocation","findThumbnailUrl","studyImage","_ref","concat","_ref2","deselectThumbnail","event","dataTransfer","setData","_dndHandle","setDragImage","ghostImage","target","closest","imageView","assignImageToView","dropEffect","classList","contains","add","remove","_ref3","_this2","_callee2","_context3","slice","isExtraReasonRequired","openPromptDlg","buttonLabel","prompt","defaultValue","undefined","remainingAsExtras","reportImage","splice","indexOf","_this3","_callee3","_context4","imagesNotMatching","saleId","sale","id"],"mappings":"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","file":"js/teleconsultationsRequestMatchImages.11ddd2ed012d35b610b2.bundle.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatchImages.vue?vue&type=style&index=0&id=a26dbb0c&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/lib/loader.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageLightbox.vue?vue&type=style&index=0&id=526afe86&prod&lang=scss&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('h3',[_vm._v(_vm._s(_vm.heading))]),_c('p',{staticClass:\"instructions\"},[_c('svg-icon',{attrs:{\"icon\":\"arrow-all\",\"fixed\":\"\"}}),_c('span',{staticClass:\"touch-only\"},[_vm._v(\"\\n\\t\\t\\tSelect an image, followed by the matching view.\\n\\t\\t\")]),_vm._m(0)],1),_c('p',{staticClass:\"instructions\"},[_c('svg-icon',{attrs:{\"icon\":\"magnify\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\tDouble-click to preview.\\n\\t\")],1),_c('p',{staticClass:\"instructions\"},[_vm._v(\"\\n\\t\\tAny remaining unmatched images will not be submitted.\\n\\t\")]),_c('div',{staticClass:\"matching-panes\"},[_c('div',{staticClass:\"your-images\"},[_c('h4',[_vm._v(\"Your images\")]),_c('div',{staticClass:\"thumbnail-pane\"},_vm._l((_vm.unmatchedStudyImages),function(thumbnail){return _c('div',{directives:[{name:\"dblclick\",rawName:\"v-dblclick\",value:(function () { return _vm.openLightbox(thumbnail); }),expression:\"() => openLightbox(thumbnail)\"}],key:thumbnail.imageId,staticClass:\"thumbnail\",class:_vm.getThumbnailClass(thumbnail),style:({\n\t\t\t\t\t\t'background-image': (\"url(\" + (_vm.getThumbnailUrl(thumbnail)) + \")\"),\n\t\t\t\t\t}),attrs:{\"draggable\":\"true\"},on:{\"click\":function($event){return _vm.selectThumbnail(thumbnail)},\"dragstart\":function($event){return _vm.onDragStart(thumbnail, $event)}}},[_c('div',{staticClass:\"thumbnail-text\"},[_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(thumbnail.simpleName)+\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(thumbnail.acquisitionTime,{ forceUTC: false }))+\"\\n\\t\\t\\t\\t\\t\\t\")])])])}),0),_c('a',{on:{\"click\":function($event){$event.preventDefault();return _vm.addRemainingAsExtraImages($event)}}},[_vm._v(\"\\n\\t\\t\\t\\tAdd Remaining as Extra Images\\n\\t\\t\\t\")])]),_c('div',{staticClass:\"submission-images\"},[_c('h4',[_vm._v(\"Images for submission\")]),_c('div',{staticClass:\"thumbnail-pane\"},[_vm._l((_vm.reportImages),function(thumbnail){return _c('div',{key:thumbnail.reportTemplateImageViewId || thumbnail.imageId,staticClass:\"thumbnail\",class:_vm.getThumbnailClass(thumbnail),style:({\n\t\t\t\t\t\t'background-image': (\"url(\" + (_vm.getThumbnailUrl(thumbnail)) + \")\"),\n\t\t\t\t\t}),on:{\"click\":function($event){return _vm.onImageViewClick(thumbnail)},\"dragover\":function($event){$event.preventDefault();return _vm.onImageViewDragOver($event)},\"dragleave\":function($event){$event.preventDefault();return _vm.onImageViewDragLeave($event)},\"drop\":function($event){$event.preventDefault();return _vm.onImageViewDrop(thumbnail, $event)}}},[(!thumbnail.imageId)?_c('div',{staticClass:\"dim-overlay\"}):_vm._e(),_c('div',{staticClass:\"thumbnail-text\"},[_c('p',[_vm._v(_vm._s(thumbnail.name || thumbnail.extraReason))]),_c('div',{staticClass:\"thumbnail-status\"},[(thumbnail.imageId)?_c('p',{staticClass:\"is-success\"},[_c('svg-icon',{attrs:{\"icon\":\"check-circle\"}})],1):_vm._e(),(thumbnail.isRequired && !thumbnail.imageId)?_c('p',{staticClass:\"is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tRequired\\n\\t\\t\\t\\t\\t\\t\\t\")]):_vm._e(),(!thumbnail.isRequired && !thumbnail.imageId)?_c('p',{staticClass:\"is-warning\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tOptional\\n\\t\\t\\t\\t\\t\\t\\t\")]):_vm._e()])]),(thumbnail.imageId)?_c('svg-icon',{staticClass:\"clear-image\",attrs:{\"icon\":\"close\"},nativeOn:{\"click\":function($event){return _vm.unassignImage(thumbnail)}}}):_vm._e()],1)}),_c('div',{staticClass:\"thumbnail\",class:_vm.getThumbnailClass({ isExtra: true }),on:{\"click\":function($event){return _vm.onImageViewClick({ isExtra: true })},\"dragover\":function($event){$event.preventDefault();return _vm.onImageViewDragOver($event)},\"dragleave\":function($event){$event.preventDefault();return _vm.onImageViewDragLeave($event)},\"drop\":function($event){$event.preventDefault();return _vm.onImageViewDrop({ isExtra: true }, $event)}}},[_c('div',{staticClass:\"dim-overlay\"}),_vm._m(1)])],2),_c('a',{on:{\"click\":function($event){$event.preventDefault();return _vm.reportImagesNotMatching($event)}}},[_vm._v(\"\\n\\t\\t\\t\\tImages not matching?\\n\\t\\t\\t\")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"mouse-only\"},[_vm._v(\"\\n\\t\\t\\tSelect an image, followed by the matching view,\\n\\t\\t\\t\"),_c('em',[_vm._v(\"or\")]),_vm._v(\"\\n\\t\\t\\tdrag each image.\\n\\t\\t\")])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"thumbnail-text\"},[_c('p',[_vm._v(\"Extra Image\")])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close,\"appear\":function($event){_vm.isVisible = true}}},[_c('div',{staticClass:\"lightbox\",style:({ backgroundImage: (\"url(\" + _vm.url + \")\") }),on:{\"click\":function($event){$event.stopPropagation();return _vm.onClick($event)}}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n\t<modal-wrapper @close=\"close\" @appear=\"isVisible = true\">\n\t\t<div class=\"lightbox\" :style=\"{ backgroundImage: `url(${url})` }\" @click.stop=\"onClick\"></div>\n\t</modal-wrapper>\n</template>\n\n<script>\nimport ModalWrapper from '@components/ModalWrapper.vue'\nimport { dlg } from '@utils/dlgUtils'\nimport { findImageUrlFromImage } from '@utils/urlUtility'\n\nconst ImageLightbox = {\n\tname: 'ImageLightbox',\n\tcomponents: {\n\t\tModalWrapper,\n\t},\n\tprops: {\n\t\timage: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisVisible: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\turl() {\n\t\t\treturn findImageUrlFromImage(this.image)\n\t\t},\n\t},\n\tmethods: {\n\t\tonClick(e) {\n\t\t\t// prevent accidentally closing dialog before it is visible\n\t\t\tif (this.isVisible) this.close()\n\t\t},\n\t\tclose() {\n\t\t\tdlg.close(this)\n\t\t},\n\t},\n}\nexport default ImageLightbox\n\nexport function openLightbox(image) {\n\treturn dlg.open(ImageLightbox, { image })\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.lightbox {\n\theight: 85vh;\n\tmax-height: 85vh;\n\twidth: 85vw;\n\tmax-width: 85vw;\n\tbackground-size: contain;\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\toverflow: hidden;\n\tcursor: pointer;\n\ttext-align: center;\n\tbox-shadow: none;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageLightbox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageLightbox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImageLightbox.vue?vue&type=template&id=526afe86&scoped=true\"\nimport script from \"./ImageLightbox.vue?vue&type=script&lang=js\"\nexport * from \"./ImageLightbox.vue?vue&type=script&lang=js\"\nimport style0 from \"./ImageLightbox.vue?vue&type=style&index=0&id=526afe86&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"526afe86\",\n  null\n  \n)\n\nexport default component.exports","<template>\n\t<div>\n\t\t<h3>{{ heading }}</h3>\n\t\t<p class=\"instructions\">\n\t\t\t<svg-icon icon=\"arrow-all\" fixed />\n\t\t\t<span class=\"touch-only\">\n\t\t\t\tSelect an image, followed by the matching view.\n\t\t\t</span>\n\t\t\t<span class=\"mouse-only\">\n\t\t\t\tSelect an image, followed by the matching view,\n\t\t\t\t<em>or</em>\n\t\t\t\tdrag each image.\n\t\t\t</span>\n\t\t</p>\n\t\t<p class=\"instructions\">\n\t\t\t<svg-icon icon=\"magnify\" fixed />\n\t\t\tDouble-click to preview.\n\t\t</p>\n\t\t<p class=\"instructions\">\n\t\t\tAny remaining unmatched images will not be submitted.\n\t\t</p>\n\t\t<div class=\"matching-panes\">\n\t\t\t<div class=\"your-images\">\n\t\t\t\t<h4>Your images</h4>\n\t\t\t\t<div class=\"thumbnail-pane\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for=\"thumbnail in unmatchedStudyImages\"\n\t\t\t\t\t\t:key=\"thumbnail.imageId\"\n\t\t\t\t\t\tv-dblclick=\"() => openLightbox(thumbnail)\"\n\t\t\t\t\t\tclass=\"thumbnail\"\n\t\t\t\t\t\t:class=\"getThumbnailClass(thumbnail)\"\n\t\t\t\t\t\tdraggable=\"true\"\n\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\t'background-image': `url(${getThumbnailUrl(thumbnail)})`,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t@click=\"selectThumbnail(thumbnail)\"\n\t\t\t\t\t\t@dragstart=\"onDragStart(thumbnail, $event)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"thumbnail-text\">\n\t\t\t\t\t\t\t<span>\n\t\t\t\t\t\t\t\t{{ thumbnail.simpleName }}\n\t\t\t\t\t\t\t\t{{ thumbnail.acquisitionTime | localizeDate({ forceUTC: false }) }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<a @click.prevent=\"addRemainingAsExtraImages\">\n\t\t\t\t\tAdd Remaining as Extra Images\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t\t<div class=\"submission-images\">\n\t\t\t\t<h4>Images for submission</h4>\n\t\t\t\t<div class=\"thumbnail-pane\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-for=\"thumbnail in reportImages\"\n\t\t\t\t\t\t:key=\"thumbnail.reportTemplateImageViewId || thumbnail.imageId\"\n\t\t\t\t\t\tclass=\"thumbnail\"\n\t\t\t\t\t\t:class=\"getThumbnailClass(thumbnail)\"\n\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\t'background-image': `url(${getThumbnailUrl(thumbnail)})`,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\t@click=\"onImageViewClick(thumbnail)\"\n\t\t\t\t\t\t@dragover.prevent=\"onImageViewDragOver\"\n\t\t\t\t\t\t@dragleave.prevent=\"onImageViewDragLeave\"\n\t\t\t\t\t\t@drop.prevent=\"onImageViewDrop(thumbnail, $event)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div v-if=\"!thumbnail.imageId\" class=\"dim-overlay\"></div>\n\t\t\t\t\t\t<div class=\"thumbnail-text\">\n\t\t\t\t\t\t\t<p>{{ thumbnail.name || thumbnail.extraReason }}</p>\n\t\t\t\t\t\t\t<div class=\"thumbnail-status\">\n\t\t\t\t\t\t\t\t<p v-if=\"thumbnail.imageId\" class=\"is-success\">\n\t\t\t\t\t\t\t\t\t<svg-icon icon=\"check-circle\" />\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t<p v-if=\"thumbnail.isRequired && !thumbnail.imageId\" class=\"is-danger\">\n\t\t\t\t\t\t\t\t\tRequired\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t<p v-if=\"!thumbnail.isRequired && !thumbnail.imageId\" class=\"is-warning\">\n\t\t\t\t\t\t\t\t\tOptional\n\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<svg-icon\n\t\t\t\t\t\t\tv-if=\"thumbnail.imageId\"\n\t\t\t\t\t\t\ticon=\"close\"\n\t\t\t\t\t\t\tclass=\"clear-image\"\n\t\t\t\t\t\t\t@click.native=\"unassignImage(thumbnail)\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"thumbnail\"\n\t\t\t\t\t\t:class=\"getThumbnailClass({ isExtra: true })\"\n\t\t\t\t\t\t@click=\"onImageViewClick({ isExtra: true })\"\n\t\t\t\t\t\t@dragover.prevent=\"onImageViewDragOver\"\n\t\t\t\t\t\t@dragleave.prevent=\"onImageViewDragLeave\"\n\t\t\t\t\t\t@drop.prevent=\"onImageViewDrop({ isExtra: true }, $event)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"dim-overlay\"></div>\n\t\t\t\t\t\t<div class=\"thumbnail-text\">\n\t\t\t\t\t\t\t<p>Extra Image</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<a @click.prevent=\"reportImagesNotMatching\">\n\t\t\t\t\tImages not matching?\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport api from '@services/api'\nimport { openLightbox } from '@dialogs/ImageLightbox.vue'\nimport { openPromptDlg } from '@dialogs/TextPromptDlg.vue'\nimport { findThumbnailUrl } from '@utils/urlUtility'\nimport { showAlert } from '@dialogs/MessageDlg.vue'\nimport service from '@services/salesService'\nimport workflow from '@services/workflow'\n\nexport default {\n\tname: 'TeleconsultationRequestMatchImages',\n\tprops: {\n\t\tids: {\n\t\t\ttype: Array,\n\t\t\trequired: true,\n\t\t},\n\t\tconsultantId: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tstudyImages: [],\n\t\t\thasServerMatches: false,\n\t\t\tservice,\n\t\t}\n\t},\n\tcomputed: {\n\t\tallowAttachmentOnly() {\n\t\t\treturn this.service.saleEntry.allowAttachmentOnly\n\t\t},\n\t\treportImages: {\n\t\t\tget() {\n\t\t\t\treturn this.service.saleEntry.images\n\t\t\t},\n\t\t\tset(images) {\n\t\t\t\tthis.service.saleEntry.images = images\n\t\t\t},\n\t\t},\n\t\tunmatchedStudyImages() {\n\t\t\treturn this.studyImages.filter(thumbnail => {\n\t\t\t\treturn !this.reportImages.some(image => image.imageId === thumbnail.imageId)\n\t\t\t})\n\t\t},\n\t\tselectedStudyImage() {\n\t\t\treturn this.studyImages.find(thumbnail => thumbnail.isSelected)\n\t\t},\n\t\theading() {\n\t\t\tif (this.hasServerMatches) {\n\t\t\t\treturn (\n\t\t\t\t\t'Keystone has matched some of your submitted images to those accepted ' +\n\t\t\t\t\t'for this sale. Please review these matches, and match any additional ' +\n\t\t\t\t\t'images at this time.'\n\t\t\t\t)\n\t\t\t} else {\n\t\t\t\treturn 'Please match your uploaded images to those accepted by this sale.'\n\t\t\t}\n\t\t},\n\t},\n\twatch: {\n\t\treportImages: {\n\t\t\thandler(reportImages) {\n\t\t\t\tconst isComplete = !reportImages.some(image => image.isRequired && !image.imageId)\n\t\t\t\tworkflow.canGoNext = isComplete\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t},\n\tasync beforeRouteEnter(to, from, next) {\n\t\tif (!service.saleEntry) {\n\t\t\tnext(false)\n\t\t\treturn\n\t\t}\n\n\t\tworkflow.canGoNext = false\n\t\tworkflow.isLoading = true\n\t\ttry {\n\t\t\tconst ids = to.query.studyId.split(',')\n\n\t\t\t// Get sale template and validate studies against sale requirements\n\t\t\tconst { hasServerMatches } = await service.getTemplate({\n\t\t\t\tstudyIds: ids,\n\t\t\t})\n\t\t\tconst { errors } = service.saleEntry\n\t\t\tif (errors.length) {\n\t\t\t\tshowAlert(errors.join(' '))\n\t\t\t\treturn next(false)\n\t\t\t}\n\n\t\t\t// Get study images\n\t\t\tconst { studies } = await api.viewer.getStudy({ ids }, false)\n\t\t\tconst studyImages = []\n\t\t\tfor (let i = 0; i < studies.length; i++) {\n\t\t\t\tconst study = studies[i]\n\t\t\t\tconst addAcquisitionTime = thumbnail => {\n\t\t\t\t\tlet acquisitionTime = ''\n\t\t\t\t\tconst series = study.imageData.series.find(s => s.seriesId === thumbnail.seriesId)\n\t\t\t\t\tif (series) acquisitionTime = series.images[0].acquisitionTime\n\t\t\t\t\treturn { ...thumbnail, acquisitionTime }\n\t\t\t\t}\n\t\t\t\tstudyImages.push(...study.imageData.thumbnails.map(addAcquisitionTime))\n\t\t\t}\n\n\t\t\tconst { images, allowAttachmentOnly } = service.saleEntry\n\t\t\tconst requiredImages = images.filter(image => image.isRequired)\n\t\t\tconst cannotAddImages = service.saleEntryStatus === 'saleEntryAlreadyHasImages' && (!images || !images.length)\n\t\t\t// if user provided no images and none are required anyway, skip matching\n\t\t\tconst skipImageMatching =\n\t\t\t\t(!studyImages.length && (!requiredImages.length || allowAttachmentOnly)) || cannotAddImages\n\t\t\tif (skipImageMatching)\n\t\t\t\treturn next({\n\t\t\t\t\tname: 'request-submit-sale',\n\t\t\t\t\tquery: to.query,\n\t\t\t\t})\n\n\t\t\tnext(vm => {\n\t\t\t\tvm.hasServerMatches = hasServerMatches\n\t\t\t\tvm.studyImages = studyImages\n\t\t\t})\n\t\t} finally {\n\t\t\tworkflow.isLoading = false\n\t\t}\n\t},\n\tmounted() {\n\t\tworkflow.nextRoute = {\n\t\t\tname: 'request-submit-sale',\n\t\t\tquery: this.$route.query,\n\t\t}\n\t},\n\tmethods: {\n\t\topenLightbox,\n\t\tgetThumbnailClass(thumbnail) {\n\t\t\tconst classes = []\n\t\t\tconst isUnmatched = thumbnail.isExtra || (thumbnail.reportTemplateImageViewId && !thumbnail.imageId)\n\t\t\tif (isUnmatched) classes.push('is-unmatched')\n\t\t\tif (!isUnmatched && thumbnail.reportTemplateImageViewId) classes.push('is-matched')\n\t\t\tif (isUnmatched && this.selectedStudyImage) classes.push('is-target')\n\t\t\tif (thumbnail.isSelected) classes.push('is-selected')\n\t\t\treturn classes\n\t\t},\n\t\tgetThumbnailUrl(thumbnail) {\n\t\t\t// study thumbnail (on left)\n\t\t\tif (thumbnail.imageId && thumbnail.storageLocation) return findThumbnailUrl(thumbnail)\n\t\t\t// matched study thumbnail (on right)\n\t\t\tif (thumbnail.imageId) {\n\t\t\t\tconst studyImage = this.studyImages.find(({ imageId }) => imageId === thumbnail.imageId)\n\t\t\t\treturn findThumbnailUrl(studyImage)\n\t\t\t}\n\t\t\t// image view thumbnail (on right)\n\t\t\treturn `data:image;base64,${thumbnail.thumbnail}`\n\t\t},\n\t\tselectThumbnail({ imageId, isSelected }) {\n\t\t\tthis.deselectThumbnail()\n\t\t\tconst thumbnail = this.studyImages.find(thumbnail => thumbnail.imageId === imageId)\n\t\t\tthumbnail.isSelected = !isSelected\n\t\t},\n\t\tdeselectThumbnail() {\n\t\t\tthis.studyImages = this.studyImages.map(thumbnail => ({ ...thumbnail, isSelected: false }))\n\t\t},\n\t\tonDragStart(thumbnail, event) {\n\t\t\tthis.selectThumbnail({ ...thumbnail, isSelected: false })\n\t\t\tevent.dataTransfer.setData('text', '') // not used, but required for Firefox\n\t\t\tif (event._dndHandle && event.dataTransfer.setDragImage) {\n\t\t\t\tconst ghostImage = event.target.closest('[draggable=\"true\"]')\n\t\t\t\tevent.dataTransfer.setDragImage(ghostImage, 0, 0)\n\t\t\t}\n\t\t},\n\t\tonImageViewClick(imageView) {\n\t\t\tif (this.selectedStudyImage) this.assignImageToView(imageView)\n\t\t},\n\t\tonImageViewDragOver(event) {\n\t\t\tevent.dataTransfer.dropEffect = 'move'\n\t\t\tif (!event.target || !event.target.classList) return\n\t\t\tif (event.target.classList.contains('thumbnail')) event.target.classList.add('is-drag-over')\n\t\t},\n\t\tonImageViewDragLeave(event) {\n\t\t\tevent.dataTransfer.dropEffect = 'move'\n\t\t\tif (!event.target || !event.target.classList) return\n\t\t\tif (event.target.classList.contains('thumbnail')) event.target.classList.remove('is-drag-over')\n\t\t},\n\t\tonImageViewDrop(imageView, event) {\n\t\t\tevent.target.classList.remove('is-drag-over')\n\t\t\tthis.assignImageToView(imageView)\n\t\t},\n\t\tasync assignImageToView({ reportTemplateImageViewId, isExtra }) {\n\t\t\tif (!this.selectedStudyImage) return\n\t\t\tconst reportImages = this.reportImages.slice()\n\t\t\tif (reportTemplateImageViewId) {\n\t\t\t\tconst imageView = reportImages.find(image => {\n\t\t\t\t\treturn image.reportTemplateImageViewId === reportTemplateImageViewId\n\t\t\t\t})\n\t\t\t\timageView.imageId = this.selectedStudyImage.imageId\n\t\t\t} else if (isExtra) {\n\t\t\t\tlet extraReason = ''\n\t\t\t\tif (this.service.isExtraReasonRequired) {\n\t\t\t\t\textraReason = await openPromptDlg({\n\t\t\t\t\t\tbuttonLabel: 'OK',\n\t\t\t\t\t\tprompt: 'Please enter a reason for the extra image:',\n\t\t\t\t\t\tdefaultValue: this.selectedStudyImage.simpleName,\n\t\t\t\t\t\ttype: 'textarea',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tif (extraReason === undefined) return\n\t\t\t\treportImages.push({\n\t\t\t\t\treportTemplateImageViewId: '',\n\t\t\t\t\timageId: this.selectedStudyImage.imageId,\n\t\t\t\t\textraReason: extraReason || this.selectedStudyImage.simpleName,\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.reportImages = reportImages\n\t\t\tthis.deselectThumbnail()\n\t\t},\n\t\taddRemainingAsExtraImages() {\n\t\t\tconst remainingAsExtras = this.unmatchedStudyImages.map(image => ({\n\t\t\t\treportTemplateImageViewId: '',\n\t\t\t\timageId: image.imageId,\n\t\t\t\textraReason: '',\n\t\t\t}))\n\t\t\tthis.reportImages = [...this.reportImages, ...remainingAsExtras]\n\t\t},\n\t\tunassignImage(reportImage) {\n\t\t\tif (reportImage.reportTemplateImageViewId) {\n\t\t\t\treportImage.imageId = null\n\t\t\t\tthis.reportImages = this.reportImages.slice()\n\t\t\t}\n\t\t\tif ('extraReason' in reportImage) {\n\t\t\t\tthis.reportImages.splice(this.reportImages.indexOf(reportImage), 1)\n\t\t\t}\n\t\t},\n\t\tasync reportImagesNotMatching() {\n\t\t\ttry {\n\t\t\t\tawait service.imagesNotMatching({\n\t\t\t\t\tconsultantId: this.$route.query.consultantId,\n\t\t\t\t\tsaleId: this.service.sale.id,\n\t\t\t\t\tstudyIds: this.$route.query.studyId.split(','),\n\t\t\t\t})\n\t\t\t} finally {\n\t\t\t\tshowAlert(\n\t\t\t\t\t`Asteris personnel have been notified of the problem. ` +\n\t\t\t\t\t\t`Multiple submissions of images from the same modality device will not ` +\n\t\t\t\t\t\t`increase the priority of this issue.  Thank you for your patience.`\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import '~@styles/_vars.scss';\n\n.instructions {\n\tpadding-top: 16px;\n\t& + .instructions {\n\t\tpadding-top: 8px;\n\t}\n}\n.touch-only {\n\tdisplay: none;\n\t@media (hover: none) {\n\t\tdisplay: initial;\n\t}\n}\n.mouse-only {\n\tdisplay: none;\n\t@media not all and (hover: none) {\n\t\tdisplay: initial;\n\t}\n}\n.matching-panes {\n\tdisplay: flex;\n\tmargin: 0 -16px;\n\t& > * {\n\t\tpadding: 16px;\n\t\tmin-width: 50%;\n\t\twidth: 50%;\n\t\theight: 100%;\n\t}\n\t@media (max-width: $mqLarge) {\n\t\tflex-direction: column;\n\t\t& > * {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\ta {\n\t\tdisplay: block;\n\t\tmargin-top: 8px;\n\t\tuser-select: none;\n\t\tcursor: pointer;\n\t\tfont-weight: 400;\n\t\t&:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t}\n}\n.thumbnail-pane {\n\tdisplay: flex;\n\tflex-flow: row wrap;\n\talign-content: flex-start;\n\theight: 60vh;\n\tmax-height: 60vh;\n\toverflow-y: auto;\n\tmargin-top: 8px;\n\tpadding: 2px;\n\tbackground: var(--secondary-bg);\n\tborder: 1px solid var(--secondary-border);\n\t@media (max-width: $mqLarge) {\n\t\theight: 28vh;\n\t\tmax-height: 28vh;\n\t}\n}\n.thumbnail {\n\tdisplay: flex;\n\tposition: relative;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 125px;\n\theight: 125px;\n\tbackground-size: contain;\n\tbackground-color: black;\n\tbackground-position: center;\n\tbackground-repeat: no-repeat;\n\toverflow: hidden;\n\tmargin: 4px;\n\tuser-select: none;\n\tcolor: #fff;\n\tpadding: 3px;\n\ttext-shadow: 1px 1px 2px #000;\n\topacity: 0.9;\n\tcursor: pointer;\n\t.icon {\n\t\tfilter: drop-shadow(1px 1px 2px #000);\n\t}\n\t&:hover {\n\t\topacity: 1;\n\t}\n\t& > * {\n\t\tz-index: 1;\n\t}\n\t.dim-overlay {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground: var(--card-bg);\n\t\topacity: 0.75;\n\t\tz-index: 0;\n\t\tpointer-events: none; // prevent firing thumbnail dragleave event\n\t}\n\t&.is-matched {\n\t\tcursor: default;\n\t\t&:hover {\n\t\t\topacity: 0.9;\n\t\t}\n\t}\n\t&.is-unmatched {\n\t\tcolor: var(--primary-label);\n\t\tbackground: var(--checkbox-unchecked-border);\n\t\ttext-shadow: 1px 1px 2px var(--checkbox-unchecked-border);\n\t\tcursor: default;\n\t\t&:hover {\n\t\t\topacity: 0.9;\n\t\t}\n\t}\n\t&.is-selected {\n\t\tborder: 3px solid var(--checkbox-checked-border);\n\t\tpadding: 0;\n\t}\n\t&.is-selected,\n\t&.is-target {\n\t\tcursor: pointer;\n\t}\n\t&.is-target .dim-overlay {\n\t\tborder: 2px solid var(--checkbox-checked-border);\n\t}\n\t&.is-target.is-drag-over .dim-overlay,\n\t&.is-target:hover .dim-overlay {\n\t\tborder-bottom-width: 4px;\n\t\topacity: 0.9;\n\t}\n}\n.clear-image {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tfont-size: 30px;\n\topacity: 0.85;\n\tcursor: pointer;\n\t&:hover {\n\t\topacity: 1;\n\t}\n}\n.thumbnail-text {\n\ttext-align: center;\n\tfont-weight: 700;\n\tfont-size: 0.9em;\n\tword-break: break-word;\n\twidth: 100%;\n\tpadding: 4px;\n\tpointer-events: none; // prevent firing thumbnail dragleave event\n\t.thumbnail-status {\n\t\tfont-size: 0.9em;\n\t\tpadding-top: 2px;\n\t}\n}\n</style>\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatchImages.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MatchImages.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MatchImages.vue?vue&type=template&id=a26dbb0c&scoped=true\"\nimport script from \"./MatchImages.vue?vue&type=script&lang=js\"\nexport * from \"./MatchImages.vue?vue&type=script&lang=js\"\nimport style0 from \"./MatchImages.vue?vue&type=style&index=0&id=a26dbb0c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"a26dbb0c\",\n  null\n  \n)\n\nexport default component.exports"],"sourceRoot":""}