{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/SvgIcon.vue?d6c4","webpack:///src/components/SvgIcon.vue","webpack:///./src/components/SvgIcon.vue?b971","webpack:///./src/components/SvgIcon.vue","webpack:///./src/utils/deepClone.js","webpack:///./src/components/PdfViewer.vue?d2ef","webpack:///./src/cornerstone/_shared/isLocalizerImage.js","webpack:///./src/assets/icons/copy.svg","webpack:///./src/assets/icons/fullscreen-exit-alt.svg","webpack:///./src/assets/icons/user-md.svg","webpack:///./src/assets/icons/play-box-outline.svg","webpack:///./src/services/user.ts","webpack:///./src/assets/icons/os-windows.svg","webpack:///./src/assets/icons/moon.svg","webpack:///./src/assets/icons/switch.svg","webpack:///./src/services/folders.ts","webpack:///./src/assets/icons/dock-left.svg","webpack:///./src/components/FilterTag.vue?e13c","webpack:///./src/vtk/ViewportOverlay/MPRInteractor.vue?ca33","webpack:///./src/dialogs/statWarningDlg.vue?0191","webpack:///./src/cornerstone/_shared/isSameOrientation.js","webpack:///./src/assets/icons/cube-outline.svg","webpack:///./src/vtk/VTKViewport/2DMPRManager.vue?6104","webpack:///./src/assets/icons/fullscreen_exit.svg","webpack:///./src/assets/icons/gradient.svg","webpack:///./src/assets/icons/backup-restore.svg","webpack:///./src/dialogs/OnBehalfOf.vue?c99c","webpack:///src/dialogs/OnBehalfOf.vue","webpack:///./src/dialogs/OnBehalfOf.vue?5cbf","webpack:///./src/dialogs/OnBehalfOf.vue","webpack:///./src/components/Input.vue?7776","webpack:///src/components/Input.vue","webpack:///./src/components/Input.vue?0450","webpack:///./src/components/Input.vue","webpack:///./src/assets/icons/save-copy.svg","webpack:///./src/vtk/VTKViewport/consts.js","webpack:///./src/assets/icons/layout-1x2.svg","webpack:///./src/utils/emailIsValid.js","webpack:///./src/assets/icons/pause.svg","webpack:///./src/services/notificationService.ts","webpack:///./src/assets/icons/file-powerpoint-o.svg","webpack:///./src/assets/icons/keyboard-outline.svg","webpack:///./src/components/Pagination.vue?c882","webpack:///src/components/Pagination.vue","webpack:///./src/components/Pagination.vue?6a47","webpack:///./src/components/Pagination.vue","webpack:///./src/dialogs/DicomServiceLogDlg.vue?e0fb","webpack:///./src/assets/icons/crosshairs.svg","webpack:///./src/assets/icons/layout-3x2.svg","webpack:///./src/assets/icons/brightness-low.svg","webpack:///./src/components/Card.vue?88a1","webpack:///./src/assets/icons/spinner-circle-med.svg","webpack:///./src/dialogs/attachmentDlg.vue?ab1f","webpack:///./src/assets/icons/lock.svg","webpack:///./src/assets/icons/chevron-right.svg","webpack:///./src/utils/wwwc.js","webpack:///./src/cornerstone/metadata/internals/metadataLookup.js","webpack:///./src/cornerstone/metadata/internals/dicomTagValueTypeEnum.js","webpack:///./src/cornerstone/metadata/internals/dicomTagEnum.js","webpack:///./src/cornerstone/metadata/internals/getValue.js","webpack:///./src/cornerstone/metadata/metadataModules/getGeneralImageModule.js","webpack:///./src/cornerstone/metadata/metadataModules/getImagePixelModule.js","webpack:///./src/cornerstone/metadata/metadataModules/getImagePlaneModule.js","webpack:///./src/cornerstone/metadata/metadataModules/getModalityLutModule.js","webpack:///./src/cornerstone/metadata/metadataModules/getMultiFrameModule.js","webpack:///./src/cornerstone/metadata/metadataModules/getPetIsotopeModule.js","webpack:///./src/cornerstone/metadata/metadataModules/getSopCommonModule.js","webpack:///./src/cornerstone/metadata/metadataModules/getVoiLutModule.js","webpack:///./src/cornerstone/metadata/addMetadata.js","webpack:///./src/cornerstone/metadata/updateMetadata.js","webpack:///./src/cornerstone/metadata/provider.js","webpack:///./src/cornerstone/metadata/index.js","webpack:///./src/assets/icons/format-align-right.svg","webpack:///./src/components/ModalDialog.vue?50e0","webpack:///src/components/ModalDialog.vue","webpack:///./src/components/ModalDialog.vue?ee2e","webpack:///./src/components/ModalDialog.vue","webpack:///./src/reporting/classes.ts","webpack:///./src/assets/icons/file-audio-o.svg","webpack:///./src/assets/icons/link.svg","webpack:///./src/components/DataTable.vue?b542","webpack:///src/components/DataTable.vue","webpack:///./src/components/DataTable.vue?0d39","webpack:///./src/components/DataTable.vue","webpack:///./src/services/salesService.ts","webpack:///./src/assets/icons/layout-2x2-1.svg","webpack:///./src/upload/upload.worker.js","webpack:///./src/assets/icons/life-ring.svg","webpack:///./src/components/Radio.vue?d78d","webpack:///./src/assets/icons/invert-colors.svg","webpack:///./src/assets/icons/caret-down-line.svg","webpack:///./src/utils/urlUtility.ts","webpack:///./src/assets/icons/repeat2.svg","webpack:///./src/components/view/StudiesListCards.vue?05d8","webpack:///src/components/view/StudiesListCards.vue","webpack:///./src/components/view/StudiesListCards.vue?b40b","webpack:///./src/components/view/StudiesListCards.vue","webpack:///./src/dialogs/AddendumDlg.vue?1a77","webpack:///./src/assets/icons/tplo.svg","webpack:///./src/services/communityService.ts","webpack:///./src/utils/locale.js","webpack:///./src/assets/icons/signalpet-colored.png","webpack:///./src/components/Button.vue?ac50","webpack:///src/components/Button.vue","webpack:///./src/components/Button.vue?8b04","webpack:///./src/components/Button.vue","webpack:///./src/store/modules/mpr/mutations/index.js","webpack:///./src/assets/icons/pencil.svg","webpack:///./src/services/userData.ts","webpack:///./src/services/analyticsService.js","webpack:///./src/vtk/VTKViewport/2DMPRView.vue?57a5","webpack:///./src/assets/icons/folder-open-outline.svg","webpack:///./src/assets/icons/file-movie-o.svg","webpack:///./src/App.vue?fcf4","webpack:///./src/assets/icons/fast-backward.svg","webpack:///./src/assets/icons/exclamation-circle.svg","webpack:///./src/dialogs/ReleaseNotes.vue?d54e","webpack:///./src/services/billingCodes.ts","webpack:///./src/assets/icons/spinner-circle-thin.svg","webpack:///./src/assets/icons/stop-circle.svg","webpack:///./src/assets/icons/layout-mpr-3x1.svg","webpack:///./src/assets/icons/layout-3x3.svg","webpack:///./src/assets/icons/link_manual.svg","webpack:///./src/assets/icons/fullscreen-alt.svg","webpack:///./src/assets/icons/eye-plus-outline.svg","webpack:///./src/assets/icons/brightness-6.svg","webpack:///./src/vtk/ViewportOverlay/ViewportOverlay.vue?49a4","webpack:///./src/assets/icons/folder-dcm.svg","webpack:///./src/components/Loading.vue?608f","webpack:///./src/components/Loading.vue","webpack:///./src/components/Loading.vue?78fe","webpack:///./src/components/Loading.vue?2b2d","webpack:///./src/dialogs/attachmentDlg.vue?eb85","webpack:///./src/assets/icons/checkbox-multiple-marked.svg","webpack:///./src/utils/fileUtils.js","webpack:///./src/assets/icons/cloud-upload.svg","webpack:///./src/assets/icons/eyedropper-variant.svg","webpack:///./src/components/EmailSelect.vue?e01a","webpack:///src/components/EmailSelect.vue","webpack:///./src/components/EmailSelect.vue?c066","webpack:///./src/components/EmailSelect.vue","webpack:///./src/assets/icons/hip-dysplasia.svg","webpack:///./src/assets/icons/vertebral-heart.svg","webpack:///./src/assets/icons/link_off.svg","webpack:///./src/dialogs/OpenStudyOptionsDlg.vue?b62f","webpack:///src/dialogs/OpenStudyOptionsDlg.vue","webpack:///./src/dialogs/OpenStudyOptionsDlg.vue?cc23","webpack:///./src/dialogs/OpenStudyOptionsDlg.vue","webpack:///./src/store/modules/windows.js","webpack:///./src/assets/icons/play.svg","webpack:///./src/components/DateRangePicker.vue?0d44","webpack:///src/components/DateRangePicker.vue","webpack:///./src/components/DateRangePicker.vue?d782","webpack:///./src/components/DateRangePicker.vue","webpack:///./src/assets/icons/domain.svg","webpack:///./src/assets/icons/file-document-box-outline.svg","webpack:///./src/dialogs/attachmentDlg.vue?2799","webpack:///./src/components/VideoPlayer.vue","webpack:///src/components/VideoPlayer.vue","webpack:///./src/components/VideoPlayer.vue?3c5d","webpack:///./src/dialogs/attachmentDlg.vue","webpack:///./src/dialogs/attachmentDlg.vue?62e4","webpack:///./src/dialogs/attachmentDlg.vue?e3f1","webpack:///./src/assets/icons/vector-ellipse.svg","webpack:///./src/utils/refreshToken.js","webpack:///./src/store/modules/authentication.js","webpack:///./src/store/modules/mpr/getters/index.js","webpack:///./src/store/modules/mpr/actions/loadVolumeFromSeries.js","webpack:///./src/store/modules/mpr/actions/createMprAnnotationRenderingAsync.js","webpack:///./src/utils/saveImage.js","webpack:///./src/store/modules/mpr/actions/saveMprImageAsync.js","webpack:///./src/utils/printImage.js","webpack:///./src/store/modules/mpr/actions/printMprImageAsync.js","webpack:///./src/utils/base64toBlob.js","webpack:///./src/dialogs/CopyImageDlg.vue?57a3","webpack:///src/dialogs/CopyImageDlg.vue","webpack:///./src/dialogs/CopyImageDlg.vue?7398","webpack:///./src/dialogs/CopyImageDlg.vue","webpack:///./src/utils/copyImageToClipboard.js","webpack:///./src/store/modules/mpr/actions/copyMprImageAsync.js","webpack:///./src/dialogs/MprPerformance.vue?d762","webpack:///src/dialogs/MprPerformance.vue","webpack:///./src/dialogs/MprPerformance.vue?86d9","webpack:///./src/dialogs/MprPerformance.vue","webpack:///./src/store/modules/mpr/actions/index.js","webpack:///./src/store/modules/mpr/index.js","webpack:///./src/store/modules/reportColorSettings.js","webpack:///./src/services/idle.js","webpack:///./src/store/modules/repository.js","webpack:///./src/store/modules/repositoryReview.js","webpack:///./src/store/modules/saleHipStore.js","webpack:///./src/store/modules/saleSubmission.js","webpack:///./src/store/models/base/Vm.js","webpack:///./src/store/models/state/onBehalfOfVm.js","webpack:///./src/store/models/base/VmDetail.js","webpack:///./src/store/models/state/AutoCompleteDetail.js","webpack:///./src/store/models/state/autoCompleteVm.js","webpack:///./src/store/modules/settings.js","webpack:///./src/store/modules/theme/colors.js","webpack:///./src/store/modules/theme/asteris.js","webpack:///./src/store/modules/theme/vsp.js","webpack:///./src/store/modules/theme/themes.js","webpack:///./src/store/modules/theme/index.js","webpack:///./src/store/modules/toolManager/setActiveTool.js","webpack:///./src/store/modules/toolManager/index.js","webpack:///./src/dialogs/UpdateAppDlg.vue?0c9f","webpack:///src/dialogs/UpdateAppDlg.vue","webpack:///./src/dialogs/UpdateAppDlg.vue?1794","webpack:///./src/dialogs/UpdateAppDlg.vue","webpack:///./src/store/modules/ui.js","webpack:///./src/store/models/state/CanvasCinePlayer.js","webpack:///./src/store/models/state/Canvas.js","webpack:///./src/store/modules/viewer/_shared/index.js","webpack:///./src/store/modules/viewer/state/index.js","webpack:///./src/store/modules/viewer/getters/index.js","webpack:///./src/store/modules/viewer/mutations/settings.js","webpack:///./src/store/modules/viewer/mutations/ADD_STUDIES.js","webpack:///./src/store/modules/viewer/mutations/CLEAR_VIEWER.js","webpack:///./src/store/modules/viewer/mutations/index.js","webpack:///./src/store/modules/viewer/actions/clearAnnotations.js","webpack:///./src/store/modules/viewer/actions/_shared/createImageFromEnabledElementAsync.js","webpack:///./src/store/modules/viewer/actions/copyCanvasAsync.js","webpack:///./src/store/modules/viewer/actions/createAnnotationRenderingAsync.js","webpack:///./src/store/modules/viewer/actions/imageNavigation.js","webpack:///./src/store/modules/viewer/actions/printCanvasAsync.js","webpack:///./src/store/modules/viewer/actions/resetActiveCanvas.js","webpack:///./src/store/modules/viewer/actions/saveCanvasAsync.js","webpack:///./src/store/modules/viewer/actions/setActiveCanvas.js","webpack:///./src/store/modules/viewer/actions/setCanvasInfo.js","webpack:///./src/store/modules/viewer/actions/setStackSynchronizationMethod.js","webpack:///./src/store/modules/viewer/actions/viewportActions.js","webpack:///./src/store/modules/viewer/actions/virtualCornerstoneEvents.js","webpack:///./src/store/modules/viewer/actions/imageOrientationMarkers.js","webpack:///./src/store/modules/viewer/actions/lengthAngles.js","webpack:///./src/store/modules/viewer/actions/referenceLineSynchronization.js","webpack:///./src/store/plugins/vuexSyncPlugin.js","webpack:///./src/store/modules/viewer/actions/imageViewerSync.js","webpack:///./src/store/modules/viewer/actions/calibration.js","webpack:///./src/store/modules/viewer/actions/setActiveImageMetaDataFromElement.js","webpack:///./src/store/modules/viewer/actions/index.js","webpack:///./src/store/modules/viewer/index.js","webpack:///./src/store/modules/viewerMouseBindings.js","webpack:///./src/store/modules/windowLevelPresets.js","webpack:///./src/store/plugins/index.js","webpack:///./src/store/index.js","webpack:///./src/assets/icons/signature.svg","webpack:///./src/components/ModalitySelect.vue?904e","webpack:///src/components/ModalitySelect.vue","webpack:///./src/components/ModalitySelect.vue?3ad6","webpack:///./src/components/ModalitySelect.vue","webpack:///./src/reporting/primitives/CheckboxGroup.vue?bb44","webpack:///./src/components/MessageNotification.vue?1340","webpack:///./src/store/modules/viewerHotkeys.js","webpack:///./src/dialogs/ConfirmDlg.vue?e8f3","webpack:///src/dialogs/ConfirmDlg.vue","webpack:///./src/dialogs/ConfirmDlg.vue?9776","webpack:///./src/dialogs/ConfirmDlg.vue","webpack:///./src/utils/dlgUtils.ts","webpack:///./src/services/menu.js","webpack:///./src/components/VSelect.vue?c34b","webpack:///./src/assets/icons/angle.svg","webpack:///./src/assets/icons/heartbeat.svg","webpack:///./src/assets/icons/rotate-right.svg","webpack:///./src/assets/icons/format-page-break.svg","webpack:///./src/assets/icons/vector-rectangle.svg","webpack:///./src/assets/icons/vector-line.svg","webpack:///./src/assets/icons/spinner-circle-thick.svg","webpack:///./src/reporting/components/Layout.vue?ce1e","webpack:///./src/reporting/components/Layout.vue","webpack:///./src/reporting/components/Layout.vue?b26d","webpack:///./src/reporting/components/Layout.vue?fd2d","webpack:///./src/assets/icons/caret-down.svg","webpack:///./src/assets/icons/plus-circle-outline.svg","webpack:///./src/dialogs/ReleaseNotes.vue?290f","webpack:///src/dialogs/ReleaseNotes.vue","webpack:///./src/dialogs/ReleaseNotes.vue?c5af","webpack:///./src/dialogs/ReleaseNotes.vue","webpack:///./src/dialogs/MessageDlg.vue?25ed","webpack:///src/dialogs/MessageDlg.vue","webpack:///./src/dialogs/MessageDlg.vue?7fca","webpack:///./src/dialogs/MessageDlg.vue","webpack:///./src/assets/icons/plus.svg","webpack:///./src/components/UploadForm.vue?ce38","webpack:///./src/mixins/localization.js","webpack:///./src/imageLoader/QueuePrioritizeWorker.ts","webpack:///./src/assets/icons/file-code-o.svg","webpack:///./src/components/Radio.vue?d882","webpack:///src/components/Radio.vue","webpack:///./src/components/Radio.vue?1641","webpack:///./src/components/Radio.vue","webpack:///./src/mixins/list.js","webpack:///./src/services/consultationService.ts","webpack:///./src/dialogs/MprPerformance.vue?9f05","webpack:///./src/assets/icons/clock-o.svg","webpack:///./src/dialogs/DicomServiceLogDlg.vue?9aa8","webpack:///src/dialogs/DicomServiceLogDlg.vue","webpack:///./src/dialogs/DicomServiceLogDlg.vue?c2e4","webpack:///./src/dialogs/DicomServiceLogDlg.vue","webpack:///./src/assets/icons/help-circle.svg","webpack:///./src/components/DlgHeader.vue?45a1","webpack:///./src/reporting/primitives/ReportTable.vue?4868","webpack:///./src/components/ModalWrapper.vue?057e","webpack:///./src/assets/icons/folder-upload.svg","webpack:///./src/components/BirthdateAgeInputs.vue?ced0","webpack:///./src/assets/icons/vector-circle-variant.svg","webpack:///./src/components/TeleconsultationThumbnails.vue?9676","webpack:///src/components/TeleconsultationThumbnails.vue","webpack:///./src/components/TeleconsultationThumbnails.vue?5332","webpack:///./src/components/TeleconsultationThumbnails.vue","webpack:///./src/assets/icons/layout-2x2.svg","webpack:///./src/assets/icons/window-maximize.svg","webpack:///./src/assets/icons/caret-up.svg","webpack:///./src/assets/icons/tune.svg","webpack:///./src/dialogs/CopyImageDlg.vue?1115","webpack:///./src/assets/icons/format-align-middle.svg","webpack:///./src/components/ToolbarButton.vue?d5f1","webpack:///./src/reporting/primitives/RadioGroup.vue?6fb1","webpack:///./src/assets/icons/paragraph.svg","webpack:///./src/components/UserStudiesTable.vue?8a49","webpack:///./src/components/DesktopDownloader.vue?14e8","webpack:///./src/assets/icons/sun.svg","webpack:///./src/assets/icons/rotate-tool.svg","webpack:///./src/utils/numberUtils.js","webpack:///./src/assets/icons/textbox.svg","webpack:///./src/electron/omniDesktop.ts","webpack:///./src/components/TeleconsultationThumbnails.vue?b833","webpack:///./src/assets/icons/os-apple.svg","webpack:///./src/assets/icons/drawing.svg","webpack:///./src/assets/icons/border-all.svg","webpack:///./src/components/Toolbar.vue?bd31","webpack:///src/components/Toolbar.vue","webpack:///./src/components/Toolbar.vue?0024","webpack:///./src/components/Toolbar.vue","webpack:///./src/assets/icons/signalpet.svg","webpack:///./src/styles/_vars.scss","webpack:///./src/reporting/primitives/Divider.vue?9bfd","webpack:///./src/assets/icons/external-link.svg","webpack:///./src/App.vue?ae83","webpack:///./src/assets/icons/format-font.svg","webpack:///./src/services/wsData.ts","webpack:///./src/assets/icons/paperclip.svg","webpack:///./src/upload/extensions.js","webpack:///./src/assets/icons/font.svg","webpack:///./src/assets/icons/file-image-o.svg","webpack:///./src/assets/icons/layout.svg","webpack:///./src/assets/icons/magnify.svg","webpack:///./src/utils/dbounce.ts","webpack:///./src/assets/icons/forward.svg","webpack:///./src/assets/icons/circle-check.svg","webpack:///./src/assets/icons/text-search.svg","webpack:///./src/assets/icons/flip-vertical.svg","webpack:///./src/utils/wait.js","webpack:///./src/reporting/primitives/Checkbox.vue?a48f","webpack:///./src/assets/icons/layout-1x3.svg","webpack:///./src/services/interceptors/cancelPending.js","webpack:///./src/services/interceptors/handleErrors.js","webpack:///./src/services/api.js","webpack:///./src/assets/icons/format-align-center.svg","webpack:///./src/assets/icons/arrow-all.svg","webpack:///./src/dialogs/TextPromptDlg.vue?ac98","webpack:///src/dialogs/TextPromptDlg.vue","webpack:///./src/dialogs/TextPromptDlg.vue?1d12","webpack:///./src/dialogs/TextPromptDlg.vue","webpack:///./src/components/ToolbarButton.vue?6751","webpack:///./src/components/PdfViewer.vue?29a4","webpack:///./src/components/PdfViewer.vue","webpack:///./src/components/PdfViewer.vue?d940","webpack:///./src/components/PdfViewer.vue?b666","webpack:///./src/assets/icons/drag-vertical.svg","webpack:///./src/components/Checkbox.vue?85f9","webpack:///src/components/Checkbox.vue","webpack:///./src/components/Checkbox.vue?3bb9","webpack:///./src/components/Checkbox.vue","webpack:///./src/utils/stringUtils.js","webpack:///./src/dialogs/Settings.vue?c095","webpack:///./src/assets/icons/file-excel-o.svg","webpack:///./src/components/Checkbox.vue?ec39","webpack:///./src/components/ToolbarButton.vue?5434","webpack:///src/components/ToolbarButton.vue","webpack:///./src/components/ToolbarButton.vue?d205","webpack:///./src/components/ToolbarButton.vue","webpack:///./src/utils/isMobileOS.js","webpack:///./src/components/ModalDialog.vue?3d1c","webpack:///./src/components/ProgressBar.vue?9166","webpack:///./src/utils/sharedWorkers.js","webpack:///./src/reporting/primitives/Thumbnails.vue?c17d","webpack:///./src/services/clinicAPI.ts","webpack:///./src/imageLoader/dicomDecoder/DecodeWorker.ts","webpack:///./src/assets/icons/layout-3x1.svg","webpack:///./src/assets/icons/file-multiple.svg","webpack:///./src/reporting/primitives/ReferredByForm.vue?48de","webpack:///./src/store/modules/mpr/state/tools.js","webpack:///./src/store/modules/mpr/state/index.js","webpack:///./src/assets/icons/layout-2x1-2.svg","webpack:///./src/assets/icons/layout-mpr-1x3.svg","webpack:///./src/assets/icons/caret-square-o-down.svg","webpack:///./src/dialogs/statWarningDlg.vue?248a","webpack:///src/dialogs/statWarningDlg.vue","webpack:///./src/dialogs/statWarningDlg.vue?e022","webpack:///./src/dialogs/statWarningDlg.vue","webpack:///./src/utils/timeout.ts","webpack:///./src/services/lockService.ts","webpack:///./src/assets/icons/inbox-download.svg","webpack:///./src/assets/icons/eye-slash.svg","webpack:///./src/assets/icons/format-align-left.svg","webpack:///./src/components/Loading.vue?7a8b","webpack:///./src/assets/icons/home.svg","webpack:///./src/assets/icons/settings.svg","webpack:///./src/assets/icons/table-column-plus-after.svg","webpack:///./src/assets/icons/skip-next.svg","webpack:///./src/components/DesktopDownloader.vue?f6b1","webpack:///./src/components/DesktopDownloader.vue","webpack:///./src/components/DesktopDownloader.vue?dc4f","webpack:///./src/components/DesktopDownloader.vue?a7e8","webpack:///./src/assets/icons/select-place.svg","webpack:///./src/vtk/VTKViewport/View3D.vue?90f7","webpack:///./src/filters/index.js","webpack:///./src/assets/icons/sign-out.svg","webpack:///./src/assets/icons/radiobox-marked.svg","webpack:///./src/assets/icons/fast-forward.svg","webpack:///./src/assets/icons/format-text.svg","webpack:///./src/components/DatePicker.vue?b949","webpack:///./src/upload/parse.worker.js","webpack:///./src/components/SearchAndFilter.vue?f318","webpack:///./src/components/Toolbar.vue?9c92","webpack:///./src/cornerstone/synchronizers/AstStackImagePositionSynchronizer.js","webpack:///./src/cornerstone/synchronizers/AstManualStackImagePositionSynchronizer.js","webpack:///./src/store/modules/toolManager/synchronizers.js","webpack:///./src/assets/icons/database-search.svg","webpack:///./src/assets/icons/table-row-plus-after.svg","webpack:///./src/components/Card.vue?9000","webpack:///./src/assets/icons/paper-plane.svg","webpack:///./src/dialogs/StudiesDlg.vue?37d0","webpack:///src/dialogs/StudiesDlg.vue","webpack:///./src/dialogs/StudiesDlg.vue?cab8","webpack:///./src/dialogs/StudiesDlg.vue","webpack:///./src/assets/icons/border-sides.svg","webpack:///./src/assets/icons/flip-horizontal2.svg","webpack:///./src/assets/icons/file-archive-o.svg","webpack:///./src/reporting/binding.ts","webpack:///./src/assets/icons/exclamation-triangle.svg","webpack:///./src/assets/icons sync ./node_modules/svg-inline-loader","webpack:///./src/reporting/primitives/Dropdown.vue?f54c","webpack:///./src/assets/icons/comment-medical.svg","webpack:///./src/assets/icons/format-align-top.svg","webpack:///./src/services/storage.js","webpack:///./src/assets/icons/arrow-bottom-left.svg","webpack:///./src/assets/icons/step-backward.svg","webpack:///./src/assets/icons/border-none.svg","webpack:///./src/assets/icons/question-circle.svg","webpack:///./src/services/eventBus.ts","webpack:///./src/components/LoadingSpinner.vue?e6d1","webpack:///./src/vtk/VTKViewport/2DMPRView.vue?32cf","webpack:///./src/vtk/VTKViewport/vtkOverrides/vtkMouseCameraTrackballZoomManipulator.js","webpack:///./src/vtk/VTKViewport/vtkOverrides/vtkMouseCameraTrackballPanManipulator.js","webpack:///./src/vtk/lib/windowLevelRangeConverter.js","webpack:///./src/vtk/lib/math/clamp.js","webpack:///./src/vtk/VTKViewport/vtkInteractorStyleMPRSlice.js","webpack:///./src/vtk/VTKViewport/vtkWindowLevelManipulator.js","webpack:///./src/vtk/VTKViewport/vtkCrosshairManipulator.js","webpack:///./src/vtk/VTKViewport/vtkAnnotationManipulator.js","webpack:///./src/vtk/VTKViewport/vtkStackScrollManipulator.js","webpack:///./src/vtk/VTKViewport/vtkRotateSliceManipulator.js","webpack:///./src/vtk/VTKViewport/vtkInteractorStyleMPR.js","webpack:///./src/vtk/ViewportOverlay/ViewportOverlay.vue?8bdf","webpack:///src/vtk/ViewportOverlay/ViewportOverlay.vue","webpack:///./src/vtk/ViewportOverlay/ViewportOverlay.vue?9137","webpack:///./src/vtk/ViewportOverlay/ViewportOverlay.vue","webpack:///./src/vtk/Annotations/AnnotationManager.vue?92ec","webpack:///./src/vtk/Annotations/LengthAnnotation.vue?6fce","webpack:///./src/utils/math.js","webpack:///./src/vtk/Annotations/DragAnnotation.vue","webpack:///./src/vtk/Annotations/mixins/baseMixin.js","webpack:///./src/vtk/Annotations/mixins/startEndMixin.js","webpack:///./src/vtk/Annotations/mixins/startMiddleEndMixin.js","webpack:///./src/vtk/Annotations/mixins/quadMixin.js","webpack:///./src/vtk/Annotations/mixins/index.js","webpack:///src/vtk/Annotations/DragAnnotation.vue","webpack:///./src/vtk/Annotations/DragAnnotation.vue?3912","webpack:///./src/vtk/Annotations/TextAnnotation.vue?5c49","webpack:///src/vtk/Annotations/TextAnnotation.vue","webpack:///./src/vtk/Annotations/TextAnnotation.vue?9a25","webpack:///./src/vtk/Annotations/TextAnnotation.vue","webpack:///src/vtk/Annotations/LengthAnnotation.vue","webpack:///./src/vtk/Annotations/LengthAnnotation.vue?f6f2","webpack:///./src/vtk/Annotations/LengthAnnotation.vue","webpack:///./src/vtk/Annotations/RectAnnotation.vue?22fa","webpack:///src/vtk/Annotations/RectAnnotation.vue","webpack:///./src/vtk/Annotations/RectAnnotation.vue?6259","webpack:///./src/vtk/Annotations/RectAnnotation.vue","webpack:///./src/vtk/Annotations/CircleAnnotation.vue?6dec","webpack:///./src/vtk/Annotations/CrosshairsAnnotation.vue?dbb9","webpack:///src/vtk/Annotations/CrosshairsAnnotation.vue","webpack:///./src/vtk/Annotations/CrosshairsAnnotation.vue?b521","webpack:///./src/vtk/Annotations/CrosshairsAnnotation.vue","webpack:///src/vtk/Annotations/CircleAnnotation.vue","webpack:///./src/vtk/Annotations/CircleAnnotation.vue?0ccf","webpack:///./src/vtk/Annotations/CircleAnnotation.vue","webpack:///./src/vtk/Annotations/EllipseAnnotation.vue?2772","webpack:///src/vtk/Annotations/EllipseAnnotation.vue","webpack:///./src/vtk/Annotations/EllipseAnnotation.vue?e7c1","webpack:///./src/vtk/Annotations/EllipseAnnotation.vue","webpack:///./src/vtk/Annotations/AngleAnnotation.vue?7b10","webpack:///src/vtk/Annotations/AngleAnnotation.vue","webpack:///./src/vtk/Annotations/AngleAnnotation.vue?e0a5","webpack:///./src/vtk/Annotations/AngleAnnotation.vue","webpack:///./src/vtk/Annotations/ArrowAnnotation.vue?e881","webpack:///src/vtk/Annotations/ArrowAnnotation.vue","webpack:///./src/vtk/Annotations/ArrowAnnotation.vue?c632","webpack:///./src/vtk/Annotations/ArrowAnnotation.vue","webpack:///./src/vtk/Annotations/ProbeAnnotation.vue?b6cc","webpack:///src/vtk/Annotations/ProbeAnnotation.vue","webpack:///./src/vtk/Annotations/ProbeAnnotation.vue?d568","webpack:///./src/vtk/Annotations/ProbeAnnotation.vue","webpack:///src/vtk/Annotations/AnnotationManager.vue","webpack:///./src/vtk/Annotations/AnnotationManager.vue?c66e","webpack:///./src/vtk/Annotations/AnnotationManager.vue","webpack:///./src/vtk/ViewportOverlay/MPRInteractor.vue?b321","webpack:///./src/vtk/lib/math/angles.js","webpack:///src/vtk/ViewportOverlay/MPRInteractor.vue","webpack:///./src/vtk/ViewportOverlay/MPRInteractor.vue?7882","webpack:///./src/vtk/ViewportOverlay/MPRInteractor.vue","webpack:///./src/vtk/lib/createSub.js","webpack:///src/vtk/VTKViewport/2DMPRView.vue","webpack:///./src/vtk/VTKViewport/2DMPRView.vue?0ed3","webpack:///./src/vtk/VTKViewport/2DMPRView.vue","webpack:///./src/vtk/VTKViewport/2DMPRManager.vue?88b3","webpack:///./src/vtk/lib/math/planeIntersections.js","webpack:///./src/vtk/lib/invertVolume.js","webpack:///./src/vtk/VTKViewport/BrowserIssues.js","webpack:///src/vtk/VTKViewport/2DMPRManager.vue","webpack:///./src/vtk/VTKViewport/2DMPRManager.vue?0469","webpack:///./src/vtk/VTKViewport/2DMPRManager.vue","webpack:///./src/vtk/VTKViewport/View3D.vue?71bd","webpack:///src/vtk/VTKViewport/View3D.vue","webpack:///./src/vtk/VTKViewport/View3D.vue?6d3d","webpack:///./src/vtk/VTKViewport/View3D.vue","webpack:///./src/vtk/lib/validateMPRImages.js","webpack:///./src/vtk/lib/data/buildMetadata.js","webpack:///./src/vtk/lib/data/imageDataCache.js","webpack:///./src/vtk/lib/data/sortDatasetsByImagePosition.js","webpack:///./src/vtk/lib/getImageData.js","webpack:///./src/vtk/lib/data/insertSlice.js","webpack:///./src/vtk/lib/loadImageData.js","webpack:///./src/assets/icons/arrow-right.svg","webpack:///./src/directives/scrollNav.js","webpack:///./src/assets/icons/layout-1x1.svg","webpack:///./src/assets/icons/eraser.svg","webpack:///./src/assets/icons/file-o.svg","webpack:///./src/assets/icons/skip-previous.svg","webpack:///./src/reporting/primitives/HipNumber.vue?bc68","webpack:///./src/components/UploadForm.vue?ba58","webpack:///./src/components/UploadForm.vue","webpack:///./src/components/UploadForm.vue?61e3","webpack:///./src/components/UploadForm.vue?cc32","webpack:///./src/directives/draggable.js","webpack:///./src/router/index.js","webpack:///./src/assets/icons/account.svg","webpack:///./src/dialogs/UserStudiesDlg.vue?dc4f","webpack:///./src/assets/icons/layout-2-1x2.svg","webpack:///./src/components/PdfViewer.vue?b949","webpack:///./src/reporting/context.ts","webpack:///./src/assets/compressed/vsp-background.jpg","webpack:///./src/assets/icons/brightness-auto.svg","webpack:///./src/services/reportService.ts","webpack:///./src/assets/icons/tag.svg","webpack:///./src/assets/icons/star-hollow.svg","webpack:///./src/assets/icons/star.svg","webpack:///./src/utils/versionCompare.js","webpack:///./src/assets/icons/table-solid.svg","webpack:///./src/assets/icons/dock-bottom.svg","webpack:///./src/components/Card.vue?2159","webpack:///src/components/Card.vue","webpack:///./src/components/Card.vue?974e","webpack:///./src/components/Card.vue","webpack:///./src/assets/icons/format-align-stretch.svg","webpack:///./src/dialogs/StudiesDlg.vue?aaed","webpack:///./src/components/DateRangePicker.vue?727a","webpack:///./src/assets/icons/tta.svg","webpack:///./src/assets/icons/eye.svg","webpack:///./src/assets/icons/ruler.svg","webpack:///./src/dialogs/MessageDlg.vue?3af1","webpack:///./src/assets/icons/info-circle.svg","webpack:///./src/components/ProgressBar.vue?06d0","webpack:///src/components/ProgressBar.vue","webpack:///./src/components/ProgressBar.vue?df75","webpack:///./src/components/ProgressBar.vue","webpack:///./src/assets/icons/caret-square-o-up.svg","webpack:///./src/reporting/dialogs/ImageCommentLayoutDlg.vue?33a6","webpack:///./src/assets/icons/layout-2x1.svg","webpack:///./src/assets/icons/image.svg","webpack:///./src/assets/icons/call-merge.svg","webpack:///./src/assets/icons/close-box-multiple-outline.svg","webpack:///./src/dialogs/TextPromptDlg.vue?1907","webpack:///./src/assets/icons/file-word-o.svg","webpack:///./src/components/VideoPlayer.vue?8d97","webpack:///./src/assets/icons/layers.svg","webpack:///./src/assets/icons/check-circle.svg","webpack:///./src/assets/icons/format-align-bottom.svg","webpack:///./src/assets/icons/brightness-high.svg","webpack:///./src/components/SvgIcon.vue?a3c8","webpack:///./src/assets/icons/telemedicine-icon.svg","webpack:///./src/components/CKEditor.vue?d1fc","webpack:///./src/ckeditor/PresetsPluging.js","webpack:///./src/utils/textUtils.js","webpack:///./src/ckeditor/AutocompletePlugin.js","webpack:///src/components/CKEditor.vue","webpack:///./src/components/CKEditor.vue?1b64","webpack:///./src/components/CKEditor.vue","webpack:///./src/components/SearchAndFilter.vue?07ea","webpack:///./src/assets/icons/menu.svg","webpack:///./src/dialogs/Settings.vue?2afb","webpack:///src/dialogs/Settings.vue","webpack:///./src/dialogs/Settings.vue?aac1","webpack:///./src/dialogs/Settings.vue","webpack:///./src/reporting/primitives/RichText.vue?ac88","webpack:///./src/assets/icons/function.svg","webpack:///./src/assets/icons/vpop.svg","webpack:///./src/dialogs/ReleaseNotes.vue?5fd6","webpack:///./src/assets/icons/link_auto.svg","webpack:///./src/reporting/components/Layout.vue?0aeb","webpack:///./src/dialogs/ReleaseNotes.vue?6a77","webpack:///./src/assets/icons/heading.svg","webpack:///./src/services/keyboard.ts","webpack:///./src/services/dicomPartners.js","webpack:///./src/components/ModalDialog.vue?6994","webpack:///./src/assets/icons/redo.svg","webpack:///./src/utils/listToArray.ts","webpack:///./src/dialogs/UserStudiesDlg.vue?45c6","webpack:///src/dialogs/UserStudiesDlg.vue","webpack:///./src/dialogs/UserStudiesDlg.vue?ba3a","webpack:///./src/dialogs/UserStudiesDlg.vue","webpack:///./src/components/DataTable.vue?4bd8","webpack:///./src/directives/dblclick.js","webpack:///./src/assets/icons/dots-horizontal.svg","webpack:///./src/assets/icons/edit.svg","webpack:///./src/assets/icons/checkbox-blank-outline.svg","webpack:///./src/vtk/Annotations/AnnotationManager.vue?2338","webpack:///./src/reporting/primitives/PageBreak.vue?6219","webpack:///./src/components/AttachmentList.vue?0b4e","webpack:///./src/dialogs/RequiredFieldsDlg.vue?b392","webpack:///./src/dialogs/RequiredFieldsDlg.vue","webpack:///./src/dialogs/RequiredFieldsDlg.vue?b49c","webpack:///./src/dialogs/RequiredFieldsDlg.vue?9f46","webpack:///src/components/AttachmentList.vue","webpack:///./src/components/AttachmentList.vue?f43b","webpack:///./src/components/AttachmentList.vue","webpack:///./src/components/FilterTag.vue?fc50","webpack:///src/components/FilterTag.vue","webpack:///./src/components/FilterTag.vue?0ae4","webpack:///./src/components/FilterTag.vue","webpack:///./src/reporting/primitives/Textbox.vue?c231","webpack:///./src/assets/icons/rotate-left2.svg","webpack:///./src/utils/shouldLoadDicom.js","webpack:///./src/App.vue?2fed","webpack:///./src/components/SvgSpriteMap.vue?ea86","webpack:///src/components/SvgSpriteMap.vue","webpack:///./src/components/SvgSpriteMap.vue?bf9d","webpack:///./src/components/SvgSpriteMap.vue","webpack:///./src/services/featureFlags.js","webpack:///src/App.vue","webpack:///./src/App.vue?98c8","webpack:///./src/App.vue","webpack:///./src/plugins/VueNotifications.js","webpack:///./src/plugins/MessageService.vue?dcdc","webpack:///./src/components/MessageNotification.vue?79c9","webpack:///src/components/MessageNotification.vue","webpack:///./src/components/MessageNotification.vue?91ba","webpack:///./src/components/MessageNotification.vue","webpack:///src/plugins/MessageService.vue","webpack:///./src/plugins/MessageService.vue?36b2","webpack:///./src/plugins/MessageService.vue","webpack:///./src/plugins/MessagePlugin.js","webpack:///./src/components/VSelect.vue?a783","webpack:///src/components/VSelect.vue","webpack:///./src/components/VSelect.vue?75b6","webpack:///./src/components/VSelect.vue","webpack:///./src/mixins/MediaMixin.js","webpack:///./src/store/modules/analytics.js","webpack:///./src/directives/focus.ts","webpack:///./src/directives/resizable.js","webpack:///./src/directives/sortable.ts","webpack:///./src/registerServiceWorker.js","webpack:///./src/reporting/components/Cell.vue?9e9d","webpack:///./src/reporting/components/LayoutWrapper.vue?b279","webpack:///./src/reporting/components/LayoutWrapper.vue","webpack:///./src/reporting/components/LayoutWrapper.vue?7e85","webpack:///./src/reporting/components/LayoutWrapper.vue?a127","webpack:///./src/reporting/primitives/RequestInfo.vue?e813","webpack:///./src/reporting/primitives/RequestInfo.vue","webpack:///./src/reporting/primitives/RequestInfo.vue?2ff9","webpack:///./src/reporting/primitives/RequestInfo.vue?c596","webpack:///./src/reporting/primitives/ResponseInfo.vue?f9db","webpack:///./src/reporting/primitives/ResponseInfo.vue","webpack:///./src/reporting/primitives/ResponseInfo.vue?fe2b","webpack:///./src/reporting/primitives/ResponseInfo.vue?9277","webpack:///./src/reporting/primitives/ReferredBy.vue?0936","webpack:///src/reporting/primitives/ReferredBy.vue","webpack:///./src/reporting/primitives/ReferredBy.vue?f4e1","webpack:///./src/reporting/primitives/ReferredBy.vue","webpack:///./src/reporting/primitives/Consultant.vue?423e","webpack:///src/reporting/primitives/Consultant.vue","webpack:///./src/reporting/primitives/Consultant.vue?e26c","webpack:///./src/reporting/primitives/Consultant.vue","webpack:///./src/reporting/primitives/ImageComments.vue?068a","webpack:///./src/reporting/dialogs/ImageCommentLayoutDlg.vue?2f84","webpack:///./src/reporting/dialogs/ImageCommentLayoutDlg.vue","webpack:///./src/reporting/dialogs/ImageCommentLayoutDlg.vue?0e4f","webpack:///./src/reporting/dialogs/ImageCommentLayoutDlg.vue?487e","webpack:///./src/reporting/primitives/ImageComments.vue","webpack:///./src/reporting/primitives/ImageComments.vue?6fb2","webpack:///./src/reporting/primitives/ImageComments.vue?aa78","webpack:///./src/reporting/primitives/PatientInfo.vue?2d5e","webpack:///src/reporting/primitives/PatientInfo.vue","webpack:///./src/reporting/primitives/PatientInfo.vue?6077","webpack:///./src/reporting/primitives/PatientInfo.vue","webpack:///./src/reporting/primitives/Addendums.vue?0b9b","webpack:///./src/dialogs/AddendumDlg.vue?350b","webpack:///./src/dialogs/UploadDlg.vue?4524","webpack:///src/dialogs/UploadDlg.vue","webpack:///./src/dialogs/UploadDlg.vue?efd5","webpack:///./src/dialogs/UploadDlg.vue","webpack:///./src/dialogs/AddendumDlg.vue","webpack:///./src/dialogs/AddendumDlg.vue?8bc7","webpack:///./src/dialogs/AddendumDlg.vue?e0f8","webpack:///./src/reporting/primitives/Addendums.vue","webpack:///./src/reporting/primitives/Addendums.vue?434c","webpack:///./src/reporting/primitives/Addendums.vue?0a52","webpack:///./src/reporting/primitives/RelatedReports.vue?c9c1","webpack:///src/reporting/primitives/RelatedReports.vue","webpack:///./src/reporting/primitives/RelatedReports.vue?b5b6","webpack:///./src/reporting/primitives/RelatedReports.vue","webpack:///./src/reporting/primitives/RequestSelector.vue?db0c","webpack:///src/reporting/primitives/RequestSelector.vue","webpack:///./src/reporting/primitives/RequestSelector.vue?926b","webpack:///./src/reporting/primitives/RequestSelector.vue","webpack:///./src/reporting/primitives/ReferredByForm.vue?30fc","webpack:///src/reporting/primitives/ReferredByForm.vue","webpack:///./src/reporting/primitives/ReferredByForm.vue?dd4d","webpack:///./src/reporting/primitives/ReferredByForm.vue","webpack:///./src/reporting/primitives/PatientForm.vue?5ee8","webpack:///./src/reporting/primitives/PatientForm.vue","webpack:///./src/reporting/primitives/PatientForm.vue?8cfb","webpack:///./src/services/imagePrecache.js","webpack:///./src/reporting/primitives/PatientForm.vue?6dcf","webpack:///./src/reporting/primitives/ImagesAttachments.vue?26bd","webpack:///./src/reporting/primitives/ImagesAttachments.vue","webpack:///./src/reporting/primitives/ImagesAttachments.vue?b2df","webpack:///./src/reporting/primitives/ImagesAttachments.vue?9c50","webpack:///./src/reporting/primitives/Thumbnails.vue?723b","webpack:///./src/reporting/primitives/Thumbnails.vue","webpack:///./src/reporting/primitives/Thumbnails.vue?9153","webpack:///./src/reporting/primitives/Thumbnails.vue?2818","webpack:///./src/reporting/primitives/ConsultantSelector.vue?5a21","webpack:///src/reporting/primitives/ConsultantSelector.vue","webpack:///./src/reporting/primitives/ConsultantSelector.vue?7ed6","webpack:///./src/reporting/primitives/ConsultantSelector.vue","webpack:///./src/reporting/primitives/PrioritySelector.vue?a43f","webpack:///src/reporting/primitives/PrioritySelector.vue","webpack:///./src/reporting/primitives/PrioritySelector.vue?bbb4","webpack:///./src/reporting/primitives/PrioritySelector.vue","webpack:///./src/reporting/primitives/ServiceSelector.vue?150d","webpack:///src/reporting/primitives/ServiceSelector.vue","webpack:///./src/reporting/primitives/ServiceSelector.vue?336a","webpack:///./src/reporting/primitives/ServiceSelector.vue","webpack:///./src/reporting/primitives/BillingCodeSelector.vue?0ebb","webpack:///src/reporting/primitives/BillingCodeSelector.vue","webpack:///./src/reporting/primitives/BillingCodeSelector.vue?8fd5","webpack:///./src/reporting/primitives/BillingCodeSelector.vue","webpack:///./src/reporting/primitives/Notifications.vue?a2cf","webpack:///src/reporting/primitives/Notifications.vue","webpack:///./src/reporting/primitives/Notifications.vue?7ba6","webpack:///./src/reporting/primitives/Notifications.vue","webpack:///./src/reporting/primitives/Dropdown.vue?d3af","webpack:///src/reporting/primitives/Dropdown.vue","webpack:///./src/reporting/primitives/Dropdown.vue?356a","webpack:///./src/reporting/primitives/Dropdown.vue","webpack:///./src/reporting/primitives/RadioGroup.vue?386c","webpack:///src/reporting/primitives/RadioGroup.vue","webpack:///./src/reporting/primitives/RadioGroup.vue?bbe4","webpack:///./src/reporting/primitives/RadioGroup.vue","webpack:///./src/reporting/primitives/CheckboxGroup.vue?4ee2","webpack:///src/reporting/primitives/CheckboxGroup.vue","webpack:///./src/reporting/primitives/CheckboxGroup.vue?9404","webpack:///./src/reporting/primitives/CheckboxGroup.vue","webpack:///./src/reporting/primitives/Textbox.vue?3dab","webpack:///src/reporting/primitives/Textbox.vue","webpack:///./src/reporting/primitives/Textbox.vue?0426","webpack:///./src/reporting/primitives/Textbox.vue","webpack:///./src/reporting/primitives/Checkbox.vue?90f9","webpack:///src/reporting/primitives/Checkbox.vue","webpack:///./src/reporting/primitives/Checkbox.vue?f6c6","webpack:///./src/reporting/primitives/Checkbox.vue","webpack:///./src/reporting/primitives/ReportDate.vue?d6a6","webpack:///src/reporting/primitives/ReportDate.vue","webpack:///./src/reporting/primitives/ReportDate.vue?3919","webpack:///./src/reporting/primitives/ReportDate.vue","webpack:///./src/reporting/primitives/ReportText.vue?9cb5","webpack:///src/reporting/primitives/ReportText.vue","webpack:///./src/reporting/primitives/ReportText.vue?6056","webpack:///./src/reporting/primitives/ReportText.vue","webpack:///./src/reporting/primitives/ReportImage.vue?5432","webpack:///./src/reporting/primitives/ReportImage.vue","webpack:///./src/reporting/primitives/ReportImage.vue?2e0f","webpack:///./src/reporting/primitives/ReportImage.vue?7cfc","webpack:///./src/reporting/primitives/Divider.vue?aadd","webpack:///src/reporting/primitives/Divider.vue","webpack:///./src/reporting/primitives/Divider.vue?9010","webpack:///./src/reporting/primitives/Divider.vue","webpack:///./src/reporting/primitives/PageBreak.vue?a27b","webpack:///src/reporting/primitives/PageBreak.vue","webpack:///./src/reporting/primitives/PageBreak.vue?7f05","webpack:///./src/reporting/primitives/PageBreak.vue","webpack:///./src/reporting/primitives/HipNumber.vue?1671","webpack:///src/reporting/primitives/HipNumber.vue","webpack:///./src/reporting/primitives/HipNumber.vue?3d14","webpack:///./src/reporting/primitives/HipNumber.vue","webpack:///./src/reporting/primitives/ReportTable.vue?adec","webpack:///./src/reporting/primitives/ReportTable.vue","webpack:///./src/reporting/primitives/ReportTable.vue?e611","webpack:///./src/reporting/primitives/ReportTable.vue?7df4","webpack:///./src/reporting/primitives/Panel.vue?b444","webpack:///src/reporting/primitives/Panel.vue","webpack:///./src/reporting/primitives/Panel.vue?16ee","webpack:///./src/reporting/primitives/Panel.vue","webpack:///./src/reporting/primitives/PanelView.vue?fd41","webpack:///src/reporting/primitives/PanelView.vue","webpack:///./src/reporting/primitives/PanelView.vue?791e","webpack:///./src/reporting/primitives/PanelView.vue","webpack:///./src/reporting/components/Cell.vue","webpack:///./src/reporting/components/Cell.vue?439e","webpack:///./src/reporting/components/Cell.vue?91e2","webpack:///./src/main.ts","webpack:///./src/cornerstone/increaseCornerstoneCache.ts","webpack:///./src/imageLoader/dicomDecoder/colorSpaceConverters/convertRGBColorByPixel.js","webpack:///./src/imageLoader/dicomDecoder/colorSpaceConverters/convertRGBColorByPlane.js","webpack:///./src/imageLoader/dicomDecoder/colorSpaceConverters/convertYBRFullByPixel.js","webpack:///./src/imageLoader/dicomDecoder/colorSpaceConverters/convertYBRFullByPlane.js","webpack:///./src/imageLoader/dicomDecoder/colorSpaceConverters/convertPALETTECOLOR.js","webpack:///./src/imageLoader/dicomDecoder/lib/convertColorSpace.js","webpack:///./src/imageLoader/dicomDecoder/lib/getMinMax.js","webpack:///./src/imageLoader/dicomDecoder/index.ts","webpack:///./src/imageLoader/jpegDecoder/index.ts","webpack:///./src/imageLoader/index.ts","webpack:///./src/assets/icons/undo.svg","webpack:///./src/components/SearchAndFilter.vue?415a","webpack:///./src/components/ConsignerSelect.vue?e847","webpack:///src/components/ConsignerSelect.vue","webpack:///./src/components/ConsignerSelect.vue?5d2e","webpack:///./src/components/ConsignerSelect.vue","webpack:///src/components/SearchAndFilter.vue","webpack:///./src/components/SearchAndFilter.vue?13b7","webpack:///./src/components/SearchAndFilter.vue","webpack:///./src/services/workflow.ts","webpack:///./src/utils/clinicFeatureFlags","webpack:///./src/utils/inactivityTimeout.js","webpack:///./src/router/routes.js","webpack:///./src/dialogs/OnBehalfOf.vue?f357","webpack:///./src/assets/icons/cellphone-android.svg","webpack:///./src/assets/icons/delete.svg","webpack:///./src/assets/icons/tag-remove.svg","webpack:///./src/assets/icons/file-text-o.svg","webpack:///./src/reporting/primitives/PatientInfo.vue?6273","webpack:///./src/services/dicomSend.js","webpack:///./src/assets/icons/cloud-download.svg","webpack:///./src/assets/icons/step-forward.svg","webpack:///./src/assets/icons/arrow-left.svg","webpack:///./src/reporting/primitives/ResponseSelector.vue?f027","webpack:///./src/reporting/primitives/ResponseSelector.vue","webpack:///./src/reporting/primitives/ResponseSelector.vue?ded7","webpack:///./src/reporting/primitives/ResponseSelector.vue?e2d9","webpack:///./src/components/LoadingSpinner.vue?7367","webpack:///src/components/LoadingSpinner.vue","webpack:///./src/components/LoadingSpinner.vue?f6b1","webpack:///./src/components/LoadingSpinner.vue","webpack:///./src/assets/icons/layout-2x3.svg","webpack:///./src/assets/icons/layout-1-2x2.svg","webpack:///./src/assets/icons/close.svg","webpack:///./src/assets/icons/bookmark.svg","webpack:///./src/assets/icons/account-multiple.svg","webpack:///./src/assets/icons/cloud-sync.svg","webpack:///./src/assets/icons/folder-outline.svg","webpack:///./src/services/dicomServiceData.ts","webpack:///./src/components/BirthdateAgeInputs.vue?38a5","webpack:///src/components/BirthdateAgeInputs.vue","webpack:///./src/components/BirthdateAgeInputs.vue?7b32","webpack:///./src/components/BirthdateAgeInputs.vue","webpack:///./src/assets/icons/calendar.svg","webpack:///./src/upload/parseDicoms.js","webpack:///./src/services/uploads.ts","webpack:///./src/assets/icons/file-upload.svg","webpack:///./src/mixins/validator.ts","webpack:///./src/assets/icons/cancel.svg","webpack:///./src/components/DlgHeader.vue?4417","webpack:///src/components/DlgHeader.vue","webpack:///./src/components/DlgHeader.vue?6302","webpack:///./src/components/DlgHeader.vue","webpack:///./src/assets/icons/format-align-justify.svg","webpack:///./src/assets/icons/floppy-o.svg","webpack:///./src/assets/icons/print.svg","webpack:///./src/assets/icons/comment-solid.svg","webpack:///./src/assets/icons/laptop.svg","webpack:///./src/store/models/base/TableMetaColumn.js","webpack:///./src/utils/checkSafeToLogout.js","webpack:///./src/assets/icons/email-check.svg","webpack:///./src/assets/icons/server-network.svg","webpack:///./src/assets/icons/bell.svg","webpack:///./src/assets/icons/asia.svg","webpack:///./src/store/models/viewerTool.js","webpack:///./src/assets/icons/minus.svg","webpack:///./src/components/DatePicker.vue?f665","webpack:///src/components/DatePicker.vue","webpack:///./src/components/DatePicker.vue?528d","webpack:///./src/components/DatePicker.vue","webpack:///./src/assets/icons/file-pdf-o.svg","webpack:///./src/assets/icons/images.svg","webpack:///./src/reporting/primitives/ReportText.vue?391c","webpack:///./src/components/view/StudiesListCards.vue?7019","webpack:///./src/dialogs/Settings.vue?1995","webpack:///./src/assets/icons/checkbox-marked.svg","webpack:///./src/reporting/primitives/RichText.vue?05b4","webpack:///src/reporting/primitives/RichText.vue","webpack:///./src/reporting/primitives/RichText.vue?834a","webpack:///./src/reporting/primitives/RichText.vue","webpack:///./src/assets/icons/roll-tool.svg","webpack:///./src/assets/icons/spinner.svg","webpack:///./src/assets/icons/pennhip.svg","webpack:///./src/assets/icons/fullscreen.svg","webpack:///./src/assets/icons/content-paste.svg","webpack:///./src/assets/icons/chevron-left.svg","webpack:///./src/assets/icons/cloud.svg","webpack:///./src/assets/icons/check.svg","webpack:///./src/components/UserStudiesTable.vue?fb62","webpack:///src/components/UserStudiesTable.vue","webpack:///./src/components/UserStudiesTable.vue?99cc","webpack:///./src/components/UserStudiesTable.vue","webpack:///./src/assets/icons/book.svg","webpack:///./src/components/Pagination.vue?b61f","webpack:///./src/utils/validation.ts","webpack:///./src/components/CKEditor.vue?5c65","webpack:///./src/components/TeleconsultationThumbnails.vue?9645","webpack:///./src/assets/icons/account-circle.svg","webpack:///./src/reporting/primitives/PatientForm.vue?7fb6","webpack:///./src/assets/icons/calendar-plus.svg","webpack:///./src/services/studyData.ts","webpack:///./src/components/ModalWrapper.vue?084c","webpack:///./src/dialogs/UserStudiesDlg.vue?840e","webpack:///./src/assets/icons/email.svg","webpack:///./src/assets/icons/account-box-multiple.svg","webpack:///./src/utils/dateUtils.js","webpack:///./src/reporting/primitives/ImagesAttachments.vue?6e89","webpack:///./src/components/ModalWrapper.vue?9934","webpack:///src/components/ModalWrapper.vue","webpack:///./src/components/ModalWrapper.vue?7c5c","webpack:///./src/components/ModalWrapper.vue","webpack:///./src/imageLoader/imageCache/browserImageCache.ts","webpack:///./src/imageLoader/imageCache/index.ts","webpack:///./src/imageLoader/imageCache/desktopImageCache.ts","webpack:///./src/assets/icons/world.svg","webpack:///./src/assets/icons/backward.svg","webpack:///./src/dialogs/UploadDlg.vue?70cf","webpack:///./src/components/AttachmentList.vue?0851"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_h","$createElement","_c","_self","staticClass","class","spin","pulse","fixed","inline","vcenter","style","attrs","icon","staticRenderFns","props","String","required","Boolean","default","width","height","size","computed","svgStyle","component","jsonClone","JSON","parse","stringify","isLocalizerImage","imageIds","imageId","targetImagePlane","targetImageMeta","metaData","imageType","toUpperCase","includes","isSameOrientation","getMiddleImagePlane","middleIndex","Math","floor","middleImageId","User","_classCallCheck","_createClass","store","state","auth","claims","static","permissions","token","API","user","Folders","folders","dragStudyId","_this","_this2","put","load","folderId","_this3","delete","concat","filter","f","id","parentFolderId","studyId","eventBus","post","folderIds","studyFolders","isApproximatelyOne","num","a","b","rowCosines","rowDotProduct","x","y","z","columnDotProduct","columnCosines","on","close","isLoading","$event","staticStyle","stopPropagation","isEditing","_v","directives","rawName","detail","expression","$$selectedVal","Array","options","selected","map","val","_value","$set","multiple","domProps","composing","email","hasError","_e","listIsEmpty","nativeOn","addItem","columns","list","editItem","sortItems","scopedSlots","_u","fn","ref","row","_s","title","firstName","lastName","organizationName","anyErrors","saveItem","cancelItem","deleteItem","OnBehalfOfDlg","mixins","ValidatorMixin","components","DataTable","AstButton","ModalWrapper","DlgHeader","_objectSpread","mapGetters","$store","getters","onBehalfOfList","isCurrent","watch","validator","resume","validate","pause","created","getOnBehalfOfList","mounted","cancelOnBehalfOf","methods","mapActions","editOnBehalfOf","suffix","degree","accreditationNumber","website","phoneType","phone","address","city","postalCode","country","username","password","item","saveOnBehalfOf","_asyncToGenerator","_regeneratorRuntime","mark","_callee","warning","wrap","_context","prev","next","showConfirm","sent","abrupt","deleteOnBehalfOf","stop","log","dlg","openOnBehalfOfDlg","open","label","disabled","placeholder","maxlength","handleInput","indexOf","debounceMilliseconds","Number","handleAutoComplete","onlyNumbers","mapState","autoCompleteList","settings","autoComplete","debounce","input","$refs","numRegex","RegExp","test","text","position","selectionStart","forEach","_ref","replacement","replaceText","$nextTick","setSelectionRange","$emit","_ref2","match","regex","matches","exec","index","replace","reduce","curr","LEVEL_TOOL","LENGTH_TOOL","RECT_TOOL","CIRCLE_TOOL","ELLIPSE_TOOL","ANGLE_TOOL","TEXT_TOOL","ARROW_TOOL","PROBE_TOOL","ERASER_TOOL","SELECT_TOOL","PAN_TOOL","ZOOM_TOOL","SCROLL_TOOL","PLANE_TOOL","ROLL_TOOL","PRE_TOOL","TOOLS","BLEND_NONE","BLEND_MIP","BLEND_MINIP","BLEND_AVG","FRONT","TOP","LEFT","LEFT_MKEY","MIDDLE_MKEY","RIGHT_MKEY","BUTTONS","BUTTON_MASKS","1","4","2","VTK_BUTTONS","_defineProperty","MOUSE_BINDINGS","TOUCH_BINDINGS","emailIsValid","addNotification","notificationType","dispatch","setResultsPerPage","_l","resultsPerPage","mq","small","currentPage","goToPreviousPage","startingRow","endingRow","hasMoreResults","goToNextPage","LoadingSpinner","resultsLength","perPageOptions","scaleJpegVoiToDicom","voi","image","from","windowWidth","windowCenter","to","dicomWindowWidth","dicomWindowCenter","scaleWwwc","scaleDicomPresetToJpeg","isUnchanged","widthScale","centerChangePercent","imagePixelModule","photometricInterpretation","lookup","Map","metadata","NUMBER","NUMBERS","STRING","PATIENT_NAME","valueTypes","PATIENT_ID","PATIENT_BIRTH_DATE","PATIENT_SEX","PATIENT_AGE","PATIENT_SIZE","PATIENT_WEIGHT","MODALITY","SERIES_INSTANCE_UID","SERIES_NUMBER","SERIES_DESCRIPTION","STUDY_INSTANCE_UID","SAMPLES_PER_PIXEL","PHOTOMETRIC_INTERPRETATION","ROWS","COLUMNS","BITS_ALLOCATED","BITS_STORED","HIGH_BIT","PIXEL_REPRESENTATION","PLANAR_CONFIGURATION","PIXEL_ASPECT_RATIO","SMALLEST_PIXEL_VALUE","LARGEST_PIXEL_VALUE","RED_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR","GREEN_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR","BLUE_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR","RED_PALETTE_COLOR_LOOKUP_TABLE_DATA","GREEN_PALETTE_COLOR_LOOKUP_TABLE_DATA","BLUE_PALETTE_COLOR_LOOKUP_TABLE_DATA","IMAGE_ORIENTATION_PATIENT","IMAGE_POSITION_PATIENT","FRAME_OF_REFERENCE_UID","SLICE_THICKNESS","SLICE_LOCATION","AST_CALIBRATED_PIXEL_SPACING","minimumLength","PIXEL_SPACING","IMAGER_PIXEL_SPACING","NOMINAL_SCANNED_PIXEL_SPACING","RADIOPHARMACEUTICAL_INFORMATION_SEQ","RADIONUCLIDE_TOTAL_DOSE","RADIONUCLIDE_HALF_LIFE","RESCALE_INTERCEPT","RESCALE_SLOPE","RESCALE_TYPE","IMAGE_TYPE","SOP_CLASS_UID","SOP_INSTANCE_UID","WINDOW_CENTER","WINDOW_WIDTH","NUMBER_OF_FRAMES","FRAME_INCREMENT_POINTER","FRAME_TIME","FRAME_TIME_VECTOR","dicomTags","tagName","defaultValue","dicomTagEnum","_dicomTagEnum$tagName","_parseHexDicomTagStri","_parseHexDicomTagString","group","element","noTags","foundResult","find","dt","Element","Group","_parseValueType","Value","parseFloat","valuesArray","split","hexDicomTagString","parseInt","substring","getValue","samplesPerPixel","rows","bitsAllocated","bitsStored","highBit","pixelRepresentation","planarConfiguration","pixelAspectRatio","smallestPixelValue","largestPixelValue","redPaletteColorLookupTableDescriptor","greenPaletteColorLookupTableDescriptor","bluePaletteColorLookupTableDescriptor","redPaletteColorLookupTableData","greenPaletteColorLookupTableData","bluePaletteColorLookupTableData","imageOrientationPatient","imagePositionPatient","cornerstoneMath","_getPixelSpacing2","_getPixelSpacing","pixelSpacing","isPixelSpacingDefined","_pixelSpacing","_slicedToArray","rowPixelSpacing","columnPixelSpacing","frameOfReferenceUID","sliceThickness","sliceLocation","isBadValue","spacing","getSpacingValues","_getUltrasoundPixelSpacing","some","abs","sequenceOfUltrasoundRegions","Children","regionValues","Name","region2DIndex","_get2DRegionIndex","get2DRegionValue","rowSpacing","columnSpacing","isCentimeters","RegionSpatialFormat","valueFor2D","findIndex","rescaleIntercept","rescaleSlope","rescaleType","frameTime","imageInfo","isMultiframeImage","frameIncrementPointer","numberOfFrames","frameTimeVector","averageFrameRate","_getFrameIncrementPointer","radiopharmaceuticalInfo","radiopharmaceuticalStartTime","radionuclideTotalDose","radionuclideHalfLife","sopClassUID","sopInstanceUID","meta","raw","study","studyInstanceUid","series","seriesDescription","seriesNumber","seriesDate","seriesTime","modality","seriesInstanceUid","patient","birthDate","sex","weight","age","generalImageModule","getGeneralImageModule","getImagePixelModule","imagePlaneModule","getImagePlaneModule","modalityLutModule","getModalityLutModule","multiFrameModule","getMultiFrameModule","petIsotopeModule","getPetIsotopeModule","sopCommonModule","getSopCommonModule","voiLutModule","getVoiLutModule","isCornerstoneImageId","idParts","getCornerstoneImageIdParts","toLowerCase","set","imageMetaUpdated","has","deltaMeta","oldMeta","updatedMeta","assign","moduleName","imageMetadata","clear","remove","add","update","loadMetadata","images","every","isFakeSeries","api","viewer","getMetadata","addSeriesMetadata","getMetaByImage","responses","_toConsumableArray","seriesMetadata","ImageId","DicomTags","updatePrecachedCornerstoneImage","calibration","calibrations","oldLength","oldPixelSpacing","newLength","showCloseHeader","_t","scroll","action","refInFor","actions","isDisabled","emit","closeText","showFooter","buttons","$el","focus","textdiv","nextCellId","ReportDetail","reportId","consultantReportId","canRespond","canRecall","canDelete","forceConsultantHeader","skipValidation","studies","seriesToExclude","isValid","validationErrors","emails","studyIds","client","priority","serviceId","billingCodeId","consultant","drafter","selectedConsultant","relatedReports","attachments","imageComments","addendums","isPreview","appliedResidentResponseId","residentResponses","addNewAttachments","imageData","addNewImages","thumbnails","newAttachments","existing","seriesId","description","comment","originalFileName","fileExtension","storageLocation","newImages","limb","view","anatomy","clinicCode","numberOfImages","simpleName","thumbnailUrl","instanceNumber","complete","values","activeTemplate","saveValues","changed","arguments","response","responseReportId","fakeSeries","fakeSeriesId","imagesToExclude","consultantId","selectedConsultantId","requestType","templateId","templateFieldId","_a","consultationService","start","reportDetail","oldRequest","report","hydrate","setActiveTemplate","_this4","isComplete","isLocked","lockedBy","lockedByUserId","lockedDateTime","billingCodes","setCanRespond","rr","prop","changeValue","_loop","ic","_context2","_this5","reportService","saveImageComment","htmlValue","textValue","reportImageId","_context3","delegateYield","t0","_callee2","isRespondingAsResident","isConsultantResident","isResidentResponseSubmitted","appliedResidentResponse","status","isConsultantUser","groupConsultantId","userId","root","readOnly","_this6","isImageOptional","excludedMap","hasImages","hasAttachments","template","controls","getControlsDeep","missingReqData","hasValue","onValidate","validatePartnerData","maxPartnerData","partnerFieldMap","partnerFieldPaths","field","path","innerHTML","innerText","over","valid","hasRequired","validateFields","validateClient","validateImages","json","_context4","getTemplateMeta","Template","_callee3","hasWritePermission","completed","finalizedBy","ownerId","templateSetName","services","consultants","canViewResponse","completedBy","completedDateTime","areImagesAvailable","priorities","priorityInfo","templates","isRequest","TemplateSetStatus","Draft","Published","Retired","Deleted","TemplateSet","modifiedDate","isLegacy","apiWarnings","_construct","Set","warnings","toJSON","editorMode","context","Report","getTemplate","Request","Response","pageHeader","pageFooter","layouts","calcValues","pendingChanges","partnerLayoutMap","draftWatermark","watermarkUrl","watermarkOpacity","imageCommentColumns","widget","w","newLayout","Layout","isRoot","newValue","calc","onChangeCB","layout","getLayout","addLayout","createInstance","widgetPath","bindableControls","binding","bindingErrors","errors","join","metaVersion","version","header","footer","CompletionDate","ReferredBy","Address","City","State","PostalCode","Email","Organization","organization","Phone","Consultant","Website","DraftedBy","Label","Patient","Birthdate","birthdate","Breed","breed","Gender","gender","Owner","owner","PatientId","Species","species","Weight","WeightUnit","weightUnit","FinalizedBy","FullName","fullName","FirstName","LastName","Zip","zip","Suffix","Degree","Country","Title","Study","StudyDate","studyDate","Modality","modalityName","bc","BillingCode","standard","changedPath","getNewWidgetName","newWidgetName","newWidgetNumber","parent","forcePath","previewInEditor","Panel","getControls","def","isBindable","subLayouts","idx","usedIds","panel","createId","cell","Cell","addCell","moveCellToIndex","templateTypes","sets","ContextMetaKeys","keys","ContextMeta","k","METHODS","onSave","userValue","richText","addImageCommentBinding","cells","_this7","bindingValue","_typeof","hasBindingValue","hasUserValue","toString","_this8","primitives","_this9","_this10","editWidget","trimValue","trim","isBlank","validation","isNumber","Binding","removeCell","parts","_this11","oldPath","dependents","dependencyMap","replaceDependency","hasDependency","currentValue","borderColor","border","tableprops","sides","color","col","cols","left","top","right","bottom","borderLeft","borderTop","borderRight","borderBottom","defMap","defprop","_Cell","_this12","_callSuper","isPanel","_inherits","_this13","tableCell","siblings","table","h","el","clientHeight","allowNested","_cell$props","lastCell","cellAbove","firstCell","_cell$props2","cellBelow","_cell$props3","_cell$props4","overCell","newIndex","bIndex","remaining","abWidth","bWidth","sum","autoPercent","remainder","shareOfRemainder","newWidth","used","deleteIdx","sort","diff","cspan","colspan","rspan","rowspan","createCell","_superPropGet","isStriped","isReport","isHoverable","isCondensed","isFullWidth","opacity","transition","asc","isAscending","isSorted","desc","column","active","orderBy","sortName","sortable","isSortable","preventDefault","sortSelected","rowIndex","expandedRow","isExpanding","wasRemoved","rowClass","onRowClick","$slots","expanded","collapseOnListChange","clickTimeout","hideExpandedRow","setExpandedRow","self","alreadyOrderedBy","currentlyAsc","orderByName","getScrollParent","node","overflowY","HTMLElement","getComputedStyle","isScrollable","scrollHeight","scrollSelectedRowIntoView","scrollToTop","querySelector","bottomOverlap","offsetTop","scrollTop","topOverlap","scrollIntoView","SALE_ENTRY_STATUS","3","5","6","7","8","9","10","1000","SalesService","sale","saleEntry","isExtraReasonRequired","saleId","hipNumber","mergeExistingMatches","templateImages","existingImages","existingMatches","existingImage","clearServerMatchesForImageId","newImage","reportTemplateImageViewId","serverMatches","serverMatch","workflow","_getTemplate","saleEntryId","patientId","hasServerMatches","existingAttachments","finish","extraReason","notificationEmails","_submitSaleEntry","_yield$this$_submitSa","uploadData","stopUploads","reset","results","params","cancelPending","paramsSerializer","salesService","Worker","protocol","URL","config","keystoneRootUrl","removeProtocol","url","findImageUrlFromImage","annexOnly","findImageUrl","findThumbnailUrl","thumbnail","findAttachmentUrl","attachment","endpointBaseUrl","baseUrl","keystoneBaseRoute","clinicAPI","activeClinicUrl","frameIndex","findJsonUrl","findReportUrl","isConsultantReport","endpoint","isResponseVisible","includePrivateFields","useConsultantHeader","suppressDraftWatermark","fontSizeAdjustment","getLocale","Date","getTimezoneOffset","residentResponseId","patientName","ownerName","_f","studyDateTime","forceUTC","studyDescription","imageCount","mostRecentReportRecipient","hasBeenEmailed","hasReport","hasSignalPETAttachment","AstCard","showViewButton","CommunityService","uploadStartDate","uploadEndDate","studyStartDate","studyEndDate","modalityIds","patientIdNameOwner","notSent","page","modalityId","communityService","defaultLocale","locale","repository","translationCulture","navigator","language","userLanguage","_b","buttonClass","$attrs","mutations","SET_MPR_ACTIVE","SET_MPR_ACTIVE_SERIES","activeSeries","getDefaultSeriesData","SET_MPR_LOADING","loading","SET_MPR_LOAD_PROGRESS","_ref3","loadProgress","SET_MPR_VOLUME_DATA","_ref4","volumeData","SET_MPR_VOLUME_DIRECTION","_ref5","direction","volumeDirection","SET_MPR_VOLUME_SLICE_DIRECTIONALITY","_ref6","directionality","sliceDirectionality","SET_MPR_VOLUME_IS_JPEG","_ref7","isJpeg","SET_MPR_LAYOUT","_ref8","lastLayout","SET_MPR_ACTIVE_TOOL","_ref9","_ref10","activeTools","tools","tool","buttonMask","selectedButton","button","inputDevices","toolManager","updateToolBindings","UPDATE_AVAILABLE_TOOLS","availableTools","hidden","UPDATE_TOOL_BINDINGS","_ref11","SET_MPR_BLEND_MODE_ALL","_ref12","blendMode","viewData","v","SET_MPR_SYNC_WINDOW_LEVELS","shouldSync","syncWindowLevels","SET_MPR_SLICE_ROTATION","_ref13","_ref14","plane","angle","SET_MPR_VIEW_ROLL","_ref15","_ref16","SET_MPR_SLICE_THICKNESS","_ref17","_ref18","thickness","SET_MPR_ACTIVE_VIEW","_ref19","entries","_ref20","_ref21","SET_MPR_ACTIVE_POSITION","_ref22","SET_MPR_SWITCH_MODE_ACTIVE","_ref23","switchModeActive","SWITCH_VIEWS","_ref24","_ref25","fromIndex","toIndex","fromPosition","TOGGLE_MPR_VIEW_FULLSCREEN","_ref26","SET_MPR_DEFAULT_WINDOW_LEVEL","_ref27","_ref28","defaultVoi","SET_MPR_WINDOW_LEVELS_TEXT","_ref29","_ref30","center","TOGGLE_MPR_SHOW_OVERLAY_TEXT","showOverlayText","SET_MPR_SHOW_OVERLAY_TEXT","show","TOGGLE_MPR_SHOW_AXIS","showAxisOverlay","SET_MPR_SHOW_AXIS","SET_MPR_SHOW_IMAGE_ORIENTATION_MARKERS","showImageOrientationMarkers","ROTATE_VIEW_CLOCKWISE","_ref31","rotateView","ROTATE_VIEW_COUNTERCLOCKWISE","_ref32","ROTATE_VIEW_BY_ANGLE","_ref33","_ref34","degrees","FLIP_VIEW_H","_ref35","_ref36","flipH","FLIP_VIEW_V","_ref37","_ref38","flipV","SET_MPR_VIEWDATA","_ref39","SET_MPR_VIEW_COMPONENT","_ref40","_ref41","CLEAR_MPR_ACTIVE_ANNOTATIONS","_ref42","clearAnnotations","CLEAR_MPR_ACTIVE_SERIES","SET_ON_MPR_RESET_CB","_ref43","onReset","SET_MPR_INVERT_CB","_ref44","onInvert","SET_MPR_MOVESLICE_CB","_ref45","onMoveSlice","SET_MPR_PERFORMANCE_ISSUES","issues","deviceBindings","bindings","newAngle","viewRotation","round","ret","UserData","activeClinicCode","sessionId","isSchedulingEnabled","enabled","file","formData","FormData","append","headers","userData","sendGAEvent","eventParams","sendGAPageView","pagePath","pageview","googleAnalytics","BillingCodes","codes","MIN_SHOW_TIME","setLoading","startTime","finally","endTime","getTime","ms","videoExtensions","iconNameLookup","findFileIconName","extension","getFileExtension","iconName","pop","isPDF","ext","isVideo","FileUtils","emailList","$options","selectOnKeyCodes","onEmailSearchBlur","term","getEmailList","model","callback","$$v","addresses","showSuggestions","remainingEmail","vueSelect","search","_arguments","searchTerm","consultations","getEmail","cancel","OpenStudyOptionsDlg","AstInput","ModalDialog","forExistingStudy","forReport","showStudyOptions","isElectron","omniDesktop","isConnected","PRIMARY_VIEWER","openStudiesInNewWindow","storage","getItem","openedStudyWindowReferences","allowOpenStudiesInNewWindow","g","rootState","isRepositoryUser","saveOpenStudiesInNewWindow","newWindow","commit","setOpenStudiesWindowSetting","broadcast","VUEX_MUTATION","payload","fetchOpenStudiesInNewWindow","getOpenStudiesWindowSetting","openStudy","routeObject","electron","browser","preloadViewerWindows","router","currentRoute","clearAllData","_callee4","initialSeriesId","initialSeriesIds","query","routeConfig","_router$resolve","_browser$getMainViewe","_window","isNewWindow","isEmptyViewer","_action","reportIds","sid","sids","isMobileOS","pruneClosedWindows","getMainViewerWindowReference","isShowingStudyOrReport","onAddToViewer","openNewStudyWindow","location","hash","windowName","wasOpen","closed","onunload","windowRef","openedWindow","_browser$openNewStudy","_callee5","seriesIds","viewerData","layoutRequest","_yield$electron$getMa","areWindowsOpen","isViewerEmpty","primaryStudyIds","primaryReportIds","isViewerAlreadyShowingStudy","_context5","listToArray","fetchSeriesIds","getLayoutPreset","modalityLayout","getMainViewerState","checkIfMainViewerWindowIsOpen","_callee6","isMainViewerOpen","_context6","checkIfMainViewerShowing","_callee7","isViewerShowing","_context7","SET_OPEN_STUDIES_NEW_WINDOW","setItem","ADD_OPEN_STUDY_WINDOW","REMOVE_OPEN_STUDY_WINDOW","filtered","CLOSE_ALL_STUDY_WINDOWS","_x","_x2","_fetchSeriesIds","_callee8","_seriesIds","_data","_context8","getStudy","ids","getReportStudies","_dateRange","marginRight","_startDate","_endDate","AstRadio","Datepicker","startDateKey","endDateKey","dateRanges","getDateRanges","dateRange","isSameDate","startDate","endDate","range","dateRangeOptions","dateRangeLabels","getDate","pdf","activePdfUrl","showReviewButton","showDownloadButton","activeVideoUrl","isMuted","videoLogId","viewingInterval","startVideoViewing","video","addEventListener","setIsPlayingVideo","dispatchEvent","Event","handleError","beforeDestroy","removeEventListener","clearInterval","updateVideoViewingLog","mapMutations","$notifications","addError","viewingId","$api","sessionLogId","endoscopyDisclosure","setInterval","$route","updateVideoViewing","imageViewLogId","autoplay","playsinline","controlsList","muted","poster","AttachmentDlg","PdfViewer","VideoPlayer","openAttachmentDlg","showPdfDownloadButton","fileUrl","openPdfDlg","REFRESH_TOKEN_TIMER","isWorkerEnabled","initializeRefreshToken","isSharedWorkerSupported","SharedWorker","port","onmessage","enableRefreshToken","msg","timer","createMessageSender","stopRefreshToken","onAppClosing","tinymceCDNUrl","_refreshInterval","deeplink","localStorage","sessionStorage","expiration","getClaimsFromToken","removeItem","reloading","count","isMainWindow","getTokenUseCount","addTokenUse","apiDns","annexDns","setApiBaseUrl","setHeader","_router$currentRoute","routeName","routePath","CLOSE","removeTokenUse","logOut","LOGOUT","wsData","closeConnection","isAuthenticated","isSaleSubmissionUser","is","isCommunityUser","fullname","userClinicCode","setAuthentication","CLEAR_AUTHENTICATION","clearTokenUses","unsetHeader","clearTempStorage","lockService","stopAutoRefreshing","stopScanning","refreshTokenAndBroadcast","init","VUEX_ACTION","refreshToken","_response$data","needsUpdate","expires_in","access_token","initAuth","setAuthenticationAndInit","_response$data2","clinicUrls","googleAnalyticsId","confirmText","cancelText","setClinicUrls","dicomPartners","configs","partnerConfigs","updateConfig","defaults","baseURL","startAutoRefreshing","startScanning","clinicId","activeClinicId","isCommunity","isDesktop","RefreshToken","getUserSetting","logIn","GoogleAnalytics","event_category","event_label","addConsultant","consultantWasAdded","addConsultantToUser","createCommunityUser","getCommunityDns","communityDns","analyticsEvent","resetPassword","switchClinic","_callee9","_context9","changeRoute","forceLogout","_callee10","_ref17$forceLogout","_ref17$changeRoute","_context10","checkSafeToLogout","closeAll","decoded","jwtDecode","defaultClinicId","defaultClinicCode","permissionMask","partnerClinicCode","isConsultantMember","isConsultantGroup","isConsultantIntern","isConsultantTranscriptionist","isAdvancedReportsEnabled","isConsultantApprovalSupported","_clearTempStorage","_callee11","tempKeys","_context11","startsWith","mprActive","mprActiveSeries","mprActiveView","mprActiveViewKey","loadVolumeFromSeries","_loadVolumeFromSeries","completion","validImages","useJpeg","renderFrequencyPct","total","lastpercent","wait","validateMPRImages","shouldLoadDicom","getImageData","cornerstone","hasMissingSlices","duration","hasOverlap","loadImageData","any","insertPixelDataPromises","vtkImageData","pct","RangeError","_ref3$showNotificatio","showNotification","activeComp","imgBase64","_yield$api$viewer$ren","_args","renderImage","activeImage","sourceImageId","renderAnnotatedImage","saveImage","_x3","_saveImage","fileName","_yield$api$file$uploa","win","saveAs","uploadTemporaryImage","getDownloadTemporaryImageUrl","saveMprImageAsync","_saveMprImageAsync","iframe","printImage","_printImage","_iframe","newWin","css","html","display","body","frames","write","printMprImageAsync","_printMprImageAsync","base64toBlob","dataURI","contentType","byteString","atob","ab","ArrayBuffer","ia","Uint8Array","charCodeAt","Blob","imageSrc","CopyImageDlg","OpenCopyImageDlg","copyImageToClipboard","_copyImageToClipboard","blob","clipboard","ClipboardItem","copyMprImageAsync","_copyMprImageAsync","webglVersion","integratedGPU","MprPerfDlg","showMprPerfDialog","createMprAnnotationRenderingAsync","setMprActiveToolAndBroadcast","mutation","rotateActiveViewClockwise","MPRKeys","rotateActiveViewCounterClockwise","flipHActiveView","flipVActiveView","resetViewData","currentViewData","newViewData","getDefaultViewData","vdk","setThickness","consts","invertVolume","Function","nextMPRSlice","previousMPRSlice","nextMPRActiveView","prevMPRActiveView","openMPRPerformanceModal","isSaved","hasDefinedColors","local","bg","regional","community","global","stat","old","threshold","documentElement","GET_COLOR_SETTINGS","SET_COLOR_SETTINGS_THEME","SET_COLOR_SETTINGS_VALID","SET_COLOR_SETTINGS_THRESHOLD","setColorsAndBroadcast","saveReportColorSettingsAction","colorSettings","setUserSetting","getReportColorSettingsAction","setReportColorSettingsThreshold","setUpColorSettings","colors","colorKeys","shadeHexColor","percent","R","G","B","newColorMap","colorMapped","hasColor","_","merge","setProperty","IdleTimer","idleTimeout","onIdle","isIdle","events","destroyOnIdle","lastId","createTimer","resetTimeout","eventType","listener","passive","emptyState","lotNumber","order","by","idleTimer","isPlayingVideo","requireClientName","clientName","sales","clone","updateConsignerStudySort","changes","updateConsignerStudySearch","updateRepositoryData","storeIdleTimer","setClientName","setViewingId","storeViewingInterval","CLEAR_REPOSITORY_DATA","setEndoscopyDisclosure","getRepositoryData","_yield$api$repository","initializeSearch","startRepositoryViewing","consignerStudyId","startViewing","toLocaleString","startViewingPolling","updateViewing","endRepositoryViewing","startIdleTimer","stopIdleTimer","logOutOnIdle","currentParams","reviews","numResults","reviewsTotal","saleName","saleCode","rejected","approved","awaitingreview","rejectedbysale","submitted","reportImages","attachmentsTemplates","studyImages","reviewSubmissionId","reviewSubmissionStatus","saleClinicCode","submitResponse","updateReviewData","selectedThumbnail","CHECK_IF_TEMPLATES_MATCHED","CLEAR_TOTAL_REVIEWS_STATUS","CLEAR_SALES_REVIEW_LIST","CLEAR_SORT_SALES_REVIEW_LIST","CLEAR_FOR_INITIAL_REVIEW_SUBMISSION","GET_REPOSITORY_IMAGES_TEMPLATES","GET_REPOSITORY_REVIEW_SUBMISSION_DETAILS","GET_SALES_REVIEW_LIST","GET_DASHBOARD_REVIEW_LIST","SELECT_REPORT_TEMPLATE_IMAGEVIEW_ID_ACTION","SELECT_THUMBNAIL_ACTION","SET_REVIEW_PARAMS","SET_TOTAL_REVIEWS_STATUS","SUBMIT_APPROVED_REVIEW_LIST","UNASSIGN_TEMPLATE_ACTION","UPDATE_SORT_SALES_REVIEW_LIST","UPDATE_REVIEW_DATA","DELETE_ATTACHMENT","matchTemplate","thumbnailHidden","attachmentsMatches","attachmentTemplate","templateName","_payload$attachments","selectedIndex","CHECK__IF_TEMPLATES_MATCHED","reportTemplateId","arrayWithoutIndex","cloneDeep","getReviewListBroadcast","getSalesReviewListAction","repositoryReview","getList","pickBy","identity","getTotalReviewsByStatusAction","getDashboard","getDashboardReviewsAction","getDashboardList","updateSortAction","clearData","getReportImagesAction","getTemplateImageViews","getReviewSubmissionDetailsAction","getReviewSubmissionDetails","updateReviewSubmissionImageAction","updateReviewSubmissionImage","selectThumbnailAction","selectReportTemplateImageViewIdAction","checkIfTemplateMatched","unassignTemplateAction","deleteReviewSubmisssionImage","deleteAttachmentAction","setReviewParamsAction","sendReviewSubmissionAction","reason","_consultantId","_consultantId2","approveReviewSubmisssion","rejectReviewSubmisssion","t1","approveAndSubmitReviewSubmisssion","t2","submitApprovedReviewListAction","approvedReviews","submitApprovedReviewList","syncStudies","selectedDate","_callee12","_context12","addAsExtraImageAction","_callee14","imagesIds","_context14","_callee13","_context13","updateReviewSubmissionImageAsExtra","uploadAttachmentAction","_callee15","_context15","saveReviewSubmissionStudy","addStudyToReviewSubmissionAction","_callee16","_context16","clearInitialStateReviewSubmissionAction","selectedStudyImage","submissionStatus","studyImage","GET_ATTACHMENTS","CLEAR_ATTACHMENTS","getAttachmentsAction","clearAttachmentsAction","activeSales","updateSaleSubmissionSort","updateSaleSubmissionSearch","updateSaleSubmissionData","CLEAR_SALESUBMISSION_DATA","getSaleSubmissionData","saleSubmission","getSales","_default","isPageLoading","isListLoading","isDetailLodaing","emptyDetail","_Vm","MetaColumn","columnName","Vm","initLoading","_detail","AutoCompleteDetail","AutoCompleteVm","onBehalfOf","OnBehalfOfVm","enableAntechNotification","onBehalfOfColumns","onBehalfOfDetail","onBehalfOfIsEditing","onBehalfOfIsLoading","isDetailLoading","isAntechNotificationEnabled","SET_ON_BEHALF_OF_LOADING","SET_ON_BEHALF_OF_LIST","EDIT_ON_BEHALF_OF","SET_ON_BEHALF_OF","CLEAR_ON_BEHALF_OF","ADD_ON_BEHALF_OF","DELETE_ON_BEHALF_OF","SET_AUTOCOMPLETE_LIST","SET_AUTOCOMPLETE_LOADING","SET_AUTOCOMPLETE","unshift","DELETE_AUTOCOMPLETE","SET_ENABLE_ANTECH_NOTIFICATION","isNew","save","getAutoCompleteList","saveAutoComplete","autoCompleteEntry","saveAutoCompleteEntry","deleteAutoComplete","deleteAutoCompleteEntry","grays","blues","teals","reds","yellows","purples","greens","favicon","icons","download","companyName","accentColor","cssVariables","light","divider","scrollbar","link","dark","usePoweredByLogo","loginBackgroundImage","require","loginContent","fillColors","variables","mapValues","themes","asteris","vsp","SET_ACTIVE_THEME","defaultThemeSettings","company","cachedThemeSettings","theme","themeIsDark","fetchThemeForUser","getThemeSettings","applyNow","setThemeAndBroadcast","setTheme","rootGetters","_ref4$applyNow","updateThemeSettings","applyTheme","_ref6$unsetTheme","unsetTheme","isDark","_theme$cssVariables","defaultTheme","_defaultTheme$cssVari","defLight","defDark","defVariables","variable","removeProperty","classList","alias","defaultOptions","mouseButtonMask","isTouchActive","cornerstoneTools","className","instanceName","isCustom","configuration","drawAllMarkers","magnifySize","magnificationLevel","touchPointers","defaultStrategy","minScale","maxScale","invert","preventZoomOutsideImage","toolButtons","ViewerTool","groups","refresh","activeStudy","isArchived","vPopExport","command","studyData","showArchivingTip","imageUrl","downloadFile","activeCanvas","disabledReason","dom","isDicom","_unused","activeClinic","isOptionalFeature","optionalFeatures","isRightClickHandledByTool","isBoundToRightButton","boundTool","toolsWithSingleClickActions","ADD_INPUT_DEVICE","device","devices","globalTool","globalTools","activeBindings","availableBindings","deviceMatchesBinding","abbreviateBinding","setActiveToolAndBroadcast","setActiveTool","listenForInputDevices","onMouseMove","movementX","movementY","addMouse","onMouseDown","isMiddleOrRight","which","onTouchStart","abbreviations","Touch","proxy","actionText","UpdateAppDlg","SvgIcon","isVisible","ui","updateAppBannerVisible","showAppUpdateAvailableDlg","displayUpdateAppBannerWaitTimeMs","didUserDismiss","listSelectedStudyId","isPersistentDrawerOpen","isModalDrawerOpen","desktopUpdateInfo","lastActiveSetting","toggleDrawers","isOpen","checkLastViewedVersion","lastViewedVersion","release","compareVersions","openReleaseNotes","setLastViewedVersion","lastVer","showAppUpdateAvailable","fromElectron","prevValue","handleUpdateAppBannerAction","userClickedRefresh","confirmRefresh","isInProgress","hasUnsavedChanges","installAndRelaunch","reload","RELOAD","getDesktopUpdateInfo","_rootState$auth","updateInfo","clinic","getOmniDesktopUpdateInfo","currentVersion","clinicBaseUrl","SET_APP_UPDATE_AVAILABLE","opener","ElectronInterface","HIDE_UPDATE_APP_BANNER","SET_USER_DISMISSED","SET_RESULTS_PER_PAGE","rpp","nrpp","SET_CURRENTPAGE","route","SET_LIST_SELECTED_STUDYID","TOGGLE_PERSISTENT_DRAWER","TOGGLE_MODAL_DRAWER","RESET_LIST_UI_CACHE","SET_DESKTOP_UPDATE_INFO","SET_LAST_ACTIVE_SETTING","isPlaying","frameRate","asterisImageId","cinePlayer","imageView","vue","isInitializing","nullSafeParse","CinePlayer","parsed","isNaN","maxCanvases","defaultInitCanvases","canvases","Canvas","newConsultationRequest","subject","sentBy","sentOn","fromEmail","toEmail","keystoneEndpointBaseUrl","hasDeletedStudies","reports","studiesNotFound","isViewerLoading","consultationRequest","hideLoadingText","draggingFromThumbnailList","activeCanvasIndex","prevActiveCanvasIndex","activeDisplaySetIndex","canvasLayout","canvasesPerRow","numCanvases","prevCanvasLayout","seriesViewportCache","manualStackOffsets","activeImageMetadata","hangingProtocols","hangingProtocol","isHangingProtocolLoading","loadSeriesFromMiddle","userSettings","settingsPanel","overlayText","toolbarLocation","isImageOrientationMarkersEnabled","isLengthAnglesEnabled","isReferenceLineSynchronizationEnabled","isStackScrollSynchronizationEnabled","isManualStackScrollSynchronizationEnabled","tableHeadersSettings","studyListHeader","teleconsultationListHeader","allSeries","loadedStudyIds","loadedReportIds","relatedStudies","unopenedStudies","studiesList","dateA","dateB","visibleCanvases","canvasColors","colorMap","colorCount","visibleCanvas","hasActiveSeries","activeReportId","allActiveSeriesIds","matchedImage","activeDisplaySet","displaySets","SET_IMAGE_ORIENTATION_MARKERS","isEnabled","SET_LENGTH_ANGLES","SET_REFERENCE_LINE_SYNCHRONIZATION","SET_STACK_SCROLL_SYNCHRONIZATION_AUTO","SET_STACK_SCROLL_SYNCHRONIZATION_MANUAL","SET_STACK_SCROLL_SYNCHRONIZATION_OFF","SET_OVERLAY_TEXT","TOGGLE_OVERLAY_TEXT","SET_VIEWER_TOOLBAR_LOCATION","SET_STUDY_LIST_HEADER","studyTableHeaderSettings","SET_TELECONSULTATION_LIST_HEADER","teleconsultationTableHeaderSettings","newStudies","existingStudy","shouldLoadFromMiddle","ADD_STUDIES","CLEAR_VIEWER","SET_VIEWER_LOADING","SET_DRAGGING_FROM_THUMBNAIL_LIST","dragging","SET_CONSULTATION_REQUEST","SET_STUDIES_NOT_FOUND","REMOVE_STUDY","studyIndex","REMOVE_REPORT_STUDIES","REFRESH_STUDY","foundStudy","FILL_CANVASES","existingCanvas","alreadyHasImage","nextUnopenedSeries","getNextUnopenedSeries","middleImage","firstImage","openedSeries","canvas","firstUnopenedSeries","SET_ACTIVE_CANVAS_INDEX","SET_SERIES_VIEWPORT_CACHE","viewport","CLEAR_SERIES_VIEWPORT_CACHE","SET_CANVAS_ACTIVE_SERIES","canvasIndex","oldCanvas","newCanvas","getInitialImageId","SET_CANVAS_ACTIVE_IMAGE","SET_CANVAS_INITIALIZING","RESET_CANVAS_LAYOUT","SET_CANVAS_LAYOUT","SWITCH_CANVASES","temp","SET_CANVAS_INFO","domCanvas","vueCanvas","CINE_PLAY","CINE_PAUSE","SET_CINE_FRAMERATE","SET_VIEWER_HIDE_LOADING_TEXT","SET_SERIES_METADATA_LOADED","isMetaLoaded","SET_HANGING_PROTOCOLS","SET_HANGING_PROTOCOL","SET_HANGING_PROTOCOL_LOADING","SET_LOAD_SERIES_FROM_MIDDLE","SET_USER_SETTINGS","newSettings","SET_ACTIVE_DISPLAYSET_INDEX","SET_STACK_SCROLL_OFFSETS","offsets","ADD_STACK_SCROLL_OFFSETS","_state$manualStackOff","SET_ACTIVE_IMAGE_METADATA","SET_CALIBRATION","CLEAR_CALIBRATION","activeCornerstoneImageId","getCornerstoneImageId","clearToolData","enabledElement","cornerstoneImageId","toolState","saveToolState","restoreToolState","ANNOTATIONS_CLEARED","blobCallback","IMAGE_FIX_SCALE_TH","toolStyles","canvasDimensions","imageScale","annotationScaleFactor","flipWidthAndHeight","tempViewport","newImageW","newImageH","getToolStyles","getCanvasDimensions","max","scale","rotation","translation","setToolStyles","activeWidth","font","fontSize","backgroundColor","setCanvasDimensions","widthAttribute","heightAttribute","onImageRendered","toBlob","toDataURL","IMAGE_RENDERED","getToolWidth","getActiveWidth","getFont","getFontSize","getBackgroundColor","newStyles","currentStyles","_Object$assign","setToolWidth","setActiveWidth","setFont","setFontSize","setBackgroundColor","widthStyle","heightStyle","_ref2$position","_ref2$width","_ref2$height","targetCanvas","createImageFromEnabledElementAsync","scrollToIndex","toolImport","nextImage","goToIndex","currentIndex","previousImage","lastImage","lastIndex","indexFn","toolData","getToolState","currentImageIdIndex","targetIndex","getEnabledElement","isAnyImageLevelAdjusted","Exception","warn","_rootGetters$activeSe","overlayInformation","_ref2$force","force","hasImage","synchronizers","referenceLinesSynchronizer","destroy","addSource","enabledElements","imageLoaded","waitForEnabledElementImageToLoad","updateImage","setStackSynchronizationMethod","syncMethod","manual","auto","sourceCanvas","sourceMeta","getOffsetsFromMeta","stackScrollSynchronizer","manualStackScrollSynchronizer","requestImageStackForManualSync","externalImages","setImageStackForManualFromExternal","unMatchedImages","img","offset","sourceSeriesId","sourcePosition","targetMeta","targetPosition","targetSeriesId","resetLevels","updateViewport","defaultViewport","rotateCanvas","clamped","toggleCanvasInvert","toggleZoom1to1","toggleCanvasHorizontalFlip","hflip","toggleCanvasVerticalFlip","vflip","cacheSeriesViewport","cloneViewport","refreshCanvas","keyWhitelist","clonedViewport","updateFn","triggerEvent","virtualStackScroll","_virtualStackScroll","STACK_SCROLL","virtual","virtualNewImage","_virtualNewImage","toggleImageOrientationMarkers","setImageOrientationMarkers","toggleLengthAngles","setLengthAngles","firstLengthAngleTool","toolName","toolMode","charAt","showAngles","hasLoadedImage","toggleReferenceLineSynchronization","setReferenceLineSynchronization","setSynchronizerSource","synchronizationContext","_setSynchronizerSource","waitForElementToBeEnabled","_eventBus$type","VUEX_STATE_INIT_REQ","VUEX_STATE_INIT_RES","VUEX_STATE_UPDATE","syncState","syncViewerActions","updateExternalToolStateForId","syncActions","calibrateFromExternalImage","clearCalibration","setHotkeysForAuthenticatedUser","refreshWindowLevelPresetsForAuthenticatedUser","syncMutations","_globalSyncEnabled","vuexStoragePlugin","execProtected","startSync","Vue","nextTick","ignoreUpdates","actionsToToggle","startImageViewerSync","_startImageViewerSync","_state$settingsPanel","stackSynchronizationMethod","VIEWER_TOOLSTATE_SEND","sendExternalToolState","requestExternalToolState","stopImageViewerSync","updateCachedStats","VIEWER_TOOLSTATE_UPDATE","updateExternalToolState","off","activateToolsInToolState","toolsInEachImageToolState","toolsToActive","globalState","saveImageIdToolState","restoreImageIdToolState","GROUP","ELEMENT","updateCalibration","imageMeta","oldScaleFactor","colPixelSpacing","lengthInPixels","newScaleFactor","astCalibratedPixelSpacing","showAlert","clearCalibrationAndBroadcast","setActiveImageMetaDataFromElement","_getImageDataFromElem","getImageDataFromElementStackState","stackToolState","sourceStackData","sourceCornerstoneImageId","_getCornerstoneImageI","CONSIGNER","CONSULTATION_REQUEST","REPORT","STUDY","STUDY_PARTNER","viewportActions","syncClearAnnotations","copyCanvasAsync","createAnnotationRenderingAsync","imageNavigation","printCanvasAsync","resetActiveCanvas","saveCanvasAsync","setActiveCanvas","setCanvasInfo","setStackSynchronizationMethodAndBroadcast","toggleStackSynchronizationMethod","method","getConsignerStudyViewerVmAsync","apiMethod","postData","getConsignerStudy","getViewerViewModel","getConsultationRequestViewerVmAsync","recipientId","getConsultationRequest","getReportViewerVmAsync","initialImageId","fillCanvases","getStudyViewerVmAsync","getStudyPartnerViewerVmAsync","getPartnerStudy","removeStudy","fetchLoadSeriesFromMiddle","setLoadSeriesFromMiddle","fetchViewerToolbarLocation","setViewerToolbarLocation","getUserViewerSettings","updateUserViewerSettings","getHangingProtocols","_yield$api$clinic$get","updateHangingProtocol","isValidId","_yield$api$clinic$get2","remnantDisplaySets","getHangingProtocol","createRemnantDisplaySets","rebuildRemnantDisplaySets","displaySet","setHangingProtocolDisplaySet","updateDisplaySetCanvases","imageViews","currentSeries","imageViewId","switchSeries","isStudyLoaded","isReportLoaded","updateCanvas","_series","originalSeriesId","previousSeries","seriesIndex","nextSeries","previousDisplaySet","nextDisplaySet","toggleCanvasFullscreen","currFullscreen","prevNonFullscreen","setCanvasLayoutForModalityAndSpread","_callee17","numSeries","MAX_IMAGES_PER_MONITOR","seriesRows","seriesColumns","isVertical","_isVertical","_context17","innerWidth","innerHeight","fetchViewerSettings","_callee18","_context18","success","overlayTextEnabled","imageOrientationMarkersEnabled","lengthAnglesEnabled","referenceLineSynchronizationEnabled","fetchStudyListHeaderSettings","_callee19","_context19","tableHeaders","fetchTeleconsultationListHeaderSettings","_callee20","_context20","imageViewIds","getImageViewIds","remnantSeries","seriesImageViewId","imageVewId","remnantImageViews","imageViewsPerRow","rowsPerDisplaySet","displaySetIndex","_ref46","_callee21","source","_ref45$initialSeriesI","_ref45$fillCanvases","_ref47","showReports","_context21","deletedStudies","getRelatedStudiesAndReports","rp","toolNames","dbName","imgName","mprName","MPR_TOOLS","imgTools","tn","mprTools","imgButtons","mprButtons","imgDefaultBindings","mprDefaultBindings","imgMouseBindings","resolveBindings","convertBindings","mprMouseBindings","setMouseBindings","setMouseBindingsForAuthenticatedUser","getViewerMouseBindings","setMouseBindingsForUnauthenticatedUser","updateMouseBinding","updateViewerMouseBindings","setImgActiveTools","setMprActiveTools","SET_MOUSE_BINDINGS","UPDATE_MOUSE_BINDING","isArray","convertToolName","newBinding","toolIndex","fromType","toType","nameSet","defaultBindings","toolAvailable","buttonAvailable","presetHotkeys","setLevelMethod","lastLoadedModalityId","bindWindowLevelPresets","presets","keyboard","unbind","resetLastLoadedModalityPreset","getModalityIdFromStore","getWindowLevelPresets","setWindowLevelPresets","setWindowLevelPresetsForAuthenticatedUser","setWindowLevelPresetsForUnAuthenticatedUser","getDefaultPresets","modalities","defaultPresets","vuexSyncPlugin","use","Vuex","Store","viewerHotkeys","viewerMouseBindings","windowLevelPresets","mpr","windows","reportColorSettings","saleHipStore","applicationRootUrl","restApplicationRootUrl","marketingRootUrl","isUserDataLoaded","isLoadingData","clinics","consultantsForAdmin","consignerNames","clientClinics","groupMembers","regions","requestTypes","modalityNamesById","consignerNamesById","consigners","getPermissions","_yield$api$user$getPe","getConsultants","getClinics","getModalities","responseData","setClinics","getConsultantsForAdmin","getConsultantData","getConsultantGroupMembers","getConsultantRegions","getConsultantClientClinics","getConsultantRequestTypes","getConsignerNames","initStatics","menu","fetchMenuSettings","setIsLoadingDataAction","SET_IS_USER_DATA_LOADED","CLEAR_STATICS","SET_PERMISSIONS","SET_CONSULTANTS","SET_CONSULTANTS_FOR_ADMIN","SET_USER_CLINICS","SET_MODALITIES","SET_CONSULTANT_CLIENT_CLINICS","SET_CONSULTANT_GROUP_MEMBERS","SET_CONSULTANT_REGIONS","SET_CONSULTANT_REQUEST_TYPES","SET_IS_LOADING_DATA","SET_CONSIGNER_NAMES","plugins","selection","showAll","nullable","isInUse","hotkeys","allHotkeys","hotkey","bindHotkeys","hotkeyActions","hotkeySettings","keyBinding","didBind","resetBindings","setHotkeys","ga","getHotkeySettings","getHotkeyActions","setHotkeysForUnauthenticatedUser","getHotkeyDefaults","setMPRHotkeys","setMPRHotkeysForAuthenticatedUser","getMPRHotkeyActions","setMPRHotkeysForUnauthenticatedUser","modifyHotkeyAction","updateHotkey","setAndSynchronizeTool","getHandledHotkeyNames","handledHotkeys","confirm","ConfirmDlg","newUrl","GLOBAL_EXCLUDE_LIST","getRouteQueryDlgs","excludeList","DlgUtils","dlgs","compName","vm","popRoute","$parent","updateQueryParam","once","go","$resolve","$reject","$destroy","comp","$mount","defaultMenuSettings","menuItems","teleconsultation","filterPresets","MenuTypes","defaultFilter","responseStartDate","responseEndDate","isDraft","claimedByConsultantId","region","draftedById","defaultFilterString","extendDefaultFilter","MenuService","_menuSettings","presetFilters","menuSettings","refreshFilterPresets","menuType","_getMenuItems","getMenuItems","consultantServices","consultantServiceMenuItems","_createMenuItemFromConsultantService","_getDefaultTeleconsultationMenuItems","settingName","menuItem","_createMenuItemFromSetting","hiddenMenuItems","isAvailable","teleconsultationMenuItems","folder","isCustomPreset","showTeleconsultationScheduleFiltering","defaultMenuItem","customFilterPresets","customFilterPreset","consultantService","_fetchMenuSettings","menuItemsAllowed","fetchMenuSettingsForType","getMenuSettings","menuItemsAllowedFiltered","filteredSettings","_saveMenuSettings2","newMenuSettings","settingNames","_saveMenuSettings","saveMenuSettings","_x4","ConsultantPastMonth","Month","ConsultantOpenAll","ConsultantMyReports","ConsultantDraft","ConsultantRegionalReports","ConsultantUrgent","getRequestTypeIdByName","ConsultantSTAT","ConsultantToday","Today","ConsultantYesterday","Yesterday","ConsultantPastWeek","Week","ConsultantAll","getConsultantServicePresets","getCustomFilterPresets","consultantServicePresets","guid","service","groupMember","customPresets","preset","allDates","requestDates","requestDateRange","studyDates","studyDateRange","responseDates","responseDateRange","modalityOptions","claimedBy","requestedBy","live","activeRoot","saveAndClose","releases","showMore","ReleaseNotes","hasMore","$router","lastVersion","compareDataVersions","comparedPinned","pinned","_openReleaseNotes","hideWhenEmpty","getReleaseNotes","DESKTOP","COMMUNITY","OMNI","_getReleaseNotes","sorted","_args2","reverse","axios","lines","line","MessageDlg","openMessageDlg","obj","showInfo","showErrors","showLog","logs","translations","consignerStudy","consigner","translate","DateTimeOptions","year","month","day","hour","minute","DateTimeSecOptions","second","TimeOptions","localizeDate","dateString","_ref$showDate","showDate","_ref$showTime","showTime","_ref$forceUTC","_ref$showSeconds","showSeconds","localizedDate","getMinutes","stringToDate","toLocaleDateString","toLocaleTimeString","formatNumber","number","opts","uFormatNumber","parseNumber","string","uParseNumber","filters","uid","_q","intModel","_uid","newval","AstPagination","DateRangePicker","FilterTag","SearchAndFilter","dialogCurrentPage","dialogResultsPerPage","isRefreshingList","listSort","isDialog","defaultResultsPerPage","cachedCurrentPage","selectedStudy","cachedSelectedStudyId","refreshList","selectors","handler","refreshDbounce","deep","immediate","Dbounce","clearFilterDateRange","prefix","updateFilter","newFilter","updateFilterComponent","handleSortSelected","evt","showLoading","waitForPreviousRefresh","fetchList","VETCTAPI","ConsultationService","studyCount","RESTAPI","provider","caseKey","slaData","getConsultantInfo","providerClinicCode","clientClinicCode","consultation","cancelToken","importMachineName","setReportMeta","loadFromConsultantReport","residentResponse","applyResidentResponse","dicomAeTitle","hostName","dicomPort","logType","hasLogs","logDateTime","imageUid","showDetails","DicomServiceLogDlg","Pagination","$watch","fetch","dicomServiceData","getLogs","studyDateStart","studyDateEnd","details","openDicomServiceLogDlg","instruction","onDragStart","openViewer","toggleSeries","showAddStudyButton","AttachmentList","seriesToExcludeIndex","dataTransfer","setData","locales","_ref$fallback","fallback","numerals","Intl","NumberFormat","useGrouping","format","numeral","separators","getSeparators","decimal","numberFormat","formatToParts","potentialGroup","OmniDesktopService","electronInterface","isFirstPrimaryViewerWindow","ipcRenderer","screen","deeplinkObject","setDownloadStatus","__awaiter","isCloseConfirmed","send","sendSync","channel","annexURL","invoke","primary","isPrimary","scrollHide","prevScrollTop","onTableScroll","srcEvent","srcElement","MessageType","connectedPromise","socket","subscribeSendTimer","_watchedIds","isLogout","interval","wssUrl","websocketServerUrl","wsFallbackUrl","isConnectedToFallback","sleepInterval","isMobile","userAgent","WsData","studyWatchCallbacks","disableWS","host","catch","WebSocket","onopen","sendStudySubscriptions","onclose","recieveMessage","readyState","StudyChangeNotification","newSet","_step","_iterator","_createForOfIteratorHelper","done","WatchStudies","archive","system","excludedImage","doc","web","nonImageExtensions","imageExtensions","excludedForAttachments","getExtension","hasNonImageExtension","hasNoExtension","hasImageExtension","hasValidAttachmentExtension","getVideoExtensions","getDocumentExtensions","delayMS","_delay","_handler","_timer","ex","waitThreshold","cancelTokens","install","axiosInstance","interceptors","requestInterceptor","responseInterceptor","pendingRequest","deleteTokenForUrl","CancelToken","_response$config","cancelAllPendingRequests","is401","hasErrorMessage","errorResponseInterceptor","isCancel","defaultMessages","today","valueOf","setUTCHours","notification","statusCode","APP","RESTAPP","ANNEX_DNS","Annex","common","handleErrors","environmentName","noAuthConfig","transformRequest","serializeDate","date","showOffset","sign","toTwoDigits","getFullYear","getMonth","getHours","getSeconds","qs","arrayFormat","keepalive","Authorization","timeZoneOffset","forgotPassword","reportIssue","imageViewMeta","getImageViewMeta","updateLogo","downloadImages","downloadStudy","downloadType","downloadReport","downloadConsultationRequest","legacy","importMode","param","openImporter","getSpecies","getBreeds","getConsignerStudies","getRequiredAttachments","downloadAttachment","consignerStudyViewingLogId","getSubmissions","getSubmissionDetails","submissionId","reasonMsg","approve","submit","getCatalog","getDashboardDetails","activeSaleId","spelling","misspelledWords","alternativeSpellings","statistics","getUserInfo","getSummaries","getViewings","updateConsignerClient","createConsignerClient","getConsignerClients","emailConsignerClient","getSaleEntryClients","assignClientToSaleEntry","unassignClientToSaleEntry","getElementById","deleteStudy","deleteSeries","getEmails","getStudyShareUrl","renameStudy","shareByEmail","getClients","getViewerSettings","updateViewerSettings","updateWindowLevelPreset","deleteWindowLevelPreset","openInNewWindow","modalityString","setLayoutPreset","deleteLayoutPreset","setClinicFeatureFlag","itemId","addStudiesToClinic","getReportUrls","getPartnerTeleconsultation","urls","getConsignerStudyViewingLog","createFromConsultation","getStatus","timestamp","ReviewSubmissionId","ReportTemplateImageViewId","ImageIds","dateToMatch","StudyId","submitSaleEntry","prompt","promptResult","TextPromptDlg","buttonLabel","requireInput","wasButton","openPromptDlg","_ref$buttonLabel","_ref$title","_ref$prompt","_ref$defaultValue","_ref$type","_ref$requireInput","zoomOut","zoomIn","onScroll","pageNumber","loaded","isLoadingNewDocument","isPrevPage","pagePrevious","totalPages","isNextPage","pageNext","markReviewed","defineComponent","AstToolbar","ToolbarButton","showCloseButton","setup","pdfContent","textLayers","pageRetryCount","reactive","isLoadingPage","loadAgain","openDocument","getDocument","numPages","querySelectorAll","loadPages","setPage","pageNum","setScale","loadPage","getPage","viewerWidth","getBoundingClientRect","scaleFactor","finalscale","getViewport","canvasContext","getContext","renderContext","updateTextLayer","textLayer","canvasRect","getTextContent","textContent","PDFJS","renderTextLayer","container","textDivs","zoom","delta","parentElement","onMounted","onBeforeUnmount","reviewed","labelPosition","arrayValue","wrappedModel","_i","$$a","$$el","$$c","checked","$$i","replaceFirstLetters","str","toCamelCase","firstLetter","toPascalCase","formatList","arr","terms","oxfordComma","last","popper","isDropdownOpen","hasDropdown","toggleDropdown","down","dropdownLocation","up","badge","delay","delayClosing","hasNotification","debounceTimer","kebabCase","$scopedSlots","dropdown","hasLabel","placeDropdown","closeOnOutsideClick","contains","msDelay","buttonCenter","offsetLeft","clientWidth","isNearCenter","isInLeftHalfOfWindow","placement","createPopper","modifiers","_detect","detect","os","mobileOperatingSystems","platform","maxTouchPoints","supports","tester","createObjectURL","revokeObjectURL","worker","postMessage","scanInterval","CLINIC_AVAILABLE_CHECK_TIME","ClinicAPI","firstScanPromise","pingLocalServerStrategy","setActiveClinicUrl","hostname","scanClinicUrls","available","generateSingleViewData","slicePlaneNormal","sliceViewUp","slicePlaneXRotation","slicePlaneYRotation","flipRX","flipRY","visible","defaultViewData","defaultSeriesData","info","minutesLocked","repeatWarningMinutes","secondsUntilRelease","StatWarningDlg","timerId","keepLock","destroyed","openStatWarning","MAX_INT32","currentId","fakeToRealIdMap","setLongTimeout","fakeId","realId","clearLongTimeout","StatItem","claimDate","warningMinutes","lockWarningMinutes","lockRepeatWarningMinutes","now","LockService","items","refreshInterval","newItems","warningMS","warnTime","giveWarning","MINUTES","fetchInfo","unlock","showUnlockAlert","isAutoUnlock","filename","openFolder","savePath","getActiveDownloads","notify","bytesReceived","fileSize","bytes","units","powerOfTen","min","pow","toFixed","unit","msToDuration","minutes","hours","capitalize","synchronizer","sourceElement","targetElement","eventData","_store$state$viewer$a","isSourceLocalizerImage","sourceImagePlane","_objectWithoutProperties","_excluded","newImageIdIndex","stackData","shortestDistance","MAX_VALUE","imagePlane","distance","getDistance","dx","dy","dz","imageMatch","matchImageID","_store$getters$allSer","_store$getters$allSer2","findOffsetByID","getOffsetDistance","updateImageSynchronizer","cornerstoneEventsEnum","NEW_IMAGE","updateMetaDataHandledByStackScroll","customAddSource","_customAddSource","__addSource","__fireEvent","customFireEvent","isVirtual","customStackScrollFireEvent","fireEvent","AstStackImagePositionSynchronizer","AstManualStackImagePositionSynchronizer","_addListeners","_removeListeners","cornerstoneEvents","ELEMENT_ENABLED","_addEnabledElementToActiveSynchronizers","ELEMENT_DISABLED","_removeEnabledElementFromAllSynchronizers","elementEnabledEvent","_checkIsImageLoaded","elementDisabledEvent","debug","medium","StudiesDlg","StudiesListCards","ListMixin","excludeStudyIds","queryTerm","orderby","isOrderAscending","openStudiesDlg","parseAndFilterNumbers","nonDigits","args","subtract","multiply","divide","average","sqrt","ln","formatAnyNumbers","ExpType","ADD","SUM","SUB","MULT","DIV","AVG","POW","LN","SQRT","CONCAT","_prop","Expression","getDependentPaths","newPath","termRegex","newText","_parse","getExpressionErrors","_e$errors","getCharCount","char","calcErrors","hasNoArgs","firstParenIndex","substr","parenLevel","arg","end","isInSingleQuote","isInDoubleQuote","isInQuote","Method","Constant","termNoPrefix","ContextValue","Literal","ControlValue","classes","getControlTemplate","prefixes","NotFoundError","isBindingToSelf","hasBindablePath","paths","contextValue","finalizeValue","getMilliseconds","getContextValue","webpackContext","req","webpackContextResolve","getTokenUses","random","tokenUses","getTokenUseKeys","isLocalStorageSupported","resizeDebounce","_eventBus","_eventTypes","REPORT_IMAGE_COMMENT","REPORT_SAVE","REPORT_COMPLETED","RESIZE","IMAGE_CHANGE","CLEAR_ALL_DATA","LOGIN","REFRESH_REPORT","FETCH_LAYOUT_PRESET","FETCH_LEVEL_PRESETS","VIEWER_CLOSED","ANNOTATION_CLICK","MPR_ANNOTATION_CLICK","MPR_ANNOTATION_REMOVED","MPR_ANNOTATIONS_CLEARED","lastBroadcast","time","IGNORE_THRESHOLD","isReload","isEvent","_len","_key","cb","$on","$off","$once","isActive","onClick","renderer","currentSlice","xAxis","yAxis","screenCoordSliceIntersection","shouldAnimate","onRotate","onThickness","onMoveAxis","onWheel","viewColor","onToggleFullscreen","stackSliceDisplay","institutionName","acquisitionTime","wwwc","compass","vtkMouseCameraTrackballZoomManipulator","publicAPI","classHierarchy","onButtonDown","interactor","previousPosition","getView","getSize","camera","getActiveCamera","flipDirection","getParallelProjection","zoomScale","getClippingRange","setParallelScale","getParallelScale","cameraPos","getPosition","cameraFp","getFocalPoint","norm","getDirectionOfProjection","tmp","getFreezeFocalPoint","setFocalPoint","setPosition","resetCameraClippingRange","getLightFollowCamera","updateLightsGeometryToFollowCamera","dyf","dolly","DEFAULT_VALUES","extend","initialValues","macro","vtkCompositeMouseManipulator","vtkCompositeCameraManipulator","setGet","newInstance","vtkMouseCameraTrackballPanManipulator","pos","lastPos","camPos","fp","orthogonalizeViewUp","getViewUp","vpn","getViewPlaneNormal","vtkMath","getInteractorStyle","focalDepth","computeWorldToDisplay","worldPoint","computeDisplayToWorld","lastWorldPoint","newCamPos","newFp","resetClippingOnMove","toWindowLevel","low","high","toLowHighRange","lower","upper","clamp","vtkInteractorStyleMPRSlice","scrollManipulator","vtkMouseRangeManipulator","scrollEnabled","dragEnabled","cache","sliceNormal","sliceRange","sliceCenter","setManipulators","removeAllMouseManipulators","addMouseManipulator","updateScrollManipulator","getSliceRange","removeScrollListener","setScrollListener","getSlice","scrollToSlice","cameraSub","interactorSub","superSetInteractor","setInteractor","unsubscribe","getCurrentRenderer","onModified","modified","onAnimation","setThicknessFromFocalPoint","slabThickness","setVolumeActor","volume","volumeActor","setFreezeFocalPoint","getSliceNormal","transform","vtkMatrixBuilder","buildFromDegree","rotateFromDirections","cameraOffset","oldPos","slicePoint","setSlice","getOnScroll","bounds","getMapper","getBounds","clampedSlice","dop","normalize","midPoint","zeroPoint","points","boundsToCorners","pt","minX","Infinity","maxX","setSliceNormal","normal","viewUp","_normal","_viewUp","dist","getViewAngle","diagonal","distance2BetweenPoints","tan","PI","setDistance","setDirectionOfProjection","setViewUp","setViewAngle","setCenterOfRotation","resetCameraPosition","resetCamera","setSlabThickness","getWindowLevel","getProperty","getRGBTransferFunction","getMappingRange","setWindowLevel","lowHigh","setMappingRange","vtkInteractorStyleManipulator","vtkWindowLevelManipulator","getVolumes","getInputData","getPointData","getScalars","getRange","imageDynamicRange","multiplier","getLevelScale","mappingRange","_toWindowLevel","onLevelsChanged","getOnLevelsChanged","levelScale","vtkCrosshairManipulator","onClickCallback","getOnClickCallback","dPos","vtkCoordinate","setCoordinateSystemToDisplay","setValue","worldPos","getComputedWorldValue","displayPos","vtkAnnotationManipulator","lastPosition","getMouseInterface","getToolName","onButtonUp","mouseInterface","vtkStackScrollManipulator","MPRSliceInteractor","getMPRSliceInteractor","isA","devicePixelRatio","vtkRotateSliceManipulator","onRotateCallback","getOnRotateCallback","screenDensity","arbitraryScale","TOOL_MAP","_TOOL_MAP","START_INTERACTION_EVENT","END_INTERACTION_EVENT","manipulators","vtkInteractorStyleMPR","isEraser","buttonName","resetManipulators","manipBtn","manipulator","vtkGestureCameraManipulator","pinchEnabled","panEnabled","rotateEnabled","setInteractorStyle","addGestureManipulator","setTools","toolMap","setTool","clearTool","setLevelScale","setOnLevelsChanged","setOnClickCallback","res","onPointSelected","getOnPointSelected","setMPRSliceInteractor","setFlipDirection","setOnRotateCallback","getOnSliceRotated","setArbitraryScale","onRoll","getOnViewRolled","setToolName","inter","getAnnotationInterface","setMouseInterface","superHandleLeftButtonPress","handleLeftButtonPress","callData","invokeStartInteractionEvent","superHandleLeftButtonRelease","handleLeftButtonRelease","currentManipulator","invokeEndInteractionEvent","superHandleMiddleButtonPress","handleMiddleButtonPress","superHandleMiddleButtonRelease","handleMiddleButtonRelease","superHandleRightButtonPress","handleRightButtonPress","superHandleRightButtonRelease","handleRightButtonRelease","isFullscreen","inject","cameraDirection","mprManager","borderStyle","borderWidth","colorStyle","viewBox","annotation","groupId","draggingAll","activeColor","drag","setHandleRadius","statText","textSource","standardDeviation","avg","squareDiffs","avgSquareDiff","uuid","dragColor","worldCoords","handleRadii","stats","statsVisible","statTemplate","origRotation","hovered","translating","effectiveRotation","effectiveRotationRads","manager","activeAnnotation","hasPoints","pointsList","pointerPosition","pointsListNorm","rotatePoint","NaN","minXNorm","maxXNorm","minY","minYNorm","maxY","maxYNorm","topLeft","topRight","bottomLeft","bottomRight","centerNorm","worldCenter","displayToWorld","widthNorm","heightNorm","hasSize","tolerance","radiusX","worldRadiusX","worldDistance","radiusY","worldRadiusY","radius","worldRadius","diameter","worldDiameter","oldVal","deltaX","deltaY","handleOffsets","point","area","conditionalStatTemplate","statsDisabled","isString","draggingAny","modalityUnit","diameterX","diameterY","mean","stdDev","groupStyle","filterStyle","strokeStyle","cursor","stroke","strokeWidth","strokeOpacity","fillOpacity","strokeHitTargetStyle","fill","pointerEvents","zIndex","fillStyle","fillHitTargetStyle","textStyle","fontFamily","fontWeight","userSelect","refreshStats","refreshCoords","addAnnotationToGroup","removeAnnotationFromGroup","initDragState","onInteractionBegin","onInteractionUpdate","onInteractionEnd","onViewportModified","fromWorldToDisplay","forKey","refreshing","worldToDisplay","_this$manager","_this$manager2","displayDistanceBetween","_this$manager3","worldDistanceBetween","_this$manager4","_this$manager5","handle","worldDistanceToDisplay","_this$manager6","digits","getCollinearPoint","p1","p2","pDistance","x1","y1","x2","y2","xu","yu","getCornerPoints","rads","cos","sin","getVoxelStats","fnInsideBounds","pointInsideBounds","voxelValues","getVoxelValuesInBounds","findMin","findMax","getTextAnchorData","anchorAlign","pointBetween","pointAligned","align","alignPoint","alignTop","alignBottom","alignLeft","alignRight","hasVerticalAlign","hasHorizontalAlign","getDisplayBoundsVectors","origin","horizontal","vertical","_this$getDisplayBound","_this$manager$display","z1","_this$manager$display2","z2","_this$manager$display3","x3","y3","z3","vec3","fromValues","horizontalVec","verticalVec","hDist","sqrLen","vDist","hStep","vStep","worldGrid","copy","getVoxelIndexFromWorldCoord","uniq","voxelIndex","getVoxelValueFromIndex","baseMixin","middle","p3","p4","_this$getRotatedPoint","getRotatedPoints","effRot","p1Rotate","p3Rotate","midPoints","cornerPoints","anchor","alignVertical","_baseMixin","startEndMixin","_startEndMixin","startMiddleEndMixin","_startMiddleEndMixin","quadMixin","_quadMixin","dragState","ready","_handles","desktop","displayRadius","hitRadius","precision","mobile","dragOnLoad","minDragTime","minDragDistance","showPrecision","originDateTime","precisionActive","draggingOnLoad","handleActive","activeHandleId","isReady","isDragging","xDragDistance","yDragDistance","handleStyle","handles","startDragging","updateDrag","endDrag","togglePrecisionActive","draggedMinDistance","dragDistance","draggedMinTime","renderHandle","cx","cy","children","hasSlot","dragId","nearestPositionOnRect","onDragInput","onDragEnd","textPosition","textWidth","textHeight","onDoubleClick","tv","lineHeight","DragAnnotation","eventSource","editable","textHasPrompted","detached","eventSource_","isFree","_this$eventSource_","_ref$alignVertical","getNearestPositionOnRect","textValues","showConnectorLine","rectStyle","lineStyle","onSourceTranslate","onSourceResize","refreshDimensions","adjustToAnchorPoints","promptForAnnotationText","_this$position","_this$eventSource_$ge","getPointClosestToRect","fromPoint","rectPosition","rectWidth","rectHeight","bbox","getBBox","TextAnnotation","worldWidth","worldHeight","updateStart","updateEnd","CrosshairsAnnotation","crosshairStyle","configureFromPoint","promptForDiameter","defaultDiameter","updateDiameter","validateDiameter","displayDiameter","_map","_map2","pnt","rx","ry","arcPath","onMiddleDragEnd","arcRadius","padding","minRadius","maxRadius","distanceStartMiddle","distanceMiddleEnd","arcStart","arcEnd","vectorMS","vectorME","v1","v2","radians","atan2","smallAngle","lineStyleSM","lineStyleME","arrowHeadWidth","arrowHeadHeight","arrowHeadTransform","hasPrompted","arrowHeadTransformOrigin","arrowHeadStyle","transformOrigin","arrowHeadHitTargetStyle","atan","hoveredVoxelValue","_this$pointerPosition","vox","getVoxelValueFromScreenCoord","provide","renderWindow","subscribedEvents","hoveredAnnotation","annotations","LengthAnnotation","RectAnnotation","CircleAnnotation","EllipseAnnotation","AngleAnnotation","ArrowAnnotation","ProbeAnnotation","refreshHoveredAnnotation","ca","componentRef","deleteAnnotation","getRenderWindow","getInteractor","subscribeToEvents","unsubscribeFromEvents","onCameraModified","onInteractorMouseMove","createAnnotation","deregisterAnnotationEvents","annotationGroup","registerAnnotationEvents","first","getAnnotationsAtPoint","canvasToSvg","interactionTool","_this$tools$find","onAnnotationDraggingAny","onAnnotationDraggingAll","annotationClick","onAnnotationDelete","dp","_ref4$type","_ref4$children","_this$displayToViewpo","displayToViewport","elements","elementsFromPoint","msElementsFromPoint","nodesArray","groupAnnotation","rect","pageXOffset","pageYOffset","registerEvent","deregisterEvent","eventName","ratio","_ref6$x","_ref6$y","_ref6$z","_this$interactor$getV","_this$interactor$getV2","wx","wy","wz","_ref7$x","_ref7$y","_ref7$z","_this$interactor$getV3","_this$interactor$getV4","d1","d2","world1","world2","mx","my","getVoxelIndexFromScreenCoord","len","getData","_this$displayToWorld","xyz","worldToIndex","getExtent","computeArrayIndex","ix","iy","iz","incs","incr","svgClass","onMove","endMove","isTouch","startAction","viewTransform","yTransform","maxLength","resetAxisRotation","mousedown","invertAngle","touch","circlePos","yThicknessPixels","squarePos","xTransform","xThicknessPixels","degrees2radians","radians2degrees","lockAxis","shiftToUnlockAxis","axisOffset","hasData","yStyle","minLength","captureMouse","rotateCursor","thicknessCursor","axisCursor","animate","shiftKey","isX","endsWith","targetTouches","pageX","pageY","mouseX","mouseY","newPos","vec2","rotate","glMatrix","toRadian","nx","ny","DEADZONE","axis","rot","createSub","sub","newSub","ViewportOverlay","AnnotationManager","MPRInteractor","views","parallel","sliceIntersection","onCreated","onDestroyed","showAxis","volumes","subs","rotationFlipped","allAxesData","recalculateAxes","setupVolumeFromData","updateVolumesForRendering","updateSlicePlane","istyle","updateBlendMode","setParallelProjection","updateSliceDisplay","updateCompass","updateScreenCoordIntersection","genericRenderWindow","cachedSlicePlane","cachedSliceViewUp","vtkGenericRenderWindow","background","setContainer","getRenderer","oglrw","getOpenGLRenderWindow","buildPass","onResize","annotationInterface","annotationManager","_component","WheelEvent","onDblClick","screenThickness","_this$screenCoordSlic","wPos","resize","offsetWidth","offsetHeight","vtkVolume","volumeMapper","vtkVolumeMapper","setInputData","setMapper","getSpacing","sampleDistance","setSampleDistance","setMaximumSamplesPerRay","removeAllVolumes","addVolume","_sliceNormal","sliceXRotVector","cross","sliceYRotVector","FUDGE","rotX","rotY","dirX","dirY","xQuat","quat","setAxisAngle","yQuat","transformQuat","viewRotQuat","invertOrientationString","cameraDir","cameraUp","transformMat3","cameraRight","topString","vector2RAS","rightString","bottomString","leftString","maxSlice","setBlendModeToMaximumIntensity","setBlendModeToMinimumIntensity","setBlendModeToAverageIntensity","setBlendModeToComposite","_container$style","origWidth","origHeight","fromSvg","fromCanvasImageSource","fromCanvasImage","fromSvgImageSource","fromSvgImage","captureCanvasImageSource","loadImage","drawImage","btoa","unescape","encodeURIComponent","outerHTML","capturePromises","captureImages","imgSrc","Image","generateXAxis","generateYAxis","front","convertToScreenThickness","point3d","setCoordinateSystemToWorld","canvasCoords","getComputedDisplayValue","worldThickness","newPoint","vector","_vector","orientation","orientationX","orientationY","orientationZ","MIN","onSwitch","saveComponentRefGenerator","onCrosshairPointSelected","getPlaneIntersection","plane1","plane2","plane3","vtkPlane","intersectWithPlane","intersection","l0","l1","intersectionLocation","intersectWithLine","rendering","rgbTransferFunction","nodeValue1","getNodeValue","setNodeValue","getBrowserIssues","vtkView","glRW","allInfo","getGLInformations","UNMASKED_RENDERER","UNMASKED_VENDOR","WEBGL_VERSION","strToTest","hasIssues","View2dMPR","windowLevelScale","initialSlice","initialVoi","initialized","activeViewIndex","updateLayout","checkBrowserCompatibility","registerSwitchKeyHandlers","registerResizeHandlers","switchKey","handleSwitchKeydown","handleSwitchKeyup","clearOnFocusLoss","throttle","updateSliceIntersection","leading","trailing","_this$getDefaultVoi","getDefaultVoi","manuallySetWindowLevels","onScrolled","planes","mutatedWorldPos","updateLevels","_this$scaleJpegVoiIfJ","scaleJpegVoiIfJpeg","scaledWW","scaledWC","viewportIndex","_this6$getInitialVoi","getInitialVoi","_this6$scaleDicomVoiI","scaleDicomVoiIfJpeg","_toLowHighRange","setOnScroll","levels","setOnPointSelected","setOnSliceRotated","setOnViewRolled","ceil","setAnnotationInterface","getSlabThickness","_istyle$getSliceRange","_istyle$getSliceRange2","oglCanvas","getCanvas","emitWebGLError","getVolumeCenter","_this$initialVoi","_this$defaultVoi","initialRange","_this$getDefaultVoi2","_this$scaleDicomVoiIf","_istyle$getSliceRange3","_istyle$getSliceRange4","_this$getDefaultVoi3","_this$getDefaultVoi4","activeWindow","_this$scaleDicomVoiIf2","shouldChange","invertVolumeForActiveView","activeWindowKey","manuallyReRender","moveSliceForActiveView","sliceStep","_istyle$getSliceRange5","_istyle$getSliceRange6","newSlice","dataDetails","createLabelPipeline","backgroundImageData","paintFilterLabelMapImageData","labelMapData","setDimensions","getDimensions","computeTransforms","getNumberOfPoints","dataArray","vtkDataArray","numberOfComponents","setScalars","labelMap","actor","mapper","cfun","vtkColorTransferFunction","ofun","vtkPiecewiseFunction","addRGBPoint","addPoint","setRGBTransferFunction","setScalarOpacity","setInterpolationTypeToNearest","actors","painting","paintFilterBackgroundImageData","onPaint","onPaintStart","onPaintEnd","widgetManager","vtkWidgetManager","labelmap","paint","paintStart","paintEnd","widgets","setRenderer","paintWidget","vtkPaintWidget","setRadius","paintFilter","vtkPaintFilter","setLabel","pipeline","newVolumes","prevVolumes","newActors","prevActors","addActor","newPaint","prevPaint","setBackgroundImage","newLabel","prevLabel","labelmapImageData","setInputConnection","getOutputPort","setLabelMap","newPainting","prevPainting","viewWidget","addWidget","ViewTypes","VOLUME","onStartInteractionEvent","startStroke","getWidgetState","getTrueOrigin","onInteractionEvent","getPainting","onEndInteractionEvent","endStroke","grabFocus","enablePicking","timeEnd","releaseFocus","removeWidget","disablePicking","minImages","maxOrientationDotProduct","parseMetadataValue","getImageMetadataValues","missingKeys","entry","md","camelCase","disabledReasons","minDistance","maxDistance","MIN_VALUE","_imageOrientationPati","rz","cz","dot","buildMetadata","metaDataProvider","imagePixelMetaData","metaDataMap","metaData0","imageMetaData0","imageDataCache","vec3FromObject","sortDatasetsByImagePosition","scanAxisNormal","imageMetaDataMap","datasets","referenceDataset","refIppVec","distDataPairs","dataset","ippVec","positionVector","uniqueDistDataPairs","dataPair","spacemap","highestSpacing","space","gap","sortedDatasets","filledArray","withinCompare","d0","displaySetInstanceUid","cachedImageDataObject","pixelArray","_buildMetadata","rowCosineVec","colCosineVec","_sortDatasetsByImageP","xSpacing","ySpacing","zSpacing","xVoxels","yVoxels","zVoxels","signed","multiComponent","Float32Array","scalarArray","setSpacing","setOrigin","imageDataObject","dimensions","insertSlice","sliceIndex","modalitySpecificScalingParameters","scalars","scalarData","scalingFunction","_getScalingFunction","pixels","getPixelData","pixelIndex","step","destIdx","pixel","pixelValue","slope","intercept","patientWeight","correctedDose","modalityPixelValue","loadImageDataProgressively","loadImagePromises","loadAndCacheImage","NEGATIVE_INFINITY","POSITIVE_INFINITY","numberProcessed","reRenderFraction","reRenderTarget","insertPixelData","_metaDataMap$get","_insertSlice","setRange","_windowWidth","_windowCenter","directive","CustomEvent","isParsing","allowAttachments","showFolderAndFileUpload","canUploadFolder","uploadType","clickFileInput","clickFolderInput","browseMessage","isInternetExplorer","fileInput","files","isWholeFormClickable","checkForIE","selectFiles","dropTarget","HTMLDivElement","allowDicoms","allowJpegs","showFolderDropWarning","hasPendingDicoms","uploads","u","pendingBatch","previousTarget","toggleDropListeners","HTMLInputElement","folderInput","webkitdirectory","isAdding","addOrRemove","setIsDragging","setIsNotDragging","dropFiles","toggleIsDragging","click","queueUploads","getFilesFromDroppedItems","fileList","includesFolder","queueFilesForUpload","allowImages","startUpload","folderReadQueue","kind","fileSystemEntries","getEntries","getAsFile","filesInFolders","getAsEntry","webkitGetAsEntry","isFile","isDirectory","entryReader","createReader","readEntries","iterateEntry","entryFiles","_binding$value","startX","startY","initialMouseX","initialMouseY","handleElements","handleSelector","customHandleEls","move","touches","evtData","clientX","clientY","Router","routes","linkActiveClass","linkExactActiveClass","scrollBehavior","savedPosition","beforeEach","afterEach","themeSettings","OmniOrCommunity","Addendum","AddedBy","sample","Message","DateTime","ImageComment","AcquisitionDate","Anatomy","Comment","EditDateTime","Limb","View","Age","PDF","PageNumber","TotalPages","getPreviewContext","exclude","getMetaSample","metaItem","ResidentResponseStatus","ReportService","prevRoute","openLayouts","activeCell","selLayout","selCell","selTool","fieldMap","formulas","undoStack","redoStack","savedState","dragCell","validateDbounce","validateTemplateSet","getLayoutObj","setId","setJson","setStatus","stateSnapshot","canPaste","snapshot","MAX_STATES","previousState","restoreState","nextState","getTemplateFromId","getLayoutFromObj","selectLayout","toISOString","responseType","Accept","closeTemplate","_latestMetaVersion","loadFromStdReport","createReport","isImageOnly","isMultipleResidentWorkflow","saveTemplateSet","loadPartnerFields","editableLayouts","validTemplates","invalidTemplates","invalidLayouts","category","notTemplateRoot","responseId","aVer","bVer","hasHeader","barInlineStyle","editor","editorConfig","onReady","onEditorInput","content","spaceToUnderscore","Presets","_Plugin","presetsOptions","editPresets","componentFactory","dropdownView","createDropdown","buttonView","tooltip","withText","Collection","ViewModel","addListToDropdown","_evt$source","insertPresetText","change","writer","viewFragment","processor","toView","modelFragment","toModel","insertContent","Plugin","htmlToPlainTextRegex","listItemNumber","isHtmlString","trimmedStr","htmlTagRegex","htmlDetectionRegex","hasHtmlTags","isValidHtmlStructure","hasDoctype","hasHtmlRoot","hasMajorTags","htmlScore","Autocomplete","autocompleteList","testCallback","words","getLastWord","autocomplete","watcher","TextWatcher","batch","isTyping","_data$autocomplete","toX","replaces","matchedRange","changeIndex","enqueueChange","matchx","replaceWith","StylesProcessor","viewDocument","editing","htmlDP","HtmlDataProcessor","replacePosition","getShiftedBy","replaceRange","createRange","getTextAttributesAfterPosition","fragment","createDocumentFragment","paragraphNode","textNode","createText","setSelection","createPositionAt","getRoot","nodeAfter","getAttributes","endingConditions","condition","cleanedStr","ckeditor","CKEditor","toolbarOptions","autocompleteDictionary","textTransformation","ClassicEditor","licenseKey","ckeditorKey","toolbar","shouldNotGroupWhenFull","Alignment","Autoformat","AutoImage","AutoLink","Autosave","Base64UploadAdapter","BlockQuote","Bold","CloudServices","Essentials","FontSize","GeneralHtmlSupport","Heading","HorizontalLine","ImageBlock","ImageCaption","ImageInline","ImageInsert","ImageInsertViaUrl","ImageResize","ImageStyle","ImageTextAlternative","ImageToolbar","ImageUpload","Indent","IndentBlock","Italic","Link","LinkImage","List","ListProperties","Paragraph","PasteFromOffice","RemoveFormat","SpecialCharacters","SpecialCharactersLatin","SpecialCharactersText","Strikethrough","Style","Subscript","Superscript","Table","TableCaption","TableCellProperties","TableColumnResize","TableProperties","TableToolbar","TextTransformation","Underline","WordCount","supportAllValues","htmlSupport","allow","styles","attributes","initialData","properties","startIndex","reversed","menuBar","contentToolbar","isReadOnly","instance","enableReadOnlyMode","disableReadOnlyMode","createPunctuationRegex","wordCount","editorWordCountElement","wordCountContainer","modelDocument","getLastPosition","viewPosition","toViewPosition","walker","createPositionWalker","word","currentText","inputString","activeSettingView","goBack","settingView","pushSettingView","replaceSettingView","onSwitchView","viewName","viewProps","localViewProps","settingViews","conditions","Settings","setLastActiveView","isSmall","visibleSettingViews","conditionsMap","_this$$store$state$st","isConsultantOrServerAdmin","serverAdministration","isConsultantOrHasConsultantsForAdmin","isConsultantOrHasConsultants","isOmniUser","isServerAdmin","isUserAdmin","userAdministration","isSchedulingAdmin","schedulingAdmin","viewerSettingsAccess","isRepositorySubmissionViewer","reviewSubmissionViewer","isRepositorySubmissionApproval","reviewSubmissionApproval","isRepositorySubmissionSubmission","reviewSubmissionSubmission","visibleSettingsGroups","showBackButton","specificView","_this$$route$query","openSettingView","replaceRoute","checkIfShouldRecommendReload","_checkIfShouldRecommendReload","shouldReload","openSettings","windowF1","onhelp","removeOnHelp","restoreOnHelp","_keyOptionsMap","PrintScreen","current","allowedKeys","_reverseMap","acc","skipClass","_anykeyHandlers","_keyBindMapper","_isBound","_addHandler","mappedKey","onKey","_stopCallback","composedPath","initialEventTarget","isContentEditable","_lastKeyDown","_handleKeyDown","_handleKey","_handleKeyUp","getMapping","handlers","metaKey","_findMatchingKey","keyArray","mkey","wasMapped","trigger","triggered","member","startListening","stopListening","onKeypress","offKeypress","isListening","DicomPartners","SIGNALPET_IMAGEVIEW_ID","UserStudiesDlg","UserStudyTable","openUserStudiesDlg","maxDelayForDoubleClick","isDoubleClicking","excluded","openAttachment","friendlyName","closeModal","RequiredFieldsDialog","fileObject","isRepository","openRequiredFieldsDlg","openOnClick","_clinicInfo","clinicInfo","requireEndoscopicDisclosure","dateRangeText","clearValue","showTag","modalitiesThatShouldLoadDicoms","svgSpriteMap","svgContext","symbols","fromEntries","svgIcon","svg","dashToCamel","featureFlags","cleanDeprecatedFeatureFlags","featureFlag","setFeatureFlags","setFeatureFlagValue","checkFeatureFlagValues","currentFeatureFlags","getFeatureFlag","SvgSpriteMap","Loading","AstNotifications","$ga","tracker","clientId","onUsersnapLoad","userGroup","Usersnap","defer","usersnapApiKey","VueNotifications","registerModule","pageNotifications","MAX_NOTIFICATIONS","removeNotification","foundIndex","clearErrorNotifications","existingNotificationForMessage","getUTCMilliseconds","notificationTypes","0","addInfo","closeOnLogout","addSuccess","addWarning","er","isTypeDefined","isTypeNumber","canBeClosed","removeMessage","positionClass","processedMessage","closeMessage","computedStyle","checkVisibility","MessageNotification","messages","showMessage","showTemporary","clearAll","MessageService","MessageServiceClass","messageService","$message","temporary","_g","uniqueOptions","$props","calculatePosition","positionDropdown","appendToBody","_k","keyCode","slot","scope","$listeners","VueSelect","dropdownMinWidth","dropdownList","minWidth","maxHeight","toggle","ipadSize","mql","matchMedia","minWidths","addListener","gaMap","CLINIC_ID","CLINIC_CODE","OMNI_VERSION","USERNAME","IS_COMMUNITY","IS_DESKTOP","inserted","createHandleEl","handleWidth","handleOffset","handleSideZIndex","handleCornerZIndex","handleEl","touchAction","getCursor","cursorDirection","Sortable","vnode","dragElement","origIndex","dropped","doUpdate","child","draggable","ondragstart","dragStart","ondragenter","dragEnter","ondragover","dragOver","ondragend","dragEnd","ondrop","drop","getTargetIndex","cancelBubble","cur","moveItem","onItemMoved","ev","handleEls","activeHandle","addHandles","newHeight","componentUpdated","register","process","cached","updated","offline","onMouseOver","onDragEnter","subLayout","primitive","cellWarning","toolIcon","addSubLayout","selector","infoType","cityStateZip","areImageCommentsViewable","pdfColumns","editLayout","onDragOver","onDrop","ImageCommentLayoutDlg","draggingIndex","gridStyle","gridTemplateColumns","aIndex","imageReportIds","dropEffect","openImageCommentLayoutDlg","canSetLayout","isStandardReport","createSubLayouts","stuff","editDateTime","acquisitionDate","createLayoutInstance","valueMap","orig","aReportImageId","bReportImageId","unspecified","addNewAddendum","isAddendum","updateAddendumTextValue","isReportComplete","newImagesPrompt","selectExistingStudy","uploadNewStudy","canSubmit","isSaving","showAttachmentUpload","imageDrop","excludedImages","clearExcludedFiles","batchId","getUploadsInBatch","removeBatch","addStudyId","attachmentDrop","excludedAttachments","cancelOnClose","isUploading","isProcessing","UploadDlg","UploadForm","UploadItemBatch","UploadItemFile","UploadStudyForm","showImageUpload","uploadedBatchIds","excludedFiles","upload","isAttachment","batchIds","imageBatchIds","attachmentBatchIds","pendingJpegUploadCount","getPendingUploads","isImage","pendingAttachmentUploadCount","showAttachmentStudyForm","uploadContainer","CLEAR_UPLOAD_EXCLUDED_FILES","openUploadDlg","AddendumDlg","AstCheckbox","TeleconsultationThumbnails","addendumTextValue","addendumHtmlValue","newThumbnails","checkStudiesForNewImages","_yield$this$$api$view","parseForNewImages","newStudy","oldStudy","addAttachments","addThumbnails","openDialog","addStudies","_yield$this$$api$view2","isBusy","excludedSeriesIds","excludedImagesIds","studySet","addReportMessage","openAddendumDlg","fromUserDetail","addedAddendum","relatedReport","getRouteForReport","requestDate","isSaleSubmission","keywords","setSubLayout","oldWidgets","isChanging","confirmed","paddingBottom","users","showOnBehalfOfSettings","isReferredByLocked","$forceUpdate","sortBy","_this$cell$report$cli","clinicTemp","userIdTemp","originalClientId","isRequired","validateField","rules","genderList","speciesNames","restrictSpeciesList","breedList","weightUnitList","isValidWeight","BirthdateAgeInputs","speciesList","requiredFields","isAntechEnabled","getBreedList","findMatchingOption","reqFieldMap","PatientName","OwnerName","reqFields","validations","isMatch","option","studyQueryInterval","numImages","addStudy","addFiles","_m","members","outOfOfficeMessage","billingCode","showBillingCodeSettings","showSettingsLink","billingcodevalid","selectConsultantId","EmailSelect","oldValue","oldIndex","stack","isValueOverridden","cellValue","labelStyle","marginBottom","_this$cell$props","leftLabel","isRichText","_this$cell","DOMParser","parseFromString","childNodes","nodeType","_this$cell2","_this$cell2$props","fontSizes","textAlign","alignment","wordBreak","whiteSpace","isImageComment","onImageClick","isSignature","isLogo","isUserImage","base","cc","motherName","fatherName","consignerName","isSalesEntry","margin","marginLeft","Resizer","mousemoveCB","mouseupCB","stopResizing","getSelection","empty","startABPercent","rightWidth","panelWidth","startWidth","newElWidth","newRightWidth","finalW","setColumns","configureTable","flexDirection","alignItems","verticalAlignment","flexGrow","LayoutWrapper","RequestInfo","ResponseInfo","ImageComments","PatientInfo","Addendums","RelatedReports","RequestSelector","ResponseSelector","RichText","ReferredByForm","PatientForm","ImagesAttachments","Thumbnails","ConsultantSelector","PrioritySelector","ServiceSelector","BillingCodeSelector","Notifications","Dropdown","RadioGroup","CheckboxGroup","Textbox","Checkbox","ReportText","ReportDate","ReportImage","ReportDivider","PageBreak","HipNumber","ReportTable","PanelView","validationWarning","_e$calcErrors","showCornerName","adjusting","justifyContent","isEmptyPanel","EMPTY_MIN_PADDING","bold","fontStyle","italic","textDecoration","underline","alignSelf","maxwidth","maxWidth","isTableCell","r2","c2","gridArea","useCellBorders","showDashedBorder","borders","selectPropInput","propName","propInput","select","STUDY_QUERY_INTERVAL","MAX_FETCHES","FetchAxios","ImagePrecacheService","stopImagePrecache","startImagePrecache","_startImagePrecache","fetchStudies","queue","registeredImages","imageCache","isPrecacheActive","imageLoader","activeFetches","_fetchStudies","BATCH_SIZE","_studyData$studies","batchStudyIds","fetchStudyIds","_study$imageData","scheme","studyUid","seriesUid","instanceUid","sopInstanceUid","startFetching","_fetchStudyIds","startOfToday","setHours","_fetchImage","fetchImage","_startFetching","imagePrecacheService","imagePrecache","indexedDB","deleteDatabase","app","createEle","App","Cypress","__app__","generateAnalyticsConfigObject","fields","isProduction","gaPropertyTrackingId","autoTracking","exception","VUE_APP_GA_ENABLED","sendHitTask","VueGtag","VueCompositionApi","MessagePlugin","VSelect","mixin","localization","mediaMixin","productionTip","performance","$IDEXXAPI","$VetCTAPI","$VetsChoice_ClinicCode","$TELERADIOLOGY_INTEGRATION_CLINIC_CODES","increaseCornerstoneCache","x86","memoryInfo","getSystemMemoryInfo","totalMemoryKB","totalMemoryGB","cacheMaxGB","setMaximumSizeBytes","imageFrame","rgbaIndex","newPixelData","pixelData","rIndex","gIndex","ybrIndex","cr","constrain","yIndex","cbIndex","crIndex","rData","gData","bData","palIndex","rDataCleaned","convertLUTto8Bit","gDataCleaned","bDataCleaned","lut","numEntries","cleanedLUT","Uint8ClampedArray","convertRGB","convertRGBColorByPixel","convertRGBColorByPlane","convertYBRFull","convertYBRFullByPixel","convertYBRFullByPlane","convertColorSpace","convertPALETTECOLOR","getMinMax","storedPixelData","storedPixel","numPixels","MAX_WORKERS","hardwareConcurrency","DecodeWorkerInfo","task","terminateDebounce","DicomDecoder","decodeQueue","decodeDeferreds","workerPool","arrayBuffer","workersNeeded","runWorkers","deferred","workersRunning","runWorker","createWorker","nextTask","terminate","workerInfo","DecodeWorker","decodedImage","decodeError","getTypedArray","errorMessage","taskIndex","createTypedArray","isBigEndian","swap16","minPixelValue","maxPixelValue","_getMinMax","_getCornerstoneImageI2","csMetaData","isColor","isColorImage","isSigned","TypedArray","Int16Array","Uint16Array","byteOffset","INT_RANGE","newMinPixelValue","newMaxPixelValue","rescaledPixel","dicomDecoder","jpegCanvas","jpegContext","decodeJpeg","convertArrayBufferToImageElement","imageElement","getPixelDataForJpeg","renderWebImage","naturalHeight","naturalWidth","rgba","arrayBufferView","urlCreator","webkitURL","prefetchDebounce","studiesOpenWhenLastDecached","MIN_IMAGE_BYTE_LENGTH","PREFETCH_DEBOUNCER","IMAGE_DOWNLOAD_DEBOUNCER","ImageLoader","loadImageDeferreds","fetchCancelers","prefetchAsync","processTempQueue","_ref$isPrefetch","isPrefetch","_ref$isUnopenedSeries","isUnopenedSeries","loadImageDeferred","loadImagePromise","queueItem","cancelFn","tempQueue","fetchAndDecodeImage","isCacheFull","isCacheFullOfOpenStudies","clearQueue","scrolledToIndex","getCacheInfo","maximumSizeInBytes","_imageCache$getCacheI","cacheSizeInBytes","loadedCornerstoneImageIds","getLoadedCornerstoneImageIds","areOpenSeriesFullyLoaded","getPrefetchQueue","newQueueItems","prefetchFetchCount","highPriorityCount","_newQueueItems$i","pendingLoad","getImageLoadObject","removeImageLoadObject","isFetching","stopFetch","isDecoding","cachedImages","canceler","decodeImage","cornerstoneImage","createCornerstoneImage","getCornerstoneImageData","localStudies","downloadLocalImage","fetchImageFromLocalServerOrAnnex","annexImageUrl","findImageUrlByCornerstoneImageId","fetchImageUrl","validateImageArrayBuffer","localImageCache","retryCount","decodeDicom","decodeTimeInMS","isModalityLutForDisplay","getImage","voiLUT","voiLUTSequence","modalityLut","modalityLUTSequence","sizeInBytes","buffer","byteLength","decodeValues","maxVoi","minVoi","decacheInactiveStudies","allImages","decached","_imageCache$cachedIma","imageProgress","triggeredByCacheFullEvent","studiesOpen","cachedImageObjects","_store$getters","openSeries","_loop2","getCornerstoneImageIdsForSeries","queuePrioritizeWorker","QueuePrioritizeWorker","_store$getters2","canvasSeriesIds","activeImageIndexes","getActiveIndex","seriesImageIds","cachedImage","isActiveCanvas","offsetParent","cornerstoneImageIds","_getCornerstoneImageI3","_cornerstoneImageId$s","_cornerstoneImageId$s2","_getCornerstoneImageI4","onCornerstoneImageLoad","loadedImageId","csEvents","registerImageLoader","keywordSearch","searchPlaceholder","_term","keywordString","showModalityNearSearch","showConsignerSelect","isModalOpen","isDrawerOpen","filterDropdownTitle","ModalitySelect","ConsignerSelect","showResetButton","matchingPreset","Workflow","canGoNext","nextRoute","lastRoute","submitCB","haveUploadsForContext","async","disableAntechNotification","registerAntechNotificationMethods","isAntechNotificationRegistered","userClaims","initializeInactivityTimeout","enableInactivityTimeout","stopInactivityTimeout","onblur","resetTimer","onfocus","onclick","startTimer","inactivityTimeout","redirectToAfterLogin","redirectToLogin","ifAuthenticated","canRedirectToAfterLogin","ifAuthenticatedAsRepository","ifAuthenticatedWithSaleSubmissionPermissions","guidRegex","addConsultantIfLoggedIn","getStudyIds","statisticsUserRoutes","ifValidStatisticsUser","isArqana","isCosAnnex","fullPath","hasMatchingUserType","userType","hasValidRouteForUserType","defaultRoute","restartRequestOnReload","ConsignerStudyList","ConsignerStudyViewer","ConsultationRequestViewer","ListLayout","Login","Statistics","StatisticsConsignerClients","StatisticsSubmissions","StatisticsSummaries","StatisticsViewingLog","StudyList","SignalPET","SwitchingClinics","Schedule","ReleaseNotesFull","StdReport","TeleconsultationDetail","SaleSubmission","ImageOnlyReport","TeleconsultationList","TeleconsultationRequest","TeleconsultationRequestConsultants","TeleconsultationRequestSaleHip","TeleconsultationRequestUploadConsultation","TeleconsultationImageUploads","TeleconsultationRequestUploadSale","TeleconsultationRequestMatchImages","TeleconsultationRequestSubmitImageOnly","TeleconsultationRequestSubmitReport","TeleconsultationRequestSubmitSale","PostDicomServiceInstall","ReportEditor","Viewer","ReportDeepSearch","RepositoryReviewList","RepositoryReviewDetails","RepositoryReviewViewer","RepositoryReviewDashboard","redirect","isForgotPasswordFormVisible","isResetPasswordFormVisible","enforcePasswordComplexity","epc","isRegistrationFormVisible","themeCompany","beforeEnter","showBack","hideMenu","viewOnOpen","isTeleconsultation","disableSwitchClinics","showServicePromo","allowHangingProtocol","optedForPartnerViewer","shareRequestId","shareRecipientId","showClientManager","DICOM_STATUS_TIME","MAX_UPDATES","DicomSendItem","queueItemId","imagesSent","totalImages","dateQueued","DicomSend","getUserItems","updateCount","forceUpdates","pendingCount","updateList","_updateList","stopUpdates","getSendItemInfo","validateAeTitle","aeTitle","userAeTitle","enabledUpdates","dicomSend","selectedTemplate","canShowResponse","canSelect","isTop","isMiddle","isBottom","isLeft","isCenter","isRight","alignStyle","dicomServiceRefreshInterval","localServiceStatusInterval","NO_SERVICE_INTERVAL_MS","HAS_SERVICE_INTERVAL_MS","DicomServiceData","dicomServices","isLocalServicePaused","firstStatusPromise","getServices","startServicePolling","getLocalStatus","stopServicePolling","localService","webServerPort","recentErrors","intervalDuration","checkinMS","isWindows","isOSX","x64","dicomFolder","regToken","hadDicomServices","hasLocalConnection","localServiceUrl","paused","ok","Id","localAeTitle","remoteAeTitle","omni","years","onInput","calculateBirthdate","months","days","showLabels","calculateAge","getDaysInMonth","yearCarry","daysInMonth","monthCarry","monthIndex","daysInFeb","maxWorkers","parseQueue","DicomParseWorker","startWorkers","parseDicom","UploadBatch","Upload","singleFileBatch","isFailedUpload","isUploaded","isInvalid","excludeJpegs","attempts","parseWarning","accessionNumber","referringPhysiciansName","treatImageAsAttachment","_dicomParsePromise","maxImagesPerStudy","uploadQueue","UploadData","MAX_ATTACHMENT_SPACE","MAX_FREE_ATTACHMENT_SPACE","isPending","didNotFail","isNotPending","isDifferentContext","uploadsToChange","isDupe","applyLastStudyUidToAttachments","batches","pendingUploads","checkImageLimit","batchMap","pendingUpload","hasRequiredInfo","found","_getMostRecentStudyUid","createUploadBatch","setUploadQueue","confirmNavigation","stopUploadWorkers","isInBatch","sopInstanceUids","CANCEL_UPLOAD","existingUploadInStudy","form","queueSize","UPDATE_UPLOAD","concurrentUploads","createMessageForWorker","getThrottleTime","isAnyWorkerRunning","UploadWorker","__rest","handleUploadError","doNotCompress","originalFile","returnValue","CONFIRM_RULE","VField","dependencies","VueValidator","ruleList","getRuleList","applyRules","other","ruleStrings","parseRule","addField","validateRule","getError","vmodel","addHtmlField","fname","showClose","dataColumnName","isUndefined","showInSelector","classStr","styleStr","dataColumnType","isVisibleCondition","showInSelectorCondition","_warning","activeDownloads","_warning2","visibility","masks","maxDate","allowClear","inputProps","inputEvents","paddingLeft","clearDate","VDatePicker","inheritAttrs","allowFutureDates","endOfDay","dates","highlight","fillMode","weekdays","refreshMaxDate","fiveMinutes","getTomorrow","prewrap","isHtml","showEditorSample","textEditorValue","editingPresets","updateValue","useCKEditor","presetItems","selectPreset","sampleText","defaultFontSize","selectedPreset","xLarge","selectable","selectStudy","isStudyArchived","goToStudy","importDate","attachmentDescription","imagesArchived","hasImagesRegistered","hasTeleconsultationReport","viewErrors","ProgressBar","refreshUploadsInterval","uploadingStudyIds","currentUploads","previousUploads","refreshUploads","not_sent","yesterday","getStudiesById","getStudies","RULES","Validator","rule","REQUIRED","NUMERIC","GREATERTHANZERO","EMAIL","DATE","MINVALUE","CONFIRMED","COMPLEXITY","argnum","categoriesPassed","StudyData","patientBirthDate","getStudyAvailable","queryToken","isISOString","hasTimeZone","getTimeZoneOffset","YYYY","MM","DD","offsetDifference","setMinutes","oneYearAgo","setFullYear","oneMonthAgo","setMonth","startOfLastMonth","setDate","endOfLastMonth","startOfThisMonth","endOfThisMonth","oneWeekAgo","startOfLastWeek","getDay","endOfLastWeek","startOfThisWeek","endOfThisWeek","startOfYesterday","endOfYesterday","startOfTomorrow","endOfTomorrow","endOfToday","All","Year","LastMonth","ThisMonth","LastWeek","ThisWeek","Tomorrow","tomorrow","dateDifferenceInMonths","addMonths","clickable","closeOnOverlayClick","noOverlay","onOverlayClick","closeOnEscape","handleEscape","overflow","modalOverlay","FileError","BrowserImageCache","allocatedSize","availableSize","asterisDir","requestedBytes","imageCacheSizeKey","imageCacheActiveKey","imageCachePrecacheActiveKey","requestFileSystem","webkitRequestFileSystem","persistentStorage","webkitPersistentStorage","getDirectorySize","dir","reader","allSettled","sizePromises","sp","lastRequestedBytes","requestQuota","grantedBytes","PERSISTENT","fs","getDirectory","shouldCache","setImage","getImageDirPath","getFile","getImageFileName","fileEntry","fileError","createWriter","fileWriter","onwriteend","removeRecursively","refreshMeta","DesktopImageCache","directoryPath","loadingCount","browseDirectory","observable"],"mappings":"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ACA,KACA,KACA,OACA,MACA,MACA,MACA,MACA,OACA,MACA,OAEK0kD,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,KAAM,MAAO,OAChEC,EAAgB,CACrB,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,OAEKC,EAAM,CACX,MACA,MACA,OACA,QACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,QACA,MACA,MACA,OACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,QAEKC,EAAM,CAAC,MAAO,MAAO,OAAQ,KAAM,MAAO,OAAQ,OAAQ,QAE1DC,EAAqB,GAAH/3F,OAAO03F,EAAYzkD,EAAU2kD,EAAkBC,EAAQF,EAAWG,GAEpFE,EAAkB,CAAC,MAAO,OAAQ,MAAO,MAAO,MAAO,QAGvDC,EAAyB,CAC9B,QACA,MACA,OACA,cACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,MACA,SACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,SACA,MACA,MACA,OACA,UACA,OACA,UACA,SACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,KACA,MACA,OACA,OACA,OACA,OACA,MACA,SACA,MACA,SACA,OACA,OACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OACA,MACA,MACA,MACA,KACA,MACA,MACA,WACA,MACA,KACA,MACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,QAGKC,EAAe,SAAAvwD,GAAI,OACxBA,EAAKjuC,KACHma,MAAM,KACNy1B,MACAhvB,eAEI,SAAS69E,EAAqBxwD,GACpC,IAAMywD,GAAkBzwD,EAAKjuC,KAAKyE,SAAS,KAC3C,GAAIi6F,EAAgB,OAAO,EAC3B,IAAMjvD,EAAY+uD,EAAavwD,GAC/B,OAAOowD,EAAmB55F,SAASgrC,GAG7B,SA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","file":"js/app.a300ff5fb5f671601cd8.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"HotkeyConfiguration\":\"HotkeyConfiguration\",\"PostDicomServiceInstall~ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayou~349ea425\":\"PostDicomServiceInstall~ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayou~349ea425\",\"PostDicomServiceInstall\":\"PostDicomServiceInstall\",\"ReportEditor~Viewer~autoCompleteSettingView~consignerStudyViewer~consultationRequestViewer~listLayou~6d18e22d\":\"ReportEditor~Viewer~autoCompleteSettingView~consignerStudyViewer~consultationRequestViewer~listLayou~6d18e22d\",\"ReportDeepSearch~Viewer~consignerStudyViewer~consultationRequestViewer~repositoryReviewViewer~studyL~7ee153d4\":\"ReportDeepSearch~Viewer~consignerStudyViewer~consultationRequestViewer~repositoryReviewViewer~studyL~7ee153d4\",\"ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayout~repositoryReviewViewer~dbd5d70d\":\"ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayout~repositoryReviewViewer~dbd5d70d\",\"Viewer\":\"Viewer\",\"consignerStudyViewer\":\"consignerStudyViewer\",\"consultationRequestViewer\":\"consultationRequestViewer\",\"repositoryReviewViewer\":\"repositoryReviewViewer\",\"studyList\":\"studyList\",\"ReportEditor\":\"ReportEditor\",\"componentUploadStudyForm\":\"componentUploadStudyForm\",\"listLayout\":\"listLayout\",\"teleconsultationsRequest\":\"teleconsultationsRequest\",\"ReportDeepSearch~teleconsultationDetail~teleconsultationList\":\"ReportDeepSearch~teleconsultationDetail~teleconsultationList\",\"ReportDeepSearch\":\"ReportDeepSearch\",\"SaleSubmission~teleconsultationList\":\"SaleSubmission~teleconsultationList\",\"teleconsultationList\":\"teleconsultationList\",\"teleconsultationDetail\":\"teleconsultationDetail\",\"autoCompleteSettingView\":\"autoCompleteSettingView\",\"login\":\"login\",\"SaleSubmission\":\"SaleSubmission\",\"ViewerConfiguration\":\"ViewerConfiguration\",\"WorkstationView\":\"WorkstationView\",\"billingCodesSettingView\":\"billingCodesSettingView\",\"componentUploadItemBatch\":\"componentUploadItemBatch\",\"componentUploadItemFile\":\"componentUploadItemFile\",\"consignerStudyList\":\"consignerStudyList\",\"pdfjsWorker\":\"pdfjsWorker\",\"pluginVueNotifications\":\"pluginVueNotifications\",\"reportsSettingView~teleconsultationSettingView\":\"reportsSettingView~teleconsultationSettingView\",\"reportsSettingView\":\"reportsSettingView\",\"teleconsultationSettingView\":\"teleconsultationSettingView\",\"repositoryReviewDashboard\":\"repositoryReviewDashboard\",\"repositoryReviewDetails\":\"repositoryReviewDetails\",\"repositoryReviewList\":\"repositoryReviewList\",\"repositorySubmissionSettingView\":\"repositorySubmissionSettingView\",\"statistics\":\"statistics\",\"statisticsConsignerClients\":\"statisticsConsignerClients\",\"statisticsSubmissions\":\"statisticsSubmissions\",\"statisticsSummaries\":\"statisticsSummaries\",\"statisticsViewingLog\":\"statisticsViewingLog\",\"teleconsultationsRequestConsultants\":\"teleconsultationsRequestConsultants\",\"teleconsultationsRequestMatchImages\":\"teleconsultationsRequestMatchImages\",\"teleconsultationsRequestSaleHip\":\"teleconsultationsRequestSaleHip\",\"teleconsultationsRequestSubmitImageOnly\":\"teleconsultationsRequestSubmitImageOnly\",\"teleconsultationsRequestSubmitReport\":\"teleconsultationsRequestSubmitReport\",\"teleconsultationsRequestSubmitSale\":\"teleconsultationsRequestSubmitSale\",\"teleconsultationsRequestUploadConsultation\":\"teleconsultationsRequestUploadConsultation\",\"teleconsultationsRequestUploadSale\":\"teleconsultationsRequestUploadSale\",\"componentCineDialog\":\"componentCineDialog\",\"componentDicomTagsDrawer\":\"componentDicomTagsDrawer\",\"componentMprViewer\":\"componentMprViewer\",\"componentViewerActionsDrawer\":\"componentViewerActionsDrawer\",\"componentViewerAddRelatedStudy\":\"componentViewerAddRelatedStudy\",\"componentViewerContextMenu\":\"componentViewerContextMenu\",\"componentViewerImageScroll\":\"componentViewerImageScroll\",\"componentViewerToolHelp\":\"componentViewerToolHelp\"}[chunkId]||chunkId) + \".\" + {\"HotkeyConfiguration\":\"cc89351476ecebff1627\",\"PostDicomServiceInstall~ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayou~349ea425\":\"eb37f652c132f3cfa308\",\"PostDicomServiceInstall\":\"cefc0ad55c637662bac7\",\"ReportEditor~Viewer~autoCompleteSettingView~consignerStudyViewer~consultationRequestViewer~listLayou~6d18e22d\":\"05253fdb154adf341ca2\",\"ReportDeepSearch~Viewer~consignerStudyViewer~consultationRequestViewer~repositoryReviewViewer~studyL~7ee153d4\":\"2f3ec728c91c4229c36a\",\"ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayout~repositoryReviewViewer~dbd5d70d\":\"342e789e957d53cd092c\",\"Viewer\":\"8377b77f63a0e4077983\",\"consignerStudyViewer\":\"17c76fae902831b4414b\",\"consultationRequestViewer\":\"0744aba8b9960ad54987\",\"repositoryReviewViewer\":\"5fd00e7962e1153326c8\",\"studyList\":\"2b71317abbac72c0f24d\",\"ReportEditor\":\"715e2829bf0cedc3d781\",\"componentUploadStudyForm\":\"2f60d0526762a54158f6\",\"listLayout\":\"b4d5b0dcf4b71f27f214\",\"teleconsultationsRequest\":\"55545e56dfc32b137363\",\"ReportDeepSearch~teleconsultationDetail~teleconsultationList\":\"f67f09bcae741ef869ee\",\"ReportDeepSearch\":\"59fe25411a896be1b801\",\"SaleSubmission~teleconsultationList\":\"743b314a8b26d122003e\",\"teleconsultationList\":\"3c06da8fd662a71a6e9c\",\"teleconsultationDetail\":\"f30ed5326c19ea627d20\",\"autoCompleteSettingView\":\"4db9219059452e5e885b\",\"login\":\"df843f0a10b70308d424\",\"SaleSubmission\":\"100238e7d3ba70d18ef4\",\"ViewerConfiguration\":\"4005bf5a32f88e386177\",\"WorkstationView\":\"8851975d1e584495fab8\",\"billingCodesSettingView\":\"0a50a258a5a958461797\",\"componentUploadItemBatch\":\"c3646ece7e0b32fc1504\",\"componentUploadItemFile\":\"b6a732dd37ae848cbb20\",\"consignerStudyList\":\"a3ac71fd103cbe77d8f7\",\"pdfjsWorker\":\"2e661a6e67034635907c\",\"pluginVueNotifications\":\"9e72e5e262e57747c697\",\"reportsSettingView~teleconsultationSettingView\":\"d9f7d2c57906acb456a1\",\"reportsSettingView\":\"c19fdcd228cb7ca1fcb0\",\"teleconsultationSettingView\":\"1cd6c817d9a209dbaf95\",\"repositoryReviewDashboard\":\"fe15b18c2424e2c9f8ad\",\"repositoryReviewDetails\":\"c74df217fa08bc42a16a\",\"repositoryReviewList\":\"a92346d253e5962384cc\",\"repositorySubmissionSettingView\":\"934d61a587cd659a41f6\",\"statistics\":\"28d2bdac59adac8b01a4\",\"statisticsConsignerClients\":\"be42fd7f4ca4eed1956e\",\"statisticsSubmissions\":\"39d44a8c2ae03d7d9cd2\",\"statisticsSummaries\":\"4599381ce0ea43de067c\",\"statisticsViewingLog\":\"c05cb3a0ef53e4f72ca0\",\"teleconsultationsRequestConsultants\":\"30d98b5b799b531fec25\",\"teleconsultationsRequestMatchImages\":\"11ddd2ed012d35b610b2\",\"teleconsultationsRequestSaleHip\":\"b37f6a0f97ec9630ff4d\",\"teleconsultationsRequestSubmitImageOnly\":\"6c4f6b21e38f136f0031\",\"teleconsultationsRequestSubmitReport\":\"b269912e6e67fd313d0a\",\"teleconsultationsRequestSubmitSale\":\"f6b36dac7a5d3575e157\",\"teleconsultationsRequestUploadConsultation\":\"3f5578bd0696231bdc6a\",\"teleconsultationsRequestUploadSale\":\"0530b7f8a10419c16025\",\"componentCineDialog\":\"dbc9f756f5b9ba48cecb\",\"componentDicomTagsDrawer\":\"6cf88a10a895f590d4b5\",\"componentMprViewer\":\"d9d460512dc7c9f384e0\",\"componentViewerActionsDrawer\":\"7f80cec5743efddb7d25\",\"componentViewerAddRelatedStudy\":\"5f3df433bdf1aaad7ccc\",\"componentViewerContextMenu\":\"c94ee9cd90bf2cc15bdf\",\"componentViewerImageScroll\":\"bf3db78f356e165bc30b\",\"componentViewerToolHelp\":\"0d8d2edc46623e2b513d\"}[chunkId] + \".bundle.js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"HotkeyConfiguration\":1,\"PostDicomServiceInstall~ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayou~349ea425\":1,\"PostDicomServiceInstall\":1,\"ReportEditor~Viewer~autoCompleteSettingView~consignerStudyViewer~consultationRequestViewer~listLayou~6d18e22d\":1,\"ReportDeepSearch~Viewer~consignerStudyViewer~consultationRequestViewer~repositoryReviewViewer~studyL~7ee153d4\":1,\"ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayout~repositoryReviewViewer~dbd5d70d\":1,\"Viewer\":1,\"consignerStudyViewer\":1,\"consultationRequestViewer\":1,\"repositoryReviewViewer\":1,\"studyList\":1,\"ReportEditor\":1,\"componentUploadStudyForm\":1,\"listLayout\":1,\"teleconsultationsRequest\":1,\"ReportDeepSearch~teleconsultationDetail~teleconsultationList\":1,\"ReportDeepSearch\":1,\"SaleSubmission~teleconsultationList\":1,\"teleconsultationList\":1,\"teleconsultationDetail\":1,\"autoCompleteSettingView\":1,\"login\":1,\"SaleSubmission\":1,\"ViewerConfiguration\":1,\"WorkstationView\":1,\"billingCodesSettingView\":1,\"componentUploadItemBatch\":1,\"componentUploadItemFile\":1,\"consignerStudyList\":1,\"pluginVueNotifications\":1,\"reportsSettingView~teleconsultationSettingView\":1,\"reportsSettingView\":1,\"teleconsultationSettingView\":1,\"repositoryReviewDashboard\":1,\"repositoryReviewDetails\":1,\"repositoryReviewList\":1,\"repositorySubmissionSettingView\":1,\"statistics\":1,\"statisticsConsignerClients\":1,\"statisticsSubmissions\":1,\"statisticsSummaries\":1,\"statisticsViewingLog\":1,\"teleconsultationsRequestConsultants\":1,\"teleconsultationsRequestMatchImages\":1,\"teleconsultationsRequestSaleHip\":1,\"teleconsultationsRequestSubmitImageOnly\":1,\"teleconsultationsRequestSubmitReport\":1,\"teleconsultationsRequestSubmitSale\":1,\"teleconsultationsRequestUploadConsultation\":1,\"teleconsultationsRequestUploadSale\":1,\"componentCineDialog\":1,\"componentDicomTagsDrawer\":1,\"componentMprViewer\":1,\"componentViewerActionsDrawer\":1,\"componentViewerAddRelatedStudy\":1,\"componentViewerContextMenu\":1,\"componentViewerImageScroll\":1,\"componentViewerToolHelp\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"HotkeyConfiguration\":\"HotkeyConfiguration\",\"PostDicomServiceInstall~ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayou~349ea425\":\"PostDicomServiceInstall~ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayou~349ea425\",\"PostDicomServiceInstall\":\"PostDicomServiceInstall\",\"ReportEditor~Viewer~autoCompleteSettingView~consignerStudyViewer~consultationRequestViewer~listLayou~6d18e22d\":\"ReportEditor~Viewer~autoCompleteSettingView~consignerStudyViewer~consultationRequestViewer~listLayou~6d18e22d\",\"ReportDeepSearch~Viewer~consignerStudyViewer~consultationRequestViewer~repositoryReviewViewer~studyL~7ee153d4\":\"ReportDeepSearch~Viewer~consignerStudyViewer~consultationRequestViewer~repositoryReviewViewer~studyL~7ee153d4\",\"ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayout~repositoryReviewViewer~dbd5d70d\":\"ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayout~repositoryReviewViewer~dbd5d70d\",\"Viewer\":\"Viewer\",\"consignerStudyViewer\":\"consignerStudyViewer\",\"consultationRequestViewer\":\"consultationRequestViewer\",\"repositoryReviewViewer\":\"repositoryReviewViewer\",\"studyList\":\"studyList\",\"ReportEditor\":\"ReportEditor\",\"componentUploadStudyForm\":\"componentUploadStudyForm\",\"listLayout\":\"listLayout\",\"teleconsultationsRequest\":\"teleconsultationsRequest\",\"ReportDeepSearch~teleconsultationDetail~teleconsultationList\":\"ReportDeepSearch~teleconsultationDetail~teleconsultationList\",\"ReportDeepSearch\":\"ReportDeepSearch\",\"SaleSubmission~teleconsultationList\":\"SaleSubmission~teleconsultationList\",\"teleconsultationList\":\"teleconsultationList\",\"teleconsultationDetail\":\"teleconsultationDetail\",\"autoCompleteSettingView\":\"autoCompleteSettingView\",\"login\":\"login\",\"SaleSubmission\":\"SaleSubmission\",\"ViewerConfiguration\":\"ViewerConfiguration\",\"WorkstationView\":\"WorkstationView\",\"billingCodesSettingView\":\"billingCodesSettingView\",\"componentUploadItemBatch\":\"componentUploadItemBatch\",\"componentUploadItemFile\":\"componentUploadItemFile\",\"consignerStudyList\":\"consignerStudyList\",\"pdfjsWorker\":\"pdfjsWorker\",\"pluginVueNotifications\":\"pluginVueNotifications\",\"reportsSettingView~teleconsultationSettingView\":\"reportsSettingView~teleconsultationSettingView\",\"reportsSettingView\":\"reportsSettingView\",\"teleconsultationSettingView\":\"teleconsultationSettingView\",\"repositoryReviewDashboard\":\"repositoryReviewDashboard\",\"repositoryReviewDetails\":\"repositoryReviewDetails\",\"repositoryReviewList\":\"repositoryReviewList\",\"repositorySubmissionSettingView\":\"repositorySubmissionSettingView\",\"statistics\":\"statistics\",\"statisticsConsignerClients\":\"statisticsConsignerClients\",\"statisticsSubmissions\":\"statisticsSubmissions\",\"statisticsSummaries\":\"statisticsSummaries\",\"statisticsViewingLog\":\"statisticsViewingLog\",\"teleconsultationsRequestConsultants\":\"teleconsultationsRequestConsultants\",\"teleconsultationsRequestMatchImages\":\"teleconsultationsRequestMatchImages\",\"teleconsultationsRequestSaleHip\":\"teleconsultationsRequestSaleHip\",\"teleconsultationsRequestSubmitImageOnly\":\"teleconsultationsRequestSubmitImageOnly\",\"teleconsultationsRequestSubmitReport\":\"teleconsultationsRequestSubmitReport\",\"teleconsultationsRequestSubmitSale\":\"teleconsultationsRequestSubmitSale\",\"teleconsultationsRequestUploadConsultation\":\"teleconsultationsRequestUploadConsultation\",\"teleconsultationsRequestUploadSale\":\"teleconsultationsRequestUploadSale\",\"componentCineDialog\":\"componentCineDialog\",\"componentDicomTagsDrawer\":\"componentDicomTagsDrawer\",\"componentMprViewer\":\"componentMprViewer\",\"componentViewerActionsDrawer\":\"componentViewerActionsDrawer\",\"componentViewerAddRelatedStudy\":\"componentViewerAddRelatedStudy\",\"componentViewerContextMenu\":\"componentViewerContextMenu\",\"componentViewerImageScroll\":\"componentViewerImageScroll\",\"componentViewerToolHelp\":\"componentViewerToolHelp\"}[chunkId]||chunkId) + \".\" + {\"HotkeyConfiguration\":\"2ae76f56\",\"PostDicomServiceInstall~ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayou~349ea425\":\"bbcd7f2b\",\"PostDicomServiceInstall\":\"210d060a\",\"ReportEditor~Viewer~autoCompleteSettingView~consignerStudyViewer~consultationRequestViewer~listLayou~6d18e22d\":\"3352384e\",\"ReportDeepSearch~Viewer~consignerStudyViewer~consultationRequestViewer~repositoryReviewViewer~studyL~7ee153d4\":\"58ee6705\",\"ReportEditor~Viewer~consignerStudyViewer~consultationRequestViewer~listLayout~repositoryReviewViewer~dbd5d70d\":\"1185fdb4\",\"Viewer\":\"8b29cb50\",\"consignerStudyViewer\":\"37570973\",\"consultationRequestViewer\":\"30943b74\",\"repositoryReviewViewer\":\"51864ef4\",\"studyList\":\"d23daee3\",\"ReportEditor\":\"1b3c6038\",\"componentUploadStudyForm\":\"b0ac7231\",\"listLayout\":\"df7fe6a2\",\"teleconsultationsRequest\":\"a1d0e4a6\",\"ReportDeepSearch~teleconsultationDetail~teleconsultationList\":\"75339894\",\"ReportDeepSearch\":\"89bc9503\",\"SaleSubmission~teleconsultationList\":\"c9b834be\",\"teleconsultationList\":\"794612bf\",\"teleconsultationDetail\":\"572bf49d\",\"autoCompleteSettingView\":\"8eeca1c0\",\"login\":\"0873b53c\",\"SaleSubmission\":\"fd828263\",\"ViewerConfiguration\":\"88ff3d07\",\"WorkstationView\":\"45ba7426\",\"billingCodesSettingView\":\"1fa49925\",\"componentUploadItemBatch\":\"361c147b\",\"componentUploadItemFile\":\"0284af05\",\"consignerStudyList\":\"62aed11e\",\"pdfjsWorker\":\"31d6cfe0\",\"pluginVueNotifications\":\"cfdc26c3\",\"reportsSettingView~teleconsultationSettingView\":\"7322c439\",\"reportsSettingView\":\"d0e6383b\",\"teleconsultationSettingView\":\"1e89d260\",\"repositoryReviewDashboard\":\"13415d4f\",\"repositoryReviewDetails\":\"a230c968\",\"repositoryReviewList\":\"549b5f47\",\"repositorySubmissionSettingView\":\"e3a29868\",\"statistics\":\"17ed5455\",\"statisticsConsignerClients\":\"89f3c50d\",\"statisticsSubmissions\":\"14640b74\",\"statisticsSummaries\":\"4d848bdb\",\"statisticsViewingLog\":\"bd33d058\",\"teleconsultationsRequestConsultants\":\"57164f61\",\"teleconsultationsRequestMatchImages\":\"bdc63e83\",\"teleconsultationsRequestSaleHip\":\"f031b1e7\",\"teleconsultationsRequestSubmitImageOnly\":\"cf58cc49\",\"teleconsultationsRequestSubmitReport\":\"fbc238dc\",\"teleconsultationsRequestSubmitSale\":\"a1a91ebf\",\"teleconsultationsRequestUploadConsultation\":\"a63d9cde\",\"teleconsultationsRequestUploadSale\":\"92df8a26\",\"componentCineDialog\":\"a846f2c1\",\"componentDicomTagsDrawer\":\"12d67158\",\"componentMprViewer\":\"84785b2b\",\"componentViewerActionsDrawer\":\"ad07b7d1\",\"componentViewerAddRelatedStudy\":\"9b92ebd0\",\"componentViewerContextMenu\":\"55dd2394\",\"componentViewerImageScroll\":\"f91fd220\",\"componentViewerToolHelp\":\"f53fb32f\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('i',{staticClass:\"icon\",class:{\n\t\t'icon-spin': _vm.spin,\n\t\t'icon-pulse': _vm.pulse,\n\t\t'icon-fixed': _vm.fixed,\n\t\t'icon-inline': _vm.inline,\n\t\t'icon-vcenter': _vm.vcenter,\n\t}},[_c('svg',{style:(_vm.svgStyle)},[_c('use',{attrs:{\"xlink:href\":(\"#\" + _vm.icon)}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./SvgIcon.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!./SvgIcon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SvgIcon.vue?vue&type=template&id=5ef9ee75\"\nimport script from \"./SvgIcon.vue?vue&type=script&lang=js\"\nexport * from \"./SvgIcon.vue?vue&type=script&lang=js\"\nimport style0 from \"./SvgIcon.vue?vue&type=style&index=0&id=5ef9ee75&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","/**\n * Function to handle deepCloning objects.\n * By refactoring to a single location, we can change implementations with minimal impact, should we choose something like lodash's cloneDeep instead\n */\n\nexport default function jsonClone(object) {\n\treturn JSON.parse(JSON.stringify(object))\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","import { metaData } from 'cornerstone-core/dist/cornerstone.js'\nimport isSameOrientation from './isSameOrientation'\n\nexport default function isLocalizerImage(imageIds, imageId, targetImagePlane) {\n\tconst targetImageMeta = metaData.get('generalImageModule', imageId)\n\tconst imageType = targetImageMeta && targetImageMeta.imageType\n\tif (!imageType) return false\n\tif (imageType.toUpperCase().includes('LOCALIZER')) return true\n\n\ttargetImagePlane = targetImagePlane || metaData.get('imagePlaneModule', imageId)\n\treturn (\n\t\timageType.toUpperCase().includes('DERIVED') && !isSameOrientation(targetImagePlane, getMiddleImagePlane(imageIds))\n\t)\n}\n\nfunction getMiddleImagePlane(imageIds) {\n\tconst middleIndex = Math.floor(imageIds.length / 2)\n\tconst middleImageId = imageIds[middleIndex]\n\treturn metaData.get('imagePlaneModule', middleImageId)\n}\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","import store from '@store'\nimport { API } from '@services/api'\n\nclass User {\n\tget claims(): IClaims {\n\t\treturn store.state.auth.claims\n\t}\n\n\tget permissions(): IPermissions {\n\t\treturn store.state.static.permissions\n\t}\n\n\tget isAuthenticated(): boolean {\n\t\treturn !!store.state.auth.token\n\t}\n\n\tgetAllUsers(): Promise {\n\t\treturn API.get(`/user/all-users`).then(r => r.data)\n\t}\n}\n\nexport const user = new User()\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","import { API } from '@services/api'\nimport { eventBus } from '@services/eventBus'\n\nclass Folders {\n\tfolders: IStudyFolder[] = []\n\tdragStudyId: string = null\n\n\tload() {\n\t\treturn API.get(`/study/study-folders`).then(r => (this.folders = r && r.data))\n\t}\n\tclear() {\n\t\tthis.folders = []\n\t\tthis.dragStudyId = null\n\t}\n\tsave(folders: IStudyFolder[]) {\n\t\treturn API.put(`/study/study-folders`, folders).then(r => {\n\t\t\tthis.load()\n\t\t\treturn r.data\n\t\t})\n\t}\n\tdelete(folderId: string) {\n\t\treturn API.delete(`/study/study-folders/${folderId}`).then(() => {\n\t\t\tthis.folders = this.folders.filter(f => {\n\t\t\t\tif (f.id === folderId) return false\n\t\t\t\tif (f.parentFolderId === folderId) return false\n\t\t\t\treturn true\n\t\t\t})\n\t\t})\n\t}\n\tgetFolderIdsForStudy(studyId: string) {\n\t\treturn API.get(`/study/study-folders-for-study/${studyId}`).then(r => r.data)\n\t}\n\taddStudyToFolder(studyId: string, folderId: string) {\n\t\treturn API.put(`/study/study-folders-for-study/${studyId}/${folderId}`).then(() => {\n\t\t\teventBus.post('add-study-to-folder', studyId, folderId)\n\t\t})\n\t}\n\tupdateFolderIdsForStudy(studyId: string, folderIds: string[]) {\n\t\treturn API.post(`/study/study-folders-for-study/${studyId}`, folderIds)\n\t}\n}\n\nexport const studyFolders = new Folders()\n// @ts-ignore\nwindow.studyFolders = studyFolders\n","module.exports = \"\"","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!./FilterTag.vue?vue&type=style&index=0&id=7b74fad6&prod&lang=scss\"","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!./MPRInteractor.vue?vue&type=style&index=0&id=500ce9db&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!./statWarningDlg.vue?vue&type=style&index=0&id=7459046c&prod&lang=scss\"","/**\n * \n * @typedef imagePlane\n * @property {vector3} rowCosines\n * @property {vector3} columnCosines\n */\n\n/** \n * A 3-dimensional vector\n *\n * @typedef vector3\n * @property {number} x\n * @property {number} y\n * @property {number} z\n */\n\n\nconst isApproximatelyOne = num => num > 0.85 && num < 1.15\n\n/**\n * Determines if two image planes have roughly the same orientation\n *\n * @export @public @function\n * @param {imagePlane} a\n * @param {imagePlane} b\n * @returns boolean\n */\nexport default function (a, b) {\n\tif (!a || !b || !a.rowCosines || !b.rowCosines) return false\n\tconst rowDotProduct =\n\t\ta.rowCosines.x * b.rowCosines.x +\n\t\ta.rowCosines.y * b.rowCosines.y +\n\t\ta.rowCosines.z * b.rowCosines.z\n\tif (!isApproximatelyOne(rowDotProduct)) return false\n\tconst columnDotProduct =\n\t\ta.columnCosines.x * b.columnCosines.x +\n\t\ta.columnCosines.y * b.columnCosines.y +\n\t\ta.columnCosines.z * b.columnCosines.z\n\treturn isApproximatelyOne(columnDotProduct)\n}","module.exports = \"\"","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!./2DMPRManager.vue?vue&type=style&index=0&id=3d7ec97b&prod&lang=scss&scoped=true\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close}},[_c('div',{staticClass:\"dialog\"},[_c('dlg-header',{attrs:{\"title\":\"On Behalf Of List\",\"is-loading\":_vm.isLoading},on:{\"close\":function($event){return _vm.close()}}}),_c('div',{staticStyle:{\"overflow-y\":\"auto\",\"border-top\":\"1px solid var(--secondary-border)\"},on:{\"click\":function($event){$event.stopPropagation();}}},[(!_vm.isEditing)?_c('div',{staticClass:\"obo-list\",class:{ 'obo-list-empty': _vm.listIsEmpty }},[(!_vm.isEditing)?_c('ast-button',{attrs:{\"type\":\"info\"},nativeOn:{\"click\":function($event){return _vm.addItem($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\tAdd Contact\\n\\t\\t\\t\\t\")]):_vm._e(),(!_vm.listIsEmpty)?_c('data-table',{attrs:{\"columns\":_vm.columns,\"rows\":_vm.list,\"results-per-page\":20,\"is-loading\":_vm.isLoading},on:{\"row-open\":_vm.editItem,\"sort-selected\":_vm.sortItems},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('td',[_vm._v(_vm._s(row.title))]),_c('td',[_vm._v(_vm._s(row.firstName))]),_c('td',[_vm._v(_vm._s(row.lastName))]),_c('td',[_vm._v(_vm._s(row.organizationName))]),_c('td',[_vm._v(_vm._s(row.email))])]}}],null,false,1960965049)}):_c('p',[_vm._v(\"No Contacts Found\")])],1):_c('form',{staticClass:\"obo-form\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('section',[_c('h3',[_vm._v(\"Basic Info\")]),_c('div',[_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group short-input\"},[_c('label',[_vm._v(\"Salutation\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.title),expression:\"detail.title\"}],staticClass:\"select\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.detail, \"title\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option'),_c('option',[_vm._v(\"Dr.\")]),_c('option',[_vm._v(\"Mr.\")]),_c('option',[_vm._v(\"Mrs.\")]),_c('option',[_vm._v(\"Ms.\")]),_c('option',[_vm._v(\"Miss\")]),_c('option',[_vm._v(\"Prof.\")])])]),_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tFirst Name\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"is-required\"})]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.firstName),expression:\"detail.firstName\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"name\":\"firstName\",\"type\":\"text\"},domProps:{\"value\":(_vm.detail.firstName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"firstName\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tLast Name\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"is-required\"})]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.lastName),expression:\"detail.lastName\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"name\":\"lastName\",\"type\":\"text\"},domProps:{\"value\":(_vm.detail.lastName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"lastName\", $event.target.value)}}})]),_c('div',{staticClass:\"input-group short-input\"},[_c('label',[_vm._v(\"Suffix\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.suffix),expression:\"detail.suffix\"}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.detail.suffix)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"suffix\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClinic / Hospital\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"is-required\"})]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.organizationName),expression:\"detail.organizationName\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"name\":\"organizationName\",\"type\":\"text\"},domProps:{\"value\":(_vm.detail.organizationName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"organizationName\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"Degree\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.degree),expression:\"detail.degree\"}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.detail.degree)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"degree\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"Accreditation\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.accreditationNumber),expression:\"detail.accreditationNumber\"}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.detail.accreditationNumber)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"accreditationNumber\", $event.target.value)}}})])])])]),_c('section',[_c('h3',[_vm._v(\"Contact\")]),_c('div',[_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tEmail\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"is-required\"})]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.email),expression:\"detail.email\"},{name:\"validate\",rawName:\"v-validate\",value:('required|email'),expression:\"'required|email'\"}],staticClass:\"input\",attrs:{\"name\":\"email\",\"type\":\"text\"},domProps:{\"value\":(_vm.detail.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"email\", $event.target.value)}}})])]),_c('transition',{attrs:{\"name\":\"expand\"}},[(_vm.detail.email && _vm.hasError('email'))?_c('div',{staticClass:\"input-row\"},[_c('p',{staticClass:\"is-danger\"},[_c('svg-icon',{attrs:{\"icon\":\"exclamation-circle\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tPlease enter a valid email address.\\n\\t\\t\\t\\t\\t\\t\\t\\t\")],1)]):_vm._e()]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"Website\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.website),expression:\"detail.website\"}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.detail.website)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"website\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tPhone\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"),_c('span',{staticClass:\"is-required\"})]),_c('div',{staticClass:\"input-pair\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.phoneType),expression:\"detail.phoneType\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"select short-input\",attrs:{\"name\":\"phoneType\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.detail, \"phoneType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{attrs:{\"value\":\"0\"}},[_vm._v(\"Office\")]),_c('option',{attrs:{\"value\":\"1\"}},[_vm._v(\"Mobile\")]),_c('option',{attrs:{\"value\":\"2\"}},[_vm._v(\"Home\")]),_c('option',{attrs:{\"value\":\"3\"}},[_vm._v(\"Fax\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.phone),expression:\"detail.phone\"}],staticClass:\"input\",attrs:{\"type\":\"text\",\"placeholder\":\"xxx-xxx-xxxx\"},domProps:{\"value\":(_vm.detail.phone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"phone\", $event.target.value)}}})])])])],1)]),_c('section',[_c('h3',[_vm._v(\"Address\")]),_c('div',[_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"Street\")]),_c('span',{staticClass:\"is-required\"}),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.address),expression:\"detail.address\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input is-address\",attrs:{\"name\":\"address\"},domProps:{\"value\":(_vm.detail.address)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"address\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"City\")]),_c('span',{staticClass:\"is-required\"}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.city),expression:\"detail.city\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"name\":\"city\",\"type\":\"text\"},domProps:{\"value\":(_vm.detail.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"city\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group short-input\"},[_c('label',[_vm._v(\"State\")]),_c('span',{staticClass:\"is-required\"}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.state),expression:\"detail.state\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"name\":\"state\",\"type\":\"text\"},domProps:{\"value\":(_vm.detail.state)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"state\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group medium-input\"},[_c('label',[_vm._v(\"Zip/Postal Code\")]),_c('span',{staticClass:\"is-required\"}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.postalCode),expression:\"detail.postalCode\"},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"name\":\"postalCode\",\"type\":\"text\"},domProps:{\"value\":(_vm.detail.postalCode)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"postalCode\", $event.target.value)}}})])]),_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"input-group\"},[_c('label',[_vm._v(\"Country\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.detail.country),expression:\"detail.country\"}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.detail.country)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.detail, \"country\", $event.target.value)}}})])])])])])]),(_vm.isEditing)?_c('div',{staticClass:\"footer\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('ast-button',{attrs:{\"type\":\"info\",\"disabled\":_vm.anyErrors},nativeOn:{\"click\":function($event){return _vm.saveItem($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.detail.id ? 'Save Changes' : 'Save Contact')+\"\\n\\t\\t\\t\")]),_c('ast-button',{attrs:{\"type\":\"default\"},nativeOn:{\"click\":function($event){return _vm.cancelItem($event)}}},[_vm._v(\"\\n\\t\\t\\t\\tCancel\\n\\t\\t\\t\")]),_c('span',{staticStyle:{\"flex-grow\":\"1\"}}),_c('div',{staticClass:\"obo-footer-right\"},[(_vm.isEditing && _vm.detail.id)?_c('ast-button',{attrs:{\"type\":\"danger\"},nativeOn:{\"click\":function($event){return _vm.deleteItem($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\tDelete\\n\\t\\t\\t\\t\")]):_vm._e()],1)],1):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./OnBehalfOf.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!./OnBehalfOf.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OnBehalfOf.vue?vue&type=template&id=ff754bd6&scoped=true\"\nimport script from \"./OnBehalfOf.vue?vue&type=script&lang=js\"\nexport * from \"./OnBehalfOf.vue?vue&type=script&lang=js\"\nimport style0 from \"./OnBehalfOf.vue?vue&type=style&index=0&id=ff754bd6&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 \"ff754bd6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"input-wrapper\"},[(_vm.label)?_c('label',{staticClass:\"input-label\",attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]):_vm._e(),(['text', 'password', 'number'].includes(_vm.type))?_c('input',{ref:\"input\",staticClass:\"input\",class:{ 'has-icon': _vm.icon, 'has-error': _vm.hasError },attrs:{\"id\":_vm.id,\"type\":_vm.type,\"name\":_vm.id,\"disabled\":_vm.disabled,\"placeholder\":_vm.placeholder,\"maxlength\":_vm.maxlength},domProps:{\"value\":_vm.value},on:{\"input\":_vm.handleInput}}):(_vm.type === 'textarea')?_c('textarea',{ref:\"input\",staticClass:\"input\",class:{ 'has-error': _vm.hasError },attrs:{\"id\":_vm.id,\"name\":_vm.id,\"placeholder\":_vm.placeholder,\"maxlength\":_vm.maxlength},domProps:{\"value\":_vm.value},on:{\"input\":_vm.handleInput}}):_vm._e(),(_vm.icon)?_c('svg-icon',{staticClass:\"input-icon\",attrs:{\"icon\":_vm.icon}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./Input.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!./Input.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Input.vue?vue&type=template&id=00438f8a\"\nimport script from \"./Input.vue?vue&type=script&lang=js\"\nexport * from \"./Input.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","/** String Consts for MPR tools */\n\nexport const LEVEL_TOOL = 'LEVEL'\nexport const LENGTH_TOOL = 'LENGTH'\nexport const RECT_TOOL = 'RECT'\nexport const CIRCLE_TOOL = 'CIRCLE'\nexport const ELLIPSE_TOOL = 'ELLIPSE'\nexport const ANGLE_TOOL = 'ANGLE'\nexport const TEXT_TOOL = 'TEXT'\nexport const ARROW_TOOL = 'ARROW'\nexport const PROBE_TOOL = 'PROBE'\nexport const ERASER_TOOL = 'ERASER'\nexport const SELECT_TOOL = 'SELECT'\nexport const PAN_TOOL = 'PAN'\nexport const ZOOM_TOOL = 'ZOOM'\nexport const SCROLL_TOOL = 'SCROLL'\nexport const PLANE_TOOL = 'PLANE'\nexport const ROLL_TOOL = 'ROLL'\nexport const PRE_TOOL = 'PRE'\n\nexport const TOOLS = {\n\tLEVEL_TOOL,\n\tSELECT_TOOL,\n\tLENGTH_TOOL,\n\tRECT_TOOL,\n\tCIRCLE_TOOL,\n\tELLIPSE_TOOL,\n\tANGLE_TOOL,\n\tTEXT_TOOL,\n\tARROW_TOOL,\n\tPROBE_TOOL,\n\tERASER_TOOL,\n\tPAN_TOOL,\n\tZOOM_TOOL,\n\tSCROLL_TOOL,\n\tPLANE_TOOL,\n\tROLL_TOOL,\n\tPRE_TOOL,\n}\n\nexport const BLEND_NONE = 'none'\nexport const BLEND_MIP = 'MIP'\nexport const BLEND_MINIP = 'MINIP'\nexport const BLEND_AVG = 'AVG'\n\nexport const FRONT = 'front'\nexport const TOP = 'top'\nexport const LEFT = 'left'\n\nexport const LEFT_MKEY = 'left'\nexport const MIDDLE_MKEY = 'middle'\nexport const RIGHT_MKEY = 'right'\n\nexport const BUTTONS = {\n\tLEFT_MKEY,\n\tMIDDLE_MKEY,\n\tRIGHT_MKEY,\n}\n\nexport const BUTTON_MASKS = {\n\t1: LEFT_MKEY,\n\t4: MIDDLE_MKEY,\n\t2: RIGHT_MKEY,\n}\n\nexport const VTK_BUTTONS = {\n\t[LEFT_MKEY]: 1,\n\t[MIDDLE_MKEY]: 2,\n\t[RIGHT_MKEY]: 3,\n}\n\nexport const MOUSE_BINDINGS = {\n\t[LEFT_MKEY]: 'L',\n\t[MIDDLE_MKEY]: 'M',\n\t[RIGHT_MKEY]: 'R',\n}\n\nexport const TOUCH_BINDINGS = {\n\t[LEFT_MKEY]: ' ',\n}\n\nexport const ACTIONS = {\n\tlevel: LEVEL_TOOL,\n\tcrosshair: SELECT_TOOL,\n}\n\nexport default {\n\tTOOLS,\n\tLEVEL_TOOL,\n\tSELECT_TOOL,\n\tLENGTH_TOOL,\n\tRECT_TOOL,\n\tCIRCLE_TOOL,\n\tELLIPSE_TOOL,\n\tANGLE_TOOL,\n\tTEXT_TOOL,\n\tARROW_TOOL,\n\tPROBE_TOOL,\n\tERASER_TOOL,\n\tPAN_TOOL,\n\tZOOM_TOOL,\n\tSCROLL_TOOL,\n\tPLANE_TOOL,\n\tROLL_TOOL,\n\tPRE_TOOL,\n\tBUTTONS,\n\tBUTTON_MASKS,\n\tVTK_BUTTONS,\n\tMOUSE_BINDINGS,\n\tTOUCH_BINDINGS,\n\tLEFT_MKEY,\n\tMIDDLE_MKEY,\n\tRIGHT_MKEY,\n\tBLEND_AVG,\n\tBLEND_MINIP,\n\tBLEND_MIP,\n\tBLEND_NONE,\n\tFRONT,\n\tTOP,\n\tLEFT,\n}\n","module.exports = \"\"","// using the W3C spec regex\nexport default function emailIsValid(email) {\n\treturn /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/.test(email)\n}\n","module.exports = \"\"","import store from '@store'\n\nexport function addNotification(message: string, notificationType: string) {\n\tstore.dispatch('addNotification', {\n\t\tmessage,\n\t\tnotificationType,\n\t})\n}\n","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pagination\"},[_c('div',{staticClass:\"results-per-page\"},[_vm._v(\"\\n\\t\\tResults per page:\\n\\t\\t\"),_c('select',{staticClass:\"select is-inline\",on:{\"change\":_vm.setResultsPerPage}},_vm._l((_vm.perPageOptions),function(value){return _c('option',{key:value,domProps:{\"value\":value,\"selected\":+_vm.resultsPerPage === value}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(value)+\"\\n\\t\\t\\t\")])}),0)]),(_vm.mq.small)?_c('loading-spinner',{attrs:{\"is-loading\":_vm.isLoading}}):_vm._e(),(!_vm.mq.small)?_c('loading-spinner',{attrs:{\"is-right\":\"\",\"is-bottom\":\"3px\",\"is-loading\":_vm.isLoading,\"is-small\":\"\"}}):_vm._e(),_c('div',{staticClass:\"page-buttons\"},[_c('button',{attrs:{\"type\":\"button\",\"disabled\":_vm.currentPage === 0},on:{\"click\":_vm.goToPreviousPage}},[_c('span',{staticClass:\"symbol\"},[_vm._v(\"‹\")]),_vm._v(\"\\n\\t\\t\\tPrev\\n\\t\\t\")]),_c('span',{staticClass:\"range\"},[_vm._v(_vm._s(_vm.startingRow)+\" – \"+_vm._s(_vm.endingRow))]),_c('button',{attrs:{\"type\":\"button\",\"disabled\":!_vm.hasMoreResults},on:{\"click\":_vm.goToNextPage}},[_vm._v(\"\\n\\t\\t\\tNext\\n\\t\\t\\t\"),_c('span',{staticClass:\"symbol\"},[_vm._v(\"›\")])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Pagination.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!./Pagination.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Pagination.vue?vue&type=template&id=aed425a8&scoped=true\"\nimport script from \"./Pagination.vue?vue&type=script&lang=js\"\nexport * from \"./Pagination.vue?vue&type=script&lang=js\"\nimport style0 from \"./Pagination.vue?vue&type=style&index=0&id=aed425a8&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 \"aed425a8\",\n null\n \n)\n\nexport default component.exports","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!./DicomServiceLogDlg.vue?vue&type=style&index=0&id=736fac1a&prod&lang=scss&scoped=true\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./Card.vue?vue&type=style&index=0&id=2ced4d44&prod&lang=scss\"","module.exports = \"\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","module.exports = \"\"","import { metaData } from 'cornerstone-core/dist/cornerstone.js'\n\n/**\n *\n * @param {Object} voi\n * @param {Number} voi.windowWidth\n * @param {Number} voi.windowCenter\n * @param {Object} image\n * @param {Number} image.dicomWindowWidth\n * @param {Number} image.dicomWindowCenter\n * @param {Number} image.windowWidth\n * @param {Number} image.windowCenter\n * @param {String} image.imageId\n */\nexport function scaleJpegVoiToDicom(voi, image) {\n\tconst from = {\n\t\twindowWidth: image.windowWidth,\n\t\twindowCenter: image.windowCenter,\n\t}\n\tconst to = {\n\t\twindowWidth: image.dicomWindowWidth,\n\t\twindowCenter: image.dicomWindowCenter,\n\t}\n\treturn scaleWwwc(voi, from, to, image.imageId)\n}\n\n/**\n *\n * @param {Object} voi\n * @param {Number} voi.windowWidth\n * @param {Number} voi.windowCenter\n * @param {Object} image\n * @param {Number} image.dicomWindowWidth\n * @param {Number} image.dicomWindowCenter\n * @param {Number} image.windowWidth\n * @param {Number} image.windowCenter\n * @param {String?} image.imageId\n */\nexport function scaleDicomPresetToJpeg(voi, image) {\n\tconst from = {\n\t\twindowWidth: image.dicomWindowWidth,\n\t\twindowCenter: image.dicomWindowCenter,\n\t}\n\tconst to = {\n\t\twindowWidth: image.windowWidth,\n\t\twindowCenter: image.windowCenter,\n\t}\n\treturn scaleWwwc(voi, from, to, image.imageId)\n}\n\nfunction scaleWwwc(voi, from, to, imageId) {\n\t// If `voi` vales are same as `from` values, return default `to` values\n\tconst isUnchanged = voi.windowWidth === from.windowWidth && voi.windowCenter === from.windowCenter\n\tif (isUnchanged)\n\t\treturn {\n\t\t\twindowWidth: to.windowWidth,\n\t\t\twindowCenter: to.windowCenter,\n\t\t}\n\t// Calculate scale of width change\n\tconst widthScale = voi.windowWidth / from.windowWidth\n\t// Calculate center delta as a percent of default width\n\tlet centerChangePercent = (from.windowCenter - voi.windowCenter) / from.windowWidth\n\t// Negate center delta if photometric interpretation is not MONOCHROME1\n\tconst imagePixelModule = (imageId && metaData.get('imagePixelModule', imageId)) || {}\n\tconst { photometricInterpretation } = imagePixelModule\n\tif (photometricInterpretation !== 'MONOCHROME1') centerChangePercent *= -1\n\treturn {\n\t\twindowWidth: to.windowWidth * widthScale,\n\t\twindowCenter: to.windowCenter + to.windowWidth * centerChangePercent,\n\t}\n}\n","const lookup = new Map()\n\nconst metadata = {\n lookup,\n}\n\nexport default metadata\n","export default {\n NUMBER: 'number',\n NUMBERS: 'numbers',\n STRING: 'string',\n}\n","import valueTypes from './dicomTagValueTypeEnum.js'\n\n// https://github.com/OHIF/Viewers/blob/e55e2ad05ad784ce3899378d438fbc198e6cf2da/Packages/ohif-viewerbase/client/lib/DICOMTagDescriptions.js\nexport default {\n\t// PATIENT\n\tPATIENT_NAME: { tag: '00100010', type: valueTypes.STRING },\n\tPATIENT_ID: { tag: '00100020', type: valueTypes.STRING },\n\tPATIENT_BIRTH_DATE: { tag: '00100030', type: valueTypes.STRING },\n\tPATIENT_SEX: { tag: '00100040', type: valueTypes.STRING },\n\tPATIENT_AGE: { tag: '00101010', type: valueTypes.NUMBER },\n\tPATIENT_SIZE: { tag: '00101020', type: valueTypes.NUMBER },\n\tPATIENT_WEIGHT: { tag: '00101030', type: valueTypes.NUMBER },\n\t// SERIES\n\tMODALITY: { tag: '00080060', type: valueTypes.STRING },\n\tSERIES_INSTANCE_UID: { tag: '0020000e', type: valueTypes.STRING },\n\tSERIES_NUMBER: { tag: '00200011', type: valueTypes.NUMBER },\n\tSERIES_DESCRIPTION: { tag: '0008103e', type: valueTypes.STRING },\n\t// STUDY\n\tSTUDY_INSTANCE_UID: { tag: '0020000d', type: valueTypes.STRING },\n\t// IMAGE PIXEL MODULE\n\tSAMPLES_PER_PIXEL: { tag: '00280002', type: valueTypes.NUMBER },\n\tPHOTOMETRIC_INTERPRETATION: { tag: '00280004', type: valueTypes.STRING },\n\tROWS: { tag: '00280010', type: valueTypes.NUMBER },\n\tCOLUMNS: { tag: '00280011', type: valueTypes.NUMBER },\n\tBITS_ALLOCATED: { tag: '00280100', type: valueTypes.NUMBER },\n\tBITS_STORED: { tag: '00280101', type: valueTypes.NUMBER },\n\tHIGH_BIT: { tag: '00280102', type: valueTypes.STRING },\n\tPIXEL_REPRESENTATION: { tag: '00280103', type: valueTypes.NUMBER },\n\tPLANAR_CONFIGURATION: { tag: '00280006', type: valueTypes.NUMBER },\n\tPIXEL_ASPECT_RATIO: { tag: '00280034', type: valueTypes.STRING },\n\tSMALLEST_PIXEL_VALUE: { tag: '00280106', type: valueTypes.NUMBER },\n\tLARGEST_PIXEL_VALUE: { tag: '00280107', type: valueTypes.NUMBER },\n\tRED_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR: {\n\t\ttag: '00281101',\n\t\ttype: valueTypes.NUMBER,\n\t},\n\tGREEN_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR: {\n\t\ttag: '00281102',\n\t\ttype: valueTypes.NUMBER,\n\t},\n\tBLUE_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR: {\n\t\ttag: '00281103',\n\t\ttype: valueTypes.NUMBER,\n\t},\n\tRED_PALETTE_COLOR_LOOKUP_TABLE_DATA: {\n\t\ttag: '00281201',\n\t\ttype: valueTypes.NUMBER,\n\t},\n\tGREEN_PALETTE_COLOR_LOOKUP_TABLE_DATA: {\n\t\ttag: '00281202',\n\t\ttype: valueTypes.NUMBER,\n\t},\n\tBLUE_PALETTE_COLOR_LOOKUP_TABLE_DATA: {\n\t\ttag: '00281203',\n\t\ttype: valueTypes.NUMBER,\n\t},\n\t// IMAGE PLANE MODULE\n\tIMAGE_ORIENTATION_PATIENT: { tag: '00200037', type: valueTypes.STRING },\n\tIMAGE_POSITION_PATIENT: { tag: '00200032', type: valueTypes.STRING },\n\tFRAME_OF_REFERENCE_UID: { tag: '00200052', type: valueTypes.STRING },\n\tSLICE_THICKNESS: { tag: '00180050', type: valueTypes.NUMBER },\n\tSLICE_LOCATION: { tag: '00201041', type: valueTypes.STRING },\n\t// ALL THE PIXEL SPACINGS\n\tAST_CALIBRATED_PIXEL_SPACING: {\n\t\ttag: '51802000',\n\t\ttype: valueTypes.NUMBERS,\n\t\toptions: {\n\t\t\tminimumLength: 2,\n\t\t},\n\t},\n\tPIXEL_SPACING: {\n\t\ttag: '00280030',\n\t\ttype: valueTypes.NUMBERS,\n\t\toptions: {\n\t\t\tminimumLength: 2,\n\t\t},\n\t},\n\tIMAGER_PIXEL_SPACING: {\n\t\ttag: '00181164',\n\t\ttype: valueTypes.NUMBERS,\n\t\toptions: {\n\t\t\tminimumLength: 2,\n\t\t},\n\t},\n\tNOMINAL_SCANNED_PIXEL_SPACING: {\n\t\ttag: '00182010',\n\t\ttype: valueTypes.NUMBERS,\n\t\toptions: {\n\t\t\tminimumLength: 2,\n\t\t},\n\t},\n\t// PET ISOTOPE MODULE\n\tRADIOPHARMACEUTICAL_INFORMATION_SEQ: {\n\t\ttag: '00540016',\n\t\ttype: valueTypes.STRING,\n\t},\n\tRADIONUCLIDE_TOTAL_DOSE: { tag: '00181074', type: valueTypes.NUMBER },\n\tRADIONUCLIDE_HALF_LIFE: { tag: '00181075', type: valueTypes.NUMBER },\n\t// MODALITY LUT MODULE\n\tRESCALE_INTERCEPT: { tag: '00281052', type: valueTypes.NUMBER },\n\tRESCALE_SLOPE: { tag: '00281053', type: valueTypes.NUMBER },\n\tRESCALE_TYPE: { tag: '00281054', type: valueTypes.STRING },\n\t// GENERAL IMAGE MODULE\n\tIMAGE_TYPE: { tag: '00080008', type: valueTypes.STRING },\n\t// SOP COMMON MODULE\n\tSOP_CLASS_UID: { tag: '00080016', type: valueTypes.STRING },\n\tSOP_INSTANCE_UID: { tag: '00080018', type: valueTypes.STRING },\n\t// VOI LUT MODULE\n\tWINDOW_CENTER: {\n\t\ttag: '00281050',\n\t\ttype: valueTypes.NUMBERS,\n\t\toptions: { minimumLength: 1 },\n\t},\n\tWINDOW_WIDTH: {\n\t\ttag: '00281051',\n\t\ttype: valueTypes.NUMBERS,\n\t\toptions: { minimumLength: 1 },\n\t},\n\t// MULTI FRAME MODULE\n\tNUMBER_OF_FRAMES: { tag: '00280008', type: valueTypes.NUMBER },\n\tFRAME_INCREMENT_POINTER: { tag: '00280009', type: valueTypes.STRING },\n\tFRAME_TIME: { tag: '00181063', type: valueTypes.NUMBER },\n\tFRAME_TIME_VECTOR: {\n\t\ttag: '00181065',\n\t\ttype: valueTypes.NUMBERS,\n\t\toptions: { minimumLength: 1 },\n\t},\n\t//\n\t// IMAGE_ORIENTATION_PATIENT: {\n\t// tag: '',\n\t// type: valueTypes,\n\t// },\n}\n","import dicomTagEnum from './dicomTagEnum.js'\nimport valueTypes from './dicomTagValueTypeEnum.js'\n\n/**\n * [Dicom Tag]{@link http://northstar-www.dartmouth.edu/doc/idl/html_6.2/DICOM_Attributes.html} item returned by server's JSON endpoint\n *\n * @typedef DicomTag\n * @param {number} Group - A group number that groups similar tags\n * @param {number} Element - The tag's \"ID\" within its group\n * @param {string} Value - The tag's value\n */\n\n/**\n * Finds and parses the `tag` in the set of `dicom tags`. If it can't be found or parsed,\n * then the `default value` is returned.\n *\n * @param {DicomTag[]} dicomTags - The javascript object for the specified element in the metadata\n * @param {string} tagName - A tag name from the `dicomTagEnum`\n * @param {*} [defaultValue] - The default value to return if the element does not exist\n * @returns {*} - Found and parsed value or default\n */\nexport default function(dicomTags, tagName, defaultValue) {\n\tconst options = dicomTagEnum[tagName].options || {}\n\tconst { tag, type } = dicomTagEnum[tagName]\n\tconst { group, element } = _parseHexDicomTagString(tag)\n\n\tconst noTags = !dicomTags || dicomTags.length < 1\n\tif (noTags) {\n\t\treturn defaultValue\n\t}\n\n\t// Attempt to find value\n\tconst foundResult = dicomTags.find(dt => dt.Element === element && dt.Group === group)\n\tif (foundResult && 'Value' in foundResult) {\n\t\toptions.defaultValue = options.defaultValue || defaultValue\n\t\treturn _parseValueType(type, foundResult.Value, options)\n\t}\n\n\treturn defaultValue\n}\n\n/**\n * Parses the value to the provided type.\n *\n * @private\n * @function _parseValueType\n *\n * @param {*} type\n * @param {*} value\n * @param {*} options\n * @returns {*} Parsed value\n */\nfunction _parseValueType(type, value, options) {\n\tif (type === valueTypes.STRING) {\n\t\treturn value\n\t}\n\tif (type === valueTypes.NUMBER) {\n\t\treturn parseFloat(value)\n\t}\n\tif (type === valueTypes.NUMBERS) {\n\t\tconst minimumLength = options.minimumLength || 2\n\t\tconst valuesArray = value.split('\\\\')\n\t\tif (valuesArray.length < minimumLength) {\n\t\t\treturn options.defaultValue\n\t\t}\n\n\t\treturn valuesArray.map(parseFloat)\n\t}\n}\n\n/**\n * Converts concatenated hex strings into their decimal equivelant.\n * Expects a string length of 8; splits in half. First half is `group`,\n * and second half is `element`\n *\n * @private\n * @function _parseHexDicomTagString\n *\n * @param {*} hexDicomTagString\n * @returns {object} { group: number, element: number }\n */\nfunction _parseHexDicomTagString(hexDicomTagString) {\n\treturn {\n\t\tgroup: parseInt(hexDicomTagString.substring(0, 4), 16),\n\t\telement: parseInt(hexDicomTagString.substring(4), 16),\n\t}\n}\n","import getValue from '../internals/getValue.js'\n\nexport default function(dicomTags) {\n\treturn {\n\t\timageType: getValue(dicomTags, 'IMAGE_TYPE'),\n\t}\n}\n","import getValue from './../internals/getValue.js'\n\n// DBTODO: The Dicom `getImagePixelModule` does a lot to correct/validate\n// the data for PalleteColorLut and Smallest/Largest Pixel Values\n// We may need to add that correction here.\nexport default function(dicomTags) {\n return {\n samplesPerPixel: getValue(dicomTags, 'SAMPLES_PER_PIXEL'),\n photometricInterpretation: getValue(\n dicomTags,\n 'PHOTOMETRIC_INTERPRETATION'\n ),\n rows: getValue(dicomTags, 'ROWS'),\n columns: getValue(dicomTags, 'COLUMNS'),\n bitsAllocated: getValue(dicomTags, 'BITS_ALLOCATED'),\n bitsStored: getValue(dicomTags, 'BITS_STORED'),\n highBit: getValue(dicomTags, 'HIGH_BIT'),\n pixelRepresentation: getValue(dicomTags, 'PIXEL_REPRESENTATION'), // 0 = unsigned,\n planarConfiguration: getValue(dicomTags, 'PLANAR_CONFIGURATION'),\n\n pixelAspectRatio: getValue(dicomTags, 'PIXEL_ASPECT_RATIO'),\n smallestPixelValue: getValue(dicomTags, 'SMALLEST_PIXEL_VALUE'),\n largestPixelValue: getValue(dicomTags, 'LARGEST_PIXEL_VALUE'),\n redPaletteColorLookupTableDescriptor: getValue(\n dicomTags,\n 'RED_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR'\n ),\n greenPaletteColorLookupTableDescriptor: getValue(\n dicomTags,\n 'GREEN_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR'\n ),\n bluePaletteColorLookupTableDescriptor: getValue(\n dicomTags,\n 'BLUE_PALETTE_COLOR_LOOKUP_TABLE_DESCRIPTOR'\n ),\n redPaletteColorLookupTableData: getValue(\n dicomTags,\n 'RED_PALETTE_COLOR_LOOKUP_TABLE_DATA'\n ),\n greenPaletteColorLookupTableData: getValue(\n dicomTags,\n 'GREEN_PALETTE_COLOR_LOOKUP_TABLE_DATA'\n ),\n bluePaletteColorLookupTableData: getValue(\n dicomTags,\n 'BLUE_PALETTE_COLOR_LOOKUP_TABLE_DATA'\n ),\n }\n}\n","import * as cornerstoneMath from 'cornerstone-math'\nimport getValue from './../internals/getValue.js'\n\n/**\n * [Image Plane]{@link https://dicom.innolitics.com/ciods/ct-image/image-plane}\n *\n * @export\n * @param {*} dicomTags\n * @returns\n */\nexport default function(dicomTags) {\n\tlet rowCosines, columnCosines\n\tlet imageOrientationPatient = getValue(dicomTags, 'IMAGE_ORIENTATION_PATIENT')\n\tlet imagePositionPatient = getValue(dicomTags, 'IMAGE_POSITION_PATIENT')\n\n\tif (imageOrientationPatient) {\n\t\timageOrientationPatient = imageOrientationPatient.split('\\\\')\n\t\trowCosines = new cornerstoneMath.Vector3(\n\t\t\tparseFloat(imageOrientationPatient[0]),\n\t\t\tparseFloat(imageOrientationPatient[1]),\n\t\t\tparseFloat(imageOrientationPatient[2])\n\t\t)\n\t\tcolumnCosines = new cornerstoneMath.Vector3(\n\t\t\tparseFloat(imageOrientationPatient[3]),\n\t\t\tparseFloat(imageOrientationPatient[4]),\n\t\t\tparseFloat(imageOrientationPatient[5])\n\t\t)\n\t}\n\tif (imagePositionPatient) {\n\t\timagePositionPatient = imagePositionPatient.split('\\\\')\n\t\timagePositionPatient = new cornerstoneMath.Vector3(\n\t\t\tparseFloat(imagePositionPatient[0]),\n\t\t\tparseFloat(imagePositionPatient[1]),\n\t\t\tparseFloat(imagePositionPatient[2])\n\t\t)\n\t}\n\n\tconst { pixelSpacing, isPixelSpacingDefined } = _getPixelSpacing(dicomTags)\n\tconst [rowPixelSpacing, columnPixelSpacing] = pixelSpacing\n\n\treturn {\n\t\tframeOfReferenceUID: getValue(dicomTags, 'FRAME_OF_REFERENCE_UID'),\n\t\trows: getValue(dicomTags, 'ROWS'),\n\t\tcolumns: getValue(dicomTags, 'COLUMNS'),\n\t\trowCosines,\n\t\tcolumnCosines,\n\t\timagePositionPatient,\n\t\tpixelSpacing,\n\t\trowPixelSpacing,\n\t\tcolumnPixelSpacing,\n\t\tisPixelSpacingDefined,\n\t\timageOrientationPatient,\n\t\tsliceThickness: getValue(dicomTags, 'SLICE_THICKNESS'),\n\t\tsliceLocation: getValue(dicomTags, 'SLICE_LOCATION'),\n\t}\n}\n\n/**\n *\n *\n * @param {*} dicomTags\n * @returns\n */\nfunction _getPixelSpacing(dicomTags) {\n\tconst isBadValue = x => x === 0 || x > 10\n\tlet isPixelSpacingDefined = true\n\tlet spacing =\n\t\tgetSpacingValues(dicomTags, 'AST_CALIBRATED_PIXEL_SPACING') ||\n\t\tgetSpacingValues(dicomTags, 'PIXEL_SPACING') ||\n\t\tgetSpacingValues(dicomTags, 'IMAGER_PIXEL_SPACING') ||\n\t\tgetSpacingValues(dicomTags, 'NOMINAL_SCANNED_PIXEL_SPACING') ||\n\t\t_getUltrasoundPixelSpacing(dicomTags)\n\tif (!spacing || spacing.some(isBadValue)) {\n\t\tspacing = [1.0, 1.0]\n\t\tisPixelSpacingDefined = false\n\t}\n\treturn { pixelSpacing: spacing.map(Math.abs), isPixelSpacingDefined }\n\n\tfunction getSpacingValues(metaData, tag) {\n\t\tconst spacing = getValue(metaData, tag)\n\t\tif (spacing && spacing.some(isBadValue)) return\n\t\treturn spacing\n\t}\n}\n\n/**\n *\n * @private\n * @function _getUltrasoundPixelSpacing\n *\n * @param {*} metaData\n * @returns\n */\nfunction _getUltrasoundPixelSpacing(metaData) {\n\t// x00186011\n\tconst sequenceOfUltrasoundRegions = metaData.find(x => x.Group === 24 && x.Element === 24593)\n\tif (!sequenceOfUltrasoundRegions || !sequenceOfUltrasoundRegions.Children) return\n\n\tlet regionValues = {}\n\tsequenceOfUltrasoundRegions.Children.forEach(tag => {\n\t\tregionValues[tag.Name] = regionValues[tag.Name] || [] // create a sequence array for each tag\n\t\tregionValues[tag.Name].push(tag.Value)\n\t})\n\tconst region2DIndex = _get2DRegionIndex(regionValues)\n\tconst get2DRegionValue = tagName => parseFloat(regionValues[tagName][region2DIndex])\n\tlet rowSpacing = get2DRegionValue('PhysicalDeltaX')\n\tlet columnSpacing = get2DRegionValue('PhysicalDeltaY')\n\tif (!rowSpacing || !columnSpacing) return\n\n\tconst isCentimeters = tagName => get2DRegionValue(tagName) === 3\n\tif (isCentimeters('PhysicalUnitsXDirection')) rowSpacing *= 10\n\tif (isCentimeters('PhysicalUnitsYDirection')) columnSpacing *= 10\n\n\treturn [rowSpacing, columnSpacing]\n}\n\n/**\n *\n * @private\n * @function _get2DRegionIndex\n *\n * @param {*} regionValues\n * @returns\n */\nfunction _get2DRegionIndex(regionValues) {\n\tlet region2DIndex\n\tif (regionValues.RegionSpatialFormat && regionValues.RegionSpatialFormat.length > 1) {\n\t\tconst valueFor2D = 1 // 1=2D, 2=M-Mode, 3=Spectral, 4=Waveform, 5=Graphics\n\t\tregion2DIndex = regionValues.RegionSpatialFormat.findIndex(value => parseInt(value) === valueFor2D)\n\t}\n\treturn region2DIndex > 0 ? region2DIndex : 0 // fallback to first region\n}\n","import getValue from './../internals/getValue.js'\n// DBTODO: Dicom image loader\n// import getLUTs from './getLUTs.js'\n\nexport default function(dicomTags) {\n return {\n // TODO VOT LUT Sequence\n rescaleIntercept: getValue(dicomTags, 'RESCALE_INTERCEPT'),\n rescaleSlope: getValue(dicomTags, 'RESCALE_SLOPE'),\n rescaleType: getValue(dicomTags, 'RESCALE_TYPE'),\n // modalityLUTSequence: getLUTs(\n // dataSet.uint16('x00280103'),\n // dataSet.elements.x00283000\n // ),\n }\n}\n","import getValue from './../internals/getValue.js'\n\n/**\n * This function extracts miltiframe information from a dicomParser.DataSet object.\n *\n * @param dataSet {Object} An instance of dicomParser.DataSet object where multiframe information can be found.\n * @return {Object} An object containing multiframe image metadata (frameIncrementPointer, frameTime, frameTimeVector, etc).\n */\nexport default function(dicomTags) {\n const imageInfo = {\n isMultiframeImage: false,\n frameIncrementPointer: null,\n numberOfFrames: 0,\n frameTime: 0,\n frameTimeVector: null,\n averageFrameRate: 0, // backwards compatibility only... it might be useless in the future\n }\n\n let frameTime\n const numberOfFrames = getValue(dicomTags, 'NUMBER_OF_FRAMES', -1)\n\n if (numberOfFrames > 0) {\n // set multi-frame image indicator\n imageInfo.isMultiframeImage = true\n imageInfo.numberOfFrames = numberOfFrames\n\n const frameIncrementPointer = _getFrameIncrementPointer(dicomTags)\n if (frameIncrementPointer === 'frameTimeVector') {\n // Frame Increment Pointer points to Frame Time Vector (0018,1065) field\n const frameTimeVector = getValue(dicomTags, 'FRAME_TIME_VECTOR')\n if (frameTimeVector instanceof Array && frameTimeVector.length > 0) {\n imageInfo.frameIncrementPointer = frameIncrementPointer\n imageInfo.frameTimeVector = frameTimeVector\n imageInfo.frameTime =\n frameTimeVector.reduce((a, b) => a + b) / frameTimeVector.length\n imageInfo.averageFrameRate = 1000 / imageInfo.frameTime\n }\n } else {\n frameTime = getValue(dicomTags, 'FRAME_TIME')\n if (frameTime > 0) {\n imageInfo.frameIncrementPointer = frameIncrementPointer\n imageInfo.frameTime = frameTime\n imageInfo.averageFrameRate = 1000 / frameTime\n }\n }\n }\n\n return imageInfo\n}\n\n/**\n * TODO: `frameIncrementPointer` tells us which tag to use for frameTime\n * TODO: For now, we check both tags, and use whichever has a value\n *\n * @private\n * @param {*} dicomTags\n * @returns\n */\nfunction _getFrameIncrementPointer(dicomTags) {\n // const frameInstancePointerNames = {\n // x00181063: 'frameTime',\n // x00181065: 'frameTimeVector',\n // }\n\n // const frameIncrementPointer = getValue(dicomTags, 'FRAME_INCREMENT_POINTER')\n const frameTime = getValue(dicomTags, 'FRAME_TIME')\n const frameTimeVector = getValue(dicomTags, 'FRAME_TIME_VECTOR')\n\n if (frameTimeVector) {\n return 'frameTimeVector'\n }\n if (frameTime) {\n return 'frameTime'\n }\n\n return ''\n}\n","import getValue from './../internals/getValue.js'\n\nexport default function(dicomTags) {\n const radiopharmaceuticalInfo = getValue(\n dicomTags,\n 'RADIOPHARMACEUTICAL_INFORMATION_SEQ'\n )\n\n if (radiopharmaceuticalInfo === undefined) {\n return\n }\n\n return {\n radiopharmaceuticalInfo: {\n // dicomParser.parseTM(getValue(radiopharmaceuticalInfo, 24, 4210, 0, '')),\n radiopharmaceuticalStartTime: 0,\n radionuclideTotalDose: getValue(dicomTags, 'RADIONUCLIDE_TOTAL_DOSE'),\n radionuclideHalfLife: getValue(dicomTags, 'RADIONUCLIDE_HALF_LIFE'),\n },\n }\n}\n","import getValue from './../internals/getValue.js'\n\nexport default function(dicomTags) {\n return {\n sopClassUID: getValue(dicomTags, 'SOP_CLASS_UID'),\n sopInstanceUID: getValue(dicomTags, 'SOP_INSTANCE_UID'),\n }\n}\n","import getValue from './../internals/getValue.js'\n// DBTODO: Dicom image loader\n// import getModalityLUTOutputPixelRepresentation from './getModalityLUTOutputPixelRepresentation.js'\n\nexport default function(dicomTags) {\n // const modalityLUTOutputPixelRepresentation = getModalityLUTOutputPixelRepresentation(\n // dataSet\n // )\n\n return {\n // DBTODO: `getNumberValues` -- expects 1 number\n windowCenter: getValue(dicomTags, 'WINDOW_CENTER'),\n windowWidth: getValue(dicomTags, 'WINDOW_WIDTH'),\n // voiLUTSequence: getLUTs(\n // modalityLUTOutputPixelRepresentation,\n // dataSet.elements.x00283010\n // ),\n }\n}\n","import metadata from './internals/metadataLookup.js'\nimport getValue from './internals/getValue.js'\nimport { getCornerstoneImageIdParts } from '@/imageLoader'\n//\nimport getGeneralImageModule from './metadataModules/getGeneralImageModule.js'\nimport getImagePixelModule from './metadataModules/getImagePixelModule.js'\nimport getImagePlaneModule from './metadataModules/getImagePlaneModule.js'\nimport getModalityLutModule from './metadataModules/getModalityLutModule.js'\nimport getMultiFrameModule from './metadataModules/getMultiFrameModule.js'\nimport getPetIsotopeModule from './metadataModules/getPetIsotopeModule.js'\nimport getSopCommonModule from './metadataModules/getSopCommonModule.js'\nimport getVoiLutModule from './metadataModules/getVoiLutModule.js'\n\n/**\n *\n * @param {String} imageId - The Cornerstone ImageId (usually a URL)\n * @param {Object} dicomTags - Dicom Tags returned by JSON endpoint\n */\nexport default function(imageId, dicomTags) {\n\tconst meta = {}\n\tmeta.raw = dicomTags\n\t// meta.instance = instanceMetadata\n\t// meta.frameNumber = data.frameNumber\n\n\t// accessionNumber, patientId, studyDate, studyTime, studyDescription,\n\t// institutionName, patientHistory\n\tmeta.study = {\n\t\tstudyInstanceUid: getValue(dicomTags, 'STUDY_INSTANCE_UID'),\n\t}\n\n\tmeta.series = {\n\t\tseriesDescription: getValue(dicomTags, 'SERIES_DESCRIPTION'),\n\t\tseriesNumber: getValue(dicomTags, 'SERIES_NUMBER'),\n\t\tseriesDate: '', // dicomParser.parseDA(getValue(metaData, 8, 33)),\n\t\tseriesTime: '', // dicomParser.parseTM(getValue(metaData, 8, 49))\n\t\tmodality: getValue(dicomTags, 'MODALITY'),\n\t\tseriesInstanceUid: getValue(dicomTags, 'SERIES_INSTANCE_UID'),\n\t\t// numImages: numImages,\n\t}\n\n\tmeta.patient = {\n\t\tname: getValue(dicomTags, 'PATIENT_NAME'),\n\t\tid: getValue(dicomTags, 'PATIENT_ID'),\n\t\tbirthDate: getValue(dicomTags, 'PATIENT_BIRTH_DATE'),\n\t\tsex: getValue(dicomTags, 'PATIENT_SEX'),\n\t\tsize: getValue(dicomTags, 'PATIENT_SIZE'),\n\t\tweight: getValue(dicomTags, 'PATIENT_WEIGHT'),\n\t\tage: getValue(dicomTags, 'PATIENT_AGE'),\n\t}\n\n\tmeta.generalImageModule = getGeneralImageModule(dicomTags)\n\tmeta.imagePixelModule = getImagePixelModule(dicomTags)\n\tmeta.imagePlaneModule = getImagePlaneModule(dicomTags)\n\tmeta.modalityLutModule = getModalityLutModule(dicomTags)\n\tmeta.multiFrameModule = getMultiFrameModule(dicomTags)\n\tmeta.petIsotopeModule = getPetIsotopeModule(dicomTags)\n\tmeta.sopCommonModule = getSopCommonModule(dicomTags)\n\tmeta.voiLutModule = getVoiLutModule(dicomTags)\n\n\t// Add the meta to the imageId lookup object\n\tconst isCornerstoneImageId = imageId.includes(':')\n\tif (isCornerstoneImageId) {\n\t\tconst idParts = getCornerstoneImageIdParts(imageId)\n\t\timageId = idParts.imageId\n\t}\n\n\timageId = imageId.toLowerCase()\n\tmetadata.lookup.set(imageId, meta)\n}\n","import metadata from './internals/metadataLookup.js'\n\n/**\n * Updates a set of metadata given a specific imageId, type, and dataset\n *\n * @public\n * @function updateMetadata\n *\n * @param {string} imageId - string image id\n * @param {string} type - (e.g. series, instance, tagDisplay)\n * @param {*} data\n * @returns {boolean} - true if data was updated; false if image wasn't found\n */\nexport default function(imageId, type, data) {\n let imageMetaUpdated = false\n imageId = imageId.toLowerCase()\n\n if (metadata.lookup.has(imageId)) {\n const deltaMeta = {}\n deltaMeta[type] = data\n\n const oldMeta = metadata.lookup.get(imageId)\n const updatedMeta = Object.assign({}, oldMeta, deltaMeta)\n\n metadata.lookup.set(imageId, updatedMeta)\n imageMetaUpdated = true\n }\n\n return imageMetaUpdated\n}\n","import metadata from './internals/metadataLookup.js'\nimport { getCornerstoneImageIdParts } from '@/imageLoader'\n\n/**\n * Looks up metadata given a specified module and imageId\n * A module may be, e.g. 'study', or 'patient', or 'imagePlane'. These types\n * are keys in the stored metadata objects. Modules are loosely based on DICOM\n * modules: [ImagePixelModule - Example]{@link http://dicom.nema.org/medical/dicom/2016e/output/chtml/part03/sect_C.7.6.3.html}\n *\n * @public\n * @function provider\n *\n * @param {string} moduleName - The name/subset of information to locate\n * @param {string} imageId - A unique identifier for an image\n * @returns {Object} Relevant metadata of the specified type\n */\nexport default function(moduleName, imageId) {\n\tconst isCornerstoneImageId = imageId.includes(':')\n\tif (isCornerstoneImageId) {\n\t\tconst idParts = getCornerstoneImageIdParts(imageId)\n\t\timageId = idParts.imageId\n\t}\n\n\timageId = imageId.toLowerCase()\n\tconst imageMetadata = metadata.lookup.get(imageId)\n\n\tif (!imageMetadata) {\n\t\treturn\n\t}\n\n\tif (imageMetadata.hasOwnProperty(moduleName)) {\n\t\treturn imageMetadata[moduleName]\n\t}\n}\n","import add from './addMetadata.js'\nimport update from './updateMetadata.js'\nimport provider from './provider.js'\nimport api from '@services/api'\nimport { updatePrecachedCornerstoneImage } from '@/imageLoader'\n\n//\nimport metadata from './internals/metadataLookup.js'\nimport store from '@store/'\n/**\n * Clear all cached metadata\n *\n * @public\n * @function clear\n *\n * @returns {undefined}\n */\nconst clear = () => metadata.lookup.clear()\n\n/**\n * Return the metadata for the given imageId\n *\n * @public\n * @function get\n *\n * @param {String} imageId The Cornerstone ImageId\n * @returns {*} image metadata\n */\nconst get = imageId => {\n\treturn metadata.lookup.get(imageId.toLowerCase())\n}\n\n/**\n * Returns true if the imageId exists\n *\n * @public\n * @function has\n *\n * @param {String} imageId The Cornerstone ImageId\n * @returns {boolean} - True if imageId exists\n */\nconst has = imageId => metadata.lookup.has(imageId.toLowerCase())\n\n/**\n * Removes the metadata for the given imageId from the lookup\n *\n * @public\n * @function remove\n *\n * @param {String} imageId The Cornerstone ImageId\n * @returns {boolean} - True if found and deleted; false if not found\n */\nconst remove = imageId => metadata.lookup.delete(imageId.toLowerCase())\n\n// Named\nexport { provider }\n\n// Default\nexport default {\n\tadd,\n\tclear,\n\tget,\n\thas,\n\tremove,\n\tupdate,\n}\n\nexport function loadMetadata(series) {\n\tif (series.images.every(i => has(i.imageId))) return\n\tif (series && !series.isFakeSeries) {\n\t\treturn api.viewer.getMetadata(series).then(addSeriesMetadata)\n\t} else {\n\t\treturn api.viewer.getMetaByImage(series).then(responses => addSeriesMetadata([].concat(...responses)))\n\t}\n}\n\nfunction addSeriesMetadata(seriesMetadata) {\n\tconst promises = seriesMetadata.map(\n\t\tdata =>\n\t\t\tnew Promise(resolve => {\n\t\t\t\tif (!data.ImageId) return resolve()\n\t\t\t\tconst imageId = data.ImageId.toLowerCase()\n\t\t\t\tadd(imageId, data.DicomTags)\n\t\t\t\tupdatePrecachedCornerstoneImage(imageId)\n\t\t\t\tconst calibration = store.state.viewer.calibrations && store.state.viewer.calibrations[imageId]\n\t\t\t\tif (calibration) {\n\t\t\t\t\t// apply custom calibration sent from another window\n\t\t\t\t\tconst { oldLength, oldPixelSpacing, newLength } = calibration\n\t\t\t\t\tstore.dispatch('updateCalibration', { imageId, oldLength, oldPixelSpacing, newLength })\n\t\t\t\t}\n\t\t\t\tresolve()\n\t\t\t})\n\t)\n\treturn Promise.all(promises)\n}\n","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{attrs:{\"close-on-escape\":false,\"close-on-overlay-click\":false},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"modal-dialog\"},[_c('dlg-header',{attrs:{\"title\":_vm.title,\"show-close\":_vm.showCloseHeader},on:{\"close\":function($event){return _vm.$emit('close', false)}}},[_vm._t(\"header\")],2),_c('div',{staticClass:\"modal-body\",class:{ scroll: _vm.scroll, 'no-header': !_vm.title }},[_vm._t(\"default\")],2),(_vm.showFooter)?_c('div',{staticClass:\"footer right\"},[_vm._l((_vm.actions),function(action){return [(action.type === 'button')?_c('ast-button',{key:action.name,ref:\"buttons\",refInFor:true,staticStyle:{\"min-width\":\"64px\"},attrs:{\"type\":_vm.actions.length === 1 ? 'primary' : 'default',\"disabled\":action.isDisabled},nativeOn:{\"click\":function($event){return _vm.$emit(action.emit)}}},[(action.icon)?_c('svg-icon',{attrs:{\"icon\":action.icon}}):_vm._e(),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(action.name)+\"\\n\\t\\t\\t\\t\")],1):_vm._e()]}),_c('ast-button',{nativeOn:{\"click\":function($event){return _vm.$emit('close', true)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.closeText)+\"\\n\\t\\t\\t\")])],2):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ModalDialog.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!./ModalDialog.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ModalDialog.vue?vue&type=template&id=2008b94a\"\nimport script from \"./ModalDialog.vue?vue&type=script&lang=js\"\nexport * from \"./ModalDialog.vue?vue&type=script&lang=js\"\nimport style0 from \"./ModalDialog.vue?vue&type=style&index=0&id=2008b94a&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","import { validator } from '@/utils/validation'\nimport { Binding, METHODS } from '@/reporting/binding'\nimport { ContextMeta } from '@/reporting/context'\nimport { userData as user } from '@services/userData'\nimport reportService from '@services/reportService'\nimport consultationService from '@services/consultationService'\n\nconst textdiv = document.createElement('div')\nlet nextCellId = 1\n\nexport class ReportDetail {\n\treportId: string = null\n\tconsultantReportId: string = null\n\tmaxPartnerData?: number\n\n\tareImagesAvailable: boolean\n\tcompletedBy: string\n\tfinalizedBy: IUserInfo\n\tcompletedDateTime: string\n\tisComplete: boolean\n\tgroupConsultantId?: string\n\tisLocked: boolean\n\tlockedBy: string\n\tlockedByUserId: string\n\tlockedDateTime: string\n\tstandard: Template\n\trequest: Template\n\tresponse: Template\n\townerId: string\n\tcanViewResponse: boolean\n\tcanRespond: boolean = false\n\tcanRecall: boolean = false\n\tcanDelete: boolean = false\n\tforceConsultantHeader: boolean = false\n\tskipValidation: boolean = false\n\n\tactiveTemplate: Template\n\n\tstudies: IStudy[] = []\n\tconsultants: IConsultant[]\n\tpriorities: IPriority[]\n\tservices: IConsultantService[]\n\tbillingCodes: IBillingCode[]\n\tseriesToExclude: string[] = []\n\tisValid: boolean = false\n\tvalidationErrors: string[] = []\n\temails: string[] = []\n\tstudyIds: string[] = []\n\tpetRaysExamTypes?: string[]\n\n\tstudy: IStudyContext = null\n\tpatient: IPatient = null\n\tclient: IClient = null\n\tpriority: number = 0\n\n\tpriorityInfo: IProrityInfo\n\n\tserviceId: string = null\n\tbillingCodeId: string = null\n\tconsultant: IConsultant = null\n\tdrafter: IDrafter = null\n\tselectedConsultant: IConsultant = null\n\trelatedReports: IRelatedReport[] = []\n\timages: IReportImage[] = []\n\tattachments: IAttachment[] = []\n\timageComments: IImageComment[] = []\n\taddendums: IAddendum[] = []\n\n\tisPreview?: boolean = false\n\ttemplateSetName?: string\n\n\tappliedResidentResponseId: string = null\n\tresidentResponses: IResidentResponse[] = []\n\n\taddStudy(study: IStudy) {\n\t\tthis.addNewAttachments(study.imageData.attachments)\n\t\tthis.addNewImages(study.imageData.thumbnails)\n\t\tthis.studies.push(study)\n\t\tthis.studyIds.push(study.studyId)\n\t}\n\n\taddNewAttachments(attachments: IViewerAttachment[]) {\n\t\tconst newAttachments: IAttachment[] = attachments\n\t\t\t.filter(a => !this.attachments.some(existing => existing.seriesId === a.seriesId))\n\t\t\t.map(a => ({\n\t\t\t\timageId: a.imageId,\n\t\t\t\tseriesId: a.seriesId,\n\t\t\t\tdescription: a.description,\n\t\t\t\tcomment: undefined,\n\t\t\t\toriginalFileName: a.originalFileName,\n\t\t\t\tfileExtension: a.fileExtension,\n\t\t\t\tstorageLocation: a.storageLocation,\n\t\t\t}))\n\n\t\tthis.attachments = this.attachments.concat(newAttachments)\n\t}\n\n\taddNewImages(images: IViewerImageThumbnail[]) {\n\t\tconst newImages: IReportImage[] = images\n\t\t\t.filter(t => !this.images.some(existing => existing.seriesId === t.seriesId))\n\t\t\t.map(i => ({\n\t\t\t\tid: i.imageId,\n\t\t\t\tseriesId: i.seriesId,\n\t\t\t\tlimb: undefined,\n\t\t\t\tview: undefined,\n\t\t\t\tanatomy: undefined,\n\t\t\t\tclinicCode: undefined,\n\t\t\t\tnumberOfImages: i.numberOfImages,\n\t\t\t\tsimpleName: '',\n\t\t\t\tthumbnailUrl: undefined,\n\t\t\t\tseriesNumber: i.instanceNumber,\n\t\t\t\tstorageLocation: i.storageLocation,\n\t\t\t}))\n\t\tthis.images = this.images.concat(newImages)\n\t}\n\n\tgetStandardReportData(complete: boolean): IStandardReportData {\n\t\tlet values = this.activeTemplate.saveValues()\n\t\treturn {\n\t\t\treportId: this.reportId,\n\t\t\tpatient: this.patient,\n\t\t\tclient: this.client,\n\t\t\tvalues,\n\t\t\timageComments: this.imageComments.filter(i => i.changed === true),\n\t\t\tcomplete,\n\t\t\tbillingCodeId: this.billingCodeId,\n\t\t}\n\t}\n\n\tgetSaveResponseForm(complete = false): IConsultantResponseForm {\n\t\tlet values = this.response.saveValues()\n\n\t\treturn {\n\t\t\tconsultantReportId: this.consultantReportId,\n\t\t\tresponseReportId: this.response.reportId,\n\t\t\tvalues,\n\t\t\timageComments: this.imageComments.filter(i => i.changed === true || this.appliedResidentResponseId),\n\t\t\tbillingCodeId: this.billingCodeId,\n\t\t\tcomplete,\n\t\t}\n\t}\n\n\tgetNewRequestData(): INewConsultationRequest {\n\t\tlet values = this.request.saveValues()\n\n\t\t// determine which thumbnails are fake ids\n\t\t// add them to the excluded image ids list\n\t\tlet fakeSeries = {}\n\t\tthis.images.forEach(i => {\n\t\t\tif (i.fakeSeriesId) fakeSeries[i.fakeSeriesId] = true\n\t\t})\n\n\t\tlet seriesToExclude = this.seriesToExclude.filter(s => fakeSeries[s] === undefined)\n\t\tlet imagesToExclude = this.seriesToExclude.filter(s => fakeSeries[s] !== undefined)\n\n\t\tconst result: INewConsultationRequest = {\n\t\t\tconsultantId: this.consultant.id,\n\t\t\tselectedConsultantId: this.selectedConsultant && this.selectedConsultant.id,\n\t\t\tpriority: this.priority,\n\t\t\tserviceId: this.serviceId,\n\t\t\tbillingCodeId: this.billingCodeId,\n\t\t\tstudyIds: this.studyIds,\n\t\t\tseriesToExclude,\n\t\t\timagesToExclude,\n\t\t\trequestType: values['RequestSelector'],\n\t\t\tpatient: this.patient,\n\t\t\tclient: this.client,\n\t\t\temails: this.emails,\n\t\t\ttemplateId: this.request.templateId,\n\t\t\ttemplateFieldId: this.request.id,\n\t\t\tvalues: values,\n\t\t\tmodality: this.study?.modality\n\t\t}\n\t\treturn result\n\t}\n\n\tasync restartRequest(studyId: string) {\n\t\tconst studyIds = studyId.split(',')\n\t\tconst reportDetail = await consultationService.start(this.consultant.id, studyIds)\n\t\tconst oldRequest = this.request\n\t\treportDetail.request.report = this\n\t\tthis.request = reportDetail.request\n\t\tthis.request.values = oldRequest.values\n\t\tthis.request.hydrate()\n\t\tthis.setActiveTemplate(this.request)\n\t}\n\n\trefresh(r: ReportDetail) {\n\t\tthis.isComplete = r.isComplete\n\t\tthis.isLocked = r.isLocked\n\t\tthis.lockedBy = r.lockedBy\n\t\tthis.lockedByUserId = r.lockedByUserId\n\t\tthis.lockedDateTime = r.lockedDateTime\n\t\tthis.relatedReports = r.relatedReports\n\t\tthis.images = r.images\n\t\tthis.attachments = r.attachments\n\t\tthis.addendums = r.addendums\n\t\tthis.billingCodes = r.billingCodes\n\t\tthis.imageComments = r.imageComments\n\t\tthis.canDelete = r.canDelete\n\t\tthis.canRecall = r.canRecall\n\t\tthis.consultant = r.consultant\n\n\t\tthis.setCanRespond()\n\n\t\tif (this.appliedResidentResponseId) {\n\t\t\tlet rr = r.residentResponses.find(rr => rr.id === this.appliedResidentResponseId)\n\t\t\tthis.imageComments = rr.imageComments\n\t\t}\n\n\t\t// This is causing issues. Hotfixed to remove, see CH12575 for original intent\n\t\t// if (!this.activeTemplate.pendingChanges && r.activeTemplate) {\n\t\t// \tObject.assign(this.activeTemplate.values, r.activeTemplate.values)\n\t\t// }\n\n\t\tthis.activeTemplate.hydrate()\n\t}\n\n\tasync mergeResidentResponse(response: IResidentResponse) {\n\t\tfor (let prop in response.values) {\n\t\t\tthis.response.changeValue(prop, response.values[prop])\n\t\t}\n\n\t\tfor (let i = 0; i < response.imageComments.length; i++) {\n\t\t\tlet ic = response.imageComments[i]\n\t\t\tif (this.imageComments.find(i => i.imageId === ic.imageId)) continue\n\t\t\tic.reportImageId = await reportService\n\t\t\t\t.saveImageComment(this.reportId, {\n\t\t\t\t\timageId: ic.imageId,\n\t\t\t\t\thtmlValue: ic.htmlValue,\n\t\t\t\t\ttextValue: ic.textValue,\n\t\t\t\t})\n\t\t\t\t.then(r => r.data)\n\t\t\tthis.imageComments.push(ic)\n\t\t}\n\n\t\tthis.response.hydrate()\n\t\tthis.validate()\n\t}\n\n\tapplyResidentResponse(response: IResidentResponse) {\n\t\tif (this.response) {\n\t\t\tfor (let prop in response.values) {\n\t\t\t\tthis.response.changeValue(prop, response.values[prop])\n\t\t\t}\n\t\t\tthis.imageComments = response.imageComments\n\t\t\tthis.appliedResidentResponseId = response.id\n\t\t\tthis.response.hydrate()\n\t\t}\n\t}\n\n\tsetCanRespond() {\n\t\tconst isRespondingAsResident = user.claims.isConsultantResident && this.residentResponses.length\n\t\tconst isResidentResponseSubmitted = this.appliedResidentResponse && this.appliedResidentResponse.status > 0\n\n\t\tthis.canRespond =\n\t\t\t!this.isComplete &&\n\t\t\tuser.claims.isConsultantUser &&\n\t\t\t(!this.groupConsultantId || user.claims.userId === this.lockedByUserId || isRespondingAsResident) &&\n\t\t\t!isResidentResponseSubmitted\n\t\tif (this.response) {\n\t\t\tthis.response.root.readOnly = !this.canRespond\n\t\t}\n\t}\n\n\tget appliedResidentResponse(): IResidentResponse {\n\t\treturn this.residentResponses.find(rr => rr.id === this.appliedResidentResponseId)\n\t}\n\n\tget isSalesEntry() {\n\t\treturn this.consultant.type === 'Repository'\n\t}\n\n\tget isStandardReport() {\n\t\treturn this.consultantReportId === null\n\t}\n\n\tvalidateImages() {\n\t\tif (this.consultant && this.consultant.isImageOptional) return true\n\t\tlet excludedMap = {}\n\t\tthis.seriesToExclude.forEach(s => (excludedMap[s] = true))\n\n\t\tconst hasImages = this.images.some(i => !excludedMap[i.fakeSeriesId || i.seriesId])\n\t\tconst hasAttachments = this.attachments.some(i => !excludedMap[i.seriesId])\n\n\t\tif (!hasImages && !hasAttachments && !this.isPreview) {\n\t\t\tthis.validationErrors.push('At least one image or attachment must be included in the report.')\n\t\t}\n\t}\n\n\tvalidateFields(template: Template) {\n\t\tlet controls: Cell[] = []\n\t\ttemplate.root.getControlsDeep(controls)\n\n\t\tlet missingReqData = false\n\t\tfor (let i = 0; i < controls.length; i++) {\n\t\t\tlet c = controls[i]\n\n\t\t\t// dont validate field form another template (Request Info)\n\t\t\tif (c.template === template) {\n\t\t\t\tif (c.props.required === true && !c.hasValue) {\n\t\t\t\t\tmissingReqData = true\n\t\t\t\t}\n\n\t\t\t\tif (c.onValidate) c.onValidate()\n\t\t\t}\n\t\t}\n\n\t\tif (missingReqData) {\n\t\t\tthis.validationErrors.push('Please complete all required fields.')\n\t\t}\n\n\t\tthis.validatePartnerData(controls)\n\t}\n\n\tvalidatePartnerData(controls: Cell[]) {\n\t\tif (!this.maxPartnerData) return true\n\t\tlet map = this.activeTemplate.partnerFieldMap\n\t\tif (!map) return true\n\n\t\tlet length = 0\n\t\tlet partnerFieldPaths = {}\n\n\t\tfor (let field in map) {\n\t\t\tmap[field].forEach(p => (partnerFieldPaths[p] = true))\n\t\t}\n\n\t\tcontrols.forEach(c => {\n\t\t\tif (partnerFieldPaths[c.path] !== undefined) {\n\t\t\t\ttextdiv.innerHTML = c.value\n\t\t\t\tlength += textdiv.innerText.length\n\t\t\t}\n\t\t})\n\n\t\tif (length > this.maxPartnerData) {\n\t\t\tlet over = length - this.maxPartnerData\n\t\t\tthis.validationErrors.push(\n\t\t\t\t`The total length for partner fields cannot exceed ${this.maxPartnerData}. You are currently ${over}\tcharacter${\n\t\t\t\t\tover > 1 ? 's' : ''\n\t\t\t\t} over.`\n\t\t\t)\n\t\t}\n\t}\n\n\tvalidateClient() {\n\t\tlet valid = this.client && validator.hasRequired(this.client, ['email', 'name', 'organization'])\n\t\tif (!valid) {\n\t\t\tthis.validationErrors.push('Please complete all required fields.')\n\t\t}\n\t}\n\n\tvalidate() {\n\t\tif (this.skipValidation) return\n\t\tif (!this.activeTemplate) return\n\t\tthis.validationErrors = []\n\n\t\tthis.validateFields(this.activeTemplate)\n\n\t\tif (this.activeTemplate === this.request) {\n\t\t\tthis.validateClient()\n\t\t\tthis.validateImages()\n\t\t}\n\n\t\tthis.isValid = this.validationErrors.length === 0\n\t\treturn this.isValid\n\t}\n\n\tsetActiveTemplate(template: Template) {\n\t\tthis.activeTemplate = template\n\t\tthis.validate()\n\t}\n\n\tstatic async loadFromScheduleItemReport(json: IConsultantReport): Promise {\n\t\tlet response = json.response\n\t\tlet result = new ReportDetail()\n\t\tresult.canRespond = true\n\t\tresult.skipValidation = true\n\t\tresult.consultant = json.consultant\n\t\tresult.consultantReportId = json.id\n\t\tresult.billingCodeId = json.billingCodeId\n\t\tresult.billingCodes = json.billingCodes\n\n\t\tlet meta = await reportService.getTemplateMeta()\n\t\tlet template = Template.load(response.template, false, meta)\n\n\t\tresult.response = template\n\t\ttemplate.id = response.template.templateFieldId\n\t\ttemplate.templateId = response.template.templateId\n\t\ttemplate.reportId = response.reportId\n\t\ttemplate.values = response.values\n\t\ttemplate.report = result\n\n\t\tresult.response.hydrate()\n\t\tresult.setActiveTemplate(template)\n\t\treturn result\n\t}\n\n\tstatic loadFromStdReport(json: IStandardReport, hasWritePermission: boolean) {\n\t\tlet result = new ReportDetail()\n\t\tresult.reportId = json.reportId\n\t\tresult.patient = json.patient\n\t\tresult.client = json.client\n\t\tresult.images = json.images\n\t\tresult.attachments = json.attachments\n\t\tresult.imageComments = json.imageComments\n\t\tresult.addendums = json.addendums\n\t\tresult.studyIds = json.studyIds\n\t\tresult.study = json.study\n\t\tresult.isComplete = json.completed\n\t\tresult.finalizedBy = json.finalizedBy\n\t\tresult.ownerId = json.ownerId\n\t\tresult.templateSetName = json.templateSetName\n\t\tresult.billingCodeId = json.billingCodeId\n\t\tresult.billingCodes = json.billingCodes\n\n\t\tlet template = Template.load(json.template, false)\n\n\t\ttemplate.reportId = json.reportId\n\t\ttemplate.values = json.values\n\t\ttemplate.report = result\n\t\tif (result.isComplete || !hasWritePermission) {\n\t\t\ttemplate.root.readOnly = true\n\t\t}\n\t\ttemplate.hydrate()\n\n\t\tresult.setActiveTemplate(template)\n\t\treturn result\n\t}\n\n\tstatic loadFromConsultantReport(json: IConsultantReport): ReportDetail {\n\t\tlet result = new ReportDetail()\n\t\tresult.reportId = json.request.reportId\n\t\tresult.consultantReportId = json.id\n\t\tresult.maxPartnerData = json.maxPartnerData\n\t\tresult.addendums = json.addendums\n\t\tresult.imageComments = json.imageComments\n\t\tresult.images = json.images\n\t\tresult.relatedReports = json.relatedReports\n\t\tresult.patient = json.patient\n\t\tresult.consultant = json.consultant\n\t\tresult.drafter = json.drafter\n\t\tresult.client = json.client\n\t\tresult.attachments = json.attachments\n\t\tresult.studyIds = json.studyIds\n\t\tresult.study = json.study\n\t\tresult.services = json.services\n\t\tresult.emails = json.emails\n\t\tresult.consultants = json.consultants\n\t\tresult.canViewResponse = json.canViewResponse\n\t\tresult.forceConsultantHeader = json.forceConsultantHeader\n\n\t\tresult.isLocked = json.isLocked\n\t\tresult.isComplete = json.isComplete\n\t\tresult.canRecall = json.canRecall\n\t\tresult.canDelete = json.canDelete\n\t\tresult.completedBy = json.completedBy\n\t\tresult.completedDateTime = json.completedDateTime\n\t\tresult.groupConsultantId = json.groupConsultantId\n\t\tresult.lockedByUserId = json.lockedByUserId\n\t\tresult.lockedBy = json.lockedBy\n\t\tresult.areImagesAvailable = json.areImagesAvailable\n\t\tresult.lockedDateTime = json.lockedDateTime\n\n\t\tresult.priorities = json.priorities\n\t\tresult.priorityInfo = json.priorityInfo\n\t\tresult.priority = json.priority\n\t\tresult.billingCodeId = json.billingCodeId\n\t\tresult.billingCodes = json.billingCodes\n\n\t\tresult.residentResponses = json.residentResponses || []\n\n\t\tlet templates: ITemplate[] = [json.request.template]\n\t\tif (json.response) {\n\t\t\ttemplates.push(json.response.template)\n\t\t}\n\n\t\ttemplates.forEach(t => {\n\t\t\tlet template = Template.load(t, false)\n\t\t\tlet isRequest = t === json.request.template\n\t\t\tlet report: IReport = isRequest ? json.request : json.response\n\n\t\t\tif (isRequest) {\n\t\t\t\tresult.request = template\n\t\t\t} else {\n\t\t\t\tresult.response = template\n\t\t\t}\n\n\t\t\ttemplate.id = report.template.templateFieldId\n\t\t\ttemplate.templateId = report.template.templateId\n\t\t\ttemplate.reportId = report.reportId\n\t\t\ttemplate.values = report.values\n\t\t\ttemplate.report = result\n\t\t})\n\n\t\tresult.request.hydrate()\n\t\tif (result.response) {\n\t\t\tresult.response.hydrate()\n\t\t}\n\n\t\treturn result\n\t}\n}\n\nexport const TemplateSetStatus = {\n\tDraft: 'Draft',\n\tPublished: 'Published',\n\tRetired: 'Retired',\n\tDeleted: 'Deleted',\n}\n\nexport class TemplateSet {\n\tid: string\n\tname: string\n\ttype: string // 'teleconsultation|report'\n\tmodifiedDate: string = null\n\tstatus: string = null\n\tisLegacy: boolean = false\n\ttemplates: Template[] = []\n\tconsultantId?: string\n\tapiWarnings: string[] = []\n\n\tget isActive(): boolean {\n\t\treturn this.status === TemplateSetStatus.Published || this.isLegacy\n\t}\n\n\tset isActive(value: boolean) {\n\t\tthis.status = value ? TemplateSetStatus.Published : TemplateSetStatus.Draft\n\t}\n\n\tget warnings(): string[] {\n\t\tlet result: string[] = [...this.apiWarnings, ...new Set(...this.templates.map(t => t.warnings))]\n\t\treturn result\n\t}\n\n\tget isStandard(): boolean {\n\t\treturn this.type !== 'Teleconsultation'\n\t}\n\n\tstatic load(json: ITemplateSet, editorMode = false, meta?: IMeta): TemplateSet {\n\t\tlet set = new TemplateSet()\n\t\tset.id = json.id\n\t\tset.consultantId = json.consultantId\n\t\tset.name = json.name\n\t\tset.type = json.type\n\t\tset.status = json.status\n\t\tset.isLegacy = json.isLegacy\n\t\tset.modifiedDate = json.modifiedDate\n\t\tjson.templates.forEach(t => {\n\t\t\tlet template = Template.load(t, editorMode, meta)\n\t\t\tset.templates.push(template)\n\t\t})\n\n\t\tlet context = {\n\t\t\tReport: set.getTemplate('Report'),\n\t\t\tRequest: set.getTemplate('Request'),\n\t\t\tResponse: set.getTemplate('Response'),\n\t\t}\n\n\t\tset.templates.forEach(t => t.hydrate(context))\n\t\treturn set\n\t}\n\n\tgetTemplate(type: string): Template {\n\t\treturn this.templates.find(t => t.type === type)\n\t}\n\n\ttoJSON(): ITemplateSet {\n\t\treturn {\n\t\t\tid: this.id,\n\t\t\tconsultantId: this.consultantId,\n\t\t\tname: this.name,\n\t\t\ttype: this.type,\n\t\t\tmodifiedDate: this.modifiedDate,\n\t\t\tstatus: this.status,\n\t\t\tisLegacy: this.isLegacy,\n\t\t\ttemplates: this.templates.map(t => t.toJSON()),\n\t\t}\n\t}\n}\n\nexport class Template {\n\tid: string // this is the ReportTemplateField.Id\n\ttemplateId: string // this is the ReportTemplate.Id\n\tmetaVersion: number\n\ttype: string\n\tisLegacy: boolean\n\troot: Layout = null\n\tpageHeader: Layout = null\n\tpageFooter: Layout = null\n\tlayouts: Layout[] = []\n\teditorMode: boolean = false\n\tvalues: ValueMap = {}\n\tcalcValues: ValueMap = {}\n\tpendingChanges = false\n\treportId: string = null // Report.Id\n\tcontext: ValueMap = {}\n\treport: ReportDetail = null\n\tmeta: IMeta\n\tpartnerFieldMap: PartnerFieldMap = {}\n\tpartnerLayoutMap: PartnerLayoutMap = {}\n\tdraftWatermark: string = null\n\twatermarkUrl: string = null\n\twatermarkOpacity: number = 10\n\timageCommentColumns: number = 1\n\tonChangeCB: () => void\n\n\tconstructor(type: string, meta: IMeta) {\n\t\tif (meta === undefined) throw new Error('Missing template meta')\n\t\tthis.type = type\n\t\tthis.meta = meta\n\t}\n\n\tget isPdfTemplate() {\n\t\treturn this.type === 'PDF Report' || this.type === 'Standard PDF Report'\n\t}\n\n\tresetLayout(name: string): Layout {\n\t\tlet widget = this.meta.layouts.find(w => w.name === name)\n\t\tif (!widget) return\n\t\tlet newLayout = Layout.load(widget, this)\n\n\t\tfor (let i = this.layouts.length - 1; i >= 0; i--) {\n\t\t\tlet l = this.layouts[i]\n\t\t\tif (l.name === name) {\n\t\t\t\tconst isRoot = l.template.root === l\n\t\t\t\tthis.layouts.splice(i, 1, newLayout)\n\t\t\t\tif (isRoot) newLayout.template.root = newLayout\n\t\t\t\treturn newLayout\n\t\t\t}\n\t\t}\n\t}\n\n\tchangeValue(path: string, newValue: any) {\n\t\tif (path !== undefined) {\n\t\t\tthis.values[path] = newValue\n\t\t\tthis.calc(path)\n\t\t}\n\n\t\tif (this.report) {\n\t\t\tthis.report.validate()\n\t\t}\n\t\tthis.pendingChanges = true\n\t\tif (this.onChangeCB) this.onChangeCB()\n\t}\n\n\tsaveValues(): ValueMap {\n\t\tthis.values = {}\n\t\tthis.root.saveValues(this.values)\n\t\treturn this.values\n\t}\n\n\taddLayout(layout: Layout) {\n\t\tlayout.template = this\n\t\tthis.layouts.push(layout)\n\t}\n\n\tremoveLayout(layout: Layout) {\n\t\tlayout.template = null\n\t\tthis.layouts.splice(this.layouts.indexOf(layout), 1)\n\t}\n\n\tgetLayout(type: string): Layout {\n\t\treturn this.layouts.find(l => l.name === type)\n\t}\n\n\tcreateLayoutInstance(type: string): Layout {\n\t\tlet l = this.getLayout(type)\n\t\tif (l === undefined) {\n\t\t\t// see if there is a know global widit template\n\t\t\t// copy global widgets to template\n\t\t\tlet w = this.meta.layouts.find(w => w.name === type)\n\t\t\tif (w !== undefined) {\n\t\t\t\tl = Layout.load(w, this)\n\t\t\t\tthis.addLayout(l)\n\t\t\t} else {\n\t\t\t\tthrow new Error('unable to locate specificed layout: ' + type)\n\t\t\t}\n\t\t}\n\t\treturn l.createInstance()\n\t}\n\n\thasBindablePath(path: string): boolean {\n\t\tconst widgetPath = path.split('.')\n\t\tlet layout = this.root // default to control's root layout\n\t\tif (widgetPath.length > 1) {\n\t\t\t// if termNoPrefix still has a dot, path must be inside a widget\n\t\t\tlayout = this.layouts.find(l => l.name === widgetPath[0])\n\t\t\tif (!layout) return false\n\t\t}\n\t\treturn layout.bindableControls.some(c => c.path === path)\n\t}\n\n\tstatic load(json: ITemplate, editorMode: boolean, meta?: IMeta): Template {\n\t\tlet t = new Template(json.type, json.meta || meta)\n\t\tt.id = json.templateFieldId\n\t\tt.isLegacy = json.isLegacy === true\n\t\tt.templateId = json.templateId\n\t\tt.partnerFieldMap = json.partnerFieldMap || {}\n\t\tt.partnerLayoutMap = json.partnerLayoutMap || {}\n\t\tt.draftWatermark = json.draftWatermark || null\n\t\tt.watermarkUrl = json.watermarkUrl || null\n\t\tt.watermarkOpacity = json.watermarkOpacity || 10\n\t\tt.imageCommentColumns = json.imageCommentColumns || 1\n\t\tt.editorMode = editorMode\n\t\tjson.layouts.forEach(l => {\n\t\t\tlet layout = Layout.load(l, t)\n\t\t\tlayout.template = t\n\t\t\tt.layouts.push(layout)\n\t\t})\n\n\t\tt.pageHeader = t.layouts.find(l => l.name === json.header)\n\t\tt.pageFooter = t.layouts.find(l => l.name === json.footer)\n\t\tt.root = t.layouts.find(l => l.name === json.root)\n\t\treturn t\n\t}\n\n\tget warnings(): string[] {\n\t\tlet result: string[] = []\n\n\t\tthis.layouts.forEach(l =>\n\t\t\tl.controls.forEach(c => {\n\t\t\t\tif (c.binding && !c.binding.valid) {\n\t\t\t\t\tconst bindingErrors = c.binding.errors.join(' ')\n\t\t\t\t\tresult.push(`${c.name} binding is invalid: ${bindingErrors}`)\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\t\treturn result\n\t}\n\n\ttoJSON(): ITemplate {\n\t\treturn {\n\t\t\ttemplateId: this.templateId,\n\t\t\ttemplateFieldId: this.id,\n\t\t\ttype: this.type,\n\t\t\tmetaVersion: this.meta.version,\n\t\t\troot: this.root.name,\n\t\t\theader: this.pageHeader && this.pageHeader.name,\n\t\t\tfooter: this.pageFooter && this.pageFooter.name,\n\t\t\tlayouts: this.layouts.map(l => l.toJSON()),\n\t\t\tpartnerFieldMap: this.partnerFieldMap,\n\t\t\tpartnerLayoutMap: this.partnerLayoutMap,\n\t\t\tdraftWatermark: this.draftWatermark,\n\t\t\twatermarkUrl: this.watermarkUrl,\n\t\t\twatermarkOpacity: this.watermarkOpacity,\n\t\t\timageCommentColumns: this.imageCommentColumns,\n\t\t}\n\t}\n\n\thydrate(c: ValueMap = undefined) {\n\t\tconst report = this.report || {}\n\t\tthis.context = {\n\t\t\t...c,\n\t\t}\n\n\t\tif (report.completedDateTime) {\n\t\t\tthis.context.CompletionDate = report.completedDateTime\n\t\t}\n\n\t\tif (report.client) {\n\t\t\tthis.context.ReferredBy = {\n\t\t\t\tAddress: report.client.address,\n\t\t\t\tCity: report.client.city,\n\t\t\t\tState: report.client.state,\n\t\t\t\tPostalCode: report.client.postalCode,\n\t\t\t\tEmail: report.client.email,\n\t\t\t\tName: report.client.name,\n\t\t\t\tOrganization: report.client.organization,\n\t\t\t\tPhone: report.client.phone,\n\t\t\t}\n\t\t}\n\n\t\tif (report.consultant) {\n\t\t\tthis.context.Consultant = {\n\t\t\t\tAddress: report.consultant.address,\n\t\t\t\tCity: report.consultant.city,\n\t\t\t\tState: report.consultant.state,\n\t\t\t\tEmail: report.consultant.email,\n\t\t\t\tName: report.consultant.name,\n\t\t\t\tOrganization: report.consultant.organization,\n\t\t\t\tPhone: report.consultant.phone,\n\t\t\t\tWebsite: report.consultant.website,\n\t\t\t}\n\t\t}\n\n\t\tif (report.drafter) {\n\t\t\tthis.context.DraftedBy = {\n\t\t\t\tName: report.drafter.name,\n\t\t\t\tLabel: report.drafter.label,\n\t\t\t}\n\t\t}\n\n\t\tif (report.patient) {\n\t\t\tthis.context.Patient = {\n\t\t\t\tBirthdate: report.patient.birthdate,\n\t\t\t\tBreed: report.patient.breed,\n\t\t\t\tGender: report.patient.gender,\n\t\t\t\tName: report.patient.name,\n\t\t\t\tOwner: report.patient.owner,\n\t\t\t\tPatientId: report.patient.id,\n\t\t\t\tSpecies: report.patient.species,\n\t\t\t\tWeight: report.patient.weight,\n\t\t\t\tWeightUnit: report.patient.weightUnit,\n\t\t\t}\n\t\t}\n\n\t\tif (report.finalizedBy) {\n\t\t\tthis.context.FinalizedBy = {\n\t\t\t\tFullName: report.finalizedBy.fullName,\n\t\t\t\tFirstName: report.finalizedBy.firstName,\n\t\t\t\tLastName: report.finalizedBy.lastName,\n\t\t\t\tOrganization: report.finalizedBy.organization,\n\t\t\t\tAddress: report.finalizedBy.address,\n\t\t\t\tCity: report.finalizedBy.city,\n\t\t\t\tState: report.finalizedBy.state,\n\t\t\t\tZip: report.finalizedBy.zip,\n\t\t\t\tPhone: report.finalizedBy.phone,\n\t\t\t\tWebsite: report.finalizedBy.website,\n\t\t\t\tEmail: report.finalizedBy.email,\n\t\t\t\tSuffix: report.finalizedBy.suffix,\n\t\t\t\tDegree: report.finalizedBy.degree,\n\t\t\t\tCountry: report.finalizedBy.country,\n\t\t\t\tTitle: report.finalizedBy.title,\n\t\t\t}\n\t\t}\n\n\t\tif (report.study) {\n\t\t\tthis.context.Study = {\n\t\t\t\tStudyDate: report.study.studyDate,\n\t\t\t\t// Map full ModalityName to Modality key for backwards compatibility\n\t\t\t\tModality: report.study.modalityName,\n\t\t\t}\n\t\t}\n\n\t\tif (report.billingCodeId) {\n\t\t\tlet bc = report.billingCodes.find(b => b.id === report.billingCodeId)\n\t\t\tif (bc) {\n\t\t\t\tthis.context.BillingCode = {\n\t\t\t\t\tName: bc.name,\n\t\t\t\t\tValue: bc.value,\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (report.standard && this !== report.standard) {\n\t\t\tthis.context.Report = this.report.standard\n\t\t}\n\n\t\tif (report.request && this !== report.request) {\n\t\t\tthis.context.Request = this.report.request\n\t\t}\n\n\t\tif (report.response && this !== report.response) {\n\t\t\tthis.context.Response = this.report.response\n\t\t}\n\n\t\tthis.root.hydrate()\n\t}\n\n\tcalc(changedPath?: string) {\n\t\tthis.root.calc(changedPath)\n\t}\n\n\tgetValue(path: string): any {\n\t\tlet value = this.values[path]\n\t\tif (!value && value !== 0) value = this.calcValues[path]\n\t\treturn value\n\t}\n}\n\nexport class Layout {\n\tselected: boolean = false\n\tname: string = null\n\troot: Panel = null\n\treadOnly: boolean = false\n\ttemplate: Template = null\n\tparent: Cell = null\n\tforcePath: string = null\n\tgroup: string = null\n\tpreviewInEditor: boolean = false\n\n\t// used for databinding\n\tcontext: ValueMap = {}\n\n\tconstructor(name: string, template: Template) {\n\t\tthis.name = name || getNewWidgetName()\n\t\tthis.template = template\n\t\tthis.root = new Panel('Panel', this, this.name)\n\n\t\tfunction getNewWidgetName(): string {\n\t\t\tlet newWidgetName: string\n\t\t\tlet newWidgetNumber = 1\n\t\t\tdo {\n\t\t\t\tnewWidgetName = `${template.type} Widget ${newWidgetNumber}`\n\t\t\t\tnewWidgetNumber++\n\t\t\t} while (template.layouts.some(l => l.name === newWidgetName))\n\t\t\treturn newWidgetName\n\t\t}\n\t}\n\n\t// get an array of control directly on this layout\n\tget controls(): Cell[] {\n\t\tlet result: Cell[] = []\n\t\tresult.push(this.root)\n\t\tLayout.getControls(this.root, result)\n\t\treturn result\n\t}\n\n\tget report(): ReportDetail {\n\t\treturn this.template.report\n\t}\n\n\tget activeRoot() {\n\t\treturn this.report && this.report.activeTemplate.root === this\n\t}\n\n\tget bindableControls(): Cell[] {\n\t\treturn this.controls.filter(c => c.def.isBindable)\n\t}\n\n\tstatic getControls(panel: Panel, result: Cell[]) {\n\t\tpanel.cells.forEach(c => {\n\t\t\tresult.push(c)\n\t\t\tif (c instanceof Panel) {\n\t\t\t\tLayout.getControls(c, result)\n\t\t\t}\n\t\t})\n\t}\n\n\tgetControlsDeep(list: Cell[]) {\n\t\tthis.controls.forEach(c => {\n\t\t\tlist.push(c)\n\t\t\tc.subLayouts.forEach(l => l.getControlsDeep(list))\n\t\t})\n\t}\n\n\tget editorMode(): boolean {\n\t\treturn this.template.editorMode && !this.readOnly\n\t}\n\n\tget isRoot(): boolean {\n\t\treturn this.template.root === this\n\t}\n\n\tget path(): string {\n\t\tif (this.forcePath) return this.forcePath\n\n\t\tif (this.parent) {\n\t\t\tlet idx = this.parent.subLayouts.indexOf(this)\n\t\t\treturn `${this.parent.path}.[${idx}]`\n\t\t} else if (!this.isRoot) {\n\t\t\treturn this.name\n\t\t}\n\t\treturn ''\n\t}\n\n\thydrate() {\n\t\tthis.controls.forEach(c => c.hydrate())\n\t}\n\n\tcreateId(type: string) {\n\t\t// iterate cells in layout, create map of used names\n\t\tconst usedIds = {}\n\n\t\tthis.controls.forEach(c => {\n\t\t\tusedIds[c.name] = true\n\t\t})\n\n\t\tlet index = 0\n\t\tlet result = null\n\t\tdo {\n\t\t\tindex++\n\t\t\tresult = `${type.replace(/[^a-z0-9-_]/gi, '')}${index}`\n\t\t} while (usedIds[result] !== undefined)\n\n\t\tusedIds[result] = true\n\t\treturn result\n\t}\n\n\tcreateCell(type: string, panel: Panel, index?: number): Cell {\n\t\tlet id = this.createId(type)\n\t\tlet cell = type === 'Panel' || type === 'Table' ? new Panel(type, this, id) : new Cell(type, this, id)\n\t\tpanel.addCell(cell)\n\t\tif (index !== undefined) {\n\t\t\tpanel.moveCellToIndex(cell, index)\n\t\t}\n\t\treturn cell\n\t}\n\n\trename(name: string) {\n\t\tif (\n\t\t\tthis.template.root.controls.some(c => c.name.toLowerCase() === name.toLowerCase()) ||\n\t\t\tthis.template.layouts.some(l => l.name.toLowerCase() === name.toLowerCase())\n\t\t) {\n\t\t\tthrow new Error(`The name \"${name}\" is already in use.`)\n\t\t}\n\t\tconst templateTypes = [].concat(...this.template.meta.sets.map(s => s.templates))\n\t\tconst ContextMetaKeys = Object.keys(ContextMeta).map(k => k.toLowerCase())\n\t\tif (\n\t\t\tContextMetaKeys.includes(name.toLowerCase()) ||\n\t\t\tMETHODS[name.toUpperCase()] !== undefined ||\n\t\t\ttemplateTypes.some(t => t.toLowerCase() === name.toLowerCase())\n\t\t)\n\t\t\tthrow new Error(`The name \"${name}\" is reserved and cannot be used.`)\n\t\tthis.name = name\n\t}\n\n\tsaveValues(values: { [key: string]: any }) {\n\t\tif (this.template !== this.report.activeTemplate) return\n\n\t\tthis.controls.forEach(c => {\n\t\t\tif (c.onSave) {\n\t\t\t\tc.onSave(values)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tif (c.userValue || values[c.path]) {\n\t\t\t\tvalues[c.path] = c.userValue\n\t\t\t}\n\t\t\tc.subLayouts.forEach(s => s.saveValues(values))\n\t\t})\n\t}\n\n\tcalc(changedPath?: string) {\n\t\tthis.controls.forEach(c => c.calc(changedPath))\n\t}\n\n\tcreateInstance(): Layout {\n\t\tlet json = this.toJSON()\n\t\treturn Layout.load(json, this.template)\n\t}\n\n\tstatic load(layout: ILayout, template: Template): Layout {\n\t\tlet l = new Layout(layout.name, template)\n\t\tl.group = layout.group\n\n\t\tl.root = Cell.load(layout.panel, l) as Panel\n\t\tl.controls\n\t\t\t.filter(c => !c.name)\n\t\t\t.forEach(c => {\n\t\t\t\tc.name = l.createId(c.type)\n\t\t\t})\n\t\treturn l\n\t}\n\n\taddImageCommentBinding() {\n\t\tif (this.name !== 'Image Comment') return\n\t\tconst controls = this.controls\n\t\tif (controls.some(c => c.props.binding === 'ImageComment.Comment')) return\n\t\tconst richText = controls.find(c => c.type === 'Rich Text Editor')\n\t\tif (!richText) return\n\t\trichText.props.binding = 'ImageComment.Comment'\n\t}\n\n\ttoJSON(): ILayout {\n\t\tthis.addImageCommentBinding()\n\t\treturn {\n\t\t\tname: this.name,\n\t\t\tgroup: this.group && this.group,\n\t\t\tpanel: this.root.toJSON(),\n\t\t}\n\t}\n}\n\nexport class Cell {\n\tid: number = nextCellId++\n\tname: string = null\n\ttype: string = null\n\tpanel: Panel = null\n\tprops: { [key: string]: any } = {}\n\tsubLayouts: Layout[] = []\n\tuserValue: any = null\n\tbindingValue: any = null\n\tel?: HTMLElement\n\tonSave: (values: ValueMap) => void\n\tonValidate: () => void\n\tbinding?: Binding = null\n\tlayout: Layout = null\n\tisPanel?: boolean\n\n\tconstructor(type: string, layout: Layout, name: string) {\n\t\tthis.type = type\n\t\tthis.name = name\n\t\tthis.layout = layout\n\n\t\tlet def = this.def\n\t\tif (def) {\n\t\t\tdef.props.forEach(p => {\n\t\t\t\tlet value = p.value\n\t\t\t\tif (typeof value === 'object') {\n\t\t\t\t\tvalue = JSON.parse(JSON.stringify(value))\n\t\t\t\t}\n\t\t\t\tthis.props[p.name] = value\n\t\t\t})\n\t\t}\n\t}\n\n\tget isTableCell(): boolean {\n\t\treturn this.panel && this.panel.type === 'Table'\n\t}\n\n\tget isRoot(): boolean {\n\t\treturn this instanceof Panel ? this.layout.root === this : false\n\t}\n\n\tget value(): any {\n\t\tif (this.userValue != null && (typeof this.userValue !== 'string' || this.userValue.length > 0))\n\t\t\treturn this.userValue\n\t\telse return this.bindingValue\n\t}\n\n\tget isValueOverridden(): boolean {\n\t\tconst hasBindingValue = this.bindingValue || this.bindingValue === 0\n\t\tconst hasUserValue = this.userValue || this.userValue === 0\n\t\treturn hasBindingValue && hasUserValue && this.bindingValue.toString() !== this.userValue.toString()\n\t}\n\n\tset value(newValue: any) {\n\t\tthis.userValue = newValue\n\t\t// eslint-disable-next-line\n\t\tif (this.values[this.path] != newValue) {\n\t\t\tthis.template.changeValue(this.path, newValue)\n\t\t}\n\t}\n\n\tget index(): number {\n\t\treturn this.panel ? this.panel.cells.indexOf(this) : 0\n\t}\n\n\tget last(): boolean {\n\t\treturn this.panel && this.panel.cells[this.panel.cells.length - 1] === this\n\t}\n\n\tget primitive(): boolean {\n\t\treturn !!this.template.meta.primitives.find(p => p.name === this.type)\n\t}\n\n\tget subLayout(): Layout {\n\t\treturn this.subLayouts[0]\n\t}\n\n\tget def(): IPrimitive {\n\t\treturn this.template.meta.primitives.find(p => p.name === this.type)\n\t}\n\n\tget widgets(): Layout[] {\n\t\treturn this.template.layouts.filter(l => l.group === this.type)\n\t}\n\n\tget editWidget(): string {\n\t\tif (this.def) {\n\t\t\treturn this.def.editWidget\n\t\t} else {\n\t\t\treturn this.type\n\t\t}\n\t}\n\n\tget context(): any {\n\t\treturn { ...this.template.context, ...this.layout.context }\n\t}\n\n\tget values(): ValueMap {\n\t\treturn this.layout.template.values\n\t}\n\n\tget template(): Template {\n\t\treturn this.layout.template\n\t}\n\n\tget report(): ReportDetail {\n\t\treturn this.template.report\n\t}\n\n\tget editorMode(): boolean {\n\t\treturn this.layout.template.editorMode\n\t}\n\n\tget readOnly(): boolean {\n\t\treturn this.layout.readOnly || this.props.readOnly === true\n\t}\n\n\tget hasValue(): boolean {\n\t\tlet value = this.value\n\t\tif (!this.value && this.value !== 0) return false\n\n\t\tif (this.type === 'Rich Text Editor') {\n\t\t\ttextdiv.innerHTML = value\n\t\t\tlet trimValue = textdiv.innerText.trim()\n\t\t\treturn trimValue.length > 0\n\t\t} else if (typeof value === 'string') {\n\t\t\tvalue = value.trim()\n\t\t\tif (value.length === 0) return false\n\t\t}\n\n\t\treturn true\n\t}\n\n\tget validationWarning(): string {\n\t\tif (this.template.editorMode) return\n\t\tconst isBlank = !this.hasValue\n\n\t\tif (this.props.required && isBlank) return 'This field is required.'\n\t\tif (!this.props.validation || isBlank) return\n\t\tconst isNumber = /^(\\d|\\.|\\,|\\s|-)+$/.test(this.value) // eslint-disable-line\n\t\tif (this.props.validation === 'Number' && !isNumber) return 'Please enter numbers only.'\n\t\treturn null\n\t}\n\n\thydrate() {\n\t\tthis.value = this.values[this.path]\n\t\tthis.subLayouts.forEach(l => l.hydrate())\n\t\tif (this.props.binding) {\n\t\t\tthis.binding = new Binding(this)\n\t\t}\n\t\tthis.calc()\n\t}\n\n\tremove() {\n\t\tfor (const field in this.template.partnerFieldMap) {\n\t\t\tconst controls = this.template.partnerFieldMap[field]\n\t\t\tlet idx = controls.indexOf(this.name)\n\t\t\tif (idx >= 0) controls.splice(idx, 1)\n\t\t}\n\t\tthis.panel.removeCell(this)\n\t}\n\n\taddSubLayout(layout: Layout, context?: ValueMap) {\n\t\tthis.subLayouts.push(layout)\n\t\tif (layout.template == null || layout.template === this.layout.template) {\n\t\t\tlayout.parent = this\n\t\t\tlayout.template = this.layout.template\n\t\t}\n\n\t\tif (context) {\n\t\t\tlayout.context = context\n\t\t}\n\t\tlayout.hydrate()\n\t}\n\n\tgetContextValue(path: string): any {\n\t\tlet context = this.context\n\t\tlet parts = path.split('.')\n\t\tlet value = context\n\t\tparts.forEach(p => {\n\t\t\tvalue = value == null ? null : value[p]\n\t\t})\n\n\t\treturn value\n\t}\n\n\tget path(): string {\n\t\tlet root = this.layout.path\n\t\tif (root) {\n\t\t\treturn `${root}.${this.name}`\n\t\t} else {\n\t\t\treturn this.name\n\t\t}\n\t}\n\n\trename(name: string) {\n\t\tlet oldPath = this.path\n\t\tvar dependents: Cell[] = []\n\n\t\tif (\n\t\t\tthis.layout.controls.some(c => c.name.toLowerCase() === name.toLowerCase()) ||\n\t\t\tthis.template.layouts.some(l => l.name.toLowerCase() === name.toLowerCase())\n\t\t) {\n\t\t\tthrow new Error(`The name \"${name}\" is already in use.`)\n\t\t}\n\t\tconst templateTypes = [].concat(...this.template.meta.sets.map(s => s.templates))\n\t\tconst ContextMetaKeys = Object.keys(ContextMeta).map(k => k.toLowerCase())\n\t\tif (\n\t\t\tContextMetaKeys.includes(name.toLowerCase()) ||\n\t\t\tMETHODS[name.toUpperCase()] !== undefined ||\n\t\t\ttemplateTypes.some(t => t.toLowerCase() === name.toLowerCase())\n\t\t)\n\t\t\tthrow new Error(`The name \"${name}\" is reserved and cannot be used.`)\n\n\t\t// update bindings that reference this cell\n\t\tthis.template.layouts.forEach(l => {\n\t\t\tl.controls.forEach(c => {\n\t\t\t\tif (c !== this && c.binding) {\n\t\t\t\t\tif (c.binding.dependencyMap[oldPath] !== undefined) {\n\t\t\t\t\t\tdependents.push(c)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\n\t\tthis.name = name\n\t\tdependents.forEach(d => d.binding.replaceDependency(oldPath, this.path))\n\t}\n\n\tcalc(changedPath?: string) {\n\t\tif (this.binding) {\n\t\t\tif (changedPath === undefined || this.binding.hasDependency(changedPath)) {\n\t\t\t\tlet currentValue = this.bindingValue\n\t\t\t\tthis.bindingValue = this.binding.getValue()\n\t\t\t\tthis.template.calcValues[this.path] = this.bindingValue\n\t\t\t\tif (currentValue !== this.bindingValue) this.template.calc(this.path)\n\t\t\t}\n\t\t}\n\t\tthis.subLayouts.forEach(s => s.calc(changedPath))\n\t}\n\n\tstatic load(i: ICell, layout: Layout): Cell {\n\t\tlet cell =\n\t\t\ti.type === 'Panel' || i.type === 'Table' ? new Panel(i.type, layout, i.name) : new Cell(i.type, layout, i.name)\n\n\t\tfor (let prop in i.props) {\n\t\t\tcell.props[prop] = i.props[prop]\n\t\t}\n\n\t\tif (cell instanceof Panel) {\n\t\t\tlet p = cell as Panel\n\t\t\tlet json: IPanel = i as IPanel\n\t\t\tjson.cells.forEach(c => p.addCell(Cell.load(c, layout)))\n\t\t}\n\n\t\treturn cell\n\t}\n\n\tget borders(): any {\n\t\tif (this.props.borderColor) {\n\t\t\treturn {\n\t\t\t\tborder: `2px solid var(--report-bg-${this.props.borderColor})`,\n\t\t\t}\n\t\t}\n\t\tlet tableprops = this.panel.props\n\t\tlet sides = tableprops.border === 'sides'\n\t\tlet all = tableprops.border === 'all'\n\t\tif (!sides && !all) return {}\n\t\tlet color = 'black'\n\t\tif (tableprops.borderColor) {\n\t\t\tcolor = `var(--report-bg-${tableprops.borderColor}`\n\t\t}\n\n\t\tlet x = this.props.col\n\t\tlet y = this.props.row\n\t\tlet columns = tableprops.cols.length\n\t\tlet rows = tableprops.rows\n\n\t\tlet left = all ? true : x === 0\n\t\tlet top = all ? true : y === 0\n\t\tlet right = x === columns - 1\n\t\tlet bottom = y === rows - 1\n\n\t\t// draw borders on top left, if bottom draw bottom, if right draw right\n\n\t\treturn {\n\t\t\tborderLeft: left ? `2px solid ${color}` : undefined,\n\t\t\tborderTop: top ? `2px solid ${color}` : undefined,\n\t\t\tborderRight: right ? `2px solid ${color}` : undefined,\n\t\t\tborderBottom: bottom ? `2px solid ${color}` : undefined,\n\t\t}\n\t}\n\n\ttoJSON(): ICell {\n\t\tlet def = this.def\n\t\tlet defMap: { [key: string]: IProp } = {}\n\t\tif (def) {\n\t\t\tdef.props.forEach(p => (defMap[p.name] = p))\n\t\t}\n\n\t\tlet result: ICell = {\n\t\t\tname: this.name,\n\t\t\ttype: this.type,\n\t\t\tprops: {},\n\t\t}\n\t\tfor (let prop in this.props) {\n\t\t\tlet value = this.props[prop]\n\t\t\tlet defprop = defMap[prop]\n\t\t\tif (defprop) {\n\t\t\t\tif (defprop.value === value) continue\n\t\t\t} else {\n\t\t\t\tif (value == null || value === '') continue\n\t\t\t}\n\t\t\tresult.props[prop] = value\n\t\t}\n\t\treturn result\n\t}\n}\n\nexport class Panel extends Cell {\n\tcells: Cell[] = []\n\n\tconstructor(type: string, layout: Layout, name: string) {\n\t\tsuper(type, layout, name)\n\t\tthis.isPanel = true\n\t}\n\n\taddCell(cell: Cell) {\n\t\tif (cell.panel) {\n\t\t\tcell.panel.removeCell(cell)\n\t\t}\n\t\tcell.panel = this\n\t\tthis.cells.push(cell)\n\t\tif (this.props.tableCell === true) {\n\t\t\tlet index = this.index\n\t\t\tlet siblings: Cell[] = []\n\t\t\t// its parent is the column\n\t\t\tlet col = this.panel\n\t\t\tlet table = col.panel\n\t\t\ttable.cells.forEach(c => {\n\t\t\t\tif (c instanceof Panel) {\n\t\t\t\t\tsiblings.push(c.cells[index])\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tlet h = this.el.clientHeight\n\t\t\t\tsiblings.forEach(s => (s.props.height = h))\n\t\t\t}, 1)\n\t\t}\n\t}\n\n\tremoveCell(cell: Cell) {\n\t\tthis.cells.splice(this.cells.indexOf(cell), 1)\n\t\tcell.panel = null\n\t}\n\n\tget firstCell(): Cell {\n\t\treturn this.cells.length ? this.cells[0] : null\n\t}\n\n\tget lastCell(): Cell {\n\t\treturn this.cells.length ? this.cells[this.cells.length - 1] : null\n\t}\n\n\tcellAbove(cell: Cell, allowNested: Boolean): Cell {\n\t\tlet result = null\n\t\tlet { row, col } = cell.props\n\t\tconst { rows } = this.props\n\t\tif (!rows) {\n\t\t\tconst index = this.cells.indexOf(cell)\n\t\t\tif (index > 0) {\n\t\t\t\tresult = this.cells[index - 1]\n\t\t\t}\n\t\t} else {\n\t\t\trow--\n\t\t\tresult = this.cells.find(c => c.props.row === row && c.props.col === col)\n\t\t}\n\t\tif (!result) {\n\t\t\tif (this.isPanel) {\n\t\t\t\treturn this\n\t\t\t}\n\t\t} else if (result.isPanel && result.props.rows && allowNested) {\n\t\t\tresult = (result as Panel).lastCell\n\t\t}\n\t\tresult = result || (this.panel ? this.panel.cellAbove(this, false) : this.lastCell)\n\t\treturn result === cell ? null : result\n\t}\n\n\tcellBelow(cell: Cell, allowNested: Boolean): Cell {\n\t\tlet result = null\n\t\tif (cell.isPanel && cell.props.rows && allowNested) {\n\t\t\tresult = (cell as Panel).firstCell\n\t\t} else {\n\t\t\tlet { row, col } = cell.props\n\t\t\tconst { rows } = this.props\n\t\t\tif (!rows) {\n\t\t\t\tconst index = this.cells.indexOf(cell)\n\t\t\t\tif (index < this.cells.length - 1) {\n\t\t\t\t\tresult = this.cells[index + 1]\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\trow++\n\t\t\t\tresult = this.cells.find(c => c.props.row === row && c.props.col === col)\n\t\t\t}\n\t\t}\n\t\tresult = result || (this.panel ? this.panel.cellBelow(this, false) : this.firstCell)\n\t\treturn result === cell ? null : result\n\t}\n\n\tcellLeft(cell: Cell): Cell {\n\t\tlet { row, col } = cell.props\n\t\tconst { cols } = this.props\n\t\tif (!cols) return null\n\t\tcol--\n\t\treturn this.cells.find(c => c.props.col === col && c.props.row === row)\n\t}\n\n\tcellRight(cell: Cell): Cell {\n\t\tlet { row, col } = cell.props\n\t\tconst { cols } = this.props\n\t\tif (!cols) return null\n\t\tcol++\n\t\treturn this.cells.find(c => c.props.col === col && c.props.row === row)\n\t}\n\n\tget active(): boolean {\n\t\treturn this.layout.selected\n\t}\n\n\tmoveCell(cell: Cell, overCell: Cell) {\n\t\tlet idx = this.cells.indexOf(overCell)\n\t\tthis.moveCellToIndex(cell, idx)\n\t}\n\n\tmoveCellToIndex(cell: Cell, newIndex: number) {\n\t\tlet idx = this.cells.indexOf(cell)\n\t\tthis.cells.splice(idx, 1)\n\t\tif (newIndex === undefined) {\n\t\t\tthis.cells.push(cell)\n\t\t} else {\n\t\t\tthis.cells.splice(newIndex, 0, cell)\n\t\t}\n\t}\n\n\tsetColumnWidth(cols: number[], index: number, width: number) {\n\t\tlet bIndex = index === cols.length - 1 ? index - 1 : index + 1\n\t\tlet remaining = 0\n\t\tfor (let i = 0; i < cols.length; i++) remaining += i === index || i === bIndex ? 0 : cols[i]\n\n\t\tif (width < 10) width = 10\n\t\tlet abWidth = 100 - remaining\n\t\tlet bWidth = abWidth - width\n\t\tif (bWidth < 10) {\n\t\t\tbWidth = 10\n\t\t\twidth = abWidth - bWidth\n\t\t}\n\n\t\tcols[index] = width\n\t\tcols[bIndex] = bWidth\n\t}\n\n\tconfigureTable(columns: number = undefined, rows: number = undefined) {\n\t\tlet cols: number[] = this.props.cols.slice(0)\n\n\t\tif (columns === undefined) columns = cols.length\n\t\tif (rows === undefined) rows = this.props.rows\n\n\t\tif (columns !== cols.length) {\n\t\t\tcols = []\n\t\t\tfor (let i = 0; i < columns; i++) cols.push(0)\n\t\t}\n\n\t\t// distribute columns if outside bounds\n\t\tlet sum = 0\n\t\tcols.forEach(c => (sum += c))\n\t\tif (sum !== 100) {\n\t\t\tconst autoPercent = Math.floor(100 / cols.length)\n\t\t\tlet remainder = 100 % autoPercent\n\t\t\tcols.forEach((c, i) => {\n\t\t\t\tconst shareOfRemainder = i >= cols.length - remainder ? 1 : 0\n\t\t\t\tlet newWidth = autoPercent + shareOfRemainder\n\t\t\t\tcols[i] = newWidth\n\t\t\t})\n\t\t}\n\n\t\tthis.props.cols = cols\n\t\tthis.props.rows = rows\n\n\t\t// create map of all the cells we have\n\t\tlet used: { [key: string]: Cell } = {}\n\t\tlet valid: Cell[] = []\n\t\tlet deleteIdx = 0\n\n\t\tthis.cells.sort((a, b) => {\n\t\t\tlet diff = a.props.col - b.props.col\n\t\t\tif (diff === 0) {\n\t\t\t\tdiff = a.props.row - b.props.row\n\t\t\t}\n\t\t\treturn diff\n\t\t})\n\n\t\tthis.cells.forEach(cell => {\n\t\t\tlet cspan: number = cell.props.colspan\n\t\t\tlet rspan: number = cell.props.rowspan\n\t\t\tlet c: number = cell.props.col\n\t\t\tlet r: number = cell.props.row\n\n\t\t\t// adjust spans to be inbounds\n\t\t\twhile (cspan > 1 && cspan + c > columns) cspan--\n\t\t\twhile (rspan > 1 && rspan + r > rows) rspan--\n\t\t\tif (cspan < 1) cspan = 1\n\t\t\tif (rspan < 1) rspan = 1\n\n\t\t\tcell.props.colspan = cspan\n\t\t\tcell.props.rowspan = rspan\n\n\t\t\tfor (let x = 0; x < cspan; x++) {\n\t\t\t\tfor (let y = 0; y < rspan; y++) {\n\t\t\t\t\tlet key = `${c + x}_${r + y}`\n\t\t\t\t\tif (used[key] !== undefined) key += `_delete[${deleteIdx++}]`\n\t\t\t\t\tused[key] = cell\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\t// create missing cells\n\t\tfor (let y = 0; y < rows; y++) {\n\t\t\tfor (let x = 0; x < columns; x++) {\n\t\t\t\tlet key = `${x}_${y}`\n\n\t\t\t\tlet c: Cell = used[key]\n\t\t\t\tif (c === undefined) {\n\t\t\t\t\tc = this.layout.createCell('Panel', this)\n\t\t\t\t\tc.props.row = y\n\t\t\t\t\tc.props.col = x\n\t\t\t\t\tc.props.rowspan = 1\n\t\t\t\t\tc.props.colspan = 1\n\t\t\t\t}\n\n\t\t\t\tvalid.push(c)\n\t\t\t}\n\t\t}\n\n\t\t// delete the invalid cells\n\t\tfor (let prop in used) {\n\t\t\tlet cell = used[prop]\n\t\t\tif (!valid.includes(cell)) cell.remove()\n\t\t}\n\t}\n\n\ttoJSON(): IPanel {\n\t\tlet json = super.toJSON()\n\t\tjson.cells = this.cells.map(c => c.toJSON())\n\t\treturn json\n\t}\n}\n","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table-container\",attrs:{\"data-cy\":\"data-table\"}},[_c('table',{staticClass:\"data-table\",class:{\n\t\t\t'table--striped': _vm.isStriped,\n\t\t\t'table--striped-report': _vm.isReport,\n\t\t\t'table--row-hover': _vm.isHoverable,\n\t\t\t'table--condensed': _vm.isCondensed,\n\t\t\t'table--full-width': _vm.isFullWidth,\n\t\t},style:(_vm.isLoading && { opacity: '0.3', transition: 'opacity 0.1s 0.1s' })},[_vm._t(\"default\",[_c('thead',[_c('tr',{class:{\n\t\t\t\t\t\tasc: _vm.sort.isAscending && _vm.sort.isSorted,\n\t\t\t\t\t\tdesc: !_vm.sort.isAscending && _vm.sort.isSorted,\n\t\t\t\t\t}},_vm._l((_vm.columns),function(column,i){return _c('th',{key:i,class:{\n\t\t\t\t\t\t\tactive: _vm.sort.orderBy === column.sortName,\n\t\t\t\t\t\t\tsortable: column.isSortable,\n\t\t\t\t\t\t},on:{\"click\":function($event){$event.preventDefault();return _vm.sortSelected(column)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(column.name)+\"\\n\\t\\t\\t\\t\\t\")])}),0)]),_c('tbody',[_vm._l((_vm.rows),function(row,rowIndex){return [_c('tr',{key:(\"row-\" + rowIndex),class:[\n\t\t\t\t\t\t\t_vm.expandedRow === row ? 'selected' : '',\n\t\t\t\t\t\t\t_vm.isExpanding && _vm.expandedRow === row ? 'expanding' : '',\n\t\t\t\t\t\t\trow.wasRemoved ? 'removed' : '',\n\t\t\t\t\t\t\trow.rowClass ? row.rowClass : '' ],on:{\"click\":function($event){$event.preventDefault();return _vm.onRowClick(row)}}},[_vm._t(\"row\",null,{\"row\":row})],2),_c('transition',{key:(\"expanded-\" + rowIndex),attrs:{\"name\":\"expand\"}},[(_vm.$slots.expanded && _vm.expandedRow === row)?_c('tr',{ref:\"expandedRow\",refInFor:true,staticClass:\"expanded\"},[_c('td',{attrs:{\"colspan\":_vm.columns.length}},[_vm._t(\"expanded\")],2)]):_vm._e()]),(_vm.$slots.expanded && _vm.expandedRow === row)?_c('tr',{key:(\"striping-fix-\" + rowIndex),staticClass:\"striping-fix\"},[_c('td',{attrs:{\"colspan\":_vm.columns.length}})]):_vm._e()]})],2)])],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./DataTable.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!./DataTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DataTable.vue?vue&type=template&id=1096f45a&scoped=true\"\nimport script from \"./DataTable.vue?vue&type=script&lang=js\"\nexport * from \"./DataTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./DataTable.vue?vue&type=style&index=0&id=1096f45a&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 \"1096f45a\",\n null\n \n)\n\nexport default component.exports","import { API, paramsSerializer } from '@services/api'\nimport store from '@store'\nimport { uploadData } from './uploads'\nimport workflow from './workflow'\n\nexport const SALE_ENTRY_STATUS = {\n\t1: 'success',\n\t2: 'successWaitingForImagesToArchive',\n\t3: 'missingRequiredImages',\n\t4: 'saleEntryAlreadyHasImages',\n\t5: 'studyTooOld',\n\t6: 'saleEntryNotFound',\n\t7: 'saleEntryNotOpenForSubmission',\n\t8: 'studyAlreadySubmittedForSale',\n\t9: 'invalidAttachmentFileType',\n\t10: 'saleNotFoundOrClosed',\n\t1000: 'unknownError',\n}\n\nclass SalesService {\n\tsale: ISale = null\n\tsaleEntry: ISaleEntry = null\n\tisExtraReasonRequired = false\n\n\tget saleEntryStatus(): string {\n\t\treturn this.saleEntry ? SALE_ENTRY_STATUS[this.saleEntry.status] : undefined\n\t}\n\n\tasync getTemplate({ saleId, hipNumber, studyIds }) {\n\t\tworkflow.isLoading = true\n\t\ttry {\n\t\t\tconst data = await this._getTemplate({\n\t\t\t\tconsultantId: workflow.consultantId,\n\t\t\t\thipNumber,\n\t\t\t\tsaleId: saleId || this.sale.id,\n\t\t\t\tsaleEntryId: hipNumber ? null : this.saleEntry.id,\n\t\t\t\tstudyIds,\n\t\t\t})\n\t\t\tdata.patientId = data.patientId || hipNumber\n\t\t\tconst hasServerMatches = data.images.some(image => image.imageId)\n\n\t\t\tlet existingAttachments = this.saleEntry ? this.saleEntry.attachments : []\n\t\t\tlet existingImages = this.saleEntry ? this.saleEntry.images : []\n\n\t\t\tif (data.errors && data.errors.length) {\n\t\t\t\tdata.images = existingImages\n\t\t\t\tdata.attachments = existingAttachments\n\t\t\t}\n\t\t\t// preserve existing manual matching\n\t\t\tconst attachments = mergeExistingMatches(data.attachments, existingAttachments)\n\t\t\tconst images = mergeExistingMatches(data.images, existingImages)\n\t\t\tthis.saleEntry = { ...data, attachments, images }\n\t\t\treturn { hasServerMatches }\n\t\t} finally {\n\t\t\tworkflow.isLoading = false\n\t\t}\n\n\t\tfunction mergeExistingMatches(templateImages, existingImages) {\n\t\t\tlet newImages = templateImages.slice()\n\t\t\tconst existingMatches = existingImages.filter(image => image.imageId)\n\t\t\tfor (let i = 0; i < existingMatches.length; i++) {\n\t\t\t\tconst existingImage = existingMatches[i]\n\t\t\t\tif ('extraReason' in existingImage) {\n\t\t\t\t\t// If extra image, restore the extra image in the report\n\t\t\t\t\tclearServerMatchesForImageId(existingImage.imageId)\n\t\t\t\t\tnewImages.push({ ...existingImage })\n\t\t\t\t} else {\n\t\t\t\t\t// Find this view in the refreshed template\n\t\t\t\t\tconst newImage = newImages.find(\n\t\t\t\t\t\timage => image.reportTemplateImageViewId === existingImage.reportTemplateImageViewId\n\t\t\t\t\t)\n\t\t\t\t\t// Restore match made manually by user\n\t\t\t\t\tclearServerMatchesForImageId(existingImage.imageId)\n\t\t\t\t\tnewImage.imageId = existingImage.imageId\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn newImages\n\n\t\t\tfunction clearServerMatchesForImageId(imageId) {\n\t\t\t\tconst serverMatches = newImages.filter(image => image.imageId === imageId)\n\t\t\t\tserverMatches.forEach(serverMatch => (serverMatch.imageId = null))\n\t\t\t}\n\t\t}\n\t}\n\n\treset() {\n\t\tthis.sale = null\n\t\tthis.saleEntry = null\n\t}\n\n\tasync submitSaleEntry(): Promise {\n\t\tworkflow.isLoading = true\n\t\tconst sale = this.sale\n\t\tconst consultantId = workflow.consultantId\n\t\tconst images = [...this.saleEntry.images, ...this.saleEntry.attachments]\n\t\t\t.filter(image => image.imageId)\n\t\t\t.map(({ extraReason, imageId, reportTemplateImageViewId }) => {\n\t\t\t\treturn { extraReason, imageId, reportTemplateImageViewId }\n\t\t\t})\n\t\tconst saleEntry = {\n\t\t\tconsultantId,\n\t\t\timages,\n\t\t\tnotificationEmails: workflow.emails,\n\t\t\tsaleEntryId: this.saleEntry.id,\n\t\t\tsaleId: sale.id,\n\t\t\tstudyIds: workflow.studyIds,\n\t\t}\n\t\ttry {\n\t\t\tconst { data } = await this._submitSaleEntry(saleEntry)\n\t\t\tif (data.errors && data.errors.length) {\n\t\t\t\tstore.dispatch('addNotification', {\n\t\t\t\t\tmessage: data.errors.join(' '),\n\t\t\t\t\tnotificationType: 'error',\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tconst message = `Successfully submitted to ${sale.name}!`\n\t\t\t\tstore.dispatch('addNotification', {\n\t\t\t\t\tmessage,\n\t\t\t\t\tnotificationType: 'success',\n\t\t\t\t})\n\t\t\t\tuploadData.stopUploads({ context: 'teleconsultation-request' })\n\t\t\t\tthis.reset()\n\t\t\t\tworkflow.reset()\n\t\t\t\tworkflow.consultantId = consultantId\n\t\t\t\treturn true\n\t\t\t}\n\t\t} finally {\n\t\t\tworkflow.isLoading = false\n\t\t}\n\t}\n\n\tgetSubmissionSales(id): Promise {\n\t\treturn API.get(`/sales/submission-list?consultantId=${id}`).then(r => r.data.data.results)\n\t}\n\n\tgetSalesInfo(consultantReportId: string): Promise {\n\t\treturn API.get(`/sales/info/${consultantReportId}`).then(r => r.data)\n\t}\n\n\t_getTemplate(params) {\n\t\treturn API.get(`/sales/get-template`, {\n\t\t\t// @ts-ignore\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r.data)\n\t}\n\n\timagesNotMatching(params) {\n\t\treturn API.get(`/sales/images-not-matching`, {\n\t\t\t// @ts-ignore\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t}\n\n\t_submitSaleEntry(data) {\n\t\treturn API.post(`/sales/submit-sale-entry`, data)\n\t}\n\n\tvalidateMetadata(params) {\n\t\treturn API.get(`/sales/validate-metadata`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r.data)\n\t}\n}\n\nexport const salesService = new SalesService()\nexport default salesService\n// @ts-ignore\nwindow.salesService = salesService\n","module.exports = \"\"","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"bcf97f6c60233260cdf1.worker.js\");\n};","module.exports = \"\"","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!./Radio.vue?vue&type=style&index=0&id=8a21d86c&prod&lang=scss&scoped=true\"","module.exports = \"\"","module.exports = \"\"","import { clinicAPI } from '@services/clinicAPI'\nimport { getLocale } from '@utils/locale'\n\nconst protocol = new URL(window.config.keystoneRootUrl).protocol\nconst removeProtocol = url => url.replace(/^.*\\/\\//, '')\n\nfunction findImageUrlFromImage(image: any = {}, series: any = {}, annexOnly = false) {\n\treturn findImageUrl(\n\t\t{\n\t\t\t...image,\n\t\t\tstorageLocation: (image).storageLocation || (series).storageLocation,\n\t\t},\n\t\tannexOnly\n\t)\n}\n\nfunction findThumbnailUrl(thumbnail: IBaseImage) {\n\treturn findImageUrl({\n\t\t...thumbnail,\n\t\timageType: 'ThumbnailPNG',\n\t})\n}\n\nfunction findFileUrl(file: any = {}) {\n\treturn findImageUrl({\n\t\timageId: file.fileId || '',\n\t\tstorageLocation: {\n\t\t\tclinicCode: file.clinicCode || '',\n\t\t\tendpointBaseUrl: file.imageEndpointBaseUrl || '',\n\t\t},\n\t\t// @ts-ignore\n\t\timageType: file.fileType || 'PreviewImage',\n\t})\n}\n\nfunction findAttachmentUrl(attachment) {\n\tconst keystoneRootUrl = removeProtocol(window.config.keystoneRootUrl)\n\n\treturn findImageUrl({\n\t\t...attachment,\n\t\tstorageLocation: {\n\t\t\tclinicCode: attachment.clinicCode,\n\t\t\tendpointBaseUrl: attachment.endpointBaseUrl || keystoneRootUrl,\n\t\t},\n\t\timageType: 'AttachmentContents',\n\t})\n}\n\n/**\n * @param {object} image\n * @param {string} image.imageId\n * @param {string} [image.imageType=PreviewImage]\n * @param {number} [image.frameIndex=0]\n * @param {object} image.storageLocation\n * @param {object} image.storageLocation.endpointBaseUrl\n */\nfunction findImageUrl(image: IBaseImage, annexOnly = false) {\n\tif (!image || !image.imageId) return ''\n\n\tconst clinicCode = image.storageLocation.clinicCode\n\tlet baseUrl = `${protocol}//${image.storageLocation.endpointBaseUrl}${window.config.keystoneBaseRoute}`\n\n\tif (clinicAPI.activeClinicUrl && !annexOnly) {\n\t\tbaseUrl = clinicAPI.activeClinicUrl\n\t}\n\n\treturn (\n\t\t`${baseUrl}/ImageDownload.aspx` +\n\t\t`?ClinicCode=${clinicCode}` +\n\t\t`&ImageId=${image.imageId}` +\n\t\t`&ImageType=${image.imageType || 'PreviewImage'}` +\n\t\t`&FrameIndex=${image.frameIndex || 0}` +\n\t\t`&omni=true`\n\t)\n}\n\n/**\n * Utility to help find the endpoint/URL that returns metadata for the provided\n * image or series at the specified storage location. imageId OR seriesId should\n * be provided.\n *\n * @param {Object} data\n * @param {string} [data.imageId]\n * @param {string} [data.seriesId]\n * @param {object} data.storageLocation\n * @param {string} data.storageLocation.endpointBaseUrl\n * @param {string} data.storageLocation.clinicCode\n * @returns {string} - The endpoint that returns metadata as JSON for the provided image/series @ storage location\n */\n function findJsonUrl(image, series) {\n\tconst storageLocation = image.storageLocation || series.storageLocation\n\n\tlet baseUrl = `${protocol}//${storageLocation.endpointBaseUrl}${window.config.keystoneBaseRoute}`\n\n\tif (clinicAPI.activeClinicUrl) {\n\t\tbaseUrl = clinicAPI.activeClinicUrl\n\t}\n\n\tlet url = `${baseUrl}/JSON.aspx?ClinicCode=${storageLocation.clinicCode}`\n\n\tif (image.imageId) {\n\t\turl += `&ImageId=${image.imageId}`\n\t} else if (image.seriesId) {\n\t\turl += `&SeriesId=${image.seriesId}`\n\t}\n\treturn url\n}\n\ninterface IPrintReportOptions {\n\tclinicCode: string\n\treportId?: string\n\tconsultantReportId?: string\n\tsuppressDraftWatermark?: boolean\n\tuseConsultantHeader?: boolean\n\tisResponseVisible?: boolean\n\tincludePrivateFields?: boolean\n\tfontSizeAdjustment?: number\n\tresidentResponseId?: string\n}\nfunction findReportUrl(options: IPrintReportOptions): string {\n\tconst keystoneRootUrl = removeProtocol(window.config.keystoneRootUrl)\n\tconst isConsultantReport = options.consultantReportId && options.consultantReportId.length > 0\n\tconst endpoint = window.config.keystoneBaseRoute + '/PrintedReport.aspx'\n\tif (options.isResponseVisible === undefined) options.isResponseVisible = true\n\tlet result =\n\t\t`${protocol}//` +\n\t\t`${keystoneRootUrl}/${endpoint}?` +\n\t\t`ClinicCode=${options.clinicCode}` + // Should always be auth'd clinic code\n\t\t`${isConsultantReport ? '&ConsultantReportId=' : '&ReportId='}` +\n\t\t`${isConsultantReport ? options.consultantReportId : options.reportId}` +\n\t\t`&IncludePrivateFields=${options.includePrivateFields ? 'True' : 'False'}` +\n\t\t`&UseConsultantHeader=${options.useConsultantHeader ? 'True' : 'False'}` +\n\t\t`&SuppressDraftWatermark=${options.suppressDraftWatermark ? 'True' : 'False'}` +\n\t\t`&FontSizeAdjustment=${options.fontSizeAdjustment || 0}` +\n\t\t`&IsResponseVisible=${options.isResponseVisible ? 'True' : 'False'}` +\n\t\t`&Culture=${getLocale()}` +\n\t\t`&TimeZoneOffset=${-new Date().getTimezoneOffset()}` +\n\t\t`&Format=PDF`\n\n\tif (options.residentResponseId) {\n\t\tresult += `&ResidentResponseId=${options.residentResponseId}`\n\t}\n\n\treturn result\n}\n\nfunction findImageIdAndFrameFromUrl(imageUrl) {\n\tlet imageId\n\tlet frameIndex\n\tif (imageUrl.includes('mpr')) {\n\t\t// TODO: may or may not be needed for future MPR implementation\n\t\timageId = imageUrl.replace('mpr://', '')\n\t\tframeIndex = 0\n\t} else {\n\t\tconst matches = imageUrl.match(/ImageId=(.{36}).*FrameIndex=([0-9]*)/)\n\t\timageId = matches[1]\n\t\tframeIndex = parseInt(matches[2]) || 0\n\t}\n\treturn {\n\t\timageId,\n\t\tframeIndex,\n\t}\n}\n\nexport {\n\tfindImageUrl,\n\tfindThumbnailUrl,\n\tfindImageUrlFromImage,\n\tfindImageIdAndFrameFromUrl,\n\tfindAttachmentUrl,\n\tfindJsonUrl,\n\tfindFileUrl,\n\tfindReportUrl,\n}\n","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.studies),function(study,index){return _c('ast-card',{key:index,attrs:{\"show-header\":false,\"is-hoverable\":true},nativeOn:{\"click\":function($event){return _vm.$emit('select-study', study)}}},[_c('div',{staticClass:\"study-card\"},[(_vm.showViewButton)?_c('button',{staticClass:\"view-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('open-study', study)}}},[_c('svg-icon',{attrs:{\"icon\":\"eye\"}})],1):_vm._e(),_c('ul',{staticStyle:{\"width\":\"100%\"}},[_c('li',[_c('span',{staticClass:\"label\"},[_vm._v(\"Patient:\")]),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(study.patientId)+\"\\n\\t\\t\\t\\t\\t\"),(study.patientName)?_c('span',[_vm._v(\"- \"+_vm._s(study.patientName))]):_vm._e()]),(study.ownerName)?_c('li',[_c('span',{staticClass:\"label\"},[_vm._v(\"Owner:\")]),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(study.ownerName)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),(study.studyDateTime)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(study.studyDateTime,{ forceUTC: false }))+\"\\n\\t\\t\\t\\t\")]):_vm._e(),(study.studyDescription)?_c('li',{staticStyle:{\"font-size\":\"0.85em\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(study.studyDescription)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_c('li',{staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\"}},[_c('small',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(study.modality)+\" -\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(study.imageCount)+\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(study.imageCount === 1 ? 'Image' : 'Images')+\"\\n\\t\\t\\t\\t\\t\")]),(\n\t\t\t\t\t\t\tstudy.mostRecentReportRecipient ||\n\t\t\t\t\t\t\t\tstudy.hasBeenEmailed ||\n\t\t\t\t\t\t\t\tstudy.hasReport ||\n\t\t\t\t\t\t\t\tstudy.hasSignalPETAttachment\n\t\t\t\t\t\t)?_c('span',[(study.hasSignalPETAttachment)?_c('img',{staticClass:\"signalpet-colored\",attrs:{\"src\":require(\"@assets/icons/signalpet-colored.png\")}}):_vm._e(),(study.mostRecentReportRecipient)?_c('svg-icon',{attrs:{\"icon\":\"email-check\",\"fixed\":\"\"}}):_vm._e(),(study.hasBeenEmailed)?_c('svg-icon',{attrs:{\"icon\":\"email\",\"fixed\":\"\"}}):_vm._e(),(study.hasReport)?_c('svg-icon',{attrs:{\"icon\":\"file-text-o\",\"title\":\"Study has standard reports\",\"fixed\":\"\"}}):_vm._e()],1):_vm._e()])])])])}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./StudiesListCards.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!./StudiesListCards.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StudiesListCards.vue?vue&type=template&id=79dd147c&scoped=true\"\nimport script from \"./StudiesListCards.vue?vue&type=script&lang=js\"\nexport * from \"./StudiesListCards.vue?vue&type=script&lang=js\"\nimport style0 from \"./StudiesListCards.vue?vue&type=style&index=0&id=79dd147c&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 \"79dd147c\",\n null\n \n)\n\nexport default component.exports","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!./AddendumDlg.vue?vue&type=style&index=0&id=5af2e1ca&prod&lang=scss\"","module.exports = \"\"","import { API, paramsSerializer } from '@services/api'\n\nclass CommunityService {\n\tgetFolderCounts() {\n\t\t// @ts-ignore\n\t\treturn API.get(`/community/folder-counts`, { cancelPending: true }).then(r => r && r.data)\n\t}\n\n\tgetStudiesById(studyIds) {\n\t\treturn API.get('/community/studies', {\n\t\t\tparams: { studyIds },\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data)\n\t}\n\n\tgetStudies(\n\t\tuploadStartDate,\n\t\tuploadEndDate,\n\t\tstudyStartDate,\n\t\tstudyEndDate,\n\t\tmodalityIds,\n\t\tpatientIdNameOwner,\n\t\tnotSent,\n\t\tpage,\n\t\tresultsPerPage\n\t) {\n\t\treturn API.get('/community/studies', {\n\t\t\t// @ts-ignore\n\t\t\tcancelPending: true,\n\t\t\tparams: {\n\t\t\t\tuploadStartDate,\n\t\t\t\tuploadEndDate,\n\t\t\t\tstudyStartDate,\n\t\t\t\tstudyEndDate,\n\t\t\t\tmodalityId: modalityIds,\n\t\t\t\tpatientIdNameOwner,\n\t\t\t\tnotSent,\n\t\t\t\tpage,\n\t\t\t\tresultsPerPage,\n\t\t\t},\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data)\n\t}\n}\n\nexport const communityService = new CommunityService()\n","import store from '@store'\n\nconst defaultLocale = 'en-us'\nexport const getLocale = () => {\n\tlet locale = store.state.repository.translationCulture\n\tif (locale.toLowerCase() === 'default') locale = navigator.language || navigator.userLanguage\n\treturn locale.toLowerCase() || defaultLocale\n}\n","module.exports = \"data:image/png;base64,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\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',_vm._b({class:_vm.buttonClass,attrs:{\"type\":_vm.type},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'button',_vm.$attrs,false),[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./Button.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!./Button.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Button.vue?vue&type=template&id=bfe287ac\"\nimport script from \"./Button.vue?vue&type=script&lang=js\"\nexport * from \"./Button.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","import { BUTTONS, BUTTON_MASKS, MOUSE_BINDINGS, TOUCH_BINDINGS } from '@/vtk/VTKViewport/consts'\nimport { getDefaultSeriesData } from '@/store/modules/mpr/state'\n\nconst mutations = {\n\tSET_MPR_ACTIVE: (state, active) => {\n\t\tstate.active = !!active\n\t},\n\tSET_MPR_ACTIVE_SERIES(state, { seriesId, modality }) {\n\t\t// Check for valid series that is different than current active one\n\t\tconst { activeSeries } = state\n\t\tif (!seriesId || (activeSeries && seriesId === activeSeries.seriesId)) return\n\t\t// Assign active series\n\t\tstate.activeSeries = {\n\t\t\t...getDefaultSeriesData(),\n\t\t\tseriesId,\n\t\t\tmodality,\n\t\t}\n\t},\n\tSET_MPR_LOADING({ activeSeries }, loading) {\n\t\tactiveSeries.isLoading = loading\n\t},\n\tSET_MPR_LOAD_PROGRESS({ activeSeries }, loadProgress) {\n\t\tactiveSeries.loadProgress = loadProgress\n\t},\n\tSET_MPR_VOLUME_DATA: ({ activeSeries }, volumeData) => {\n\t\tactiveSeries.volumeData = volumeData\n\t},\n\tSET_MPR_VOLUME_DIRECTION: ({ activeSeries }, direction) => {\n\t\tactiveSeries.volumeDirection = direction\n\t},\n\tSET_MPR_VOLUME_SLICE_DIRECTIONALITY: ({ activeSeries }, directionality) => {\n\t\tactiveSeries.sliceDirectionality = directionality\n\t},\n\tSET_MPR_VOLUME_IS_JPEG: ({ activeSeries }, isJpeg) => {\n\t\tactiveSeries.isJpeg = isJpeg\n\t},\n\tSET_MPR_LAYOUT({ activeSeries }, layout) {\n\t\tactiveSeries.lastLayout = activeSeries.layout\n\t\tactiveSeries.layout = layout\n\t},\n\tSET_MPR_ACTIVE_TOOL({ activeTools, tools }, { tool, buttonMask }) {\n\t\t// Get the button name using the mask\n\t\tconst selectedButton = BUTTON_MASKS[buttonMask]\n\t\t// Set the active tool for the given button, unset if it's active on another button.\n\t\tObject.values(BUTTONS).forEach(button => {\n\t\t\tif (button === selectedButton) {\n\t\t\t\tactiveTools[button] = tool\n\t\t\t} else if (activeTools[button] === tool) {\n\t\t\t\tactiveTools[button] = null\n\t\t\t}\n\t\t})\n\t\t// Update tool bindings\n\t\tconst inputDevices = this.state.toolManager.inputDevices\n\t\tupdateToolBindings(tools, activeTools, inputDevices)\n\t},\n\tUPDATE_AVAILABLE_TOOLS(state) {\n\t\tstate.availableTools = state.tools.map(tool => tool.resolve(state)).filter(tool => !tool.hidden)\n\t},\n\tUPDATE_TOOL_BINDINGS({ tools, activeTools }) {\n\t\tif (!tools || !tools.length) return\n\t\tconst inputDevices = this.state.toolManager.inputDevices\n\t\tupdateToolBindings(tools, activeTools, inputDevices)\n\t},\n\tSET_MPR_BLEND_MODE_ALL({ activeSeries }, mode) {\n\t\tactiveSeries.blendMode = mode\n\t\t// TODO: refactor this out so the 2dMPRViews listen for this root value instead\n\t\t// For now, duplicate the data so the views will see the change\n\t\tObject.values(activeSeries.viewData).forEach(v => {\n\t\t\tv.blendMode = mode\n\t\t})\n\t},\n\tSET_MPR_SYNC_WINDOW_LEVELS: (state, shouldSync) => {\n\t\tstate.syncWindowLevels = shouldSync\n\t},\n\tSET_MPR_SLICE_ROTATION: ({ activeSeries }, { index, plane, angle }) => {\n\t\tactiveSeries.viewData[index][`slicePlane${plane.toUpperCase()}Rotation`] = angle\n\t},\n\tSET_MPR_VIEW_ROLL: ({ activeSeries }, { index, angle }) => {\n\t\tactiveSeries.viewData[index]['viewRotation'] = angle\n\t},\n\tSET_MPR_SLICE_THICKNESS: ({ activeSeries }, { index, thickness }) => {\n\t\tactiveSeries.viewData[index].sliceThickness = thickness\n\t},\n\tSET_MPR_ACTIVE_VIEW: ({ activeSeries }, index) => {\n\t\tObject.entries(activeSeries.viewData).forEach(([i, v]) => {\n\t\t\tv.active = i === index\n\t\t})\n\t},\n\tSET_MPR_ACTIVE_POSITION: ({ activeSeries }, position) => {\n\t\tObject.values(activeSeries.viewData).forEach(v => {\n\t\t\tv.active = v.position === position\n\t\t})\n\t},\n\tSET_MPR_SWITCH_MODE_ACTIVE({ activeSeries }, active) {\n\t\tactiveSeries.switchModeActive = active\n\t},\n\tSWITCH_VIEWS({ activeSeries }, { fromIndex, toIndex }) {\n\t\tconst { viewData } = activeSeries\n\t\tconst fromPosition = viewData[fromIndex].position\n\t\tviewData[fromIndex].position = viewData[toIndex].position\n\t\tviewData[toIndex].position = fromPosition\n\t},\n\tTOGGLE_MPR_VIEW_FULLSCREEN({ activeSeries, layouts }) {\n\t\tconst { layout, lastLayout } = activeSeries\n\t\tconst newLayout =\n\t\t\tlayout.name === 'fullscreen'\n\t\t\t\t? lastLayout || layout\n\t\t\t\t: layouts.find(l => l.name === 'fullscreen')\n\t\tif (newLayout) {\n\t\t\tactiveSeries.lastLayout = activeSeries.layout\n\t\t\tactiveSeries.layout = newLayout\n\t\t}\n\t},\n\tSET_MPR_DEFAULT_WINDOW_LEVEL: ({ activeSeries }, { windowCenter, windowWidth }) => {\n\t\tactiveSeries.defaultVoi = { windowWidth, windowCenter }\n\t},\n\tSET_MPR_WINDOW_LEVELS_TEXT: (\n\t\t{ activeSeries: { viewData }, syncWindowLevels },\n\t\t{ index, windowCenter, windowWidth }\n\t) => {\n\t\tObject.keys(viewData).forEach(key => {\n\t\t\tif (syncWindowLevels || index === key) {\n\t\t\t\tviewData[key].window.center = windowCenter\n\t\t\t\tviewData[key].window.width = windowWidth\n\t\t\t}\n\t\t})\n\t},\n\tTOGGLE_MPR_SHOW_OVERLAY_TEXT(state) {\n\t\tstate.showOverlayText = !state.showOverlayText\n\t},\n\tSET_MPR_SHOW_OVERLAY_TEXT(state, show) {\n\t\tstate.showOverlayText = show\n\t},\n\tTOGGLE_MPR_SHOW_AXIS(state) {\n\t\tstate.showAxisOverlay = !state.showAxisOverlay\n\t},\n\tSET_MPR_SHOW_AXIS(state, show) {\n\t\tstate.showAxisOverlay = show\n\t},\n\tSET_MPR_SHOW_IMAGE_ORIENTATION_MARKERS(state, show) {\n\t\tstate.showImageOrientationMarkers = show\n\t},\n\tROTATE_VIEW_CLOCKWISE: ({ activeSeries }, index) => {\n\t\trotateView(activeSeries, index, 90)\n\t},\n\tROTATE_VIEW_COUNTERCLOCKWISE: ({ activeSeries }, index) => {\n\t\trotateView(activeSeries, index, -90)\n\t},\n\tROTATE_VIEW_BY_ANGLE: ({ activeSeries }, { index, degrees }) => {\n\t\trotateView(activeSeries, index, degrees)\n\t},\n\tFLIP_VIEW_H: ({ activeSeries }, { index }) => {\n\t\tactiveSeries.viewData[index].flipH = !activeSeries.viewData[index].flipH\n\t},\n\tFLIP_VIEW_V: ({ activeSeries }, { index }) => {\n\t\tactiveSeries.viewData[index].flipV = !activeSeries.viewData[index].flipV\n\t},\n\tSET_MPR_VIEWDATA: ({ activeSeries }, viewData) => {\n\t\tactiveSeries.viewData = viewData\n\t},\n\tSET_MPR_VIEW_COMPONENT: ({ activeSeries }, { index, component }) => {\n\t\tconst { viewData } = activeSeries\n\t\tif (viewData[index] && component) {\n\t\t\tviewData[index].component = component\n\t\t}\n\t},\n\tCLEAR_MPR_ACTIVE_ANNOTATIONS: ({ activeSeries }) => {\n\t\tconst { viewData } = activeSeries\n\t\tObject.values(viewData).forEach(view => {\n\t\t\tif (view.active) {\n\t\t\t\tview.component.clearAnnotations()\n\t\t\t}\n\t\t})\n\t},\n\tCLEAR_MPR_ACTIVE_SERIES(state) {\n\t\tstate.activeSeries = null\n\t},\n\tSET_ON_MPR_RESET_CB({ activeSeries }, onReset) {\n\t\tactiveSeries.onReset = onReset\n\t},\n\tSET_MPR_INVERT_CB({ activeSeries }, onInvert) {\n\t\tactiveSeries.onInvert = onInvert\n\t},\n\tSET_MPR_MOVESLICE_CB({ activeSeries }, onMoveSlice) {\n\t\tactiveSeries.onMoveSlice = onMoveSlice\n\t},\n\tSET_MPR_PERFORMANCE_ISSUES(state, issues) {\n\t\tstate.issues = issues\n\t},\n}\n\nfunction updateToolBindings(tools, activeTools, inputDevices) {\n\tconst deviceBindings = inputDevices.includes('mouse') ? MOUSE_BINDINGS : TOUCH_BINDINGS\n\ttools.forEach(tool => {\n\t\tlet bindings = Object.keys(activeTools)\n\t\t\t.filter(button => activeTools[button] === tool.name && deviceBindings[button])\n\t\t\t.map(button => deviceBindings[button])\n\t\ttool.binding = bindings.join('')\n\t})\n}\n\nfunction rotateView(activeSeries, index, degrees) {\n\tdegrees = degrees % 360 // don't rotate more than 359 degrees at a time\n\tlet newAngle = activeSeries.viewData[index].viewRotation + Math.round(degrees)\n\tif (newAngle < 0) newAngle += 360\n\telse if (newAngle >= 360) newAngle -= 360\n\tactiveSeries.viewData[index].viewRotation = newAngle\n}\n\nexport const keys = Object.keys(mutations).reduce(\n\t(ret, key) => ({\n\t\t...ret,\n\t\t[key]: key,\n\t}),\n\t{}\n)\n\nexport default mutations\n","module.exports = \"\"","import store from '@store'\nimport { API } from '@services/api'\n\nclass UserData {\n\tget claims(): IClaims {\n\t\treturn store.state.auth.claims\n\t}\n\n\tget permissions(): IPermissions {\n\t\treturn store.state.static.permissions\n\t}\n\n\tget isAuthenticated(): boolean {\n\t\treturn !!store.state.auth.token\n\t}\n\n\tget queryToken(): string {\n\t\treturn `${this.claims.activeClinicCode}_${this.claims.sessionId}`\n\t}\n\n\tget canCreateScheduleItem() {\n\t\treturn this.claims.isSchedulingEnabled\n\t}\n\n\tgetPermissionMeta(): Promise {\n\t\treturn API.get(`/user/permission-meta`).then(r => r.data)\n\t}\n\n\tgetRegions(): Promise {\n\t\treturn API.get(`/user/regions`).then(r => r.data)\n\t}\n\n\tgetAllUsers(): Promise {\n\t\treturn API.get(`/user/all-users`).then(r => r.data)\n\t}\n\n\tgetUserDetails(userId?: string): Promise {\n\t\treturn API.get(`/user/get-user-details`, { params: { userId } }).then(r => r.data)\n\t}\n\n\tgetUserDefaults(): Promise {\n\t\treturn API.get(`/user/user-defaults`).then(r => r.data)\n\t}\n\n\tupdateUser(data: IUserAccount) {\n\t\treturn API.post(`/user/update-user`, data)\n\t}\n\n\tcreateUser(data: IUserAccount) {\n\t\treturn API.post(`/user/create-user`, data).then(r => {\n\t\t\tdata.userId = r.data\n\t\t})\n\t}\n\n\tupdateUserDefaults(data: IUserAccount) {\n\t\treturn API.post(`/user/user-defaults`, data)\n\t}\n\n\tdeleteUser(userId: string) {\n\t\treturn API.delete(`/user/${userId}`)\n\t}\n\n\tenableUser(enabled: boolean, userId: string) {\n\t\treturn API.put(`/user/enable`, null, { params: { enabled, userId } })\n\t}\n\n\tupdateSignature(userId: string, file: File) {\n\t\tvar formData = new FormData()\n\t\tformData.append('image', file)\n\t\treturn API.post(`/user/signature/${userId}`, formData, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t},\n\t\t})\n\t}\n\n\tupdateLogo(userId: string, file: File) {\n\t\tvar formData = new FormData()\n\t\tformData.append('image', file)\n\t\treturn API.post(`/user/logo/${userId}`, formData, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t},\n\t\t})\n\t}\n\n\tgetCommunityUserAccounts(email) {\n\t\treturn API.get(`/user/get-community-user-accounts?email=${email}`).then(r => r.data)\n\t}\n\n\tgetClinicImages(): Promise {\n\t\treturn API.get(`/clinic/image`).then(r => r.data)\n\t}\n\n\tsaveClinicImage(image: IClinicImage, file: File) {\n\t\tvar formData = new FormData()\n\t\tformData.append('image', file)\n\t\treturn API.post(`/clinic/image/${image.id}`, formData).then(r => {\n\t\t\timage.id = r.data.id\n\t\t\timage.url = r.data.url\n\t\t})\n\t}\n\n\tdeleteClinicImage(id: string) {\n\t\treturn API.delete(`/clinic/image/${id}`)\n\t}\n}\n\nexport const userData = new UserData()\n","// Google Analytics\nimport { event, pageview } from 'vue-gtag'\n\nfunction sendGAEvent(action, eventParams) {\n event(action,eventParams)\n}\n\nfunction sendGAPageView(pagePath) {\n pageview(pagePath)\n}\n\nconst googleAnalytics = {\n sendGAEvent,\n sendGAPageView\n}\n\nexport default googleAnalytics\n","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!./2DMPRView.vue?vue&type=style&index=0&id=2f936508&prod&lang=scss&scoped=true\"","module.exports = \"\"","module.exports = \"\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","module.exports = \"\"","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!./ReleaseNotes.vue?vue&type=style&index=1&id=01db828d&prod&lang=scss\"","import { API } from '@services/api'\n\nclass BillingCodes {\n\tget(consultantId?: string): Promise {\n\t\treturn API.get(`/billingcodes`, {\n\t\t\tparams: { consultantId },\n\t\t}).then(r => r.data)\n\t}\n\n\tsave(codes: IBillingCode[], consultantId?: string) {\n\t\treturn API.post(`/billingcodes`, codes, {\n\t\t\tparams: { consultantId },\n\t\t})\n\t}\n}\n\nexport const billingCodes = new BillingCodes()\n// @ts-ignore\nwindow.billingCodes = billingCodes\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./ViewportOverlay.vue?vue&type=style&index=0&id=25cec1f4&prod&lang=scss&scoped=true\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"in-out\"}},[(_vm.state.active)?_c('div',{attrs:{\"id\":\"loading\",\"data-test\":\"loading-indicator\"}},[_c('div',{staticClass:\"inner\"},[_vm._v(_vm._s(_vm.state.message))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\nconst state = {\n\tmessage: '',\n\tactive: false,\n}\n\nconst MIN_SHOW_TIME = 1000\n\nexport default {\n\tname: 'Loading',\n\tdata() {\n\t\treturn {\n\t\t\tstate,\n\t\t}\n\t},\n\tmethods: {},\n}\n\nexport function setLoading(message: string, promise: Promise) {\n\tlet startTime = new Date()\n\tstate.message = message\n\tstate.active = true\n\tpromise.finally(() => {\n\t\tlet endTime = new Date()\n\t\tvar diff = endTime.getTime() - startTime.getTime()\n\t\tlet ms = MIN_SHOW_TIME - diff\n\t\tsetTimeout(() => {\n\t\t\tstate.active = false\n\t\t}, ms)\n\t})\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=1a508d89\"\nimport script from \"./Loading.vue?vue&type=script&lang=ts\"\nexport * from \"./Loading.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&id=1a508d89&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","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!./attachmentDlg.vue?vue&type=style&index=0&id=1e47bd34&prod&lang=scss\"","module.exports = \"\"","const videoExtensions = [\n\t'.3gp',\n\t'.3g2',\n\t'.asf',\n\t'.avi',\n\t'.m2v',\n\t'.mkv',\n\t'.mov',\n\t'.mp2',\n\t'.mp4',\n\t'.mpg',\n\t'.mpeg',\n\t'.mpeg1',\n\t'.mpeg2',\n\t'.mpeg3',\n\t'.mpeg4',\n\t'.mpv',\n\t'.wmv',\n]\n\nconst iconNameLookup = {\n\t'.pdf': 'file-pdf-o',\n\t'.zip': 'file-archive-o',\n\t'.mp3': 'file-audio-o',\n\t'.html': 'file-code-o',\n\t'.xls': 'file-excel-o',\n\t'.xlsx': 'file-excel-o',\n\t'.png': 'file-image-o',\n\t'.jpg': 'file-image-o',\n\t'.jpeg': 'file-image-o',\n\t'.gif': 'file-image-o',\n\t'.mp4': 'file-movie-o',\n\t'.ppt': 'file-powerpoint-o',\n\t'.pptx': 'file-powerpoint-o',\n\t'.txt': 'file-text-o',\n\t'.mkv': 'file-movie-o',\n\t'.doc': 'file-word-o',\n\t'.docx': 'file-word-o',\n\tdefault: 'file-o',\n}\n\nfunction findFileIconName(extension) {\n\tif (extension.indexOf('.') !== 0) {\n\t\textension = getFileExtension(extension)\n\t}\n\n\tif (videoExtensions.includes(extension)) return iconNameLookup['.mp4']\n\tlet iconName = iconNameLookup[extension]\n\ticonName = iconName || iconNameLookup['default']\n\treturn iconName\n}\n\nfunction getFileExtension(file) {\n\treturn `.${file.split('.').pop()}`.toLowerCase()\n}\n\nfunction isPDF(file) {\n\tlet ext = getFileExtension(file)\n\treturn ext === '.pdf'\n}\n\nfunction isVideo(file) {\n\tlet ext = getFileExtension(file)\n\treturn videoExtensions.includes(ext)\n}\n\nexport const FileUtils = {\n\tfindFileIconName,\n\tgetFileExtension,\n\tisPDF,\n\tisVideo,\n}\n","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',{ref:\"emails\",attrs:{\"disabled\":_vm.disabled,\"options\":_vm.emailList,\"select-on-key-codes\":_vm.$options.selectOnKeyCodes,\"searchable\":\"\",\"taggable\":\"\",\"multiple\":\"\"},on:{\"search:blur\":_vm.onEmailSearchBlur,\"search\":function (term) { return _vm.getEmailList(term); }},model:{value:(_vm.addresses),callback:function ($$v) {_vm.addresses=$$v},expression:\"addresses\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./EmailSelect.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!./EmailSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EmailSelect.vue?vue&type=template&id=6f0a38e1\"\nimport script from \"./EmailSelect.vue?vue&type=script&lang=js\"\nexport * from \"./EmailSelect.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dialog\"},[_c('modal-dialog',{attrs:{\"actions\":_vm.actions,\"is-open\":true,\"title\":_vm.title,\"close-text\":\"Cancel\"},on:{\"close\":_vm.cancel,\"focus\":function($event){return _vm.action('focus')},\"add\":function($event){return _vm.action('add')},\"replace\":function($event){return _vm.action('replace')},\"new\":function($event){return _vm.action('new')}}},[(_vm.forExistingStudy)?[_c('div',[_c('p',[_vm._v(\"An Image Viewer window with this study is already open.\")]),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\tWould you like to view this study in the existing Window or open this study in a new Viewer Window?\\n\\t\\t\\t\\t\")])])]:[_c('div',[_c('p',[_vm._v(\"An Image Viewer window is already open.\")]),_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\tWould you like to add this study to the last opened Window, close all Viewer Windows before opening, or open\\n\\t\\t\\t\\t\\tthis study in a new Viewer Window?\\n\\t\\t\\t\\t\")])])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./OpenStudyOptionsDlg.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!./OpenStudyOptionsDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OpenStudyOptionsDlg.vue?vue&type=template&id=609c534f\"\nimport script from \"./OpenStudyOptionsDlg.vue?vue&type=script&lang=js\"\nexport * from \"./OpenStudyOptionsDlg.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","import api from '@services/api'\nimport isMobileOS from '@utils/isMobileOS'\nimport { omniDesktop } from '@/electron/omniDesktop'\nimport router from '@router/index'\nimport { showStudyOptions } from '@dialogs/OpenStudyOptionsDlg.vue'\nimport { eventBus } from '@services/eventBus'\nimport listToArray from '@utils/listToArray'\nimport storage from '@services/storage'\n\nconst isElectron = omniDesktop.isConnected\nconst PRIMARY_VIEWER = 'mainViewer'\n\nconst state = {\n\topenStudiesInNewWindow: JSON.parse(storage.getItem('temp:openInNewWindow')) || false,\n\topenedStudyWindowReferences: [],\n}\n\nconst getters = {\n\tallowOpenStudiesInNewWindow: (s, g, rootState) => !rootState.auth.claims.isRepositoryUser,\n}\n\nconst actions = {\n\tasync saveOpenStudiesInNewWindow({ commit }, newWindow) {\n\t\t// API Call\n\t\tconst response = await api.user.setOpenStudiesWindowSetting(newWindow)\n\t\tif (response.status === 200) {\n\t\t\tconst type = 'SET_OPEN_STUDIES_NEW_WINDOW'\n\t\t\tcommit(type, newWindow)\n\t\t\teventBus.broadcast(eventBus.type.VUEX_MUTATION, { type, payload: newWindow })\n\t\t}\n\t},\n\tasync fetchOpenStudiesInNewWindow({ commit }) {\n\t\tconst response = await api.user.getOpenStudiesWindowSetting()\n\t\tif (response.status === 200) {\n\t\t\tcommit('SET_OPEN_STUDIES_NEW_WINDOW', response.data || false)\n\t\t}\n\t\t// Setting is undefined, user has not specified.\n\t\t// Don't show prompt on mobile, even though they can still set it in settings.\n\t\tif (response.status === 204) {\n\t\t\tcommit('SET_OPEN_STUDIES_NEW_WINDOW', null)\n\t\t}\n\t},\n\topenStudy(store, routeObject) {\n\t\tif (isElectron) {\n\t\t\treturn electron.openStudy(store, routeObject)\n\t\t}\n\t\treturn browser.openStudy(store, routeObject)\n\t},\n\tasync preloadViewerWindows() {\n\t\tif (isElectron && !router.currentRoute.path.includes('viewer') && (await omniDesktop.request('isWorklistWindow'))) {\n\t\t\tomniDesktop.request('preloadPrimaryViewers')\n\t\t}\n\t},\n\t// Duplicate action from Authentication module, listening for window management\n\tclearAllData() {\n\t\tif (isElectron) omniDesktop.request('closeAllViewers')\n\t},\n}\n\nconst browser = {\n\t// Main Action, forwarded from actions\n\tasync openStudy(store, { studyId, reportId, initialSeriesId, initialSeriesIds, imageId }) {\n\t\tconst query = {}\n\t\tconst routeConfig = { name: 'viewer', query }\n\t\tif (studyId) {\n\t\t\tquery.studyIds = studyId\n\t\t}\n\t\tif (reportId) {\n\t\t\tquery.reportIds = reportId\n\t\t}\n\t\tif (initialSeriesId) {\n\t\t\tquery.sid = initialSeriesId\n\t\t}\n\t\tif (initialSeriesIds) {\n\t\t\tquery.sids = initialSeriesIds\n\t\t}\n\t\tif (imageId) {\n\t\t\tquery.imageId = imageId\n\t\t}\n\t\tconst { href } = router.resolve(routeConfig)\n\n\t\tif ((reportId || state.openStudiesInNewWindow) && !isMobileOS()) {\n\t\t\tawait browser.pruneClosedWindows(store)\n\t\t\t// NOTE: We pass in the href/url here because IF the window is not already open, it will get opened in the process\n\t\t\tconst { window, isNewWindow } = browser.getMainViewerWindowReference(store, href)\n\t\t\tif (window && window.isShowingStudyOrReport && window.isShowingStudyOrReport({ studyId, reportId })) {\n\t\t\t\tconst action = await showStudyOptions({ forReport: !!reportId, forExistingStudy: true })\n\t\t\t\tif (action === 'focus') {\n\t\t\t\t\twindow.onAddToViewer({\n\t\t\t\t\t\tsid: initialSeriesId,\n\t\t\t\t\t\tinitialSeriesIds,\n\t\t\t\t\t})\n\t\t\t\t\t// - Focus study in existing viewer\n\t\t\t\t\twindow.focus()\n\t\t\t\t}\n\t\t\t\tif (action === 'new') {\n\t\t\t\t\t// - Open New Viewer - Open a new viewer window for the study.\n\t\t\t\t\tbrowser.openNewStudyWindow(store, href)\n\t\t\t\t}\n\t\t\t} else if (!isNewWindow) {\n\t\t\t\t// in the supposedly impossible event that no window was found but wasn't created either.\n\t\t\t\tif (!window) {\n\t\t\t\t\tbrowser.openNewStudyWindow(store, href)\n\t\t\t\t} else {\n\t\t\t\t\tconst isEmptyViewer = window.location.hash === '#/viewer/' || !window.onAddToViewer\n\t\t\t\t\tconst action = isEmptyViewer ? 'replace' : await showStudyOptions({ forReport: !!reportId })\n\n\t\t\t\t\tif (action === 'add' && window.onAddToViewer) {\n\t\t\t\t\t\t// - Add to Viewer - Adds the study to an existing viewer window.\n\t\t\t\t\t\twindow.onAddToViewer({ studyId, reportId, initialSeriesId, initialSeriesIds, imageId })\n\t\t\t\t\t\twindow.focus()\n\t\t\t\t\t}\n\t\t\t\t\tif (action === 'replace') {\n\t\t\t\t\t\t// - Close Study - Close the study in the existing viewer window and open the new study instead.\n\t\t\t\t\t\twindow.location.replace(href)\n\t\t\t\t\t\twindow.focus()\n\t\t\t\t\t}\n\t\t\t\t\tif (action === 'new') {\n\t\t\t\t\t\t// - Open New Viewer - Open a new viewer window for the study.\n\t\t\t\t\t\tbrowser.openNewStudyWindow(store, href)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\t// Open in existing window\n\t\t\trouter.push(routeConfig)\n\t\t}\n\t},\n\topenNewStudyWindow({ commit, state }, href) {\n\t\tlet windowName = '_blank'\n\t\tlet newWindow\n\t\tlet wasOpen = false\n\t\tif (!state.openedStudyWindowReferences.length) {\n\t\t\t// Create a named window we can retreive later if the main window is refreshed.\n\t\t\twindowName = PRIMARY_VIEWER\n\t\t\tnewWindow = window.open('', windowName, 'resizable,scrollbars,status')\n\t\t\tif (newWindow.location.href === 'about:blank') {\n\t\t\t\t// Create new window\n\t\t\t\tnewWindow = window.open(href, windowName, 'resizable,scrollbars,status')\n\t\t\t} else {\n\t\t\t\t// Got the existing window!\n\t\t\t\tnewWindow.location.replace(href)\n\t\t\t\tnewWindow.focus()\n\t\t\t\twasOpen = true\n\t\t\t}\n\t\t} else {\n\t\t\tnewWindow = window.open(href, windowName, 'resizable,scrollbars,status')\n\t\t}\n\t\tcommit('ADD_OPEN_STUDY_WINDOW', newWindow)\n\t\tnewWindow.onload = () => {\n\t\t\t// Sometimes the window can be undefined already?\n\t\t\tif (newWindow && !newWindow.closed) {\n\t\t\t\tnewWindow.onunload = () => {\n\t\t\t\t\tdelete newWindow.onunload\n\t\t\t\t\t// If the window was closed programmatically (CLOSE_ALL_STUDY_WINDOWS), then we don't need to try to remove it again\n\t\t\t\t\t!newWindow.closed && commit('REMOVE_OPEN_STUDY_WINDOW', newWindow)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn { newWindow, wasOpen }\n\t},\n\t// Used to cleanup windows that were opened and registered, but closed before the onLoad event, leaving them in a stuck position.\n\t// Could also be windows that were opened but logged out, meaning they no longer have the onAddtoViewer function attached.\n\tpruneClosedWindows({ commit, state }) {\n\t\tstate.openedStudyWindowReferences.forEach(w => {\n\t\t\tif (w.closed || !w.onAddToViewer) commit('REMOVE_OPEN_STUDY_WINDOW', w)\n\t\t})\n\t},\n\tgetMainViewerWindowReference({ commit, state }, href) {\n\t\tlet isNewWindow = false\n\t\tlet windowRef = null\n\t\tif (!state.openedStudyWindowReferences.length) {\n\t\t\t// Create a named window we can retreive later if the main window is refreshed.\n\t\t\tconst openedWindow = window.open('', PRIMARY_VIEWER, 'resizable,scrollbars,status')\n\t\t\tif (openedWindow.location.href !== 'about:blank') {\n\t\t\t\t// Got the existing window, reattach the reference!\n\t\t\t\tcommit('ADD_OPEN_STUDY_WINDOW', openedWindow)\n\t\t\t\topenedWindow.onload = () => {\n\t\t\t\t\t// Sometimes the window can be undefined already?\n\t\t\t\t\tif (openedWindow && !openedWindow.closed) {\n\t\t\t\t\t\topenedWindow.onunload = () => {\n\t\t\t\t\t\t\tdelete openedWindow.onunload\n\t\t\t\t\t\t\t// If the window was closed programmatically (CLOSE_ALL_STUDY_WINDOWS), then we don't need to try to remove it again\n\t\t\t\t\t\t\t!openedWindow.closed && commit('REMOVE_OPEN_STUDY_WINDOW', openedWindow)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\twindowRef = openedWindow\n\t\t\t\tisNewWindow = false\n\t\t\t} else {\n\t\t\t\t// Note: a blank window has been created at this point, but it is named. We will reuse this window in openNewStudyWindow!\n\t\t\t\tconst { newWindow } = browser.openNewStudyWindow({ commit, state }, href)\n\t\t\t\twindowRef = newWindow\n\t\t\t\tisNewWindow = true\n\t\t\t}\n\t\t} else {\n\t\t\t// If the viewer window list is not pruned properly, it could still have windows that are referenced but not initialized to the state we need.\n\t\t\twindowRef = state.openedStudyWindowReferences.find(\n\t\t\t\twindow => !window.closed && window.isShowingStudyOrReport && window.onAddToViewer\n\t\t\t)\n\t\t\tisNewWindow = false\n\t\t}\n\t\treturn {\n\t\t\twindow: windowRef,\n\t\t\tisNewWindow,\n\t\t}\n\t},\n}\n\nconst electron = {\n\tasync openStudy(store, { studyId, reportId, initialSeriesId, imageId, modality }) {\n\t\tif ((reportId || state.openStudiesInNewWindow) && !isMobileOS()) {\n\t\t\tlet seriesIds\n\t\t\tif (initialSeriesId) {\n\t\t\t\tseriesIds = [initialSeriesId]\n\t\t\t} else if (studyId || reportId) {\n\t\t\t\tconst studyIds = listToArray(studyId)\n\t\t\t\tseriesIds = await fetchSeriesIds(studyIds, reportId)\n\t\t\t}\n\t\t\tconst viewerData = {\n\t\t\t\tstudyId,\n\t\t\t\treportId,\n\t\t\t\tseriesIds,\n\t\t\t\timageId,\n\t\t\t}\n\n\t\t\tconst layoutRequest = await api.user.getLayoutPreset(modality)\n\t\t\tif (layoutRequest.data) {\n\t\t\t\tviewerData.modalityLayout = layoutRequest.data\n\t\t\t}\n\t\t\tconst { areWindowsOpen, isViewerEmpty, primaryStudyIds, primaryReportIds } = await electron.getMainViewerState()\n\t\t\tconst isViewerAlreadyShowingStudy =\n\t\t\t\t(!!studyId && primaryStudyIds.includes(studyId)) || (!!reportId && primaryReportIds.includes(reportId))\n\t\t\tif (areWindowsOpen) {\n\t\t\t\tif (isViewerEmpty) {\n\t\t\t\t\tomniDesktop.request('replaceInPrimaryViewer', viewerData)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst action = await showStudyOptions({ forReport: !!reportId, forExistingStudy: isViewerAlreadyShowingStudy })\n\t\t\t\tif (action === 'focus' || action === 'add') {\n\t\t\t\t\t// - Add to Viewer - Adds the study to an existing viewer window.\n\t\t\t\t\tomniDesktop.request('addToPrimaryViewer', viewerData)\n\t\t\t\t} else if (action === 'replace') {\n\t\t\t\t\t// - Close Study - Close the study in the existing viewer window and open the new study instead.\n\t\t\t\t\tomniDesktop.request('replaceInPrimaryViewer', viewerData)\n\t\t\t\t}\n\t\t\t\tif (action === 'new') {\n\t\t\t\t\t// - Open New Viewer - Open a new viewer window for the study.\n\t\t\t\t\tomniDesktop.request('openNewSecondaryViewerWindow', viewerData)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Else, get # of images in study & default layout for modality, to pass to Electron to determine how best to open\n\t\t\t\tomniDesktop.request('openPrimaryViewer', viewerData)\n\t\t\t}\n\t\t} else {\n\t\t\t// Open in existing window\n\t\t\tconst query = {}\n\t\t\tif (studyId) query.studyIds = studyId\n\t\t\tif (reportId) query.reportIds = reportId\n\t\t\tif (initialSeriesId) query.sid = initialSeriesId\n\t\t\tif (imageId) query.imageId = imageId\n\t\t\trouter.push({ name: 'viewer', query })\n\t\t}\n\t},\n\tgetMainViewerState() {\n\t\treturn omniDesktop.request('getPrimaryViewerState')\n\t},\n\tasync checkIfMainViewerWindowIsOpen() {\n\t\tconst isMainViewerOpen = await omniDesktop.request('isPrimaryViewerOpen')\n\t\tif (isMainViewerOpen) return true\n\t\treturn false\n\t},\n\tasync checkIfMainViewerShowing(studyId, reportId) {\n\t\tconst isViewerShowing = await omniDesktop.request('isViewerShowing', { studyId, reportId })\n\t\tif (isViewerShowing) return true\n\t\treturn false\n\t},\n}\n\nconst mutations = {\n\tSET_OPEN_STUDIES_NEW_WINDOW(state, newWindow) {\n\t\tstate.openStudiesInNewWindow = newWindow\n\t\tstorage.setItem('temp:openInNewWindow', JSON.stringify(newWindow))\n\t},\n\tADD_OPEN_STUDY_WINDOW({ openedStudyWindowReferences }, openedWindow) {\n\t\topenedStudyWindowReferences.push(openedWindow)\n\t},\n\tREMOVE_OPEN_STUDY_WINDOW(state, openedWindow) {\n\t\tconst filtered = state.openedStudyWindowReferences.filter(w => {\n\t\t\tconst matches = w !== openedWindow && !w.closed\n\t\t\treturn matches\n\t\t})\n\t\tstate.openedStudyWindowReferences = filtered\n\t},\n\tCLOSE_ALL_STUDY_WINDOWS({ openedStudyWindowReferences }) {\n\t\tlet windowRef = openedStudyWindowReferences.pop()\n\t\twhile (windowRef) {\n\t\t\twindowRef.close()\n\t\t\twindowRef = openedStudyWindowReferences.pop()\n\t\t}\n\t},\n}\n\nexport default {\n\tstate,\n\tgetters,\n\tactions,\n\tmutations,\n}\n\nasync function fetchSeriesIds(studyIds, reportId) {\n\tlet seriesIds = []\n\t// Get study series\n\tif (studyIds.length) {\n\t\tconst data = await api.viewer.getStudy({ ids: studyIds })\n\t\tif (data && data.studies && data.studies.length) {\n\t\t\tseriesIds = seriesIds.concat(...data.studies.map(study => study.imageData.series)).map(series => series.seriesId)\n\t\t}\n\t}\n\t// Get report series\n\tif (reportId) {\n\t\tconst data = await api.study.getReportStudies(reportId)\n\t\tif (data && data.length) {\n\t\t\tdata.forEach(r => {\n\t\t\t\tif (r.imageData && r.imageData.series && r.imageData.series.length) {\n\t\t\t\t\tr.imageData.series.forEach(s => seriesIds.push(s.seriesId))\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t}\n\treturn seriesIds\n}\n\n/**\n * Sorts screens left->right, and top-bottom if in the same horizontal position.\n * @returns {Electron.Display[]}\n */\n// function getSortedScreens() {\n// \treturn screen.getAllDisplays().sort((a, b) => {\n// \t\tconst x = a.bounds.x - b.bounds.x\n// \t\tif (x === 0) {\n// \t\t\treturn a.bounds.y - b.bounds.y\n// \t\t}\n// \t\treturn x\n// \t})\n// }\n","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"filter\"},[_c('label',[_vm._v(_vm._s(_vm.label))]),_c('div',{staticClass:\"input-row\"},_vm._l((_vm.dateRangeOptions),function(ref){\nvar id = ref[0];\nvar name = ref[1];\nreturn _c('ast-radio',{key:id,attrs:{\"value\":id},model:{value:(_vm._dateRange),callback:function ($$v) {_vm._dateRange=$$v},expression:\"_dateRange\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(name)+\"\\n\\t\\t\")])}),1),_c('div',{staticClass:\"input-row\"},[_c('datepicker',{style:({ marginRight: '10px' }),attrs:{\"placeholder\":\"Start Date\",\"allow-future-dates\":\"\"},model:{value:(_vm._startDate),callback:function ($$v) {_vm._startDate=$$v},expression:\"_startDate\"}}),_c('datepicker',{attrs:{\"placeholder\":\"End Date\",\"end-of-day\":\"\",\"allow-future-dates\":\"\"},model:{value:(_vm._endDate),callback:function ($$v) {_vm._endDate=$$v},expression:\"_endDate\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./DateRangePicker.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!./DateRangePicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DateRangePicker.vue?vue&type=template&id=e8f5f386&scoped=true\"\nimport script from \"./DateRangePicker.vue?vue&type=script&lang=js\"\nexport * from \"./DateRangePicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./DateRangePicker.vue?vue&type=style&index=0&id=e8f5f386&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 \"e8f5f386\",\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close}},[_c('div',{class:{ pdf: _vm.activePdfUrl },attrs:{\"id\":\"attachmentDlg\"}},[(_vm.activePdfUrl)?_c('pdf-viewer',{attrs:{\"src\":_vm.activePdfUrl,\"show-review-button\":_vm.showReviewButton,\"show-download-button\":_vm.showDownloadButton},on:{\"close\":_vm.close}}):_vm._e(),(_vm.activeVideoUrl)?_c('video-player',{attrs:{\"src\":_vm.activeVideoUrl,\"is-muted\":_vm.isMuted,\"image-id\":_vm.imageId},on:{\"close\":_vm.close}}):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render, staticRenderFns\nimport script from \"./VideoPlayer.vue?vue&type=script&lang=js\"\nexport * from \"./VideoPlayer.vue?vue&type=script&lang=js\"\nimport style0 from \"./VideoPlayer.vue?vue&type=style&index=0&id=fa47a41c&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 \"fa47a41c\",\n null\n \n)\n\nexport default component.exports","\n\n\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!./VideoPlayer.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!./VideoPlayer.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport ModalWrapper from '@components/ModalWrapper.vue'\nimport PdfViewer from '@components/PdfViewer.vue'\nimport VideoPlayer from '@components/VideoPlayer.vue'\nimport { FileUtils } from '@utils/fileUtils'\nimport { findAttachmentUrl } from '@utils/urlUtility'\nimport { dlg } from '@utils/dlgUtils'\n\nconst AttachmentDlg = {\n\tname: 'AttachmentDlg',\n\tcomponents: {\n\t\tModalWrapper,\n\t\tPdfViewer,\n\t\tVideoPlayer,\n\t},\n\tprops: {\n\t\tactivePdfUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tactiveVideoUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\timageId: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: '',\n\t\t},\n\t\tisMuted: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tshowReviewButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tshowDownloadButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tmethods: {\n\t\tclose(data) {\n\t\t\tdlg.close(this, true, data || {})\n\t\t},\n\t},\n}\n\nexport default AttachmentDlg\n\nexport function openAttachmentDlg(file: IViewerAttachment, isMuted: boolean = false, showPdfDownloadButton = true) {\n\tconst fileUrl = findAttachmentUrl({\n\t\timageId: file.imageId,\n\t\tclinicCode: file.storageLocation.clinicCode,\n\t\tendpointBaseUrl: file.storageLocation.endpointBaseUrl,\n\t})\n\tif (FileUtils.isPDF(file.fileExtension)) {\n\t\tdlg.open(AttachmentDlg, { activePdfUrl: fileUrl, showDownloadButton: showPdfDownloadButton })\n\t} else if (FileUtils.isVideo(file.fileExtension)) {\n\t\tdlg.open(AttachmentDlg, { activeVideoUrl: fileUrl, isMuted, imageId: file.imageId })\n\t} else {\n\t\twindow.open(fileUrl)\n\t}\n}\n\nexport function openPdfDlg(\n\turl: string,\n\tshowReviewButton = false,\n\tshowDownloadButton = true\n): Promise {\n\treturn dlg.open(AttachmentDlg, {\n\t\tactivePdfUrl: url,\n\t\tshowReviewButton,\n\t\tshowDownloadButton,\n\t})\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./attachmentDlg.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./attachmentDlg.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./attachmentDlg.vue?vue&type=template&id=1e47bd34\"\nimport script from \"./attachmentDlg.vue?vue&type=script&lang=ts\"\nexport * from \"./attachmentDlg.vue?vue&type=script&lang=ts\"\nimport style0 from \"./attachmentDlg.vue?vue&type=style&index=0&id=1e47bd34&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","import store from '@store'\nimport { isSharedWorkerSupported, createMessageSender } from '@utils/sharedWorkers'\n\nconst REFRESH_TOKEN_TIMER = 1000 * 60 * 5 // 5 minutes\n\nlet w\nlet isWorkerEnabled = false\nconst initializeRefreshToken = () => {\n\tisWorkerEnabled = isSharedWorkerSupported()\n\tif (!isWorkerEnabled) return\n\tw = new SharedWorker('refreshTokenWebWorker.js', 'asteris-refresh-token-worker').port\n\tw.start()\n\tw.onmessage = function(event) {\n\t\tif (event.data === 'refeshToken') {\n\t\t\tconsole.log('Refreshing token')\n\t\t\ttry {\n\t\t\t\tstore.dispatch('refreshToken')\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction enableRefreshToken() {\n\tconst msg = {\n\t\ttype: 'enableRefreshToken',\n\t\ttimer: parseInt(REFRESH_TOKEN_TIMER),\n\t}\n\tcreateMessageSender(w, isWorkerEnabled)(msg)\n}\n\nfunction disableRefreshToken() {\n\tconst msg = {\n\t\ttype: 'disableRefreshToken',\n\t}\n\tcreateMessageSender(w, isWorkerEnabled)(msg)\n}\n\nconst stopRefreshToken = () => {\n\tconst msg = {\n\t\ttype: 'stopRefreshToken',\n\t}\n\tcreateMessageSender(w, isWorkerEnabled)(msg)\n\tif (isWorkerEnabled) {\n\t\tw.close()\n\t}\n}\n\nexport { disableRefreshToken, enableRefreshToken, initializeRefreshToken, stopRefreshToken }\n","import router from '@router'\nimport api, { API } from '@services/api'\nimport storage from '@services/storage'\nimport jwtDecode from 'jwt-decode'\n\nimport { omniDesktop } from '@/electron/omniDesktop'\nimport { studyFolders } from '@/services/folders'\nimport checkSafeToLogout from '@/utils/checkSafeToLogout'\nimport { dlg } from '@/utils/dlgUtils'\nimport { showConfirm } from '@dialogs/ConfirmDlg.vue'\nimport GoogleAnalytics from '@services/analyticsService'\nimport { clinicAPI } from '@services/clinicAPI'\nimport { dicomPartners } from '@services/dicomPartners'\nimport { eventBus } from '@services/eventBus'\nimport { lockService } from '@services/lockService'\nimport salesService from '@services/salesService'\nimport { uploadData } from '@services/uploads'\nimport workflow from '@services/workflow'\nimport wsData from '@services/wsData'\nimport * as RefreshToken from '@utils/refreshToken'\nwindow.addEventListener('beforeunload', onAppClosing)\n\nconst TINYMCE_CDN = window.config.tinymceCDNUrl\n\nlet _refreshInterval = null\n\n// Check for deeplink on initial load, electron only\n// Overrides previously saved token from localStorage\n// Mimics the \"reloading\" state to initialize with the new token\nconst deeplink = window.config && window.config.deeplink\nif (deeplink && deeplink.token) {\n\tlocalStorage.setItem('token', deeplink.token)\n\tlocalStorage.setItem('expiration', 0)\n\tsessionStorage.setItem('session', 'session')\n\tdelete deeplink.token\n}\n\nconst state = {\n\ttoken: storage.getItem('token') || '',\n\texpiration: storage.getItem('expiration') || '',\n\tclaims: getClaimsFromToken(storage.getItem('token')) || {},\n}\n\nstorage.removeItem('tokenUseCount') // clean up old implementation data; TODO: remove this after a while\n\nif (state.token) {\n\tlet reloading = !!sessionStorage.getItem('session')\n\tlet count = omniDesktop.isMainWindow ? 0 : storage.getTokenUseCount()\n\n\tif (count <= 0 && !reloading) {\n\t\tstorage.removeItem('token')\n\t\tstorage.removeItem('apiDns')\n\t\tstorage.removeItem('annexDns')\n\t\tstate.token = ''\n\t} else {\n\t\tstorage.addTokenUse()\n\t\tconst apiDns = storage.getItem('apiDns')\n\t\tconst annexDns = storage.getItem('annexDns')\n\t\tif (apiDns && annexDns) api.setApiBaseUrl(apiDns, annexDns)\n\t\tapi.auth.setHeader(state.token)\n\t}\n}\n\nfunction onAppClosing() {\n\tconst { name: routeName, path: routePath } = router.currentRoute\n\teventBus.broadcast(eventBus.type.CLOSE, { routeName, routePath })\n\n\tif (!state.token) {\n\t\treturn\n\t}\n\n\t// decrement token use count\n\tstorage.removeTokenUse()\n\n\t// clear workstation login, emit logout to popup windows\n\tif (storage.getTokenUseCount() <= 0 || omniDesktop.isMainWindow) {\n\t\tapi.auth.logOut()\n\t\teventBus.broadcast(eventBus.type.LOGOUT)\n\t\t// Close WebSockets\n\t\twsData.closeConnection()\n\t}\n}\n\nconst getters = {\n\tisAuthenticated: state => !!state.token,\n\tisConsultantUser: state => !!state.claims.isConsultantUser,\n\tisRepositoryUser: state => !!state.claims.isRepositoryUser,\n\t// TODO: Finish these claims\n\tisSaleSubmissionUser: state => !!(state.claims.is || state.claims.is || true),\n\tisCommunityUser: state => state.claims.isCommunityUser,\n\tusername: state => state.claims.username,\n\tfullname: state => state.claims.fullname,\n\tuserClinicCode: state => state.claims.activeClinicCode,\n}\n\nconst mutations = {\n\tsetAuthentication(state, { token, expiration }) {\n\t\tstate.token = token\n\t\tstate.expiration = expiration\n\t\tstate.claims = getClaimsFromToken(token)\n\t\tstorage.setItem('token', token)\n\t\tstorage.setItem('expiration', expiration)\n\t\tapi.auth.setHeader(token)\n\t},\n\tCLEAR_AUTHENTICATION(state) {\n\t\tif (!state.token) return\n\n\t\tstorage.removeItem('token')\n\t\tstorage.removeItem('apiDns')\n\t\tstorage.removeItem('annexDns')\n\t\tstorage.clearTokenUses()\n\n\t\tapi.auth.logOut()\n\t\tapi.auth.unsetHeader()\n\n\t\tstate.token = ''\n\t\tstate.expiration = ''\n\t\tstate.claims = {}\n\t},\n}\n\nconst actions = {\n\tclearAllData({ commit, dispatch }) {\n\t\tcommit('CLEAR_AUTHENTICATION')\n\t\tcommit('CLEAR_REPOSITORY_DATA')\n\t\tcommit('CLEAR_STATICS')\n\t\tuploadData.stopUploads()\n\t\tcommit('RESET_LIST_UI_CACHE')\n\t\tcommit('SET_LAST_ACTIVE_SETTING', '')\n\t\tdispatch('UNSET_USER')\n\t\tdispatch('stopIdleTimer')\n\t\tcommit('CLEAR_SERIES_VIEWPORT_CACHE')\n\t\tcommit('SET_OPEN_STUDIES_NEW_WINDOW', false)\n\t\tcommit('SET_LOAD_SERIES_FROM_MIDDLE', null)\n\t\tcommit('SET_IS_USER_DATA_LOADED', false)\n\t\tclearTempStorage()\n\t\tsalesService.reset()\n\t\tworkflow.reset()\n\t\tlockService.stopAutoRefreshing()\n\t\tlockService.clear()\n\t\tstudyFolders.clear()\n\t\tclinicAPI.stopScanning()\n\t\teventBus.post('clear-all-data')\n\t},\n\tasync refreshTokenAndBroadcast({ dispatch }, init) {\n\t\tdispatch('refreshToken', init)\n\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type: 'refreshToken', payload: init })\n\t},\n\tasync refreshToken({ commit, dispatch, getters }, init) {\n\t\tif (getters.isAuthenticated) {\n\t\t\tlet response = await api.auth.refreshToken()\n\t\t\tif (response.data.needsUpdate) {\n\t\t\t\tdispatch('showAppUpdateAvailable')\n\t\t\t}\n\t\t\tif (init) {\n\t\t\t\tdispatch('setAuthenticationAndInit', response)\n\t\t\t} else {\n\t\t\t\tconst { expires_in: expiration, access_token: token, warning } = response.data\n\t\t\t\tif (warning) {\n\t\t\t\t\tdispatch('addNotification', {\n\t\t\t\t\t\tmessage: warning,\n\t\t\t\t\t\tnotificationType: 'warn',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\tcommit('setAuthentication', { token, expiration })\n\t\t\t}\n\t\t}\n\t},\n\tasync initAuth({ dispatch, state }) {\n\t\tsessionStorage.setItem('session', 'session')\n\n\t\t// Previously saved or from deeplink\n\t\tif (state.token) {\n\t\t\tawait dispatch('refreshToken', true)\n\t\t}\n\n\t\teventBus.on('logout', () => {\n\t\t\tif (state.token) {\n\t\t\t\tdispatch('logOut')\n\t\t\t}\n\t\t})\n\t},\n\tasync setAuthenticationAndInit({ commit, dispatch, getters, state }, response) {\n\t\tconst {\n\t\t\tapiDns,\n\t\t\tannexDns,\n\t\t\tclinicUrls,\n\t\t\texpires_in: expiration,\n\t\t\taccess_token: token,\n\t\t\tgoogleAnalyticsId,\n\t\t} = response.data\n\n\t\tif (!expiration || !token)\n\t\t\tthrow new Error(`Expected non-null expiration and token but received: exp: ${expiration} -- token: ${token}`)\n\t\tcommit('setAuthentication', { token, expiration })\n\n\t\t// check for community or repository users, throw error message and don't login\n\t\tif (omniDesktop.isConnected && (state.claims.isCommunityUser || state.claims.isRepositoryUser)) {\n\t\t\tcommit('CLEAR_AUTHENTICATION')\n\t\t\tconst msg = `\n\t\t\t

The Keystone Omni desktop application is for Asteris customers only.

\n\t\t\t

If you are interested in learning more or becoming an Asteris customer, please contact us at sales@asteris.com.

\n\t\t\t`\n\t\t\tawait showConfirm(msg, { title: 'Omni Desktop', confirmText: null, cancelText: 'OK' })\n\t\t\treturn\n\t\t}\n\n\t\tclinicAPI.setClinicUrls(clinicUrls)\n\n\t\tdicomPartners.configs = response.data.partnerConfigs\n\n\t\tstorage.setItem('token', state.token)\n\t\tstorage.setItem('expiration', state.expiration)\n\t\tstorage.setItem('lastLogin', getters.isCommunityUser ? 'community' : 'omni')\n\t\t// Will get used on next load :/\n\t\tstorage.setItem('ga:tokenId', googleAnalyticsId)\n\n\t\t// Clear saved cache items on login\n\t\tsessionStorage.removeItem('temp:studies:filter')\n\t\tsessionStorage.removeItem('temp:teleconsultations:filter')\n\n\t\tstorage.setItem('apiDns', apiDns)\n\t\tstorage.setItem('annexDns', annexDns)\n\t\tapi.setApiBaseUrl(apiDns, annexDns)\n\n\t\tomniDesktop.updateConfig(annexDns, state.claims.activeClinicCode, API.defaults.baseURL)\n\t\tapi.auth.setHeader(token)\n\n\t\tif (state.claims.isConsultantUser) {\n\t\t\tlockService.startAutoRefreshing()\n\t\t}\n\t\tclinicAPI.startScanning()\n\t\tawait dispatch('initStatics')\n\t\tif (getters.isRepositoryUser) dispatch('startIdleTimer')\n\t\t// Tracking: Analytics and Sentry\n\t\tdispatch('SET_USER', {\n\t\t\tid: state.claims.userId,\n\t\t\tclinicId: state.claims.activeClinicId,\n\t\t\tclinicCode: state.claims.activeClinicCode,\n\t\t\tusername: state.claims.username,\n\t\t\tisCommunity: getters.isCommunityUser,\n\t\t\tisDesktop: omniDesktop.isConnected,\n\t\t})\n\t\twsData.start()\n\t\tRefreshToken.initializeRefreshToken()\n\t\tRefreshToken.enableRefreshToken()\n\t\tsetTimeout(() => {\n\t\t\tapi.user.getUserSetting('StudyList', 'EnableAntechNotification').then(response => {\n\t\t\t\tif (response.data !== null) {\n\t\t\t\t\tcommit('SET_ENABLE_ANTECH_NOTIFICATION', response.data)\n\t\t\t\t}\n\t\t\t})\n\t\t}, 100)\n\t\teventBus.post('login')\n\t},\n\tasync logIn({ commit, dispatch, getters }, { data }) {\n\t\tcommit('clearErrorNotifications')\n\t\tconst response = await api.auth.logIn(data)\n\t\tif (response.data.needsUpdate) {\n\t\t\tdispatch('showAppUpdateAvailable')\n\t\t}\n\t\tif (response.data.access_token) {\n\t\t\tstorage.clearTokenUses()\n\t\t\tstorage.addTokenUse()\n\t\t}\n\t\tawait dispatch('setAuthenticationAndInit', response)\n\t\ttry {\n\t\t\tGoogleAnalytics.sendGAEvent('LogIn', {\n\t\t\t\tevent_category: 'User',\n\t\t\t\tevent_label: 'LogIn',\n\t\t\t})\n\t\t} catch (err) {\n\t\t\tconsole.log(err)\n\t\t}\n\t},\n\tasync addConsultant({ state, dispatch }, { consultantId }) {\n\t\tconst userId = state.claims.userId\n\t\tif (!userId || !consultantId) return\n\t\tconst response = await api.user.addConsultantToUser({ userId, consultantId })\n\t\tconst consultantWasAdded = response && response.data === true\n\t\tif (consultantWasAdded) {\n\t\t\tawait dispatch('getConsultants')\n\t\t\tdispatch('addNotification', {\n\t\t\t\tmessage: 'A new consultant has been added to your account!',\n\t\t\t\tnotificationType: 'success',\n\t\t\t})\n\t\t}\n\t},\n\tasync createCommunityUser({ dispatch }, { data }) {\n\t\tdispatch('clearAllData')\n\t\tlet result = await api.user.getCommunityDns(data.consultantId)\n\t\tapi.setApiBaseUrl(result.communityDns, result.annexDns)\n\t\tconst response = await api.user.createCommunityUser(data)\n\t\tawait dispatch('setAuthenticationAndInit', response)\n\t\tanalyticsEvent('Global', 'CreateCommunityUser')\n\t},\n\tasync resetPassword({ dispatch }, data) {\n\t\tconst response = await api.auth.resetPassword(data)\n\t\tawait dispatch('setAuthenticationAndInit', response)\n\t},\n\tasync switchClinic({ dispatch, getters }, { id }) {\n\t\trouter.replace('/switching-clinics')\n\t\tconst response = await api.auth.switchClinic({ clinicId: id })\n\t\tawait dispatch('logOut', { changeRoute: false, forceLogout: true })\n\n\t\tawait dispatch('setAuthenticationAndInit', response)\n\t\tif (getters.isAuthenticated) {\n\t\t\tstorage.clearTokenUses()\n\t\t\tstorage.addTokenUse()\n\t\t}\n\t\tdispatch('applyTheme')\n\t\trouter.replace('/')\n\t},\n\tasync logOut({ dispatch }, { forceLogout = false, changeRoute = true } = {}) {\n\t\tif (!forceLogout && !(await checkSafeToLogout())) return\n\t\tdispatch('clearAllData')\n\t\tif (changeRoute) {\n\t\t\trouter.push('/')\n\t\t\tdlg.closeAll()\n\t\t}\n\n\t\teventBus.post(eventBus.type.LOGOUT)\n\t\teventBus.broadcast(eventBus.type.LOGOUT)\n\n\t\t// Disable token auto-refreshing\n\t\tif (_refreshInterval) clearInterval(_refreshInterval)\n\n\t\t// Close WebSockets\n\t\twsData.closeConnection()\n\t\tRefreshToken.stopRefreshToken()\n\t},\n}\n\nfunction getClaimsFromToken(token) {\n\tlet claims = {}\n\tif (!token) return claims\n\n\ttry {\n\t\tconst decoded = jwtDecode(token)\n\n\t\tclaims.userId = decoded['usid']\n\t\tclaims.defaultClinicId = decoded['uspmclid']\n\t\tclaims.defaultClinicCode = decoded['uspmclcd']\n\t\tclaims.permissionMask = decoded['uspmmsk']\n\t\tclaims.username = decoded['sub']\n\t\tclaims.fullname = `${decoded['usfn']} ${decoded['usln']}`\n\t\tclaims.partnerClinicCode = decoded['uspartner']\n\n\t\tclaims.activeClinicId = decoded['actclid']\n\t\tclaims.activeClinicCode = decoded['actclcd']\n\t\tclaims.sessionId = decoded['actssid']\n\n\t\tclaims.isRepositoryUser = decoded['isrpus']\n\t\tclaims.isConsultantUser = decoded['iscsus']\n\t\tclaims.isConsultantMember = decoded['iscsmb']\n\t\tclaims.isConsultantGroup = decoded['iscsgp']\n\t\tclaims.isConsultantIntern = decoded['iscsit']\n\t\tclaims.isConsultantResident = decoded['iscsrs']\n\t\tclaims.isConsultantTranscriptionist = decoded['iscstr']\n\t\tclaims.isCommunityUser = decoded['iscmus']\n\t\tclaims.isAdvancedReportsEnabled = decoded['isare']\n\t\tclaims.isSchedulingEnabled = decoded['isse']\n\n\t\t// Indicates whether the org/group should see UI around resident/intern workflow\n\t\tclaims.isConsultantApprovalSupported = decoded['iscapr']\n\t} catch (err) {}\n\n\treturn claims\n}\n\nasync function clearTempStorage() {\n\ttry {\n\t\tlet keys = Object.keys(localStorage)\n\t\tlet tempKeys = keys.filter(key => key.startsWith('temp:'))\n\t\ttempKeys.forEach(key => storage.removeItem(key))\n\t} catch (err) {\n\t\tconsole.log(err)\n\t}\n}\n\nexport default {\n\tstate,\n\tgetters,\n\tmutations,\n\tactions,\n}\n","export default {\n\tmprActive(state) {\n\t\treturn state.active\n\t},\n\tmprActiveSeries(state) {\n\t\treturn state.activeSeries\n\t},\n\tmprActiveView(state) {\n\t\treturn state.activeSeries && Object.values(state.activeSeries.viewData).find(v => v.active)\n\t},\n\tmprActiveViewKey(state) {\n\t\treturn (\n\t\t\tstate.activeSeries &&\n\t\t\tObject.entries(state.activeSeries.viewData).find(([i, v]) => v.active)[0]\n\t\t)\n\t},\n}\n","import * as cornerstone from 'cornerstone-core'\n\nimport { getImageData, validateMPRImages, loadImageData } from '@vtk/index.js'\nimport wait from '@/utils/wait'\nimport { showConfirm } from '@dialogs/ConfirmDlg.vue'\nimport shouldLoadDicom from '@/utils/shouldLoadDicom.js'\n\nexport default async function loadVolumeFromSeries({ commit, dispatch, state }, { series, completion }) {\n\tcommit('SET_MPR_LOADING', true)\n\tcommit('SET_MPR_LOAD_PROGRESS', 0)\n\n\t// let the loading stuff paint before locking the UI thread with VTK\n\tawait wait(400)\n\n\tconst validImages = validateMPRImages(series.images).images\n\tconst imageIds = validImages.map(i => i.imageId)\n\n\tconst useJpeg = !(shouldLoadDicom(validImages[0].modality) || shouldLoadDicom(series.modality))\n\n\t// TODO: track this in analytics somewhere?\n\t// const startProcess = new Date().getTime()\n\n\t// Get vtk image data for the series image data\n\ttry {\n\t\tconst imageData = getImageData(imageIds, series.seriesId, cornerstone.metaData.get, useJpeg)\n\n\t\tif (imageData.hasMissingSlices) {\n\t\t\tdispatch('addNotification', {\n\t\t\t\tmessage: `Warning:
\n\t\t\t\tThis Series has irregular spacing between some images.
\n\t\t\t\tMissing slices have been skipped. Banding may occur.`,\n\t\t\t\tnotificationType: 'warn',\n\t\t\t\tid: 'missingSlices',\n\t\t\t\tduration: 30000,\n\t\t\t})\n\t\t}\n\n\t\tif (imageData.hasOverlap) {\n\t\t\tdispatch('addNotification', {\n\t\t\t\tmessage: `Warning:
\n\t\t\t\tThis Series has overlapping slices, which may indicate a multi-phase study.
\n\t\t\t\tThe first image for a given imagePositionPatient has been used.`,\n\t\t\t\tnotificationType: 'warn',\n\t\t\t\tid: 'extraSlices',\n\t\t\t\tduration: 30000,\n\t\t\t})\n\t\t}\n\n\t\tlet renderFrequencyPct = 3\n\t\tif (imageIds.length > 500) {\n\t\t\trenderFrequencyPct = 7\n\t\t} else if (imageIds.length > 250) {\n\t\t\trenderFrequencyPct = 5\n\t\t}\n\n\t\t// Note: Modifies imageData object!\n\t\tloadImageData(imageData, validImages, series, renderFrequencyPct)\n\n\t\t// Let MPR load after the first loaded image has been processed\n\t\t// Enables Quick MPR loading & faster render, but still is loading the volume in the BG.\n\t\t// NOTE: to require MPR having the images loaded before opening the render view,\n\t\t// move this logic into the Promise.all section\n\t\tPromise.any(imageData.insertPixelDataPromises).then(num => {\n\t\t\tcommit('SET_MPR_VOLUME_DIRECTION', imageData.direction)\n\t\t\tcommit('SET_MPR_VOLUME_SLICE_DIRECTIONALITY', imageData.sliceDirectionality)\n\t\t\tcommit('SET_MPR_VOLUME_DATA', imageData.vtkImageData)\n\t\t\tcommit('SET_MPR_DEFAULT_WINDOW_LEVEL', imageData.voi)\n\t\t\tcommit('SET_MPR_VOLUME_IS_JPEG', useJpeg)\n\t\t\tcommit('UPDATE_AVAILABLE_TOOLS')\n\n\t\t\t// let the caller know we're ready to start image stuff\n\t\t\tcompletion()\n\n\t\t\treturn num\n\t\t})\n\n\t\tconst total = imageData.insertPixelDataPromises.length\n\t\tlet lastpercent = 0\n\t\timageData.insertPixelDataPromises.forEach(promise => {\n\t\t\ttry {\n\t\t\t\tpromise.then(num => {\n\t\t\t\t\tconst pct = Math.floor((num / total) * 100)\n\t\t\t\t\tif (pct > lastpercent + 1) {\n\t\t\t\t\t\tlastpercent = pct\n\t\t\t\t\t\tif (state.activeSeries) commit('SET_MPR_LOAD_PROGRESS', pct)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} catch (e) {}\n\t\t})\n\n\t\tPromise.all(imageData.insertPixelDataPromises).then(() => {\n\t\t\t// TODO: track this in analytics somewhere?\n\t\t\t// const duration = new Date().getTime() - startProcess\n\t\t\t// console.log(`Conversion Duration: ${duration}ms`)\n\t\t\tif (state.activeSeries) {\n\t\t\t\tcommit('SET_MPR_LOAD_PROGRESS', -1)\n\t\t\t\tcommit('SET_MPR_LOADING', false)\n\t\t\t}\n\t\t})\n\t} catch (e) {\n\t\tif (e instanceof RangeError) {\n\t\t\tconsole.error(e)\n\t\t\tshowConfirm(\n\t\t\t\t`

Keystone Omni is not able to generate MPR Views when there are too many images in the series, or if the images are too big.

\n\t\t\t\t

Your browser can handle around 900 images with a width and height of 512 pixels, or 200 images with width and height of 1024 pixels. The number of images may be smaller on a Mobile device or Tablet.

\n\t\t\t\t

Please try a smaller study.

`,\n\t\t\t\t{ title: 'Error Generating MPR Volume' }\n\t\t\t)\n\t\t} else {\n\t\t\tconsole.error(e)\n\t\t\tshowConfirm(\n\t\t\t\t`

There was an issue generating the MPR volume.

\n\t\t\t\t

If you continue to see this error, please contact the Asteris Support Team.

`,\n\t\t\t\t{ title: 'Error Initializing MPR' }\n\t\t\t)\n\t\t}\n\t\t// Cleanup MPR related things\n\t\tcommit('SET_MPR_LOADING', false)\n\t\tcommit('SET_MPR_ACTIVE', false)\n\t}\n}\n","import api from '@services/api'\n\n/**\n * 1. Generates a base64 image for the active mpr view w/ annotations\n * 2. Kicks off an API call to add the annotated image to the study\n * 3. Dispatches success notification\n * NOTE: Manually updating ViewModel is not needed due to study synchronization\n *\n * @export\n * @param {*} { getters, commit, dispatch }, { reportId, showNotification }\n */\nexport default async function({ getters, commit, dispatch }, { reportId, showNotification = true } = {}) {\n\t// Get component for the active view\n\tconst activeComp = getters.mprActiveView.component\n\t// Render the viewer to a base64 image\n\tconst imgBase64 = await activeComp.renderImage()\n\n\tconst { clinicCode } = getters.activeImage.storageLocation || getters.activeSeries.storageLocation\n\tconst params = {\n\t\tclinicCode,\n\t\tsourceImageId: getters.activeImage.imageId,\n\t\timgBase64,\n\t\treportId,\n\t}\n\n\t// API call to add the annotated image to the study\n\tconst { series } = await api.viewer.renderAnnotatedImage(params)\n\n\t// Show notification\n\tif (showNotification)\n\t\tdispatch('addNotification', {\n\t\t\tmessage: 'New image with burned in annotations successfully created!',\n\t\t\tnotificationType: 'info',\n\t\t})\n\n\treturn series\n}\n","import api from '@services/api'\nimport saveAs from 'file-saver'\n\nexport default async function saveImage(imgBase64, fileName, dispatch) {\n\ttry {\n\t\t// Pure client-side (this will fail if `new Blob` is not supported which is only for very old browsers)\n\t\tsaveAs(imgBase64, fileName)\n\t} catch (e) {\n\t\t// Fallback to network request\n\t\tconst params = {\n\t\t\tfileName,\n\t\t\timgBase64,\n\t\t}\n\n\t\tconst { data } = await api.file.uploadTemporaryImage(params)\n\t\tif (data) {\n\t\t\tconst url = api.file.getDownloadTemporaryImageUrl({\n\t\t\t\tfileName: data,\n\t\t\t})\n\n\t\t\t// https://stackoverflow.com/a/2917/1867984\n\t\t\tconst win = window.open(url)\n\t\t\tif (!win || win.closed || typeof win.closed === 'undefined') {\n\t\t\t\tdispatch('addNotification', {\n\t\t\t\t\tmessage: 'Unable to save image. Pop-up was blocked.',\n\t\t\t\t\tnotificationType: 'warn',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n}\n","import saveImage from '@utils/saveImage'\n\nexport default async function saveMprImageAsync({ getters, dispatch }) {\n\t// Get component for the active view\n\tconst activeComp = getters.mprActiveView.component\n\n\t// Render the viewer to a base64 image\n\tconst imgBase64 = await activeComp.renderImage()\n\tconst fileName = `kso-${getters.activeImage.imageId}`\n\tawait saveImage(imgBase64, fileName, dispatch)\n}\n","let iframe = null\n\nexport default async function printImage(imgBase64, dispatch) {\n\tif (!iframe) {\n\t\tlet iframe = document.createElement('iframe')\n\t\tiframe.id = 'printf'\n\t\tiframe.name = 'printf'\n\t\tiframe.style.display = 'none'\n\t\tdocument.body.appendChild(iframe)\n\t}\n\tvar newWin = window.frames['printf']\n\tlet css = 'html,body {height: 100%;\tpadding: 0;\tmargin: 0; }\t@media print {img {\tmax-height: 100%;\tmax-width: 100%;}}'\n\tlet html = `\n\t\n\t\t
\n\t\t\t
Right Click and Select Copy Image\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\t
\n\n\n\n\n\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!./CopyImageDlg.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!./CopyImageDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CopyImageDlg.vue?vue&type=template&id=95e51076\"\nimport script from \"./CopyImageDlg.vue?vue&type=script&lang=js\"\nexport * from \"./CopyImageDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./CopyImageDlg.vue?vue&type=style&index=0&id=95e51076&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","import base64toBlob from '@utils/base64toBlob'\nimport { OpenCopyImageDlg } from '@dialogs/CopyImageDlg.vue'\n\nexport default async function copyImageToClipboard(imgBase64, dispatch) {\n\ttry {\n\t\t// Method 1:\n\t\t// Clipboard API will eventually be our savior, but it only works in Chrome 76 and later\n\t\t// Reference https://caniuse.com/#feat=mdn-api_clipboard_write for support details\n\t\tif (navigator.clipboard && navigator.clipboard.write) {\n\t\t\tconst blob = base64toBlob(imgBase64, 'image/png')\n\t\t\tawait navigator.clipboard.write([\n\t\t\t\t/* eslint-disable-next-line no-undef */\n\t\t\t\tnew ClipboardItem({\n\t\t\t\t\t[blob.type]: blob,\n\t\t\t\t}),\n\t\t\t])\n\t\t\tdispatch('addNotification', {\n\t\t\t\tmessage: 'Image copied to clipboard!',\n\t\t\t\tnotificationType: 'success',\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t} catch {}\n\n\tOpenCopyImageDlg(imgBase64)\n}\n","import copyImageToClipboard from '@utils/copyImageToClipboard'\n\nexport default async function copyMprImageAsync({ getters, dispatch }) {\n\t// Get component for the active view\n\tconst activeComp = getters.mprActiveView.component\n\n\t// Render the viewer to a base64 image\n\tconst imgBase64 = await activeComp.renderImage()\n\n\t// Copy image to clipboard (with notifications)\n\tawait copyImageToClipboard(imgBase64, dispatch)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dialog\"},[_c('modal-dialog',{attrs:{\"is-open\":true,\"title\":\"MPR Performance Check\"},on:{\"close\":_vm.close}},[(_vm.issues.hasIssues)?[_c('p',[_vm._v(\"\\n\\t\\t\\t\\tYou may experience slower rendering speeds or poor quality rendering because of the\\n\\t\\t\\t\\tfollowing reason(s):\\n\\t\\t\\t\")]),_c('ul',[(_vm.issues.webglVersion)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\\tDetected WebGL v\"+_vm._s(_vm.issues.webglVersion)+\". For best performance, please use a computer\\n\\t\\t\\t\\t\\tand/or browser with at least WebGL v2.\\n\\t\\t\\t\\t\")]):_vm._e(),(_vm.issues.integratedGPU)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\\tUsing GPU \\\"\"+_vm._s(_vm.issues.integratedGPU)+\"\\\". A dedicated GPU would offer better performance.\\n\\t\\t\\t\\t\\t\"),_c('a',{attrs:{\"rel\":\"noopener noreferrer\",\"target\":\"_blank\",\"href\":\"https://wevideo.zendesk.com/hc/en-us/articles/225259448-How-to-enable-WebGL\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tMore info on enabling dedicated GPUs in browsers.\\n\\t\\t\\t\\t\\t\")])]):_vm._e(),(_vm.issues.browser)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\\tUsing Browser: \\\"\"+_vm._s(_vm.issues.browser)+\"\\\". Volume rendering performs best on Chrome and\\n\\t\\t\\t\\t\\tFirefox.\\n\\t\\t\\t\\t\")]):_vm._e()])]:[_c('p',[_vm._v(\"\\n\\t\\t\\t\\tThere are no performance impacting issues that we could detect with your system. You\\n\\t\\t\\t\\tshould experience good MPR performance!\\n\\t\\t\\t\")])]],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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!./MprPerformance.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!./MprPerformance.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MprPerformance.vue?vue&type=template&id=9eabbc4c&scoped=true\"\nimport script from \"./MprPerformance.vue?vue&type=script&lang=js\"\nexport * from \"./MprPerformance.vue?vue&type=script&lang=js\"\nimport style0 from \"./MprPerformance.vue?vue&type=style&index=0&id=9eabbc4c&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 \"9eabbc4c\",\n null\n \n)\n\nexport default component.exports","import { keys as MPRKeys } from '@/store/modules/mpr/mutations'\nimport { getDefaultViewData } from '@/store/modules/mpr/state'\nimport loadVolumeFromSeries from './loadVolumeFromSeries'\nimport createMprAnnotationRenderingAsync from './createMprAnnotationRenderingAsync'\nimport saveMprImageAsync from './saveMprImageAsync'\nimport printMprImageAsync from './printMprImageAsync'\nimport copyMprImageAsync from './copyMprImageAsync'\nimport { showMprPerfDialog } from '@dialogs/MprPerformance'\nimport { eventBus } from '@services/eventBus'\nimport { consts } from '@/vtk/index'\n\nexport default {\n\tloadVolumeFromSeries,\n\tcreateMprAnnotationRenderingAsync,\n\tsaveMprImageAsync,\n\tprintMprImageAsync,\n\tcopyMprImageAsync,\n\tsetMprActiveToolAndBroadcast({ commit }, payload) {\n\t\tconst mutation = 'SET_MPR_ACTIVE_TOOL'\n\t\tcommit(mutation, payload)\n\t\teventBus.broadcast(eventBus.type.VUEX_MUTATION, { type: mutation, payload })\n\t},\n\trotateActiveViewClockwise({ commit, getters }) {\n\t\tcommit(MPRKeys.ROTATE_VIEW_BY_ANGLE, { index: getters.mprActiveViewKey, degrees: 90 })\n\t},\n\trotateActiveViewCounterClockwise({ commit, getters }) {\n\t\tcommit(MPRKeys.ROTATE_VIEW_BY_ANGLE, { index: getters.mprActiveViewKey, degrees: -90 })\n\t},\n\tflipHActiveView({ commit, getters }) {\n\t\tcommit(MPRKeys.FLIP_VIEW_H, { index: getters.mprActiveViewKey })\n\t},\n\tflipVActiveView({ commit, getters }) {\n\t\tcommit(MPRKeys.FLIP_VIEW_V, { index: getters.mprActiveViewKey })\n\t},\n\tresetViewData({ state, commit }) {\n\t\t// Get the current view data settings\n\t\tconst currentViewData = state.activeSeries.viewData\n\t\t// Get the default view data settings\n\t\tconst newViewData = getDefaultViewData()\n\t\t// Apply default settings but retain the active index\n\t\tObject.keys(newViewData).forEach(vdk => {\n\t\t\tnewViewData[vdk].active = currentViewData[vdk].active\n\t\t})\n\t\tcommit(MPRKeys.SET_MPR_VIEWDATA, newViewData)\n\t\tif (state.activeSeries.onReset) {\n\t\t\tstate.activeSeries.onReset()\n\t\t}\n\t},\n\tsetThickness({ state, commit }, { index, thickness }) {\n\t\tcommit(MPRKeys.SET_MPR_SLICE_THICKNESS, { index, thickness })\n\t\tif (thickness > 1 && state.activeSeries.blendMode === consts.BLEND_NONE) {\n\t\t\tcommit(MPRKeys.SET_MPR_BLEND_MODE_ALL, consts.BLEND_MIP)\n\t\t}\n\t},\n\tinvertVolume({ state }) {\n\t\tif (state.activeSeries.onInvert instanceof Function) state.activeSeries.onInvert()\n\t},\n\tnextMPRSlice({ state }) {\n\t\tif (state.activeSeries.onMoveSlice instanceof Function) state.activeSeries.onMoveSlice(1)\n\t},\n\tpreviousMPRSlice({ state }) {\n\t\tif (state.activeSeries.onMoveSlice instanceof Function) state.activeSeries.onMoveSlice(-1)\n\t},\n\tnextMPRActiveView({ getters, commit }) {\n\t\tlet position = 1\n\t\tif (getters.mprActiveView) {\n\t\t\tposition = getters.mprActiveView.position + 1\n\t\t\tif (position > 3) position = 1\n\t\t}\n\t\tcommit(MPRKeys.SET_MPR_ACTIVE_POSITION, position)\n\t},\n\tprevMPRActiveView({ getters, commit }) {\n\t\tlet position = 3\n\t\tif (getters.mprActiveView) {\n\t\t\tposition = getters.mprActiveView.position - 1\n\t\t\tif (position < 1) position = 3\n\t\t}\n\t\tcommit(MPRKeys.SET_MPR_ACTIVE_POSITION, position)\n\t},\n\topenMPRPerformanceModal({ state }) {\n\t\tshowMprPerfDialog(state.issues)\n\t},\n}\n","import state from './state'\nimport getters from './getters'\nimport actions from './actions'\nimport mutations from './mutations'\n\nexport default {\n\tstate,\n\tgetters,\n\tactions,\n\tmutations,\n}\n","import api from '@services/api'\nimport { eventBus } from '@services/eventBus'\nimport _ from 'lodash'\n\nconst state = {\n\tisSaved: false,\n\thasDefinedColors: false,\n\tlocal: {\n\t\tbg: null,\n\t\tborder: null,\n\t},\n\tregional: {\n\t\tbg: null,\n\t\tborder: null,\n\t},\n\tcommunity: {\n\t\tbg: null,\n\t\tborder: null,\n\t},\n\tglobal: {\n\t\tbg: null,\n\t\tborder: null,\n\t},\n\tstandard: {\n\t\tbg: null,\n\t\tborder: null,\n\t},\n\tstat: {\n\t\tbg: null,\n\t\tborder: null,\n\t},\n\told: {\n\t\tbg: null,\n\t\tborder: null,\n\t\tthreshold: 1,\n\t},\n}\n\nconst root = document.documentElement\n\n// Mutations Map\nconst GET_COLOR_SETTINGS = 'GET_COLOR_SETTINGS'\nconst SET_COLOR_SETTINGS_THEME = 'SET_COLOR_SETTINGS_THEME'\nconst SET_COLOR_SETTINGS_VALID = 'SET_COLOR_SETTINGS_VALID'\nconst SET_COLOR_SETTINGS_THRESHOLD = 'SET_COLOR_SETTINGS_THRESHOLD'\n\nconst mutations = {\n\tSET_COLOR_SETTINGS_THEME(state, payload) {\n\t\tstate.isSaved = payload.status === 200\n\t},\n\tGET_COLOR_SETTINGS(state, payload) {\n\t\tObject.assign(state, payload)\n\t},\n\tSET_COLOR_SETTINGS_VALID(state, payload) {\n\t\tstate.hasDefinedColors = payload\n\t},\n\tSET_COLOR_SETTINGS_THRESHOLD(state, payload) {\n\t\tstate.old.threshold = payload\n\t},\n}\n\nconst actions = {\n\t// Broadcast Theme from external windows\n\tsetColorsAndBroadcast({ dispatch }, payload) {\n\t\tconst type = 'saveReportColorSettingsAction'\n\t\tdispatch(type, payload)\n\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type, payload })\n\t},\n\t// Save the colors using the API\n\tasync saveReportColorSettingsAction({ commit, dispatch }, colorSettings) {\n\t\ttry {\n\t\t\tconst response = await api.user.setUserSetting('ColorSettings', 'OmniReport', JSON.stringify(colorSettings))\n\t\t\tcommit(SET_COLOR_SETTINGS_THEME, response)\n\t\t\tdispatch('getReportColorSettingsAction')\n\t\t} finally {\n\t\t}\n\t},\n\t// Get the color settings\n\tasync getReportColorSettingsAction({ commit, dispatch }) {\n\t\ttry {\n\t\t\tconst response = await api.user.getUserSetting('ColorSettings', 'OmniReport')\n\t\t\tcommit(GET_COLOR_SETTINGS, response.data)\n\t\t\tdispatch('setUpColorSettings', response.data)\n\t\t} finally {\n\t\t}\n\t},\n\tsetReportColorSettingsThreshold({ commit }, threshold) {\n\t\tcommit(SET_COLOR_SETTINGS_THRESHOLD, threshold)\n\t},\n\t// It generates and apply the color variables\n\tsetUpColorSettings({ state, commit }, colors) {\n\t\tconst colorKeys = Object.keys(colors).filter(color => color !== 'isSaved' && color !== 'hasDefinedColors')\n\n\t\tconst shadeHexColor = (color, percent) => {\n\t\t\tconst f = parseInt(color.slice(1), 16)\n\t\t\tconst t = percent < 0 ? 0 : 255\n\t\t\tconst p = percent < 0 ? percent * -1 : percent\n\t\t\tconst R = f >> 16\n\t\t\tconst G = (f >> 8) & 0x00ff\n\t\t\tconst B = f & 0x0000ff\n\t\t\treturn (\n\t\t\t\t'#' +\n\t\t\t\t(\n\t\t\t\t\t0x1000000 +\n\t\t\t\t\t(Math.round((t - R) * p) + R) * 0x10000 +\n\t\t\t\t\t(Math.round((t - G) * p) + G) * 0x100 +\n\t\t\t\t\t(Math.round((t - B) * p) + B)\n\t\t\t\t)\n\t\t\t\t\t.toString(16)\n\t\t\t\t\t.slice(1)\n\t\t\t)\n\t\t}\n\n\t\t// Maps the colors and creates the variable map\n\t\tconst newColorMap = colorKeys.map(item => {\n\t\t\treturn {\n\t\t\t\t[`table-report-${item}-row-bg`]: colors[item].bg ? colors[item].bg : 'rgba(0, 0, 0, 0)',\n\t\t\t\t[`table-report-${item}-row-border`]: colors[item].border ? colors[item].border : 'rgba(0, 0, 0, 0)',\n\t\t\t\t[`table-report-${item}-row-bg-hover`]: colors[item].bg\n\t\t\t\t\t? shadeHexColor(colors[item].bg, -0.3)\n\t\t\t\t\t: 'rgba(0, 0, 0, 0)',\n\t\t\t}\n\t\t})\n\n\t\tconst colorMapped = {}\n\t\tlet hasColor = false\n\n\t\tnewColorMap.forEach(color => {\n\t\t\t_.merge(colorMapped, color)\n\t\t})\n\n\t\tfor (let color in colorMapped) {\n\t\t\troot.style.setProperty(`--${color}`, colorMapped[color])\n\n\t\t\tif (colorMapped[color] !== 'rgba(0, 0, 0, 0)') {\n\t\t\t\thasColor = true\n\t\t\t}\n\t\t}\n\n\t\tcommit(SET_COLOR_SETTINGS_VALID, hasColor)\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tactions,\n}\n","class IdleTimer {\n constructor({ idleTimeout, onIdle }) {\n this.idleTimeout = idleTimeout\n this.onIdle = onIdle\n this.isIdle = false\n this.events = ['mousemove', 'keydown', 'mousedown', 'touchstart', 'wheel']\n this.destroyOnIdle = false\n this.lastId = null\n }\n resetTimeout() {\n if (this.isIdle) this.isIdle = false\n clearTimeout(this.lastId)\n if (!this.destroyOnIdle) {\n return this.createTimer()\n }\n }\n createTimer() {\n return setTimeout(() => {\n this.isIdle = true\n this.onIdle.call()\n }, this.idleTimeout)\n }\n listener(event) {\n this.lastId = this.resetTimeout()\n }\n start() {\n this.lastId = this.createTimer()\n this.events.forEach(eventType => {\n window.addEventListener(eventType, event => this.listener(event), { passive: true })\n })\n }\n stop() {\n this.events.forEach(eventType => {\n window.removeEventListener(eventType, event => this.listener(event), { passive: true })\n })\n this.destroyOnIdle = true\n this.resetTimeout()\n }\n}\nexport default IdleTimer\n","import IdleTimer from '@services/idle'\nimport api from '@services/api'\nimport clone from '@utils/deepClone'\n\nconst emptyState = {\n\tsearch: {\n\t\tlotNumber: '',\n\t\tsaleId: '',\n\t\tlabel: '',\n\t},\n\tsort: {\n\t\torder: {\n\t\t\tby: 'lotNumber',\n\t\t\tisAscending: true,\n\t\t},\n\t\tcurrentPage: 0,\n\t\tresultsPerPage: 50,\n\t},\n\tidleTimer: undefined,\n\tisPlayingVideo: false,\n\ttranslationCulture: 'default',\n\tidleTimeout: 0,\n\trequireClientName: false,\n\tclientName: null,\n\tviewingId: null,\n\tviewingInterval: null,\n\tsales: [],\n endoscopyDisclosure: null,\n}\n\nconst state = clone(emptyState)\n\nconst mutations = {\n\tupdateConsignerStudySort(state, changes) {\n\t\tif (!('currentPage' in changes)) changes.currentPage = 0\n\t\tstate.sort = Object.assign(state.sort, changes)\n\t},\n\tupdateConsignerStudySearch(state, changes) {\n\t\tstate.search = Object.assign(state.search, changes)\n\t},\n\tupdateRepositoryData(state, data) {\n\t\tstate = Object.assign(state, data)\n\t},\n\tstoreIdleTimer(state, idleTimer) {\n\t\tstate.idleTimer = idleTimer\n\t},\n\tsetIsPlayingVideo(state, isPlayingVideo) {\n\t\tstate.isPlayingVideo = isPlayingVideo\n\t},\n\tsetClientName(state, clientName) {\n\t\tstate.clientName = clientName\n\t},\n\tsetViewingId(state, viewingId) {\n\t\tstate.viewingId = viewingId\n\t},\n\tstoreViewingInterval(state, viewingInterval) {\n\t\tstate.viewingInterval = viewingInterval\n\t},\n\tCLEAR_REPOSITORY_DATA(state) {\n\t\tstate.sales = []\n\t\tstate.sort = clone(emptyState.sort)\n\t\tstate.search = clone(emptyState.search)\n\t},\n setEndoscopyDisclosure(state, endoscopyDisclosure) {\n state.endoscopyDisclosure = endoscopyDisclosure\n }\n}\n\nconst actions = {\n\tasync getRepositoryData({ commit, dispatch, rootState }, clinicCode) {\n\t\tconst { data } = await api.repository.get(clinicCode || rootState.auth.claims.activeClinicCode)\n\t\tif (data) {\n\t\t\tcommit('updateRepositoryData', data)\n\t\t\tdispatch('initializeSearch')\n\t\t}\n\t},\n\tinitializeSearch({ commit, state }) {\n\t\tif (!state.sales.length) return\n\t\t// default to first sale if no sale is selected, or if selected saleId is invalid\n\t\tif (!state.search.saleId || !state.sales.find(x => x.id === state.search.saleId)) {\n\t\t\tcommit('updateConsignerStudySearch', { saleId: state.sales[0].id })\n\t\t}\n\t},\n\tasync startRepositoryViewing({ commit, dispatch, rootState }, { clientName, consignerStudyId }) {\n\t\tconst response = await api.repository.startViewing({\n\t\t\tconsignerStudyId,\n\t\t\tclientName,\n\t\t\tstartTime: new Date().toLocaleString(),\n\t\t})\n\t\tconst viewingId = response.data\n\t\tcommit('setClientName', clientName)\n\t\tcommit('setViewingId', viewingId)\n\t\tdispatch('startViewingPolling')\n\t},\n\tstartViewingPolling({ commit, state }) {\n\t\tif (!state.viewingId) return\n\t\tif (state.viewingInterval) clearInterval(state.viewingInterval)\n\t\tconst viewingInterval = setInterval(() => {\n\t\t\tapi.repository.updateViewing(state.viewingId)\n\t\t}, 15000)\n\t\tcommit('storeViewingInterval', viewingInterval)\n\t},\n\tendRepositoryViewing({ commit, state }) {\n\t\tif (!state.viewingId) return\n\t\tclearInterval(state.viewingInterval)\n\t\tcommit('storeViewingInterval', null)\n\t\tapi.repository.updateViewing(state.viewingId)\n\t\tcommit('setClientName', null)\n\t\tcommit('setViewingId', null)\n\t},\n\tstartIdleTimer({ commit, dispatch, getters, state }) {\n\t\tif (!getters.isRepositoryUser) return\n\t\tif (!state.idleTimeout) return\n\t\tcommit(\n\t\t\t'storeIdleTimer',\n\t\t\tnew IdleTimer({\n\t\t\t\tidleTimeout: state.idleTimeout * 60 * 1000,\n\t\t\t\tonIdle() {\n\t\t\t\t\tdispatch('logOutOnIdle')\n\t\t\t\t},\n\t\t\t})\n\t\t)\n\t\tstate.idleTimer.start()\n\t},\n\tstopIdleTimer({ state }) {\n\t\tif (state.idleTimer) state.idleTimer.stop()\n\t},\n\tlogOutOnIdle({ dispatch, getters, state }) {\n\t\tif (!getters.isAuthenticated || state.isPlayingVideo) return\n\t\tconst message = 'You have been logged out due to inactivity. Please log in again.'\n\t\tdispatch('addNotification', { message, notificationType: 'error' })\n\t\tdispatch('logOut')\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tactions,\n}\n","import api from '@services/api'\nimport { eventBus } from '@services/eventBus'\nimport { addNotification } from '@services/notificationService'\nimport _ from 'lodash'\nconst state = {\n\tcurrentParams: {\n\t\tconsultantId: null,\n\t\tstatus: null,\n\t\tsaleId: null,\n\t},\n\treviews: {\n\t\tresults: [],\n\t\tnumResults: 0,\n\t\thasMoreResults: false,\n\t},\n\treviewsTotal: {\n\t\tsaleId: '',\n\t\tsaleName: '',\n\t\tsaleCode: '',\n\t\trejected: 0,\n\t\tapproved: 0,\n\t\tawaitingreview: 0,\n\t\trejectedbysale: 0,\n\t\tsubmitted: 0,\n\t},\n\tsort: {\n\t\torder: {\n\t\t\tby: 'hipNumber',\n\t\t\tisAscending: true,\n\t\t},\n\t\tcurrentPage: 0,\n\t\tresultsPerPage: 50,\n\t},\n\treportImages: [],\n\tattachments: [],\n\tattachmentsTemplates: [],\n\tstudyImages: [], // status for images: \"NotMatched\", \"Matched\" and \"Rejected\"\n\treviewSubmissionId: '',\n\treviewSubmissionStatus: '', /// \"Awaiting Review\", \"Rejected\", \"Approved\", \"Rejected By Sale\" and \"Submitted\"\n\tconsultantId: '',\n\thipNumber: '',\n\tsaleId: '',\n\tsaleName: '',\n\tsaleClinicCode: '',\n\tsaleEntryId: '',\n\tsubmitResponse: {},\n\tupdateReviewData: {\n\t\treportTemplateImageViewId: null,\n\t\timageId: null,\n\t\tselectedThumbnail: null,\n\t\tstudyId: null,\n\t},\n\tpatientId: '',\n}\n\n// Mutations Map\nconst CHECK_IF_TEMPLATES_MATCHED = 'CHECK_IF_TEMPLATES_MATCHED'\n\nconst CLEAR_TOTAL_REVIEWS_STATUS = 'CLEAR_TOTAL_REVIEWS_STATUS'\nconst CLEAR_SALES_REVIEW_LIST = 'CLEAR_SALES_REVIEW_LIST'\nconst CLEAR_SORT_SALES_REVIEW_LIST = 'CLEAR_SORT_SALES_REVIEW_LIST'\nconst CLEAR_FOR_INITIAL_REVIEW_SUBMISSION = 'CLEAR_FOR_INITIAL_REVIEW_SUBMISSION'\nconst GET_REPOSITORY_IMAGES_TEMPLATES = 'GET_REPOSITORY_IMAGES_TEMPLATES'\nconst GET_REPOSITORY_REVIEW_SUBMISSION_DETAILS = 'GET_REPOSITORY_REVIEW_SUBMISSION_DETAILS'\nconst GET_SALES_REVIEW_LIST = 'GET_SALES_REVIEW_LIST'\nconst GET_DASHBOARD_REVIEW_LIST = 'GET_DASHBOARD_REVIEW_LIST'\n\nconst SELECT_REPORT_TEMPLATE_IMAGEVIEW_ID_ACTION = 'SELECT_REPORT_TEMPLATE_IMAGEVIEW_ID_ACTION'\nconst SELECT_THUMBNAIL_ACTION = 'SELECT_THUMBNAIL_ACTION'\nconst SET_REVIEW_PARAMS = 'SET_REVIEW_PARAMS'\nconst SET_TOTAL_REVIEWS_STATUS = 'SET_TOTAL_REVIEWS_STATUS'\nconst SUBMIT_APPROVED_REVIEW_LIST = 'SUBMIT_APPROVED_REVIEW_LIST'\n\nconst UNASSIGN_TEMPLATE_ACTION = 'UNASSIGN_TEMPLATE_ACTION'\nconst UPDATE_SORT_SALES_REVIEW_LIST = 'UPDATE_SORT_SALES_REVIEW_LIST'\nconst UPDATE_REVIEW_DATA = 'UPDATE_REVIEW_DATA'\nconst DELETE_ATTACHMENT = 'DELETE_ATTACHMENT'\n\nconst mutations = {\n\tCHECK_IF_TEMPLATES_MATCHED(state) {\n\t\tconst matches = state.studyImages.filter(image => image.status === 'Matched')\n\t\tmatches.forEach(matchTemplate => {\n\t\t\tconst index = state.reportImages.findIndex(report => report.id === matchTemplate.reportTemplateImageViewId)\n\t\t\tif (index > -1) {\n\t\t\t\tstate.reportImages[index].imageId = matchTemplate.imageId\n\t\t\t\tstate.reportImages[index].studyId = matchTemplate.studyId\n\t\t\t\tstate.reportImages[index].thumbnailHidden = state.reportImages[index].thumbnail\n\t\t\t\tstate.reportImages[index].thumbnail = null\n\t\t\t} else {\n\t\t\t\t// This will check if the extraimage it's all ready on this array\n\t\t\t\tconst index = state.reportImages.findIndex(report => report.imageId === matchTemplate.imageId)\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tstate.reportImages.push({\n\t\t\t\t\t\timageId: matchTemplate.imageId,\n\t\t\t\t\t\tstudyId: matchTemplate.studyId,\n\t\t\t\t\t\tthumbnail: null,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\n\t\tconst attachmentsMatches = state.attachments.filter(attachment => attachment.status === 'Matched')\n\t\tattachmentsMatches.forEach(attachment => {\n\t\t\tconst index = state.attachmentsTemplates.findIndex(\n\t\t\t\tattachmentTemplate => attachmentTemplate.id === attachment.reportTemplateImageViewId\n\t\t\t)\n\t\t\tif (index > -1) {\n\t\t\t\tstate.attachmentsTemplates[index].imageId = attachment.imageId\n\t\t\t\tstate.attachmentsTemplates[index].studyId = attachment.studyId\n\t\t\t\tstate.attachmentsTemplates[index].thumbnailHidden = state.attachments[index].thumbnail\n\t\t\t\tstate.attachmentsTemplates[index].thumbnail = null\n\t\t\t\tstate.attachmentsTemplates[index].templateName = `${state.attachmentsTemplates[index].templateName}`\n\t\t\t} else {\n\t\t\t\tconst index = state.attachmentsTemplates.findIndex(\n\t\t\t\t\tattachmentTemplate => attachmentTemplate.imageId === attachment.imageId\n\t\t\t\t)\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tstate.attachments.push({\n\t\t\t\t\t\timageId: attachment.imageId,\n\t\t\t\t\t\tstudyId: attachment.studyId,\n\t\t\t\t\t\tthumbnail: null,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tstate.attachmentsTemplates = [...state.attachmentsTemplates]\n\t},\n\n\tCLEAR_TOTAL_REVIEWS_STATUS(state) {\n\t\tObject.assign(state.reviewsTotal, {\n\t\t\tsaleId: '',\n\t\t\tsaleName: '',\n\t\t\tsaleCode: '',\n\t\t\trejected: 0,\n\t\t\tapproved: 0,\n\t\t\tawaitingreview: 0,\n\t\t\trejectedbysale: 0,\n\t\t\tsubmitted: 0,\n\t\t})\n\t},\n\n\tCLEAR_SALES_REVIEW_LIST(state) {\n\t\tObject.assign(state, {\n\t\t\treviews: {\n\t\t\t\tresults: [],\n\t\t\t\tnumResults: 0,\n\t\t\t\thasMoreResults: false,\n\t\t\t},\n\t\t\tsort: {\n\t\t\t\torder: {\n\t\t\t\t\tby: 'hipNumber',\n\t\t\t\t\tisAscending: true,\n\t\t\t\t},\n\t\t\t\tcurrentPage: 0,\n\t\t\t\tresultsPerPage: 50,\n\t\t\t},\n\t\t})\n\t},\n\n\tCLEAR_SORT_SALES_REVIEW_LIST(state) {\n\t\tObject.assign(state.sort, {\n\t\t\torder: {\n\t\t\t\tby: 'hipNumber',\n\t\t\t\tisAscending: true,\n\t\t\t},\n\t\t\tcurrentPage: 0,\n\t\t\tresultsPerPage: 50,\n\t\t})\n\t},\n\n\t// #region \t\tFor Review Submission\n\n\tCLEAR_FOR_INITIAL_REVIEW_SUBMISSION(state) {\n\t\tObject.assign(state, {\n\t\t\t...state,\n\t\t\treportImages: [],\n\t\t\tattachments: [],\n\t\t\tattachmentsTemplates: [],\n\t\t\tstudyImages: [],\n\t\t\treviewSubmissionStatus: '',\n\t\t\tconsultantId: '',\n\t\t\thipNumber: '',\n\t\t\tsaleId: '',\n\t\t\tsaleName: '',\n\t\t\tsaleClinicCode: '',\n\t\t\tsaleEntryId: '',\n\t\t\tsubmitResponse: {},\n\t\t\tupdateReviewData: {\n\t\t\t\treportTemplateImageViewId: null,\n\t\t\t\timageId: null,\n\t\t\t\tselectedThumbnail: null,\n\t\t\t\tstudyId: null,\n\t\t\t},\n\t\t\tpatientId: '',\n\t\t})\n\t},\n\n\tGET_REPOSITORY_IMAGES_TEMPLATES(state, payload) {\n\t\tstate.reportImages = [...payload['imageReportTemplateImageViews']]\n\t\tstate.attachmentsTemplates = [...payload['attachmentReportTemplateImageViews']]\n\t},\n\n\tGET_REPOSITORY_REVIEW_SUBMISSION_DETAILS(state, payload) {\n\t\tstate.studyImages = []\n\t\tObject.assign(state, {\n\t\t\t...state,\n\t\t\treviewSubmissionId: payload?.reviewSubmissionId,\n\t\t\treviewSubmissionStatus: payload?.reviewSubmissionStatus, // 'Rejected' | 'Approve ',\n\t\t\tconsultantId: payload?.consultantId,\n\t\t\thipNumber: payload?.hipNumber,\n\t\t\tsaleId: payload?.saleId,\n\t\t\tsaleName: payload?.saleName,\n\t\t\tsaleClinicCode: payload?.saleClinicCode,\n\t\t\tsaleEntryId: payload?.saleEntryId,\n\t\t\tattachments: payload?.attachments ?? [],\n\t\t\tstudyImages: payload.imageData,\n\t\t\tpatientId: payload.saleCode + '-' + payload.hipNumber,\n\t\t})\n\t},\n\n\tGET_SALES_REVIEW_LIST(state, payload) {\n\t\tObject.assign(state.reviews, payload)\n\t},\n\n\tGET_DASHBOARD_REVIEW_LIST(state, payload) {\n\t\tObject.assign(state.reviews, payload)\n\t},\n\n\tSELECT_THUMBNAIL_ACTION(state, { thumbnail }) {\n\t\tconst selectedIndex = state.studyImages.findIndex(image => image?.imageId === thumbnail?.imageId)\n\t\tlet updateReviewData = state.updateReviewData\n\t\tupdateReviewData = {\n\t\t\t...updateReviewData,\n\t\t\tselectedThumbnail: state.studyImages[selectedIndex],\n\t\t\treportTemplateImageViewId: thumbnail?.reportTemplateImageViewId,\n\t\t\timageId: thumbnail?.imageId,\n\t\t\tstudyId: thumbnail?.studyId,\n\t\t}\n\t\tstate.updateReviewData = { ...updateReviewData }\n\t},\n\n\tSET_REVIEW_PARAMS(state, payload) {\n\t\tObject.assign(state.currentParams, payload)\n\t},\n\n\tSELECT_REPORT_TEMPLATE_IMAGEVIEW_ID_ACTION(state, { reportTemplateImageViewId }) {\n\t\tlet updateReviewData = state.updateReviewData\n\t\tupdateReviewData.reportTemplateImageViewId = reportTemplateImageViewId\n\t\tstate.updateReviewData = { ...updateReviewData }\n\t},\n\n\tSET_TOTAL_REVIEWS_STATUS(state, payload) {\n\t\tdelete Object.assign(payload, { awaitingreview: payload['awaitingReview'] })['awaitingReview']\n\t\tdelete Object.assign(payload, { rejectedbysale: payload['rejectedBySale'] })['rejectedBySale']\n\t\tObject.assign(state.reviewsTotal, payload)\n\t},\n\n\tSUBMIT_APPROVED_REVIEW_LIST(state, payload) {\n\t\tObject.assign(state.submitResponse, payload)\n\t},\n\n\tCHECK__IF_TEMPLATES_MATCHED(state) {\n\t\t// TODO CHANGE WITH ENUM\n\t\tconst matches = state.studyImages.filter(image => image.status === 'Matched')\n\t\tmatches.forEach(matchTemplate => {\n\t\t\tconst index = state.reportImages.findIndex(report => report.id === matchTemplate.reportTemplateImageViewId)\n\t\t\tif (index > -1) {\n\t\t\t\tstate.reportImages[index].imageId = matchTemplate.imageId\n\t\t\t\tstate.reportImages[index].studyId = matchTemplate.studyId\n\t\t\t\tstate.reportImages[index].thumbnailHidden = state.reportImages[index].thumbnail\n\t\t\t\tstate.reportImages[index].thumbnail = null\n\t\t\t} else {\n\t\t\t\t// This will check if the extraimage it's all ready on this array\n\t\t\t\tconst index = state.reportImages.findIndex(report => report.imageId === matchTemplate.imageId)\n\t\t\t\tif (index === -1) {\n\t\t\t\t\tstate.reportImages.push({\n\t\t\t\t\t\timageId: matchTemplate.imageId,\n\t\t\t\t\t\tstudyId: matchTemplate.studyId,\n\t\t\t\t\t\tthumbnail: null,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tstate.reportImages = [...state.reportImages]\n\t},\n\n\tUNASSIGN_TEMPLATE_ACTION(state, index) {\n\t\tif (!state.reportImages[index].reportTemplateId) {\n\t\t\tconst arrayWithoutIndex = state.reportImages.filter(image => image.imageId !== state.reportImages[index].imageId)\n\t\t\tstate.reportImages = _.cloneDeep(arrayWithoutIndex)\n\t\t} else {\n\t\t\tstate.reportImages[index].imageId = null\n\t\t\tstate.reportImages[index].thumbnail = state.reportImages[index].thumbnailHidden\n\t\t\tstate.reportImages[index].thumbnailHidden = null\n\t\t}\n\t},\n\n\tUPDATE_SORT_SALES_REVIEW_LIST(state, payload) {\n\t\tif (!('currentPage' in payload)) payload.currentPage = 0\n\t\tObject.assign(state.sort, payload)\n\t},\n\n\tUPDATE_REVIEW_DATA(state, payload) {\n\t\tconst updateReviewData = {\n\t\t\t...state.updateReviewData,\n\t\t\treportTemplateImageViewId: payload.reportTemplateImageViewId,\n\t\t\timageId: payload.imageId,\n\t\t}\n\t\tstate.updateReviewData = { ...updateReviewData }\n\t},\n\n\tDELETE_ATTACHMENT(state, payload) {\n\t\tconst attachmentsTemplates = state.attachmentsTemplates\n\t\tconst index = attachmentsTemplates.findIndex(template => template.id === payload.id)\n\t\tif (index > -1) {\n\t\t\tconst attachmentsTemplates = state.attachmentsTemplates\n\t\t\tattachmentsTemplates[index] = payload\n\t\t\tstate.attachmentsTemplates = [...attachmentsTemplates]\n\t\t}\n\t},\n\t// #endregion\n}\n\nconst actions = {\n\t// Broadcast Theme from external windows\n\tgetReviewListBroadcast({ dispatch }, payload) {\n\t\tconst type = 'getReviewListAction'\n\t\tdispatch(type, payload)\n\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type, payload })\n\t},\n\n\t// Get the Review List\n\tasync getSalesReviewListAction({ commit, dispatch }, { consultantId, params }) {\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\tcommit(CLEAR_TOTAL_REVIEWS_STATUS)\n\t\ttry {\n\t\t\tconst response = await api.repositoryReview.getList({ consultantId, params: _.pickBy(params, _.identity) })\n\t\t\tcommit(GET_SALES_REVIEW_LIST, response)\n\t\t\tawait dispatch('getTotalReviewsByStatusAction', { consultantId, saleId: params.saleId })\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t} finally {\n\t\t}\n\t},\n\tasync getTotalReviewsByStatusAction({ commit }, { consultantId, saleId }) {\n\t\ttry {\n\t\t\tconst response = await api.repositoryReview.getDashboard({ consultantId })\n\t\t\tconst reviews = response.filter(item => item.saleId === saleId)[0]\n\t\t\tif (!reviews) return\n\t\t\tcommit(SET_TOTAL_REVIEWS_STATUS, reviews)\n\t\t} finally {\n\t\t}\n\t},\n\tasync getDashboardReviewsAction({ commit, dispatch }, { consultantId, params }) {\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\tcommit(CLEAR_TOTAL_REVIEWS_STATUS)\n\t\ttry {\n\t\t\tconst response = await api.repositoryReview.getDashboardList({\n\t\t\t\tconsultantId,\n\t\t\t\tparams: _.pickBy(params, _.identity),\n\t\t\t})\n\t\t\tcommit(GET_DASHBOARD_REVIEW_LIST, response)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t} finally {\n\t\t}\n\t},\n\n\tupdateSortAction({ commit }, payload) {\n\t\tcommit(UPDATE_SORT_SALES_REVIEW_LIST, payload)\n\t},\n\n\tasync clearData({ commit }) {\n\t\tawait commit(CLEAR_TOTAL_REVIEWS_STATUS)\n\t\tawait commit(CLEAR_SALES_REVIEW_LIST)\n\t\tawait commit(CLEAR_SORT_SALES_REVIEW_LIST)\n\t},\n\n\t// Get the Report Images / Template\n\tasync getReportImagesAction({ commit, dispatch }) {\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\ttry {\n\t\t\tconst consultantId = sessionStorage.getItem('consultantId') || state.currentParams.consultantId\n\t\t\tlet response = await api.repositoryReview.getTemplateImageViews(consultantId, state.saleEntryId)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t\tcommit(GET_REPOSITORY_IMAGES_TEMPLATES, response)\n\t\t\tdispatch('checkIfTemplateMatched')\n\t\t} catch (e) {\n\t\t\tconsole.log('error', e)\n\t\t}\n\t},\n\n\t// Get the Study Images\n\tasync getReviewSubmissionDetailsAction({ commit, dispatch }, reviewSubmissionId) {\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\ttry {\n\t\t\tconst consultantId = sessionStorage.getItem('consultantId') || state.currentParams.consultantId\n\t\t\tlet response = await api.repositoryReview.getReviewSubmissionDetails(consultantId, reviewSubmissionId)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t\tcommit(GET_REPOSITORY_REVIEW_SUBMISSION_DETAILS, response)\n\t\t\tdispatch('checkIfTemplateMatched')\n\t\t} catch (e) {\n\t\t\tconsole.log('error', e)\n\t\t}\n\t},\n\n\tasync updateReviewSubmissionImageAction({ commit, dispatch }) {\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\ttry {\n\t\t\tawait api.repositoryReview.updateReviewSubmissionImage(\n\t\t\t\tstate.reviewSubmissionId,\n\t\t\t\tstate.updateReviewData.imageId,\n\t\t\t\tstate.updateReviewData.reportTemplateImageViewId,\n\t\t\t\tstate.consultantId\n\t\t\t)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t\tdispatch('getReviewSubmissionDetailsAction', state.reviewSubmissionId)\n\t\t} catch (e) {\n\t\t\tconsole.log('error', e)\n\t\t}\n\t},\n\n\tselectThumbnailAction({ commit }, { thumbnail }) {\n\t\tcommit(SELECT_THUMBNAIL_ACTION, {\n\t\t\tthumbnail,\n\t\t})\n\t},\n\n\tselectReportTemplateImageViewIdAction({ commit, dispatch }, { reportTemplateImageViewId }) {\n\t\tcommit(SELECT_REPORT_TEMPLATE_IMAGEVIEW_ID_ACTION, { reportTemplateImageViewId })\n\t\tdispatch('updateReviewSubmissionImageAction')\n\t},\n\n\tcheckIfTemplateMatched({ commit }) {\n\t\tcommit(CHECK_IF_TEMPLATES_MATCHED)\n\t},\n\n\tasync unassignTemplateAction({ dispatch, commit }, index) {\n\t\ttry {\n\t\t\tconst template = state.reportImages[index]\n\t\t\tawait api.repositoryReview.deleteReviewSubmisssionImage(\n\t\t\t\tstate.reviewSubmissionId,\n\t\t\t\ttemplate.imageId,\n\t\t\t\tstate.consultantId\n\t\t\t)\n\t\t\tcommit(UNASSIGN_TEMPLATE_ACTION, index)\n\t\t\tdispatch('getReviewSubmissionDetailsAction', state.reviewSubmissionId) // TODO: remove this and do a manual update base on payload\n\t\t} catch (e) {}\n\t},\n\n\tasync deleteAttachmentAction({ dispatch, commit }, imageId) {\n\t\ttry {\n\t\t\tconst response = await api.repositoryReview.deleteReviewSubmisssionImage(\n\t\t\t\tstate.reviewSubmissionId,\n\t\t\t\timageId,\n\t\t\t\tstate.consultantId\n\t\t\t)\n\t\t\tcommit(DELETE_ATTACHMENT, response)\n\t\t} catch (e) {}\n\t},\n\n\tsetReviewParamsAction({ commit }, { consultantId, saleId, status }) {\n\t\tsessionStorage.setItem('status', status)\n\t\tsessionStorage.setItem('consultantId', consultantId)\n\t\tsessionStorage.setItem('saleId', saleId)\n\t\tcommit(SET_REVIEW_PARAMS, { consultantId, saleId, status })\n\t},\n\n\tasync sendReviewSubmissionAction(\n\t\t{ dispatch },\n\t\t{ type, reason } // approve, reject, approveSubmit\n\t) {\n\t\tif (type === 'approve') {\n\t\t\tdispatch('setIsLoadingDataAction', true)\n\t\t\ttry {\n\t\t\t\tconst consultantId = sessionStorage.getItem('consultantId') || state.currentParams.consultantId\n\t\t\t\tawait api.repositoryReview.approveReviewSubmisssion(consultantId, state.reviewSubmissionId)\n\t\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t\t\taddNotification('Approved', 'success')\n\t\t\t} catch (e) {\n\t\t\t\tthrow e\n\t\t\t}\n\t\t} else if (type === 'reject') {\n\t\t\tdispatch('setIsLoadingDataAction', true)\n\t\t\ttry {\n\t\t\t\tconst consultantId = sessionStorage.getItem('consultantId') || state.currentParams.consultantId\n\t\t\t\tawait api.repositoryReview.rejectReviewSubmisssion(consultantId, state.reviewSubmissionId, reason)\n\t\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t\t\taddNotification('Rejected', 'success')\n\t\t\t} catch (e) {\n\t\t\t\tthrow e\n\t\t\t}\n\t\t} else if (type === 'approveSubmit') {\n\t\t\tdispatch('setIsLoadingDataAction', true)\n\t\t\ttry {\n\t\t\t\tconst consultantId = sessionStorage.getItem('consultantId') || state.currentParams.consultantId\n\t\t\t\tawait api.repositoryReview.approveAndSubmitReviewSubmisssion(consultantId, state.reviewSubmissionId)\n\t\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t\t\t// TODO FUTURE WORK WITH BE INTEGRETION\n\t\t\t\t// dispatch('submitSaleEntryAction')\n\t\t\t\taddNotification('Approved & Submitted', 'success')\n\t\t\t} catch (e) {\n\t\t\t\tthrow e\n\t\t\t}\n\t\t}\n\t},\n\tasync submitApprovedReviewListAction({ commit, dispatch }, approvedReviews) {\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\ttry {\n\t\t\tconst consultantId = sessionStorage.getItem('consultantId') || state.currentParams.consultantId\n\t\t\tconst response = await api.repositoryReview.submitApprovedReviewList(\n\t\t\t\tconsultantId,\n\t\t\t\tapprovedReviews.approvedReviews\n\t\t\t)\n\t\t\tcommit(SUBMIT_APPROVED_REVIEW_LIST, response)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t} catch (e) {\n\t\t\tconsole.log('error', e)\n\t\t}\n\t},\n\tasync syncStudies({ commit, dispatch }, selectedDate) {\n\t\tconsole.log('calling sync studies')\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\tcommit(CLEAR_TOTAL_REVIEWS_STATUS)\n\t\ttry {\n\t\t\tconst response = await api.repositoryReview.syncStudies(\n\t\t\t\tselectedDate\n\t\t\t)\n\t\t\tcommit(GET_SALES_REVIEW_LIST, response)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t} catch (e) {\n\t\t\tconsole.log('error', e)\n\t\t}\n\t},\n\t// async submitSaleEntryAction({ commit, dispatch }) {\n\t// \tdispatch('setIsLoadingDataAction', true)\n\t// \tlet studyIds = []\n\t// \tconst reportImagesMatches = state.reportImages.filter(reportImage => {\n\t// \t\tif (reportImage.imageId) {\n\t// \t\t\tconst index = studyIds.indexOf(study => study.id === reportImage.studyId)\n\t// \t\t\tif (index === -1) {\n\t// \t\t\t\tstudyIds.push(reportImage.studyId)\n\t// \t\t\t}\n\t// \t\t\treturn reportImage\n\t// \t\t}\n\t// \t})\n\n\t// \tconst saleEntry = {\n\t// \t\tconsultantId: state.consultantId,\n\t// \t\timages: reportImagesMatches,\n\t// \t\tnotificationEmails: [],\n\t// \t\tsaleEntryId: state.saleEntryId,\n\t// \t\tsaleId: state.saleId,\n\t// \t\tstudyIds: studyIds,\n\t// \t}\n\t// \ttry {\n\t// \t\t//\tconst response = await api.sales.submitSaleEntry(saleEntry) // TODO FUTURE WORK WITH BE INTEGRETION\n\t// \t\tdispatch('setIsLoadingDataAction', false)\n\t// \t} catch (e) {\n\t// \t\tconsole.log('error', e)\n\t// \t}\n\t// },\n\n\tasync addAsExtraImageAction({ commit, dispatch }) {\n\t\tdispatch('setIsLoadingDataAction', true)\n\t\tconst images = _.cloneDeep(state.studyImages.filter(image => image.status === 'NotMatched'))\n\t\tlet imagesIds = []\n\t\timages.forEach(async thumbnail => {\n\t\t\timagesIds.push(thumbnail.imageId)\n\t\t})\n\t\tawait api.repositoryReview.updateReviewSubmissionImageAsExtra(\n\t\t\tstate.reviewSubmissionId,\n\t\t\timagesIds,\n\t\t\tstate.consultantId\n\t\t)\n\t\tdispatch('setIsLoadingDataAction', false)\n\t\tdispatch('getReviewSubmissionDetailsAction', state.reviewSubmissionId)\n\t},\n\n\tasync uploadAttachmentAction({ dispatch, commit }, { studyId, imageId, reportTemplateImageViewId }) {\n\t\ttry {\n\t\t\tdispatch('setIsLoadingDataAction', true)\n\t\t\tawait api.repositoryReview.saveReviewSubmissionStudy(state.reviewSubmissionId, studyId, state.consultantId)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t\tcommit(UPDATE_REVIEW_DATA, { imageId, reportTemplateImageViewId })\n\t\t\tdispatch('updateReviewSubmissionImageAction')\n\t\t} catch (e) {}\n\t},\n\n\tasync addStudyToReviewSubmissionAction({ dispatch }, { studyId }) {\n\t\ttry {\n\t\t\tdispatch('setIsLoadingDataAction', true)\n\t\t\tawait api.repositoryReview.saveReviewSubmissionStudy(state.reviewSubmissionId, studyId, state.consultantId)\n\t\t\tdispatch('getReviewSubmissionDetailsAction', state.reviewSubmissionId)\n\t\t\tdispatch('setIsLoadingDataAction', false)\n\t\t} catch (e) {}\n\t},\n\n\tclearInitialStateReviewSubmissionAction({ commit }) {\n\t\tcommit(CLEAR_FOR_INITIAL_REVIEW_SUBMISSION)\n\t},\n}\n\nconst getters = {\n\tpatientId: state => state.patientId,\n\treportImages: state => state.reportImages,\n\tattachmentsTemplates: state => state.attachmentsTemplates,\n\tstudyImages: state => state.studyImages,\n\tselectedStudyImage: state => state.selectedStudyImage,\n\tsubmissionStatus: state => state.reviewSubmissionStatus,\n\tconsultantId: state => state.consultantId,\n\tsaleId: state => state.saleId,\n\tsaleName: state => state.saleName,\n\thipNumber: state => state.hipNumber,\n\tstudyIds: state => {\n\t\tconst studyIds = []\n\t\tstate.studyImages.forEach(studyImage => {\n\t\t\tconst index = studyIds.indexOf(study => study.id === studyImage.studyId)\n\t\t\tif (index === -1) {\n\t\t\t\tstudyIds.push(studyImage.studyId)\n\t\t\t}\n\t\t})\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tactions,\n\tgetters,\n}\n","import { salesService } from '@services/salesService'\nimport _ from 'lodash'\n\nconst state = {\n\tattachments: [],\n}\n\n// Mutations Map\nconst GET_ATTACHMENTS = 'GET_ATTACHMENTS'\nconst CLEAR_ATTACHMENTS = 'CLEAR_ATTACHMENTS'\n\nconst mutations = {\n\tGET_ATTACHMENTS(state, payload) {\n\t\tObject.assign(state.attachments, payload)\n\t},\n\tCLEAR_ATTACHMENTS(state, payload) {\n\t\tstate.attachments = payload\n\t},\n}\n\nconst actions = {\n\tasync getAttachmentsAction({ commit }, { consultantId, saleId, hipNumber, studyIds }) {\n\t\tconst response = await salesService._getTemplate({\n\t\t\tconsultantId,\n\t\t\tsaleId,\n\t\t\thipNumber,\n\t\t\tsaleEntryId: hipNumber,\n\t\t\tstudyIds,\n\t\t})\n\t\tcommit(GET_ATTACHMENTS, response.attachments)\n\t},\n\tasync clearAttachmentsAction({ commit }) {\n\t\tcommit(CLEAR_ATTACHMENTS, [])\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tactions,\n}\n","import api from '@services/api'\nimport clone from '@utils/deepClone'\n\nconst emptyState = {\n\tsearch: {\n\t\tlotNumber: '',\n\t\tsaleId: '',\n\t\tlabel: '',\n\t\tstatus: '',\n\t},\n\tsort: {\n\t\torder: {\n\t\t\tby: 'lotNumber',\n\t\t\tisAscending: true,\n\t\t},\n\t\tcurrentPage: 0,\n\t\tresultsPerPage: 50,\n\t},\n\tactiveSales: [],\n}\n\nconst state = clone(emptyState)\n\nconst mutations = {\n\tupdateSaleSubmissionSort(state, changes) {\n\t\tif (!('currentPage' in changes)) changes.currentPage = 0\n\t\tstate.sort = Object.assign(state.sort, changes)\n\t},\n\tupdateSaleSubmissionSearch(state, changes) {\n\t\tstate.search = Object.assign(state.search, changes)\n\t},\n\tupdateSaleSubmissionData(state, data) {\n\t\tstate = Object.assign(state, data)\n\t},\n\tCLEAR_SALESUBMISSION_DATA(state) {\n\t\tstate.activeSales = []\n\t\tstate.sort = clone(emptyState.sort)\n\t\tstate.search = clone(emptyState.search)\n\t},\n}\n\nconst actions = {\n\tasync getSaleSubmissionData({ commit, dispatch }) {\n\t\tconst activeSales = await api.saleSubmission.getSales()\n\t\tif (activeSales) {\n\t\t\tcommit('updateSaleSubmissionData', { activeSales })\n\t\t\tdispatch('initializeSearch')\n\t\t}\n\t},\n\tinitializeSearch({ commit, state }) {\n\t\tif (!state.activeSales.length) return\n\t\t// default to first sale if no sale is selected, or if selected saleId is invalid\n\t\tif (!state.search.saleId || !state.activeSales.find(x => x.id === state.search.saleId)) {\n\t\t\tcommit('updateSaleSubmissionSearch', { saleId: state.activeSales[0].id })\n\t\t}\n\t},\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tactions,\n}\n","// http://2ality.com/2015/02/es6-classes-final.html\nexport default class {\n\tconstructor(detail, columns) {\n\t\t//\n\t\tthis.isPageLoading = true\n\t\tthis.isListLoading = false\n\t\tthis.isDetailLodaing = false\n\n\t\t//\n\t\tthis.list = []\n\t\tthis.columns = columns\n\t\tthis.numResults = 0\n\t\tthis.hasMoreResults = false\n\t\tthis.detail = detail\n\t\tthis.emptyDetail = detail\n\t}\n}\n","import Vm from '@store/models/base/Vm'\nimport MetaColumn from '@store/models/base/TableMetaColumn'\n\nexport default class extends Vm {\n\tconstructor() {\n\t\tvar detail = null\n\t\tvar columns = [\n\t\t\tMetaColumn({ name: 'Title', columnName: 'title', sortName: 'title' }),\n\t\t\tMetaColumn({ name: 'First', columnName: 'firstName', sortName: 'firstName' }),\n\t\t\tMetaColumn({ name: 'Last', columnName: 'lastName', sortName: 'lastName' }),\n\t\t\tMetaColumn({\n\t\t\t\tname: 'Clinic/Hospital',\n\t\t\t\tcolumnName: 'organizationName',\n\t\t\t\tsortName: 'OrganizationName',\n\t\t\t}),\n\t\t\tMetaColumn({ name: 'Email', columnName: 'email', sortName: 'email' }),\n\t\t]\n\n\t\t// Construct\n\t\tsuper(detail, columns)\n\t}\n}\n","// http://2ality.com/2015/02/es6-classes-final.html\nexport default class {\n constructor() {\n this.initLoading = true\n this.isLoading = true\n this.id = null\n }\n}\n","import detail from '@store/models/base/VmDetail'\n\nexport default class extends detail {\n constructor() {\n super()\n\n this.key = ''\n this.replacement = ''\n }\n}","import Vm from '@store/models/base/Vm'\nimport AutoCompleteDetail from './AutoCompleteDetail'\n\nexport default class extends Vm {\n\tconstructor() {\n\t\tvar detail = new AutoCompleteDetail()\n\t\tsuper(detail, undefined)\n\t}\n}\n","import OnBehalfOfVm from '@/store/models/state/onBehalfOfVm'\nimport api from '@services/api'\nimport AutoCompleteVm from '@store/models/state/autoCompleteVm'\n\nconst state = {\n\tautoComplete: new AutoCompleteVm(),\n\tonBehalfOf: new OnBehalfOfVm(),\n\tenableAntechNotification: false,\n}\n\nconst getters = {\n\tonBehalfOfList: state => state.onBehalfOf.list,\n\tonBehalfOfColumns: state => state.onBehalfOf.columns,\n\tonBehalfOfDetail: state => state.onBehalfOf.detail,\n\tonBehalfOfIsEditing: state => !!state.onBehalfOf.detail,\n\tonBehalfOfIsLoading: state => state.onBehalfOf.isListLoading || state.onBehalfOf.isDetailLoading,\n\tisAntechNotificationEnabled: state => state.enableAntechNotification,\n}\n\nconst mutations = {\n\tSET_ON_BEHALF_OF_LOADING(state, loading) {\n\t\tstate.isListLoading = loading\n\t},\n\tSET_ON_BEHALF_OF_LIST(state, list) {\n\t\tstate.onBehalfOf.list = list\n\t},\n\tEDIT_ON_BEHALF_OF(state, item) {\n\t\tstate.onBehalfOf.detail = { ...item }\n\t},\n\tSET_ON_BEHALF_OF(state, item) {\n\t\tconst list = state.onBehalfOf.list\n\t\tconst index = list.findIndex(i => i.id === item.id)\n\t\tif (index !== -1) {\n\t\t\tlist.splice(index, 1, item)\n\t\t}\n\t},\n\tCLEAR_ON_BEHALF_OF(state) {\n\t\tstate.onBehalfOf.detail = null\n\t},\n\tADD_ON_BEHALF_OF(state, item) {\n\t\tstate.onBehalfOf.list.push(item)\n\t},\n\tDELETE_ON_BEHALF_OF(state, item) {\n\t\tstate.onBehalfOf.list = state.onBehalfOf.list.filter(i => i.id !== item.id)\n\t},\n\tSET_AUTOCOMPLETE_LIST(state, autoCompleteList) {\n\t\tstate.autoComplete.list = autoCompleteList\n\t},\n\tSET_AUTOCOMPLETE_LOADING(state, loading) {\n\t\tstate.isListLoading = loading\n\t},\n\tSET_AUTOCOMPLETE(state, autoComplete) {\n\t\tconst index = state.autoComplete.list.findIndex(i => i.id === autoComplete.id)\n\t\tif (index !== -1) {\n\t\t\tstate.autoComplete.list.splice(index, 1, autoComplete)\n\t\t} else {\n\t\t\tstate.autoComplete.list.unshift(autoComplete)\n\t\t}\n\t},\n\tDELETE_AUTOCOMPLETE(state, autoComplete) {\n\t\tlet index = state.autoComplete.list.findIndex(a => a.id === autoComplete.id)\n\t\tstate.autoComplete.list.splice(index, 1)\n\t},\n // This needs to be removed after VetsChoice transition is complete\n // Start\n\tSET_ENABLE_ANTECH_NOTIFICATION(state, enableAntechNotification) {\n\t\tstate.enableAntechNotification = enableAntechNotification\n\t},\n // End\n}\n\nconst actions = {\n\tasync getOnBehalfOfList({ commit }) {\n\t\tcommit('SET_ON_BEHALF_OF_LOADING', true)\n\t\ttry {\n\t\t\tconst list = await api.onBehalfOf.getList()\n\t\t\tcommit('SET_ON_BEHALF_OF_LIST', list)\n\t\t} finally {\n\t\t\tcommit('SET_ON_BEHALF_OF_LOADING', false)\n\t\t}\n\t},\n\tasync editOnBehalfOf({ commit }, onBehalfOf) {\n\t\tcommit('EDIT_ON_BEHALF_OF', onBehalfOf)\n\t},\n\tasync saveOnBehalfOf({ commit, state, dispatch }) {\n\t\ttry {\n\t\t\t// Get the detail item\n\t\t\tconst detail = state.onBehalfOf.detail\n\t\t\tif (!detail) return\n\t\t\t// Keep track if this is a new record\n\t\t\tconst isNew = detail.id === undefined\n\t\t\t// Save the detail and assign the id\n\t\t\tconst response = await api.onBehalfOf.save(detail)\n\t\t\tdetail.id = response.data\n\t\t\tif (isNew) {\n\t\t\t\t// Add entity if it was new\n\t\t\t\tcommit('ADD_ON_BEHALF_OF', detail)\n\t\t\t\t// Dispatch add notification\n\t\t\t\tdispatch('addNotification', {\n\t\t\t\t\tmessage: 'Contact added!',\n\t\t\t\t\tnotificationType: 'success',\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// Reset existing entity\n\t\t\t\tcommit('SET_ON_BEHALF_OF', detail)\n\t\t\t\t// Dispatch update notification\n\t\t\t\tdispatch('addNotification', {\n\t\t\t\t\tmessage: 'Contact updated!',\n\t\t\t\t\tnotificationType: 'success',\n\t\t\t\t})\n\t\t\t}\n\t\t\tcommit('CLEAR_ON_BEHALF_OF')\n\t\t} finally {\n\t\t}\n\t},\n\tasync cancelOnBehalfOf({ commit }) {\n\t\tcommit('CLEAR_ON_BEHALF_OF')\n\t},\n\tasync deleteOnBehalfOf({ commit, state, dispatch }) {\n\t\ttry {\n\t\t\t// Get the detail item\n\t\t\tconst detail = state.onBehalfOf.detail\n\t\t\tif (!detail || !detail.id) return\n\t\t\t// Delete the item by id\n\t\t\tawait api.onBehalfOf.delete(detail.id)\n\t\t\tcommit('DELETE_ON_BEHALF_OF', detail)\n\t\t\t// Dispatch delete notification\n\t\t\tdispatch('addNotification', {\n\t\t\t\tmessage: 'Contact deleted!',\n\t\t\t\tnotificationType: 'success',\n\t\t\t})\n\t\t\tcommit('CLEAR_ON_BEHALF_OF')\n\t\t} finally {\n\t\t}\n\t},\n\tasync getAutoCompleteList({ commit }) {\n\t\tcommit('SET_AUTOCOMPLETE_LOADING', true)\n\t\ttry {\n\t\t\tconst response = await api.autoComplete.getAutoCompleteList()\n\t\t\tconst autoCompleteList = response.data\n\t\t\tcommit('SET_AUTOCOMPLETE_LIST', autoCompleteList)\n\t\t} finally {\n\t\t\tcommit('SET_AUTOCOMPLETE_LOADING', false)\n\t\t}\n\t},\n\tasync saveAutoComplete({ commit }, autoComplete) {\n\t\ttry {\n\t\t\tconst response = await api.autoComplete.saveAutoCompleteEntry(autoComplete)\n\t\t\tconst autoCompleteEntry = response.data.data\n\t\t\tcommit('SET_AUTOCOMPLETE', autoCompleteEntry)\n\t\t} finally {\n\t\t}\n\t},\n\tasync deleteAutoComplete({ commit }, autoComplete) {\n\t\ttry {\n\t\t\tawait api.autoComplete.deleteAutoCompleteEntry(autoComplete)\n\t\t\tcommit('DELETE_AUTOCOMPLETE', autoComplete)\n\t\t} finally {\n\t\t}\n\t},\n}\n\nexport default {\n\tstate,\n\tgetters,\n\tmutations,\n\tactions,\n}\n","const grays = [\n\t{\n\t\tname: 'gray-100',\n\t\tcolor: '#F7FAFC',\n\t},\n\t{\n\t\tname: 'gray-200',\n\t\tcolor: '#EDF2F7',\n\t},\n\t{\n\t\tname: 'gray-300',\n\t\tcolor: '#E2E8F0',\n\t},\n\t{\n\t\tname: 'gray-400',\n\t\tcolor: '#CBD5E0',\n\t},\n\t{\n\t\tname: 'gray-500',\n\t\tcolor: '#A0AEC0',\n\t},\n\t{\n\t\tname: 'gray-600',\n\t\tcolor: '#718096',\n\t},\n\t{\n\t\tname: 'gray-700',\n\t\tcolor: '#4A5568',\n\t},\n\t{\n\t\tname: 'gray-800',\n\t\tcolor: '#2D3748',\n\t},\n\t{\n\t\tname: 'gray-900',\n\t\tcolor: '#1A202C',\n\t},\n]\n\nconst blues = [\n\t{\n\t\tname: 'blue-darkest',\n\t\tcolor: '#072E54',\n\t},\n\t{\n\t\tname: 'blue-darker',\n\t\tcolor: '#15407B',\n\t},\n\t{\n\t\tname: 'blue-dark',\n\t\tcolor: '#26599F',\n\t},\n\t{\n\t\tname: 'blue',\n\t\tcolor: '#3F7BC7',\n\t},\n\t{\n\t\tname: 'blue-light',\n\t\tcolor: '#609DE8',\n\t},\n\t{\n\t\tname: 'blue-lighter',\n\t\tcolor: '#8EC1F9',\n\t},\n\t{\n\t\tname: 'blue-lightest',\n\t\tcolor: '#C7E1FF',\n\t},\n\t{\n\t\tname: 'blue-white',\n\t\tcolor: '#F6FAFF',\n\t},\n]\n\nconst teals = [\n\t{\n\t\tname: 'teal-darkest',\n\t\tcolor: '#074437',\n\t},\n\t{\n\t\tname: 'teal-darker',\n\t\tcolor: '#107662',\n\t},\n\t{\n\t\tname: 'teal-dark',\n\t\tcolor: '#159B80',\n\t},\n\t{\n\t\tname: 'teal',\n\t\tcolor: '#27BC9F',\n\t},\n\t{\n\t\tname: 'teal-light',\n\t\tcolor: '#47DCBE',\n\t},\n\t{\n\t\tname: 'teal-lighter',\n\t\tcolor: '#82F4DD',\n\t},\n\t{\n\t\tname: 'teal-lightest',\n\t\tcolor: '#CAFFF4',\n\t},\n]\n\nconst reds = [\n\t{\n\t\tname: 'red-darkest',\n\t\tcolor: '#4D1309',\n\t},\n\t{\n\t\tname: 'red-darker',\n\t\tcolor: '#882412',\n\t},\n\t{\n\t\tname: 'red-dark',\n\t\tcolor: '#BB321A',\n\t},\n\t{\n\t\tname: 'red',\n\t\tcolor: '#E14228',\n\t},\n\t{\n\t\tname: 'red-light',\n\t\tcolor: '#F06148',\n\t},\n\t{\n\t\tname: 'red-lighter',\n\t\tcolor: '#FB8B77',\n\t},\n\t{\n\t\tname: 'red-lightest',\n\t\tcolor: '#FFC7BD',\n\t},\n]\n\nconst yellows = [\n\t{\n\t\tname: 'yellow-darkest',\n\t\tcolor: '#493805',\n\t},\n\t{\n\t\tname: 'yellow-darker',\n\t\tcolor: '#7A5E09',\n\t},\n\t{\n\t\tname: 'yellow-dark',\n\t\tcolor: '#AA830F',\n\t},\n\t{\n\t\tname: 'yellow',\n\t\tcolor: '#D4A71F',\n\t},\n\t{\n\t\tname: 'yellow-light',\n\t\tcolor: '#F2C438',\n\t},\n\t{\n\t\tname: 'yellow-lighter',\n\t\tcolor: '#FBD970',\n\t},\n\t{\n\t\tname: 'yellow-lightest',\n\t\tcolor: '#FFEFC1',\n\t},\n]\nconst purples = [\n\t{\n\t\tname: 'purple-darkest',\n\t\tcolor: '#562299',\n\t},\n\t{\n\t\tname: 'purple-darker',\n\t\tcolor: '#6834ad',\n\t},\n\t{\n\t\tname: 'purple-dark',\n\t\tcolor: '#7e4ec2',\n\t},\n\t{\n\t\tname: 'purple',\n\t\tcolor: '#9a70d6',\n\t},\n\t{\n\t\tname: 'purple-light',\n\t\tcolor: '#aa85e0',\n\t},\n\t{\n\t\tname: 'purple-lighter',\n\t\tcolor: '#ba9beb',\n\t},\n\t{\n\t\tname: 'purple-lightest',\n\t\tcolor: '#ccb3f5',\n\t},\n]\n\nconst greens = [\n\t{\n\t\tname: 'green-darkest',\n\t\tcolor: '#19430A',\n\t},\n\t{\n\t\tname: 'green-darker',\n\t\tcolor: '#307517',\n\t},\n\t{\n\t\tname: 'green-dark',\n\t\tcolor: '#4BA22B',\n\t},\n\t{\n\t\tname: 'green',\n\t\tcolor: '#6AC649',\n\t},\n\t{\n\t\tname: 'green-light',\n\t\tcolor: '#8CE36C',\n\t},\n\t{\n\t\tname: 'green-lighter',\n\t\tcolor: '#ADF991',\n\t},\n\t{\n\t\tname: 'green-lightest',\n\t\tcolor: '#D6FEC8',\n\t},\n]\n\nexport default [\n\t{\n\t\tname: 'black',\n\t\tcolor: '#080A0E',\n\t},\n\t{\n\t\tname: 'white',\n\t\tcolor: '#FCFCFC',\n\t},\n\t...grays,\n\t...blues,\n\t...teals,\n\t...reds,\n\t...yellows,\n\t...greens,\n\t...purples,\n]\n","export default {\n\tkey: 'asteris',\n\tfavicon: '',\n\ticons: {\n\t\tdownload: '',\n\t},\n\tcompanyName: 'Asteris Inc.',\n\taccentColor: 'blue',\n\tcssVariables: {\n\t\tlight: {\n\t\t\t// Backgrounds\n\t\t\t'primary-bg': '{gray-200}',\n\t\t\t'primary-border': '{gray-300}',\n\t\t\t'secondary-bg': '{white}',\n\t\t\t'secondary-border': '{gray-300}',\n\t\t\t'tertiary-bg': '{gray-300}',\n\t\t\t'tertiary-border': '{gray-400}',\n\t\t\t// Toolbar\n\t\t\t'primary-toolbar-logo': '{accent-light}',\n\t\t\t'primary-toolbar-logo-community': '{green-light}',\n\t\t\t'primary-toolbar-bg': '{accent-darkest}',\n\t\t\t'primary-toolbar-border': '{accent-darkest}',\n\t\t\t'primary-toolbar-color': '{white}',\n\t\t\t'toolbar-bg': '{white}',\n\t\t\t'toolbar-button-bg-hover': '{gray-300}',\n\t\t\t'toolbar-button-color-hover': '{gray-800}',\n\t\t\t'toolbar-button-bg-active': '{gray-400}',\n\t\t\t'toolbar-button-color-active': '{gray-800}',\n\t\t\t// Dividers\n\t\t\tdivider: '{gray-400}',\n\t\t\tscrollbar: '{gray-400}',\n\t\t\t'scrollbar-hover': '{gray-500}',\n\t\t\t'scrollbar-bg': '{gray-300}',\n\t\t\t// Labels\n\t\t\t'primary-label': '{gray-900}',\n\t\t\t'secondary-label': '{gray-700}',\n\t\t\t'tertiary-label': '{gray-500}',\n\t\t\t'disabled-label': '{gray-300}',\n\t\t\t'primary-contrast-label': '{white}',\n\t\t\t// Links\n\t\t\tlink: '{accent-dark}',\n\t\t\t// Navigation\n\t\t\t'nav-link': '{accent-darkest}',\n\t\t\t'nav-link-hover': '{gray-200}',\n\t\t\t'nav-link-active': '{green-dark}',\n\t\t\t// Icons\n\t\t\t'icon-default': '{gray-500}',\n\t\t\t'icon-info': '{blue}',\n\t\t\t'icon-success': '{green-dark}',\n\t\t\t'icon-warning': '{yellow}',\n\t\t\t'icon-danger': '{red}',\n\t\t\t// Cards\n\t\t\t'card-bg': '{white}',\n\t\t\t'card-border': '{gray-300}',\n\t\t\t'card-header-default-bg': '{gray-300}',\n\t\t\t'card-header-default-color': '{gray-800}',\n\t\t\t'card-header-info-bg': '{blue-darkest}',\n\t\t\t'card-header-info-color': '{gray-100}',\n\t\t\t// Tables\n\t\t\t'table-color': '{gray-800}',\n\t\t\t'table-color-hover': '{gray-700}',\n\t\t\t'table-row-border': '{gray-300}',\n\t\t\t'table-row-odd-bg': '{gray-100}',\n\t\t\t'table-row-hover-bg': '{gray-300}',\n\t\t\t'table-row-selected-bg': '{gray-300}',\n\t\t\t'table-row-selected-border': '{gray-300}',\n\t\t\t'table-row-selected-color': '{gray-900}',\n\t\t\t'table-header-shadow': '{gray-400}',\n\t\t\t// Badges\n\t\t\t'primary-badge-bg': '{accent-darker}',\n\t\t\t'primary-badge-color': '{white}',\n\t\t\t// Range Indicators\n\t\t\t'range-indicator-bg': '{gray-300}',\n\t\t\t'range-indicator-value-bg': '{accent-dark}',\n\t\t\t'range-indicator-value-border': '{accent-darker}',\n\t\t\t// Menus\n\t\t\t'menu-bg': '{white}',\n\t\t\t'menu-color': '{gray-800}',\n\t\t\t'menu-item-hover-bg': '{gray-300}',\n\t\t\t'menu-item-active-bg': '{gray-400}',\n\t\t\t// Viewer Menu\n\t\t\t'viewer-menu-bg': '{white}',\n\t\t\t'viewer-menu-border': '{gray-400}',\n\t\t\t'viewer-menu-item-hover-bg': '{gray-300}',\n\t\t\t// Navigation Drawers\n\t\t\t'modal-drawer-bg': '{white}',\n\t\t\t// Inputs\n\t\t\t'input-bg': '{white}',\n\t\t\t'input-border': '{gray-400}',\n\t\t\t'input-error-border': '{red}',\n\t\t\t'input-border-focus': '{accent}',\n\t\t\t// Vue Select\n\t\t\t'v-select-selected-bg': '{gray-200}',\n\t\t\t'v-select-selected-border': '{gray-400}',\n\t\t\t'v-select-selected-color': '{gray-900}',\n\t\t\t'v-select-selected-deselect': '{gray-800}',\n\t\t\t// Datepicker\n\t\t\t'date-picker-color': '{gray-900}',\n\t\t\t'date-picker-bg': '{white}',\n\t\t\t'date-picker-border': '{gray-400}',\n\t\t\t'date-picker-button-color': '{gray-800}',\n\t\t\t'date-picker-button-bg-hover': '{gray-300}',\n\t\t\t'date-picker-day-bg-hover': '{gray-300}',\n\t\t\t'date-picker-day-bg-selected': '{accent-darker}',\n\t\t\t'date-picker-day-color-hover': '{gray-900}',\n\t\t\t'date-picker-day-color-selected': '{white}',\n\t\t\t/* =========================== */\n\t\t\t/* Buttons */\n\t\t\t/* =========================== */\n\t\t\t// Primary Button\n\t\t\t'button-primary-color': '{white}',\n\t\t\t'button-primary-bg': '{accent-dark}',\n\t\t\t'button-primary-color-hover': '{gray-200}',\n\t\t\t'button-primary-bg-hover': '{accent}',\n\t\t\t// Default Button\n\t\t\t'button-default-color': '{gray-800}',\n\t\t\t'button-default-bg': '{gray-300}',\n\t\t\t'button-default-color-hover': '{gray-700}',\n\t\t\t'button-default-bg-hover': '{gray-400}',\n\t\t\t// Info Button\n\t\t\t'button-info-color': '{white}',\n\t\t\t'button-info-bg': '{accent-dark}',\n\t\t\t'button-info-color-hover': '{gray-200}',\n\t\t\t'button-info-bg-hover': '{accent}',\n\t\t\t// Success Button\n\t\t\t'button-success-color': '{white}',\n\t\t\t'button-success-bg': '{green-dark}',\n\t\t\t'button-success-color-hover': '{gray-100}',\n\t\t\t'button-success-bg-hover': '{green}',\n\t\t\t// Warning Button\n\t\t\t'button-warning-color': '{yellow-darkest}',\n\t\t\t'button-warning-bg': '{yellow-lighter}',\n\t\t\t'button-warning-color-hover': '{yellow-darkest}',\n\t\t\t'button-warning-bg-hover': '{yellow-light}',\n\t\t\t// Danger Button\n\t\t\t'button-danger-color': '{white}',\n\t\t\t'button-danger-bg': '{red-dark}',\n\t\t\t'button-danger-color-hover': '{gray-100}',\n\t\t\t'button-danger-bg-hover': '{red}',\n\t\t\t// All Line Buttons\n\t\t\t'button-line-bg': '{gray-300}',\n\t\t\t'button-line-color': '{gray-800}',\n\t\t\t'button-line-color-hover': '{gray-100}',\n\t\t\t// Primary Line Button\n\t\t\t'button-primary-line-border': '{accent-dark}',\n\t\t\t// Default Line Button\n\t\t\t'button-default-line-border': '{gray-600}',\n\t\t\t// Info Line Button\n\t\t\t'button-info-line-border': '{blue-dark}',\n\t\t\t// Success Line Button\n\t\t\t'button-success-line-border': '{green-dark}',\n\t\t\t// Warning Line Button\n\t\t\t'button-warning-line-border': '{yellow}',\n\t\t\t// Danger Line Button\n\t\t\t'button-danger-line-border': '{red-dark}',\n\t\t\t// Checkboxes\n\t\t\t'checkbox-unchecked-bg': '{white}',\n\t\t\t'checkbox-unchecked-border': '{gray-400}',\n\t\t\t'checkbox-checked-bg': '{accent-dark}',\n\t\t\t'checkbox-checked-border': '{accent-dark}',\n\t\t\t// Hotkeys\n\t\t\t'hotkey-indicator-bg': '{gray-300}',\n\t\t\t'hotkey-indicator-border': '{gray-400}',\n\t\t\t'hotkey-indicator-color': '{gray-900}',\n\t\t\t// Notifications\n\t\t\t'notification-info-bg': '{blue-light}',\n\t\t\t'notification-info-icon': '{blue-lightest}',\n\t\t\t'notification-success-bg': '{green-light}',\n\t\t\t'notification-success-icon': '{green-lightest}',\n\t\t\t'notification-warning-bg': '{yellow-light}',\n\t\t\t'notification-warning-icon': '{yellow-lightest}',\n\t\t\t'notification-danger-bg': '{red-light}',\n\t\t\t'notification-danger-icon': '{red-lightest}',\n\t\t\t'notification-question-bg': '{teal-light}',\n\t\t\t'notification-question-icon': '{teal-lightest}',\n\t\t\t// Banner\n\t\t\t'banner-info-bg': '{blue-lightest}',\n\t\t\t'banner-info-color': '{blue-darkest}',\n\t\t\t'banner-info-border': '{blue-lighter}',\n\t\t\t// Report Editor\n\t\t\t'editor-border-inactive': '{gray-500}',\n\t\t\t'editor-border-hover': '{yellow}',\n\t\t\t'editor-border-active': '{blue}',\n\t\t\t'editor-border-fixed': '{red}',\n\t\t\t'editor-panel-border': 'rgba(0,0,0,.25)',\n\t\t\t'editor-corner-bg-hover': '{yellow-lighter}',\n\t\t\t'editor-corner-color-hover': '{gray-900}',\n\t\t\t'editor-corner-bg-active': '{blue-dark}',\n\t\t\t'editor-corner-color-active': '{white}',\n\t\t\t'editor-corner-bg-fixed': '{red-dark}',\n\t\t\t'editor-corner-color-fixed': '{white}',\n\t\t\t'editor-binding-method': '{teal-dark}',\n\t\t\t'editor-binding-value': '{blue}',\n\t\t\t'editor-binding-constant': '{yellow-dark}',\n\t\t\t// Reports\n\t\t\t'report-bg-primary': '{gray-200}',\n\t\t\t'report-bg-secondary': '{white}',\n\t\t\t'report-bg-tertiary': '{gray-300}',\n\t\t\t'report-bg-info': '{blue-lighter}',\n\t\t\t'report-bg-danger': '{red-lighter}',\n\t\t\t'report-bg-warning': '{yellow-lighter}',\n\t\t\t'report-bg-success': '{green-lighter}',\n\t\t\t'report-text-primary': '{gray-900}',\n\t\t\t'report-text-secondary': '{gray-700}',\n\t\t\t'report-text-tertiary': '{gray-500}',\n\t\t\t'report-text-info': '{blue-dark}',\n\t\t\t'report-text-danger': '{red-dark}',\n\t\t\t'report-text-warning': '{yellow-dark}',\n\t\t\t'report-text-success': '{green-dark}',\n\t\t\t'report-draft-bg': '{yellow-lighter}',\n\t\t\t'report-legacy-bg': '{gray-200}',\n\t\t\t'report-published-bg': '{green-lighter}',\n\t\t\t'report-retired-bg': '{accent-lighter}',\n\t\t\t'report-draft-text': '{yellow-darkest}',\n\t\t\t'report-legacy-text': '{gray-600}',\n\t\t\t'report-published-text': '{green-darkest}',\n\t\t\t'report-retired-text': '{accent-darkest}',\n\t\t\t// Update banner\n\t\t\t'banner-update-bg': '{gray-700}',\n\t\t\t'banner-update-color': '{white}',\n\t\t\t'banner-update-border': '{gray-600}',\n\t\t\t'banner-update-btn-color': '{blue-lightest}',\n\t\t\t// Toggle\n\t\t\t'toggle-bg': 'rgba(0,0,0,0.25)',\n\t\t\t'toggle-bg-active': '{green}',\n\t\t\t'toggle-handle': '{white}',\n\t\t\t// Schedule\n\t\t\t'schedule-started': '{yellow-lightest}',\n\t\t\t'schedule-started-icon': '{yellow}',\n\t\t\t'schedule-imaging-complete': '{green-lighter}',\n\t\t\t'schedule-imaging-complete-icon': '{green}',\n\t\t\t'schedule-report-pending-approval': '{blue-lightest}',\n\t\t\t'schedule-report-pending-approval-icon': '{blue}',\n\t\t\t'schedule-report-complete': '{purple-lightest}',\n\t\t\t'schedule-report-complete-icon': '{purple}',\n\t\t\t'schedule-billed': '{yellow-lighter}',\n\t\t\t'schedule-current-time': '{yellow}',\n\t\t\t// Tabs\n\t\t\t'tab-item-bg': '{gray-300}',\n\t\t\t'tab-item-hover-bg': '{gray-400}',\n\t\t\t'tab-item-color': '{gray-600}',\n\t\t\t'tab-item-active-bg': '{white}',\n\t\t\t'tab-item-active-color': '{gray-800}',\n\t\t\t'tab-item-low-contrast-active-bg': '{white}',\n\t\t\t'tab-item-low-contrast-active-color': '{gray-900}',\n\t\t\t'tab-item-drop-bg': '{gray-400}',\n\t\t\t'tab-item-drop-color': '{gray-900}',\n\t\t\t'tab-item-accent-bg': '{gray-300}',\n\t\t\t'tab-item-accent-hover-bg': '{gray-400}',\n\t\t\t'tab-item-accent-color': '{gray-800}',\n\t\t\t'tab-item-accent-active-bg': '{green-dark}',\n\t\t\t'tab-item-accent-active-color': 'white',\n\t\t},\n\t\tdark: {\n\t\t\t// Backgrounds\n\t\t\t'primary-bg': '{gray-900}',\n\t\t\t'primary-border': '{gray-700}',\n\t\t\t'secondary-bg': '{gray-800}',\n\t\t\t'secondary-border': '{gray-700}',\n\t\t\t'tertiary-bg': '{gray-700}',\n\t\t\t'tertiary-border': '{gray-500}',\n\t\t\t// Toolbar\n\t\t\t'primary-toolbar-logo': '{accent-light}',\n\t\t\t'primary-toolbar-logo-community': '{green-light}',\n\t\t\t'primary-toolbar-bg': '{accent-darkest}',\n\t\t\t'primary-toolbar-border': '{gray-600}',\n\t\t\t'primary-toolbar-color': '{white}',\n\t\t\t'toolbar-bg': '{gray-900}',\n\t\t\t'toolbar-button-bg-hover': '{gray-700}',\n\t\t\t'toolbar-button-color-hover': '{gray-100}',\n\t\t\t'toolbar-button-bg-active': '{gray-700}',\n\t\t\t'toolbar-button-color-active': '{gray-100}',\n\t\t\t// Dividers\n\t\t\tdivider: '{gray-600}',\n\t\t\tscrollbar: '{gray-600}',\n\t\t\t'scrollbar-hover': '{gray-500}',\n\t\t\t'scrollbar-bg': '{gray-700}',\n\t\t\t// Labels\n\t\t\t'primary-label': '{gray-100}',\n\t\t\t'secondary-label': '{gray-300}',\n\t\t\t'tertiary-label': '{gray-500}',\n\t\t\t'disabled-label': '{gray-700}',\n\t\t\t'primary-contrast-label': '{white}',\n\t\t\t// Links\n\t\t\tlink: '{accent-lighter}',\n\t\t\t// Navigation\n\t\t\t'nav-link': '{gray-400}',\n\t\t\t'nav-link-hover': '{gray-700}',\n\t\t\t'nav-link-active': '{green-light}',\n\t\t\t// Icons\n\t\t\t'icon-default': '{gray-500}',\n\t\t\t'icon-info': '{blue-light}',\n\t\t\t'icon-success': '{green-light}',\n\t\t\t'icon-warning': '{yellow-light}',\n\t\t\t'icon-danger': '{red-lighter}',\n\t\t\t// Cards\n\t\t\t'card-bg': '{gray-800}',\n\t\t\t'card-border': '{gray-700}',\n\t\t\t'card-header-default-bg': '{gray-700}',\n\t\t\t'card-header-default-color': '{gray-200}',\n\t\t\t'card-header-info-bg': '{blue-darkest}',\n\t\t\t'card-header-info-color': '{gray-100}',\n\t\t\t// Tables\n\t\t\t'table-color': '{gray-200}',\n\t\t\t'table-color-hover': '{gray-200}',\n\t\t\t'table-row-border': '{gray-700}',\n\t\t\t'table-row-odd-bg': '{gray-700}',\n\t\t\t'table-row-hover-bg': '{gray-900}',\n\t\t\t'table-row-selected-bg': '{gray-900}',\n\t\t\t'table-row-selected-border': '{gray-800}',\n\t\t\t'table-row-selected-color': '{gray-100}',\n\t\t\t'table-header-shadow': '{gray-600}',\n\t\t\t// Badges\n\t\t\t'primary-badge-bg': '{accent-lighter}',\n\t\t\t'primary-badge-color': '{accent-darkest}',\n\t\t\t// Range Indicators\n\t\t\t'range-indicator-bg': '{gray-700}',\n\t\t\t'range-indicator-value-bg': '{accent-lighter}',\n\t\t\t'range-indicator-value-border': '{accent}',\n\t\t\t// Menus\n\t\t\t'menu-bg': '{gray-800}',\n\t\t\t'menu-color': '{gray-100}',\n\t\t\t'menu-item-hover-bg': '{gray-700}',\n\t\t\t'menu-item-active-bg': '{gray-900}',\n\t\t\t// Viewer Menu\n\t\t\t'viewer-menu-bg': '{gray-700}',\n\t\t\t'viewer-menu-border': '{gray-600}',\n\t\t\t'viewer-menu-item-hover-bg': '{gray-600}',\n\t\t\t// Navigation Drawers\n\t\t\t'modal-drawer-bg': '{gray-900}',\n\t\t\t// Inputs\n\t\t\t'input-bg': '{gray-700}',\n\t\t\t'input-border': '{gray-600}',\n\t\t\t'input-error-border': '{red-light}',\n\t\t\t'input-border-focus': '{accent-lighter}',\n\t\t\t// Vue Select\n\t\t\t'v-select-selected-bg': '{accent-light}',\n\t\t\t'v-select-selected-border': '{accent-light}',\n\t\t\t'v-select-selected-deselect': '{gray-100}',\n\t\t\t'v-select-selected-color': '{white}',\n\t\t\t// Datepicker\n\t\t\t'date-picker-color': '{white}',\n\t\t\t'date-picker-bg': '{gray-900}',\n\t\t\t'date-picker-border': '{gray-700}',\n\t\t\t'date-picker-button-color': '{gray-200}',\n\t\t\t'date-picker-button-bg-hover': '{gray-800}',\n\t\t\t'date-picker-day-bg-hover': '{gray-700}',\n\t\t\t'date-picker-day-color-hover': '{white}',\n\t\t\t'date-picker-day-bg-selected': '{accent}',\n\t\t\t'date-picker-day-color-selected': '{white}',\n\t\t\t/* =========================== */\n\t\t\t/* Buttons */\n\t\t\t/* =========================== */\n\t\t\t// Primary Button\n\t\t\t'button-primary-color': '{white}',\n\t\t\t'button-primary-bg': '{accent}',\n\t\t\t'button-primary-color-hover': '{gray-100}',\n\t\t\t'button-primary-bg-hover': '{accent-dark}',\n\t\t\t// Default Button\n\t\t\t'button-default-color': '{white}',\n\t\t\t'button-default-bg': '{gray-700}',\n\t\t\t'button-default-color-hover': '{white}',\n\t\t\t'button-default-bg-hover': '{gray-600}',\n\t\t\t// Info Button\n\t\t\t'button-info-color': '{accent-darkest}',\n\t\t\t'button-info-bg': '{accent-light}',\n\t\t\t'button-info-color-hover': '{gray-100}',\n\t\t\t'button-info-bg-hover': '{accent}',\n\t\t\t// Success Button\n\t\t\t'button-success-color': '{green-darkest}',\n\t\t\t'button-success-bg': '{green}',\n\t\t\t'button-success-color-hover': '{gray-900}',\n\t\t\t'button-success-bg-hover': '{green-light}',\n\t\t\t// Warning Button\n\t\t\t'button-warning-color': '{yellow-lightest}',\n\t\t\t'button-warning-bg': '{yellow-darker}',\n\t\t\t'button-warning-color-hover': '{white}',\n\t\t\t'button-warning-bg-hover': '{yellow-dark}',\n\t\t\t// Danger Button\n\t\t\t'button-danger-color': '{gray-100}',\n\t\t\t'button-danger-bg': '{red}',\n\t\t\t'button-danger-color-hover': '{white}',\n\t\t\t'button-danger-bg-hover': '{red-light}',\n\t\t\t// All Line Buttons\n\t\t\t'button-line-bg': '{gray-700}',\n\t\t\t'button-line-color': '{white}',\n\t\t\t'button-line-color-hover': '{gray-100}',\n\t\t\t// Primary Line Button\n\t\t\t'button-primary-line-border': '{accent}',\n\t\t\t// Default Line Button\n\t\t\t'button-default-line-border': '{gray-600}',\n\t\t\t// Info Line Button\n\t\t\t'button-info-line-border': '{blue-dark}',\n\t\t\t// Success Line Button\n\t\t\t'button-success-line-border': '{green-dark}',\n\t\t\t// Warning Line Button\n\t\t\t'button-warning-line-border': '{yellow}',\n\t\t\t// Danger Line Button\n\t\t\t'button-danger-line-border': '{red}',\n\t\t\t// Checkboxes\n\t\t\t'checkbox-unchecked-bg': '{gray-700}',\n\t\t\t'checkbox-unchecked-border': '{gray-600}',\n\t\t\t'checkbox-checked-bg': '{accent-light}',\n\t\t\t'checkbox-checked-border': '{accent-light}',\n\t\t\t// Hotkeys\n\t\t\t'hotkey-indicator-bg': '{gray-700}',\n\t\t\t'hotkey-indicator-border': '{gray-600}',\n\t\t\t'hotkey-indicator-color': '{gray-100}',\n\t\t\t// Notifications\n\t\t\t'notification-info-bg': '{blue-light}',\n\t\t\t'notification-info-icon': '{blue-lightest}',\n\t\t\t'notification-success-bg': '{green-light}',\n\t\t\t'notification-success-icon': '{green-lightest}',\n\t\t\t'notification-warning-bg': '{yellow-light}',\n\t\t\t'notification-warning-icon': '{yellow-lightest}',\n\t\t\t'notification-danger-bg': '{red-light}',\n\t\t\t'notification-danger-icon': '{red-lightest}',\n\t\t\t'notification-question-bg': '{teal-light}',\n\t\t\t'notification-question-icon': '{teal-lightest}',\n\t\t\t// Banner\n\t\t\t'banner-info-bg': '{blue-dark}',\n\t\t\t'banner-info-color': '{gray-100}',\n\t\t\t'banner-info-border': '{blue}',\n\t\t\t// Report Editor\n\t\t\t'editor-border-inactive': '{gray-600}',\n\t\t\t'editor-border-hover': '{yellow-dark}',\n\t\t\t'editor-border-active': '{blue-light}',\n\t\t\t'editor-border-fixed': '{red}',\n\t\t\t'editor-panel-border': 'rgba(255,255,255,.25)',\n\t\t\t'editor-corner-bg-hover': '{yellow-light}',\n\t\t\t'editor-corner-color-hover': '{gray-900}',\n\t\t\t'editor-corner-bg-active': '{blue}',\n\t\t\t'editor-corner-color-active': '{white}',\n\t\t\t'editor-corner-bg-fixed': '{red-dark}',\n\t\t\t'editor-corner-color-fixed': '{white}',\n\t\t\t'editor-binding-method': '{teal-light}',\n\t\t\t'editor-binding-value': '{blue-lighter}',\n\t\t\t'editor-binding-constant': '{yellow-light}',\n\t\t\t// Reports\n\t\t\t'report-bg-primary': '{gray-900}',\n\t\t\t'report-bg-secondary': '{gray-800}',\n\t\t\t'report-bg-tertiary': '{gray-700}',\n\t\t\t'report-bg-info': '{blue-darkest}',\n\t\t\t'report-bg-danger': '{red-darkest}',\n\t\t\t'report-bg-warning': '{yellow-darkest}',\n\t\t\t'report-bg-success': '{green-darkest}',\n\t\t\t'report-text-primary': '{gray-100}',\n\t\t\t'report-text-secondary': '{gray-300}',\n\t\t\t'report-text-tertiary': '{gray-500}',\n\t\t\t'report-text-info': '{blue-light}',\n\t\t\t'report-text-danger': '{red-light}',\n\t\t\t'report-text-warning': '{yellow-light}',\n\t\t\t'report-text-success': '{green-light}',\n\t\t\t'report-draft-bg': '{yellow-darker}',\n\t\t\t'report-legacy-bg': '{gray-700}',\n\t\t\t'report-published-bg': '{green-darker}',\n\t\t\t'report-retired-bg': '{accent-darker}',\n\t\t\t'report-draft-text': '{yellow-lightest}',\n\t\t\t'report-legacy-text': '{gray-400}',\n\t\t\t'report-published-text': '{green-lightest}',\n\t\t\t'report-retired-text': '{accent-lightest}',\n\t\t\t// Update banner\n\t\t\t'banner-update-bg': '{gray-400}',\n\t\t\t'banner-update-color': '{gray-900}',\n\t\t\t'banner-update-border': '{gray-500}',\n\t\t\t'banner-update-btn-color': '{blue-darker}',\n\t\t\t// Toggle\n\t\t\t'toggle-bg': 'rgba(255,255,255,0.25)',\n\t\t\t'toggle-bg-active': '{green-light}',\n\t\t\t'toggle-handle': '{gray-100}',\n\t\t\t// Schedule\n\t\t\t'schedule-started': '{yellow-darker}',\n\t\t\t'schedule-started-icon': '{yellow-light}',\n\t\t\t'schedule-imaging-complete': '{green-darker}',\n\t\t\t'schedule-imaging-complete-icon': '{green-light}',\n\t\t\t'schedule-report-pending-approval': '{blue-darker}',\n\t\t\t'schedule-report-pending-approval-icon': '{blue-light}',\n\t\t\t'schedule-report-complete': '{purple-darker}',\n\t\t\t'schedule-report-complete-icon': '{purple-light}',\n\t\t\t'schedule-billed': '{yellow-dark}',\n\t\t\t'schedule-current-time': '{yellow-light}',\n\t\t\t// Tabs\n\t\t\t'tab-item-bg': '{gray-800}',\n\t\t\t'tab-item-hover-bg': '{gray-700}',\n\t\t\t'tab-item-color': '{gray-400}',\n\t\t\t'tab-item-active-bg': '{gray-700}',\n\t\t\t'tab-item-active-color': 'white',\n\t\t\t'tab-item-low-contrast-active-bg': '{gray-800}',\n\t\t\t'tab-item-low-contrast-active-color': '{white}',\n\t\t\t'tab-item-drop-bg': '{gray-500}',\n\t\t\t'tab-item-drop-color': '{gray-900}',\n\t\t\t'tab-item-accent-bg': '{gray-700}',\n\t\t\t'tab-item-accent-hover-bg': '{gray-600}',\n\t\t\t'tab-item-accent-color': '{gray-300}',\n\t\t\t'tab-item-accent-active-bg': '{green}',\n\t\t\t'tab-item-accent-active-color': '{green-darkest}',\n\t\t},\n\t},\n}\n","export default {\n\tkey: 'vsp',\n\tfavicon: '',\n\ticons: {\n\t\tdownload: '',\n\t},\n\tcompanyName: 'Veterinary Specialist Partners',\n\taccentColor: 'blue',\n\tusePoweredByLogo: true,\n\tloginBackgroundImage: require('@/assets/compressed/vsp-background.jpg'),\n\tloginContent: `\n\t

Welcome to the
VSP Patient Portal

\n\t\n\t\t

\n\t\t\tHow to Refer a Patient:\n\t\t

\n\t\t
    \n\t\t\t
  1. Register a Keystone Community account for your hospital.
  2. \n\t\t\t
  3. Log in with your user ID and password.
  4. \n\t\t\tFill in the prompted information for each patient and attach any diagnostics\n\t\t\t\t(radiographs, labwork, etc.) and pertinent medical records.\n\t\t\t\n\t\t\tHave your client call\n\t\t\t\t(502) 901-7990, or\n\t\t\t\t\n\t\t\t\tclick here to schedule\n\t\t\t\t.\n\t\t\tYou will receive a phone call and a copy of the visit discharge letter from VSP\n\t\t\t\twithin 24 hours of the appointment.\n\t\t\t\n\t\t
\n\t\n\t`,\n\tcssVariables: {\n\t\tlight: {\n\t\t\t// Backgrounds\n\t\t\t'primary-bg': '{gray-200}',\n\t\t\t'primary-border': '{gray-300}',\n\t\t\t'secondary-bg': '{white}',\n\t\t\t'secondary-border': '{gray-300}',\n\t\t\t'tertiary-bg': '{gray-300}',\n\t\t\t'tertiary-border': '{gray-400}',\n\t\t\t// Toolbar\n\t\t\t'primary-toolbar-logo': '{accent-light}',\n\t\t\t'primary-toolbar-logo-community': '{green-light}',\n\t\t\t'primary-toolbar-bg': '{accent-darkest}',\n\t\t\t'primary-toolbar-border': '{accent-darkest}',\n\t\t\t'primary-toolbar-color': '{white}',\n\t\t\t'toolbar-bg': '{white}',\n\t\t\t'toolbar-button-bg-hover': '{gray-300}',\n\t\t\t'toolbar-button-color-hover': '{gray-800}',\n\t\t\t'toolbar-button-bg-active': '{gray-400}',\n\t\t\t'toolbar-button-color-active': '{gray-800}',\n\t\t\t// Dividers\n\t\t\tdivider: '{gray-400}',\n\t\t\tscrollbar: '{gray-400}',\n\t\t\t'scrollbar-hover': '{gray-500}',\n\t\t\t'scrollbar-bg': '{gray-300}',\n\t\t\t// Labels\n\t\t\t'primary-label': '{gray-900}',\n\t\t\t'secondary-label': '{gray-700}',\n\t\t\t'tertiary-label': '{gray-500}',\n\t\t\t'disabled-label': '{gray-300}',\n\t\t\t'primary-contrast-label': '{white}',\n\t\t\t// Links\n\t\t\tlink: '{accent-dark}',\n\t\t\t// Navigation\n\t\t\t'nav-link': '{accent-darkest}',\n\t\t\t'nav-link-hover': '{gray-200}',\n\t\t\t'nav-link-active': '{green-dark}',\n\t\t\t// Icons\n\t\t\t'icon-default': '{gray-500}',\n\t\t\t'icon-info': '{blue}',\n\t\t\t'icon-success': '{green-dark}',\n\t\t\t'icon-warning': '{yellow}',\n\t\t\t'icon-danger': '{red}',\n\t\t\t// Cards\n\t\t\t'card-bg': '{white}',\n\t\t\t'card-border': '{gray-300}',\n\t\t\t'card-header-default-bg': '{gray-300}',\n\t\t\t'card-header-default-color': '{gray-800}',\n\t\t\t'card-header-info-bg': '{blue-darkest}',\n\t\t\t'card-header-info-color': '{gray-100}',\n\t\t\t// Tables\n\t\t\t'table-color': '{gray-800}',\n\t\t\t'table-color-hover': '{gray-700}',\n\t\t\t'table-row-border': '{gray-300}',\n\t\t\t'table-row-odd-bg': '{gray-100}',\n\t\t\t'table-row-hover-bg': '{gray-300}',\n\t\t\t'table-row-selected-bg': '{gray-300}',\n\t\t\t'table-row-selected-border': '{gray-300}',\n\t\t\t'table-row-selected-color': '{gray-900}',\n\t\t\t'table-header-shadow': '{gray-400}',\n\t\t\t// Badges\n\t\t\t'primary-badge-bg': '{accent-darker}',\n\t\t\t'primary-badge-color': '{white}',\n\t\t\t// Menus\n\t\t\t'menu-bg': '{white}',\n\t\t\t'menu-color': '{gray-800}',\n\t\t\t'menu-item-hover-bg': '{gray-300}',\n\t\t\t'menu-item-active-bg': '{gray-400}',\n\t\t\t// Viewer Menu\n\t\t\t'viewer-menu-bg': '{white}',\n\t\t\t'viewer-menu-border': '{gray-400}',\n\t\t\t'viewer-menu-item-hover-bg': '{gray-300}',\n\t\t\t// Navigation Drawers\n\t\t\t'modal-drawer-bg': '{white}',\n\t\t\t// Inputs\n\t\t\t'input-bg': '{white}',\n\t\t\t'input-border': '{gray-400}',\n\t\t\t'input-error-border': '{red}',\n\t\t\t'input-border-focus': '{accent}',\n\t\t\t// Vue Select\n\t\t\t'v-select-selected-bg': '{gray-200}',\n\t\t\t'v-select-selected-border': '{gray-400}',\n\t\t\t'v-select-selected-color': '{gray-900}',\n\t\t\t'v-select-selected-deselect': '{gray-800}',\n\t\t\t// Datepicker\n\t\t\t'date-picker-color': '{gray-900}',\n\t\t\t'date-picker-bg': '{white}',\n\t\t\t'date-picker-border': '{gray-400}',\n\t\t\t'date-picker-button-color': '{gray-800}',\n\t\t\t'date-picker-button-bg-hover': '{gray-300}',\n\t\t\t'date-picker-day-bg-hover': '{gray-300}',\n\t\t\t'date-picker-day-bg-selected': '{accent-darker}',\n\t\t\t'date-picker-day-color-hover': '{gray-900}',\n\t\t\t'date-picker-day-color-selected': '{white}',\n\t\t\t/* =========================== */\n\t\t\t/* Buttons */\n\t\t\t/* =========================== */\n\t\t\t// Primary Button\n\t\t\t'button-primary-color': '{white}',\n\t\t\t'button-primary-bg': '{accent-dark}',\n\t\t\t'button-primary-color-hover': '{gray-200}',\n\t\t\t'button-primary-bg-hover': '{accent}',\n\t\t\t// Default Button\n\t\t\t'button-default-color': '{gray-800}',\n\t\t\t'button-default-bg': '{gray-300}',\n\t\t\t'button-default-color-hover': '{gray-700}',\n\t\t\t'button-default-bg-hover': '{gray-400}',\n\t\t\t// Info Button\n\t\t\t'button-info-color': '{white}',\n\t\t\t'button-info-bg': '{accent-dark}',\n\t\t\t'button-info-color-hover': '{gray-200}',\n\t\t\t'button-info-bg-hover': '{accent}',\n\t\t\t// Success Button\n\t\t\t'button-success-color': '{white}',\n\t\t\t'button-success-bg': '{green-dark}',\n\t\t\t'button-success-color-hover': '{gray-100}',\n\t\t\t'button-success-bg-hover': '{green}',\n\t\t\t// Warning Button\n\t\t\t'button-warning-color': '{yellow-darkest}',\n\t\t\t'button-warning-bg': '{yellow-lighter}',\n\t\t\t'button-warning-color-hover': '{yellow-darkest}',\n\t\t\t'button-warning-bg-hover': '{yellow-light}',\n\t\t\t// Danger Button\n\t\t\t'button-danger-color': '{white}',\n\t\t\t'button-danger-bg': '{red-dark}',\n\t\t\t'button-danger-color-hover': '{gray-100}',\n\t\t\t'button-danger-bg-hover': '{red}',\n\t\t\t// All Line Buttons\n\t\t\t'button-line-bg': '{gray-300}',\n\t\t\t'button-line-color': '{gray-800}',\n\t\t\t'button-line-color-hover': '{gray-100}',\n\t\t\t// Primary Line Button\n\t\t\t'button-primary-line-border': '{accent-dark}',\n\t\t\t// Default Line Button\n\t\t\t'button-default-line-border': '{gray-600}',\n\t\t\t// Info Line Button\n\t\t\t'button-info-line-border': '{blue-dark}',\n\t\t\t// Success Line Button\n\t\t\t'button-success-line-border': '{green-dark}',\n\t\t\t// Warning Line Button\n\t\t\t'button-warning-line-border': '{yellow}',\n\t\t\t// Danger Line Button\n\t\t\t'button-danger-line-border': '{red-dark}',\n\t\t\t// Checkboxes\n\t\t\t'checkbox-unchecked-bg': '{white}',\n\t\t\t'checkbox-unchecked-border': '{gray-400}',\n\t\t\t'checkbox-checked-bg': '{accent-dark}',\n\t\t\t'checkbox-checked-border': '{accent-dark}',\n\t\t\t// Hotkeys\n\t\t\t'hotkey-indicator-bg': '{gray-300}',\n\t\t\t'hotkey-indicator-border': '{gray-400}',\n\t\t\t'hotkey-indicator-color': '{gray-900}',\n\t\t\t// Notifications\n\t\t\t'notification-info-bg': '{blue-light}',\n\t\t\t'notification-info-icon': '{blue-lightest}',\n\t\t\t'notification-success-bg': '{green-light}',\n\t\t\t'notification-success-icon': '{green-lightest}',\n\t\t\t'notification-warning-bg': '{yellow-light}',\n\t\t\t'notification-warning-icon': '{yellow-lightest}',\n\t\t\t'notification-danger-bg': '{red-light}',\n\t\t\t'notification-danger-icon': '{red-lightest}',\n\t\t\t'notification-question-bg': '{teal-light}',\n\t\t\t'notification-question-icon': '{teal-lightest}',\n\t\t\t// Banner\n\t\t\t'banner-info-bg': '{blue-lightest}',\n\t\t\t'banner-info-color': '{blue-darkest}',\n\t\t\t'banner-info-border': '{blue-lighter}',\n\t\t\t// Report Editor\n\t\t\t'editor-border-inactive': '{gray-500}',\n\t\t\t'editor-border-hover': '{yellow}',\n\t\t\t'editor-border-active': '{blue}',\n\t\t\t'editor-border-fixed': '{red}',\n\t\t\t'editor-panel-border': 'rgba(0,0,0,.25)',\n\t\t\t'editor-corner-bg-hover': '{yellow-lighter}',\n\t\t\t'editor-corner-color-hover': '{gray-900}',\n\t\t\t'editor-corner-bg-active': '{blue-dark}',\n\t\t\t'editor-corner-color-active': '{white}',\n\t\t\t'editor-corner-bg-fixed': '{red-dark}',\n\t\t\t'editor-corner-color-fixed': '{white}',\n\t\t\t'editor-binding-method': '{teal-dark}',\n\t\t\t'editor-binding-value': '{blue}',\n\t\t\t'editor-binding-constant': '{yellow-dark}',\n\t\t\t// Reports\n\t\t\t'report-bg-primary': '{gray-200}',\n\t\t\t'report-bg-secondary': '{white}',\n\t\t\t'report-bg-tertiary': '{gray-300}',\n\t\t\t'report-bg-info': '{blue-lighter}',\n\t\t\t'report-bg-danger': '{red-lighter}',\n\t\t\t'report-bg-warning': '{yellow-lighter}',\n\t\t\t'report-bg-success': '{green-lighter}',\n\t\t\t'report-text-primary': '{gray-900}',\n\t\t\t'report-text-secondary': '{gray-700}',\n\t\t\t'report-text-tertiary': '{gray-500}',\n\t\t\t'report-text-info': '{blue-dark}',\n\t\t\t'report-text-danger': '{red-dark}',\n\t\t\t'report-text-warning': '{yellow-dark}',\n\t\t\t'report-text-success': '{green-dark}',\n\t\t\t'report-draft-bg': '{yellow-lighter}',\n\t\t\t'report-legacy-bg': '{gray-200}',\n\t\t\t'report-published-bg': '{green-lighter}',\n\t\t\t'report-retired-bg': '{accent-lighter}',\n\t\t\t'report-draft-text': '{yellow-darkest}',\n\t\t\t'report-legacy-text': '{gray-600}',\n\t\t\t'report-published-text': '{green-darkest}',\n\t\t\t'report-retired-text': '{accent-darkest}',\n\t\t\t// Update banner\n\t\t\t'banner-update-bg': '{gray-700}',\n\t\t\t'banner-update-color': '{white}',\n\t\t\t'banner-update-border': '{gray-600}',\n\t\t\t'banner-update-btn-color': '{blue-lightest}',\n\t\t\t// Toggle\n\t\t\t'toggle-bg': 'rgba(0,0,0,0.25)',\n\t\t\t'toggle-bg-active': '{green}',\n\t\t\t'toggle-handle': '{white}',\n\t\t},\n\t\tdark: {\n\t\t\t// Backgrounds\n\t\t\t'primary-bg': '{gray-900}',\n\t\t\t'primary-border': '{gray-700}',\n\t\t\t'secondary-bg': '{gray-800}',\n\t\t\t'secondary-border': '{gray-700}',\n\t\t\t'tertiary-bg': '{gray-700}',\n\t\t\t'tertiary-border': '{gray-500}',\n\t\t\t// Toolbar\n\t\t\t'primary-toolbar-logo': '{accent-light}',\n\t\t\t'primary-toolbar-logo-community': '{green-light}',\n\t\t\t'primary-toolbar-bg': '{accent-darkest}',\n\t\t\t'primary-toolbar-border': '{gray-600}',\n\t\t\t'primary-toolbar-color': '{white}',\n\t\t\t'toolbar-bg': '{gray-900}',\n\t\t\t'toolbar-button-bg-hover': '{gray-700}',\n\t\t\t'toolbar-button-color-hover': '{gray-100}',\n\t\t\t'toolbar-button-bg-active': '{gray-700}',\n\t\t\t'toolbar-button-color-active': '{gray-100}',\n\t\t\t// Dividers\n\t\t\tdivider: '{gray-600}',\n\t\t\tscrollbar: '{gray-600}',\n\t\t\t'scrollbar-hover': '{gray-500}',\n\t\t\t'scrollbar-bg': '{gray-700}',\n\t\t\t// Labels\n\t\t\t'primary-label': '{gray-100}',\n\t\t\t'secondary-label': '{gray-300}',\n\t\t\t'tertiary-label': '{gray-500}',\n\t\t\t'disabled-label': '{gray-700}',\n\t\t\t'primary-contrast-label': '{white}',\n\t\t\t// Links\n\t\t\tlink: '{accent-lighter}',\n\t\t\t// Navigation\n\t\t\t'nav-link': '{gray-400}',\n\t\t\t'nav-link-hover': '{gray-700}',\n\t\t\t'nav-link-active': '{green-light}',\n\t\t\t// Icons\n\t\t\t'icon-default': '{gray-500}',\n\t\t\t'icon-info': '{blue-light}',\n\t\t\t'icon-success': '{green-light}',\n\t\t\t'icon-warning': '{yellow-light}',\n\t\t\t'icon-danger': '{red-lighter}',\n\t\t\t// Cards\n\t\t\t'card-bg': '{gray-800}',\n\t\t\t'card-border': '{gray-700}',\n\t\t\t'card-header-default-bg': '{gray-700}',\n\t\t\t'card-header-default-color': '{gray-200}',\n\t\t\t'card-header-info-bg': '{blue-darkest}',\n\t\t\t'card-header-info-color': '{gray-100}',\n\t\t\t// Tables\n\t\t\t'table-color': '{gray-200}',\n\t\t\t'table-color-hover': '{gray-200}',\n\t\t\t'table-row-border': '{gray-700}',\n\t\t\t'table-row-odd-bg': '{gray-700}',\n\t\t\t'table-row-hover-bg': '{gray-900}',\n\t\t\t'table-row-selected-bg': '{gray-900}',\n\t\t\t'table-row-selected-border': '{gray-800}',\n\t\t\t'table-row-selected-color': '{gray-100}',\n\t\t\t'table-header-shadow': '{gray-600}',\n\t\t\t// Badges\n\t\t\t'primary-badge-bg': '{accent-lighter}',\n\t\t\t'primary-badge-color': '{accent-darkest}',\n\t\t\t// Menus\n\t\t\t'menu-bg': '{gray-800}',\n\t\t\t'menu-color': '{gray-100}',\n\t\t\t'menu-item-hover-bg': '{gray-700}',\n\t\t\t'menu-item-active-bg': '{gray-900}',\n\t\t\t// Viewer Menu\n\t\t\t'viewer-menu-bg': '{gray-700}',\n\t\t\t'viewer-menu-border': '{gray-600}',\n\t\t\t'viewer-menu-item-hover-bg': '{gray-600}',\n\t\t\t// Navigation Drawers\n\t\t\t'modal-drawer-bg': '{gray-900}',\n\t\t\t// Inputs\n\t\t\t'input-bg': '{gray-700}',\n\t\t\t'input-border': '{gray-600}',\n\t\t\t'input-error-border': '{red-light}',\n\t\t\t'input-border-focus': '{accent-lighter}',\n\t\t\t// Vue Select\n\t\t\t'v-select-selected-bg': '{accent-light}',\n\t\t\t'v-select-selected-border': '{accent-light}',\n\t\t\t'v-select-selected-deselect': '{gray-100}',\n\t\t\t'v-select-selected-color': '{white}',\n\t\t\t// Datepicker\n\t\t\t'date-picker-color': '{white}',\n\t\t\t'date-picker-bg': '{gray-900}',\n\t\t\t'date-picker-border': '{gray-700}',\n\t\t\t'date-picker-button-color': '{gray-200}',\n\t\t\t'date-picker-button-bg-hover': '{gray-800}',\n\t\t\t'date-picker-day-bg-hover': '{gray-700}',\n\t\t\t'date-picker-day-color-hover': '{white}',\n\t\t\t'date-picker-day-bg-selected': '{accent}',\n\t\t\t'date-picker-day-color-selected': '{white}',\n\t\t\t/* =========================== */\n\t\t\t/* Buttons */\n\t\t\t/* =========================== */\n\t\t\t// Primary Button\n\t\t\t'button-primary-color': '{white}',\n\t\t\t'button-primary-bg': '{accent}',\n\t\t\t'button-primary-color-hover': '{gray-100}',\n\t\t\t'button-primary-bg-hover': '{accent-dark}',\n\t\t\t// Default Button\n\t\t\t'button-default-color': '{white}',\n\t\t\t'button-default-bg': '{gray-700}',\n\t\t\t'button-default-color-hover': '{white}',\n\t\t\t'button-default-bg-hover': '{gray-600}',\n\t\t\t// Info Button\n\t\t\t'button-info-color': '{accent-darkest}',\n\t\t\t'button-info-bg': '{accent-light}',\n\t\t\t'button-info-color-hover': '{gray-100}',\n\t\t\t'button-info-bg-hover': '{accent}',\n\t\t\t// Success Button\n\t\t\t'button-success-color': '{green-darkest}',\n\t\t\t'button-success-bg': '{green}',\n\t\t\t'button-success-color-hover': '{gray-900}',\n\t\t\t'button-success-bg-hover': '{green-light}',\n\t\t\t// Warning Button\n\t\t\t'button-warning-color': '{yellow-lightest}',\n\t\t\t'button-warning-bg': '{yellow-darker}',\n\t\t\t'button-warning-color-hover': '{white}',\n\t\t\t'button-warning-bg-hover': '{yellow-dark}',\n\t\t\t// Danger Button\n\t\t\t'button-danger-color': '{gray-100}',\n\t\t\t'button-danger-bg': '{red}',\n\t\t\t'button-danger-color-hover': '{white}',\n\t\t\t'button-danger-bg-hover': '{red-light}',\n\t\t\t// All Line Buttons\n\t\t\t'button-line-bg': '{gray-700}',\n\t\t\t'button-line-color': '{white}',\n\t\t\t'button-line-color-hover': '{gray-100}',\n\t\t\t// Primary Line Button\n\t\t\t'button-primary-line-border': '{accent}',\n\t\t\t// Default Line Button\n\t\t\t'button-default-line-border': '{gray-600}',\n\t\t\t// Info Line Button\n\t\t\t'button-info-line-border': '{blue-dark}',\n\t\t\t// Success Line Button\n\t\t\t'button-success-line-border': '{green-dark}',\n\t\t\t// Warning Line Button\n\t\t\t'button-warning-line-border': '{yellow}',\n\t\t\t// Danger Line Button\n\t\t\t'button-danger-line-border': '{red}',\n\t\t\t// Checkboxes\n\t\t\t'checkbox-unchecked-bg': '{gray-700}',\n\t\t\t'checkbox-unchecked-border': '{gray-600}',\n\t\t\t'checkbox-checked-bg': '{accent-light}',\n\t\t\t'checkbox-checked-border': '{accent-light}',\n\t\t\t// Hotkeys\n\t\t\t'hotkey-indicator-bg': '{gray-700}',\n\t\t\t'hotkey-indicator-border': '{gray-600}',\n\t\t\t'hotkey-indicator-color': '{gray-100}',\n\t\t\t// Notifications\n\t\t\t'notification-info-bg': '{blue-light}',\n\t\t\t'notification-info-icon': '{blue-lightest}',\n\t\t\t'notification-success-bg': '{green-light}',\n\t\t\t'notification-success-icon': '{green-lightest}',\n\t\t\t'notification-warning-bg': '{yellow-light}',\n\t\t\t'notification-warning-icon': '{yellow-lightest}',\n\t\t\t'notification-danger-bg': '{red-light}',\n\t\t\t'notification-danger-icon': '{red-lightest}',\n\t\t\t'notification-question-bg': '{teal-light}',\n\t\t\t'notification-question-icon': '{teal-lightest}',\n\t\t\t// Banner\n\t\t\t'banner-info-bg': '{blue-dark}',\n\t\t\t'banner-info-color': '{gray-100}',\n\t\t\t'banner-info-border': '{blue}',\n\t\t\t// Report Editor\n\t\t\t'editor-border-inactive': '{gray-600}',\n\t\t\t'editor-border-hover': '{yellow-dark}',\n\t\t\t'editor-border-active': '{blue-light}',\n\t\t\t'editor-border-fixed': '{red}',\n\t\t\t'editor-panel-border': 'rgba(255,255,255,.25)',\n\t\t\t'editor-corner-bg-hover': '{yellow-light}',\n\t\t\t'editor-corner-color-hover': '{gray-900}',\n\t\t\t'editor-corner-bg-active': '{blue}',\n\t\t\t'editor-corner-color-active': '{white}',\n\t\t\t'editor-corner-bg-fixed': '{red-dark}',\n\t\t\t'editor-corner-color-fixed': '{white}',\n\t\t\t'editor-binding-method': '{teal-light}',\n\t\t\t'editor-binding-value': '{blue-lighter}',\n\t\t\t'editor-binding-constant': '{yellow-light}',\n\t\t\t// Reports\n\t\t\t'report-bg-primary': '{gray-900}',\n\t\t\t'report-bg-secondary': '{gray-800}',\n\t\t\t'report-bg-tertiary': '{gray-700}',\n\t\t\t'report-bg-info': '{blue-darkest}',\n\t\t\t'report-bg-danger': '{red-darkest}',\n\t\t\t'report-bg-warning': '{yellow-darkest}',\n\t\t\t'report-bg-success': '{green-darkest}',\n\t\t\t'report-text-primary': '{gray-100}',\n\t\t\t'report-text-secondary': '{gray-300}',\n\t\t\t'report-text-tertiary': '{gray-500}',\n\t\t\t'report-text-info': '{blue-light}',\n\t\t\t'report-text-danger': '{red-light}',\n\t\t\t'report-text-warning': '{yellow-light}',\n\t\t\t'report-text-success': '{green-light}',\n\t\t\t'report-draft-bg': '{yellow-darker}',\n\t\t\t'report-legacy-bg': '{gray-700}',\n\t\t\t'report-published-bg': '{green-darker}',\n\t\t\t'report-retired-bg': '{accent-darker}',\n\t\t\t'report-draft-text': '{yellow-lightest}',\n\t\t\t'report-legacy-text': '{gray-400}',\n\t\t\t'report-published-text': '{green-lightest}',\n\t\t\t'report-retired-text': '{accent-lightest}',\n\t\t\t// Update banner\n\t\t\t'banner-update-bg': '{gray-400}',\n\t\t\t'banner-update-color': '{gray-900}',\n\t\t\t'banner-update-border': '{gray-500}',\n\t\t\t'banner-update-btn-color': '{blue-darker}',\n\t\t\t// Toggle\n\t\t\t'toggle-bg': 'rgba(255,255,255,0.25)',\n\t\t\t'toggle-bg-active': '{green-light}',\n\t\t\t'toggle-handle': '{gray-100}',\n\t\t},\n\t},\n}\n","import mapValues from 'lodash/mapValues'\nimport colors from './colors'\nimport asteris from './asteris'\nimport vsp from './vsp'\n\nfunction fillColors(variables, accentColor) {\n\tvariables = mapValues(variables, v => {\n\t\tv = v.toString()\n\t\t// Replace 'primary' with color name\n\t\tv = v.replace('accent', accentColor)\n\t\t// Replace color names with values\n\t\tcolors.forEach(c => {\n\t\t\tv = v.replace(`{${c.name}}`, c.color)\n\t\t})\n\t\treturn v\n\t})\n\treturn variables\n}\n\nlet themes = {\n\tasteris,\n\tvsp,\n}\n\n// Fill in css variables for light and dark modes\nthemes = mapValues(themes, v => {\n\tv.cssVariables.light = fillColors(v.cssVariables.light, v.accentColor)\n\tv.cssVariables.dark = fillColors(v.cssVariables.dark, v.accentColor)\n\treturn v\n})\n\nexport default themes\n","import api from '@services/api'\nimport themes from './themes'\nimport { eventBus } from '@services/eventBus'\nimport storage from '@services/storage'\n\n// Mutation types\nconst SET_ACTIVE_THEME = 'SET_ACTIVE_THEME'\n\nconst defaultThemeSettings = {\n\tcompany: 'asteris',\n\tmode: 'light',\n}\nconst cachedThemeSettings = JSON.parse(storage.getItem('themeSettings')) || {}\n\nconst state = {\n\tcompany: cachedThemeSettings.company || defaultThemeSettings.company,\n\tmode: cachedThemeSettings.mode || defaultThemeSettings.mode,\n\ttheme: {},\n}\n\nconst getters = {\n\tthemeIsDark: state => state.mode === 'dark',\n}\n\nconst actions = {\n\t// Fetches and applies the theme settings from the server\n\tasync fetchThemeForUser({ dispatch }) {\n\t\t// Fetch the theme settings\n\t\tconst response = await api.user.getThemeSettings()\n\t\tconst theme = response.data\n\t\t// Resolve the theme settings\n\t\tconst company = theme.company || defaultThemeSettings.company\n\t\tconst mode = theme.mode || defaultThemeSettings.mode\n\t\t// Assign the theme values\n\t\tdispatch('setTheme', { company, mode, applyNow: false })\n\t},\n\tsetThemeAndBroadcast({ dispatch }, payload) {\n\t\tconst type = 'setTheme'\n\t\tdispatch(type, payload)\n\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type, payload })\n\t},\n\t// Update the current user theme\n\tasync setTheme({ commit, dispatch, state, rootGetters }, { company, mode, applyNow = true } = {}) {\n\t\tcompany = company || state.company\n\t\tmode = mode || state.mode\n\t\tif (!themes[company]) return\n\t\tcommit(SET_ACTIVE_THEME, { company, mode, theme: themes[company] })\n\t\tif (applyNow) dispatch('applyTheme', { company, mode })\n\t\tstorage.setItem('themeSettings', JSON.stringify({ company, mode }))\n\t\tif (rootGetters.isAuthenticated) await api.user.updateThemeSettings({ company, mode })\n\t},\n\t// Apply theme to css variables\n\tapplyTheme({ state }, { company, mode, root, unsetTheme = false } = {}) {\n\t\tcompany = company || state.company\n\t\tmode = mode || state.mode\n\t\troot = root || document.documentElement\n\t\tconst theme = themes[company]\n\t\tconst isDark = mode === 'dark'\n\t\tconst { light, dark } = theme.cssVariables\n\t\tlet variables = isDark ? dark : light\n\t\t// Mix-in the default variables if needed\n\t\tconst defaultTheme = themes[defaultThemeSettings.company]\n\t\tif (theme !== defaultTheme) {\n\t\t\tconst { light: defLight, dark: defDark } = defaultTheme.cssVariables\n\t\t\tconst defVariables = isDark ? defDark : defLight\n\t\t\tvariables = { ...defVariables, ...variables }\n\t\t}\n\t\tfor (const variable in variables) {\n\t\t\tif (!unsetTheme) {\n\t\t\t\troot.style.setProperty('--' + variable, variables[variable])\n\t\t\t} else {\n\t\t\t\troot.style.removeProperty('--' + variable)\n\t\t\t}\n\t\t}\n\t\tdocument.body.classList.remove('dark')\n\t\tdocument.body.classList.remove('light')\n\t\tdocument.body.classList.add(mode)\n\t},\n}\n\nconst mutations = {\n\t[SET_ACTIVE_THEME](state, { company, mode, theme }) {\n\t\tstate.company = company\n\t\tstate.mode = mode === 'dark' ? 'dark' : 'light'\n\t\tstate.theme = theme\n\t},\n}\n\nexport default {\n\tstate,\n\tgetters,\n\tactions,\n\tmutations,\n}\n","import * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\n\n/**\n * Sits on top of cornerstone tool's `setToolActive` to allow us to\n * tack on some additional analytics\n *\n * @export @public @method\n * @param {*} { state, commit }\n * @param {String} { name }\n */\nexport default function({ commit }, { alias, options }) {\n\tconst defaultOptions = {\n\t\tmouseButtonMask: 1,\n\t\tisTouchActive: true,\n\t}\n\toptions = Object.assign({}, defaultOptions, options)\n\t// Clear the previous tool binding\n\tcornerstoneTools.setToolActive(alias, { mouseButtonMask: [] })\n\t// Set the new binding\n\tcornerstoneTools.setToolActive(alias, options)\n\tcommit('UPDATE_TOOL_BINDINGS')\n\t// ga.event('Viewer', 'Set Active Tool', name)\n}\n","import * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { findImageUrlFromImage } from '@utils/urlUtility'\nimport ViewerTool from '@store/models/viewerTool'\nimport setActiveTool from './setActiveTool'\nimport { eventBus } from '@services/eventBus'\nimport isMobileOS from '@utils/isMobileOS'\nimport { downloadFile } from '@services/api'\nimport studyData from '@services/studyData'\n\nconst tools = [\n\t{\n\t\tclassName: 'AstCalibration',\n\t\tinstanceName: 'AstCalibration',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstRectangleRoi',\n\t\tinstanceName: 'AstRectangleRoi',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstCircleRoi',\n\t\tinstanceName: 'AstCircleRoi',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstEllipticalRoi',\n\t\tinstanceName: 'AstEllipticalRoi',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstCrossPoint',\n\t\tinstanceName: 'AstCrossPoint',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstEraser',\n\t\tinstanceName: 'AstEraser',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstHipDysplasia',\n\t\tinstanceName: 'AstHipDysplasia',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstLengthAngle',\n\t\tinstanceName: 'AstLengthAngle',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstOrientationMarkers',\n\t\tinstanceName: 'AstOrientationMarkers',\n\t\tisCustom: true,\n\t\tconfig: {\n\t\t\tconfiguration: {\n\t\t\t\tdrawAllMarkers: true,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tclassName: 'AstPennHip',\n\t\tinstanceName: 'AstPennHip',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstTplo',\n\t\tinstanceName: 'AstTplo',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstTta',\n\t\tinstanceName: 'AstTta',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstVertebralHeart',\n\t\tinstanceName: 'AstVertebralHeart',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstText',\n\t\tinstanceName: 'AstText',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstArrowAnnotate',\n\t\tinstanceName: 'AstArrowAnnotate',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstAngle',\n\t\tinstanceName: 'AstAngle',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstProbe',\n\t\tinstanceName: 'AstProbe',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'MagnifyTool',\n\t\tinstanceName: 'Magnify',\n\t\tconfig: {\n\t\t\tconfiguration: {\n\t\t\t\tmagnifySize: parseInt(350, 10),\n\t\t\t\tmagnificationLevel: 1.5,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tclassName: 'PanTool',\n\t\tinstanceName: 'Pan',\n\t},\n\t{\n\t\tclassName: 'PanMultiTouchTool',\n\t\tinstanceName: 'PanMultiTouch',\n\t\tconfig: { configuration: { touchPointers: 2 } },\n\t},\n\t{\n\t\tclassName: 'AstReferenceLines',\n\t\tinstanceName: 'ReferenceLines',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'AstRotateTool',\n\t\tinstanceName: 'Rotate',\n\t\tisCustom: true,\n\t},\n\t{\n\t\tclassName: 'StackScrollTool',\n\t\tinstanceName: 'StackScroll',\n\t},\n\t{\n\t\tclassName: 'StackScrollMouseWheelTool',\n\t\tinstanceName: 'StackScrollMouseWheel',\n\t},\n\t{\n\t\tclassName: 'WwwcTool',\n\t\tinstanceName: 'Wwwc',\n\t},\n\t{\n\t\tclassName: 'ZoomTool',\n\t\tinstanceName: 'Zoom',\n\t\tconfig: {\n\t\t\tdefaultStrategy: 'zoomToCenter',\n\t\t\tconfiguration: {\n\t\t\t\tminScale: 0.05,\n\t\t\t\tmaxScale: 20.0,\n\t\t\t\tinvert: true,\n\t\t\t\tpreventZoomOutsideImage: true,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tclassName: 'ZoomMouseWheelTool',\n\t\tinstanceName: 'ZoomMouseWheel',\n\t\tconfig: {\n\t\t\tconfiguration: {\n\t\t\t\tminScale: 0.05,\n\t\t\t\tmaxScale: 20.0,\n\t\t\t},\n\t\t},\n\t},\n\t{\n\t\tclassName: 'ZoomTouchPinchTool',\n\t\tinstanceName: 'ZoomTouchPinch',\n\t\tconfig: {\n\t\t\tconfiguration: {\n\t\t\t\tminScale: 0.05,\n\t\t\t\tmaxScale: 20.0,\n\t\t\t},\n\t\t},\n\t},\n]\n\nconst toolButtons = [\n\tnew ViewerTool({\n\t\tname: 'WwwcTool',\n\t\talias: 'Wwwc',\n\t\tlabel: 'Levels',\n\t\ttitle: 'Window Levels',\n\t\tgroups: ['levels'],\n\t\ticonName: 'brightness-6',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'ZoomTool',\n\t\talias: 'Zoom',\n\t\tlabel: 'Zoom',\n\t\ttitle: 'Zoom Image',\n\t\tgroups: ['zoom'],\n\t\ticonName: 'magnify',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'PanTool',\n\t\talias: 'Pan',\n\t\tlabel: 'Pan',\n\t\ttitle: 'Pan Image',\n\t\tgroups: [],\n\t\ticonName: 'arrow-all',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'MagnifyTool',\n\t\talias: 'Magnify',\n\t\tlabel: 'Magnify',\n\t\ttitle: 'Magnify Image',\n\t\tgroups: ['zoom'],\n\t\ticonName: 'eye-plus-outline',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstLengthAngle',\n\t\talias: 'AstLengthAngle',\n\t\tlabel: 'Length',\n\t\ttitle: 'Length',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-line',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstRectangleRoi',\n\t\talias: 'AstRectangleRoi',\n\t\tlabel: 'Rect',\n\t\ttitle: 'Rectangle',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-rectangle',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstCircleRoi',\n\t\talias: 'AstCircleRoi',\n\t\tlabel: 'Circle',\n\t\ttitle: 'Circle',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-circle-variant',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstEllipticalRoi',\n\t\talias: 'AstEllipticalRoi',\n\t\tlabel: 'Ellipse',\n\t\ttitle: 'Ellipse',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-ellipse',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstAngle',\n\t\talias: 'AstAngle',\n\t\tlabel: 'Angle',\n\t\ttitle: 'Angle',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'angle',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstText',\n\t\talias: 'AstText',\n\t\tlabel: 'Text',\n\t\ttitle: 'Text Annotation',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'format-text',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstArrowAnnotate',\n\t\talias: 'AstArrowAnnotate',\n\t\tlabel: 'Arrow',\n\t\ttitle: 'Arrow Annotation',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'arrow-bottom-left',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstEraser',\n\t\talias: 'AstEraser',\n\t\tlabel: 'Eraser',\n\t\ttitle: 'Eraser',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'eraser',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstCalibration',\n\t\talias: 'AstCalibration',\n\t\tlabel: 'Calibrate',\n\t\ttitle: 'Calibration',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'ruler',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstVertebralHeart',\n\t\talias: 'AstVertebralHeart',\n\t\tlabel: 'VHS',\n\t\ttitle: 'Vertebral Heart Score',\n\t\tgroups: ['surgical'],\n\t\ticonName: 'vertebral-heart',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstTplo',\n\t\talias: 'AstTplo',\n\t\tlabel: 'TPLO',\n\t\ttitle: 'Tibial Plateau Leveling Osteotomy',\n\t\tgroups: ['surgical'],\n\t\ticonName: 'tplo',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstTta',\n\t\talias: 'AstTta',\n\t\tlabel: 'TTA',\n\t\ttitle: 'Tibial Tuberosity Advancement',\n\t\tgroups: ['surgical'],\n\t\ticonName: 'tta',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstHipDysplasia',\n\t\talias: 'AstHipDysplasia',\n\t\tlabel: 'Hip D',\n\t\ttitle: 'Hip Dysplasia Measurement',\n\t\tgroups: ['surgical'],\n\t\ticonName: 'hip-dysplasia',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstPennHip',\n\t\talias: 'AstPennHip',\n\t\tlabel: 'DI',\n\t\ttitle: 'Distraction Index (PennHIP)',\n\t\tgroups: ['surgical'],\n\t\ticonName: 'pennhip',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstVPop',\n\t\talias: 'AstVPop',\n\t\tlabel: 'vPop',\n\t\ttitle: 'vPOP Orthopaedic Planning',\n\t\tgroups: ['surgical'],\n\t\ticonName: 'vpop',\n\t\trefresh(getters) {\n\t\t\tthis.disabled = !getters.activeStudy || !getters.activeStudy.isArchived\n\t\t\tthis.hidden = !getters.permissions.vPopExport\n\t\t},\n\t\tcommand(activeSeries, activeImage, activeStudy) {\n\t\t\tif (!activeStudy.isArchived) return studyData.showArchivingTip()\n\t\t\t// Build the image url\n\t\t\tconst imageUrl = findImageUrlFromImage({ ...activeImage, imageType: 'JpegDicom' }, activeSeries, true)\n\t\t\tconst url = `vpop://open-image-url?location=${imageUrl}`\n\t\t\tif (isMobileOS()) {\n\t\t\t\twindow.open(url, '_blank')\n\t\t\t} else {\n\t\t\t\tdownloadFile(url)\n\t\t\t}\n\t\t},\n\t}),\n\tnew ViewerTool({\n\t\tname: 'StackScrollTool',\n\t\talias: 'StackScroll',\n\t\tlabel: 'Scroll',\n\t\ttitle: 'Stack Scroll',\n\t\tgroups: ['scroll'],\n\t\ticonName: 'layers',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstCrossPoint',\n\t\talias: 'AstCrossPoint',\n\t\tlabel: 'Point',\n\t\ttitle: 'Cross Point',\n\t\tgroups: ['scroll'],\n\t\ticonName: 'crosshairs',\n\t}),\n\tnew ViewerTool({\n\t\tname: 'AstProbe',\n\t\talias: 'AstProbe',\n\t\tlabel: 'Probe',\n\t\ttitle: 'Probe',\n\t\tgroups: ['scroll'],\n\t\ticonName: 'eyedropper-variant',\n\t\trefresh({ activeSeries, activeCanvas }) {\n\t\t\tlet disabledReason = ''\n\t\t\tif (!activeSeries || !activeSeries.modality || activeSeries.modality.toLowerCase() !== 'ct') {\n\t\t\t\tdisabledReason = 'CT series required'\n\t\t\t} else if (activeCanvas.dom) {\n\t\t\t\ttry {\n\t\t\t\t\tconst image = cornerstone.getImage(activeCanvas.dom)\n\t\t\t\t\tif (image && !image.isDicom) disabledReason = 'DICOM rendering required'\n\t\t\t\t} catch {}\n\t\t\t}\n\t\t\tthis.disabledReason = disabledReason\n\t\t\tthis.disabled = !!disabledReason\n\t\t},\n\t}),\n\tnew ViewerTool({\n\t\tname: 'RotateTool',\n\t\talias: 'Rotate',\n\t\tlabel: 'Roll',\n\t\ttitle: 'Roll View',\n\t\tgroups: [],\n\t\ticonName: 'roll-tool',\n\t}),\n]\n\n// Could probably Object.assign these to merge.\nexport default {\n\tstate: {\n\t\ttools,\n\t\ttoolButtons,\n\t\tinputDevices: [],\n\t},\n\tgetters: {\n\t\tavailableTools(state, getters) {\n\t\t\tconst { activeClinic } = getters\n\t\t\treturn state.toolButtons\n\t\t\t\t.map(tool => tool.resolve(getters))\n\t\t\t\t.filter(tool => {\n\t\t\t\t\tif (tool.hidden) return false\n\t\t\t\t\tif (!tool.isOptionalFeature) return true\n\t\t\t\t\tif (!activeClinic || !activeClinic.optionalFeatures) return false\n\t\t\t\t\treturn activeClinic.optionalFeatures.includes(tool.name)\n\t\t\t\t})\n\t\t},\n\t\tisRightClickHandledByTool(state, getters) {\n\t\t\tconst isBoundToRightButton = ({ binding }) => /(^R)|LR|MR/g.test(binding) // excludes L+R, etc.\n\t\t\tconst boundTool = getters.availableTools.find(isBoundToRightButton)\n\t\t\tif (!boundTool) return false\n\t\t\t// prettier-ignore\n\t\t\tconst toolsWithSingleClickActions = [\n\t\t\t\t'AstCircleRoi',\n\t\t\t\t'AstArrowAnnotate',\n\t\t\t\t'AstEraser',\n\t\t\t\t'AstCrossPoint',\n\t\t\t]\n\t\t\treturn toolsWithSingleClickActions.includes(boundTool.name)\n\t\t},\n\t},\n\tmutations: {\n\t\tADD_INPUT_DEVICE(state, device) {\n\t\t\tconst devices = state.inputDevices.slice()\n\t\t\tdevices.push(device)\n\t\t\tstate.inputDevices = devices\n\t\t},\n\t\tUPDATE_TOOL_BINDINGS: state => {\n\t\t\tconst toolButtons = state.toolButtons.slice()\n\t\t\ttoolButtons.forEach(tool => {\n\t\t\t\ttool.binding = ''\n\t\t\t\tconst globalTool = cornerstoneTools.store.state.globalTools[tool.alias]\n\t\t\t\tif (globalTool && globalTool.activeBindings) {\n\t\t\t\t\tconst availableBindings = globalTool.activeBindings.filter(binding => {\n\t\t\t\t\t\t// Show all bindings if no input devices have been detected yet\n\t\t\t\t\t\tif (!state.inputDevices.length) return true\n\t\t\t\t\t\t// Show mouse bindings if mouse detected; show touch bindings if touch detected\n\t\t\t\t\t\tconst deviceMatchesBinding = device => binding.toLowerCase().includes(device)\n\t\t\t\t\t\treturn state.inputDevices.some(deviceMatchesBinding)\n\t\t\t\t\t})\n\t\t\t\t\ttool.binding = abbreviateBinding(availableBindings)\n\t\t\t\t}\n\t\t\t})\n\t\t\tstate.toolButtons = toolButtons\n\t\t},\n\t},\n\tactions: {\n\t\tsetActiveToolAndBroadcast({ dispatch }, payload) {\n\t\t\tconst type = 'setActiveTool'\n\t\t\tdispatch(type, payload)\n\t\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type, payload })\n\t\t},\n\t\tsetActiveTool,\n\t\tlistenForInputDevices({ commit }) {\n\t\t\twindow.addEventListener('mousemove', onMouseMove)\n\t\t\twindow.addEventListener('mousedown', onMouseDown)\n\t\t\twindow.addEventListener('touchstart', onTouchStart)\n\n\t\t\tfunction onMouseMove(event) {\n\t\t\t\tif (event.movementX || event.movementY) addMouse()\n\t\t\t}\n\t\t\tfunction onMouseDown(event) {\n\t\t\t\t// In case of touch setups with secondary button capabilities of a mouse\n\t\t\t\tconst isMiddleOrRight = [2, 4].includes(event.buttons) || [2, 3].includes(event.which)\n\t\t\t\tif (isMiddleOrRight) addMouse()\n\t\t\t}\n\t\t\tfunction addMouse() {\n\t\t\t\tcommit('ADD_INPUT_DEVICE', 'mouse')\n\t\t\t\tcommit('UPDATE_TOOL_BINDINGS')\n\t\t\t\twindow.removeEventListener('mousemove', onMouseMove)\n\t\t\t\twindow.removeEventListener('mousedown', onMouseDown)\n\t\t\t}\n\t\t\tfunction onTouchStart() {\n\t\t\t\tcommit('ADD_INPUT_DEVICE', 'touch')\n\t\t\t\tcommit('UPDATE_TOOL_BINDINGS')\n\t\t\t\twindow.removeEventListener('touchstart', onTouchStart)\n\t\t\t}\n\t\t},\n\t},\n}\n\nfunction abbreviateBinding(bindings) {\n\tif (!bindings || !bindings.length) return\n\tconst abbreviations = {\n\t\t'Mouse-1': 'L',\n\t\t'Mouse-2': 'R',\n\t\t'Mouse-3': 'L+R',\n\t\t'Mouse-4': 'M',\n\t\t'Mouse-5': 'L+M',\n\t\t'Mouse-6': 'M+R',\n\t\t'Mouse-7': 'L+M+R',\n\t\tTouch: ' ',\n\t}\n\treturn bindings.map(binding => abbreviations[binding]).join('')\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dialog\"},[_c('modal-dialog',{attrs:{\"actions\":_vm.actions,\"title\":\"New Update Available!\",\"close-text\":\"Dismiss\",\"show-close-header\":true},on:{\"close\":function($event){return _vm.resolve(false)},\"confirm\":function($event){return _vm.resolve(true)}},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('svg-icon',{attrs:{\"icon\":\"inbox-download\",\"size\":\"1.3rem\"}})]},proxy:true}])},[_vm._v(\"\\n\\t\\tYou can choose to \"+_vm._s(_vm.actionText)+\" now to get the latest version, or dismiss and update at a\\n\\t\\tlater time.\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./UpdateAppDlg.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!./UpdateAppDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UpdateAppDlg.vue?vue&type=template&id=9ce48916&scoped=true\"\nimport script from \"./UpdateAppDlg.vue?vue&type=script&lang=js\"\nexport * from \"./UpdateAppDlg.vue?vue&type=script&lang=js\"\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 \"9ce48916\",\n null\n \n)\n\nexport default component.exports","import api from '@services/api'\nimport { compareVersions } from '@utils/versionCompare.js'\nimport { openReleaseNotes } from '@dialogs/ReleaseNotes.vue'\nimport { showConfirm } from '@dialogs/ConfirmDlg.vue'\nimport { showAppUpdateAvailableDlg } from '@dialogs/UpdateAppDlg'\nimport { omniDesktop } from '@/electron/omniDesktop'\nimport { eventBus } from '@services/eventBus'\nimport reportService from '@services/reportService'\nimport workflow from '@services/workflow'\nimport router from '@router'\n\n/**\n * This state is intended to capture app-wide, session length settings.\n */\nconst perPageOptions = [10, 25, 50]\n\n// Nag user every hour when update is available\nconst displayUpdateAppBannerWaitTimeMs = 3600000\n\nconst state = {\n\tupdateAppBannerVisible: false,\n\tdidUserDismiss: false,\n\tcurrentPage: {},\n\tresultsPerPage: perPageOptions[1],\n\tlistSelectedStudyId: null,\n\tisPersistentDrawerOpen: true,\n\tisModalDrawerOpen: false,\n\tdesktopUpdateInfo: null,\n\tlastActiveSetting: '',\n}\n\nconst getters = {\n\tperPageOptions: () => perPageOptions,\n}\n\nconst actions = {\n\ttoggleDrawers({ commit }, isOpen) {\n\t\tcommit('TOGGLE_PERSISTENT_DRAWER', isOpen)\n\t\tcommit('TOGGLE_MODAL_DRAWER', isOpen)\n\t},\n\tasync checkLastViewedVersion(store) {\n\t\tconst response = await api.user.getUserSetting('lastViewedVersion', 'ReleaseNotes')\n\t\tconst lastViewedVersion = response.status === 200 ? response.data : null\n\n\t\t// Don't pop window for dev builds\n\t\tif (!window.config.release.includes('.')) return\n\t\t// remove build from release, check if debug or some other rando string.\n\t\tif (!lastViewedVersion || compareVersions(window.config.release, lastViewedVersion) > 0) {\n\t\t\tsetTimeout(() => openReleaseNotes(lastViewedVersion || 'LATEST', true), 3000)\n\t\t}\n\t},\n\tasync setLastViewedVersion(store, lastViewedVersion) {\n\t\tlet lastVer = lastViewedVersion || window.config.release\n\n\t\t// Don't save if you're on a debug version\n\t\tif (!lastVer.includes('.')) return\n\t\tlastVer = lastVer\n\t\t\t.split('.')\n\t\t\t.slice(0, 3)\n\t\t\t.join('.')\n\t\tawait api.user.setUserSetting('lastViewedVersion', 'ReleaseNotes', lastVer)\n\t},\n\tshowAppUpdateAvailable({ state, commit }, fromElectron = false) {\n\t\tconst prevValue = state.updateAppBannerVisible\n\t\tcommit('SET_APP_UPDATE_AVAILABLE', fromElectron)\n\t\t// Did the commit change the value?\n\t\tif (!prevValue && state.updateAppBannerVisible) {\n\t\t\t// Often called immediately after logging in, before the rest of the app loads...\n\t\t\t// let's give it some time\n\t\t\tsetTimeout(() => showAppUpdateAvailableDlg(), 1000)\n\t\t}\n\t},\n\tasync handleUpdateAppBannerAction({ commit }, userClickedRefresh) {\n\t\tif (userClickedRefresh) {\n\t\t\t// Confirm reloading if necessary\n\t\t\tif (!(await confirmRefresh())) return\n\t\t\tcommit('HIDE_UPDATE_APP_BANNER')\n\t\t\t// Send response back to Electron if needed\n\t\t\tif (omniDesktop.isConnected) {\n\t\t\t\tomniDesktop.installAndRelaunch()\n\t\t\t} else {\n\t\t\t\t// Reload the browser (reset cache)\n\t\t\t\twindow.location.reload(true)\n\t\t\t\t// Broadcast event to reload other windows\n\t\t\t\teventBus.broadcast(eventBus.type.RELOAD, true)\n\t\t\t}\n\t\t} else {\n\t\t\tcommit('HIDE_UPDATE_APP_BANNER')\n\t\t\t// Don't display banner again\n\t\t\tcommit('SET_USER_DISMISSED', true)\n\t\t\t// ...but nag them again after some time\n\t\t\tsetTimeout(() => {\n\t\t\t\tcommit('SET_USER_DISMISSED', false)\n\t\t\t}, displayUpdateAppBannerWaitTimeMs)\n\t\t}\n\n\t\tfunction confirmRefresh() {\n\t\t\tlet warning\n\t\t\tif (router.currentRoute.path.includes('/viewer/')) {\n\t\t\t\twarning = 'Are you sure you want to refresh? This will reset your current layout as well as any annotations.'\n\t\t\t}\n\t\t\tif (workflow.isInProgress) {\n\t\t\t\twarning = 'Your submission is not complete. Are you sure you want to discard your progress?'\n\t\t\t}\n\t\t\tif (reportService.hasUnsavedChanges) {\n\t\t\t\twarning = 'You have unsaved changes. Are you sure you want to leave without saving?'\n\t\t\t}\n\t\t\tif (warning) return showConfirm(warning)\n\t\t\treturn true\n\t\t}\n\t},\n\tasync getDesktopUpdateInfo({ rootState, commit }) {\n\t\tconst clinicCode = rootState.auth?.claims?.activeClinicCode\n\t\tconst updateInfo = await api.clinic.getOmniDesktopUpdateInfo({\n\t\t\tclinicCode,\n\t\t\tcurrentVersion: '0.0.0',\n\t\t\tclinicBaseUrl: null,\n\t\t})\n\t\tcommit('SET_DESKTOP_UPDATE_INFO', updateInfo)\n\t},\n}\n\nconst mutations = {\n\tSET_APP_UPDATE_AVAILABLE: (state, fromElectron) => {\n\t\tif (state.didUserDismiss || window.opener || (window.ElectronInterface && !fromElectron)) return\n\t\tstate.updateAppBannerVisible = true\n\t},\n\tHIDE_UPDATE_APP_BANNER: state => {\n\t\tstate.updateAppBannerVisible = false\n\t},\n\tSET_USER_DISMISSED: (state, didUserDismiss) => {\n\t\tstate.didUserDismiss = didUserDismiss\n\t},\n\tSET_RESULTS_PER_PAGE: (state, rpp) => {\n\t\tlet nrpp = Number(rpp)\n\t\tif (perPageOptions.includes(nrpp)) state.resultsPerPage = nrpp\n\t\telse state.resultsPerPage = perPageOptions[0]\n\t},\n\tSET_CURRENTPAGE: (state, { route, page }) => {\n\t\tconst currentPage = { ...state.currentPage }\n\t\tcurrentPage[route] = page\n\t\tstate.currentPage = currentPage\n\t},\n\tSET_LIST_SELECTED_STUDYID: (state, studyId) => {\n\t\tstate.listSelectedStudyId = studyId\n\t},\n\tTOGGLE_PERSISTENT_DRAWER(state, isOpen) {\n\t\tif (isOpen === undefined) {\n\t\t\tstate.isPersistentDrawerOpen = !state.isPersistentDrawerOpen\n\t\t} else {\n\t\t\tstate.isPersistentDrawerOpen = isOpen\n\t\t}\n\t},\n\tTOGGLE_MODAL_DRAWER(state, isOpen) {\n\t\tif (isOpen === undefined) {\n\t\t\tstate.isModalDrawerOpen = !state.isModalDrawerOpen\n\t\t} else {\n\t\t\tstate.isModalDrawerOpen = isOpen\n\t\t}\n\t},\n\tRESET_LIST_UI_CACHE(state) {\n\t\tstate.currentPage = {}\n\t\tstate.listSelectedStudyId = null\n\t},\n\tSET_DESKTOP_UPDATE_INFO(state, updateInfo) {\n\t\tstate.desktopUpdateInfo = updateInfo\n\t},\n\tSET_LAST_ACTIVE_SETTING(state, view) {\n\t\tstate.lastActiveSetting = view\n\t},\n}\n\nexport default {\n\tstate,\n\tgetters,\n\tactions,\n\tmutations,\n}\n","export default class {\n constructor() {\n this.isPlaying = false\n this.frameRate = 31\n }\n}\n","import CinePlayer from './CanvasCinePlayer'\n\nexport default class {\n\tconstructor({ index, seriesId, asterisImageId, frameIndex, cinePlayer, imageView, dom, vue, isInitializing }) {\n\t\tthis.index = index\n\t\tthis.seriesId = seriesId || null\n\t\tthis.asterisImageId = asterisImageId || null\n\t\tthis.frameIndex = nullSafeParse(frameIndex)\n\t\tthis.cinePlayer = cinePlayer || new CinePlayer()\n\t\tthis.imageView = imageView\n\t\tthis.vue = vue || null\n\t\tthis.dom = dom || null\n\t\tthis.isInitializing = isInitializing || false\n\t}\n}\n\nfunction nullSafeParse(x) {\n\tvar parsed = parseInt(x)\n\tif (Number.isNaN(parsed)) {\n\t\treturn 0\n\t}\n\treturn parsed\n}\n","import Canvas from '@store/models/state/Canvas'\n\nconst maxCanvases = 20\n\nexport const defaultInitCanvases = function() {\n\tlet canvases = []\n\tfor (let i = 0; i < maxCanvases; i++) {\n\t\tcanvases.push(new Canvas({ index: i }))\n\t}\n\treturn canvases\n}\nexport const newConsultationRequest = function() {\n\treturn {\n\t\tsubject: '',\n\t\tsentBy: '',\n\t\tsentOn: '',\n\t\tmessage: '',\n\t\tfromEmail: '',\n\t\ttoEmail: '',\n\t\tkeystoneEndpointBaseUrl: '',\n\t\thasDeletedStudies: false,\n\t\tstudies: [],\n\t\treports: [],\n\t}\n}\n","import { defaultInitCanvases, newConsultationRequest } from '@store/modules/viewer/_shared/index.js'\n\nexport default {\n\tstudies: [],\n\tstudiesNotFound: [], // studies from API that may belong to another clinic\n\tisViewerLoading: false,\n\tconsultationRequest: newConsultationRequest(),\n\thideLoadingText: false,\n\tdraggingFromThumbnailList: false,\n\tactiveCanvasIndex: 0,\n\tprevActiveCanvasIndex: 0,\n\tactiveDisplaySetIndex: 0,\n\tcanvasLayout: {\n\t\tcanvasesPerRow: 1,\n\t\tnumCanvases: 1,\n\t},\n\tprevCanvasLayout: null,\n\tcanvases: defaultInitCanvases(),\n\tseriesViewportCache: {},\n\tmanualStackOffsets: [],\n\tactiveImageMetadata: null,\n\thangingProtocols: [],\n\thangingProtocol: undefined,\n\tisHangingProtocolLoading: false,\n\tloadSeriesFromMiddle: true,\n\tuserSettings: {\n\t\thangingProtocol: '',\n\t},\n\tcalibrations: {},\n\tsettingsPanel: {\n\t\toverlayText: true,\n\t\ttoolbarLocation: 'top',\n\t\tisImageOrientationMarkersEnabled: true,\n\t\tisLengthAnglesEnabled: true,\n\t\tisReferenceLineSynchronizationEnabled: true,\n\t\tisStackScrollSynchronizationEnabled: true,\n\t\tisManualStackScrollSynchronizationEnabled: false,\n\t},\n tableHeadersSettings: {\n studyListHeader: [],\n teleconsultationListHeader: [],\n },\n}\n","export default {\n\tallSeries({ studies }) {\n\t\treturn [].concat(...studies.map(study => study.imageData.series))\n\t},\n\tloadedStudyIds({ studies }) {\n\t\treturn [...new Set(studies.filter(study => !study.reportId).map(study => study.studyId))]\n\t},\n\tloadedReportIds({ studies }) {\n\t\treturn [...new Set(studies.filter(study => study.reportId).map(study => study.reportId))]\n\t},\n\trelatedStudies({ studies }) {\n\t\tlet relatedStudies = []\n\t\t\t.concat(...studies.map(study => study.relatedStudies || []))\n\t\t\t.filter((study, idx, self) => self.findIndex(s => s.studyId === study.studyId) === idx)\n\t\tlet unopenedStudies = relatedStudies.filter(study => {\n\t\t\treturn !studies.some(openStudy => openStudy.studyId === study.studyId)\n\t\t})\n const studiesList = studies.concat(unopenedStudies)\n\t\treturn (studiesList.length) ? studiesList.sort((a,b) => {\n if (!a || !b) return false\n const dateA = new Date(a.studyDateTime).getTime()\n const dateB = new Date(b.studyDateTime).getTime()\n return dateB - dateA // Date descending sort\n }) : studiesList\n\t},\n\tvisibleCanvases({ canvases, canvasLayout }) {\n\t\treturn canvases.slice(0, canvasLayout.numCanvases)\n\t},\n\tcanvasColors(state, { visibleCanvases }) {\n\t\tlet canvasColors = {}\n\t\tconst colorMap = [\n\t\t\t'#22C5FC', // Blue\n\t\t\t'#8EA604', // Green\n\t\t\t'#FEC62E', // Yellow\n\t\t\t'#693668', // Purple\n\t\t\t'#F86624', // Orange\n\t\t\t'#FC0707', // Red\n\t\t\t'#59CD90', // Seafoam\n\t\t\t'#08A4BD', // Teal\n\t\t\t'#FC157E', // Pink\n\n\t\t\t'#003366', // Dark Blue\n\t\t\t'#a52a2a', // Dark Red/Brown\n\t\t\t'#e6d7ff', // Lilac\n\t\t\t'#adff2f', // Lime\n\t\t\t'#eee8aa', // Pale Goldenrod\n\t\t\t'#ffc0cb', // Light Pink\n\t\t\t'#065535', // Dark Green\n\t\t\t'#b2622d', // Light Brown\n\t\t\t'#ff00ff', // Magenta\n\t\t\t'#c0d6e4', // Ghost\n\t\t\t'#cbbeb5', // Tan\n\t\t]\n\t\tlet colorCount = 0\n\t\tfor (let i = 0; i < visibleCanvases.length; i++) {\n\t\t\tconst visibleCanvas = visibleCanvases[i]\n\t\t\tif (!canvasColors[visibleCanvas.seriesId]) {\n\t\t\t\tcanvasColors[visibleCanvas.seriesId] = colorMap[colorCount]\n\t\t\t\tcolorCount++\n\t\t\t}\n\t\t}\n\t\treturn canvasColors\n\t},\n\tactiveCanvas: state => (state.activeCanvasIndex >= 0 ? state.canvases[state.activeCanvasIndex] : null),\n\tactiveSeries(_, { allSeries, activeCanvas }) {\n\t\tif (!activeCanvas) return null\n\t\treturn allSeries.find(s => s.seriesId === activeCanvas.seriesId) || {}\n\t},\n\thasActiveSeries(_, { activeSeries }) {\n\t\treturn !!activeSeries && !!activeSeries.seriesId\n\t},\n\tactiveStudy(state, { activeSeries }) {\n\t\tif (!activeSeries) return null\n\t\treturn state.studies.find(s => s.studyId === activeSeries.studyId)\n\t},\n\tactiveReportId(_, { activeStudy }) {\n\t\treturn activeStudy && activeStudy.reportId\n\t},\n\tallActiveSeriesIds(state, { visibleCanvases }) {\n\t\tlet result = []\n\t\tfor (let i = 0; i < visibleCanvases.length; i++) {\n\t\t\tresult.push(visibleCanvases[i].seriesId)\n\t\t}\n\t\treturn result\n\t},\n\tactiveImage(state, { activeSeries, activeCanvas }) {\n\t\tif (!activeSeries || !activeSeries.images) return\n\n\t\tconst matchedImage = activeSeries.images.find(image => {\n\t\t\treturn image.imageId === activeCanvas.asterisImageId && image.frameIndex === activeCanvas.frameIndex\n\t\t})\n\n\t\treturn matchedImage\n\t},\n\tactiveDisplaySet(state) {\n\t\tif (!state.hangingProtocol || !state.hangingProtocol.displaySets) return\n\t\treturn state.hangingProtocol.displaySets[state.activeDisplaySetIndex].name\n\t},\n}\n","const SET_IMAGE_ORIENTATION_MARKERS = function(state, isEnabled) {\n\tstate.settingsPanel.isImageOrientationMarkersEnabled = isEnabled\n}\n\nconst SET_LENGTH_ANGLES = function(state, isEnabled) {\n\tstate.settingsPanel.isLengthAnglesEnabled = isEnabled\n}\n\nconst SET_REFERENCE_LINE_SYNCHRONIZATION = function(state, isEnabled) {\n\tstate.settingsPanel.isReferenceLineSynchronizationEnabled = isEnabled\n}\n\nconst SET_STACK_SCROLL_SYNCHRONIZATION_AUTO = state => {\n\tstate.settingsPanel.isStackScrollSynchronizationEnabled = true\n\tstate.settingsPanel.isManualStackScrollSynchronizationEnabled = false\n}\nconst SET_STACK_SCROLL_SYNCHRONIZATION_MANUAL = state => {\n\tstate.settingsPanel.isStackScrollSynchronizationEnabled = false\n\tstate.settingsPanel.isManualStackScrollSynchronizationEnabled = true\n}\nconst SET_STACK_SCROLL_SYNCHRONIZATION_OFF = state => {\n\tstate.settingsPanel.isStackScrollSynchronizationEnabled = false\n\tstate.settingsPanel.isManualStackScrollSynchronizationEnabled = false\n}\n\nconst SET_OVERLAY_TEXT = function(state, value) {\n\tstate.settingsPanel.overlayText = value\n}\n\nconst TOGGLE_OVERLAY_TEXT = function(state) {\n\tstate.settingsPanel.overlayText = !state.settingsPanel.overlayText\n}\n\nconst SET_VIEWER_TOOLBAR_LOCATION = (state, location) => {\n\tstate.settingsPanel.toolbarLocation = location\n}\n\nconst SET_STUDY_LIST_HEADER = (state, studyTableHeaderSettings) => {\n\tstate.tableHeadersSettings.studyListHeader = studyTableHeaderSettings\n}\n\nconst SET_TELECONSULTATION_LIST_HEADER = (state, teleconsultationTableHeaderSettings) => {\n\tstate.tableHeadersSettings.teleconsultationListHeader = teleconsultationTableHeaderSettings\n}\n\nexport default {\n\tSET_IMAGE_ORIENTATION_MARKERS,\n\tSET_LENGTH_ANGLES,\n\tSET_REFERENCE_LINE_SYNCHRONIZATION,\n\tSET_STACK_SCROLL_SYNCHRONIZATION_AUTO,\n\tSET_STACK_SCROLL_SYNCHRONIZATION_MANUAL,\n\tSET_STACK_SCROLL_SYNCHRONIZATION_OFF,\n\tSET_OVERLAY_TEXT,\n\tTOGGLE_OVERLAY_TEXT,\n\tSET_VIEWER_TOOLBAR_LOCATION,\n\tSET_STUDY_LIST_HEADER,\n\tSET_TELECONSULTATION_LIST_HEADER,\n}\n","export default function(state, { studies, reportId }) {\n\tif (!studies || !studies.length) return\n\t// Get studies that don't already exist in the viewer state\n\tconst newStudies = studies.slice().filter(study => {\n\t\treturn !state.studies.some(existingStudy => existingStudy.studyId === study.studyId)\n\t})\n\t// Link the report to each study\n\tif (reportId) newStudies.forEach(study => (study.reportId = reportId))\n\tstate.studies = state.studies.concat(newStudies)\n}\n","import { defaultInitCanvases, newConsultationRequest } from '@store/modules/viewer/_shared'\nimport metadata from '@/cornerstone/metadata'\n\n/**\n *\n *\n * @public\n * @function CLEAR_VIEWER\n *\n * @param {*} state\n *\n * @returns {undefined}\n */\nexport default function(state) {\n\tstate.studies = []\n\tstate.isViewerLoading = true\n\tstate.canvases = defaultInitCanvases()\n\tstate.consultationRequest = newConsultationRequest()\n\tstate.hideLoadingText = false\n\tstate.hangingProtocol = undefined\n\tstate.hangingProtocols = []\n\tstate.activeDisplaySetIndex = 0\n\n\t// meta\n\tmetadata.clear()\n}\n","import Canvas from '@store/models/state/Canvas'\nimport clone from '@utils/deepClone'\n\n// Mutations\nimport settings from './settings'\n\nimport ADD_STUDIES from './ADD_STUDIES.js'\nimport CLEAR_VIEWER from './CLEAR_VIEWER.js'\n\nconst shouldLoadFromMiddle = (state, series, study) => {\n\tif (state.loadSeriesFromMiddle === false) return false\n\tlet modality = series && series.modality\n\tmodality = modality || (study && study.modality)\n\treturn ['CT', 'PT', 'MR'].includes(modality)\n}\n\nexport default {\n\tADD_STUDIES,\n\tCLEAR_VIEWER,\n\t...settings,\n\tSET_VIEWER_LOADING: (state, isLoading) => {\n\t\tstate.isViewerLoading = isLoading\n\t},\n\tSET_DRAGGING_FROM_THUMBNAIL_LIST: (state, dragging) => {\n\t\tstate.draggingFromThumbnailList = dragging\n\t},\n\tSET_CONSULTATION_REQUEST: (state, consultationRequest) => {\n\t\tfor (let key in state.consultationRequest) {\n\t\t\tstate.consultationRequest[key] = consultationRequest[key]\n\t\t}\n\t},\n\tSET_STUDIES_NOT_FOUND: (state, studiesNotFound) => {\n\t\tstate.studiesNotFound = studiesNotFound\n\t},\n\tREMOVE_STUDY: (state, studyId) => {\n\t\tconst studyIndex = state.studies.findIndex(study => study.studyId === studyId)\n\t\tstate.studies.splice(studyIndex, 1)\n\t},\n\tREMOVE_REPORT_STUDIES: (state, reportId) => {\n\t\tstate.studies = state.studies.filter(study => study.reportId !== reportId)\n\t},\n\tREFRESH_STUDY: (state, study) => {\n\t\tconst studyIndex = state.studies.findIndex(s => s.studyId === study.studyId)\n\t\tconst foundStudy = Object.assign({}, state.studies[studyIndex])\n\n\t\tif (foundStudy) {\n\t\t\tfor (let prop in study) {\n\t\t\t\tfoundStudy[prop] = study[prop]\n\t\t\t}\n\t\t}\n\n\t\tstate.studies.splice(studyIndex, 1, foundStudy)\n\t},\n\tFILL_CANVASES: (state, series = []) => {\n\t\tif (!series.length) series = [].concat(...state.studies.map(study => study.imageData.series))\n\t\tlet canvases = []\n\t\tfor (let index = 0; index < state.canvases.length; index++) {\n\t\t\tconst existingCanvas = state.canvases[index]\n\t\t\tconst isVisible = index < state.canvasLayout.numCanvases\n\t\t\tconst alreadyHasImage = series.some(series => series.seriesId === existingCanvas.seriesId)\n\t\t\tif (!isVisible || alreadyHasImage) {\n\t\t\t\tcanvases.push(existingCanvas)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tconst { dom, vue } = existingCanvas\n\t\t\tlet seriesId, asterisImageId\n\t\t\tconst nextUnopenedSeries = getNextUnopenedSeries()\n\t\t\tif (nextUnopenedSeries) {\n\t\t\t\tseriesId = nextUnopenedSeries.seriesId\n\t\t\t\tif (!shouldLoadFromMiddle(state, nextUnopenedSeries)) {\n\t\t\t\t\tconst firstImage = nextUnopenedSeries.images[0]\n\t\t\t\t\tif (firstImage) asterisImageId = firstImage.imageId\n\t\t\t\t} else {\n\t\t\t\t\tconst middleImage = nextUnopenedSeries.images[Math.round(nextUnopenedSeries.images.length / 2) - 1]\n\t\t\t\t\tif (middleImage) asterisImageId = middleImage.imageId\n\t\t\t\t}\n\t\t\t}\n\t\t\tcanvases.push(new Canvas({ index, seriesId, asterisImageId, dom, vue }))\n\t\t}\n\t\tstate.canvases = canvases\n\n\t\tfunction getNextUnopenedSeries() {\n\t\t\tconst openedSeries = canvases.map(canvas => canvas.seriesId)\n\t\t\tconst firstUnopenedSeries = series.find(s => !openedSeries.includes(s.seriesId))\n\t\t\treturn firstUnopenedSeries\n\t\t}\n\t},\n\tSET_ACTIVE_CANVAS_INDEX: (state, index) => {\n\t\tstate.prevActiveCanvasIndex = state.activeCanvasIndex\n\t\tstate.activeCanvasIndex = index\n\t},\n\tSET_SERIES_VIEWPORT_CACHE(state, { seriesId, viewport }) {\n\t\tstate.seriesViewportCache[seriesId] = viewport\n\t},\n\tCLEAR_SERIES_VIEWPORT_CACHE(state, seriesId) {\n\t\tif (!seriesId) state.seriesViewportCache = {}\n\t\telse delete state.seriesViewportCache[seriesId]\n\t},\n\tSET_CANVAS_ACTIVE_SERIES: (state, { canvasIndex, studyId, seriesId, imageView }) => {\n\t\tconst oldCanvas = state.canvases[canvasIndex]\n\t\tconst newCanvas = new Canvas({\n\t\t\t...oldCanvas,\n\t\t\tstudyId,\n\t\t\tseriesId,\n\t\t\tasterisImageId: getInitialImageId(),\n\t\t\tframeIndex: 0,\n\t\t\timageView,\n\t\t})\n\t\tstate.canvases.splice(canvasIndex, 1, newCanvas)\n\n\t\tfunction getInitialImageId() {\n\t\t\tif (studyId && seriesId) {\n\t\t\t\tlet study = state.studies.find(study => study.studyId === studyId)\n\t\t\t\tif (!study) {\n\t\t\t\t\t// the parent studyId may not match the series.studyId\n\t\t\t\t\tstudy = state.studies.find(study => study.imageData.series.some(series => series.seriesId === seriesId))\n\t\t\t\t}\n\t\t\t\tconst series = study.imageData.series.find(series => series.seriesId === seriesId)\n\t\t\t\tif (series && series.images.length) {\n\t\t\t\t\tif (!shouldLoadFromMiddle(state, series, study) || series.images.length <= 2) return series.images[0].imageId\n\t\t\t\t\treturn series.images[Math.round(series.images.length / 2) - 1].imageId\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tSET_CANVAS_ACTIVE_IMAGE: (state, { canvasIndex, asterisImageId, frameIndex }) => {\n\t\tconst oldCanvas = state.canvases[canvasIndex]\n\t\tconst newCanvas = new Canvas({ ...oldCanvas, asterisImageId, frameIndex })\n\t\tstate.canvases.splice(canvasIndex, 1, newCanvas)\n\t},\n\tSET_CANVAS_INITIALIZING: (state, { canvasIndex, isInitializing }) => {\n\t\tstate.canvases[canvasIndex].isInitializing = isInitializing\n\t},\n\tRESET_CANVAS_LAYOUT: state => {\n\t\tstate.activeCanvasIndex = 0\n\t\tstate.canvasLayout.canvasesPerRow = 1\n\t\tstate.canvasLayout.numCanvases = 1\n\t},\n\tSET_CANVAS_LAYOUT: (state, { columns, numCanvases }) => {\n\t\t// Save the current layout\n\t\tstate.prevCanvasLayout = { ...state.canvasLayout }\n\t\t// Apply new layout\n\t\tstate.canvasLayout.canvasesPerRow = columns\n\t\tstate.canvasLayout.numCanvases = numCanvases\n\t\tif (state.activeCanvasIndex >= numCanvases) state.activeCanvasIndex = 0\n\t},\n\tSWITCH_CANVASES: (state, { fromIndex, toIndex }) => {\n\t\tconst canvases = [...state.canvases]\n\t\tif (fromIndex >= canvases.length || toIndex >= canvases.length) {\n\t\t\treturn\n\t\t}\n\t\tconst temp = canvases[toIndex]\n\t\tcanvases[toIndex] = canvases[fromIndex]\n\t\tcanvases[fromIndex] = temp\n\t\tcanvases[toIndex].index = toIndex\n\t\tcanvases[fromIndex].index = fromIndex\n\t\tstate.canvases = canvases\n\t},\n\tSET_CANVAS_INFO: (state, { canvasIndex, domCanvas: dom, vueCanvas: vue }) => {\n\t\tconst oldCanvas = state.canvases[canvasIndex]\n\t\tconst newCanvas = new Canvas({ ...oldCanvas, dom, vue })\n\t\tstate.canvases.splice(canvasIndex, 1, newCanvas)\n\t},\n\tCINE_PLAY: state => {\n\t\tif (state.activeCanvasIndex >= 0) state.canvases[state.activeCanvasIndex].cinePlayer.isPlaying = true\n\t},\n\tCINE_PAUSE: state => {\n\t\tif (state.activeCanvasIndex >= 0) state.canvases[state.activeCanvasIndex].cinePlayer.isPlaying = false\n\t},\n\tSET_CINE_FRAMERATE: (state, frameRate) => {\n\t\tif (state.activeCanvasIndex >= 0) state.canvases[state.activeCanvasIndex].cinePlayer.frameRate = frameRate\n\t},\n\tSET_VIEWER_HIDE_LOADING_TEXT: state => {\n\t\tstate.hideLoadingText = true\n\t},\n\tSET_SERIES_METADATA_LOADED: state => {\n\t\tconst studies = state.studies.slice()\n\t\tstudies.forEach(study => {\n\t\t\tstudy.imageData.series.forEach(series => {\n\t\t\t\tseries.isMetaLoaded = true\n\t\t\t})\n\t\t})\n\t\tstate.studies = studies\n\t},\n\tSET_HANGING_PROTOCOLS: (state, hangingProtocols) => {\n\t\tstate.hangingProtocols = hangingProtocols\n\t},\n\tSET_HANGING_PROTOCOL: (state, hangingProtocol) => {\n\t\tstate.hangingProtocol = hangingProtocol\n\t},\n\tSET_HANGING_PROTOCOL_LOADING: (state, isLoading) => {\n\t\tstate.isHangingProtocolLoading = isLoading\n\t},\n\tSET_LOAD_SERIES_FROM_MIDDLE: (state, loadSeriesFromMiddle) => {\n\t\tstate.loadSeriesFromMiddle = loadSeriesFromMiddle\n\t},\n\tSET_USER_SETTINGS: (state, data) => {\n\t\tconst newSettings = Object.assign({}, state.userSettings, data)\n\t\tstate.userSettings = clone(newSettings)\n\t},\n\tSET_ACTIVE_DISPLAYSET_INDEX: (state, index) => {\n\t\tstate.activeDisplaySetIndex = index\n\t},\n\tSET_STACK_SCROLL_OFFSETS(state, offsets) {\n\t\tstate.manualStackOffsets = offsets\n\t},\n\tADD_STACK_SCROLL_OFFSETS(state, offsets) {\n\t\tstate.manualStackOffsets.push(...offsets)\n\t},\n\tSET_ACTIVE_IMAGE_METADATA(state, metadata) {\n\t\tstate.activeImageMetadata = metadata\n\t},\n\tSET_CALIBRATION(state, { imageId, oldLength, oldPixelSpacing, newLength }) {\n\t\tstate.calibrations[imageId] = {\n\t\t\toldLength,\n\t\t\toldPixelSpacing,\n\t\t\tnewLength,\n\t\t}\n\t},\n\tCLEAR_CALIBRATION(state, imageId) {\n\t\tif (imageId) delete state.calibrations[imageId]\n\t\telse state.calibrations = {}\n\t},\n}\n","import * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { getCornerstoneImageId } from '@/imageLoader'\nimport { eventBus } from '@services/eventBus'\n\nexport default function clearAnnotations({ state }, { activeImage, activeSeries } = {}) {\n\tif (!activeImage) {\n\t\t// Clear all image annotations\n\t\tclearToolData()\n\t} else {\n\t\tconst activeCornerstoneImageId = getCornerstoneImageId(activeSeries, activeImage)\n\n\t\t// Clear specific image's annotations\n\t\tclearToolData(activeCornerstoneImageId)\n\n\t\t// Refresh updated canvases\n\t\t// checks each image's cornerstone `imageId` property\n\t\tcornerstone.getEnabledElementsByImageId(activeCornerstoneImageId).forEach(enabledElement => {\n\t\t\tcornerstone.updateImage(enabledElement.element)\n\t\t})\n\t}\n}\n\nfunction clearToolData(cornerstoneImageId) {\n\tconst toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.saveToolState()\n\tif (!toolState) return\n\tObject.keys(toolState).forEach(imageId => {\n\t\tif (!cornerstoneImageId || cornerstoneImageId === imageId) delete toolState[imageId]\n\t})\n\tcornerstoneTools.globalImageIdSpecificToolStateManager.restoreToolState(toolState)\n\teventBus.post(eventBus.type.ANNOTATIONS_CLEARED)\n}\n","/** @module createImageFromEnabledElementAsync */\nimport * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\n\n/**\n * This callback recieves the enabledElement's rendered image data as a blob\n * @callback createImageFromEnabledElementAsync~blobCallback\n * @param {blob} imageBlob\n */\n\n/**\n * Returns a base64 representation of an enabled element in the image's\n * original resolution, and appropriately sized text and annotations.\n *\n * @exports @public @async @function\n * @param {HTMLElement} enabledElement - The target enabledElement to use when generating an image\n * @param {createImageFromEnabledElementAsync~blobCallback} [blobCallback] - A callback fn that receives the result imgBlob\n * @example\n * // returns base64 string of image\n * const base64Img = await createImageFromEnabledElementAsync(enabledElement)\n * @example\n * // returns undefined, but pass image blob to blobCallback\n * await createImageFromEnabledElementAsync(enabledElement, (blob) => {\n * const url = URL.createObjectURL(blob);\n * console.log(url);\n * URL.revokeObjectURL(url);\n * })\n * @returns {(string|undefined)} base64 string representation of image, or fires blobCallback if provided.\n */\nexport default async function(enabledElement, blobCallback) {\n\tconst canvas = enabledElement.querySelector('canvas')\n\tconst image = cornerstone.getImage(enabledElement)\n\tconst IMAGE_FIX_SCALE_TH = 512\n\n\t// What we're toggleing\n\tconst toolStyles = getToolStyles()\n\tconst viewport = cornerstone.getViewport(enabledElement)\n\tconst canvasDimensions = getCanvasDimensions(canvas)\n\n\tlet imageScale = 1\n\tlet annotationScaleFactor = Math.max(Math.max(image.height, image.width) / 1000, 1.25)\n\n\tif (Math.max(image.height, image.width) <= IMAGE_FIX_SCALE_TH && viewport.scale > 1) {\n\t\timageScale = viewport.scale\n\t\tannotationScaleFactor = 1\n\t}\n\n\t// Some help from our friends\n\tconst flipWidthAndHeight = Math.abs(viewport.rotation) === 90 || Math.abs(viewport.rotation === 270)\n\tconst tempViewport = Object.assign({}, cornerstone.getViewport(enabledElement), {\n\t\tscale: imageScale,\n\t\ttranslation: { x: 0, y: 0 },\n\t})\n\n\tlet newImageW = flipWidthAndHeight ? image.height : image.width\n\tlet newImageH = flipWidthAndHeight ? image.width : image.height\n\n\tif (imageScale !== 1) {\n\t\t// round to nearest even number\n\t\tnewImageW = 2 * Math.round((newImageW * imageScale) / 2)\n\t\tnewImageH = 2 * Math.round((newImageH * imageScale) / 2)\n\t}\n\n\ttry {\n\t\t// Set enabled element, canvas, and viewport to best values for image capture\n\t\tsetToolStyles({\n\t\t\twidth: annotationScaleFactor,\n\t\t\tactiveWidth: annotationScaleFactor,\n\t\t\tfont: `${15 * annotationScaleFactor}px Arial`,\n\t\t\tfontSize: 15 * annotationScaleFactor,\n\t\t\tbackgroundColor: 'rgba(15,10,25,0.6)',\n\t\t})\n\n\t\tsetCanvasDimensions(canvas, {\n\t\t\twidthAttribute: newImageW,\n\t\t\theightAttribute: newImageH,\n\t\t})\n\t\tcornerstone.reset(enabledElement)\n\t\tcornerstone.setViewport(enabledElement, tempViewport)\n\n\t\treturn await new Promise(resolve => {\n\t\t\t// Handle the image rendered event by capturing and returning the\n\t\t\t// new renderings base64 encoded representation\n\t\t\tconst onImageRendered = () => {\n\t\t\t\tenabledElement.removeEventListener('cornerstoneimagerendered', onImageRendered)\n\n\t\t\t\tif (blobCallback) {\n\t\t\t\t\tcanvas.toBlob(blobCallback)\n\t\t\t\t\tresolve()\n\t\t\t\t}\n\t\t\t\tconst imgBase64 = canvas.toDataURL()\n\t\t\t\tresolve(imgBase64)\n\t\t\t}\n\n\t\t\t// Begin listening for next image rendered event\n\t\t\tenabledElement.addEventListener(cornerstone.EVENTS.IMAGE_RENDERED, onImageRendered)\n\n\t\t\t// Trigger image rendered event\n\t\t\tcornerstone.updateImage(enabledElement, true)\n\t\t})\n\t} finally {\n\t\t// Restore enabled element, canvas, and viewport to original values\n\t\tsetToolStyles(toolStyles)\n\t\tsetCanvasDimensions(canvas, canvasDimensions)\n\t\tcornerstone.reset(enabledElement)\n\t\tcornerstone.setViewport(enabledElement, viewport)\n\t\tcornerstone.updateImage(enabledElement, true)\n\t}\n}\n\n/**\n *\n *\n * @returns\n */\nfunction getToolStyles() {\n\treturn {\n\t\twidth: cornerstoneTools.toolStyle.getToolWidth(),\n\t\tactiveWidth: cornerstoneTools.toolStyle.getActiveWidth(),\n\t\tfont: cornerstoneTools.textStyle.getFont(),\n\t\tfontSize: cornerstoneTools.textStyle.getFontSize(),\n\t\tbackgroundColor: cornerstoneTools.textStyle.getBackgroundColor(),\n\t}\n}\n\n/**\n *\n *\n * @param {Number} newStyles.width\n * @param {Number} newStyles.activeWidth\n * @param {String} newStyles.font\n * @param {Number} newStyles.fontSize\n * @param {String} newStyles.backgroundColor\n */\nfunction setToolStyles(newStyles) {\n\tconst currentStyles = getToolStyles()\n\tconst { width, activeWidth, font, fontSize, backgroundColor } = Object.assign({}, currentStyles, newStyles)\n\n\tcornerstoneTools.toolStyle.setToolWidth(width)\n\tcornerstoneTools.toolStyle.setActiveWidth(activeWidth)\n\tcornerstoneTools.textStyle.setFont(font)\n\tcornerstoneTools.textStyle.setFontSize(fontSize)\n\tcornerstoneTools.textStyle.setBackgroundColor(backgroundColor)\n}\n\n/**\n *\n *\n * @param {HTMLElement} domCanvas - The child canvas HTML Element of the \"Enabled\" element\n * @returns\n */\nfunction getCanvasDimensions(domCanvas) {\n\treturn {\n\t\twidthAttribute: domCanvas.getAttribute('width'),\n\t\theightAttribute: domCanvas.getAttribute('height'),\n\t\twidthStyle: domCanvas.style.width,\n\t\theightStyle: domCanvas.style.height,\n\t\tposition: domCanvas.style.position,\n\t}\n}\n\n/**\n *\n *\n * @param {HTMLElement} canvas\n * @param {*} { position, widthAttribute, heightAttribute, width = 'auto', height = 'auto' }\n */\nfunction setCanvasDimensions(\n\tcanvas,\n\t{ widthAttribute, heightAttribute, position = 'absolute', width = 'auto', height = 'auto' }\n) {\n\tcanvas.style.position = position\n\tcanvas.style.width = width\n\tcanvas.style.height = height\n\tcanvas.setAttribute('width', widthAttribute)\n\tcanvas.setAttribute('height', heightAttribute)\n}\n","import copyImageToClipboard from '@utils/copyImageToClipboard'\nimport createImageFromEnabledElementAsync from './_shared/createImageFromEnabledElementAsync.js'\n\nexport default async function({ state, dispatch, rootGetters }, canvasIndex) {\n\t// Provided canvasIndex or default to activeCanvas\n\tconst targetCanvas = canvasIndex === undefined ? rootGetters.activeCanvas : state.canvases[canvasIndex]\n\n\tif (!targetCanvas) {\n\t\treturn\n\t}\n\tif (!targetCanvas.seriesId && !targetCanvas.imageId) return\n\n\ttry {\n\t\t// Create base64 image\n\t\tconst imgBase64 = await createImageFromEnabledElementAsync(targetCanvas.dom)\n\n\t\t// Copy to the clipboard\n\t\tawait copyImageToClipboard(imgBase64, dispatch)\n\t} catch (err) {\n\t\tdispatch('addNotification', {\n\t\t\tmessage: 'Unable to create a copyable image.',\n\t\t\tnotificationType: 'warn',\n\t\t})\n\t}\n}\n","import api from '@services/api'\nimport createImageFromEnabledElementAsync from './_shared/createImageFromEnabledElementAsync'\n\n/**\n * 1. Generates a base64 image for the currently active canvas\n * 2. Kicks off an API call to add the annotated image to the study\n * 3. Dispatches success notification\n * NOTE: Manually updating ViewModel is not needed due to study synchronization\n *\n * @export\n * @param {*} { getters, commit, dispatch }\n */\nexport default async function({ getters, commit, dispatch }, reportId = undefined) {\n\tconst canvas = getters.activeCanvas\n\tif (!canvas.seriesId && !canvas.imageId) return\n\n\t// 1. Generate a base64 image for the currently active canvas\n\tconst imgBase64 = await createImageFromEnabledElementAsync(canvas.dom)\n\tconst { clinicCode } = getters.activeImage.storageLocation || getters.activeSeries.storageLocation\n\tconst params = {\n\t\tclinicCode,\n\t\tsourceImageId: getters.activeImage.imageId,\n\t\timgBase64,\n\t\treportId,\n\t}\n\n\t// 2. API call to add the annotated image to the study\n\tconst { series } = await api.viewer.renderAnnotatedImage(params)\n\n\t// 3. Show notification\n\tdispatch('addNotification', {\n\t\tmessage: 'New image with burned in annotations successfully created!',\n\t\tnotificationType: 'info',\n\t})\n\n\treturn series\n}\n","import { import as toolImport, getToolState } from 'cornerstone-tools/dist/cornerstoneTools.js'\nconst scrollToIndex = toolImport('util/scrollToIndex')\n\nexport default {\n nextImage ({ rootGetters }) {\n goToIndex(rootGetters.activeCanvas, currentIndex => currentIndex + 1)\n },\n previousImage ({ rootGetters }) {\n goToIndex(rootGetters.activeCanvas, currentIndex => currentIndex - 1)\n },\n firstImage ({ rootGetters }) {\n goToIndex(rootGetters.activeCanvas, () => 0)\n },\n lastImage ({ rootGetters }) {\n goToIndex(rootGetters.activeCanvas, (currentIndex, lastIndex) => lastIndex)\n },\n}\n\n/**\n * Scrolls to a target index returned by the passed-in function\n *\n * @param {object} canvas - active canvas\n * @param {Function} indexFn - a function that returns the target index\n */\nfunction goToIndex(canvas, indexFn) {\n if (!canvas.seriesId && !canvas.imageId) return\n const toolData = getToolState(canvas.dom, 'stack')\n if (!toolData || !toolData.data || !toolData.data.length) return\n const { currentImageIdIndex } = toolData.data[0]\n const lastIndex = toolData.data[0].imageIds.length - 1\n const targetIndex = indexFn(currentImageIdIndex, lastIndex)\n if (targetIndex < 0 || targetIndex > lastIndex) return\n if (targetIndex === currentImageIdIndex) return\n scrollToIndex(canvas.dom, targetIndex)\n}\n","import printImage from '@utils/printImage'\nimport createImageFromEnabledElementAsync from './_shared/createImageFromEnabledElementAsync.js'\n\nexport default async function({ state, dispatch, rootGetters }, canvasIndex) {\n\t// Provided canvasIndex or default to activeCanvas\n\tconst targetCanvas = canvasIndex === undefined ? rootGetters.activeCanvas : state.canvases[canvasIndex]\n\n\tif (!targetCanvas) {\n\t\treturn\n\t}\n\tif (!targetCanvas.seriesId && !targetCanvas.imageId) return\n\n\ttry {\n\t\tconst imgBase64 = await createImageFromEnabledElementAsync(targetCanvas.dom)\n\t\tprintImage(imgBase64, dispatch)\n\t} catch (err) {\n\t\tdispatch('addNotification', {\n\t\t\tmessage: 'Unable to create a printable image.',\n\t\t\tnotificationType: 'warn',\n\t\t})\n\t}\n}\n","import { reset, getEnabledElement } from 'cornerstone-core/dist/cornerstone.js'\n\nexport default function({ commit, dispatch, getters }) {\n\ttry {\n\t\tconst canvas = getters.activeCanvas\n\t\tif (!canvas.seriesId && !canvas.imageId) return\n\t\tconst enabledElement = getEnabledElement(canvas.dom)\n\t\tconst imageId = enabledElement.image ? enabledElement.image.asterisImageId : null\n\n\t\treset(canvas.dom)\n\t\tcanvas.vue.isAnyImageLevelAdjusted = false\n\t\tcommit('CLEAR_SERIES_VIEWPORT_CACHE', canvas.seriesId)\n\n\t\tif (imageId) {\n\t\t\tdispatch('clearCalibrationAndBroadcast', { imageId })\n\t\t}\n\t} catch (Exception) {\n\t\tconsole.warn(Exception)\n\t\tconsole.warn('Unable to reset active canvas')\n\t}\n}\n","import createImageFromEnabledElementAsync from './_shared/createImageFromEnabledElementAsync.js'\nimport saveImage from '@utils/saveImage'\n\n/**\n *\n *\n * @export\n * @param {*} { rootGetters, rootState }\n * @param {(Number)} canvasIndex\n */\nexport default async function({ state, dispatch, rootGetters }, canvasIndex) {\n\t// Provided canvasIndex or default to activeCanvas\n\tconst targetCanvas = canvasIndex === undefined ? rootGetters.activeCanvas : state.canvases[canvasIndex]\n\n\tif (!targetCanvas) {\n\t\treturn\n\t}\n\tif (!targetCanvas.seriesId && !targetCanvas.imageId) return\n\tconst { patientName, patientId } = rootGetters.activeSeries.overlayInformation\n\tconst fileName = patientName || patientId || targetCanvas.imageId || targetCanvas.asterisImageId\n\tconst imgBase64 = await createImageFromEnabledElementAsync(targetCanvas.dom)\n\tawait saveImage(imgBase64, fileName, dispatch)\n}\n","import { synchronizers } from '@store/modules/toolManager/synchronizers.js'\nimport { updateImage } from 'cornerstone-core/dist/cornerstone.js'\nimport { waitForEnabledElementImageToLoad } from '@/utils/wait.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { eventBus } from '@services/eventBus'\n/**\n *\n * @function setActiveCanvas\n *\n * @param {object} { state, commit }\n * @param {object} data\n * @param {number} data.canvasIndex\n * @param {boolean} [data.force=false] - Used to force synchronizer update\n * @returns {undefined}\n */\nexport default async function({ state, commit }, { canvasIndex, force = false }) {\n\t// Short-circuit\n\tif (state.activeCanvasIndex === canvasIndex && !force) {\n\t\treturn\n\t}\n\n\tcommit('SET_ACTIVE_CANVAS_INDEX', canvasIndex)\n\n\t// Remove all\n\tif (synchronizers.referenceLinesSynchronizer) synchronizers.referenceLinesSynchronizer.destroy()\n\n\t// Setup\n\tconst canvas = state.canvases[canvasIndex]\n\tconst hasImage = canvas.imageId || canvas.seriesId\n\tif (canvas.dom && hasImage) {\n\t\tsynchronizers.referenceLinesSynchronizer.addSource(canvas.dom)\n\t}\n\n\t// Force all canvases to redraw\n\tcornerstoneTools.store.state.enabledElements.forEach(async element => {\n\t\ttry {\n\t\t\tconst imageLoaded = await waitForEnabledElementImageToLoad(element)\n\t\t\tif (imageLoaded) updateImage(element)\n\t\t} catch (err) {\n\t\t\t// ignore \"element not enabled\" errors\n\t\t}\n\t})\n}\n","export default function(\n { state, commit, dispatch },\n { canvasIndex, domCanvas, vueCanvas }\n) {\n commit('SET_CANVAS_INFO', {\n canvasIndex,\n domCanvas,\n vueCanvas,\n })\n\n // If we're setting the domCanvas/vueCanvas for the 0-index canvas\n // That means our Viewer Route was _just_ created. Let's set it as\n // Our active canvas\n if (canvasIndex === 0) {\n dispatch('setActiveCanvas', {\n canvasIndex,\n force: true,\n })\n }\n}\n","import { synchronizers } from './../../toolManager/synchronizers'\nimport * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport { eventBus } from '@services/eventBus'\n\nexport function setStackSynchronizationMethod({ state, commit }, syncMethod) {\n\tlet manual, auto\n\tswitch (syncMethod) {\n\t\tcase 'manual':\n\t\t\tmanual = true\n\t\t\tauto = false\n\t\t\t// Create offsets for each open series\n\t\t\tconst offsets = []\n\t\t\tconst images = []\n\t\t\tstate.canvases.forEach(sourceCanvas => {\n\t\t\t\tif (sourceCanvas.asterisImageId === null) return\n\t\t\t\tconst sourceMeta = cornerstone.metaData.get('imagePlaneModule', sourceCanvas.asterisImageId)\n\t\t\t\tif (!sourceMeta || !sourceMeta.imagePositionPatient) return\n\t\t\t\tsourceMeta.imageId = sourceCanvas.asterisImageId\n\t\t\t\tsourceMeta.seriesId = sourceCanvas.seriesId\n\t\t\t\timages.push(sourceMeta)\n\t\t\t\toffsets.push(...getOffsetsFromMeta(state, sourceMeta))\n\t\t\t})\n\t\t\tcommit('ADD_STACK_SCROLL_OFFSETS', offsets)\n\t\t\tcommit('SET_STACK_SCROLL_SYNCHRONIZATION_MANUAL')\n\t\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, {\n\t\t\t\ttype: 'requestImageStackForManualSync',\n\t\t\t\tpayload: { images },\n\t\t\t})\n\n\t\t\tbreak\n\t\tcase 'off':\n\t\t\tmanual = false\n\t\t\tauto = false\n\t\t\tcommit('SET_STACK_SCROLL_OFFSETS', [])\n\t\t\tcommit('SET_STACK_SCROLL_SYNCHRONIZATION_OFF')\n\t\t\tbreak\n\t\tcase 'auto':\n\t\tdefault:\n\t\t\tmanual = false\n\t\t\tauto = true\n\t\t\tcommit('SET_STACK_SCROLL_OFFSETS', [])\n\t\t\tcommit('SET_STACK_SCROLL_SYNCHRONIZATION_AUTO')\n\t\t\tbreak\n\t}\n\n\tsynchronizers.stackScrollSynchronizer.enabled = auto\n\tsynchronizers.manualStackScrollSynchronizer.enabled = manual\n}\n\nexport function requestImageStackForManualSync({ state, dispatch }, { images: externalImages }) {\n\tdispatch('setImageStackForManualFromExternal', { images: externalImages })\n\tconst images = []\n\tstate.canvases.forEach(sourceCanvas => {\n\t\tif (sourceCanvas.asterisImageId === null) return\n\t\tconst sourceMeta = cornerstone.metaData.get('imagePlaneModule', sourceCanvas.asterisImageId)\n\t\tif (!sourceMeta || !sourceMeta.imagePositionPatient) return\n\t\tsourceMeta.imageId = sourceCanvas.asterisImageId\n\t\tsourceMeta.seriesId = sourceCanvas.seriesId\n\t\timages.push(sourceMeta)\n\t})\n\teventBus.broadcast(eventBus.type.VUEX_ACTION, {\n\t\ttype: 'setImageStackForManualFromExternal',\n\t\tpayload: { images },\n\t})\n}\n\nexport function setImageStackForManualFromExternal({ state, commit }, { images }) {\n\tconst offsets = []\n\t// Don't set images if we are showing that same image!\n\tconst unMatchedImages = images.filter(\n\t\timg => !state.manualStackOffsets.find(offset => offset.sourceSeriesId === img.seriesId)\n\t)\n\tunMatchedImages.forEach(metaData => {\n\t\toffsets.push(...getOffsetsFromMeta(state, metaData))\n\t})\n\tcommit('ADD_STACK_SCROLL_OFFSETS', offsets)\n}\n\nfunction getOffsetsFromMeta(state, sourceMeta) {\n\tconst sourceSeriesId = sourceMeta.seriesId\n\tconst sourcePosition = sourceMeta.imagePositionPatient\n\treturn state.canvases.reduce((offsets, targetCanvas) => {\n\t\tif (\n\t\t\tsourceSeriesId !== null &&\n\t\t\ttargetCanvas.asterisImageId !== null &&\n\t\t\tsourceSeriesId !== targetCanvas.asterisImageId\n\t\t) {\n\t\t\tconst targetMeta = cornerstone.metaData.get('imagePlaneModule', targetCanvas.asterisImageId)\n\t\t\tif (targetMeta) {\n\t\t\t\tconst { imagePositionPatient: targetPosition } = targetMeta\n\t\t\t\toffsets.push({\n\t\t\t\t\tsourceSeriesId,\n\t\t\t\t\ttargetSeriesId: targetCanvas.seriesId,\n\t\t\t\t\tx: sourcePosition.x - targetPosition.x,\n\t\t\t\t\ty: sourcePosition.y - targetPosition.y,\n\t\t\t\t\tz: sourcePosition.z - targetPosition.z,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn offsets\n\t}, [])\n}\n","import * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\n\nexport default {\n\tresetLevels: ({ getters }) => {\n\t\tupdateViewport(getters.activeCanvas, (enabledElement, canvas) => {\n\t\t\tlet defaultViewport = cornerstone.getDefaultViewportForImage(\n\t\t\t\tcanvas.dom,\n\t\t\t\tcornerstone.getImage(canvas.dom)\n\t\t\t)\n\t\t\tenabledElement.viewport.voi.windowWidth = defaultViewport.voi.windowWidth\n\t\t\tenabledElement.viewport.voi.windowCenter = defaultViewport.voi.windowCenter\n\t\t\tcanvas.vue.isAnyImageLevelAdjusted = false\n\t\t})\n\t},\n\trotateCanvas: ({ commit, getters }, rotation) => {\n\t\tupdateViewport(getters.activeCanvas, (enabledElement, canvas) => {\n\t\t\tlet clamped = enabledElement.viewport.rotation + rotation\n\t\t\tif (clamped >= 360) clamped -= 360\n\t\t\tif (clamped < 0) clamped += 360\n\t\t\tenabledElement.viewport.rotation = clamped\n\t\t})\n\t},\n\ttoggleCanvasInvert: ({ commit, getters }) => {\n\t\tupdateViewport(getters.activeCanvas, (enabledElement, canvas) => {\n\t\t\tenabledElement.viewport.invert = !enabledElement.viewport.invert\n\t\t})\n\t},\n\ttoggleZoom1to1: ({ getters }) => {\n\t\tupdateViewport(getters.activeCanvas, (enabledElement, canvas) => {\n\t\t\tif (enabledElement.viewport.scale === 1) {\n\t\t\t\tcornerstone.fitToWindow(canvas.dom)\n\t\t\t} else {\n\t\t\t\tenabledElement.viewport.scale = 1\n\t\t\t}\n\t\t})\n\t},\n\ttoggleCanvasHorizontalFlip: ({ commit, getters }) => {\n\t\tupdateViewport(getters.activeCanvas, (enabledElement, canvas) => {\n\t\t\tconst { rotation } = enabledElement.viewport\n\t\t\tenabledElement.viewport.hflip = !enabledElement.viewport.hflip\n\n\t\t\tif (rotation !== 0 && rotation !== 180) {\n\t\t\t\t// If it has been rotated we have to rotate it correctly\n\t\t\t\tenabledElement.viewport.rotation = 360 - rotation\n\t\t\t}\n\t\t})\n\t},\n\ttoggleCanvasVerticalFlip: ({ commit, getters }) => {\n\t\tupdateViewport(getters.activeCanvas, (enabledElement, canvas) => {\n\t\t\tconst { rotation } = enabledElement.viewport\n\t\t\tenabledElement.viewport.vflip = !enabledElement.viewport.vflip\n\n\t\t\tif (rotation !== 0 && rotation !== 180) {\n\t\t\t\t// If it has been rotated we have to rotate it correctly\n\t\t\t\tenabledElement.viewport.rotation = 360 - rotation\n\t\t\t}\n\t\t})\n\t},\n\tcacheSeriesViewport: ({ commit }, canvas) => {\n\t\tif (!canvas || (!canvas.seriesId && !canvas.imageId)) return\n\t\ttry {\n\t\t\tconst enabledElement = cornerstone.getEnabledElement(canvas.dom)\n\t\t\tif (!enabledElement) return\n\t\t\tconst viewport = cloneViewport(enabledElement.viewport)\n\t\t\tconst defaultViewport = cloneViewport(\n\t\t\t\tcornerstone.getDefaultViewportForImage(canvas.dom, cornerstone.getImage(canvas.dom))\n\t\t\t)\n\t\t\tif (!viewport || !defaultViewport) return\n\t\t\t// only cache viewport if it has been modified by the user\n\t\t\tif (JSON.stringify(viewport) !== JSON.stringify(defaultViewport)) {\n\t\t\t\tcommit('SET_SERIES_VIEWPORT_CACHE', { seriesId: canvas.seriesId, viewport })\n\t\t\t} else {\n\t\t\t\tcommit('CLEAR_SERIES_VIEWPORT_CACHE', canvas.seriesId)\n\t\t\t}\n\t\t} catch (err) {\n\t\t\t// ignore cornerstone \"element not enabled\" exceptions\n\t\t}\n\t},\n\trefreshCanvas: ({ state, getters }) => {\n\t\tupdateViewport(getters.activeCanvas, (enabledElement, canvas) => {\n\t\t\tenabledElement.viewport = {\n\t\t\t\t...enabledElement.viewport,\n\t\t\t\t...state.seriesViewportCache[canvas.seriesId],\n\t\t\t}\n\t\t})\n\t},\n}\n\n/**\n * Creates a clone of a viewport object, filtering out properties we don't want to retain\n */\nfunction cloneViewport(viewport) {\n\tif (!viewport) return\n\tconst keyWhitelist = ['hflip', 'vflip', 'invert', 'rotation', 'voi']\n\tconst clonedViewport = JSON.parse(JSON.stringify(viewport))\n\tfor (const key in clonedViewport) if (!keyWhitelist.includes(key)) delete clonedViewport[key]\n\treturn clonedViewport\n}\n\n/**\n * Modifies the viewport of the active canvas using a passed-in function\n *\n * @param {object} canvas - active canvas\n * @param {Function} updateFn - a function that acts on the canvas and viewport\n */\nfunction updateViewport(canvas, updateFn) {\n\tif (!canvas || (!canvas.seriesId && !canvas.imageId)) return\n\tif (!canvas.dom) return\n\ttry {\n\t\tconst enabledElement = cornerstone.getEnabledElement(canvas.dom)\n\t\tif (!enabledElement) return\n\n\t\tupdateFn(enabledElement, canvas)\n\n\t\tcornerstone.updateImage(canvas.dom)\n\t} catch (err) {\n\t\t// ignore cornerstone \"element not enabled\" exceptions\n\t}\n}\n","import * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { updateImage } from 'cornerstone-core/dist/cornerstone.js'\nimport store from '@store'\nimport { waitForEnabledElementImageToLoad } from '@/utils/wait.js'\n\nconst triggerEvent = cornerstoneTools.importInternal('util/triggerEvent')\n\nexport async function virtualStackScroll() {\n\ttry {\n\t\t// has to have an element to broadcast the event through\n\t\tconst element = store.getters.activeCanvas.dom\n\t\ttriggerEvent(element, cornerstoneTools.EVENTS.STACK_SCROLL, { virtual: true })\n\t} catch {\n\t\t// swallow errors if no active canvas can proxy our event\n\t}\n}\n\nexport async function virtualNewImage({ commit }, { metadata }) {\n\tcommit('SET_ACTIVE_IMAGE_METADATA', metadata)\n\t// Using cornerstone.EVENTS.NEW_IMAGE with a virtual Event ran into issues with the default newImageSynchronizer, so we update canvases manually instead\n\tcornerstoneTools.store.state.enabledElements.forEach(async element => {\n\t\ttry {\n\t\t\tconst imageLoaded = await waitForEnabledElementImageToLoad(element)\n\t\t\tif (imageLoaded) updateImage(element)\n\t\t} catch (err) {\n\t\t\t// ignore \"element not enabled\" errors\n\t\t}\n\t})\n}\n","import * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { eventBus } from '@services/eventBus'\n\nexport function toggleImageOrientationMarkers({ state, dispatch }) {\n\tconst isEnabled = !state.settingsPanel.isImageOrientationMarkersEnabled\n\tconst action = 'setImageOrientationMarkers'\n\tdispatch(action, isEnabled)\n\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type: action, payload: isEnabled })\n}\n\nexport function setImageOrientationMarkers({ commit }, value) {\n\tif (value) {\n\t\tcornerstoneTools.setToolEnabled('AstOrientationMarkers')\n\t} else {\n\t\tcornerstoneTools.setToolDisabled('AstOrientationMarkers')\n\t}\n\tcommit('SET_IMAGE_ORIENTATION_MARKERS', value)\n}\n","import { updateImage } from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { waitForEnabledElementImageToLoad } from '@/utils/wait.js'\nimport { eventBus } from '@services/eventBus'\n\nexport function toggleLengthAngles({ state, dispatch }) {\n\tconst type = 'setLengthAngles'\n\tconst payload = !state.settingsPanel.isLengthAnglesEnabled\n\tdispatch(type, payload)\n\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type, payload })\n}\n\nexport function setLengthAngles({ commit }, value) {\n\tconst firstLengthAngleTool = cornerstoneTools.store.state.tools.find(tool => tool.name === 'AstLengthAngle')\n\tif (firstLengthAngleTool) {\n\t\tconst toolName = firstLengthAngleTool.name\n\t\tconst toolMode = firstLengthAngleTool.mode.charAt(0).toUpperCase() + firstLengthAngleTool.mode.slice(1)\n\t\tcornerstoneTools[`setTool${toolMode}`](toolName, {\n\t\t\tshowAngles: value,\n\t\t})\n\t\tcornerstoneTools.store.state.enabledElements.forEach(async element => {\n\t\t\tconst hasLoadedImage = await waitForEnabledElementImageToLoad(element)\n\t\t\tif (hasLoadedImage) {\n\t\t\t\tupdateImage(element)\n\t\t\t}\n\t\t})\n\t}\n\n\tcommit('SET_LENGTH_ANGLES', value)\n}\n","import * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { synchronizers } from '../../toolManager/synchronizers'\nimport { waitForElementToBeEnabled, waitForEnabledElementImageToLoad } from '@/utils/wait.js'\nimport { eventBus } from '@services/eventBus'\n\n/**\n * Turns reference line synchronization on for all canvases. Uses\n * the currently active canvas as the \"source\" canvas.\n *\n * @public\n * @function toggleReferenceLineSynchronization\n * @param {*} { state, commit }\n * @returns {undefined}\n */\nexport function toggleReferenceLineSynchronization({ state, dispatch }) {\n\tdispatch(\n\t\t'setReferenceLineSynchronization',\n\t\t!state.settingsPanel.isReferenceLineSynchronizationEnabled\n\t)\n}\n\nexport function setReferenceLineSynchronization({ state, commit }, value) {\n\t// Update Cornerstone Synchronizer\n\tif (value) {\n\t\tsetSynchronizerSource(state.canvases, state.activeCanvasIndex)\n\t\tcornerstoneTools.setToolEnabled('ReferenceLines', {\n\t\t\tsynchronizationContext: synchronizers.referenceLinesSynchronizer,\n\t\t})\n\t} else {\n\t\tcornerstoneTools.setToolDisabled('ReferenceLines')\n\t}\n\tsynchronizers.referenceLinesSynchronizer.enabled = value\n\tcommit('SET_REFERENCE_LINE_SYNCHRONIZATION', value)\n\teventBus.broadcast(eventBus.type.VUEX_ACTION, {\n\t\ttype: 'setReferenceLineSynchronization',\n\t\tpayload: value,\n\t})\n}\n\n/**\n * Finds the active canvas and updates the referenceLinesSynchronizer to\n * use it as the source image.\n *\n * @private\n * @param {*} canvases\n * @param {*} activeCanvasIndex\n * @returns {undefined}\n */\nasync function setSynchronizerSource(canvases, activeCanvasIndex) {\n\t// Remove all\n\tsynchronizers.referenceLinesSynchronizer.destroy()\n\n\tif (activeCanvasIndex === -1) return\n\n\t// Setup\n\tconst canvas = canvases[activeCanvasIndex]\n\tconst isEnabled = await waitForElementToBeEnabled(canvas.dom)\n\tconst hasLoadedImage = await waitForEnabledElementImageToLoad(canvas.dom)\n\tconst hasImage = canvas.imageId || canvas.seriesId\n\n\tif (isEnabled && hasLoadedImage && canvas.dom && hasImage)\n\t\tsynchronizers.referenceLinesSynchronizer.addSource(canvas.dom)\n}\n","import { eventBus } from '@services/eventBus'\nimport { get, set } from 'lodash'\nimport Vue from 'vue'\n\n// prettier-ignore\nconst {\n\tVUEX_STATE_INIT_REQ,\n\tVUEX_STATE_INIT_RES,\n\tVUEX_STATE_UPDATE,\n\tVUEX_ACTION,\n\tVUEX_MUTATION,\n} = eventBus.type\n\n// Set of state paths to sync with other windows\nconst syncState = [\n\t'viewer.calibrations',\n\t'viewer.settingsPanel.overlayText',\n\t'viewer.settingsPanel.toolbarLocation',\n\t'viewer.settingsPanel.isImageOrientationMarkersEnabled',\n\t'viewer.settingsPanel.isLengthAnglesEnabled',\n\t'viewer.settingsPanel.isReferenceLineSynchronizationEnabled',\n\t'viewer.settingsPanel.isStackScrollSynchronizationEnabled',\n\t'viewer.settingsPanel.isManualStackScrollSynchronizationEnabled',\n\t'reportColorSettings',\n\t'mpr.showOverlayText',\n\t'mpr.showImageOrientationMarkers',\n\t'mpr.showAxisOverlay',\n\t'mpr.syncWindowLevels',\n]\n\n// Sync Cornerstone/Viewer events. These are off by default, but turned on when the viewer is loaded\nexport const syncViewerActions = {\n\tsetImageOrientationMarkers: false,\n\tsetLengthAngles: false,\n\tsetReferenceLineSynchronization: false,\n\tsetStackSynchronizationMethod: false,\n\tvirtualNewImage: false,\n\tvirtualStackScroll: false,\n\trequestImageStackForManualSync: false,\n\tsetImageStackForManualFromExternal: false,\n\tupdateExternalToolStateForId: false,\n\tclearAnnotations: false,\n}\n// Set of actions & mutations that can be synced with other windows\n// Action and mutation sync can be enabled/disabled externally\nexport const syncActions = {\n\tcalibrateFromExternalImage: true,\n\tclearCalibration: true,\n\tsetActiveTool: true,\n\tsetHotkeysForAuthenticatedUser: true,\n\trefreshWindowLevelPresetsForAuthenticatedUser: true,\n\trefreshToken: true,\n\tlogOut: true,\n\tsetTheme: true,\n\tsaveReportColorSettingsAction: true,\n\t...syncViewerActions,\n}\nconst syncMutations = {\n\tSET_MPR_ACTIVE_TOOL: true,\n\tSET_OPEN_STUDIES_NEW_WINDOW: true,\n}\nlet _globalSyncEnabled = false\n\n// This plugin will synchronize a whitelisted set of state paths, actions\n// and mutations between different windows\nexport default function vuexStoragePlugin(store) {\n\t// Handle state init requests from other windows\n\teventBus.on(VUEX_STATE_INIT_REQ, () => {\n\t\tconst state = {}\n\t\tsyncState.forEach(path => {\n\t\t\tstate[path] = get(store.state, path)\n\t\t})\n\t\texecProtected(() => eventBus.broadcast(VUEX_STATE_INIT_RES, state))\n\t\t// Start syncing if we got this request\n\t\tstartSync()\n\t})\n\n\t// Handle state init responses from requests that we send\n\teventBus.on(VUEX_STATE_INIT_RES, state => {\n\t\t// No need to initialize if we're already synchronizing\n\t\tif (_globalSyncEnabled) return\n\t\texecProtected(() => {\n\t\t\tObject.entries(state).forEach(([path, value]) => {\n\t\t\t\tset(store.state, path, value)\n\t\t\t})\n\t\t\t// Start syncing if we got this response\n\t\t\tstartSync()\n\t\t})\n\t})\n\n\t// If we were launched from another window...\n\tif (window.opener || window.parent) {\n\t\t// Request that external store seed our state\n\t\teventBus.broadcast(VUEX_STATE_INIT_REQ)\n\t}\n\n\t// Watch and broadcast events for each sync state path...\n\tsyncState.forEach(path =>\n\t\tstore.watch(\n\t\t\tstate => get(state, path),\n\t\t\tvalue => {\n\t\t\t\tif (!_globalSyncEnabled) return\n\t\t\t\texecProtected(() => eventBus.broadcast(VUEX_STATE_UPDATE, { path, value }))\n\t\t\t}\n\t\t)\n\t)\n\n\t// Handle state updates broadcast from other windows\n\teventBus.on(VUEX_STATE_UPDATE, ({ path, value } = {}) => {\n\t\tif (!_globalSyncEnabled || !syncState.includes(path)) return\n\t\texecProtected(() => set(store.state, path, value))\n\t})\n\t// Handle actions broadcast from other windows\n\teventBus.on(VUEX_ACTION, ({ type, payload } = {}) => {\n\t\tif (!_globalSyncEnabled || !syncActions[type]) return\n\t\texecProtected(() => {\n\t\t\tstore.dispatch(type, payload)\n\t\t})\n\t})\n\t// Handle mutations broadcast from other windows\n\teventBus.on(VUEX_MUTATION, ({ type, payload } = {}) => {\n\t\tif (!_globalSyncEnabled || !syncMutations[type]) return\n\t\texecProtected(() => store.commit(type, payload))\n\t})\n}\n\nfunction startSync() {\n\tVue.nextTick(() => (_globalSyncEnabled = true))\n}\n\n// This function prevents repetitive update cycles\n// between all browser windows\nlet ignoreUpdates = false\nfunction execProtected(fn) {\n\tif (ignoreUpdates) return\n\tignoreUpdates = true\n\tfn()\n\tVue.nextTick(() => {\n\t\tignoreUpdates = false\n\t})\n}\n","import * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { eventBus } from '@services/eventBus'\nimport { waitForEnabledElementImageToLoad } from '@/utils/wait.js'\nimport { syncActions, syncViewerActions } from '@store/plugins/vuexSyncPlugin'\n\nconst actionsToToggle = Object.keys(syncViewerActions)\n\n// Set up Cornerstone Tools based on the current store state\n// This is required because if the current browser window was launched\n// from another window, then our state was sourced from the other store\n// and the default Cornerstone settings may not agree with the current store\nexport async function startImageViewerSync({ state, dispatch, commit }) {\n\tconst {\n\t\toverlayText,\n\t\ttoolbarLocation,\n\t\tisImageOrientationMarkersEnabled,\n\t\tisLengthAnglesEnabled,\n\t\tisReferenceLineSynchronizationEnabled,\n\t\tisStackScrollSynchronizationEnabled,\n\t\tisManualStackScrollSynchronizationEnabled,\n\t} = state.settingsPanel\n\n\tawait Promise.all(cornerstoneTools.store.state.enabledElements.map(waitForEnabledElementImageToLoad))\n\n\tcommit('SET_OVERLAY_TEXT', overlayText)\n\tcommit('SET_VIEWER_TOOLBAR_LOCATION', toolbarLocation)\n\teventBus.on(eventBus.type.VIEWER_TOOLSTATE_SEND, sendExternalToolState)\n\trequestExternalToolState()\n\tdispatch('setImageOrientationMarkers', isImageOrientationMarkersEnabled)\n\tdispatch('setLengthAngles', isLengthAnglesEnabled)\n\tdispatch('setReferenceLineSynchronization', isReferenceLineSynchronizationEnabled)\n\n\tlet stackSynchronizationMethod = 'auto'\n\tif (!isStackScrollSynchronizationEnabled && isManualStackScrollSynchronizationEnabled) {\n\t\tstackSynchronizationMethod = 'manual'\n\t} else if (!isStackScrollSynchronizationEnabled && !isManualStackScrollSynchronizationEnabled) {\n\t\tstackSynchronizationMethod = 'off'\n\t}\n\tdispatch('setStackSynchronizationMethod', stackSynchronizationMethod)\n\tdispatch('setImgActiveTools')\n\t// Start tracking actions from other windows\n\tactionsToToggle.forEach(key => {\n\t\tsyncActions[key] = true\n\t})\n}\n\nexport function stopImageViewerSync() {\n\t// Stop tracking actions from other windows to prevents errors\n\tactionsToToggle.forEach(key => {\n\t\tsyncActions[key] = false\n\t})\n}\n\nexport function calibrateFromExternalImage({ dispatch }, { imageId, oldLength, oldPixelSpacing, newLength }) {\n\tdispatch('updateCalibration', { imageId, oldLength, oldPixelSpacing, newLength })\n\t// Custom image object because we don't have it, but these are the items it needs\n\tconst image = { imageId, ...oldPixelSpacing }\n\tcornerstoneTools.store.state.enabledElements.forEach(async element => {\n\t\t// Force cached stats update for all tool data\n\t\tconst tools = cornerstoneTools.store.state.tools.filter(tool => tool.updateCachedStats)\n\n\t\ttools.forEach(tool => {\n\t\t\tconst toolState = cornerstoneTools.getToolState(element, tool.name)\n\t\t\tif (toolState && toolState.data) {\n\t\t\t\ttoolState.data.forEach(d => {\n\t\t\t\t\ttool.updateCachedStats(image, element, d)\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t\tcornerstone.updateImage(element)\n\t})\n}\n\nfunction requestExternalToolState() {\n\teventBus.on(eventBus.type.VIEWER_TOOLSTATE_UPDATE, updateExternalToolState)\n\teventBus.broadcast(eventBus.type.VIEWER_TOOLSTATE_SEND)\n\t// clean up in case no window responds\n\tsetTimeout(eventBus.off, 200, eventBus.type.VIEWER_TOOLSTATE_UPDATE, updateExternalToolState)\n}\n\nfunction sendExternalToolState() {\n\tconst toolState = cornerstoneTools.globalImageIdSpecificToolStateManager.saveToolState()\n\tif (!toolState || !Object.keys(toolState).length) return // do not send empty state\n\teventBus.broadcast(eventBus.type.VIEWER_TOOLSTATE_UPDATE, toolState)\n}\n\nfunction updateExternalToolState(toolState) {\n\teventBus.off(eventBus.type.VIEWER_TOOLSTATE_UPDATE, updateExternalToolState)\n\tcornerstoneTools.globalImageIdSpecificToolStateManager.restoreToolState(toolState)\n\tcornerstoneTools.store.state.enabledElements.forEach(async element => {\n\t\tconst isEnabled = await waitForEnabledElementImageToLoad(element)\n\t\tif (isEnabled) {\n\t\t\tactivateToolsInToolState(toolState, element) // annotations will only appear if tool is active\n\t\t\tcornerstone.updateImage(element)\n\t\t}\n\t})\n}\n\nfunction activateToolsInToolState(toolState, element) {\n\tconst toolsInEachImageToolState = Object.values(toolState).map(i => Object.keys(i))\n\tconst toolsToActive = [...new Set(...[].concat(toolsInEachImageToolState))] // flatten and dedupe\n\ttoolsToActive.forEach(toolName => {\n\t\tconst tool = cornerstoneTools.getToolForElement(element, toolName)\n\t\ttool.mode = 'active'\n\t})\n}\n\nexport function updateExternalToolStateForId({ state }, { imageId, toolName, toolState }) {\n\t// NOTE: once CornerstoneTools includes PR#1341, we can replace this with one line `replaceImageIdToolState()`\n\tconst globalState = cornerstoneTools.globalImageIdSpecificToolStateManager.saveImageIdToolState(imageId) || {}\n\tglobalState[toolName] = toolState\n\tcornerstoneTools.globalImageIdSpecificToolStateManager.restoreImageIdToolState(imageId, globalState)\n\t// redraw canvases\n\tcornerstone.getEnabledElementsByImageId(imageId).forEach(enabledElement => {\n\t\tcornerstone.updateImage(enabledElement.element)\n\t})\n}\n","import metadata from '@/cornerstone/metadata'\nimport { eventBus } from '@services/eventBus'\nimport { showAlert } from '@dialogs/MessageDlg.vue'\nimport * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\n\nconst GROUP = 20864 // x5180\nconst ELEMENT = 8192 // x2000\n\nexport function updateCalibration({ commit }, { imageId, oldLength, oldPixelSpacing, newLength }) {\n\tif (!newLength) return\n\tconst isNumber = !isNaN(parseFloat(newLength))\n\tif (!isNumber) {\n\t\tshowAlert('The provided measurement is not a number.')\n\t\treturn\n\t}\n\tcommit('SET_CALIBRATION', { imageId, oldLength, oldPixelSpacing, newLength })\n\t// Grab current meta\n\tconst imageMeta = metadata.get(imageId)\n\tif (!imageMeta) return // image is not loaded\n\t// Remove old meta tag if it exists\n\tconst index = imageMeta.raw.findIndex(tag => tag.Group === GROUP && tag.Element === ELEMENT)\n\tif (index > -1) imageMeta.raw.splice(index, 1)\n\t// Create new meta\n\tconst oldScaleFactor = oldPixelSpacing.colPixelSpacing || oldPixelSpacing.rowPixelSpacing\n\tconst lengthInPixels = oldLength / oldScaleFactor\n\tconst newScaleFactor = newLength / lengthInPixels\n\n\tconst astCalibratedPixelSpacing = {\n\t\tGroup: GROUP,\n\t\tElement: ELEMENT,\n\t\tName: 'AstCalibratedPixelSpacing',\n\t\tValue: `${newScaleFactor}\\\\${newScaleFactor}`,\n\t}\n\timageMeta.raw.push(astCalibratedPixelSpacing)\n\t// Replace metadata\n\tmetadata.add(imageId, imageMeta.raw)\n}\n\nexport function clearCalibration({ commit }, { imageId }) {\n\tcommit('CLEAR_CALIBRATION', imageId)\n\tconst imageMeta = metadata.get(imageId)\n\tif (!imageMeta) return\n\t// Remove meta tag if it exists\n\tconst index = imageMeta.raw.findIndex(tag => tag.Group === GROUP && tag.Element === ELEMENT)\n\tif (index > -1) imageMeta.raw.splice(index, 1)\n\t// Replace metadata\n\tmetadata.add(imageId, imageMeta.raw)\n\tcornerstoneTools.store.state.enabledElements.forEach(async element => {\n\t\t// Force cached stats update for all tool data\n\t\tconst image = cornerstone.getImage(element)\n\t\tif (image.asterisImageId !== imageId) return\n\t\tconst tools = cornerstoneTools.store.state.tools.filter(tool => tool.updateCachedStats)\n\t\ttools.forEach(tool => {\n\t\t\tconst toolState = cornerstoneTools.getToolState(element, tool.name)\n\t\t\tif (toolState && toolState.data) {\n\t\t\t\ttoolState.data.forEach(d => {\n\t\t\t\t\ttool.updateCachedStats(image, element, d)\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t\tcornerstone.updateImage(element)\n\t})\n}\n\nexport function clearCalibrationAndBroadcast({ dispatch }, payload) {\n\tconst type = 'clearCalibration'\n\tdispatch(type, payload)\n\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type, payload })\n}\n","import { metaData } from 'cornerstone-core/dist/cornerstone.js'\nimport { eventBus } from '@services/eventBus'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { getCornerstoneImageIdParts } from '@/imageLoader'\nimport isLocalizerImage from '@/cornerstone/_shared/isLocalizerImage.js'\n\n// Sometimes the stack tool state currentImageIdIndex is updated before the element itself is\nexport default function setActiveImageMetaDataFromElement({ commit }, element, broadcast = true) {\n\ttry {\n\t\tconst { imageId, isLocalizerImage } = getImageDataFromElementStackState(element)\n\t\tif (!imageId) return // element does not have a stack tool state (e.g. Magnify Tool's generated canvas)\n\n\t\t// Save only what we need for tools and synchronizers\n\t\tconst imagePlaneModule = metaData.get('imagePlaneModule', imageId)\n\t\tif (!imagePlaneModule) return\n\t\tconst {\n\t\t\trowCosines,\n\t\t\tcolumnCosines,\n\t\t\timagePositionPatient,\n\t\t\tframeOfReferenceUID,\n\t\t\tcolumnPixelSpacing,\n\t\t\trowPixelSpacing,\n\t\t\tcolumns,\n\t\t\trows,\n\t\t} = imagePlaneModule\n\t\tconst metadata = {\n\t\t\trowCosines,\n\t\t\tcolumnCosines,\n\t\t\timagePositionPatient,\n\t\t\tframeOfReferenceUID,\n\t\t\tcolumnPixelSpacing,\n\t\t\trowPixelSpacing,\n\t\t\tcolumns,\n\t\t\trows,\n\t\t\timageId,\n\t\t\tisLocalizerImage,\n\t\t}\n\t\tcommit('SET_ACTIVE_IMAGE_METADATA', metadata)\n\t\tif (broadcast && metadata.frameOfReferenceUID) {\n\t\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, {\n\t\t\t\ttype: 'virtualNewImage',\n\t\t\t\tpayload: { metadata },\n\t\t\t})\n\t\t}\n\t} catch (e) {\n\t\tconsole.error('error getting metadata', e)\n\t}\n}\n\nfunction getImageDataFromElementStackState(element) {\n\ttry {\n\t\tconst stackToolState = cornerstoneTools.getToolState(element, 'stack')\n\t\tif (!stackToolState) return {}\n\t\tconst sourceStackData = stackToolState.data[0]\n\t\tconst sourceCornerstoneImageId = sourceStackData.imageIds[sourceStackData.currentImageIdIndex]\n\t\tconst { imageId } = getCornerstoneImageIdParts(sourceCornerstoneImageId)\n\t\treturn {\n\t\t\timageId,\n\t\t\tisLocalizerImage: isLocalizerImage(sourceStackData.imageIds, sourceCornerstoneImageId),\n\t\t}\n\t} catch (err) {\n\t\t// ignore \"element not enabled\" exceptions when navigating quickly between series\n\t\treturn {}\n\t}\n}\n","import api from '@services/api'\n\n// Actions\nimport clearAnnotations from './clearAnnotations'\nimport copyCanvasAsync from './copyCanvasAsync'\nimport createAnnotationRenderingAsync from './createAnnotationRenderingAsync'\nimport imageNavigation from './imageNavigation'\nimport printCanvasAsync from './printCanvasAsync'\nimport resetActiveCanvas from './resetActiveCanvas'\nimport saveCanvasAsync from './saveCanvasAsync'\nimport setActiveCanvas from './setActiveCanvas'\nimport setCanvasInfo from './setCanvasInfo'\nimport {\n\tsetStackSynchronizationMethod,\n\trequestImageStackForManualSync,\n\tsetImageStackForManualFromExternal,\n} from './setStackSynchronizationMethod'\nimport viewportActions from './viewportActions'\nimport { virtualStackScroll, virtualNewImage } from './virtualCornerstoneEvents'\nimport { toggleImageOrientationMarkers, setImageOrientationMarkers } from './imageOrientationMarkers'\nimport { toggleLengthAngles, setLengthAngles } from './lengthAngles'\nimport { toggleReferenceLineSynchronization, setReferenceLineSynchronization } from './referenceLineSynchronization'\nimport {\n\tstartImageViewerSync,\n\tstopImageViewerSync,\n\tcalibrateFromExternalImage,\n\tupdateExternalToolStateForId,\n} from './imageViewerSync'\nimport { updateCalibration, clearCalibration, clearCalibrationAndBroadcast } from './calibration'\nimport setActiveImageMetaDataFromElement from './setActiveImageMetaDataFromElement'\nimport studyData from '@services/studyData'\nimport { eventBus } from '@services/eventBus'\nimport storage from '@services/storage'\nimport { omniDesktop } from '@/electron/omniDesktop'\n\nconst viewer = {\n\tCONSIGNER: 'consigner',\n\tCONSULTATION_REQUEST: 'consulation_request',\n\tREPORT: 'report',\n\tSTUDY: 'study',\n\tSTUDY_PARTNER: 'study_partner',\n}\n\nexport default {\n\t...viewportActions,\n\tclearAnnotations,\n\tsyncClearAnnotations(state, { activeImage, activeSeries }) {\n\t\tclearAnnotations(state, { activeImage, activeSeries })\n\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, {\n\t\t\ttype: 'clearAnnotations',\n\t\t\tpayload: { activeImage, activeSeries },\n\t\t})\n\t},\n\tcopyCanvasAsync,\n\tcreateAnnotationRenderingAsync,\n\t...imageNavigation,\n\tprintCanvasAsync,\n\tresetActiveCanvas,\n\tsaveCanvasAsync,\n\tsetActiveCanvas,\n\tsetCanvasInfo,\n\ttoggleImageOrientationMarkers,\n\tsetImageOrientationMarkers,\n\ttoggleLengthAngles,\n\tsetLengthAngles,\n\ttoggleReferenceLineSynchronization,\n\tsetReferenceLineSynchronization,\n\tvirtualStackScroll,\n\tvirtualNewImage,\n\tsetActiveImageMetaDataFromElement,\n\tsetStackSynchronizationMethodAndBroadcast({ dispatch }, payload) {\n\t\tconst type = 'setStackSynchronizationMethod'\n\t\tdispatch(type, payload)\n\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type, payload })\n\t},\n\tsetStackSynchronizationMethod,\n\trequestImageStackForManualSync,\n\tsetImageStackForManualFromExternal,\n\tstartImageViewerSync,\n\tstopImageViewerSync,\n\tupdateCalibration,\n\tclearCalibration,\n\tclearCalibrationAndBroadcast,\n\tcalibrateFromExternalImage,\n\tupdateExternalToolStateForId,\n\ttoggleStackSynchronizationMethod({ state, dispatch }, method) {\n\t\tswitch (method) {\n\t\t\tcase 'auto':\n\t\t\t\tdispatch(\n\t\t\t\t\t'setStackSynchronizationMethod',\n\t\t\t\t\tstate.settingsPanel.isStackScrollSynchronizationEnabled ? 'off' : 'auto'\n\t\t\t\t)\n\t\t\t\tbreak\n\t\t\tcase 'manual':\n\t\t\t\tdispatch(\n\t\t\t\t\t'setStackSynchronizationMethod',\n\t\t\t\t\tstate.settingsPanel.isManualStackScrollSynchronizationEnabled ? 'off' : 'manual'\n\t\t\t\t)\n\t\t\t\tbreak\n\t\t}\n\t},\n\tasync getConsignerStudyViewerVmAsync({ state, commit, dispatch }, { id }) {\n\t\tconst apiMethod = api.viewer.getConsignerStudy\n\t\tconst postData = { id }\n\t\treturn getViewerViewModel({ state, commit, dispatch }, { apiMethod, postData }, viewer.CONSIGNER)\n\t},\n\tasync getConsultationRequestViewerVmAsync({ state, commit, dispatch }, { id, clinicCode, recipientId }) {\n\t\tconst apiMethod = api.viewer.getConsultationRequest\n\t\tconst postData = { id, clinicCode, recipientId }\n\t\treturn getViewerViewModel({ state, commit, dispatch }, { apiMethod, postData }, viewer.CONSULTATION_REQUEST)\n\t},\n\tasync getReportViewerVmAsync(\n\t\t{ state, commit, dispatch },\n\t\t{ id, initialSeriesId, initialSeriesIds, initialImageId, fillCanvases }\n\t) {\n\t\tconst apiMethod = api.study.getReportStudies\n\t\tconst postData = id\n\t\treturn getViewerViewModel(\n\t\t\t{ state, commit, dispatch },\n\t\t\t{ apiMethod, postData, initialSeriesId, initialImageId, initialSeriesIds, fillCanvases },\n\t\t\tviewer.REPORT\n\t\t)\n\t},\n\tasync getStudyViewerVmAsync(\n\t\t{ state, commit, dispatch },\n\t\t{ ids, initialSeriesId, initialImageId, initialSeriesIds, fillCanvases }\n\t) {\n\t\tconst apiMethod = api.viewer.getStudy\n\t\tconst postData = { ids }\n\t\treturn getViewerViewModel(\n\t\t\t{ state, commit, dispatch },\n\t\t\t{ apiMethod, postData, initialSeriesId, initialImageId, initialSeriesIds, fillCanvases },\n\t\t\tviewer.STUDY\n\t\t)\n\t},\n\tasync getStudyPartnerViewerVmAsync(\n\t\t{ state, commit, dispatch },\n\t\t{ ids, clinicCode, initialSeriesId, initialImageId }\n\t) {\n\t\tconst apiMethod = api.viewer.getPartnerStudy\n\t\tconst postData = { ids, clinicCode }\n\t\treturn getViewerViewModel(\n\t\t\t{ state, commit, dispatch },\n\t\t\t{ apiMethod, postData, initialSeriesId, initialImageId },\n\t\t\tviewer.STUDY_PARTNER\n\t\t)\n\t},\n\tasync removeStudy({ commit, dispatch, state }, { studyId, reportId }) {\n\t\tcommit('REMOVE_STUDY', studyId)\n\t\tif (omniDesktop.isConnected) omniDesktop.request('removeStudy', { studyId, reportId })\n\t\t// TODO: will need to sync with other windows!!! (Remove from other windows, shuffle all open windows)\n\t\tconst series = [].concat(...state.studies.map(study => study.imageData.series))\n\t\tcommit('FILL_CANVASES', series)\n\t\tif (state.hangingProtocol) dispatch('rebuildRemnantDisplaySets')\n\t},\n\tasync fetchLoadSeriesFromMiddle({ commit }) {\n\t\tconst loadSeriesFromMiddle = await api.user.getUserSetting('LoadSeriesFromMiddle', 'Viewer').then(r => r && r.data)\n\t\tif ([true, false].includes(loadSeriesFromMiddle)) commit('SET_LOAD_SERIES_FROM_MIDDLE', loadSeriesFromMiddle)\n\t},\n\tasync setLoadSeriesFromMiddle({ commit }, loadSeriesFromMiddle) {\n\t\tcommit('SET_LOAD_SERIES_FROM_MIDDLE', loadSeriesFromMiddle)\n\t\tapi.user.setUserSetting('LoadSeriesFromMiddle', 'Viewer', loadSeriesFromMiddle)\n\t},\n\tasync fetchViewerToolbarLocation({ commit }) {\n\t\tconst location = await api.user.getUserSetting('ToolbarLocation', 'Viewer').then(r => r && r.data)\n\t\tif (['top', 'right', 'bottom', 'left'].includes(location)) commit('SET_VIEWER_TOOLBAR_LOCATION', location)\n\t},\n\tasync setViewerToolbarLocation({ commit }, location) {\n\t\tcommit('SET_VIEWER_TOOLBAR_LOCATION', location)\n\t\tapi.user.setUserSetting('ToolbarLocation', 'Viewer', location)\n\t},\n\tasync getUserViewerSettings({ commit, dispatch }) {\n\t\t// const { data } = await api.user.getViewerSettings() // TODO\n\t\t// commit('SET_USER_SETTINGS', data)\n\t\tconst id = storage.getItem('hangingProtocolId')\n\t\tif (id) dispatch('updateHangingProtocol', { id })\n\t},\n\tasync updateUserViewerSettings({ state, commit }, data) {\n\t\tif (!data) return\n\n\t\tcommit('SET_USER_SETTINGS', data)\n\t\tif (state.hangingProtocol) {\n\t\t\tstorage.setItem('hangingProtocolId', state.hangingProtocol.id)\n\t\t} else {\n\t\t\tstorage.removeItem('hangingProtocolId')\n\t\t}\n\t\t// await api.user.updateViewerSettings(data) // TODO\n\t},\n\tasync getHangingProtocols({ commit, dispatch }) {\n\t\tconst { data } = await api.clinic.getHangingProtocols()\n\t\tcommit('SET_HANGING_PROTOCOLS', data)\n\t},\n\tasync updateHangingProtocol({ state, commit, dispatch, getters }, { id }) {\n\t\tconst isValidId = state.hangingProtocols.some(protocol => protocol.value === id)\n\t\tif (!id || !isValidId) {\n\t\t\tcommit('SET_HANGING_PROTOCOL', undefined)\n\t\t\treturn dispatch('updateUserViewerSettings', { hangingProtocol: null })\n\t\t}\n\n\t\ttry {\n\t\t\tcommit('SET_HANGING_PROTOCOL_LOADING', true)\n\t\t\tconst { data } = await api.clinic.getHangingProtocol(id)\n\t\t\tconst remnantDisplaySets = createRemnantDisplaySets(data.displaySets, getters.allSeries)\n\t\t\tdata.displaySets = data.displaySets.concat(remnantDisplaySets)\n\t\t\tcommit('SET_ACTIVE_DISPLAYSET_INDEX', 0)\n\t\t\tcommit('SET_HANGING_PROTOCOL', data)\n\t\t\tdispatch('setHangingProtocolDisplaySet', 0)\n\t\t\t// HACK: Set initial displayset again in 100ms to win race condition\n\t\t\t// with debounced update in ImageViewer\n\t\t\t// TODO: FILL_CANVASES after any potential hanging protocol loading?\n\t\t\tsetTimeout(() => {\n\t\t\t\tdispatch('setHangingProtocolDisplaySet', 0)\n\t\t\t}, 100)\n\t\t\tdispatch('updateUserViewerSettings', { hangingProtocol: id })\n\t\t} catch (ex) {\n\t\t\tdispatch('updateHangingProtocol', null)\n\t\t} finally {\n\t\t\tcommit('SET_HANGING_PROTOCOL_LOADING', false)\n\t\t}\n\t},\n\trebuildRemnantDisplaySets({ commit, dispatch, getters, state }) {\n\t\tlet displaySets = state.hangingProtocol.displaySets.filter(displaySet => !displaySet.name.includes('Remnant'))\n\t\tconst remnantDisplaySets = createRemnantDisplaySets(displaySets, getters.allSeries)\n\t\tdisplaySets = displaySets.concat(remnantDisplaySets)\n\t\tcommit('SET_ACTIVE_DISPLAYSET_INDEX', 0)\n\t\tcommit('SET_HANGING_PROTOCOL', { ...state.hangingProtocol, displaySets })\n\t\tdispatch('setHangingProtocolDisplaySet', 0)\n\t},\n\tsetHangingProtocolDisplaySet({ commit, dispatch, state }, index) {\n\t\tif (!state.hangingProtocol || !state.hangingProtocol.displaySets) return\n\t\tconst displaySet = state.hangingProtocol.displaySets[index]\n\t\tif (!displaySet) return\n\t\tdispatch('setActiveCanvas', { canvasIndex: 0 })\n\t\tconst columns = displaySet.rows[0].length\n\t\tcommit('SET_CANVAS_LAYOUT', {\n\t\t\tcolumns,\n\t\t\tnumCanvases: columns * displaySet.rows.length,\n\t\t})\n\t\tdispatch('updateDisplaySetCanvases', displaySet)\n\t\tcommit('SET_ACTIVE_DISPLAYSET_INDEX', index)\n\t},\n\tupdateDisplaySetCanvases({ dispatch, getters }, { rows }) {\n\t\tlet canvasIndex = 0\n\t\trows.forEach(imageViews => {\n\t\t\timageViews.forEach(imageView => {\n\t\t\t\tconst series = getters.allSeries.find(currentSeries => {\n\t\t\t\t\tif (currentSeries.imageViewId === imageView.id) return true\n\t\t\t\t\tif (currentSeries.seriesId === imageView.id) return true\n\t\t\t\t\tif (currentSeries.images[0].imageViewId === imageView.id) return true\n\t\t\t\t\treturn false\n\t\t\t\t})\n\t\t\t\tdispatch('updateCanvas', {\n\t\t\t\t\tcanvasIndex,\n\t\t\t\t\tseriesId: series ? series.seriesId : null,\n\t\t\t\t\timageView,\n\t\t\t\t})\n\t\t\t\tcanvasIndex++\n\t\t\t})\n\t\t})\n\t},\n\tasync switchSeries({ state, dispatch }, { reportId, studyId, seriesId, imageId, clinicCode }) {\n\t\tconst isStudyLoaded = studyId && state.studies.some(s => s.studyId === studyId)\n\t\tconst isReportLoaded = reportId && state.studies.some(s => s.reportId === reportId)\n\t\tif (studyId && !isStudyLoaded) {\n\t\t\tif (clinicCode) {\n\t\t\t\t// From partner viewer only\n\t\t\t\tawait dispatch('getStudyPartnerViewerVmAsync', {\n\t\t\t\t\tids: studyId,\n\t\t\t\t\tclinicCode,\n\t\t\t\t\tfillCanvases: false,\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tawait dispatch('getStudyViewerVmAsync', {\n\t\t\t\t\tids: studyId,\n\t\t\t\t\tfillCanvases: false,\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tif (reportId && !isReportLoaded) {\n\t\t\tawait dispatch('getReportViewerVmAsync', {\n\t\t\t\tid: reportId,\n\t\t\t\tfillCanvases: false,\n\t\t\t})\n\t\t}\n\t\tif (reportId || studyId || seriesId || imageId) {\n\t\t\tdispatch('updateCanvas', { studyId, seriesId, asterisImageId: imageId })\n\t\t}\n\t},\n\tasync updateCanvas(\n\t\t{ state, commit, getters, dispatch },\n\t\t{ canvasIndex, studyId, seriesId, asterisImageId, frameIndex, imageView }\n\t) {\n\t\tcanvasIndex = isNaN(canvasIndex) ? state.activeCanvasIndex : canvasIndex\n\t\tconst canvas = state.canvases[canvasIndex]\n\n\t\tif (asterisImageId && !seriesId) {\n\t\t\tconst series = getters.allSeries.find(series => series.images.some(i => i.imageId === asterisImageId))\n\t\t\tif (series) {\n\t\t\t\tstudyId = series.studyId\n\t\t\t\tseriesId = series.seriesId\n\t\t\t}\n\t\t} else if (seriesId && !studyId) {\n\t\t\tconst series = getters.allSeries.find(\n\t\t\t\tseries => series.seriesId === seriesId || series.originalSeriesId === seriesId\n\t\t\t)\n\t\t\tif (series) {\n\t\t\t\tstudyId = series.studyId\n\t\t\t\tseriesId = series.seriesId // in case image.seriesId is the originalSeriesId\n\t\t\t}\n\t\t}\n\t\t// Cache previous series if already set/modified\n\t\tif (studyId && seriesId && canvas.seriesId !== seriesId) {\n\t\t\tif (canvas.seriesId) dispatch('cacheSeriesViewport', canvas)\n\t\t\tcommit('SET_CANVAS_ACTIVE_SERIES', {\n\t\t\t\tcanvasIndex,\n\t\t\t\tstudyId,\n\t\t\t\tseriesId,\n\t\t\t\timageView,\n\t\t\t})\n\t\t}\n\t\tif (!seriesId && imageView !== undefined) {\n\t\t\tif (canvas.seriesId) dispatch('cacheSeriesViewport', canvas)\n\t\t\tcommit('SET_CANVAS_ACTIVE_SERIES', { canvasIndex, imageView })\n\t\t}\n\t\tif (asterisImageId !== undefined) {\n\t\t\tcommit('SET_CANVAS_ACTIVE_IMAGE', {\n\t\t\t\tcanvasIndex,\n\t\t\t\tasterisImageId,\n\t\t\t\tframeIndex,\n\t\t\t})\n\t\t}\n\t},\n\tpreviousSeries: ({ dispatch, getters }) => {\n\t\tconst seriesIndex =\n\t\t\tgetters.activeStudy.imageData.series.findIndex(s => s.seriesId === getters.activeCanvas.seriesId) - 1\n\t\tconst series = getters.activeStudy.imageData.series[seriesIndex]\n\t\tif (series)\n\t\t\tdispatch('updateCanvas', {\n\t\t\t\tstudyId: series.studyId,\n\t\t\t\tseriesId: series.seriesId,\n\t\t\t})\n\t},\n\tnextSeries: ({ dispatch, getters }) => {\n\t\tconst seriesIndex =\n\t\t\tgetters.activeStudy.imageData.series.findIndex(s => s.seriesId === getters.activeCanvas.seriesId) + 1\n\t\tconst series = getters.activeStudy.imageData.series[seriesIndex]\n\t\tif (series)\n\t\t\tdispatch('updateCanvas', {\n\t\t\t\tstudyId: series.studyId,\n\t\t\t\tseriesId: series.seriesId,\n\t\t\t})\n\t},\n\tpreviousDisplaySet: ({ state, dispatch }) => {\n\t\tif (state.hangingProtocol) {\n\t\t\tdispatch('setHangingProtocolDisplaySet', state.activeDisplaySetIndex - 1)\n\t\t} else {\n\t\t\tdispatch('previousSeries')\n\t\t}\n\t},\n\tnextDisplaySet: ({ state, dispatch }) => {\n\t\tif (state.hangingProtocol) {\n\t\t\tdispatch('setHangingProtocolDisplaySet', state.activeDisplaySetIndex + 1)\n\t\t} else {\n\t\t\tdispatch('nextSeries')\n\t\t}\n\t},\n\ttoggleCanvasFullscreen({ state, commit }) {\n\t\tconst { canvasLayout, prevCanvasLayout } = state\n\t\tconst { canvasesPerRow, numCanvases } = canvasLayout\n\t\t// Initialize fullscreen status for current and previous layouts\n\t\tconst currFullscreen = canvasesPerRow === 1 && numCanvases === 1\n\t\tconst prevNonFullscreen =\n\t\t\tprevCanvasLayout && (prevCanvasLayout.canvasesPerRow !== 1 || prevCanvasLayout.numCanvases !== 1)\n\t\t// Default to fullscreen layout\n\t\tconst newLayout = { columns: 1, numCanvases: 1 }\n\t\t// Only apply non-fullscreen layout if we're in fullscreen and previous layout was not fullscreen\n\t\tif (currFullscreen && prevNonFullscreen) {\n\t\t\tnewLayout.columns = prevCanvasLayout.canvasesPerRow\n\t\t\tnewLayout.numCanvases = prevCanvasLayout.numCanvases\n\t\t}\n\t\t// Don't do anything if layout didn't change\n\t\tif (newLayout.columns === canvasesPerRow && newLayout.numCanvases === numCanvases) {\n\t\t\treturn\n\t\t}\n\t\t// Order of operations matters if we're in fullscreen or not\n\t\tif (currFullscreen) {\n\t\t\t// Set new layout first so we can perform switch\n\t\t\tcommit('SET_CANVAS_LAYOUT', newLayout)\n\t\t\t// Switch active canvas to the previous position\n\t\t\tcommit('SWITCH_CANVASES', {\n\t\t\t\tfromIndex: 0,\n\t\t\t\ttoIndex: state.prevActiveCanvasIndex,\n\t\t\t})\n\t\t\t// Set active canvas to the previous position\n\t\t\tcommit('SET_ACTIVE_CANVAS_INDEX', state.prevActiveCanvasIndex)\n\t\t} else {\n\t\t\t// Move active canvas to first position\n\t\t\tcommit('SWITCH_CANVASES', {\n\t\t\t\tfromIndex: state.activeCanvasIndex,\n\t\t\t\ttoIndex: 0,\n\t\t\t})\n\t\t\t// Switch active canvas to the first position\n\t\t\tcommit('SET_ACTIVE_CANVAS_INDEX', 0)\n\t\t\t// Set the fullscreen layout\n\t\t\tcommit('SET_CANVAS_LAYOUT', newLayout)\n\t\t}\n\t},\n\tasync setCanvasLayoutForModalityAndSpread({ commit, rootGetters }, { modality, numSeries }) {\n\t\tif (rootGetters.isAuthenticated) {\n\t\t\tconst MAX_IMAGES_PER_MONITOR = 2\n\t\t\ttry {\n\t\t\t\tconst response = await api.user.getLayoutPreset(modality)\n\t\t\t\tif (response.status === 200) {\n\t\t\t\t\tconst { seriesRows, seriesColumns } = response.data\n\t\t\t\t\tif (numSeries < seriesRows * seriesColumns && numSeries <= MAX_IMAGES_PER_MONITOR) {\n\t\t\t\t\t\t// show in vertical orientation if the window is taller than width\n\t\t\t\t\t\tlet isVertical = window.innerWidth < window.innerHeight\n\t\t\t\t\t\tcommit('SET_CANVAS_LAYOUT', {\n\t\t\t\t\t\t\tcolumns: isVertical ? 1 : numSeries,\n\t\t\t\t\t\t\tnumCanvases: numSeries,\n\t\t\t\t\t\t})\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcommit('SET_CANVAS_LAYOUT', {\n\t\t\t\t\t\t\tcolumns: seriesColumns,\n\t\t\t\t\t\t\tnumCanvases: seriesColumns * seriesRows,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\t// Response could be null if never set, means default\n\t\t\t\telse if (response.status === 204) {\n\t\t\t\t\tif (numSeries <= MAX_IMAGES_PER_MONITOR) {\n\t\t\t\t\t\t// show in vertical orientation if the window is taller than width\n\t\t\t\t\t\tlet isVertical = window.innerWidth < window.innerHeight\n\t\t\t\t\t\tcommit('SET_CANVAS_LAYOUT', {\n\t\t\t\t\t\t\tcolumns: isVertical ? 1 : numSeries,\n\t\t\t\t\t\t\tnumCanvases: numSeries,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t// do nothing, error handling is already provided by API class\n\t\t\t}\n\t\t}\n\t\t// Unauthenticated users always start with 1x1\n\t\tcommit('SET_CANVAS_LAYOUT', {\n\t\t\tcolumns: 1,\n\t\t\tnumCanvases: 1,\n\t\t})\n\t},\n async fetchViewerSettings({commit}) {\n await api.user.getUserSetting('ViewerSettings', 'OmniReport').then(\n (success) => {\n if (success.data) {\n commit('SET_OVERLAY_TEXT', success.data.overlayTextEnabled)\n commit('SET_IMAGE_ORIENTATION_MARKERS', success.data.imageOrientationMarkersEnabled)\n commit('SET_LENGTH_ANGLES', success.data.lengthAnglesEnabled)\n commit('SET_REFERENCE_LINE_SYNCHRONIZATION', success.data.referenceLineSynchronizationEnabled)\n }\n }\n )\n },\n async fetchStudyListHeaderSettings({commit}) {\n await api.user.getUserSetting('ViewerSettings', 'StudyListHeader').then(\n (success) => {\n if (success.data) {\n commit('SET_STUDY_LIST_HEADER', success.data.tableHeaders)\n }\n }\n )\n },\n async fetchTeleconsultationListHeaderSettings({commit}) {\n await api.user.getUserSetting('ViewerSettings', 'TeleconsultationListHeader').then(\n (success) => {\n if (success.data) {\n commit('SET_TELECONSULTATION_LIST_HEADER', success.data.tableHeaders)\n }\n }\n )\n },\n}\n\nfunction createRemnantDisplaySets(displaySets, series) {\n\tconst imageViewIds = getImageViewIds(displaySets)\n\tconst remnantSeries = series.filter(series => {\n\t\tconst seriesImageViewId = series.imageVewId || series.images[0].imageViewId\n\t\treturn !imageViewIds.includes(seriesImageViewId)\n\t})\n\tconst remnantImageViews = remnantSeries.map(series => ({\n\t\tid: series.imageViewId || series.seriesId,\n\t}))\n\tconst imageViewsPerRow = 2\n\tconst rowsPerDisplaySet = 2\n\tlet rows = []\n\twhile (remnantImageViews.length) {\n\t\trows.push(remnantImageViews.splice(0, imageViewsPerRow))\n\t}\n\tlet remnantDisplaySets = []\n\tlet displaySetIndex = 1\n\twhile (rows.length) {\n\t\tremnantDisplaySets.push({\n\t\t\tname: 'Remnant Images ' + displaySetIndex,\n\t\t\trows: rows.splice(0, rowsPerDisplaySet),\n\t\t})\n\t\tdisplaySetIndex++\n\t}\n\treturn remnantDisplaySets\n}\n\nfunction getImageViewIds(displaySets) {\n\tlet imageViewIds = []\n\tdisplaySets.forEach(displaySet => {\n\t\tdisplaySet.rows.forEach(row => {\n\t\t\trow.forEach(imageView => {\n\t\t\t\timageViewIds.push(imageView.id)\n\t\t\t})\n\t\t})\n\t})\n\treturn imageViewIds\n}\n\nconst getViewerViewModel = async (\n\t{ commit, dispatch, state },\n\t{ apiMethod, postData, initialSeriesId, initialImageId, initialSeriesIds = [], fillCanvases = true },\n\tsource\n) => {\n\tconst request = apiMethod(postData)\n\n\ttry {\n\t\tcommit('SET_VIEWER_LOADING', true)\n\t\tconst data = await request\n\t\tif (data === undefined) return\n\t\tif (data.deletedStudies && data.deletedStudies.length) return\n\t\tif (data.studiesNotFound && data.studiesNotFound.length) {\n\t\t\tcommit('SET_STUDIES_NOT_FOUND', data.studiesNotFound)\n\t\t\treturn\n\t\t}\n\t\tcommit('SET_CONSULTATION_REQUEST', data)\n\n\t\t// TODO: THESE SHOULD COME DOWN IN A CONSISTENT FORMAT\n\t\t// WE SHOULDN'T NEED TO DO THIS KIND OF CHECKING IF RECEIVING A CONSISTENT VM STRUCTURE\n\t\tlet studies = data\n\t\tif (studies && !studies.length) {\n\t\t\t// Repository\n\t\t\tif (studies.imageData) studies = [studies]\n\t\t\t// Consultation request\n\t\t\telse if (studies.studies) studies = studies.studies\n\t\t}\n\t\tcommit('ADD_STUDIES', { studies, reportId: source === viewer.REPORT && postData })\n\t\tif (fillCanvases) {\n\t\t\tlet series = [].concat(...state.studies.map(study => study.imageData.series))\n\t\t\tif (initialSeriesIds && initialSeriesIds.length) {\n\t\t\t\tseries = series.filter(series => {\n\t\t\t\t\treturn initialSeriesIds.includes(series.seriesId)\n\t\t\t\t})\n\t\t\t}\n\t\t\tcommit('FILL_CANVASES', series)\n\t\t}\n\t\tif (state.hangingProtocol) dispatch('rebuildRemnantDisplaySets')\n\t\tif (initialSeriesId) {\n\t\t\tdispatch('switchSeries', { seriesId: initialSeriesId })\n\t\t}\n\t\tif (initialImageId) {\n\t\t\tdispatch('switchSeries', { imageId: initialImageId })\n\t\t}\n\t\tlet showReports = true // Show reports by default\n\t\tlet reportIds = [] // Empty array designates all reports\n\t\tswitch (source) {\n\t\t\tcase viewer.CONSIGNER:\n\t\t\t\t// Don't show any reports\n\t\t\t\tshowReports = false\n\t\t\t\tbreak\n\t\t\tcase viewer.CONSULTATION_REQUEST:\n\t\t\t\t// Only show reports selected in the consultation request\n\t\t\t\treportIds = data.reports.map(r => r.reportId)\n\t\t\t\tshowReports = reportIds.length\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\t// Show all reports by default\n\t\t\t\tbreak\n\t\t}\n\t\tif (showReports) {\n\t\t\tstate.studies.forEach(s => {\n\t\t\t\tstudyData.getRelatedStudiesAndReports(s.studyId, postData.clinicCode, false).then(r => {\n\t\t\t\t\tif (reportIds.length) {\n\t\t\t\t\t\ts.imageData.reports = r.reports.filter(\n\t\t\t\t\t\t\trp => reportIds.includes(rp.reportId) || reportIds.includes(rp.consultantReportId)\n\t\t\t\t\t\t)\n\t\t\t\t\t} else {\n\t\t\t\t\t\ts.imageData.reports = r.reports\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t} catch (err) {\n\t\tcommit('SET_VIEWER_HIDE_LOADING_TEXT')\n\t} finally {\n\t\tcommit('SET_VIEWER_LOADING', false)\n\t}\n}\n","import state from './state'\nimport getters from './getters'\nimport mutations from './mutations'\nimport actions from './actions'\n\nexport default {\n state,\n getters,\n mutations,\n actions,\n}\n","import api from '@services/api'\nimport { isArray } from 'lodash'\nimport { TOOLS as MPR_TOOLS } from '@vtk/VTKViewport/consts'\n\n// Name mappings between hard coded Cornerstone tools, MPR tools\n// and the db tool names stored in the database. Missing names\n// imply that the tool isn't supported for that particular viewer\nconst toolNames = [\n\t{\n\t\tdbName: 'Levels',\n\t\timgName: 'Wwwc',\n\t\tmprName: MPR_TOOLS.LEVEL_TOOL,\n\t},\n\t{\n\t\tdbName: 'Zoom',\n\t\timgName: 'Zoom',\n\t\tmprName: MPR_TOOLS.ZOOM_TOOL,\n\t},\n\t{\n\t\tdbName: 'Magnify',\n\t\timgName: 'Magnify',\n\t\tmprName: '',\n\t},\n\t{\n\t\tdbName: 'Pan',\n\t\timgName: 'Pan',\n\t\tmprName: MPR_TOOLS.PAN_TOOL,\n\t},\n\t{\n\t\tdbName: 'Plane',\n\t\timgName: '',\n\t\tmprName: MPR_TOOLS.PLANE_TOOL,\n\t},\n\t{\n\t\tdbName: 'Length',\n\t\timgName: 'AstLengthAngle',\n\t\tmprName: MPR_TOOLS.LENGTH_TOOL,\n\t},\n\t{\n\t\tdbName: 'Rectangle',\n\t\timgName: 'AstRectangleRoi',\n\t\tmprName: MPR_TOOLS.RECT_TOOL,\n\t},\n\t{\n\t\tdbName: 'Circle',\n\t\timgName: 'AstCircleRoi',\n\t\tmprName: MPR_TOOLS.CIRCLE_TOOL,\n\t},\n\t{\n\t\tdbName: 'Ellipse',\n\t\timgName: 'AstEllipticalRoi',\n\t\tmprName: MPR_TOOLS.ELLIPSE_TOOL,\n\t},\n\t{\n\t\tdbName: 'Angle',\n\t\timgName: 'AstAngle',\n\t\tmprName: MPR_TOOLS.ANGLE_TOOL,\n\t},\n\t{\n\t\tdbName: 'Text',\n\t\timgName: 'AstText',\n\t\tmprName: MPR_TOOLS.TEXT_TOOL,\n\t},\n\t{\n\t\tdbName: 'Arrow',\n\t\timgName: 'AstArrowAnnotate',\n\t\tmprName: MPR_TOOLS.ARROW_TOOL,\n\t},\n\t{\n\t\tdbName: 'Eraser',\n\t\timgName: 'AstEraser',\n\t\tmprName: MPR_TOOLS.ERASER_TOOL,\n\t},\n\t{\n\t\tdbName: 'Calibration',\n\t\timgName: 'AstCalibration',\n\t\tmprName: '',\n\t},\n\t{\n\t\tdbName: 'VertebralHeart',\n\t\timgName: 'AstVertebralHeart',\n\t\tmprName: '',\n\t},\n\t{\n\t\tdbName: 'Tplo',\n\t\timgName: 'AstTplo',\n\t\tmprName: '',\n\t},\n\t{\n\t\tdbName: 'Tta',\n\t\timgName: 'AstTta',\n\t\tmprName: '',\n\t},\n\t{\n\t\tdbName: 'HipDysplasia',\n\t\timgName: 'AstHipDysplasia',\n\t\tmprName: '',\n\t},\n\t{\n\t\tdbName: 'PennHip',\n\t\timgName: 'AstPennHip',\n\t\tmprName: '',\n\t},\n\t{\n\t\tdbName: 'StackScroll',\n\t\timgName: 'StackScroll',\n\t\tmprName: MPR_TOOLS.SCROLL_TOOL,\n\t},\n\t{\n\t\tdbName: 'CrossPoint',\n\t\timgName: 'AstCrossPoint',\n\t\tmprName: MPR_TOOLS.SELECT_TOOL,\n\t},\n\t{\n\t\tdbName: 'Probe',\n\t\timgName: 'AstProbe',\n\t\tmprName: MPR_TOOLS.PROBE_TOOL,\n\t},\n\t{\n\t\tdbName: 'Roll',\n\t\timgName: 'Rotate',\n\t\tmprName: MPR_TOOLS.ROLL_TOOL,\n\t},\n]\n\n// Viewer specific tool names\nconst imgTools = toolNames.map(tn => tn.imgName).filter(tn => tn)\nconst mprTools = toolNames.map(tn => tn.mprName).filter(tn => tn)\n\n// Viewer specific buttons supported (1:L, 2:R, 3:LR, 4:M, 5:LM, 6:MR, 7:LMR)\nconst imgButtons = [1, 2, 3, 4, 5, 6, 7]\nconst mprButtons = [1, 2, 4]\n\n// Viewer specific default bindings (currently identical but could change in the future)\n// Need to the the viewer specific tool name when declaring these\nconst imgDefaultBindings = [{ tool: 'Wwwc', button: 1 }, { tool: 'Zoom', button: 2 }, { tool: 'Pan', button: 4 }]\nconst mprDefaultBindings = [\n\t{ tool: MPR_TOOLS.LEVEL_TOOL, button: 1 },\n\t{ tool: MPR_TOOLS.ZOOM_TOOL, button: 2 },\n\t{ tool: MPR_TOOLS.PAN_TOOL, button: 4 },\n]\n\nconst state = {\n\ttoolNames,\n\timgTools,\n\tmprTools,\n\timgButtons,\n\tmprButtons,\n\timgDefaultBindings,\n\tmprDefaultBindings,\n\tbindings: [],\n}\n\nconst getters = {\n\timgMouseBindings: state =>\n\t\tresolveBindings(\n\t\t\tconvertBindings(state.bindings, 'db', 'img'),\n\t\t\tstate.imgDefaultBindings,\n\t\t\tstate.imgTools,\n\t\t\tstate.imgButtons\n\t\t),\n\tmprMouseBindings: state =>\n\t\tresolveBindings(\n\t\t\tconvertBindings(state.bindings, 'db', 'mpr'),\n\t\t\tstate.mprDefaultBindings,\n\t\t\tstate.mprTools,\n\t\t\tstate.mprButtons\n\t\t),\n}\n\nconst actions = {\n\tasync setMouseBindings({ dispatch, rootGetters }) {\n\t\tif (rootGetters.isAuthenticated) {\n\t\t\tawait dispatch('setMouseBindingsForAuthenticatedUser')\n\t\t} else {\n\t\t\tawait dispatch('setMouseBindingsForUnauthenticatedUser')\n\t\t}\n\t\tdispatch('setImgActiveTools')\n\t\tdispatch('setMprActiveTools')\n\t},\n\t// Fetch bindings for authenticated users\n\tasync setMouseBindingsForAuthenticatedUser({ commit }) {\n\t\tconst response = await api.user.getViewerMouseBindings()\n\t\tconst bindings = response.data\n\t\tcommit('SET_MOUSE_BINDINGS', bindings)\n\t},\n\t// Unauthenticated users get the default bindings but will\n\t// still get synchronization between viewers as they are updated\n\tasync setMouseBindingsForUnauthenticatedUser({ commit }) {\n\t\tcommit('SET_MOUSE_BINDINGS', [])\n\t},\n\tasync updateMouseBinding({ dispatch, commit, rootGetters }, binding) {\n\t\tcommit('UPDATE_MOUSE_BINDING', binding)\n\t\t// Keep viewer tools in sync with each other\n\t\tif (binding.type === 'img') {\n\t\t\tdispatch('setMprActiveTools')\n\t\t} else {\n\t\t\tdispatch('setImgActiveTools')\n\t\t}\n\t\tif (!rootGetters.isAuthenticated) return\n\t\tconst response = await api.user.updateViewerMouseBindings(state.bindings)\n\t\tif (response.status !== 200) {\n\t\t\t// TODO: display a modal error\n\t\t\tconsole.error('Update mouse binding failed', response)\n\t\t}\n\t},\n\tsetImgActiveTools({ rootState, getters, dispatch }) {\n\t\tgetters.imgMouseBindings.forEach(binding => {\n\t\t\tconst devices = rootState.toolManager.inputDevices\n\t\t\t// Exclude bindings with button !== 1 on touch-only devices\n\t\t\tif (devices.includes('touch') && !devices.includes('mouse') && binding.button !== 1) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tdispatch('setActiveToolAndBroadcast', {\n\t\t\t\talias: binding.tool,\n\t\t\t\toptions: { mouseButtonMask: binding.button },\n\t\t\t})\n\t\t})\n\t},\n\tsetMprActiveTools({ getters, dispatch }) {\n\t\tgetters.mprMouseBindings.forEach(binding => {\n\t\t\tdispatch('setMprActiveToolAndBroadcast', {\n\t\t\t\ttool: binding.tool,\n\t\t\t\tbuttonMask: binding.button,\n\t\t\t})\n\t\t})\n\t},\n}\n\nconst mutations = {\n\tSET_MOUSE_BINDINGS(state, bindings) {\n\t\tstate.bindings = bindings\n\t},\n\tUPDATE_MOUSE_BINDING(state, binding) {\n\t\tconst bindings = [...state.bindings]\n\t\tlet buttons = binding.button\n\t\tif (!isArray(buttons)) buttons = [buttons]\n\t\tbuttons.forEach(button => {\n\t\t\t// Get the db tool name for this binding type\n\t\t\tconst tool = convertToolName(binding.tool, binding.type, 'db')\n\t\t\t// New binding to update with or append\n\t\t\tconst newBinding = { tool, button }\n\t\t\t// Only allow one button per tool\n\t\t\tconst toolIndex = bindings.findIndex(b => b.tool === tool)\n\t\t\tif (toolIndex !== -1) {\n\t\t\t\tbindings.splice(toolIndex, 1)\n\t\t\t}\n\t\t\t// Upsert the new binding for this button\n\t\t\tconst index = bindings.findIndex(b => b.button === button)\n\n\t\t\tif (index !== -1) {\n\t\t\t\tbindings[index] = newBinding\n\t\t\t} else {\n\t\t\t\tbindings.push(newBinding)\n\t\t\t}\n\t\t})\n\t\tstate.bindings = bindings\n\t},\n}\n\n// Converts tool names from one type to another\n// Currently used when converting bindings from the database to img/mpr viewers\n// and when updating bindings that the user set manually\nconst convertToolName = (name, fromType, toType) => {\n\tconst nameSet = state.toolNames.find(tn => tn[`${fromType}Name`] === name)\n\treturn nameSet ? nameSet[`${toType}Name`] : ''\n}\n\n// Converts a set of bindings from one type to another\n// This is really just used to convert the db tool names stored in the database\n// to the names currently \"understood\" by the image and mpr viewers\nconst convertBindings = (bindings, fromType, toType) =>\n\tbindings\n\t\t.map(({ tool, button }) => {\n\t\t\ttool = convertToolName(tool, fromType, toType)\n\t\t\treturn { tool, button }\n\t\t})\n\t\t.filter(binding => binding.tool)\n\n// Resolve img/mpr bindings by examining each custom binding in the database\n// and \"merging\" with the default bindings if it is supported by their respective viewers\nfunction resolveBindings(bindings, defaultBindings, tools, buttons) {\n\t// Start with the default bindings\n\tconst result = [...defaultBindings]\n\tbindings.forEach(binding => {\n\t\t// Flags for testing support of binding tool and button\n\t\tconst toolAvailable = tools.includes(binding.tool)\n\t\tconst buttonAvailable = buttons.includes(binding.button)\n\t\t// If the tool and button are supported...\n\t\tif (toolAvailable && buttonAvailable) {\n\t\t\t// Upsert the binding\n\t\t\tconst index = result.findIndex(b => b.button === binding.button)\n\t\t\tif (index !== -1) {\n\t\t\t\tresult.splice(index, 1, { ...binding })\n\t\t\t} else {\n\t\t\t\tresult.push({ ...binding })\n\t\t\t}\n\t\t}\n\t})\n\treturn result\n}\n\nexport default {\n\tstate,\n\tgetters,\n\tmutations,\n\tactions,\n}\n","import api from '@services/api'\nimport keyboard from '@services/keyboard'\n\nconst state = {\n\tpresetHotkeys: [],\n\tsetLevelMethod: null,\n\tlastLoadedModalityId: -1,\n}\nconst mutations = {\n\tbindWindowLevelPresets: (state, { modalityId, presets, setLevelMethod }) => {\n\t\tstate.setLevelMethod = setLevelMethod\n\t\tstate.lastLoadedModalityId = modalityId\n\t\t// reset bindings\n\t\tstate.presetHotkeys.forEach(({ key, method }) => keyboard.unbind(key, method))\n\t\tstate.presetHotkeys = []\n\n\t\tpresets.forEach(p => {\n\t\t\tif (p.key !== null) {\n\t\t\t\tlet key = p.key\n\t\t\t\tlet method = setLevelMethod.bind(this, p.windowWidth, p.windowCenter)\n\t\t\t\tstate.presetHotkeys.push({ key: key, method: method })\n\t\t\t\tkeyboard.bind(key, method)\n\t\t\t}\n\t\t})\n\t},\n\tresetLastLoadedModalityPreset(state) {\n\t\tstate.lastLoadedModalityId = -1\n\t},\n}\n\nconst actions = {\n\tasync refreshWindowLevelPresetsForAuthenticatedUser(store) {\n\t\tconst modalityId = getModalityIdFromStore(store)\n\t\t// If the setLevelMethod isn't set, we can't do anything, so bail\n\t\tif (modalityId && state.setLevelMethod) {\n\t\t\tconst response = await api.user.getWindowLevelPresets(modalityId)\n\t\t\tconst presets = response.data.data\n\n\t\t\tstore.commit('bindWindowLevelPresets', { presets, setLevelMethod: store.state.setLevelMethod })\n\t\t}\n\t},\n\tsetWindowLevelPresets({ rootGetters, dispatch }, setLevelMethod) {\n\t\tif (rootGetters.isAuthenticated) {\n\t\t\tdispatch('setWindowLevelPresetsForAuthenticatedUser', setLevelMethod)\n\t\t} else {\n\t\t\tdispatch('setWindowLevelPresetsForUnAuthenticatedUser', setLevelMethod)\n\t\t}\n\t},\n\tasync setWindowLevelPresetsForAuthenticatedUser(store, setLevelMethod) {\n\t\tconst modalityId = getModalityIdFromStore(store)\n\t\tif (!modalityId || modalityId === store.state.lastLoadedModalityId) return\n\t\tconst response = await api.user.getWindowLevelPresets(modalityId)\n\t\tconst presets = response.data.data\n\n\t\tstore.commit('bindWindowLevelPresets', { modalityId, presets, setLevelMethod })\n\t},\n\tsetWindowLevelPresetsForUnAuthenticatedUser({ commit }, setLevelMethod) {\n\t\tconst presets = getDefaultPresets()\n\t\tcommit('bindWindowLevelPresets', { presets, setLevelMethod })\n\t},\n}\n\nfunction getModalityIdFromStore({ rootGetters, rootState }) {\n\tconst { activeSeries, activeStudy } = rootGetters\n\tconst modalities = rootState.static.modalities\n\ttry {\n\t\treturn (\n\t\t\t(activeSeries && activeSeries.modalityId) ||\n\t\t\t(activeStudy && modalities.find(m => m.label === activeStudy.modality).value)\n\t\t)\n\t} catch {}\n}\n\nfunction getDefaultPresets() {\n\tlet defaultPresets = [\n\t\t{\n\t\t\tkey: '1',\n\t\t\tmodality: 'CT',\n\t\t\tmodalityId: 8,\n\t\t\twindowCenter: 50,\n\t\t\twindowWidth: 350,\n\t\t},\n\t\t{\n\t\t\tkey: '2',\n\t\t\tmodality: 'CT',\n\t\t\tmodalityId: 8,\n\t\t\twindowCenter: 500,\n\t\t\twindowWidth: 2500,\n\t\t},\n\t\t{\n\t\t\tkey: '3',\n\t\t\tmodality: 'CT',\n\t\t\tmodalityId: 8,\n\t\t\twindowCenter: 40,\n\t\t\twindowWidth: 400,\n\t\t},\n\t\t{\n\t\t\tkey: '4',\n\t\t\tmodality: 'CT',\n\t\t\tmodalityId: 8,\n\t\t\twindowCenter: 50,\n\t\t\twindowWidth: 300,\n\t\t},\n\t\t{\n\t\t\tkey: '5',\n\t\t\tmodality: 'CT',\n\t\t\tmodalityId: 8,\n\t\t\twindowCenter: 40,\n\t\t\twindowWidth: 120,\n\t\t},\n\t\t{\n\t\t\tkey: '6',\n\t\t\tmodality: 'CT',\n\t\t\tmodalityId: 8,\n\t\t\twindowCenter: -500,\n\t\t\twindowWidth: 1500,\n\t\t},\n\t\t{\n\t\t\tkey: '7',\n\t\t\tmodality: 'CT',\n\t\t\tmodalityId: 8,\n\t\t\twindowCenter: 80,\n\t\t\twindowWidth: 1550,\n\t\t},\n\t]\n\n\treturn defaultPresets\n}\n\nexport default {\n\tstate,\n\tmutations,\n\tactions,\n}\n","import vuexSyncPlugin from './vuexSyncPlugin'\n\nexport default [vuexSyncPlugin]\n","import api from '@services/api'\n// Functions/Services\nimport consultations from '@services/consultationService'\nimport { studyFolders } from '@services/folders'\nimport { menu } from '@services/menu'\nimport Vue from 'vue'\nimport Vuex from 'vuex'\n// Modules\n// import analytics from './modules/analytics'\nimport auth from './modules/authentication'\nimport mpr from './modules/mpr'\nimport reportColorSettings from './modules/reportColorSettings.js'\nimport repository from './modules/repository'\nimport repositoryReview from './modules/repositoryReview.js'\nimport saleHipStore from './modules/saleHipStore.js'\nimport saleSubmission from './modules/saleSubmission'\nimport settings from './modules/settings'\nimport theme from './modules/theme'\nimport toolManager from './modules/toolManager'\nimport ui from './modules/ui'\nimport viewer from './modules/viewer'\nimport viewerHotkeys from './modules/viewerHotkeys'\nimport viewerMouseBindings from './modules/viewerMouseBindings'\nimport windowLevelPresets from './modules/windowLevelPresets'\nimport windows from './modules/windows.js'\nimport plugins from './plugins'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n\tmodules: {\n\t\t// analytics,\n\t\tauth,\n\t\trepository,\n\t\ttheme,\n\t\ttoolManager,\n\t\tviewer,\n\t\tviewerHotkeys,\n\t\tviewerMouseBindings,\n\t\twindowLevelPresets,\n\t\tsaleSubmission,\n\t\tsettings,\n\t\tmpr,\n\t\tui,\n\t\twindows,\n\t\treportColorSettings,\n\t\trepositoryReview,\n\t\tsaleHipStore,\n\t},\n\tstate: {\n\t\tapplicationRootUrl: window.config.applicationRootUrl,\n\t\trestApplicationRootUrl: window.config.restApplicationRootUrl,\n\t\tkeystoneRootUrl: window.config.keystoneRootUrl,\n\t\tmarketingRootUrl: window.config.marketingRootUrl,\n\t\tisUserDataLoaded: false,\n\t\tisLoadingData: false,\n\t\tstatic: {\n\t\t\tclinics: [],\n\t\t\tconsultants: [], // consultants that the user can send to\n\t\t\tconsultantsForAdmin: [], // consultants within local clinic\n\t\t\tpermissions: {},\n\t\t\tmodalities: [],\n\t\t\tconsignerNames: [],\n\t\t},\n\t\tconsultant: {\n\t\t\tclientClinics: [],\n\t\t\tgroupMembers: [],\n\t\t\tregions: [],\n\t\t\trequestTypes: [],\n\t\t},\n\t},\n\tgetters: {\n\t\tactiveClinic(state) {\n\t\t\tconst activeClinicId = state.auth.claims.activeClinicId\n\t\t\treturn state.static.clinics.find(clinic => clinic.id === activeClinicId)\n\t\t},\n\t\tpermissions(state) {\n\t\t\treturn state.static.permissions\n\t\t},\n\t\tmodalityNamesById: state => ids => {\n\t\t\tconst modalities = ids.map(id => state.static.modalities.find(m => m.id === id))\n\t\t\treturn modalities.map(m => m.name)\n\t\t},\n\t\tconsignerNamesById: state => ids => {\n\t\t\tconst consigners = ids.map(id => state.static.consignerNames.find(m => m.id === id))\n\t\t\treturn consigners.map(m => m.name)\n\t\t},\n\t\tisLoadingData(state) {\n\t\t\treturn state.isLoadingData\n\t\t},\n\t},\n\tactions: {\n\t\tasync getPermissions({ commit }) {\n\t\t\tcommit('SET_PERMISSIONS', {})\n\t\t\tconst { data } = await api.user.getPermissions()\n\t\t\tcommit('SET_PERMISSIONS', data.data)\n\t\t},\n\t\tasync getConsultants({ commit }) {\n\t\t\ttry {\n\t\t\t\tconst data = await consultations.getConsultants()\n\t\t\t\tif (data && data.results) commit('SET_CONSULTANTS', data.results)\n\t\t\t} finally {\n\t\t\t}\n\t\t},\n\t\tasync getClinics({ state, dispatch }) {\n\t\t\tif (!state.auth.claims || !state.auth.claims.userId) return\n\t\t\tconst response = await api.clinic.getList()\n\t\t\tconst clinics = response.data.data\n\t\t\tdispatch('setClinics', clinics)\n\t\t},\n\t\tasync getModalities({ commit }) {\n\t\t\tconst response = await api.clinic.getModalities()\n\t\t\tconst responseData = response.data\n\t\t\tcommit('SET_MODALITIES', responseData)\n\t\t},\n\t\tasync getAutoCompleteList({ commit }) {\n\t\t\tconst response = await api.autoComplete.getAutoCompleteList()\n\t\t\tconst responseData = response.data\n\t\t\tcommit('SET_AUTOCOMPLETE_LIST', responseData)\n\t\t},\n\t\tsetClinics({ commit }, clinics) {\n\t\t\tif (!clinics || !clinics.length) return\n\t\t\tcommit('SET_USER_CLINICS', clinics)\n\t\t},\n\t\tasync getConsultantsForAdmin({ commit }) {\n\t\t\tconst consultantsForAdmin = await consultations.getConsultantsForAdmin()\n\t\t\tcommit('SET_CONSULTANTS_FOR_ADMIN', consultantsForAdmin)\n\t\t},\n\t\tasync getConsultantData({ state, commit }) {\n\t\t\tif (!state.auth.claims || !state.auth.claims.userId) return\n\t\t\tconst { userId } = state.auth.claims\n\t\t\tconst responses = await Promise.all([\n\t\t\t\tconsultations.getConsultantGroupMembers(userId),\n\t\t\t\tconsultations.getConsultantRegions(userId),\n\t\t\t\tconsultations.getConsultantClientClinics(userId),\n\t\t\t\tconsultations.getConsultantRequestTypes(userId),\n\t\t\t])\n\t\t\tcommit('SET_CONSULTANT_GROUP_MEMBERS', responses[0])\n\t\t\tcommit('SET_CONSULTANT_REGIONS', responses[1])\n\t\t\tcommit('SET_CONSULTANT_CLIENT_CLINICS', responses[2])\n\t\t\tcommit('SET_CONSULTANT_REQUEST_TYPES', responses[3])\n\t\t},\n\t\tasync getConsignerNames({ commit }, { consultantId }) {\n\t\t\tconst response = await api.clinic.getConsignerNames(consultantId)\n\t\t\tcommit('SET_CONSIGNER_NAMES', response.data)\n\t\t},\n\t\tasync initStatics({ state, dispatch, commit }) {\n\t\t\tconst actions = [\n\t\t\t\t'getClinics',\n\t\t\t\t'getConsultants',\n\t\t\t\t'getConsultantsForAdmin',\n\t\t\t\t'getPermissions',\n\t\t\t\t'getModalities',\n\t\t\t\t'getAutoCompleteList',\n\t\t\t\t'fetchThemeForUser',\n\t\t\t\t'fetchOpenStudiesInNewWindow',\n\t\t\t\t'fetchLoadSeriesFromMiddle',\n\t\t\t\t'fetchViewerToolbarLocation',\n\t\t\t\t'fetchViewerSettings',\n\t\t\t\t'checkLastViewedVersion',\n\t\t\t\t'preloadViewerWindows',\n\t\t\t\t'getDesktopUpdateInfo',\n\t\t\t\t'getReportColorSettingsAction',\n\t\t\t\t'fetchStudyListHeaderSettings',\n\t\t\t\t'fetchTeleconsultationListHeaderSettings',\n\t\t\t]\n\t\t\tif (state.auth.claims.isConsultantUser) actions.push('getConsultantData')\n\t\t\tif (state.auth.claims.isRepositoryUser) actions.push('getRepositoryData')\n\t\t\t// TODO: FIX ME\n\t\t\t// eslint-disable-next-line no-constant-condition\n\t\t\tif (state.auth.claims.isSaleSubmissionUser || true) actions.push('getSaleSubmissionData')\n\n\t\t\tconst promises = actions.map(action => dispatch(action))\n\t\t\tif (!state.auth.claims.isCommunityUser && !state.auth.claims.isRepositoryUser) {\n\t\t\t\tpromises.push(menu.fetchMenuSettings())\n\t\t\t\tpromises.push(studyFolders.load())\n\t\t\t}\n\t\t\tawait Promise.all(promises)\n\t\t\tcommit('SET_IS_USER_DATA_LOADED', true)\n\t\t},\n\t\tsetIsLoadingDataAction({ commit }, status) {\n\t\t\tcommit('SET_IS_LOADING_DATA', status)\n\t\t},\n\t},\n\tmutations: {\n\t\tSET_IS_USER_DATA_LOADED(state, isUserDataLoaded) {\n\t\t\tstate.isUserDataLoaded = isUserDataLoaded\n\t\t},\n\t\tCLEAR_STATICS(state) {\n\t\t\tstate.static = {\n\t\t\t\tclinics: [],\n\t\t\t\tconsultants: [],\n\t\t\t\tconsultantsForAdmin: [],\n\t\t\t\tpermissions: {},\n\t\t\t\tmodalities: [{ value: 'empty', label: 'empty' }],\n\t\t\t}\n\t\t},\n\t\tSET_PERMISSIONS(state, permissions) {\n\t\t\tstate.static.permissions = permissions || {}\n\t\t},\n\t\tSET_CONSULTANTS(state, consultants) {\n\t\t\tstate.static.consultants = consultants\n\t\t},\n\t\tSET_CONSULTANTS_FOR_ADMIN(state, consultantsForAdmin) {\n\t\t\tstate.static.consultantsForAdmin = consultantsForAdmin\n\t\t},\n\t\tSET_USER_CLINICS(state, clinics) {\n\t\t\tstate.static.clinics = clinics\n\t\t},\n\t\tSET_MODALITIES(state, modalities) {\n\t\t\tstate.static.modalities = modalities\n\t\t},\n\t\tSET_CONSULTANT_CLIENT_CLINICS(state, clientClinics) {\n\t\t\tstate.consultant.clientClinics = clientClinics\n\t\t},\n\t\tSET_CONSULTANT_GROUP_MEMBERS(state, groupMembers) {\n\t\t\tstate.consultant.groupMembers = groupMembers\n\t\t},\n\t\tSET_CONSULTANT_REGIONS(state, regions) {\n\t\t\tstate.consultant.regions = regions\n\t\t},\n\t\tSET_CONSULTANT_REQUEST_TYPES(state, requestTypes) {\n\t\t\tstate.consultant.requestTypes = requestTypes\n\t\t},\n\t\tSET_IS_LOADING_DATA(state, payload) {\n\t\t\tstate.isLoadingData = payload\n\t\t},\n\t\tSET_CONSIGNER_NAMES(state, payload) {\n\t\t\tstate.static.consignerNames = payload\n\t\t},\n\t},\n\tplugins,\n})\n","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',{staticClass:\"modality-select\",staticStyle:{\"min-width\":\"140px\"},attrs:{\"options\":_vm.options,\"label\":\"name\",\"searchable\":false,\"reduce\":function (o) { return o.id; },\"placeholder\":_vm.placeholder,\"clear-search-on-select\":false,\"multiple\":_vm.multiple,\"dropdown-min-width\":\"300px\",\"clearable\":false},scopedSlots:_vm._u([{key:\"option\",fn:function(modality){return [_vm._v(\"\\n\\t\\t\"+_vm._s(modality.name)+\"\\n\\t\\t\"),_c('span',{staticStyle:{\"padding-left\":\"4px\",\"opacity\":\"0.8\",\"font-size\":\"0.9em\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(modality.description)+\"\\n\\t\\t\")])]}}]),model:{value:(_vm.selection),callback:function ($$v) {_vm.selection=$$v},expression:\"selection\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./ModalitySelect.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!./ModalitySelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ModalitySelect.vue?vue&type=template&id=5a27f1a0\"\nimport script from \"./ModalitySelect.vue?vue&type=script&lang=js\"\nexport * from \"./ModalitySelect.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","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!./CheckboxGroup.vue?vue&type=style&index=0&id=109bd635&prod&lang=scss\"","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!./MessageNotification.vue?vue&type=style&index=0&id=3a3e8e89&prod&lang=scss\"","import api from '@services/api'\nimport { consts } from '@vtk'\nimport keyboard from '@services/keyboard'\nimport { eventBus } from '@services/eventBus'\n\nconst state = {\n\thotkeys: [],\n\tallHotkeys: [],\n}\nconst getters = {\n\thotkey: state => name => state.hotkeys.find(h => h.name === name).key,\n}\n\nconst mutations = {\n\t// bind hotkeys\n\t// name: hotkey name (as defined in defaults)\n\t// method: the method the hotkey should invoke\n\tbindHotkeys: (state, { hotkeyActions, hotkeySettings }) => {\n\t\t// reset bindings\n\t\tstate.hotkeys.forEach(({ keyBinding, method }) => keyboard.unbind(keyBinding, method))\n\t\tstate.hotkeys = []\n\t\thotkeySettings.sort((a, b) => {\n\t\t\tif (a.description < b.description) return -1\n\t\t\tif (a.description > b.description) return 1\n\t\t\treturn 0\n\t\t})\n\t\tstate.allHotkeys = hotkeySettings\n\n\t\thotkeyActions.forEach(action => {\n\t\t\tlet hotkey = hotkeySettings.find(key => key.name === action.name)\n\t\t\tif (hotkey !== undefined && hotkey.keyBinding !== 'None') {\n\t\t\t\tlet didBind = keyboard.bind(hotkey.keyBinding, action.method)\n\t\t\t\tdidBind &&\n\t\t\t\t\tstate.hotkeys.push({\n\t\t\t\t\t\t...hotkey,\n\t\t\t\t\t\tmethod: action.method,\n\t\t\t\t\t\tgroup: action.group,\n\t\t\t\t\t})\n\t\t\t}\n\t\t})\n\t},\n\tresetBindings: state => {\n\t\tkeyboard.reset()\n\t},\n}\n\nconst actions = {\n\tsetHotkeys({ dispatch, rootGetters }, ga) {\n\t\tif (rootGetters.isAuthenticated) {\n\t\t\tdispatch('setHotkeysForAuthenticatedUser', ga)\n\t\t} else {\n\t\t\tdispatch('setHotkeysForUnauthenticatedUser', ga)\n\t\t}\n\t},\n\n\tasync setHotkeysForAuthenticatedUser(store, ga) {\n\t\tconst response = await api.user.getHotkeySettings()\n\t\tconst hotkeySettings = response.data.data\n\t\tconst hotkeyActions = getHotkeyActions(store, ga)\n\n\t\tstore.commit('bindHotkeys', { hotkeyActions, hotkeySettings })\n\t},\n\tsetHotkeysForUnauthenticatedUser(store, ga) {\n\t\tlet hotkeySettings = getHotkeyDefaults()\n\t\tlet hotkeyActions = getHotkeyActions(store, ga)\n\n\t\tstore.commit('bindHotkeys', { hotkeyActions, hotkeySettings })\n\t},\n\n\tsetMPRHotkeys({ dispatch, rootGetters }, ga) {\n\t\tif (rootGetters.isAuthenticated) {\n\t\t\tdispatch('setMPRHotkeysForAuthenticatedUser', ga)\n\t\t} else {\n\t\t\tdispatch('setMPRHotkeysForUnauthenticatedUser', ga)\n\t\t}\n\t},\n\n\tasync setMPRHotkeysForAuthenticatedUser(store, ga) {\n\t\tconst response = await api.user.getHotkeySettings()\n\t\tconst hotkeySettings = response.data.data\n\t\tconst hotkeyActions = getMPRHotkeyActions(store, ga)\n\n\t\tstore.commit('bindHotkeys', { hotkeyActions, hotkeySettings })\n\t},\n\tsetMPRHotkeysForUnauthenticatedUser(store, ga) {\n\t\tlet hotkeySettings = getHotkeyDefaults()\n\t\tlet hotkeyActions = getMPRHotkeyActions(store, ga)\n\n\t\tstore.commit('bindHotkeys', { hotkeyActions, hotkeySettings })\n\t},\n\n\tasync modifyHotkeyAction({ dispatch }, data) {\n\t\tconst response = await api.user.updateHotkey(data)\n\t\tif (response.status === 200) {\n\t\t\tconst type = 'setHotkeysForAuthenticatedUser'\n\t\t\tdispatch(type)\n\t\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type })\n\t\t} else {\n\t\t\t// TODO: display a modal error\n\t\t\tconsole.error('modify hotkey failed', response)\n\t\t}\n\t},\n}\n\nfunction getHotkeyActions({ dispatch, commit, rootGetters } = {}, ga) {\n\treturn [\n\t\t{\n\t\t\tname: 'FlipHorizontal',\n\t\t\tmethod: () => dispatch('toggleCanvasHorizontalFlip'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'FlipVertical',\n\t\t\tmethod: () => dispatch('toggleCanvasVerticalFlip'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Copy',\n\t\t\tmethod: () => dispatch('copyCanvasAsync'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Print',\n\t\t\tmethod: () => dispatch('printCanvasAsync'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Save',\n\t\t\tmethod: () => dispatch('saveCanvasAsync'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Invert',\n\t\t\tmethod: () => dispatch('toggleCanvasInvert'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'RotateCW',\n\t\t\tmethod: () => dispatch('rotateCanvas', 90),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'RotateCCW',\n\t\t\tmethod: () => dispatch('rotateCanvas', -90),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ResetImage',\n\t\t\tmethod: () => dispatch('resetActiveCanvas'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'WindowLevel',\n\t\t\tmethod: () => setAndSynchronizeTool('Wwwc', 'img', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ZoomImage',\n\t\t\tmethod: () => setAndSynchronizeTool('Zoom', 'img', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Pan',\n\t\t\tmethod: () => setAndSynchronizeTool('Pan', 'img', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Roll',\n\t\t\tmethod: () => setAndSynchronizeTool('Rotate', 'img', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'StackScroll',\n\t\t\tmethod: () => setAndSynchronizeTool('StackScroll', 'img', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ZoomArea',\n\t\t\tmethod: () => setAndSynchronizeTool('Magnify', 'img', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Zoom100',\n\t\t\tmethod: () => dispatch('toggleZoom1to1'),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'SeriesSyncManual',\n\t\t\tmethod: () => dispatch('toggleStackSynchronizationMethod', 'manual'),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'SeriesSync',\n\t\t\tmethod: () => dispatch('toggleStackSynchronizationMethod', 'auto'),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'SingleImage',\n\t\t\tmethod: () => dispatch('toggleCanvasFullscreen'),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Overlay',\n\t\t\tmethod: () => commit('TOGGLE_OVERLAY_TEXT'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ReferenceLines',\n\t\t\tmethod: () => dispatch('toggleReferenceLineSynchronization'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'NextImage',\n\t\t\tmethod: () => dispatch('nextImage'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousImage',\n\t\t\tmethod: () => dispatch('previousImage'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'NextSeries',\n\t\t\tmethod: () => dispatch('nextSeries'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousSeries',\n\t\t\tmethod: () => dispatch('previousSeries'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'NextDisplaySet',\n\t\t\tmethod: () => dispatch('nextDisplaySet'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousDisplaySet',\n\t\t\tmethod: () => dispatch('previousDisplaySet'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'DicomTags',\n\t\t\tmethod: () => eventBus.post('toggleDicomTags'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Email',\n\t\t\tmethod: () => eventBus.post('openViewerEmail'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ReportComment',\n\t\t\tmethod: () => eventBus.post('openViewerReportComment'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ClearAnnotations',\n\t\t\tmethod: () =>\n\t\t\t\tdispatch('syncClearAnnotations', {\n\t\t\t\t\tactiveSeries: rootGetters.activeSeries,\n\t\t\t\t\tactiveImage: rootGetters.activeImage,\n\t\t\t\t}),\n\t\t},\n\t]\n}\n\nfunction getMPRHotkeyActions({ dispatch, commit, rootGetters } = {}, ga) {\n\tlet hotkeyActions = [\n\t\t{\n\t\t\tname: 'FlipHorizontal',\n\t\t\tmethod: () => dispatch('flipHActiveView'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'FlipVertical',\n\t\t\tmethod: () => dispatch('flipVActiveView'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Invert',\n\t\t\tmethod: () => dispatch('invertVolume'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'RotateCW',\n\t\t\tmethod: () => dispatch('rotateActiveViewClockwise'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'RotateCCW',\n\t\t\tmethod: () => dispatch('rotateActiveViewCounterClockwise'),\n\t\t\tgroup: 'image-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ResetImage',\n\t\t\tmethod: () => dispatch('resetViewData'),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'WindowLevel',\n\t\t\tmethod: () => setAndSynchronizeTool(consts.LEVEL_TOOL, 'mpr', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ZoomImage',\n\t\t\tmethod: () => setAndSynchronizeTool(consts.ZOOM_TOOL, 'mpr', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Pan',\n\t\t\tmethod: () => setAndSynchronizeTool(consts.PAN_TOOL, 'mpr', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Roll',\n\t\t\tmethod: () => setAndSynchronizeTool(consts.ROLL_TOOL, 'mpr', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'StackScroll',\n\t\t\tmethod: () => setAndSynchronizeTool(consts.SCROLL_TOOL, 'mpr', dispatch),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'SingleImage',\n\t\t\tmethod: () => commit('TOGGLE_MPR_VIEW_FULLSCREEN'),\n\t\t\tgroup: 'canvas-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Overlay',\n\t\t\tmethod: () => commit('TOGGLE_MPR_SHOW_OVERLAY_TEXT'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'NextImage',\n\t\t\tmethod: () => dispatch('nextMPRSlice'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousImage',\n\t\t\tmethod: () => dispatch('previousMPRSlice'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'NextSeries',\n\t\t\tmethod: () => dispatch('nextMPRActiveView'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousSeries',\n\t\t\tmethod: () => dispatch('prevMPRActiveView'),\n\t\t\tgroup: 'navigation-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Copy',\n\t\t\tmethod: () => dispatch('copyMprImageAsync'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Print',\n\t\t\tmethod: () => dispatch('printMprImageAsync'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'Save',\n\t\t\tmethod: () => dispatch('saveMprImageAsync'),\n\t\t\tgroup: 'misc-tools',\n\t\t},\n\t\t{\n\t\t\tname: 'ClearAnnotations',\n\t\t\tmethod: () =>\n\t\t\t\tcommit('CLEAR_MPR_ACTIVE_ANNOTATIONS', {\n\t\t\t\t\tactiveSeries: rootGetters.activeSeries,\n\t\t\t\t}),\n\t\t},\n\t]\n\n\treturn hotkeyActions\n}\n\nfunction setAndSynchronizeTool(tool, type, dispatch) {\n\t// Set the active tool\n\tif (type === 'img') {\n\t\tdispatch('setActiveToolAndBroadcast', { alias: tool })\n\t} else {\n\t\tdispatch('setMprActiveToolAndBroadcast', { tool, buttonMask: 1 })\n\t}\n\t// Synchronize the binding with the complementary viewer\n\tdispatch('updateMouseBinding', { tool, button: 1, type })\n}\n\nfunction getHotkeyDefaults() {\n\treturn [\n\t\t{\n\t\t\tname: 'FlipHorizontal',\n\t\t\tdescription: 'Flip Horizontal',\n\t\t\tkeyBinding: 'H',\n\t\t},\n\t\t{\n\t\t\tname: 'FlipVertical',\n\t\t\tdescription: 'Flip Vertical',\n\t\t\tkeyBinding: 'V',\n\t\t},\n\t\t{\n\t\t\tname: 'Invert',\n\t\t\tdescription: 'Invert',\n\t\t\tkeyBinding: 'I',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousImage',\n\t\t\tdescription: 'Move Previous',\n\t\t\tkeyBinding: 'PageUp',\n\t\t},\n\t\t{\n\t\t\tname: 'NextImage',\n\t\t\tdescription: 'Move Next',\n\t\t\tkeyBinding: 'PageDown',\n\t\t},\n\t\t{\n\t\t\tname: 'NextSeries',\n\t\t\tdescription: 'Move to the next series',\n\t\t\tkeyBinding: 'Right',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousSeries',\n\t\t\tdescription: 'Move to the previous series',\n\t\t\tkeyBinding: 'Left',\n\t\t},\n\t\t{\n\t\t\tname: 'NextDisplaySet',\n\t\t\tdescription: 'Move to the next display set',\n\t\t\tkeyBinding: 'Right',\n\t\t},\n\t\t{\n\t\t\tname: 'PreviousDisplaySet',\n\t\t\tdescription: 'Move to the previous display set',\n\t\t\tkeyBinding: 'Left',\n\t\t},\n\t\t{\n\t\t\tname: 'Pan',\n\t\t\tdescription: 'Pan Image',\n\t\t\tkeyBinding: 'Q',\n\t\t},\n\t\t{\n\t\t\tname: 'Print',\n\t\t\tdescription: 'Print',\n\t\t\tkeyBinding: 'P',\n\t\t},\n\t\t{\n\t\t\tname: 'ResetImage',\n\t\t\tdescription: 'Reset the image',\n\t\t\tkeyBinding: 'R',\n\t\t},\n\t\t{\n\t\t\tname: 'RotateCW',\n\t\t\tdescription: 'Rotate Clock-wise',\n\t\t\tkeyBinding: 'J',\n\t\t},\n\t\t{\n\t\t\tname: 'RotateCCW',\n\t\t\tdescription: 'Rotate Counter-clock wise',\n\t\t\tkeyBinding: 'K',\n\t\t},\n\t\t{\n\t\t\tname: 'Save',\n\t\t\tdescription: 'Save',\n\t\t\tkeyBinding: 'S',\n\t\t},\n\t\t{\n\t\t\tname: 'Overlay',\n\t\t\tdescription: 'Toggle Overlay',\n\t\t\tkeyBinding: 'O',\n\t\t},\n\t\t{\n\t\t\tname: 'WindowLevel',\n\t\t\tdescription: 'Window level',\n\t\t\tkeyBinding: 'L',\n\t\t},\n\t\t{\n\t\t\tname: 'ZoomArea',\n\t\t\tdescription: 'Zoom area',\n\t\t\tkeyBinding: 'A',\n\t\t},\n\t\t{\n\t\t\tname: 'ZoomImage',\n\t\t\tdescription: 'Zoom entire image',\n\t\t\tkeyBinding: 'Z',\n\t\t},\n\t]\n}\n\n// Create a list of the hotkey names that we support,\n// to filter what comes from the DB and only display options Omni supports.\nfunction getHandledHotkeyNames() {\n\treturn [...getHotkeyActions(), ...getMPRHotkeyActions()].reduce((ret, key) => {\n\t\tret[key.name] = true\n\t\treturn ret\n\t}, {})\n}\n\nexport const handledHotkeys = getHandledHotkeyNames()\n\nexport default {\n\tstate,\n\tgetters,\n\tmutations,\n\tactions,\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dialog\"},[_c('modal-dialog',{attrs:{\"actions\":_vm.actions,\"is-open\":true,\"title\":_vm.title,\"close-text\":_vm.cancelText,\"show-close-header\":_vm.showCloseHeader,\"data-test\":\"confirm-dialog\"},on:{\"close\":_vm.close,\"confirm\":_vm.confirm}},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.message)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./ConfirmDlg.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!./ConfirmDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ConfirmDlg.vue?vue&type=template&id=2ca5d7b4\"\nimport script from \"./ConfirmDlg.vue?vue&type=script&lang=js\"\nexport * from \"./ConfirmDlg.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport store from '@store'\nimport router from '@/router/index'\nimport { eventBus } from '@services/eventBus'\n\n// clear the route from unwanted query params\nlet url = document.location.href\nlet newUrl = url.replace(/dlg=&?[A-Za-z]*&?/g, '')\nif (url !== newUrl) {\n\tlocation.replace(newUrl)\n}\n\nconst GLOBAL_EXCLUDE_LIST = ['UpdateAppDlg']\n\nfunction getRouteQueryDlgs() {\n\tlet list = []\n\tlet query = router.currentRoute.query\n\tif (typeof query.dlg === 'string') {\n\t\tlist = [query.dlg]\n\t} else if (Array.isArray(query.dlg)) {\n\t\tlist = query.dlg\n\t}\n\treturn list\n}\n\neventBus.on('routechanged', () => {\n\tlet excludeList = getRouteQueryDlgs()\n\tdlg.closeAll(excludeList)\n})\n\nclass DlgUtils {\n\tdlgs: Vue[] = []\n\n\tcloseAll(excludeList: string[] = []) {\n\t\tconst list = [...excludeList, ...GLOBAL_EXCLUDE_LIST]\n\t\t// keep dialogs that are part of the query\n\t\tthis.dlgs.forEach(d => {\n\t\t\t// @ts-ignore\n\t\t\tif (list && list.indexOf(d.compName) < 0) {\n\t\t\t\tthis.close(d, true, undefined, false)\n\t\t\t}\n\t\t})\n\t}\n\n\tasync close(vm, success = true, data = undefined, popRoute = true) {\n\t\tlet parent = vm.$parent ? vm.$parent : vm\n\n\t\tparent.show = false\n\t\tlet idx = this.dlgs.indexOf(parent)\n\t\tthis.dlgs.splice(idx, 1)\n\t\tif (popRoute && parent.updateQueryParam) {\n\t\t\tawait new Promise(resolve => {\n\t\t\t\teventBus.once('routechanged', resolve)\n\t\t\t\trouter.go(-1)\n\t\t\t})\n\t\t}\n\n\t\tif (success === true) {\n\t\t\tparent.$resolve(data)\n\t\t} else {\n\t\t\tparent.$reject(data)\n\t\t}\n\t\tparent.$destroy()\n\t\tVue.nextTick(() => parent.$el.remove())\n\t}\n\n\topen(comp, props, updateQueryParam = true): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet vm = new Vue({\n\t\t\t\trouter,\n\t\t\t\tstore,\n\t\t\t\tdata: {\n\t\t\t\t\tshow: false,\n\t\t\t\t\tupdateQueryParam,\n\t\t\t\t\tcompName: comp.name,\n\t\t\t\t\tprops,\n\t\t\t\t},\n\t\t\t\tmounted() {\n\t\t\t\t\tthis.show = true\n\t\t\t\t},\n\t\t\t\trender(h) {\n\t\t\t\t\tif (this.show) {\n\t\t\t\t\t\treturn h(comp, { props })\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn h('div')\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t})\n\n\t\t\t// @ts-ignore\n\t\t\tvm.$resolve = resolve\n\t\t\t// @ts-ignore\n\t\t\tvm.$reject = reject\n\n\t\t\tlet temp = document.createElement('div')\n\t\t\tdocument.body.appendChild(temp)\n\t\t\tvm.$mount(temp)\n\t\t\tthis.dlgs.push(vm)\n\n\t\t\tif (updateQueryParam) {\n\t\t\t\t// @ts-ignore\n\t\t\t\trouter.push({\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tquery: { ...router.currentRoute.query, dlg: this.dlgs.map(d => d.compName) },\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n\nexport var dlg = new DlgUtils()\n","import { API } from '@services/api'\nimport store from '@store'\nimport { getDateRanges } from '@utils/dateUtils'\nimport clone from '@utils/deepClone'\nimport Vue from 'vue'\nimport { eventBus } from './eventBus'\n\nconst defaultMenuSettings = {\n\troot: {\n\t\t// only affects the display order\n\t\tmenuItems: [],\n\t},\n\tteleconsultation: {\n\t\tmenuItems: [\n\t\t\t'ConsultantOpenAll',\n\t\t\t'ConsultantMyReports',\n\t\t\t'ConsultantRegionalReports',\n\t\t\t'ConsultantSTAT',\n\t\t\t'ConsultantUrgent',\n\t\t\t'ConsultantToday',\n\t\t\t'ConsultantYesterday',\n\t\t\t'ConsultantPastWeek',\n\t\t\t'ConsultantAll',\n 'ConsultantPastMonth',\n\t\t\t// ConsultantDraft is hidden by default\n\t\t],\n\t\tfilterPresets: [],\n\t},\n}\n\nconst MenuTypes = {\n\troot: 'Root',\n\tteleconsultation: 'ConsultantTelemedicineMenu',\n}\n\nconst defaultFilter = {\n\tterm: '',\n\torder: {\n\t\tby: 'requestDate',\n\t\tisAscending: false,\n\t},\n\tmodalityIds: [],\n\tstartDate: '',\n\tendDate: '',\n\tstudyStartDate: '',\n\tstudyEndDate: '',\n\tresponseStartDate: '',\n\tresponseEndDate: '',\n\tisComplete: 'Open',\n\tisDraft: 'Any',\n\trequestType: '00000000-0000-0000-0000-000000000000',\n\tconsultantId: '',\n\tclaimedByConsultantId: '',\n\tregion: '',\n\tclinicCode: '',\n\tspecies: '',\n\tbreed: '',\n\tgender: '',\n\tstudyDescription: '',\n\tdraftedById: '',\n}\nconst defaultFilterString = JSON.stringify(defaultFilter)\n\nfunction extendDefaultFilter(options = {}) {\n\treturn {\n\t\t...JSON.parse(defaultFilterString),\n\t\t...options,\n\t}\n}\n\nclass MenuService {\n\tconstructor() {\n\t\tthis._menuSettings = {}\n\t\tthis.reset()\n\t\teventBus.on('clear-all-data', this.reset.bind(this))\n\t}\n\n\treset() {\n\t\tthis.presetFilters = {}\n\t\tthis.menuSettings = clone(defaultMenuSettings)\n\t}\n\n\tget menuSettings() {\n\t\treturn this._menuSettings\n\t}\n\n\tset menuSettings(value) {\n\t\tthis._menuSettings = value\n\t\tthis.refreshFilterPresets()\n\t}\n\n\tget requestTypes() {\n\t\tif (!store || !store.state) return []\n\t\treturn Object.entries(store.state.consultant.requestTypes).sort((a, b) => {\n\t\t\treturn a[1] < b[1] ? -1 : 1\n\t\t})\n\t}\n\n\tget consultants() {\n\t\tif (!store || !store.state) return []\n\t\treturn store.state.static.consultants\n\t}\n\n\tget groupMembers() {\n\t\tif (!store || !store.state) return []\n\t\treturn store.state.consultant.groupMembers\n\t}\n\n\tget userId() {\n\t\treturn store && store.state.auth.claims.userId\n\t}\n\n\tget modalityOptions() {\n\t\tif (!store || !store.state) return []\n\t\treturn store.state.static.modalities\n\t}\n\n\tget clientClinics() {\n\t\tif (!store || !store.state) return []\n\t\treturn store.state.consultant.clientClinics\n\t}\n\n\tget regions() {\n\t\tif (!store || !store.state) return []\n\t\tconst regions = Object.entries(store.state.consultant.regions).map(([name, id]) => ({\n\t\t\tname,\n\t\t\tid,\n\t\t}))\n\t\tregions.unshift({ name: 'My Regions', id: '00000000-0000-0000-0000-000000000000' })\n\t\treturn regions\n\t}\n\n\textendDefaultFilter() {\n\t\treturn extendDefaultFilter()\n\t}\n\n\tgetMenuSettings(menuType) {\n\t\treturn API.get(`user/menu-settings/${menuType}`).then(r => r.data)\n\t}\n\n\tasync getMenuItems() {\n\t\tconst r = await API.get('user/menu-settings-with-permissions')\n\t\treturn r.data.menuItems\n\t}\n\n\t_saveMenuSettings(menuType, settings) {\n\t\treturn API.post(`user/menu-settings/${menuType}`, settings)\n\t}\n\n\tget teleconsultationMenuItems() {\n\t\t// add consultant services as menu items (excluding built-in priorities)\n\t\tconst priorities = ['STANDARD', 'ANY', 'STAT', 'URGENT']\n\t\tconst consultantServices = Object.entries(store.state.consultant.requestTypes).filter(\n\t\t\t([name, guid]) => !priorities.includes(name)\n\t\t)\n\t\tconst consultantServiceMenuItems = consultantServices.map(this._createMenuItemFromConsultantService)\n\t\tlet defaults = this._getDefaultTeleconsultationMenuItems()\n\t\tdefaults.push(...consultantServiceMenuItems)\n\t\tlet menuItems = []\n\t\t// build menu items from user settings\n\t\tfor (let i = 0; i < this.menuSettings.teleconsultation.menuItems.length; i++) {\n\t\t\tconst settingName = this.menuSettings.teleconsultation.menuItems[i]\n\t\t\tconst menuItem = this._createMenuItemFromSetting(settingName, defaults)\n\t\t\tif (menuItem) menuItems.push(menuItem)\n\t\t}\n\t\t// add hidden (but otherwise available) menu items, which can be unhidden by user\n\t\tconst hiddenMenuItems = defaults.filter(m => m.isAvailable && !m.isVisible)\n\t\treturn menuItems.concat(hiddenMenuItems)\n\t}\n\n\tget topTeleconsultationMenuItem() {\n\t\treturn this.teleconsultationMenuItems.length && this.teleconsultationMenuItems[0]\n\t}\n\n\t_getDefaultTeleconsultationMenuItems() {\n\t\treturn [\n\t\t\t{\n\t\t\t\tname: 'Open',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantOpenAll',\n\t\t\t\tfolder: 'teleconsultations_ConsultantOpenAll',\n\t\t\t\tisAvailable: true,\n\t\t\t\tsettingName: 'ConsultantOpenAll',\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'My Reports',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantMyReports',\n\t\t\t\tfolder: 'teleconsultations_ConsultantMyReports',\n\t\t\t\tisAvailable: store.state.auth.claims.isConsultantMember,\n\t\t\t\tsettingName: 'ConsultantMyReports',\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Region',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantRegionalReports',\n\t\t\t\tfolder: 'teleconsultations_ConsultantRegionalReports',\n\t\t\t\tisAvailable: store.state.static.permissions.showTeleconsultationScheduleFiltering,\n\t\t\t\tsettingName: 'ConsultantRegionalReports',\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'STAT',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantSTAT',\n\t\t\t\tfolder: 'teleconsultations_ConsultantSTAT',\n\t\t\t\tisAvailable: store.state.static.permissions.showTeleconsultationScheduleFiltering,\n\t\t\t\tsettingName: 'ConsultantSTAT',\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Urgent',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantUrgent',\n\t\t\t\tfolder: 'teleconsultations_ConsultantUrgent',\n\t\t\t\tisAvailable: store.state.static.permissions.showTeleconsultationScheduleFiltering,\n\t\t\t\tsettingName: 'ConsultantUrgent',\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Pending Review',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantDraft',\n\t\t\t\tfolder: 'teleconsultations_ConsultantDraft',\n\t\t\t\tisAvailable: store.state.auth.claims.isConsultantApprovalSupported,\n\t\t\t\tsettingName: 'ConsultantDraft',\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Today',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantToday',\n\t\t\t\tfolder: 'teleconsultations_ConsultantToday',\n\t\t\t\tsettingName: 'ConsultantToday',\n\t\t\t\tisAvailable: true,\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Yesterday',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantYesterday',\n\t\t\t\tfolder: 'teleconsultations_ConsultantYesterday',\n\t\t\t\tsettingName: 'ConsultantYesterday',\n\t\t\t\tisAvailable: true,\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Past Week',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantPastWeek',\n\t\t\t\tfolder: 'teleconsultations_ConsultantPastWeek',\n\t\t\t\tsettingName: 'ConsultantPastWeek',\n\t\t\t\tisAvailable: true,\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'All',\n\t\t\t\tto: '/teleconsultations/?filter-preset=ConsultantAll',\n\t\t\t\tfolder: 'teleconsultations_ConsultantAll',\n\t\t\t\tsettingName: 'ConsultantAll',\n\t\t\t\tisAvailable: false,\n\t\t\t\tisVisible: false,\n\t\t\t\tisCustomPreset: false,\n\t\t\t},\n {\n name: 'Past Month',\n to: '/teleconsultations/?filter-preset=ConsultantPastMonth',\n folder: 'teleconsultations_ConsultantPastMonth',\n settingName: 'ConsultantPastMonth',\n isAvailable: true,\n isVisible: false,\n isCustomPreset: false,\n },\n\t\t]\n\t}\n\n\t_createMenuItemFromSetting(settingName, defaults) {\n\t\tconst defaultMenuItem = defaults.find(m => m.settingName === settingName)\n\t\tif (defaultMenuItem && defaultMenuItem.isAvailable) {\n\t\t\tdefaultMenuItem.isVisible = true\n\t\t\treturn defaultMenuItem\n\t\t}\n\t\tconst customFilterPresets = this.menuSettings.teleconsultation.filterPresets\n\t\tconst customFilterPreset = customFilterPresets.find(p => p.id === settingName)\n\t\tif (customFilterPreset) {\n\t\t\treturn {\n\t\t\t\tname: customFilterPreset.name,\n\t\t\t\tto: `/teleconsultations/?filter-preset=${customFilterPreset.id}`,\n\t\t\t\tfolder: `teleconsultations_${settingName}`,\n\t\t\t\tsettingName,\n\t\t\t\tisAvailable: true,\n\t\t\t\tisVisible: true,\n\t\t\t\tisCustomPreset: true,\n\t\t\t}\n\t\t}\n\t}\n\n\t_createMenuItemFromConsultantService(consultantService) {\n\t\treturn {\n\t\t\tname: consultantService[0],\n\t\t\tto: `/teleconsultations/?filter-preset=${consultantService[1]}`,\n\t\t\tfolder: `teleconsultations_${consultantService[0]}`,\n\t\t\tsettingName: consultantService[0],\n\t\t\tisAvailable: true,\n\t\t\tisVisible: false,\n\t\t\tisCustomPreset: false,\n\t\t\tid: consultantService[1],\n\t\t}\n\t}\n\n\tget menuItems() {\n\t\treturn {\n\t\t\troot: this.menuSettings.root.menuItems,\n\t\t\tteleconsultation: this.teleconsultationMenuItems,\n\t\t}\n\t}\n\n\tasync fetchMenuSettings() {\n\t\tlet menuItemsAllowed = await this.getMenuItems()\n\t\tconst fetchMenuSettingsForType = ([menu, menuType]) =>\n\t\t\tthis.getMenuSettings(menuType).then(async settings => {\n\n\t\t\t\tif (settings && menuItemsAllowed.length) {\n\t\t\t\t\tconst menuItemsAllowedFiltered = menuItemsAllowed.filter(menuItem => menuItem !== 'Repository Review')\n\t\t\t\t\tlet filteredSettings = {\n\t\t\t\t\t\tfilterPresets: settings.filterPresets,\n\t\t\t\t\t\tmenuItems: [...menuItemsAllowedFiltered],\n\t\t\t\t\t}\n\t\t\t\t\tthis.menuSettings[menu] = filteredSettings\n\t\t\t\t}\n\n\t\t\t\tif (settings && menuType !== 'Root') this.menuSettings[menu] = settings\n\t\t\t})\n\t\tawait Promise.all(Object.entries(MenuTypes).map(fetchMenuSettingsForType))\n\t}\n\n\tasync saveMenuSettings(menu, menuItems, filterPresets) {\n\t\tconst newMenuSettings = clone(this.menuSettings)\n\t\tif (menuItems.some(m => typeof m === 'object')) {\n\t\t\t// convert menuItems to array of setting names\n\t\t\tconst settingNames = menuItems.filter(m => m.isVisible).map(m => m.settingName)\n\t\t\tnewMenuSettings[menu] = { menuItems: settingNames }\n\t\t} else {\n\t\t\t// menuItems is already an array of strings (or is empty)\n\t\t\tnewMenuSettings[menu] = { menuItems }\n\t\t}\n\t\tif (filterPresets) newMenuSettings[menu].filterPresets = filterPresets\n\t\tthis.menuSettings = newMenuSettings\n\t\tawait this._saveMenuSettings(MenuTypes[menu], newMenuSettings[menu])\n\t}\n\n\trefreshFilterPresets() {\n const today = new Date()\n\t\tlet result = {\n ConsultantPastMonth: extendDefaultFilter({\n isComplete: 'Any',\n ...getDateRanges().Month,\n }),\n\t\t\tConsultantOpenAll: extendDefaultFilter({\n\t\t\t\tclaimedByConsultantId: this.groupMembers.length ? '00000000-0000-0000-0000-000000000001' : '',\n ...getDateRanges().Month,\n\t\t\t}),\n\t\t\tcomplete: extendDefaultFilter({ isComplete: 'Complete' }),\n\t\t\tConsultantMyReports: extendDefaultFilter({ claimedByConsultantId: this.userId }),\n\t\t\tConsultantDraft: extendDefaultFilter({ isDraft: 'Yes' }),\n\t\t\tConsultantRegionalReports: extendDefaultFilter({\n\t\t\t\tregion: '00000000-0000-0000-0000-000000000000',\n\t\t\t}),\n\t\t\tConsultantUrgent: extendDefaultFilter({\n\t\t\t\trequestType: this.getRequestTypeIdByName('URGENT'),\n\t\t\t}),\n\t\t\tConsultantSTAT: extendDefaultFilter({\n\t\t\t\trequestType: this.getRequestTypeIdByName('STAT'),\n\t\t\t}),\n\t\t\tConsultantToday: extendDefaultFilter({\n\t\t\t\t...getDateRanges().Today,\n\t\t\t\tisComplete: 'Any',\n\t\t\t}),\n\t\t\tConsultantYesterday: extendDefaultFilter({\n\t\t\t\t...getDateRanges().Yesterday,\n\t\t\t\tisComplete: 'Any',\n\t\t\t}),\n\t\t\tConsultantPastWeek: extendDefaultFilter({\n\t\t\t\t...getDateRanges().Week,\n\t\t\t\tisComplete: 'Any',\n\t\t\t}),\n\t\t\tConsultantAll: extendDefaultFilter({\n\t\t\t\tisComplete: 'Any',\n\t\t\t}),\n\t\t\t...this.getConsultantServicePresets(),\n\t\t\t...this.getCustomFilterPresets(),\n\t\t}\n\t\tthis.presetFilters = result\n\t\treturn result\n\t}\n\n\tgetConsultantServicePresets() {\n\t\t// create presets for consultant services, excluding priorities that already have built-in presets\n\t\tconst priorities = ['STANDARD', 'ANY', 'STAT', 'URGENT']\n\t\tconst consultantServices = this.requestTypes.filter(([name, guid]) => !priorities.includes(name))\n\t\tconst consultantServicePresets = {}\n\t\tconsultantServices.forEach(([name, guid]) => {\n\t\t\tconsultantServicePresets[guid] = extendDefaultFilter({ requestType: guid })\n\t\t})\n\t\treturn consultantServicePresets\n\t}\n\n\tgetRequestTypeIdByName(name) {\n\t\tconst service = this.requestTypes.find(s => s[0] === name)\n\t\tif (service) return service[1]\n\t}\n\n\tgetRequestTypeNameById(guid) {\n\t\tconst service = this.requestTypes.find(s => s[1] === guid)\n\t\tif (service) return service[0]\n\t}\n\n\tgetConsultantNameById(id) {\n\t\tconst consultant = this.consultants.find(c => c.id === id)\n\t\tif (consultant) return consultant.name\n\t}\n\n\tgetGroupMemberNameById(id) {\n\t\tif (id === this.userId) return 'me'\n\t\tlet groupMember = this.groupMembers.find(c => c.id === id)\n\t\tif (!groupMember) groupMember = this.consultants.find(c => c.id === id)\n\t\tif (groupMember) return groupMember.name\n\t}\n\n\tgetClinicNameFromClinicCode(clinicCode) {\n\t\tconst clinic = this.clientClinics.find(c => c.clinicCode === clinicCode)\n\t\tif (clinic) return clinic.name\n\t}\n\n\tgetRegionNameById(id) {\n\t\tconst region = this.regions.find(c => c.id === id)\n\t\tif (region) return region.name\n\t}\n\n\tgetCustomFilterPresets() {\n\t\tif (!this.menuSettings.teleconsultation || !this.menuSettings.teleconsultation.filterPresets) return {}\n\t\tconst customPresets = {}\n\t\tthis.menuSettings.teleconsultation.filterPresets.forEach(preset => {\n\t\t\tconst allDates = getDateRanges().all\n\t\t\tconst requestDates = getDateRanges()[preset.requestDateRange] || allDates\n\t\t\tconst studyDates = getDateRanges()[preset.studyDateRange] || allDates\n\t\t\tconst responseDates = getDateRanges()[preset.responseDateRange] || allDates\n\t\t\tconst modalityIds = this.modalityOptions.filter(o => o.name === preset.modality).map(o => o.id)\n\t\t\tcustomPresets[preset.id] = extendDefaultFilter({\n\t\t\t\tmodalityIds,\n\t\t\t\tstartDate: requestDates.startDate,\n\t\t\t\tendDate: requestDates.endDate,\n\t\t\t\tstudyStartDate: studyDates.startDate,\n\t\t\t\tstudyEndDate: studyDates.endDate,\n\t\t\t\tresponseStartDate: responseDates.startDate,\n\t\t\t\tresponseEndDate: responseDates.endDate,\n\t\t\t\tisComplete: preset.isComplete,\n\t\t\t\tisDraft: preset.isDraft,\n\t\t\t\trequestType: preset.requestType,\n\t\t\t\tregion: preset.region,\n\t\t\t\tclaimedByConsultantId: preset.claimedBy,\n\t\t\t\tclinicCode: preset.requestedBy,\n\t\t\t})\n\t\t})\n\t\treturn customPresets\n\t}\n}\n\nexport const menu = new MenuService()\n\n/* eslint-disable no-new */\nnew Vue({\n\tdata: {\n\t\tmenu,\n\t},\n\twatch: {\n\t\t'menu.requestTypes'() {\n\t\t\tmenu.refreshFilterPresets()\n\t\t},\n\t},\n})\n","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!./VSelect.vue?vue&type=style&index=0&id=233ec5a4&prod&lang=scss\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-layout\",class:{\n\t\tselected: _vm.layout.selected,\n\t\teditorMode: _vm.layout.template.editorMode && _vm.layout.selected,\n\t\tlive: _vm.layout.previewInEditor,\n\t}},[_c('cell',{attrs:{\"cell\":_vm.layout.root}}),(_vm.errors.length)?_c('div',{staticStyle:{\"margin\":\"16px 0\"}},[_c('transition-group',{attrs:{\"name\":\"expand\"}},_vm._l((_vm.errors),function(error){return _c('div',{key:error,staticClass:\"is-danger\"},[_vm._v(_vm._s(error))])}),0)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Layout } from '../classes'\n\nexport default {\n\tname: 'Layout',\n\tprops: {\n\t\tlayout: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\terrors() {\n\t\t\tif (this.layout.readOnly || !this.layout.activeRoot) return []\n\t\t\telse return [...new Set(this.layout.report.validationErrors)]\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=e97d5242\"\nimport script from \"./Layout.vue?vue&type=script&lang=ts\"\nexport * from \"./Layout.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Layout.vue?vue&type=style&index=0&id=e97d5242&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.saveAndClose}},[_c('div',{staticClass:\"modal-dialog\",attrs:{\"id\":\"releasenotes\"}},[_c('dlg-header',{attrs:{\"title\":\"Release Notes\"},on:{\"close\":_vm.saveAndClose}},[_c('svg-icon',{attrs:{\"icon\":\"star\"}})],1),_c('div',{staticClass:\"modal-body scroll\"},[_vm._l((_vm.releases),function(release){return [_c('div',{key:release.version,staticClass:\"release\"},[_c('strong',[_vm._v(_vm._s(release.title))]),_c('div',{domProps:{\"innerHTML\":_vm._s(release.html)}})])]}),(_vm.releases.length === 0)?_c('div',[_vm._v(\"\\n\\t\\t\\t\\tNothing new to report!\\n\\t\\t\\t\")]):_vm._e()],2),_c('div',{staticClass:\"footer right\"},[(_vm.hasMore)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){return _vm.showMore()}}},[_vm._v(\"Show More\")]):_vm._e(),_vm._v(\" \\n\\t\\t\\t\"),_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.saveAndClose()}}},[_vm._v(\"Close\")])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\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!./ReleaseNotes.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!./ReleaseNotes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReleaseNotes.vue?vue&type=template&id=01db828d&scoped=true\"\nimport script from \"./ReleaseNotes.vue?vue&type=script&lang=js\"\nexport * from \"./ReleaseNotes.vue?vue&type=script&lang=js\"\nimport style0 from \"./ReleaseNotes.vue?vue&type=style&index=0&id=01db828d&prod&lang=scss&scoped=true\"\nimport style1 from \"./ReleaseNotes.vue?vue&type=style&index=1&id=01db828d&prod&lang=scss\"\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 \"01db828d\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close}},[_c('div',{staticClass:\"dialog messageBox\"},[_c('div',{staticClass:\"inner\"},[(_vm.type == 'info')?_c('svg-icon',{staticClass:\"is-info\",attrs:{\"icon\":\"info-circle\"}}):_vm._e(),(_vm.type == 'alert')?_c('svg-icon',{staticClass:\"is-warning\",attrs:{\"icon\":\"exclamation-triangle\"}}):_vm._e(),(_vm.message)?_c('p',[_vm._v(_vm._s(_vm.message))]):_vm._e(),(_vm.lines && _vm.lines.length)?_c('div',_vm._l((_vm.lines),function(line,idx){return _c('p',{key:idx,domProps:{\"innerHTML\":_vm._s(line)}})}),0):_vm._e(),(_vm.list && _vm.list.length)?_c('ul',_vm._l((_vm.list),function(item,idx){return _c('li',{key:idx},[_vm._v(_vm._s(item))])}),0):_vm._e()],1),_c('div',{staticClass:\"footer right\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Close\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./MessageDlg.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!./MessageDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageDlg.vue?vue&type=template&id=0c9a60a4\"\nimport script from \"./MessageDlg.vue?vue&type=script&lang=js\"\nexport * from \"./MessageDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./MessageDlg.vue?vue&type=style&index=0&id=0c9a60a4&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","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!./UploadForm.vue?vue&type=style&index=0&id=3d9e6337&prod&lang=scss&scoped=true\"","import { stringToDate } from '@utils/dateUtils.js'\nimport { formatNumber as uFormatNumber, parseNumber as uParseNumber } from '@utils/numberUtils'\nimport { getLocale } from '@utils/locale'\n\nconst translations = {\n\tconsignerStudy: {\n\t\t'en-us': 'Hip',\n\t\t'en-au': 'Lot',\n\t},\n\tconsigner: {\n\t\t'en-us': 'Consigner',\n\t\t'en-au': 'Vendor',\n\t},\n}\nexport const translate = key => {\n\treturn translations[key][getLocale()] || translations[key]['en-us']\n}\n\nconst DateTimeOptions = {\n\tyear: 'numeric',\n\tmonth: 'numeric',\n\tday: 'numeric',\n\thour: 'numeric',\n\tminute: '2-digit',\n}\nconst DateTimeSecOptions = {\n\tyear: 'numeric',\n\tmonth: 'numeric',\n\tday: 'numeric',\n\thour: 'numeric',\n\tminute: '2-digit',\n\tsecond: '2-digit',\n}\nconst TimeOptions = {\n\thour: 'numeric',\n\tminute: '2-digit',\n}\nexport const localizeDate = (\n\tdateString,\n\t{ showDate = true, showTime = true, forceUTC = true, showSeconds = false } = {}\n) => {\n\tif (!dateString) return ''\n\tlet localizedDate = dateString.getMinutes ? dateString : stringToDate(dateString, forceUTC)\n\tlet result\n\tif (showDate && showTime) {\n\t\tresult = localizedDate.toLocaleString(getLocale(), showSeconds ? DateTimeSecOptions : DateTimeOptions)\n\t} else if (showDate && !showTime) {\n\t\tresult = localizedDate.toLocaleDateString(getLocale())\n\t} else if (!showDate) {\n\t\tresult = localizedDate.toLocaleTimeString(getLocale(), TimeOptions)\n\t}\n\treturn result === 'Invalid Date' ? '' : result\n}\n\nconst formatNumber = (number, opts) => {\n\treturn uFormatNumber(number, opts)\n}\n\nconst parseNumber = (string, opts) => {\n\treturn uParseNumber(string, opts)\n}\n\nexport default {\n\tfilters: { localizeDate, formatNumber, parseNumber },\n\tmethods: { translate, getLocale },\n}\n","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"88fe3abdf8d5bfbfb573.worker.js\");\n};","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"radio\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.intModel),expression:\"intModel\"}],attrs:{\"id\":_vm.uid,\"type\":\"radio\",\"name\":_vm.name},domProps:{\"value\":_vm.value,\"checked\":_vm._q(_vm.intModel,_vm.value)},on:{\"change\":function($event){_vm.intModel=_vm.value}}}),_c('label',{attrs:{\"for\":_vm.uid}},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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!./Radio.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!./Radio.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Radio.vue?vue&type=template&id=8a21d86c&scoped=true\"\nimport script from \"./Radio.vue?vue&type=script&lang=js\"\nexport * from \"./Radio.vue?vue&type=script&lang=js\"\nimport style0 from \"./Radio.vue?vue&type=style&index=0&id=8a21d86c&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 \"8a21d86c\",\n null\n \n)\n\nexport default component.exports","import AstCard from '@components/Card.vue'\nimport AstPagination from '@components/Pagination'\nimport DataTable from '@components/DataTable.vue'\nimport DateRangePicker from '@components/DateRangePicker.vue'\nimport FilterTag from '@components/FilterTag.vue'\nimport SearchAndFilter from '@components/SearchAndFilter.vue'\nimport { Dbounce } from '@/utils/dbounce'\n\nexport default {\n\tcomponents: {\n\t\tAstCard,\n\t\tAstPagination,\n\t\tDataTable,\n\t\tDateRangePicker,\n\t\tFilterTag,\n\t\tSearchAndFilter,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tlist: [],\n\t\t\tfilter: {},\n\t\t\tfilterPresets: {},\n\t\t\tdialogCurrentPage: 0,\n\t\t\tdialogResultsPerPage: 25,\n\t\t\thasMoreResults: false,\n\t\t\tisLoading: false, // for optionally showing loading indicator in UI\n\t\t\tisRefreshingList: false, // for preventing refresh if already refreshing\n\t\t}\n\t},\n\tcomputed: {\n\t\tlistSort() {\n\t\t\treturn {\n\t\t\t\torderBy: this.filter.order.by,\n\t\t\t\tisAscending: this.filter.order.isAscending,\n\t\t\t\tisSorted: true,\n\t\t\t}\n\t\t},\n\t\tresultsPerPage: {\n\t\t\tget() {\n\t\t\t\tif ('isDialog' in this && this.isDialog && this.dialogResultsPerPage) {\n\t\t\t\t\treturn this.dialogResultsPerPage\n\t\t\t\t} else if (this.$store.state.ui.resultsPerPage) {\n\t\t\t\t\treturn this.$store.state.ui.resultsPerPage\n\t\t\t\t} else {\n\t\t\t\t\treturn this.defaultResultsPerPage || 25\n\t\t\t\t}\n\t\t\t},\n\t\t\tset(resultsPerPage) {\n\t\t\t\tif ('isDialog' in this && this.isDialog) {\n\t\t\t\t\tthis.dialogResultsPerPage = resultsPerPage\n\t\t\t\t} else {\n\t\t\t\t\tthis.$store.commit('SET_RESULTS_PER_PAGE', resultsPerPage)\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcurrentPage: {\n\t\t\tget() {\n\t\t\t\tconst cachedCurrentPage = this.$route && this.$store.state.ui.currentPage[this.$route.name]\n\t\t\t\tif ('isDialog' in this && this.isDialog) {\n\t\t\t\t\treturn this.dialogCurrentPage\n\t\t\t\t} else if (cachedCurrentPage) {\n\t\t\t\t\treturn cachedCurrentPage\n\t\t\t\t} else {\n\t\t\t\t\treturn 0\n\t\t\t\t}\n\t\t\t},\n\t\t\tset(page) {\n\t\t\t\tif ('isDialog' in this && this.isDialog) {\n\t\t\t\t\tthis.dialogCurrentPage = page\n\t\t\t\t} else {\n\t\t\t\t\tthis.$store.commit('SET_CURRENTPAGE', { route: this.$route.name, page })\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tselectedStudy: {\n\t\t\tget() {\n\t\t\t\tconst cachedSelectedStudyId = this.$store.state.ui.listSelectedStudyId\n\t\t\t\tif (!('isDialog' in this && this.isDialog) && cachedSelectedStudyId) {\n\t\t\t\t\treturn this.list.find(s => s.studyId === cachedSelectedStudyId)\n\t\t\t\t} else {\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t},\n\t\t\tset(study) {\n\t\t\t\tif (!('isDialog' in this && this.isDialog)) {\n\t\t\t\t\tthis.$store.commit('SET_LIST_SELECTED_STUDYID', study?.studyId)\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t},\n\twatch: {\n\t\tcurrentPage() {\n\t\t\tthis.refreshList()\n\t\t\t// Scroll to top of embedded list (add more selectors as needed)\n\t\t\tconst selectors = ['.table-wrapper']\n\t\t\tconst el = selectors.map(s => document.querySelector(s)).find(e => e)\n\t\t\tif (el) {\n\t\t\t\t// Would be nice to animate this with tween.js or scrollTo\n\t\t\t\tel.scrollTop = 0\n\t\t\t}\n\t\t},\n\t\tresultsPerPage() {\n\t\t\tthis.currentPage = 0\n\t\t\tthis.refreshList()\n\t\t},\n\t\tfilter: {\n\t\t\thandler() {\n\t\t\t\tif (!this.refreshDbounce) {\n\t\t\t\t\tthis.refreshList()\n\t\t\t\t} else this.refreshDbounce.set()\n\t\t\t},\n\t\t\tdeep: true,\n\t\t\timmediate: true,\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.refreshDbounce = new Dbounce(100, this.refreshList.bind(this))\n\t},\n\tmethods: {\n\t\tclearFilterDateRange(prefix) {\n\t\t\tthis.currentPage = 0\n\t\t\tif (!prefix) {\n\t\t\t\tthis.filter.startDate = ''\n\t\t\t\tthis.filter.endDate = ''\n\t\t\t} else {\n\t\t\t\tthis.filter[prefix + 'StartDate'] = ''\n\t\t\t\tthis.filter[prefix + 'EndDate'] = ''\n\t\t\t}\n\t\t},\n\t\tupdateFilter(newFilter) {\n\t\t\tif (JSON.stringify(newFilter) !== JSON.stringify(this.filter)) this.currentPage = 0\n\t\t\tthis.filter = newFilter\n\t\t},\n\t\tupdateFilterComponent(key, value) {\n\t\t\tthis.currentPage = 0\n\t\t\tthis.filter[key] = value\n\t\t},\n\t\thandleSortSelected(evt) {\n\t\t\tthis.currentPage = 0\n\t\t\tthis.filter.order.by = evt.name\n\t\t\tthis.filter.order.isAscending = evt.isAscending\n\t\t},\n\t\tasync refreshList(showLoading = true, waitForPreviousRefresh = false) {\n\t\t\tif (waitForPreviousRefresh && this.isRefreshingList) return\n\t\t\tthis.isRefreshingList = true\n\t\t\tif (showLoading) this.isLoading = true\n\t\t\tif (this.refreshFilterPresets) this.refreshFilterPresets()\n\t\t\ttry {\n\t\t\t\tawait this.fetchList()\n\t\t\t} finally {\n\t\t\t\tthis.isLoading = false\n\t\t\t\tthis.isRefreshingList = false\n\t\t\t}\n\t\t},\n\t},\n}\n","import { ReportDetail } from '@reporting/classes'\nimport api, { API, paramsSerializer, RESTAPI } from '@services/api'\nimport { clinicAPI } from '@services/clinicAPI'\nimport { addNotification } from '@services/notificationService'\nimport store from '@store'\nimport reportService from './reportService'\nimport { uploadData } from './uploads'\nimport { userData } from './userData'\nimport workflow from './workflow'\n\nconst VETCTAPI = 'VETCTAPIINTEGRATION'\n\nclass ConsultationService {\n\tasync startRequestReport(studyId: string, consultantId: string): Promise {\n\t\tworkflow.consultantId = consultantId\n\t\tconst studyIds = studyId.split(',')\n\t\tconst report = await this.start(consultantId, studyIds)\n\t\treturn report\n\t}\n\n\tasync submitImageOnlyRequest(request: IImageOnlyRequest): Promise {\n\t\tworkflow.isLoading = true\n\t\ttry {\n\t\t\tawait API.post(`/reporting/submit-image-only-request`, request)\n\t\t\tconst studyCount = request.studyIds.length\n\t\t\tlet message = `Successfully submitted `\n\t\t\tif (studyCount > 0) message += `the ${studyCount > 1 ? 'studies' : 'study'} `\n\t\t\tmessage += `to ${workflow.consultant.name}!`\n\t\t\taddNotification(message, 'success')\n\t\t\tuploadData.stopUploads({ context: 'teleconsultation-request' })\n\t\t\treturn true\n\t\t} finally {\n\t\t\tworkflow.isLoading = false\n\t\t}\n\t}\n\n\tasync createCase(request: INewConsultationRequest) {\n\t\treturn RESTAPI.post(`/radiology/create-case`, request)\n\t}\n\n\tasync getReportSLA(provider: string, clinicCode: string, caseKey: string) {\n\t\treturn RESTAPI.get(`/sla/get-report-sla?Provider=${provider}&ClinicCode=${clinicCode}&CaseKey=${caseKey}`).then(\n\t\t\tr => r.data\n\t\t)\n\t}\n\n\tasync updateReportSLA(slaData: ISlaUpdateData) {\n\t\treturn RESTAPI.put('/sla/update', slaData)\n\t}\n\n\tasync submitTeleconsultationRequest(request: INewConsultationRequest): Promise {\n\t\tworkflow.isLoading = true\n\t\ttry {\n\t\t\tlet consultant = await this.getConsultantInfo(request.consultantId)\n\t\t\tif (consultant.clinicCode === VETCTAPI) {\n\t\t\t\tawait RESTAPI.post(`/radiology/submit-request`, request)\n\t\t\t} else {\n\t\t\t\tawait API.post(`/reporting/submit-request`, request)\n\t\t\t}\n\t\t\tconst studyCount = request.studyIds.length\n\t\t\tlet message = `Successfully submitted `\n\t\t\tif (studyCount > 0) message += `the ${studyCount > 1 ? 'studies' : 'study'} `\n\t\t\tmessage += `to ${workflow.consultant.name}!`\n\t\t\taddNotification(message, 'success')\n\t\t\tuploadData.stopUploads({ context: 'teleconsultation-request' })\n\t\t\treturn true\n\t\t} finally {\n\t\t\tworkflow.isLoading = false\n\t\t}\n\t}\n\n\tasync submitCase(provider: string, clinicCode: string, caseKey: string) {\n\t\treturn RESTAPI.put(`/radiology/submit-case?Provider=${provider}&ClinicCode=${clinicCode}&CaseKey=${caseKey}`).then(\n\t\t\tr => r.data\n\t\t)\n\t}\n\n\tasync getCase(provider: string, consultantReportId: string) {\n\t\treturn RESTAPI.get(`/radiology/get-case?Provider=${provider}&ConsultantReportId=${consultantReportId}`).then(\n\t\t\tr => r.data\n\t\t)\n\t}\n\n\tasync downloadExternalReport(providerClinicCode: string, clientClinicCode: string, consultantReportId: string) {\n\t\treturn RESTAPI.get(\n\t\t\t`/radiology/download-external-report?providerClinicCode=${providerClinicCode}&clientClinicCode=${clientClinicCode}&consultantReportId=${consultantReportId}`\n\t\t).then(r => r.data)\n\t}\n\n\tgetConsultantGroupMembers(consultantId: string): Promise {\n\t\treturn API.get(`teleconsultation/group-members/${consultantId}`).then(r => r.data)\n\t}\n\tgetConsultantRegions(consultantId: string) {\n\t\treturn API.get(`teleconsultation/regions/${consultantId}`).then(r => r.data)\n\t}\n\tgetConsultantClientClinics(consultantId: string) {\n\t\treturn API.get(`teleconsultation/client-clinics/${consultantId}`).then(r => r.data)\n\t}\n\tgetConsultantCommunityUsers(consultantId: string) {\n\t\treturn API.get(`teleconsultation/community-users/${consultantId}`).then(r => r.data)\n\t}\n\tgetConsultantRequestTypes(consultantId: string) {\n\t\treturn API.get(`teleconsultation/request-types/${consultantId}`).then(r => r.data)\n\t}\n\n\tescalatePriority(id: string, reason: string) {\n\t\treturn API.post(`/teleconsultation/${id}/escalate-priority`, { reason })\n\t}\n\trecallPetRaysReport(id: string) {\n\t\treturn API.get(`/teleconsultation/recall-petrays/${id}`).then(r => r.data)\n\t}\n\n\tasync recallReport(consultation: IConsultationForRecall) {\n\t\treturn RESTAPI.get(\n\t\t\t`/recall/claim?ConsultantReportId=${consultation.consultantReportId}&UserId=${consultation.userId}&ClinicCode=${\n\t\t\t\tconsultation.clinicCode\n\t\t\t}`\n\t\t).then(r => r.data)\n\t}\n\n\tgetFolderCounts(folders) {\n\t\t// @ts-ignore\n\t\treturn API.post(`/teleconsultation/folder-counts`, folders, { cancelPending: true }).then(r => r && r.data)\n\t}\n\n\tgetList({ params, cancelToken }): Promise> {\n\t\treturn API.get(`/teleconsultation/list`, {\n\t\t\t// @ts-ignore\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data)\n\t}\n\n\tgetImageOnlyReport(id: string): Promise {\n\t\treturn API.get(`/reporting/image-only-report/${id}`).then(r => r.data)\n\t}\n\n\tasync getConsultantReport(id: string): Promise {\n\t\tlet report: IConsultantReport = await API.get(\n\t\t\t`/reporting/consultant-report?id=${id}&importMachineName=${clinicAPI.importMachineName}`\n\t\t).then(r => r.data)\n\n\t\tawait this.setReportMeta(report)\n\t\tlet result = ReportDetail.loadFromConsultantReport(report)\n\n\t\t// if the report is complete or the consultant is viewing the report show the response\n\t\t// otherwise show the request\n\t\tlet isConsultant =\n\t\t\tstore.state.auth.claims.userId === result.consultant.id || store.state.auth.claims.isConsultantMember\n\n\t\tlet activeTemplate = result.response\n\t\tif (!result.canViewResponse) {\n\t\t\tresult.response.values = {}\n\t\t\tresult.imageComments = []\n\t\t}\n\n\t\tif (!report.isComplete) {\n\t\t\tlet residentResponse =\n\t\t\t\treport.residentResponses &&\n\t\t\t\treport.residentResponses.find(r => r.consultantId === userData.claims.userId && r.id)\n\t\t\tif (residentResponse) {\n\t\t\t\tresult.applyResidentResponse(residentResponse)\n\t\t\t}\n\t\t}\n\n\t\tresult.setActiveTemplate(activeTemplate)\n\t\tresult.setCanRespond()\n\n\t\t// if the report was sent make the layout read only\n\t\tif (result.consultantReportId) {\n\t\t\tresult.request.root.readOnly = true\n\t\t}\n\t\tresult.studies = await api.viewer.getStudy({ ids: result.studyIds }, false).then(r => r.studies)\n\t\treturn result\n\t}\n\n\tasync setReportMeta(report: IConsultantReport) {\n\t\tlet meta = await reportService.getTemplateMeta(report.request.template.metaVersion)\n\t\treport.request.template.meta = meta\n\t\tif (report.response) {\n\t\t\treport.response.template.meta = meta\n\t\t}\n\t}\n\n\tgetRelated(id) {\n\t\treturn API.get(`/teleconsultation/related-reports?id=${id}`)\n\t}\n\n\tgetConsultants() {\n\t\treturn API.get(`/teleconsultation/consultant-list`).then(r => r.data)\n\t}\n\n\tgetOnBehalfOf(params) {\n\t\treturn API.get(`/teleconsultation/on-behalf-of-list`, {\n\t\t\t// @ts-ignore\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t}\n\n\tgetEmail(params) {\n\t\treturn API.get(`/teleconsultation/email-list`, {\n\t\t\t// @ts-ignore\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t}\n\n\tasync start(consultantId: string, studyIds: string[]): Promise {\n\t\tlet report: IConsultantReport = await API.get(`/reporting/start-consultant-report`, {\n\t\t\tparams: {\n\t\t\t\tconsultantId,\n\t\t\t\tstudyIds,\n\t\t\t},\n\t\t\tparamsSerializer,\n\t\t}).then(r => r.data)\n\t\tawait this.setReportMeta(report)\n\n\t\tlet meta = await reportService.getTemplateMeta(report.request.template.metaVersion)\n\n\t\tlet result = ReportDetail.loadFromConsultantReport(report)\n\t\tresult.setActiveTemplate(result.request)\n\t\treturn result\n\t}\n\n\tcomplete({ id, data }) {\n\t\treturn API.post(`/teleconsultation/${id}/complete`, data)\n\t}\n\n\tsave({ id, data }) {\n\t\treturn API.post(`/teleconsultation/${id}/save`, data)\n\t}\n\n\tsetResponseTemplate({ id, data }) {\n\t\treturn API.post(`/teleconsultation/${id}/set-response-template`, data)\n\t}\n\n\taddReportMessage(data: IReportMessageForm) {\n\t\treturn API.post(`/reporting/add-report-message`, data)\n\t}\n\n\tshareByEmail(data) {\n\t\treturn API.post(`/teleconsultation/share-by-email`, data)\n\t}\n\n\tupdateConsultantVisibility(params) {\n\t\treturn API.get(`/teleconsultation/update-consultant-visibility`, { params, paramsSerializer })\n\t}\n\n\tsaveConsultantResponse(report: IConsultantResponseForm): Promise {\n\t\treturn API.post(`/reporting/save-consultant-response`, report)\n\t}\n\n\tdeleteReport(consultantReportId: string, reason: string) {\n\t\treturn API.post(`/teleconsultation/delete-consultant-report/${consultantReportId}`, { reason })\n\t}\n\n\tgetConsultantsForAdmin(): Promise {\n\t\treturn API.get('/reporting/consultants-for-admin').then(r => r.data)\n\t}\n\n\tgetConsultantGroups(consultantId: string): Promise {\n\t\treturn API.get(`/reporting/consultant-groups/${consultantId}`).then(r => r.data)\n\t}\n\n\tgetConsultantInfo(consultantId: string): Promise {\n\t\treturn API.get(`/reporting/consultant-info/${consultantId}`).then(r => r.data)\n\t}\n}\n\nexport const consultations = new ConsultationService()\nexport default consultations\n// @ts-ignore\nwindow.consultations = consultations\n","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!./MprPerformance.vue?vue&type=style&index=0&id=9eabbc4c&prod&lang=scss&scoped=true\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close}},[_c('div',{staticClass:\"dialog flex\",attrs:{\"id\":\"dicom-service-log-dlg\"}},[_c('dlg-header',{staticStyle:{\"background\":\"var(--secondary-bg)\"},attrs:{\"title\":\"DICOM Services Logs\"},on:{\"close\":function($event){return _vm.close()}}}),_c('div',{staticClass:\"scroll-body\"},[(_vm.service)?_c('div',{staticClass:\"service-info\"},[_c('p',[_c('strong',[_vm._v(\"AE Title:\")]),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.service.dicomAeTitle)+\"\\n\\t\\t\\t\\t\")]),(_vm.service.hostName)?_c('p',[_c('strong',[_vm._v(\"Hostname:\")]),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.service.hostName)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_c('p',[_c('strong',[_vm._v(\"Port:\")]),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.service.dicomPort)+\"\\n\\t\\t\\t\\t\")])]):_vm._e(),(!_vm.studyId)?_c('search-and-filter',{attrs:{\"is-dialog\":\"\"},scopedSlots:_vm._u([{key:\"tags\",fn:function(){return [_c('filter-tag',{attrs:{\"value\":_vm.filter.modalityIds,\"clear-value\":[]},on:{\"input\":function($event){_vm.filter.modalityIds = []}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$store.getters.modalityNamesById(_vm.filter.modalityIds).join(' / '))+\"\\n\\t\\t\\t\\t\\t\")]),_c('filter-tag',{attrs:{\"value\":_vm.filter.logType,\"clear-value\":null},on:{\"input\":function($event){_vm.filter.logType = null}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.filter.logType)+\" Logs\\n\\t\\t\\t\\t\\t\")])]},proxy:true}],null,false,3891512113),model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}},[_c('div',[_c('label',[_vm._v(\"Log Type\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.logType),expression:\"filter.logType\"}],staticClass:\"select\",staticStyle:{\"padding\":\"4px\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.filter, \"logType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{domProps:{\"value\":null}},[_vm._v(\"All\")]),_c('option',{attrs:{\"value\":\"Error\"}},[_vm._v(\"Error\")]),_c('option',{attrs:{\"value\":\"Info\"}},[_vm._v(\"Info\")])])])]):_vm._e(),(_vm.studyId)?_c('div',{staticStyle:{\"padding-bottom\":\"16px\"}},[_c('p',{staticStyle:{\"font-size\":\"0.9em\",\"padding-bottom\":\"8px\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\tLog Type\\n\\t\\t\\t\\t\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filter.logType),expression:\"filter.logType\"}],staticClass:\"select\",staticStyle:{\"padding\":\"4px\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.filter, \"logType\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},[_c('option',{domProps:{\"value\":null}},[_vm._v(\"All\")]),_c('option',{attrs:{\"value\":\"Error\"}},[_vm._v(\"Error\")]),_c('option',{attrs:{\"value\":\"Info\"}},[_vm._v(\"Info\")])])]):_vm._e(),_c('div',{staticClass:\"results\"},[_c('pagination',{staticStyle:{\"max-width\":\"100vw\"},attrs:{\"current-page\":_vm.currentPage,\"results-per-page\":_vm.resultsPerPage,\"results-length\":_vm.logs.length,\"has-more-results\":_vm.hasMoreResults},on:{\"set-results-per-page\":function (num) {\n\t\t\t\t\t\t\t_vm.resultsPerPage = num\n\t\t\t\t\t\t\t_vm.currentPage = 0\n\t\t\t\t\t\t},\"set-current-page\":function (page) { return (_vm.currentPage = page); }}}),(_vm.isLoading || _vm.hasLogs)?_c('data-table',{staticClass:\"results-table table--striped\"},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Date\")]),(!_vm.service)?_c('th',[_vm._v(\"Hostname\")]):_vm._e(),_c('th',[_vm._v(\"Message\")])])]),_c('tbody',_vm._l((_vm.logs),function(log){return _c('tr',{key:log.id},[_c('td',[_vm._v(_vm._s(_vm._f(\"localizeDate\")(log.logDateTime,{ showSeconds: true })))]),(!_vm.service)?_c('td',[_vm._v(_vm._s(log.hostName))]):_vm._e(),_c('td',{staticStyle:{\"max-width\":\"600px\",\"word-break\":\"break-word\"}},[(log.logType === 'Error')?_c('span',{staticClass:\"error-tag\"},[_vm._v(\"Error\")]):_vm._e(),_c('span',[_vm._v(_vm._s(log.message))]),(log.patientName)?_c('div',{staticClass:\"studyInfo\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(log.patientName)+\" (\"+_vm._s(log.patientId)+\")   Modality:\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(log.modality)+\"   Study Date:\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(log.studyDateTime,{ forceUTC: false }))+\"   UID:\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(log.imageUid)+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]):_vm._e(),(log.details)?_c('a',{staticClass:\"blue\",on:{\"click\":function($event){return _vm.showDetails(log)}}},[_vm._v(\" [Details]\")]):_vm._e()])])}),0)]):(!_vm.hasLogs)?_c('div',{staticStyle:{\"padding\":\"16px\",\"font-style\":\"italic\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\tNo logs found\\n\\t\\t\\t\\t\")]):_vm._e()],1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./DicomServiceLogDlg.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!./DicomServiceLogDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DicomServiceLogDlg.vue?vue&type=template&id=736fac1a&scoped=true\"\nimport script from \"./DicomServiceLogDlg.vue?vue&type=script&lang=js\"\nexport * from \"./DicomServiceLogDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./DicomServiceLogDlg.vue?vue&type=style&index=0&id=736fac1a&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 \"736fac1a\",\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","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!./DlgHeader.vue?vue&type=style&index=0&id=1d620ecc&prod&lang=scss\"","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!./ReportTable.vue?vue&type=style&index=0&id=6d399898&prod&lang=scss\"","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!./ModalWrapper.vue?vue&type=style&index=0&id=ab30ac20&prod&lang=scss\"","module.exports = \"\"","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!./BirthdateAgeInputs.vue?vue&type=style&index=0&id=1a59116b&prod&lang=scss&scoped=true\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"TeleconsultationThumbnails\"},[(!_vm.readOnly)?_c('p',[_c('svg-icon',{staticClass:\"is-info\",attrs:{\"icon\":\"info-circle\",\"fixed\":\"\"}}),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.instruction)}})],1):_vm._e(),(_vm.thumbnails.length)?_c('ol',_vm._l((_vm.thumbnails),function(thumbnail,i){return _c('li',{key:i,attrs:{\"draggable\":\"\"},on:{\"dragstart\":function($event){return _vm.onDragStart(thumbnail, $event)},\"click\":function($event){$event.preventDefault();_vm.readOnly ? _vm.openViewer(thumbnail) : _vm.toggleSeries(thumbnail.seriesId)}}},[_c('div',{staticClass:\"thumbnail\",style:({\n\t\t\t\t\t'background-image': (\"url(\" + (_vm.findThumbnailUrl(thumbnail)) + \")\"),\n\t\t\t\t}),attrs:{\"alt\":\"Thumbnail preview of first image in series\"}},[(_vm.seriesToExclude.includes(thumbnail.seriesId))?_c('div',{staticClass:\"excluded\"},[_vm._v(\"\\n\\t\\t\\t\\t\\tExcluded\\n\\t\\t\\t\\t\")]):_vm._e()]),_c('div',{staticClass:\"thumbnail-label\"},[(thumbnail.seriesNumber)?_c('strong',[_vm._v(_vm._s(thumbnail.seriesNumber))]):_vm._e(),(thumbnail.simpleName)?_c('span',{staticClass:\"thumbnail-name\"},[_vm._v(_vm._s(thumbnail.simpleName))]):_vm._e(),(thumbnail.numberOfImages > 1)?_c('p',{staticClass:\"thumbnail-images\"},[_vm._v(\" (\"+_vm._s(thumbnail.numberOfImages)+\" Images) \")]):_vm._e()])])}),0):_vm._e(),_c('attachment-list',{staticClass:\"attachment-list\",attrs:{\"attachments\":_vm.attachments,\"open-on-click\":_vm.readOnly,\"series-to-exclude\":_vm.seriesToExclude},on:{\"select\":_vm.toggleSeries}}),(_vm.showAddStudyButton && !_vm.readOnly)?_c('div',{staticStyle:{\"margin-top\":\"20px\"}},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){return _vm.$emit('add-study')}}},[_vm._v(\"\\n\\t\\t\\tAdd Study\\n\\t\\t\")]),_vm._v(\"\\n\\t\\t \\n\\t\\t\"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){return _vm.$emit('add-files')}}},[_vm._v(\"\\n\\t\\t\\tAdd File\\n\\t\\t\")])]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./TeleconsultationThumbnails.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!./TeleconsultationThumbnails.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TeleconsultationThumbnails.vue?vue&type=template&id=207dff10\"\nimport script from \"./TeleconsultationThumbnails.vue?vue&type=script&lang=js\"\nexport * from \"./TeleconsultationThumbnails.vue?vue&type=script&lang=js\"\nimport style0 from \"./TeleconsultationThumbnails.vue?vue&type=style&index=0&id=207dff10&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./CopyImageDlg.vue?vue&type=style&index=0&id=95e51076&prod&lang=scss\"","module.exports = \"\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","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!./RadioGroup.vue?vue&type=style&index=0&id=c6add262&prod&lang=scss\"","module.exports = \"\"","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!./UserStudiesTable.vue?vue&type=style&index=0&id=049ff151&prod&lang=scss\"","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!./DesktopDownloader.vue?vue&type=style&index=0&id=0ed146f5&prod&lang=scss\"","module.exports = \"\"","module.exports = \"\"","/*\n\tDescription:\n\t\tFormats a number according to a specific locale or the runtime detected locale if none provided\n\n\tParameters:\n\t\tnumber: Number to format\n\t\toptions: Reference https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat\n\t\t{\n\t\t\t`locales`: Must be either a string holding a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such language tags.\n\t\t\t\tIf the `locales` argument is not provided or is undefined, the runtime's default locale is used\n\n\t\t\t`style`: The formatting style to use. Possible values are \"decimal\" for plain number formatting, \"currency\" for currency formatting, and \"percent\" for percent formatting; the default is \"decimal\".\n\t\t\t`currency`: The currency to use in currency formatting. Possible values are the ISO 4217 currency codes, such as \"USD\" for the US dollar, \"EUR\" for the euro, or \"CNY\" for the Chinese RMB — see the Current currency & funds code list. There is no default value; if the style is \"currency\", the currency property must be provided.\n\t\t\t`currencyDisplay`: How to display the currency in currency formatting. Possible values are \"symbol\" to use a localized currency symbol such as €, \"code\" to use the ISO currency code, \"name\" to use a localized currency name such as \"dollar\"; the default is \"symbol\".\n\t\t\t`useGrouping`: Whether to use grouping separators, such as thousands separators or thousand/lakh/crore separators. Possible values are true and false; the default is true.\n\n\t\t\tThe following properties fall into two groups:\n\t\t\t`minimumIntegerDigits`, `minimumFractionDigits`, and `maximumFractionDigits` in one group,\n\t\t\t`minimumSignificantDigits` and `maximumSignificantDigits` in the other.\n\t\t\tIf at least one property from the second group is defined, then the first group is ignored.\n\n\t\t\t`minimumIntegerDigits`: The minimum number of integer digits to use. Possible values are from 1 to 21; the default is 1.\n\t\t\t`minimumFractionDigits`: The minimum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number and percent formatting is 0; the default for currency formatting is the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information).\n\t\t\t`maximumFractionDigits`: The maximum number of fraction digits to use. Possible values are from 0 to 20; the default for plain number formatting is the larger of minimumFractionDigits and 3; the default for currency formatting is the larger of minimumFractionDigits and the number of minor unit digits provided by the ISO 4217 currency code list (2 if the list doesn't provide that information); the default for percent formatting is the larger of minimumFractionDigits and 0.\n\n\t\t\t`minimumSignificantDigits`: The minimum number of significant digits to use. Possible values are from 1 to 21; the default is 1.\n\t\t\t`maximumSignificantDigits`: The maximum number of significant digits to use. Possible values are from 1 to 21; the default is 21.\n\t\t}\n*/\nexport const formatNumber = (number, opts = {}) => {\n\tif (typeof number !== 'number') return ''\n\treturn number.toLocaleString(opts.locales, opts)\n}\n\n/*\n\tDescription:\n\t\tParses a number according to a specific locale or the runtime detected locale if none provided\n\t\tThis only works supports decimal type numbers (no currency or percentages)\n\n\tParameters:\n\t\tstring: Number string to parse\n\t\toptions:\n\t\t{\n\t\t\t`locales`: Must be either a string holding a [BCP 47 language tag](http://tools.ietf.org/html/rfc5646), or an array of such language tags.\n\t\t\t\tIf the `locales` argument is not provided or is undefined, the runtime's default locale is used\n\t\t\t`fallback`: Number used as a fallback if the first argument is invalid or is NaN\n\t\t}\n*/\nexport const parseNumber = (string, { locales, fallback = 0 } = {}) => {\n\tif (typeof string !== 'string') return fallback\n\n\tconst numerals = [\n\t\t...new Intl.NumberFormat(locales, { useGrouping: false }).format(9876543210),\n\t].reverse()\n\tconst numeral = new RegExp(`[${numerals.join('')}]`, 'g')\n\tconst index = d => new Map(numerals.map((d, i) => [d, i])).get(d)\n\n\tconst separators = getSeparators(locales)\n\n\tstring = string\n\t\t.trim()\n\t\t.replace(new RegExp(`[${separators.group}]`, 'g'), '')\n\t\t.replace(new RegExp(`[${separators.decimal}]`), '.')\n\t\t.replace(numeral, index)\n\tlet number = +string\n\tfor (let i = string.length - 1; i > 0 && isNaN(number); i--) {\n\t\tstring = string.substring(0, i)\n\t\tnumber = +string\n\t}\n\treturn isNaN(number) ? fallback : number\n}\n\nfunction getSeparators(locales) {\n\tlet decimal = '.'\n\tlet group = ','\n\tconst numberFormat = new Intl.NumberFormat(locales)\n\tif (numberFormat.formatToParts) {\n\t\tconst parts = new Intl.NumberFormat(locales).formatToParts(12345.6)\n\t\tdecimal = parts.find(d => d.type === 'decimal').value\n\t\tgroup = parts.find(d => d.type === 'group').value\n\t} else {\n\t\t// for Safari 12 or earlier, which does not implement formatToParts\n\t\tdecimal = (1.1).toLocaleString(locales).substring(1, 2)\n\t\tlet potentialGroup = (1000).toLocaleString(locales).substring(1, 2)\n\t\tif (potentialGroup !== '0') group = potentialGroup\n\t}\n\treturn { decimal, group }\n}\n","module.exports = \"\"","import store from '@store'\nimport { eventBus } from '@services/eventBus'\nimport { setDownloadStatus } from '@components/DesktopDownloader.vue'\nimport { ElectronInterface } from '@/global'\nimport checkSafeToLogout from '@/utils/checkSafeToLogout'\n\nexport interface Deeplink {\n\tpath: string\n\tquery: any\n\ttoken: string\n}\n\nexport class OmniDesktopService {\n\tprivate ipcRenderer?: any\n\n\tisMainWindow = false\n\tisFirstPrimaryViewerWindow: boolean = false\n\tscreen: any\n\t/**\n\t * Is this the Omni Desktop or Browser?\n\t */\n\tisConnected: boolean\n\n\tconstructor(electronInterface: ElectronInterface) {\n\t\tconst { ipcRenderer, screen } = electronInterface\n\t\tthis.ipcRenderer = ipcRenderer\n\t\tthis.screen = screen\n\t\tthis.isConnected = !!this.ipcRenderer\n\t\tif (ipcRenderer) {\n\t\t\tipcRenderer.on('log', function(evt, message) {\n\t\t\t\tconsole.log(message)\n\t\t\t})\n\n\t\t\tipcRenderer.on('prompt-install-relaunch', function(evt, currentVersion) {\n\t\t\t\tstore.dispatch('showAppUpdateAvailable', true)\n\t\t\t})\n\n\t\t\t// Keep the desktop interface cleaner and less interconnected\n\t\t\tipcRenderer.on('deeplink', async function(evt, deeplinkObject: Deeplink) {\n\t\t\t\teventBus.post('deeplink', deeplinkObject)\n\t\t\t})\n\n\t\t\tipcRenderer.on('download-event', (evt, data) => {\n\t\t\t\tsetDownloadStatus(data)\n\t\t\t})\n\n\t\t\tipcRenderer.on('close-window', async () => {\n\t\t\t\tconst isCloseConfirmed = await checkSafeToLogout()\n\t\t\t\tif (isCloseConfirmed) this.ipcRenderer.send('confirm-close')\n\t\t\t})\n\n\t\t\tthis.request('isFirstPrimaryViewerWindow').then(r => (this.isFirstPrimaryViewerWindow = r))\n\t\t\tthis.isMainWindow = this.ipcRenderer.sendSync('isMainWindow')\n\t\t}\n\t}\n\n\t// Wrap ipcRenderer calls\n\ton(channel: String, callback: Function) {\n\t\tif (!this.isConnected) return false\n\t\tthis.ipcRenderer.on(channel, callback)\n\t}\n\toff(channel: String, callback: Function) {\n\t\tif (!this.isConnected) return false\n\t\tthis.ipcRenderer.off(channel, callback)\n\t}\n\n\tupdateConfig(annexURL, clinicCode, applicationRootUrl) {\n\t\tif (!this.ipcRenderer) return\n\n\t\tthis.ipcRenderer.send('config-update', {\n\t\t\tannexURL,\n\t\t\t'clinic-code': clinicCode,\n\t\t\tapplicationRootUrl,\n\t\t})\n\t}\n\n\tinstallAndRelaunch() {\n\t\tif (this.ipcRenderer) this.ipcRenderer.send('install-and-relaunch')\n\t}\n\n\t/**\n\t * Invokes an asynchronous request and returns a promise with the result\n\t * @param {String} channel\n\t * @param {any} request\n\t * @returns {Promise}\n\t */\n\trequest(channel: string, request?: any): Promise {\n\t\treturn this.ipcRenderer.invoke(channel, request)\n\t}\n}\n\nexport const omniDesktop = new OmniDesktopService(window.ElectronInterface || ({} as ElectronInterface))\n\nexport default omniDesktop\n\n// QUESTION: Do we need to do this?\nwindow.omniDesktop = omniDesktop\n","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!./TeleconsultationThumbnails.vue?vue&type=style&index=0&id=207dff10&prod&lang=scss\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"toolbar\",class:{ primary: _vm.isPrimary, 'scroll-hide': _vm.scrollHide }},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Toolbar.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!./Toolbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Toolbar.vue?vue&type=template&id=c8776a40&scoped=true\"\nimport script from \"./Toolbar.vue?vue&type=script&lang=js\"\nexport * from \"./Toolbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./Toolbar.vue?vue&type=style&index=0&id=c8776a40&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 \"c8776a40\",\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","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!./Divider.vue?vue&type=style&index=0&id=7fc7e208&prod&lang=scss\"","module.exports = \"\"","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!./App.vue?vue&type=style&index=0&id=59f125b0&prod&lang=scss\"","module.exports = \"\"","import { API } from '@services/api'\nimport { eventBus } from '@services/eventBus'\nimport { addNotification } from './notificationService'\n\nenum MessageType {\n\terror = 'error',\n\tWatchStudies = 'watch_studies',\n\tStudyChangeNotification = 'study_change_notification',\n}\n\ninterface IMessage {\n\ttype: string\n\terror?: string\n\tdata?: string\n\tstudyIds?: string[]\n\tstudyId?: string\n}\n\nlet socket: WebSocket = null\nlet connectedPromise: Promise\nlet subscribeSendTimer = null\nlet _watchedIds = new Set()\nlet isLogout = false\nlet interval = null\nlet lifeTimerInterval = null\nlet wssUrl = window.config.websocketServerUrl\nlet wsFallbackUrl = ''\nlet pingTimeout = null\nlet isConnectedToFallback = false\nlet sleepInterval = 60 * 1000 // 60 seconds\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n\n\ninterface IStudyCallback {\n\tstudyId: string\n\tcallback: (studyId: string) => void\n}\n\nclass WsData {\n\tstudyWatchCallbacks: IStudyCallback[] = []\n\n\tasync start() {\n if (isMobile) return\n\t\tisLogout = false\n\t\tif (window.config.disableWS === 'true') return\n let parts = API.defaults.baseURL.split('//')\n let host = parts[1]\n let protocol = parts[0] === 'https:' ? 'wss' : 'ws'\n wsFallbackUrl = `${protocol}://${host}/ws`\n\n\t\tawait this.init().catch((msg) => {\n wssUrl = wsFallbackUrl // fail back to the original server\n isConnectedToFallback = true\n })\n\t\t// try to create a connection every sleepInterval\n\t\tinterval = setInterval(async () => {\n\t\t\tif (!socket && !isLogout) {\n\t\t\t\tawait this.init().catch((msg) => {\n if (isConnectedToFallback) {\n wssUrl = `${protocol}://${host}/ws` // fail back to the original server\n }\n })\n\t\t\t}\n\t\t}, sleepInterval)\n\n\t\teventBus.on('logout', () => {\n\t\t\tisLogout = true\n\t\t\tif (interval) {\n\t\t\t\tclearInterval(interval)\n\t\t\t}\n\t\t})\n\t}\n\n\tinit(): Promise {\n if (isMobile) return\n if (isLogout) {\n return\n }\n\n console.log('Connecting to :', wssUrl)\n\n\t\tif (isLogout) {\n\t\t\treturn\n\t\t}\n\t\tconnectedPromise = new Promise((resolve, reject) => {\n\n\t\t\tsocket = new WebSocket(wssUrl)\n\n\t\t\tsocket.onopen = () => {\n\t\t\t\tconsole.log('socket connected')\n\t\t\t\tresolve()\n\t\t\t\tthis.sendStudySubscriptions()\n\t\t\t}\n\n\t\t\tsocket.onclose = (event: CloseEvent) => {\n\t\t\t\tconsole.log('socket disconnected')\n\t\t\t\tsocket = null\n\t\t\t\t_watchedIds = new Set()\n isConnectedToFallback = false\n\t\t\t}\n\n\t\t\tsocket.onmessage = evt => {\n\t\t\t\tthis.recieveMessage(evt)\n\t\t\t}\n\n socket.onerror = evt => {\n if (socket.readyState === 3) {\n socket = null\n connectedPromise = null\n clearInterval(interval)\n\n // eslint-disable-next-line prefer-promise-reject-errors\n reject('Failed to connect to the server: ' + wssUrl)\n }\n }\n\t\t})\n\t\treturn connectedPromise\n\t}\n\n\tcloseConnection() {\n\t\tif (socket) {\n\t\t\tsocket.close()\n\t\t\tconsole.log('socket closed')\n\t\t}\n\t}\n\n\trecieveMessage(evt: MessageEvent) {\n\t\tlet msg: IMessage = JSON.parse(evt.data)\n\n\t\tif (msg.error) {\n\t\t\taddNotification(msg.error, 'error')\n\t\t}\n\n\t\tswitch (msg.type) {\n\t\t\tcase MessageType.StudyChangeNotification:\n\t\t\t\tthis.studyWatchCallbacks.forEach(i => {\n\t\t\t\t\tif (i.studyId === msg.studyId) {\n\t\t\t\t\t\ti.callback(msg.studyId)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\treset() {\n\t\tthis.studyWatchCallbacks = []\n\t\tthis.sendStudySubscriptions()\n\t}\n\n\tasync send(msg: IMessage) {\n\t\tif (!socket) return\n\t\tawait connectedPromise\n\t\tsocket.send(JSON.stringify(msg))\n\t}\n\n\tunsubscribeByCallback(callback: Function) {\n\t\tfor (let i = this.studyWatchCallbacks.length - 1; i >= 0; i--) {\n\t\t\tif (this.studyWatchCallbacks[i].callback === callback) {\n\t\t\t\tthis.studyWatchCallbacks.splice(i, 1)\n\t\t\t}\n\t\t}\n\t\tthis.sendStudySubscriptions()\n\t}\n\n\tunsubscribe(studyId: string, callback: Function) {\n\t\tlet item = this.studyWatchCallbacks.find(i => i.studyId === studyId && i.callback === callback)\n\t\tif (item) {\n\t\t\tthis.studyWatchCallbacks.splice(this.studyWatchCallbacks.indexOf(item), 1)\n\t\t\tthis.sendStudySubscriptions()\n\t\t}\n\t}\n\n\tsubscribe(studyId: string, callback: (studyId: string) => void) {\n\t\tthis.studyWatchCallbacks.push({\n\t\t\tstudyId,\n\t\t\tcallback,\n\t\t})\n\t\tthis.sendStudySubscriptions()\n\t}\n\n\tsendStudySubscriptions() {\n\t\tif (subscribeSendTimer) {\n\t\t\tclearTimeout(subscribeSendTimer)\n\t\t}\n\n\t\tsubscribeSendTimer = setTimeout(() => {\n\t\t\tlet newSet = new Set()\n\t\t\tthis.studyWatchCallbacks.forEach(c => newSet.add(c.studyId))\n\n\t\t\tlet changed = newSet.size !== _watchedIds.size\n\t\t\tif (!changed) {\n\t\t\t\tfor (let id of newSet.values()) {\n\t\t\t\t\tif (!_watchedIds.has(id)) {\n\t\t\t\t\t\tchanged = true\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (changed) {\n\t\t\t\tthis.send({\n\t\t\t\t\ttype: MessageType.WatchStudies,\n\t\t\t\t\tstudyIds: Array.from(newSet),\n\t\t\t\t})\n\t\t\t\t_watchedIds = newSet\n\t\t\t}\n\t\t}, 100)\n\t}\n}\n\nexport const wsData = new WsData()\nexport default wsData\n// @ts-ignore\nwindow.wsData = wsData\n","module.exports = \"\"","const archive = ['7z', 'cab', 'dmg', 'iso', 'jar', 'rar', 'tar', 'tgz', 'zip']\nconst video = [\n\t'3g2',\n\t'3gp',\n\t'aaf',\n\t'asf',\n\t'avchd',\n\t'avi',\n\t'drc',\n\t'flv',\n\t'm2v',\n\t'm4p',\n\t'm4v',\n\t'mkv',\n\t'mng',\n\t'mov',\n\t'mp2',\n\t'mp4',\n\t'mpe',\n\t'mpeg',\n\t'mpg',\n\t'mpv',\n\t'mxf',\n\t'nsv',\n\t'ogg',\n\t'ogv',\n\t'ogm',\n\t'qt',\n\t'rm',\n\t'rmvb',\n\t'roq',\n\t'srt',\n\t'svi',\n\t'vob',\n\t'webm',\n\t'wmv',\n\t'yuv',\n]\nconst system = ['bin', 'dll', 'exe', 'inf', 'js', 'msi', 'sh', 'sql', 'vbs']\nconst excludedImage = [\n\t'3dm',\n\t'3ds',\n\t'ai',\n\t'dds',\n\t'dwg',\n\t'dxf',\n\t'eps',\n\t'gif',\n\t'gpx',\n\t'kml',\n\t'kmz',\n\t'max',\n\t'ps',\n\t'psd',\n\t'svg',\n\t'tga',\n\t'thm',\n\t'xcf',\n\t'yuv',\n]\nconst doc = [\n\t'csv',\n\t'doc',\n\t'docx',\n\t'ebook',\n\t'ics',\n\t'log',\n\t'md',\n\t'msg',\n\t'odp',\n\t'ods',\n\t'odt',\n\t'org',\n\t'pages',\n\t'pdf',\n\t'ppt',\n\t'pptx',\n\t'rtf',\n\t'tex',\n\t'txt',\n\t'vcf',\n\t'wpd',\n\t'wps',\n\t'xls',\n\t'xlsx',\n]\nconst web = ['css', 'htm', 'html', 'js', 'jsx', 'less', 'scss', 'wasm']\n\nconst nonImageExtensions = [...archive, ...video, ...excludedImage, ...doc, ...system, ...web]\n\nconst imageExtensions = ['bmp', 'jpeg', 'jpg', 'png', 'tif', 'tiff']\n\n// From StudyAttachmentScreen in Keystone thick client\nconst excludedForAttachments = [\n\t'accde',\n\t'app',\n\t'appx',\n\t'application',\n\t'as',\n\t'bas',\n\t'bat',\n\t'bin',\n\t'chm',\n\t'cmd',\n\t'com',\n\t'cpl',\n\t'crt',\n\t'dex',\n\t'dll',\n\t'docm',\n\t'dotm',\n\t'exe',\n\t'fxp',\n\t'gadget',\n\t'hta',\n\t'inf',\n\t'ins',\n\t'inx',\n\t'ipf',\n\t'isu',\n\t'jar',\n\t'job',\n\t'js',\n\t'jse',\n\t'jsx',\n\t'lnk',\n\t'mam',\n\t'mexw32',\n\t'msc',\n\t'msh',\n\t'msh1',\n\t'msh1xml',\n\t'msh2',\n\t'msh2xml',\n\t'mshxml',\n\t'msi',\n\t'msp',\n\t'oat',\n\t'odex',\n\t'otm',\n\t'paf',\n\t'pif',\n\t'pl',\n\t'plx',\n\t'potm',\n\t'ppam',\n\t'ppsm',\n\t'pptm',\n\t'ps1',\n\t'ps1xml',\n\t'ps2',\n\t'ps2xml',\n\t'psc1',\n\t'psc2',\n\t'py',\n\t'pyc',\n\t'pyd',\n\t'pyo',\n\t'pyz',\n\t'reg',\n\t'rgs',\n\t'scf',\n\t'scr',\n\t'sct',\n\t'shb',\n\t'shs',\n\t'sldm',\n\t'tlb',\n\t'u3p',\n\t'url',\n\t'vb',\n\t'vbe',\n\t'vbs',\n\t'vbscript',\n\t'wiz',\n\t'ws',\n\t'wsc',\n\t'wsf',\n\t'wsh',\n\t'xap',\n\t'xbap',\n\t'xlam',\n\t'xlm',\n\t'xlsm',\n\t'xltm',\n]\n\nconst getExtension = file =>\n\tfile.name\n\t\t.split('.')\n\t\t.pop()\n\t\t.toLowerCase()\n\nexport function hasNonImageExtension(file) {\n\tconst hasNoExtension = !file.name.includes('.')\n\tif (hasNoExtension) return false\n\tconst extension = getExtension(file)\n\treturn nonImageExtensions.includes(extension)\n}\n\nexport function hasImageExtension(file) {\n\tconst extension = getExtension(file)\n\treturn imageExtensions.includes(extension)\n}\n\nexport function hasValidAttachmentExtension(file) {\n\tconst extension = getExtension(file)\n\treturn !excludedForAttachments.includes(extension)\n}\n\nexport function getVideoExtensions() {\n\treturn video\n}\n\nexport function getDocumentExtensions() {\n\treturn doc\n}\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","export class Dbounce {\n\t_timer: number\n\t_delay: number\n\t_handler: Function\n\n\tconstructor(delayMS: number, handler?: Function) {\n\t\tthis._delay = delayMS\n\t\tthis._handler = handler\n\t}\n\n\tset(handler?: Function, force = false) {\n\t\tif (handler) this._handler = handler\n\t\telse handler = this._handler\n\n\t\tthis.clear()\n\t\tthis._timer = setTimeout(handler, force ? 0 : this._delay)\n\t}\n\n\tsetp(handler?: () => Promise, force = false): Promise {\n\t\tthis.clear()\n\t\treturn new Promise(resolve => {\n\t\t\tsetTimeout(resolve, force ? 0 : this._delay)\n\t\t}).then(() => handler())\n\t}\n\n\tclear() {\n\t\tclearTimeout(this._timer)\n\t\tthis._timer = 0\n\t}\n}\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","import { getEnabledElement } from 'cornerstone-core/dist/cornerstone.js'\n\n/**\n * Waits a set amount of time, then resolves. Can be chained off of to delay\n * next call in promise chain.\n *\n * @exports @public @function\n * @param {number} ms - number in ms to wait\n * @returns {Promise}\n */\nexport const wait = ms => new Promise(resolve => setTimeout(resolve, ms))\n\n/**\n * A promise that returns an EnabledElement who's image has loaded, or\n * null if the provided element ceases being an enabledElement before an\n * image has been loaded.\n *\n * @param {HTMLElement} element - An element that is an EnabledElement\n * @returns {EnabledElement}\n */\nexport function waitForEnabledElementImageToLoad(element) {\n if (!element) return\n try {\n const enabledElement = getEnabledElement(element)\n\n if (!enabledElement.image) {\n return wait(250).then(() => waitForEnabledElementImageToLoad(element))\n }\n\n // EnabledElement's image is loaded.\n return enabledElement\n } catch (ex) {\n // Is no longer, or never was an enabled element, stop polling\n return null\n }\n}\n\n/**\n * A promise that returns an EnabledElement once the provided Element has\n * been enabled.\n *\n * @param {HTMLElement} element - An element that is an EnabledElement\n * @returns {EnabledElement}\n */\nexport function waitForElementToBeEnabled(element, i = 0) {\n if (!element) return\n const z = i + 1\n const waitThreshold = 15\n try {\n const enabledElement = getEnabledElement(element)\n\n // Element is enabled\n return enabledElement\n } catch (ex) {\n if (ex.message === 'element not enabled' && z < waitThreshold) {\n return wait(250).then(() => waitForElementToBeEnabled(element, z))\n }\n }\n}\n\nexport default wait\n","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!./Checkbox.vue?vue&type=style&index=0&id=6c40cc80&prod&lang=scss\"","module.exports = \"\"","import { CancelToken } from 'axios'\n\nconst cancelTokens = []\n\nfunction install(axiosInstance) {\n axiosInstance.interceptors.request.use(requestInterceptor)\n axiosInstance.interceptors.response.use(responseInterceptor)\n}\n\nfunction requestInterceptor(config) {\n if (!config.cancelPending) return config\n const { url } = config\n // cancel any existing pending requests for this url\n const pendingRequest = cancelTokens.find(x => x.url === url)\n if (pendingRequest) {\n pendingRequest.cancel()\n deleteTokenForUrl(url)\n }\n // store a new cancel token for this request\n config.cancelToken = new CancelToken(cancel => {\n cancelTokens.push({ url, cancel })\n })\n return config\n}\n\nfunction responseInterceptor(response) {\n if (!response) return\n const { url, cancelPending } = response.config\n // delete cancel token for completed request\n if (cancelPending) deleteTokenForUrl(url)\n return response\n}\n\nfunction cancelAllPendingRequests() {\n while (cancelTokens.length > 0) {\n const token = cancelTokens.shift()\n token.cancel()\n }\n}\n\nfunction deleteTokenForUrl (url) {\n const token = cancelTokens.find(x => x.url === url)\n cancelTokens.splice(cancelTokens.indexOf(token), 1)\n}\n\nexport default {\n cancelAllPendingRequests,\n cancelTokens,\n install,\n}\n","import store from '@store'\nimport { isCancel } from 'axios'\n\nconst is401 = error => error.response && error.response.status === 401\n\nfunction hasErrorMessage(error) {\n\treturn !!(error.response && error.response.data && (error.response.data.message || error.response.data['Message']))\n}\nfunction install(axiosInstance) {\n\taxiosInstance.interceptors.response.use(undefined, errorResponseInterceptor)\n}\n\nfunction errorResponseInterceptor(error) {\n\t// Ignore cancelled requests\n\tif (isCancel(error)) return\n\t// Show notification\n\tshowNotification(error)\n\n\t// Log out if token has expired\n\tif (is401(error)) store.dispatch('logOut', { forceLogout: true })\n\t// Bubble up the error\n\tthrow error\n}\n\nconst defaultMessages = []\ndefaultMessages[0] =\n\t'No response from the server.
You may not have an active connection to the internet, or we may be experiencing technical difficulties.'\ndefaultMessages[401] = 'Your authentication token has expired. You will need to sign in.'\ndefaultMessages[404] =\n\t'404: Unable to find URL.
If you encounter unexpected behavior, please contact support.'\n\n// It returns Date format YYYY/MM/DD\nconst getDate = date => {\n\treturn `${date.getFullYear()}/${('0' + (date.getMonth() + 1)).slice(-2)}/${('0' + date.getDate()).slice(-2)}`\n}\n\nconst today = new Date().valueOf()\nlet endDate = new Date('2023-09-10')\nendDate.setUTCHours(8, 30, 0, 0) // 4:00 am Eastern Time\nlet startDate = new Date('2023-09-10')\nstartDate.setUTCHours(8, 0, 0, 0) // 4:30 am Eastern Time\nif (today >= startDate.valueOf() && today <= endDate.valueOf()) {\n\tdefaultMessages[0] =\n\t\t'Maintenance Notification:
' +\n\t\t'We are conducting routine maintenance between 4:00 am and 4:30 am ' +\n\t\t'Eastern Time on Sunday the 10th of September 2023. We do not anticipate any ' +\n\t\t'downtime; however, we wanted to notify you in case of any potential ' +\n\t\t'disruptions. Thank you for your understanding.'\n}\n\nfunction showNotification(error) {\n\tconst notification = {\n\t\tnotificationType: 'info',\n\t\tmessage: undefined,\n\t\tduration: 10000,\n\t}\n\tif (hasErrorMessage(error)) {\n\t\tnotification.message = error.response.data.message ? error.response.data.message : error.response.data['Message']\n\t\tnotification.notificationType = error.response.data.statusCode >= 500 ? 'error' : 'warn'\n\t} else if (defaultMessages[error.request.status]) {\n\t\tnotification.message = defaultMessages[error.request.status]\n\t\tnotification.notificationType = error.request.status >= 500 ? 'error' : 'warn'\n\t} else {\n\t\tnotification.message = error.message || defaultMessages[0]\n\t\tnotification.notificationType = 'error'\n\t}\n\tstore.dispatch('addNotification', notification)\n}\n\nexport default { install }\n","import axios from 'axios'\nimport qs from 'qs'\nimport { findJsonUrl } from '../utils/urlUtility'\nimport cancelPending from './interceptors/cancelPending'\nimport handleErrors from './interceptors/handleErrors'\n\nlet APP = window.config.applicationRootUrl\nlet RESTAPP = window.config.restApplicationRootUrl\nlet ANNEX_DNS = `${window.config.keystoneRootUrl}/${window.config.keystoneBaseRoute}`\n\nexport const Annex = axios.create({ baseURL: ANNEX_DNS, headers: { common: {} } })\ncancelPending.install(Annex)\nhandleErrors.install(Annex)\n\nexport const API = axios.create({ baseURL: APP, headers: { common: {} } })\ncancelPending.install(API)\nhandleErrors.install(API)\n\nexport const RESTAPI = axios.create({ baseURL: RESTAPP, headers: { common: {} } })\ncancelPending.install(RESTAPI)\nhandleErrors.install(RESTAPI)\n\nconst setApiBaseUrl = (baseUrl, annexDns) => {\n\tif (window.config.environmentName === 'Development') return // keep localhost for local development\n\n\tif (baseUrl) {\n\t\tif (baseUrl.substring(0, 4) !== 'http') baseUrl = 'https://' + baseUrl\n\t\tAPI.defaults.baseURL = baseUrl\n\t\tAPP = baseUrl\n\t}\n\n\tif (annexDns) {\n\t\tAnnex.defaults.baseURL = annexDns\n\t\tANNEX_DNS = annexDns\n\t}\n}\n\n// add this config to individual requests that do not accept Authorization header\nconst noAuthConfig = {\n\ttransformRequest: [\n\t\t(data, headers) => {\n\t\t\tdelete headers.common['Authorization']\n\t\t\treturn data\n\t\t},\n\t],\n}\n\n// serialize date object as ISO 8601 date string with local time zone offset (not UTC)\n// e.g. 2019-07-02T13:33:43-04:00\nexport const serializeDate = (date, showOffset = true) => {\n\tif (!date) return ''\n\tif (typeof date === 'string') {\n\t\tdate = new Date(date)\n\t}\n\n\tconst offset = -date.getTimezoneOffset()\n\tconst sign = offset >= 0 ? '+' : '-'\n\tconst toTwoDigits = num => ('0' + Math.abs(num)).slice(-2)\n\t// prettier-ignore\n\tlet result = date.getFullYear() +\n '-' + toTwoDigits(date.getMonth() + 1) +\n '-' + toTwoDigits(date.getDate()) +\n 'T' + toTwoDigits(date.getHours()) +\n ':' + toTwoDigits(date.getMinutes()) +\n\t\t':' + toTwoDigits(date.getSeconds())\n\tif (showOffset) {\n\t\tresult += sign + toTwoDigits(offset / 60) + ':' + toTwoDigits(offset % 60)\n\t}\n\treturn result\n}\n\nexport const paramsSerializer = params => qs.stringify(params, { arrayFormat: 'indices', serializeDate })\n\nconst auth = {\n\tlogOut: () => {\n\t\tlet token = API.defaults.headers['Authorization']\n\n\t\tfetch(`${APP}/api/logout`, {\n\t\t\tmethod: 'GET',\n\t\t\tkeepalive: true,\n\t\t\theaders: {\n\t\t\t\tAuthorization: token,\n\t\t\t},\n\t\t})\n\t},\n\tlogIn: data => {\n\t\tdata.timeZoneOffset = new Date().getTimezoneOffset()\n\t\treturn API.post(`/api/token`, data)\n\t},\n\trefreshToken: () => API.get(`/api/refresh-token?omniVersion=${window.config.release}`),\n\tforgotPassword: data => API.post(`/account/forgot-password`, data),\n\tresetPassword: data => API.post(`/account/reset-password`, data),\n\tswitchClinic: data => API.post(`/account/switch-active-clinic`, data),\n\tsetHeader(token) {\n\t\tAPI.defaults.headers['Authorization'] = 'Bearer ' + token\n\t\tRESTAPI.defaults.headers['Authorization'] = 'Bearer ' + token\n\t},\n\tunsetHeader() {\n\t\tdelete API.defaults.headers['Authorization']\n\t\tdelete RESTAPI.defaults.headers['Authorization']\n\t},\n}\n\nconst reportIssue = data => API.post(`account/report-issue`, data)\n\nconst autoComplete = {\n\tgetAutoCompleteList: () => API.get(`/user/autocomplete-list`),\n\tsaveAutoCompleteEntry: autoComplete => API.post(`/user/save-autocomplete-entry`, autoComplete),\n\tdeleteAutoCompleteEntry: autoComplete => {\n\t\tAPI.post(`/user/delete-autocomplete-entry`, autoComplete)\n\t},\n}\n\nlet imageViewMeta = null\n\nconst clinic = {\n\tgetList: () => API.get(`/clinic/simple-list`),\n\tgetModalities: () => API.get(`/clinic/modalities/simple-list`),\n\tgetConsignerNames: consultantId => API.get(`/clinic/${consultantId}/consigners/simple-list`),\n\tgetHangingProtocols: () => API.get(`/clinic/hanging-protocols`),\n\tgetHangingProtocol: id => API.get(`/clinic/hanging-protocols/${id}`),\n\tgetImageViewMeta() {\n\t\tif (imageViewMeta) {\n\t\t\treturn Promise.resolve(imageViewMeta)\n\t\t}\n\t\treturn API.get('clinic/image-view-meta').then(r => {\n\t\t\timageViewMeta = r.data\n\t\t\treturn r.data\n\t\t})\n\t},\n\tgetOmniDesktopUpdateInfo: params =>\n\t\tAPI.get('omni-desktop/get-update-info', {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t\t\t.then(r => r.data)\n\t\t\t.catch(err => null),\n\t/**\n\t * @param {File} file\n\t */\n\tupdateLogo(file) {\n\t\tvar formData = new FormData()\n\t\tformData.append('image', file)\n\t\treturn API.post(`/clinic/logo`, formData, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'multipart/form-data',\n\t\t\t},\n\t\t})\n\t},\n}\n\nconst file = {\n\tuploadTemporaryImage: data => API.post(`/file/upload-temporary-image`, data),\n\tgetDownloadTemporaryImageUrl: ({ fileName }) => `${APP}/file/download-temporary-image?FileName=${fileName}`,\n\tdownloadImages: data => {\n\t\tdownloadFile(`${API.defaults.baseURL}/file/images?` + paramsSerializer(data))\n\t},\n\tdownloadStudy: ({ downloadType, clinicCode, id }) =>\n\t\tdownloadFile(`${APP}/file/study?DownloadType=${downloadType}&ClinicCode=${clinicCode}&Id=${id}`),\n\tdownloadReport: ({ downloadType, clinicCode, id }) =>\n\t\tdownloadFile(`${APP}/file/report?DownloadType=${downloadType}&ClinicCode=${clinicCode}&Id=${id}`),\n\tdownloadConsultationRequest: ({ downloadType, clinicCode, id }) =>\n\t\tdownloadFile(`${APP}/file/consultation-request?DownloadType=${downloadType}&ClinicCode=${clinicCode}&Id=${id}`),\n}\n\nconst legacy = {\n\topen({ importMode, params }) {\n\t\tlet url = `${ANNEX_DNS}/OnlineViewer/OnlineViewer.Loader.application?importMode=${importMode}`\n\t\tfor (let param in params) {\n\t\t\tif (params[param]) url += `&${param}=${params[param]}`\n\t\t}\n\t\twindow.open(url, '_blank')\n\t},\n\topenImporter(params) {\n\t\tconst importMode = 9\n\t\tlegacy.open({ importMode, params })\n\t},\n}\n\nconst patient = {\n\tgetSpecies: id => API.get(`/patient/species-list?consultantId=${id}`).then(r => r.data),\n\tgetBreeds: id => API.get(`/patient/breed-list?speciesId=${id}`).then(r => r.data),\n}\n\nconst repository = {\n\tget: clinicCode => API.get(`/repository/get-clinic-info?clinicCode=${clinicCode}`, noAuthConfig),\n\tgetSales: clinicCode => API.get(`/repository/${clinicCode}/sales/simple-list`),\n\tgetConsignerStudies: params =>\n\t\tAPI.get(`/repository/list`, {\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}),\n\tgetRequiredAttachments: id => API.get(`/repository/get-required-viewing-attachments?consignerStudyId=${id}`),\n\tdownloadAttachment(id, clinicCode) {\n\t\tconst url = `${ANNEX_DNS}/ImageDownload.aspx?ImageId=${id}&ClinicCode=${clinicCode}&ImageType=AttachmentContents`\n\t\twindow.open(url, '_blank')\n\t},\n\tstartViewing: data => API.post(`/repository/viewing-start`, data, { cancelPending: true }),\n\tupdateViewing: id =>\n\t\tAPI.post(`/repository/viewing-update`, {\n\t\t\tconsignerStudyViewingLogId: id,\n\t\t}),\n\tstartVideoViewing: ({ sessionLogId, imageId, endoscopyDisclosure }) =>\n\t\tAPI.get(\n\t\t\t`${APP}/repository/video-viewing-start?viewingLogId=${sessionLogId}&imageId=${imageId}&endoscopyDisclosure=${endoscopyDisclosure}`\n\t\t),\n\tupdateVideoViewing: ({ imageViewLogId }) =>\n\t\tAPI.get(`${APP}/repository/video-viewing-update?imageViewLogId=${imageViewLogId}`),\n}\n\nconst saleSubmission = {\n\tgetSales: () => API.get('./saleSubmission/sales-info').then(r => r?.data),\n\tgetSubmissions: (params, cancelPending = true) =>\n\t\tAPI.get('/saleSubmission/list', {\n\t\t\tcancelPending,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r?.data),\n\tgetSubmissionDetails: submissionId => API.get(`/saleSubmission/details/${submissionId}`),\n\t// something with the submission matched images?\n\treject: (submissionId, reasonMsg, imageId = null) =>\n\t\tAPI.post('/saleSubmission/reject', { submissionId, reasonMsg, imageId }),\n\tapprove: submissionId => API.post('/saleSubmission/approve', { submissionId }),\n\tsubmit: submissionId => API.post('/saleSubmission/submit', { submissionId }),\n\tgetCatalog: (params, cancelPending = true) =>\n\t\tAPI.get('/saleSubmission/catalog', {\n\t\t\tcancelPending,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r?.data),\n\tgetDashboard: () => API.get('/saleSubmission/dashboard'),\n\tgetDashboardDetails: activeSaleId => API.get(`saleSubmission/dashboard/${activeSaleId}`),\n}\n\nconst spelling = {\n\tmisspelledWords(data) {\n\t\treturn API.post(`/spelling/misspelled-words`, data)\n\t},\n\talternativeSpellings(data) {\n\t\treturn API.post(`/spelling/alternative-spellings`, data)\n\t},\n}\n\nconst statistics = {\n\tgetUserInfo(params) {\n\t\treturn API.get(`/statistics/get-user-info`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t},\n\tgetSummaries(params) {\n\t\treturn API.get(`/statistics/get-summaries`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t},\n\tgetViewings(params) {\n\t\treturn API.get(`/statistics/get-viewings`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t},\n\tupdateConsignerClient: data => API.post(`/statistics/consigner-clients/update`, data),\n\tcreateConsignerClient: data => API.post(`/statistics/consigner-clients/create`, data),\n\tgetConsignerClients(params) {\n\t\treturn API.get(`/statistics/consigner-clients`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t},\n\temailConsignerClient(params) {\n\t\treturn API.post(`/statistics/consigner-clients/email`, null, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t},\n\tgetSaleEntryClients(params) {\n\t\treturn API.get(`/statistics/get-sale-entry-clients`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t},\n\tassignClientToSaleEntry: data => API.post(`/statistics/consigner-clients/assign`, data),\n\tunassignClientToSaleEntry: data => API.post(`/statistics/consigner-clients/unassign`, data),\n\tgetSubmissions(params) {\n\t\treturn API.get(`/statistics/get-submissions`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t})\n\t},\n}\n\nexport const downloadFile = function(url) {\n\tdocument.getElementById('download_iframe').src = url\n}\n\nconst study = {\n\tgetReportStudies: reportId =>\n\t\tAPI.get(`/study/report-studies/${reportId}`, {\n\t\t\tcancelPending: true,\n\t\t}).then(r => r && r.data),\n\tdeleteStudy: studyId => API.post(`/study/delete-study`, { studyId }),\n\tdeleteSeries: data => API.post(`/study/delete-series`, data),\n\tgetEmails: studyId =>\n\t\tAPI.get('/study/email-details', {\n\t\t\tparams: { studyId },\n\t\t}),\n\tgetList: (params, cancelPending = true) =>\n\t\tAPI.get('/study/list', {\n\t\t\tcancelPending,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tgetStudyShareUrl: data => API.post('study/generate-consultation-request-url', data),\n\trenameStudy: data => API.post('/study/rename-study', data),\n\tshareByEmail: data => API.post('/study/share-by-email', data),\n}\n\nconst user = {\n\taddConsultantToUser: params =>\n\t\tAPI.get(`user/add-consultant-to-user`, {\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}),\n\tcreateCommunityUser: data => API.post(`/user/create-community-user`, data),\n\tgetCommunityDns: id => API.post(`/user/get-community-dns?consultantId=${id}`).then(r => r.data),\n\tgetPermissions: () => API.get(`/user/permissions`),\n\tgetClients: () => API.get(`/user/clients/simple-list`),\n\t// getViewerSettings: () => API.get(`/user/viewer-settings`),\n\t// updateViewerSettings (data) => API.patch(`/user/viewer-settings`, data)\n\tgetViewerSettings: () => ({ data: null }),\n\tupdateViewerSettings(settings) {\n\t\treturn Promise.resolve()\n\t},\n\tgetHotkeySettings: () => API.get(`/user/hotkey-settings`),\n\tupdateHotkey: data => API.post(`/user/hotkey-setting`, data),\n\tgetWindowLevelPresets: modalityId => API.get(`/user/window-level-presets?modalityId=${modalityId}`),\n\tupdateWindowLevelPreset: data => API.post(`/user/window-level-preset`, data),\n\tdeleteWindowLevelPreset: id => API.delete(`/user/window-level-preset?id=${id}`),\n\tgetViewerMouseBindings: () => API.get('/user/viewer-mouse-bindings'),\n\tupdateViewerMouseBindings: data => API.post('/user/viewer-mouse-bindings', data),\n\tgetOpenStudiesWindowSetting: () => API.get(`/user/viewer-open-in-new-window`),\n\tsetOpenStudiesWindowSetting: openInNewWindow =>\n\t\tAPI.post(`/user/viewer-open-in-new-window?openInNewWindow=${openInNewWindow}`),\n\tgetThemeSettings: () => API.get('/user/theme'),\n\tupdateThemeSettings: data => API.post('/user/theme', data),\n\n\t/**\n\t * Get any user setting by name. Type will attempt to provide the correct type conversion\n\t */\n\tgetUserSetting(name, type) {\n\t\treturn API.get(`/user/get-setting?name=${name}&type=${type}`)\n\t},\n\t/**\n\t * Set any user setting by name. Type will attempt to provide the correct type conversion\n\t */\n\tsetUserSetting(name, type, value) {\n\t\treturn API.post('/user/save-setting', { name, type, value })\n\t},\n\n\t/**\n\t * returns:\n\t *\t{\n\t *\t\tmodality: String,\n\t *\t\tseriesRows: Int,\n\t *\t\tseriesColumns: Int,\n\t *\t}\n\t */\n\tgetLayoutPreset: modalityString => API.get(`/user/viewer-layout-preset?modality=${modalityString}`),\n\tsetLayoutPreset: data => API.post('/user/viewer-layout-preset', data),\n\tdeleteLayoutPreset: modalityString => API.delete(`/user/viewer-layout-preset?modality=${modalityString}`),\n\tsetClinicFeatureFlag(clinicCode, name, type, value) {\n\t\treturn API.post('/user/set-clinic-setting', { clinicCode, name, type, value })\n\t},\n}\n\nconst onBehalfOf = {\n\tgetList: () => API.get('/teleconsultation/on-behalf-of-list').then(r => r.data),\n\tsave: item => API.post('/user/on-behalf-of-save', item),\n\tdelete: itemId => API.delete(`/user/on-behalf-of-delete/${itemId}`),\n}\n\nconst viewer = {\n\taddStudiesToClinic: ids => API.post(`/viewer/add-studies-to-clinic`, ids),\n\tgetReportUrls: params =>\n\t\tAPI.get(`/viewer/reports/get-url-list`, {\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tgetStudy: (params, cancelPending = true) =>\n\t\tAPI.get(`/viewer/study`, {\n\t\t\tcancelPending,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tgetConsignerStudy: params =>\n\t\tAPI.get(`/viewer/consigner-study`, {\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tgetPartnerStudy: params =>\n\t\tAPI.get(`/viewer/partner-study`, {\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tgetPartnerTeleconsultation: params =>\n\t\tAPI.get(`/viewer/partner-teleconsultation`, {\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tgetConsultationRequest(params) {\n\t\treturn API.get(`/viewer/consultation-request`, {\n\t\t\tcancelPending: true,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data)\n\t},\n\t/**\n\t *\n\t * @param {string[]} images - An array of image URLs\n\t * @returns\n\t */\n\tgetMetaByImage(series) {\n\t\tconst urls = series.images.map(image => findJsonUrl(image, series))\n\t\treturn Promise.all(urls.map(url => axios.get(url, noAuthConfig).then(r => r.data)))\n\t},\n\tgetMetadata(series) {\n\t\tconst url = findJsonUrl(series)\n\t\treturn axios.get(url, noAuthConfig).then(r => r.data)\n\t},\n\trenderAnnotatedImage: data => API.post(`/viewer/render-annotated-image`, data).then(r => r && r.data),\n\tasync getConsignerStudyViewingLog(imageId) {\n\t\tconst params = {\n\t\t\timageId: imageId,\n\t\t}\n\t\treturn API.get('/repository/consigner-study-viewing-log', { params })\n\t},\n}\n\n// Local is: http://localhost/AnnexSurrogate/ZipDownload.aspx\n// Need a way to seperate this from other ${KEYSTONE} endpoints?\nconst zip = {\n\tcreate: data => axios.post(`${ANNEX_DNS}/ZipDownload.aspx/CreateFromStudy`, data),\n\tcreateFromConsultation: data => axios.post(`${ANNEX_DNS}/ZipDownload.aspx/CreateFromConsultation`, data),\n\tgetStatus: data => axios.post(`${ANNEX_DNS}/ZipDownload.aspx/Status`, data),\n\tdownload({ studyId, clinicCode, timestamp }) {\n\t\tconst url = `${ANNEX_DNS}/ZipDownload.aspx?id=${studyId}&clinicCode=${clinicCode}×tamp=${timestamp}`\n\t\twindow.open(url, '_blank')\n\t},\n}\n\nconst repositoryReview = {\n\t// params: { term: string, folderId: string, startDate: string, endDate: string, page: integer, results: integer, queryTerm: string, orderby: string, isOrderAscending: boolean }\n\tgetList: ({ consultantId, params }, cancelPending = true) =>\n\t\tAPI.get(`/review-submission/${consultantId}/list`, {\n\t\t\tcancelPending,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tgetReviewSubmissionDetails: (consultantId, reviewSubmissionId) =>\n\t\tAPI.get(`/review-submission/${consultantId}/review-submission-details/${reviewSubmissionId}`).then(\n\t\t\tr => r && r.data\n\t\t),\n\tgetTemplateImageViews: (consultantId, saleEntryId) =>\n\t\tAPI.get(`/review-submission/${consultantId}/report-template-image-views/${saleEntryId}`).then(r => r && r.data),\n\t// Get total of reviews by status by sale\n\tgetDashboard: ({ consultantId }, cancelPending = true) =>\n\t\tAPI.get(`/review-submission/${consultantId}/dashboard`, {\n\t\t\tcancelPending,\n\t\t}).then(r => r && r.data),\n\t// Get total of reviews by status by sale\n\tgetDashboardList: ({ consultantId, params }, cancelPending = true) =>\n\t\tAPI.get(`/review-submission/${consultantId}/dashboard-list`, {\n\t\t\tcancelPending,\n\t\t\tparams,\n\t\t\tparamsSerializer,\n\t\t}).then(r => r && r.data),\n\tupdateReviewSubmissionImage: (reviewSubmissionId, imageId, reportTemplateImageViewId, consultantId) =>\n\t\tAPI.post(`/review-submission/${consultantId}/save-review-submission-image`, {\n\t\t\tReviewSubmissionId: reviewSubmissionId,\n\t\t\tImageId: imageId,\n\t\t\tReportTemplateImageViewId: reportTemplateImageViewId,\n\t\t}).then(r => r && r.data),\n\tupdateReviewSubmissionImageAsExtra: (reviewSubmissionId, imageIds, consultantId) =>\n\t\tAPI.post(`/review-submission/${consultantId}/add-extra-images-for-review-submission`, {\n\t\t\tReviewSubmissionId: reviewSubmissionId,\n\t\t\tImageIds: imageIds,\n\t\t}).then(r => r && r.data),\n\n\t// #region Status Buttons: approve, reject, approve and submit\n\tapproveReviewSubmisssion: (consultantId, reviewSubmissionId) =>\n\t\tAPI.post(`/review-submission/${consultantId}/approve-review-submission/${reviewSubmissionId}`).then(\n\t\t\tr => r && r.data\n\t\t),\n\tapproveAndSubmitReviewSubmisssion: (consultantId, reviewSubmissionId) =>\n\t\tAPI.post(`/review-submission/${consultantId}/approve-and-submit-review-submission/${reviewSubmissionId}`).then(\n\t\t\tr => r && r.data\n\t\t),\n\trejectReviewSubmisssion: (consultantId, reviewSubmissionId, reason) =>\n\t\tAPI.post(`/review-submission/${consultantId}/reject-review-submission/${reviewSubmissionId}`, {\n\t\t\treason,\n\t\t}).then(r => r && r.data),\n\tdeleteReviewSubmisssionImage: (reviewSubmissionId, imageId, consultantId) =>\n\t\tAPI.delete(`/review-submission/${consultantId}/delete-review-submission-image`, {\n\t\t\tdata: {\n\t\t\t\tReviewSubmissionId: reviewSubmissionId,\n\t\t\t\tImageId: imageId,\n\t\t\t},\n\t\t}).then(r => r && r.data),\n\tsubmitApprovedReviewList: (consultantId, data) =>\n\t\tAPI.post(`/review-submission/${consultantId}/approve-and-submit-all-review-submission`, data).then(\n\t\t\tr => r && r.data\n\t\t),\n\tasync syncStudies(dateToMatch) {\n\t\treturn RESTAPI.get(`/review-submission/match-studies?dateToMatch=${dateToMatch}`).then(r => r.data)\n\t},\n\n\t// #endregion\n\n\t// #region Add a study with a submissionId\n\tsaveReviewSubmissionStudy: (reviewSubmissionId, studyId, consultantId) =>\n\t\tAPI.post(`/review-submission/${consultantId}/save-review-submission-study`, {\n\t\t\tReviewSubmissionId: reviewSubmissionId,\n\t\t\tStudyId: studyId,\n\t\t}).then(r => r && r.data),\n\n\t// #endregion\n}\n\nconst sales = {\n\t// TODO move the endpoint from salesService.ts\n\tsubmitSaleEntry: saleEntry => API.post(`/sales/submit-sale-entry`, saleEntry).then(r => r && r.data),\n}\n\nconst api = {\n\tauth,\n\tautoComplete,\n\tcancelAllPendingRequests: cancelPending.cancelAllPendingRequests,\n\tclinic,\n\tfile,\n\tlegacy,\n\tonBehalfOf,\n\tpatient,\n\treportIssue,\n\trepository,\n\trepositoryReview,\n\tsales,\n\tsaleSubmission,\n\tsetApiBaseUrl,\n\tspelling,\n\tstatistics,\n\tstudy,\n\tuser,\n\tviewer,\n\tzip,\n}\n\nwindow.api = api\nexport default api\n","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dialog prompt\"},[_c('modal-dialog',{attrs:{\"actions\":_vm.actions,\"is-open\":true,\"title\":_vm.title,\"close-text\":_vm.closeText,\"data-test\":\"text-prompt-dialog\"},on:{\"close\":_vm.close,\"submit\":_vm.submit}},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[(_vm.prompt)?_c('p',{staticStyle:{\"margin-bottom\":\"8px\"}},[_vm._v(_vm._s(_vm.prompt))]):_vm._e(),_c('ast-input',{directives:[{name:\"focus\",rawName:\"v-focus\"}],staticStyle:{\"min-width\":\"300px\"},attrs:{\"type\":_vm.type},model:{value:(_vm.promptResult),callback:function ($$v) {_vm.promptResult=$$v},expression:\"promptResult\"}})],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./TextPromptDlg.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!./TextPromptDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextPromptDlg.vue?vue&type=template&id=42cb51f8\"\nimport script from \"./TextPromptDlg.vue?vue&type=script&lang=js\"\nexport * from \"./TextPromptDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextPromptDlg.vue?vue&type=style&index=0&id=42cb51f8&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","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!./ToolbarButton.vue?vue&type=style&index=0&id=69de6fac&prod&lang=scss\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pdf-viewer\"},[_c('div',{staticClass:\"pdf-header\"},[_c('div',{staticClass:\"left-buttons\"}),(_vm.loaded)?_c('div',{staticClass:\"center-buttons\"},[_c('button',{staticClass:\"btn btn-default\",class:{ disabled: _vm.scale === 25 },attrs:{\"title\":\"Zoom Out\"},on:{\"click\":_vm.zoomOut}},[_vm._v(\"\\n\\t\\t\\t\\t-\\n\\t\\t\\t\")]),_c('span',[_vm._v(_vm._s(_vm.scale)+\"%\")]),_c('button',{staticClass:\"btn btn-default\",class:{ disabled: _vm.scale === 500 },attrs:{\"title\":\"Zoom In\"},on:{\"click\":_vm.zoomIn}},[_vm._v(\"\\n\\t\\t\\t\\t+\\n\\t\\t\\t\")])]):_vm._e(),(_vm.loaded)?_c('ast-toolbar',{staticClass:\"right-buttons\"},[(_vm.showDownloadButton)?_c('toolbar-button',{staticStyle:{\"min-width\":\"48px\"},attrs:{\"title\":\"Download\",\"icon\":\"cloud-download\"},nativeOn:{\"click\":function($event){return _vm.download($event)}}}):_vm._e(),_vm._t(\"default\")],2):_vm._e()],1),_c('div',{ref:\"pdfContent\",staticClass:\"pdf-scroll\",on:{\"scroll\":_vm.onScroll}},[_vm._l((_vm.totalPages),function(pageNumber){return _c('div',{key:pageNumber,staticClass:\"pdf-container\"},[_c('canvas',{ref:\"canvas\",refInFor:true}),_c('div',{staticClass:\"textLayer\"})])}),(!_vm.loaded || _vm.isLoadingNewDocument)?_c('div',{staticClass:\"loading\"},[_c('svg-icon',{attrs:{\"icon\":\"spinner\",\"pulse\":\"\"}})],1):_vm._e()],2),_c('div',{staticClass:\"pdf-footer\"},[_c('div',{staticClass:\"left-buttons\"}),_c('div',{staticClass:\"center-buttons\"},[(_vm.loaded)?[_c('button',{staticClass:\"btn btn-default\",class:{ disabled: !_vm.isPrevPage },on:{\"click\":_vm.pagePrevious}},[_c('svg-icon',{attrs:{\"icon\":\"caret-up\"}})],1),_c('span',[_vm._v(_vm._s(_vm.currentPage)+\" / \"+_vm._s(_vm.totalPages || '?'))]),_c('button',{staticClass:\"btn btn-default\",class:{ disabled: !_vm.isNextPage },on:{\"click\":_vm.pageNext}},[_c('svg-icon',{attrs:{\"icon\":\"caret-down\"}})],1)]:_vm._e()],2),_c('div',{staticClass:\"right-buttons\"},[(_vm.loaded && _vm.showReviewButton)?_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.markReviewed()}}},[_vm._v(\"\\n\\t\\t\\t\\tMark as Reviewed\\n\\t\\t\\t\")]):_vm._e(),(_vm.showCloseButton)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\"\\n\\t\\t\\t\\tClose\\n\\t\\t\\t\")]):_vm._e()])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport PDFJS, { getDocument, PDFDocumentProxy, PDFPageProxy, PDFRenderParams, PDFPageViewport } from 'pdfjs-dist'\nimport { eventBus } from '@services/eventBus'\nimport AstToolbar from '@components/Toolbar.vue'\nimport ToolbarButton from '@components/ToolbarButton.vue'\nimport { downloadFile } from '@services/api'\n\nimport {\n\tdefineComponent,\n\treactive,\n\tcomputed,\n\twatch,\n\tonMounted,\n\tonBeforeUnmount,\n\tSetupContext,\n} from '@vue/composition-api'\n\nexport default defineComponent({\n\tname: 'PdfViewer',\n\tcomponents: {\n\t\tAstToolbar,\n\t\tToolbarButton,\n\t},\n\tprops: {\n\t\tsrc: {\n\t\t\trequired: true,\n\t\t},\n\t\tshowDownloadButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tshowReviewButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tshowCloseButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tsetup(props, context: SetupContext) {\n\t\tlet pageRetryCount = 0\n\t\tlet document: PDFDocumentProxy = null\n\t\tlet state = reactive({\n\t\t\tisLoadingNewDocument: false,\n\t\t\tisLoadingPage: false,\n\t\t\tloadAgain: false,\n\t\t\tcurrentPage: 1,\n\t\t\tscale: 100,\n\t\t\ttotalPages: 0,\n\t\t})\n\n\t\tlet canvases: NodeListOf\n\t\tlet pdfContent: HTMLElement\n\t\tlet textLayers: NodeListOf\n\n\t\tasync function openDocument() {\n\t\t\tif (document) {\n\t\t\t\tstate.isLoadingNewDocument = true\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tdocument = await getDocument(props.src).promise\n\t\t\t\tstate.totalPages = document.numPages\n\t\t\t\tcontext.root.$nextTick(async () => {\n\t\t\t\t\tpdfContent = context.root.$el.querySelector('.pdf-scroll')\n\t\t\t\t\tcanvases = context.root.$el.querySelectorAll('canvas')\n\t\t\t\t\ttextLayers = context.root.$el.querySelectorAll('.textLayer')\n\t\t\t\t\tawait loadPages()\n\t\t\t\t\tstate.isLoadingNewDocument = false\n\t\t\t\t})\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error(err)\n\t\t\t\tcontext.root.$store.dispatch('addNotification', {\n\t\t\t\t\tmessage: 'The PDF failed to load.',\n\t\t\t\t\tnotificationType: 'error',\n\t\t\t\t})\n\t\t\t\tcontext.emit('close')\n\t\t\t}\n\t\t}\n\n\t\tasync function setPage(pageNum: number) {\n\t\t\tif (pageNum < 1) pageNum = 1\n\t\t\tif (pageNum > state.totalPages) pageNum = state.totalPages\n\t\t\tstate.currentPage = pageNum\n\t\t\tcanvases[pageNum - 1].scrollIntoView()\n\t\t}\n\n\t\tfunction setScale(s: number) {\n\t\t\tstate.scale = s\n\t\t\tloadPages()\n\t\t}\n\n\t\tasync function loadPages() {\n\t\t\tlet i = 1\n\t\t\twhile (i <= state.totalPages) {\n\t\t\t\tawait loadPage(i)\n\t\t\t\ti++\n\t\t\t}\n\t\t}\n\n\t\tasync function loadPage(pageNumber) {\n\t\t\tif (!document) {\n\t\t\t\tif (pageRetryCount < 3) {\n\t\t\t\t\tpageRetryCount++\n\t\t\t\t\tsetTimeout(loadPage, 500)\n\t\t\t\t}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tif (state.isLoadingPage) {\n\t\t\t\tstate.loadAgain = true\n\t\t\t\treturn\n\t\t\t}\n\t\t\tstate.isLoadingPage = true\n\t\t\tlet page = await document.getPage(pageNumber)\n\t\t\tconst viewerWidth = pdfContent.getBoundingClientRect().width - 32\n\t\t\tconst scaleFactor = viewerWidth / page.view[2]\n\t\t\tconst finalscale = (state.scale / 100) * scaleFactor\n\t\t\tconst viewport = page.getViewport({ scale: finalscale })\n\t\t\tconst canvas = canvases[pageNumber - 1]\n\t\t\tconst canvasContext = canvas.getContext('2d')\n\t\t\tcanvas.style.width = viewport.width + 'px'\n\t\t\tcanvas.style.height = viewport.height + 'px'\n\t\t\tcanvas.width = viewport.width\n\t\t\tcanvas.height = viewport.height\n\t\t\tconst renderContext: PDFRenderParams = {\n\t\t\t\tcanvasContext,\n\t\t\t\tviewport,\n\t\t\t}\n\t\t\tawait page.render(renderContext).promise\n\t\t\tawait updateTextLayer(page, pageNumber, viewport, canvas)\n\t\t\tif (state.loadAgain) {\n\t\t\t\tawait loadPage(pageNumber)\n\t\t\t\tstate.loadAgain = false\n\t\t\t}\n\t\t\tstate.isLoadingPage = false\n\t\t}\n\n\t\tasync function updateTextLayer(\n\t\t\tpage: PDFPageProxy,\n\t\t\tpageNumber: number,\n\t\t\tviewport: PDFPageViewport,\n\t\t\tcanvas: HTMLCanvasElement\n\t\t) {\n\t\t\tconst textLayer = textLayers[pageNumber - 1]\n\t\t\ttextLayer.innerHTML = ''\n\t\t\tconst canvasRect = canvas.getBoundingClientRect()\n\t\t\ttextLayer.style.width = canvasRect.width + 'px'\n\t\t\ttextLayer.style.height = canvasRect.height + 'px'\n\t\t\tconst textContent = await page.getTextContent()\n\n\t\t\t// @ts-ignore\n\t\t\tawait PDFJS.renderTextLayer({\n\t\t\t\ttextContent,\n\t\t\t\tcontainer: textLayer,\n\t\t\t\tviewport,\n\t\t\t\ttextDivs: [],\n\t\t\t}).promise\n\t\t\t// toggle text layer to fix scrollbar\n\t\t\ttextLayer.style.display = 'none'\n\t\t\tsetTimeout(() => {\n\t\t\t\ttextLayer.style.display = 'block'\n\t\t\t}, 0)\n\t\t}\n\n\t\tfunction zoom(delta = 0) {\n\t\t\tif (state.scale === 25 && delta < 0) return // do not go below 25%\n\t\t\tif (state.scale === 500 && delta > 0) return // do not go above 500%\n\t\t\tsetScale(state.scale + delta)\n\t\t\tsetTimeout(onScroll, 50) // update currentPage after re-rendering\n\t\t}\n\n\t\tconst loaded = computed(() => {\n\t\t\treturn state.totalPages > 0\n\t\t})\n\n\t\tconst isNextPage = computed(() => {\n\t\t\treturn state.currentPage !== state.totalPages\n\t\t})\n\n\t\tconst isPrevPage = computed(() => {\n\t\t\treturn state.currentPage !== 1\n\t\t})\n\n\t\tconst onScroll = () => {\n\t\t\tlet page = 1\n\t\t\tfor (let i = 1; i < state.totalPages; i++) {\n\t\t\t\tif (pdfContent.scrollTop < canvases[i].parentElement.offsetTop - pdfContent.clientHeight / 2) break\n\t\t\t\tpage++\n\t\t\t}\n\t\t\tstate.currentPage = page\n\t\t}\n\n\t\twatch(() => props.src, openDocument)\n\n\t\tonMounted(() => {\n\t\t\teventBus.on('resize', zoom)\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\teventBus.off('resize', zoom)\n\t\t})\n\n\t\treturn {\n\t\t\tloaded,\n\t\t\tisNextPage,\n\t\t\tisPrevPage,\n\t\t\tonScroll,\n\t\t\tscale: computed(() => state.scale),\n\t\t\tcurrentPage: computed(() => state.currentPage),\n\t\t\tisLoadingNewDocument: computed(() => state.isLoadingNewDocument),\n\t\t\ttotalPages: computed(() => state.totalPages),\n\t\t\tmarkReviewed() {\n\t\t\t\tcontext.emit('close', { reviewed: true })\n\t\t\t},\n\t\t\tpagePrevious() {\n\t\t\t\tif (isPrevPage) setPage(state.currentPage - 1)\n\t\t\t},\n\t\t\tpageNext() {\n\t\t\t\tif (isNextPage) setPage(state.currentPage + 1)\n\t\t\t},\n\t\t\tzoomIn() {\n\t\t\t\tzoom(25)\n\t\t\t},\n\t\t\tzoomOut() {\n\t\t\t\tzoom(-25)\n\t\t\t},\n\t\t\tdownload() {\n\t\t\t\tdownloadFile(props.src + '&Download=True')\n\t\t\t},\n\t\t}\n\t},\n})\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PdfViewer.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PdfViewer.vue?vue&type=template&id=33dafe86\"\nimport script from \"./PdfViewer.vue?vue&type=script&lang=ts\"\nexport * from \"./PdfViewer.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PdfViewer.vue?vue&type=style&index=0&id=33dafe86&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"checkbox-label\",class:{ 'label-left': _vm.labelPosition !== 'right' },attrs:{\"disabled\":_vm.disabled}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.wrappedModel),expression:\"wrappedModel\"}],attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"value\":_vm.arrayValue,\"checked\":Array.isArray(_vm.wrappedModel)?_vm._i(_vm.wrappedModel,_vm.arrayValue)>-1:(_vm.wrappedModel)},on:{\"change\":function($event){var $$a=_vm.wrappedModel,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=_vm.arrayValue,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.wrappedModel=$$a.concat([$$v]))}else{$$i>-1&&(_vm.wrappedModel=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.wrappedModel=$$c}}}}),_c('div',{staticClass:\"checkbox-box\"}),_c('span',[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\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!./Checkbox.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!./Checkbox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Checkbox.vue?vue&type=template&id=5e6bf3b4&scoped=true\"\nimport script from \"./Checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./Checkbox.vue?vue&type=script&lang=js\"\nimport style0 from \"./Checkbox.vue?vue&type=style&index=0&id=5e6bf3b4&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 \"5e6bf3b4\",\n null\n \n)\n\nexport default component.exports","const replaceFirstLetters = (str, fn) => str.replace(/(?:^\\w|[A-Z]|\\b\\w|\\s+)/g, fn)\n\nexport function toCamelCase(str) {\n\treturn replaceFirstLetters(str, (firstLetter, i) => {\n\t\tif (/\\s+/.test(firstLetter)) return '' // remove whitespace\n\t\treturn i === 0 ? firstLetter.toLowerCase() : firstLetter.toUpperCase()\n\t})\n}\n\nexport function toPascalCase(str) {\n\treturn replaceFirstLetters(str, firstLetter => {\n\t\tif (/\\s+/.test(firstLetter)) return '' // remove whitespace\n\t\treturn firstLetter.toUpperCase()\n\t})\n}\n\nexport function formatList(arr) {\n\tconst terms = arr.slice()\n\tconst oxfordComma = arr.length > 2 ? ',' : ''\n\tconst last = terms.pop()\n\treturn terms.join(', ') + oxfordComma + ' and ' + last\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","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!./Checkbox.vue?vue&type=style&index=0&id=5e6bf3b4&prod&lang=scss&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"toolbar-button\"},[_c('div',{staticStyle:{\"position\":\"relative\"},on:{\"click\":function (event) { return _vm.disabled && event.stopPropagation(); }}},[_c('button',{class:[\n\t\t\t\t{\n\t\t\t\t\tactive: (_vm.isDropdownOpen && _vm.hasDropdown) || _vm.active,\n\t\t\t\t\t'has-caret': _vm.hasDropdown,\n\t\t\t\t\t'has-icon': !!_vm.icon,\n\t\t\t\t},\n\t\t\t\t_vm.className ],attrs:{\"disabled\":_vm.disabled,\"title\":_vm.title},on:{\"contextmenu\":function($event){$event.preventDefault();},\"click\":function($event){return _vm.toggleDropdown({ isOpen: !_vm.isDropdownOpen })}}},[(_vm.hasDropdown)?_c('p',{staticClass:\"caret\",class:{\n\t\t\t\t\tdown: _vm.dropdownLocation === 'bottom',\n\t\t\t\t\tup: _vm.dropdownLocation === 'top',\n\t\t\t\t\tright: _vm.dropdownLocation === 'right',\n\t\t\t\t\tleft: _vm.dropdownLocation === 'left',\n\t\t\t\t}}):_vm._e(),_vm._t(\"icon\",[(_vm.icon)?_c('svg-icon',{attrs:{\"icon\":_vm.icon}}):_vm._e(),(_vm.badge)?_c('div',{staticClass:\"badge\"},[_vm._v(_vm._s(_vm.badge))]):_vm._e(),(_vm.hasNotification)?_c('div',{staticClass:\"notify\"},[_c('p',{staticClass:\"pulse\"})]):_vm._e()]),_vm._t(\"label\",[(_vm.label)?_c('p',{staticClass:\"label no-break\"},[_vm._v(_vm._s(_vm.label))]):_vm._e()])],2)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isDropdownOpen),expression:\"isDropdownOpen\"}],ref:\"dropdown\",staticClass:\"dropdown\"},[_vm._t(\"dropdown\",null,{\"hide\":function (delay) { return _vm.toggleDropdown({ isOpen: false, delayClosing: delay }); }})],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ToolbarButton.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!./ToolbarButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToolbarButton.vue?vue&type=template&id=69de6fac\"\nimport script from \"./ToolbarButton.vue?vue&type=script&lang=js\"\nexport * from \"./ToolbarButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./ToolbarButton.vue?vue&type=style&index=0&id=69de6fac&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","import { detect } from 'detect-browser'\n\nconst { os } = detect()\nconst mobileOperatingSystems = ['ios', 'android os', 'blackberry os', 'windows mobile']\n\nexport default function isMobileOS() {\n\t// iPadOS 13 disguises itself as a mac run Safari so we need to\n\t// be a little more clever with our second check\n\t// https://stackoverflow.com/questions/58019463/how-to-detect-device-name-in-safari-on-ios-13-while-it-doesnt-show-the-correct\n\treturn (\n\t\tmobileOperatingSystems.includes(os.toLowerCase()) ||\n\t\t(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n\t)\n}\n","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!./ModalDialog.vue?vue&type=style&index=0&id=2008b94a&prod&lang=scss\"","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!./ProgressBar.vue?vue&type=style&index=0&id=ca3397f8&prod&lang=scss&scoped=true\"","const isSharedWorkerSupported = () => {\n\tif (typeof SharedWorker === 'undefined') return false\n\tlet supports = false\n\tconst tester = {\n\t\t\tget type() {\n\t\t\t\t\tsupports = true\n\t\t\t},\n\t}\n\ttry {\n\t\t\tconst blob = new Blob([''], { type: 'application/javascript' })\n\t\t\tconst url = URL.createObjectURL(blob)\n\t\t\tsupports = !!new SharedWorker(url, tester)\n\t\t\tURL.revokeObjectURL(url)\n\t\t\treturn supports\n\t} finally {\n\t\t\t// Cleanup if needed\n\t}\n}\n\n\tconst createMessageSender = (worker, isEnabled) => (msg) => {\n\t\tif (isEnabled) {\n\t\t\ttry { worker.postMessage(msg)\n\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\tconsole.error('Failed to send message to worker:', error)\n\t\t\t}\n\t\t}\n\t}\n\n\texport {\n\t\tisSharedWorkerSupported,\n\t\tcreateMessageSender\n\t}\n","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!./Thumbnails.vue?vue&type=style&index=0&id=33a50a54&prod&lang=scss\"","import axios from 'axios'\n\n// Ping active clinic or clinic list every 5 minutes\nconst CLINIC_AVAILABLE_CHECK_TIME = 1000 * 60 * 5\nlet scanInterval\n\ninterface IAvailableResult {\n\tsameSubnet: boolean\n\tavailable: boolean\n}\n\nclass ClinicAPI {\n\tfirstScanPromise: Promise = null\n\tactiveClinicUrl: string = null\n\tclinicUrls = []\n\tenabled = false\n\n\tstartScanning() {\n\t\tthis.stopScanning()\n\t\tthis.enabled = window.config.pingLocalServerStrategy !== 'never'\n\t\tif (this.enabled) {\n\t\t\tthis.setActiveClinicUrl()\n\t\t\tscanInterval = setInterval(this.setActiveClinicUrl.bind(this), CLINIC_AVAILABLE_CHECK_TIME)\n\t\t}\n\t}\n\n\tget importMachineName() {\n\t\tif (!this.activeClinicUrl) return ''\n\t\treturn new URL(this.activeClinicUrl).hostname\n\t}\n\n\tsetClinicUrls(urls) {\n\t\tthis.clinicUrls = urls || []\n\t\tthis.setActiveClinicUrl()\n\t}\n\n\tasync setActiveClinicUrl() {\n\t\t// Comment this line for development purposes only\n\t\tif (!this.enabled) return\n\n\t\tlet urls = this.activeClinicUrl ? [this.activeClinicUrl] : this.clinicUrls\n\t\tlet p = this.scanClinicUrls(urls).then(r => {\n\t\t\tthis.activeClinicUrl = r\n\t\t})\n\n\t\tif (!this.firstScanPromise) {\n\t\t\tthis.firstScanPromise = p\n\t\t}\n\t}\n\n\tasync scanClinicUrls(clinicUrls: string[]): Promise {\n\t\tfor (let i = 0; i < clinicUrls.length; i++) {\n\t\t\tif (!this.enabled) break\n\t\t\tlet baseUrl = clinicUrls[i]\n\t\t\t// Don't allow https: => http: in the browser\n\t\t\t// Omni Desktop will always report 'file:' or 'http:'\n\t\t\tif (window.location.protocol === 'https:' && baseUrl.startsWith('http:')) continue\n\t\t\ttry {\n\t\t\t\tlet result: IAvailableResult = await axios.get(`${baseUrl}/available.aspx`).then(r => r.data)\n\t\t\t\tif (result.available) {\n\t\t\t\t\treturn baseUrl\n\t\t\t\t}\n\t\t\t} catch {}\n\t\t}\n\t\treturn null\n\t}\n\n\tstopScanning() {\n\t\tclearInterval(scanInterval)\n\t\tthis.enabled = false\n\t}\n}\n\nexport const clinicAPI = new ClinicAPI()\nwindow.clinicAPI = clinicAPI\n","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"e2f852212e56864b253e.worker.js\");\n};","module.exports = \"\"","module.exports = \"\"","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!./ReferredByForm.vue?vue&type=style&index=0&id=0bb16034&prod&lang=scss\"","import ViewerTool from '@store/models/viewerTool'\nimport consts from '@vtk/VTKViewport/consts'\n\nexport default [\n\tnew ViewerTool({\n\t\talias: consts.LEVEL_TOOL,\n\t\tname: consts.LEVEL_TOOL,\n\t\tlabel: 'Levels',\n\t\ttitle: 'Window Levels',\n\t\tgroups: ['levels'],\n\t\ticonName: 'brightness-6',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.ZOOM_TOOL,\n\t\tname: consts.ZOOM_TOOL,\n\t\tlabel: 'Zoom',\n\t\ttitle: 'Zoom',\n\t\tgroups: [],\n\t\ticonName: 'magnify',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.PAN_TOOL,\n\t\tname: consts.PAN_TOOL,\n\t\tlabel: 'Pan',\n\t\ttitle: 'Pan',\n\t\tgroups: [],\n\t\ticonName: 'arrow-all',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.LENGTH_TOOL,\n\t\tname: consts.LENGTH_TOOL,\n\t\tlabel: 'Length',\n\t\ttitle: 'Length',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-line',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.RECT_TOOL,\n\t\tname: consts.RECT_TOOL,\n\t\tlabel: 'Rect',\n\t\ttitle: 'Rect',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-rectangle',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.CIRCLE_TOOL,\n\t\tname: consts.CIRCLE_TOOL,\n\t\tlabel: 'Circle',\n\t\ttitle: 'Circle',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-circle-variant',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.ELLIPSE_TOOL,\n\t\tname: consts.ELLIPSE_TOOL,\n\t\tlabel: 'Ellipse',\n\t\ttitle: 'Ellipse',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'vector-ellipse',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.ANGLE_TOOL,\n\t\tname: consts.ANGLE_TOOL,\n\t\tlabel: 'Angle',\n\t\ttitle: 'Angle',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'angle',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.TEXT_TOOL,\n\t\tname: consts.TEXT_TOOL,\n\t\tlabel: 'Text',\n\t\ttitle: 'Text Annotation',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'format-text',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.ARROW_TOOL,\n\t\tname: consts.ARROW_TOOL,\n\t\tlabel: 'Arrow',\n\t\ttitle: 'Arrow Annotation',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'arrow-bottom-left',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.ERASER_TOOL,\n\t\tname: consts.ERASER_TOOL,\n\t\tlabel: 'Eraser',\n\t\ttitle: 'Eraser',\n\t\tgroups: ['annotation'],\n\t\ticonName: 'eraser',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.SCROLL_TOOL,\n\t\tname: consts.SCROLL_TOOL,\n\t\tlabel: 'Scroll',\n\t\ttitle: 'Stack Scroll',\n\t\tgroups: ['scroll'],\n\t\ticonName: 'layers',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.SELECT_TOOL,\n\t\tname: consts.SELECT_TOOL,\n\t\tlabel: 'Point',\n\t\ttitle: 'Cross Point',\n\t\tgroups: ['scroll'],\n\t\ticonName: 'crosshairs',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.PLANE_TOOL,\n\t\tname: consts.PLANE_TOOL,\n\t\tlabel: 'Plane',\n\t\ttitle: 'Rotate Slice Plane',\n\t\tgroups: [],\n\t\ticonName: 'rotate-tool',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.ROLL_TOOL,\n\t\tname: consts.ROLL_TOOL,\n\t\tlabel: 'Roll',\n\t\ttitle: 'Roll View',\n\t\tgroups: [],\n\t\ticonName: 'roll-tool',\n\t}),\n\tnew ViewerTool({\n\t\talias: consts.PROBE_TOOL,\n\t\tname: consts.PROBE_TOOL,\n\t\tlabel: 'Probe',\n\t\ttitle: 'Probe',\n\t\tgroups: ['scroll'],\n\t\ticonName: 'eyedropper-variant',\n\t\trefresh({ activeSeries }) {\n\t\t\tlet disabledReason = ''\n\t\t\tif (!activeSeries || !activeSeries.modality || activeSeries.modality.toLowerCase() !== 'ct') {\n\t\t\t\tdisabledReason = 'CT series required'\n\t\t\t} else if (activeSeries.isJpeg) {\n\t\t\t\tdisabledReason = 'DICOM rendering required'\n\t\t\t}\n\t\t\tthis.disabledReason = disabledReason\n\t\t\tthis.disabled = !!disabledReason\n\t\t},\n\t}),\n]\n","// prettier-ignore\nimport {\n\tBLEND_MIP,\n\tLEVEL_TOOL,\n\tPAN_TOOL,\n\tZOOM_TOOL,\n\tBUTTONS,\n\tTOP,\n\tLEFT,\n\tFRONT,\n} from '@vtk/VTKViewport/consts'\nimport tools from './tools.js'\nimport layouts from './layouts.json'\n\nconst generateSingleViewData = options => ({\n\tcolor: '#bbbbbb',\n\tslicePlaneNormal: [0, 0, 1],\n\tsliceViewUp: [0, -1, 0],\n\tslicePlaneXRotation: 0,\n\tslicePlaneYRotation: 0,\n\tflipH: false,\n\tflipV: false,\n\tflipRX: false,\n\tflipRY: false,\n\tviewRotation: 0,\n\tsliceThickness: 0.1,\n\tblendMode: BLEND_MIP,\n\twindow: {\n\t\twidth: 0,\n\t\tcenter: 0,\n\t},\n\tactive: false,\n\tvisible: true,\n\tposition: 1,\n\timage: null,\n\t...options,\n})\n\nconst defaultViewData = JSON.stringify({\n\t[TOP]: generateSingleViewData({\n\t\tcolor: '#F8B42C',\n\t\tslicePlaneNormal: [0, 0, 1],\n\t\tsliceViewUp: [0, -1, 0],\n\t\tposition: 1,\n\t\tactive: true,\n\t}),\n\t[LEFT]: generateSingleViewData({\n\t\tcolor: '#A62CF8',\n\t\tslicePlaneNormal: [-1, 0, 0],\n\t\tsliceViewUp: [0, -1, 0],\n\t\tposition: 2,\n\t\tflipRX: true,\n\t}),\n\t[FRONT]: generateSingleViewData({\n\t\tcolor: '#2C92F8',\n\t\tslicePlaneNormal: [0, -1, 0],\n\t\tsliceViewUp: [0, 0, -1],\n\t\tposition: 3,\n\t\tflipRY: true,\n\t}),\n})\n\nexport const getDefaultViewData = () => JSON.parse(defaultViewData)\n\nconst defaultSeriesData = JSON.stringify({\n\tseriesId: '',\n\tmodality: '',\n\tactive: false,\n\tswitchModeActive: false,\n\tisLoading: false,\n\tloadProgress: -1,\n\tlayout: layouts[0],\n\tblendMode: BLEND_MIP,\n\tviewData: getDefaultViewData(),\n\tvolumeData: null,\n\tisJpeg: false,\n\tvolumeDirection: [1, 0, 0, 0, 1, 0, 0, 0, 1],\n\tsliceDirectionality: 1,\n\tdefaultVoi: {\n\t\twindowWidth: 0,\n\t\twindowCenter: 0,\n\t},\n\t// Action Callback funcs for toolbar or keyboard binding.\n\tonReset: null,\n\tonInvert: null,\n\tonMoveSlice: null,\n})\n\nexport const getDefaultSeriesData = () => JSON.parse(defaultSeriesData)\n\nconst state = {\n\tactive: false,\n\tactiveSeries: null,\n\tshowOverlayText: true,\n\tshowImageOrientationMarkers: true,\n\tsyncWindowLevels: false,\n\tshowAxisOverlay: true,\n\ttools,\n\tavailableTools: tools,\n\tactiveTools: {\n\t\t[BUTTONS.LEFT_MKEY]: LEVEL_TOOL,\n\t\t[BUTTONS.MIDDLE_MKEY]: PAN_TOOL,\n\t\t[BUTTONS.RIGHT_MKEY]: ZOOM_TOOL,\n\t},\n\tissues: {},\n\tlayouts,\n}\n\nexport default state\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close}},[_c('div',{staticClass:\"dialog\",attrs:{\"id\":\"statWarningDlg\"}},[_c('p',[_vm._v(\"\\n\\t\\t\\tThe report for patient \"+_vm._s(_vm.info.description)+\" has been locked by you for over\\n\\t\\t\\t\"+_vm._s(_vm.info.minutesLocked)+\" minutes. This exceeds the threshold allowed for completion of this\\n\\t\\t\\tteleconsultation report. You can either complete the report within the next\\n\\t\\t\\t\"+_vm._s(_vm.info.repeatWarningMinutes)+\" minutes or you can release the report back to the group so\\n\\t\\t\\tit can be completed.\\n\\t\\t\")]),_c('p',[_vm._v(\"\\n\\t\\t\\tIf you do not respond in \"+_vm._s(_vm.secondsUntilRelease)+\" seconds, Keystone will automatically\\n\\t\\t\\trelease the report back to the group.\\n\\t\\t\")]),_c('p',[_vm._v(\"\\n\\t\\t\\tNote: If you select to complete this report, Keystone will remind you again in\\n\\t\\t\\t\"+_vm._s(_vm.info.repeatWarningMinutes)+\" minutes.\\n\\t\\t\")]),_c('div',{staticClass:\"footer right\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){return _vm.close(true)}}},[_vm._v(\"Complete Now\")]),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){return _vm.close(false)}}},[_vm._v(\"Release to Group\")])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./statWarningDlg.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!./statWarningDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./statWarningDlg.vue?vue&type=template&id=7459046c\"\nimport script from \"./statWarningDlg.vue?vue&type=script&lang=js\"\nexport * from \"./statWarningDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./statWarningDlg.vue?vue&type=style&index=0&id=7459046c&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","// setTimeout that supports durations longer than Int32 max via recursion\n\nconst MAX_INT32 = 2147483647\nlet currentId = 1\nconst fakeToRealIdMap = {}\n\nexport function setLongTimeout(callback: Function, ms: number, fakeId?: number): number {\n\tfakeId = fakeId || currentId++\n\tlet realId: number\n\tif (ms < MAX_INT32) {\n\t\t// use native setTimeout for callback, and then clear this long timer's fakeId\n\t\trealId = setTimeout(() => {\n\t\t\tcallback()\n\t\t\tclearLongTimeout(fakeId)\n\t\t}, ms)\n\t} else {\n\t\t// in MAX_INT32 milliseconds, start another timer for the remaining duration\n\t\trealId = setTimeout(() => {\n\t\t\tsetLongTimeout(callback, ms - MAX_INT32, fakeId)\n\t\t}, MAX_INT32)\n\t}\n\t// store/update realId for our long timer's fakeId\n\tfakeToRealIdMap[fakeId.toString()] = realId\n\treturn fakeId\n}\n\nexport function clearLongTimeout(fakeId: number) {\n\tconst realId: number = fakeToRealIdMap[fakeId.toString()]\n\tif (realId != null) {\n\t\tclearTimeout(realId)\n\t\tdelete fakeToRealIdMap[fakeId.toString()]\n\t}\n}\n","import { openStatWarning } from '@dialogs/statWarningDlg.vue'\nimport { API } from '@services/api'\nimport { showAlert } from '@dialogs/MessageDlg.vue'\nimport { eventBus } from './eventBus'\nimport { setLongTimeout, clearLongTimeout } from '@utils/timeout'\n\ninterface IStatReportInfo {\n\tclaimDate: string\n\treportId: string\n\tlockWarningMinutes: number\n\tlockRepeatWarningMinutes: number\n\tdescription: string\n\tpriority: string\n}\n\nclass StatItem {\n\tconsultantReportId: string\n\tclaimDate: Date\n\ttimerId = 0\n\tactive = true\n\twarningMinutes: number\n\trepeatWarningMinutes: number\n\tdescription: string\n\tpriority: string\n\n\tconstructor(info: IStatReportInfo) {\n\t\tthis.consultantReportId = info.reportId\n\t\tthis.claimDate = new Date(info.claimDate + 'Z')\n\t\tthis.timerId = 0\n\t\tthis.active = true\n\t\tthis.warningMinutes = info.lockWarningMinutes\n\t\tthis.repeatWarningMinutes = info.lockRepeatWarningMinutes\n\t\tthis.description = info.description\n\t\tthis.priority = info.priority\n\t}\n\n\tget minutesLocked() {\n\t\tlet now = new Date()\n\t\tlet diff = now.getTime() - this.claimDate.getTime()\n\t\treturn Math.floor(diff / 60 / 1000)\n\t}\n}\n\nclass LockService {\n\titems: StatItem[] = []\n\trefreshInterval: number = null\n\n\tclear(all = true) {\n\t\t// disable and remove irrelevant items\n\t\tfor (let i = this.items.length - 1; i >= 0; i--) {\n\t\t\tlet item = this.items[i]\n\t\t\tif (!item.active || all) {\n\t\t\t\tclearLongTimeout(item.timerId)\n\t\t\t\tthis.items.splice(i, 1)\n\t\t\t}\n\t\t}\n\t}\n\n\tasync fetchInfo() {\n\t\t// fetch all STAT reports claimed by this user\n\t\tlet newItems: IStatReportInfo[] = await API.get(`/teleconsultation/report-lock-info`).then(r => r.data)\n\n\t\tlet existing: { [key: string]: StatItem } = {}\n\t\tthis.items.forEach(i => {\n\t\t\texisting[i.consultantReportId] = i\n\t\t\ti.active = false\n\t\t})\n\n\t\tlet now = new Date()\n\n\t\tnewItems.forEach(i => {\n\t\t\tlet item = existing[i.reportId]\n\t\t\tif (!item) {\n\t\t\t\titem = new StatItem(i)\n\t\t\t\tlet warningMS = item.warningMinutes * 60 * 1000\n\t\t\t\tlet warnTime = item.claimDate.getTime() + warningMS\n\t\t\t\tlet diff = warnTime - now.getTime()\n\n\t\t\t\titem.timerId = setLongTimeout(() => {\n\t\t\t\t\tthis.giveWarning(item)\n\t\t\t\t}, diff)\n\n\t\t\t\tthis.items.push(item)\n\t\t\t} else {\n\t\t\t\titem.active = true\n\t\t\t}\n\t\t})\n\n\t\tthis.clear(false)\n\t}\n\n\tstartAutoRefreshing() {\n\t\tif (this.refreshInterval !== null) return\n\t\tconst MINUTES = 30\n\t\tthis.refreshInterval = setInterval(this.fetchInfo.bind(this), MINUTES * 1000 * 60)\n\t\tthis.fetchInfo()\n\t}\n\tstopAutoRefreshing() {\n\t\tclearInterval(this.refreshInterval)\n\t}\n\n\t// warn\n\tasync giveWarning(item: StatItem) {\n\t\tlet keepLock = await openStatWarning(item)\n\t\tif (keepLock === true) {\n\t\t\titem.timerId = setLongTimeout(() => {\n\t\t\t\tthis.giveWarning(item)\n\t\t\t}, item.repeatWarningMinutes * 60 * 1000)\n\t\t} else {\n\t\t\tawait this.unlock(item.consultantReportId, true)\n\t\t\tif (keepLock === undefined) {\n\t\t\t\tthis.showUnlockAlert(item)\n\t\t\t}\n\t\t}\n\t}\n\n\tshowUnlockAlert(item) {\n\t\tlet msg = `The report for patient ${item.description} has been locked by you for over ${\n\t\t\titem.minutesLocked\n\t\t} minutes. Keystone did not receive a response from you so the report has been released back to the group for completion.`\n\t\tshowAlert(msg)\n\t}\n\n\tasync lock(consultantReportId: string) {\n\t\tawait API.post(`/teleconsultation/${consultantReportId}/lock`)\n\t\teventBus.post('refresh-report')\n\t\treturn this.fetchInfo()\n\t}\n\n\tasync unlock(consultantReportId: string, isAutoUnlock: boolean) {\n\t\tawait API.post(`/teleconsultation/${consultantReportId}/unlock/`, null, { params: { isAutoUnlock } })\n\t\teventBus.post('refresh-report')\n\t\treturn this.fetchInfo()\n\t}\n}\n\nexport const lockService = new LockService()\n// @ts-ignore\nwindow.lockService = lockService\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./Loading.vue?vue&type=style&index=0&id=1a508d89&prod&lang=scss\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.active)?_c('div',{attrs:{\"id\":\"desktop-downloader\",\"data-test\":\"loading-indicator\"}},_vm._l((_vm.items),function(item){return _c('div',{key:item.id,staticClass:\"inner\"},[_c('span',[_vm._v(_vm._s(item.filename))]),_c('b',[_vm._v(_vm._s(_vm._f(\"fileSize\")(item.size)))]),(item.done)?_c('button',{attrs:{\"title\":\"Open containing folder\"},on:{\"click\":function($event){return _vm.openFolder(item)}}},[_c('svg-icon',{attrs:{\"icon\":\"folder-open-outline\"}})],1):_c('svg-icon',{staticClass:\"spinner\",attrs:{\"icon\":\"spinner-circle-thick\",\"spin\":\"\"}}),_c('button',{attrs:{\"title\":item.done ? 'Dismiss' : 'Cancel'},on:{\"click\":function($event){return _vm.removeItem(item)}}},[_c('svg-icon',{attrs:{\"icon\":item.done ? 'check' : 'close'}})],1)],1)}),0):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport omniDesktop from '@/electron/omniDesktop'\nimport { addNotification } from '@services/notificationService'\n\ninterface IDownloadInfo {\n\tid: number\n\tsavePath: string\n\tfilename: string\n\ttotal: number\n\tstate: string\n\tnotify?: string\n\tbytesReceived: number\n\tdone: boolean\n}\n\ninterface IDesktopDownloadItem {\n\tid: number\n\tsavePath: string\n\tfilename: string\n\tsize: number\n\tstatus: string\n\tdone: boolean\n}\n\nconst items: IDesktopDownloadItem[] = []\n\nexport default {\n\tname: 'Loading',\n\tdata() {\n\t\treturn {\n\t\t\titems,\n\t\t}\n\t},\n\tcomputed: {\n\t\tactive() {\n\t\t\treturn this.items.length\n\t\t},\n\t},\n\tmethods: {\n\t\tremoveItem(item) {\n\t\t\tif (!item.done) {\n\t\t\t\tomniDesktop.request('cancelDownload', item.id)\n\t\t\t}\n\t\t\titems.splice(items.indexOf(item), 1)\n\t\t},\n\t\topenFolder(item) {\n\t\t\tomniDesktop.request('openFolder', item.savePath)\n\t\t},\n\t},\n}\n\nexport function getActiveDownloads(): number {\n\treturn items.filter(i => !i.done).length\n}\n\nexport function setDownloadStatus(info: IDownloadInfo) {\n\tif (info.notify) {\n\t\taddNotification(info.notify, 'success')\n\t\treturn\n\t}\n\n\tif (!info.savePath) return\n\tif (info.state === 'cancelled') {\n\t\taddNotification(`Download cancelled: ${info.filename}`, 'warn')\n\t\treturn\n\t}\n\n\tlet item = items.find(i => i.id === info.id)\n\tif (!item) {\n\t\titem = {\n\t\t\tid: info.id,\n\t\t\tsavePath: info.savePath,\n\t\t\tfilename: null,\n\t\t\tsize: 0,\n\t\t\tstatus: null,\n\t\t\tdone: false,\n\t\t}\n\t\titems.push(item)\n\t}\n\n\titem.done = info.done\n\titem.size = info.bytesReceived\n\titem.savePath = info.savePath\n\titem.filename = info.filename\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DesktopDownloader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DesktopDownloader.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DesktopDownloader.vue?vue&type=template&id=0ed146f5\"\nimport script from \"./DesktopDownloader.vue?vue&type=script&lang=ts\"\nexport * from \"./DesktopDownloader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DesktopDownloader.vue?vue&type=style&index=0&id=0ed146f5&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","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!./View3D.vue?vue&type=style&index=0&id=d44e8896&prod&lang=scss\"","import Vue from 'vue'\nimport { formatNumber } from '@utils/numberUtils'\n\nexport const fileSize = bytes => {\n\tif (typeof bytes !== 'number' || isNaN(bytes)) return ''\n\tconst units = ['B', 'KB', 'MB', 'GB', 'TB']\n\tif (Math.abs(bytes) < 1024) return formatNumber(bytes) + ' B'\n\tconst powerOfTen = Math.min(Math.floor(Math.log(bytes) / Math.log(1000)), units.length - 1)\n\tbytes = (bytes / Math.pow(1024, powerOfTen)).toFixed(2) * 1\n\tbytes = formatNumber(bytes)\n\tconst unit = units[powerOfTen]\n\treturn bytes + ' ' + unit\n}\n\nconst msToDuration = function(ms) {\n\tlet term = ''\n\tlet value = 0\n\n\tlet minutes = ms / 1000 / 60\n\tif (minutes > 60) {\n\t\tlet hours = minutes / 60\n\t\tif (hours > 24) {\n\t\t\tvalue = hours / 24\n\t\t\tterm = 'day'\n\t\t} else {\n\t\t\tvalue = hours\n\t\t\tterm = 'hour'\n\t\t}\n\t} else {\n\t\tvalue = minutes\n\t\tterm = 'minute'\n\t}\n\n\tvalue = Math.round(value)\n\treturn `${value} ${term}${value > 1 || value === 0 ? 's' : ''}`\n}\n\nconst url = value => {\n\tif (value.substring(0, 4).toLowerCase() !== 'http') {\n\t\tvalue = 'http://' + value\n\t}\n\treturn value\n}\n\nconst capitalize = str => {\n\treturn str.charAt(0).toUpperCase() + str.toLowerCase().slice(1)\n}\n\nVue.filter('msToDuration', msToDuration)\nVue.filter('fileSize', fileSize)\nVue.filter('url', url)\nVue.filter('capitalize', capitalize)\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./DatePicker.vue?vue&type=style&index=0&id=84bbbd6c&prod&lang=scss\"","module.exports = function() {\n return new Worker(__webpack_public_path__ + \"2c5fe4d1826decf8a0ce.worker.js\");\n};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","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!./Toolbar.vue?vue&type=style&index=0&id=c8776a40&prod&lang=scss&scoped=true\"","import * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { getCornerstoneImageIdParts } from '@/imageLoader'\nimport isSameOrientation from '@/cornerstone/_shared/isSameOrientation.js'\nimport isLocalizerImage from '@/cornerstone/_shared/isLocalizerImage.js'\nimport store from '@/store'\n\nconst scrollToIndex = cornerstoneTools.import('util/scrollToIndex')\n\nexport default function(synchronizer, sourceElement, targetElement, eventData = {}) {\n\tif (targetElement === sourceElement && !eventData.virtual) return\n\n\tconst {\n\t\tisLocalizerImage: isSourceLocalizerImage,\n\t\timageId: sourceImageId,\n\t\t...sourceImagePlane\n\t} = store.state.viewer.activeImageMetadata\n\n\t// do not trigger scroll sync from a localizer image [ch4638]\n\tif (isSourceLocalizerImage) {\n\t\treturn\n\t}\n\n\tif (!sourceImagePlane || !sourceImagePlane.imagePositionPatient) return\n\tconst stackToolState = cornerstoneTools.getToolState(targetElement, 'stack')\n\tif (!stackToolState) return\n\tconst stackData = cornerstoneTools.getToolState(targetElement, 'stack').data[0]\n\tlet shortestDistance = Number.MAX_VALUE\n\tlet newImageIdIndex\n\n\tfor (let i = 0; i < stackData.imageIds.length; i++) {\n\t\tconst cornerstoneImageId = stackData.imageIds[i]\n\t\tconst { imageId } = getCornerstoneImageIdParts(cornerstoneImageId)\n\t\tif (imageId === sourceImageId) {\n\t\t\tnewImageIdIndex = i\n\t\t\tbreak\n\t\t}\n\t\tconst imagePlane = cornerstone.metaData.get('imagePlaneModule', imageId)\n\t\tif (!imagePlane || !imagePlane.imagePositionPatient) continue\n\t\tif (!isSameOrientation(imagePlane, sourceImagePlane)) continue\n\t\t// do not scroll to a localizer image [ch4638]\n\t\tif (isLocalizerImage(stackData.imageIds, cornerstoneImageId, imagePlane)) continue\n\t\tconst distance = getDistance(imagePlane.imagePositionPatient, sourceImagePlane.imagePositionPatient)\n\t\tif (distance < shortestDistance) {\n\t\t\tshortestDistance = distance\n\t\t\tnewImageIdIndex = i\n\t\t}\n\t}\n\tif (newImageIdIndex === undefined || newImageIdIndex === stackData.currentImageIdIndex) return\n\n\tscrollToIndex(targetElement, newImageIdIndex)\n}\n\nfunction getDistance(a, b) {\n\tconst dx = a.x - b.x\n\tconst dy = a.y - b.y\n\tconst dz = a.z - b.z\n\treturn dx * dx + dy * dy + dz * dz\n}\n","import * as cornerstone from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport { getCornerstoneImageIdParts } from '@/imageLoader'\nimport isSameOrientation from './../_shared/isSameOrientation.js'\nimport store from '@/store'\n\nconst scrollToIndex = cornerstoneTools.import('util/scrollToIndex')\n\nexport default function(synchronizer, sourceElement, targetElement, eventData = {}) {\n\tif (targetElement === sourceElement && !eventData.virtual) return\n\n\tconst {\n\t\tisLocalizerImage: isSourceLocalizerImage,\n\t\timageId: sourceImageId,\n\t\t...sourceImagePlane\n\t} = store.state.viewer.activeImageMetadata\n\n\tif (!sourceImagePlane || !sourceImagePlane.imagePositionPatient) return\n\t// do not trigger scroll sync from a localizer image [ch4638]\n\tif (isSourceLocalizerImage) {\n\t\treturn\n\t}\n\n\tconst stackToolState = cornerstoneTools.getToolState(targetElement, 'stack')\n\tif (!stackToolState) return\n\tconst stackData = cornerstoneTools.getToolState(targetElement, 'stack').data[0]\n\t// Default shortest distance to the max possible value\n\tlet shortestDistance = Number.MAX_VALUE\n\tconst offsets = store.state.viewer.manualStackOffsets\n\n\t// Find the associated series IDs from the given imageIDs\n\t// This might seem excessively loop-ey, but is the only option and seems to run in sub-ms times.\n\tconst imageMatch = matchImageID => image => image.imageId === matchImageID\n\tconst hasImage = matchImageID => series => series.images.some(imageMatch(matchImageID))\n\tconst { seriesId: sourceSeriesId } = store.getters.allSeries.find(hasImage(sourceImageId))\n\t// We can use the first image from the target stack to get the series, since that stack should always be the same series\n\tconst { seriesId: targetSeriesId } = store.getters.allSeries.find(\n\t\thasImage(getCornerstoneImageIdParts(stackData.imageIds[0]).imageId)\n\t)\n\n\tlet newImageIdIndex\n\n\tfor (let i = 0; i < stackData.imageIds.length; i++) {\n\t\tconst cornerstoneImageId = stackData.imageIds[i]\n\t\tconst { imageId } = getCornerstoneImageIdParts(cornerstoneImageId)\n\t\tif (imageId === sourceImageId) {\n\t\t\tnewImageIdIndex = i\n\t\t\tbreak\n\t\t}\n\t\tconst targetImagePlane = cornerstone.metaData.get('imagePlaneModule', imageId)\n\t\tif (!targetImagePlane || !targetImagePlane.imagePositionPatient) continue\n\t\tif (!isSameOrientation(targetImagePlane, sourceImagePlane)) continue\n\n\t\t// NOTE: unlike thick client, does not store or use FrameOfReferences to match offsets.\n\t\t// If there is no direct match but both images are in the same plane, then it will sync 1:1\n\t\tconst offset = offsets.find(findOffsetByID(sourceSeriesId, targetSeriesId))\n\n\t\tconst distance = getOffsetDistance(\n\t\t\tsourceImagePlane.imagePositionPatient,\n\t\t\ttargetImagePlane.imagePositionPatient,\n\t\t\toffset || { x: 0, y: 0, z: 0 }\n\t\t)\n\t\tif (distance < shortestDistance) {\n\t\t\tshortestDistance = distance\n\t\t\tnewImageIdIndex = i\n\t\t}\n\t}\n\tif (newImageIdIndex === undefined || newImageIdIndex === stackData.currentImageIdIndex) return\n\n\tscrollToIndex(targetElement, newImageIdIndex)\n}\n\nfunction getOffsetDistance(source, target, offset) {\n\tconst dx = source.x - target.x - offset.x\n\tconst dy = source.y - target.y - offset.y\n\tconst dz = source.z - target.z - offset.z\n\treturn dx * dx + dy * dy + dz * dz\n}\n\n// Function Generator to create a filter function for finding offsets by ID\nconst findOffsetByID = (sourceSeriesId, targetSeriesId) => offset =>\n\toffset.sourceSeriesId === sourceSeriesId && offset.targetSeriesId === targetSeriesId\n\n/*\nOffset data format\n{\n sourceSeriesID,\n targetSeriesID,\n x,\n y,\n z,\n}\n*/\n","import {\n\tgetEnabledElement,\n\tEVENTS as cornerstoneEventsEnum,\n\tevents as cornerstoneEvents,\n} from 'cornerstone-core/dist/cornerstone.js'\nimport * as cornerstoneTools from 'cornerstone-tools/dist/cornerstoneTools.js'\nimport AstStackImagePositionSynchronizer from '@/cornerstone/synchronizers/AstStackImagePositionSynchronizer.js'\nimport AstManualStackImagePositionSynchronizer from '@/cornerstone/synchronizers/AstManualStackImagePositionSynchronizer.js'\nimport store from '@store'\nimport { waitForEnabledElementImageToLoad } from '@/utils/wait.js'\nimport { eventBus } from '@services/eventBus'\n\n/**\n * Element Enabled event.\n *\n * @event Cornerstone#ElementEnabled\n * @type {Object}\n * @property {string} type\n * @property {Object} detail\n * @property {HTMLElement} detail.element - The element being enabled.\n */\n\n/**\n * Element Disabled event.\n *\n * @event Cornerstone#ElementDisabled\n * @type {Object}\n * @property {string} type\n * @property {Object} detail\n * @property {HTMLElement} detail.element - The element being disabled.\n */\n\nexport const synchronizers = {\n\treferenceLinesSynchronizer: null,\n\tupdateImageSynchronizer: null,\n\tstackScrollSynchronizer: null,\n}\n\n/**\n * Creates new instances of each synchronizer and wires up event\n * listeners.\n *\n * @exports @public @method\n * @name create\n */\nconst create = function() {\n\t// Create new synchronizer instances\n\tsynchronizers.referenceLinesSynchronizer = new cornerstoneTools.Synchronizer(\n\t\tcornerstoneEventsEnum.NEW_IMAGE,\n\t\tcornerstoneTools.updateImageSynchronizer\n\t)\n\n\tlet updateMetaDataHandledByStackScroll = false\n\n\t// Monkeypatch the referenceLinesSynchronizer, so we can grab metadata and sync cross browser\n\tasync function customAddSource(element) {\n\t\t// Used for setting active canvas, initialize the right element's metadata)\n\t\t// Important because the removeSource function will trigger customFireEvent and update metadata with old image's info,\n\t\t// which happens on .destroy() prior to the addSource event in `setActiveCanvas.js`\n\t\tconst img = await waitForEnabledElementImageToLoad(element)\n\t\tif (img) store.dispatch('setActiveImageMetaDataFromElement', element)\n\t\tthis.__addSource(element)\n\t\tthis.__fireEvent(element)\n\t}\n\tfunction customFireEvent(sourceElement, eventData) {\n\t\tconst isVirtual = eventData && eventData.virtual\n\t\t// Used for an image being updated, via stack scroll, CINEloop, etc\n\t\tif (this.enabled && !isVirtual && !updateMetaDataHandledByStackScroll)\n\t\t\tstore.dispatch('setActiveImageMetaDataFromElement', sourceElement)\n\t\tupdateMetaDataHandledByStackScroll = false\n\t\tthis.__fireEvent(sourceElement, eventData)\n\t}\n\n\tsynchronizers.referenceLinesSynchronizer.__fireEvent = synchronizers.referenceLinesSynchronizer.fireEvent\n\tsynchronizers.referenceLinesSynchronizer.fireEvent = customFireEvent\n\n\tsynchronizers.referenceLinesSynchronizer.__addSource = synchronizers.referenceLinesSynchronizer.addSource\n\tsynchronizers.referenceLinesSynchronizer.addSource = customAddSource\n\n\tsynchronizers.updateImageSynchronizer = new cornerstoneTools.Synchronizer(\n\t\tcornerstoneEventsEnum.NEW_IMAGE,\n\t\tcornerstoneTools.updateImageSynchronizer\n\t)\n\n\tfunction customStackScrollFireEvent(sourceElement, eventData) {\n\t\tconst isVirtual = eventData && eventData.virtual\n\t\tif (this.enabled) {\n\t\t\tupdateMetaDataHandledByStackScroll = true\n\t\t\tif (!isVirtual) {\n\t\t\t\tstore.dispatch('setActiveImageMetaDataFromElement', sourceElement)\n\t\t\t\teventBus.broadcast(eventBus.type.VUEX_ACTION, { type: 'virtualStackScroll' })\n\t\t\t}\n\t\t}\n\t\tthis.__fireEvent(sourceElement, eventData)\n\t}\n\tsynchronizers.stackScrollSynchronizer = new cornerstoneTools.Synchronizer(\n\t\tcornerstoneTools.EVENTS.STACK_SCROLL,\n\t\tAstStackImagePositionSynchronizer\n\t)\n\tsynchronizers.stackScrollSynchronizer.__fireEvent = synchronizers.stackScrollSynchronizer.fireEvent\n\tsynchronizers.stackScrollSynchronizer.fireEvent = customStackScrollFireEvent\n\n\tsynchronizers.manualStackScrollSynchronizer = new cornerstoneTools.Synchronizer(\n\t\tcornerstoneTools.EVENTS.STACK_SCROLL,\n\t\tAstManualStackImagePositionSynchronizer\n\t)\n\tsynchronizers.manualStackScrollSynchronizer.__fireEvent = synchronizers.manualStackScrollSynchronizer.fireEvent\n\tsynchronizers.manualStackScrollSynchronizer.fireEvent = customStackScrollFireEvent\n\n\t// Set initial states\n\tsynchronizers.stackScrollSynchronizer.enabled = store.state.viewer.settingsPanel.isStackScrollSynchronizationEnabled\n\n\tsynchronizers.manualStackScrollSynchronizer.enabled =\n\t\tstore.state.viewer.settingsPanel.isManualStackScrollSynchronizationEnabled\n\n\tsynchronizers.referenceLinesSynchronizer.enabled =\n\t\tstore.state.viewer.settingsPanel.isReferenceLineSynchronizationEnabled\n\tif (synchronizers.referenceLinesSynchronizer.enabled) {\n\t\tcornerstoneTools.setToolEnabled('ReferenceLines', {\n\t\t\tsynchronizationContext: synchronizers.referenceLinesSynchronizer,\n\t\t})\n\t} else {\n\t\tcornerstoneTools.setToolDisabled('ReferenceLines')\n\t}\n\n\t// Listen for enabled/disabled element events\n\t_addListeners()\n}\n\n/**\n * Destroys each synchronizer and removes event listeners\n *\n * @exports @public @method\n * @name destroy\n */\nconst destroy = function() {\n\t// Clear synchronizer instances\n\tsynchronizers.referenceLinesSynchronizer.destroy()\n\tsynchronizers.updateImageSynchronizer.destroy()\n\tsynchronizers.stackScrollSynchronizer.destroy()\n\tsynchronizers.manualStackScrollSynchronizer.destroy()\n\tsynchronizers.referenceLinesSynchronizer = null\n\tsynchronizers.updateImageSynchronizer = null\n\tsynchronizers.stackScrollSynchronizer = null\n\tsynchronizers.manualStackScrollSynchronizer = null\n\n\tstore.commit('SET_STACK_SCROLL_OFFSETS', [])\n\n\tcornerstoneTools.setToolDisabled('ReferenceLines')\n\n\t_removeListeners()\n}\n\n/**\n * Removes the element enabled/disabled listeners that\n * we use to add/remove enabledElement from synchronizers\n *\n * @private @method\n * @name removeListeners\n */\nconst _removeListeners = function() {\n\t// Remove listeners for enabled/disabled element events\n\tcornerstoneEvents.removeEventListener(cornerstoneEventsEnum.ELEMENT_ENABLED, _addEnabledElementToActiveSynchronizers)\n\n\tcornerstoneEvents.removeEventListener(\n\t\tcornerstoneEventsEnum.ELEMENT_DISABLED,\n\t\t_removeEnabledElementFromAllSynchronizers\n\t)\n}\n\n/**\n * Adds the element enabled/disabled listeners that\n * we use to add/remove enabledElement from synchronizers\n *\n * @private @method\n * @name addListeners\n */\nconst _addListeners = function() {\n\t_removeListeners()\n\tcornerstoneEvents.addEventListener(cornerstoneEventsEnum.ELEMENT_ENABLED, _addEnabledElementToActiveSynchronizers)\n\tcornerstoneEvents.addEventListener(cornerstoneEventsEnum.ELEMENT_DISABLED, _removeEnabledElementFromAllSynchronizers)\n}\n\n/**\n * Fired when an element is enabled by `cornerstone`. Allows\n * us to add any new elements to existing synchronizers\n *\n * @private @method\n * @name addEnabledElement\n * @param {Cornerstone#ElementEnabled} elementEnabledEvt\n * @listens Cornerstone#ElementEnabled\n */\nconst _addEnabledElementToActiveSynchronizers = async function(elementEnabledEvent) {\n\tconst element = elementEnabledEvent.detail.element\n\tconst enabledElement = await _checkIsImageLoaded(element)\n\n\tif (enabledElement) {\n\t\tif (synchronizers.updateImageSynchronizer) synchronizers.updateImageSynchronizer.add(element)\n\t\tif (synchronizers.stackScrollSynchronizer) synchronizers.stackScrollSynchronizer.add(element)\n\t\tif (synchronizers.manualStackScrollSynchronizer) synchronizers.manualStackScrollSynchronizer.add(element)\n\n\t\t// Notes:\n\t\t// - referenceLinesSynchronizer - Updated in `setActiveCanvas.js`\n\t}\n}\n\n/**\n * Fired when an element is disabled by `cornerstone`. Allows\n * us to remove elements from synchronizers when they cease to exist\n *\n * @export @private @method\n * @name addEnabledElement\n * @param {Cornerstone#ElementDisabled elementDisabledEvt\n * @listens Cornerstone#ElementDisabled\n */\nconst _removeEnabledElementFromAllSynchronizers = function(elementDisabledEvent) {\n\tconst element = elementDisabledEvent.detail.element\n\n\tsynchronizers.updateImageSynchronizer.remove(element)\n\tsynchronizers.stackScrollSynchronizer.remove(element)\n\tsynchronizers.manualStackScrollSynchronizer.remove(element)\n\tsynchronizers.referenceLinesSynchronizer.remove(element)\n}\n\n/**\n * Waits a set amount of time, then resolves. Can be chained off of to delay\n * next call in promise chain.\n *\n * @private @function\n * @param {number} ms\n * @returns {Promise}\n */\nconst wait = ms => new Promise(resolve => setTimeout(resolve, ms))\n\n/**\n * Returns an enabledElement once it's image has been loaded. Returns\n * `null` if the enabledElement is destroyed before an image can be loaded.\n *\n * @private @function\n * @param {HTMLElement} element\n * @returns {Promise}\n */\nconst _checkIsImageLoaded = element => {\n\ttry {\n\t\tconst enabledElement = getEnabledElement(element)\n\t\tif (!enabledElement.image) {\n\t\t\treturn wait(250).then(() => _checkIsImageLoaded(element))\n\t\t}\n\t\tconsole.debug(\"enabledElement's image is loaded. Adding to synchronizers.\")\n\t\treturn enabledElement\n\t} catch (ex) {\n\t\t// Not an enabled element, stop polling\n\t\treturn null\n\t}\n}\n\nexport default {\n\tcreate,\n\tdestroy,\n}\n","module.exports = \"\"","module.exports = \"\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close}},[_c('div',{staticClass:\"select-study-container\"},[_c('dlg-header',{attrs:{\"title\":\"Select a study.\"},on:{\"close\":_vm.close}}),_c('div',{staticClass:\"select-study-content\"},[_c('search-and-filter',{attrs:{\"is-dialog\":\"\"},on:{\"reset-current-page\":function($event){_vm.currentPage = 0}},scopedSlots:_vm._u([{key:\"tags\",fn:function(){return [_c('filter-tag',{attrs:{\"value\":_vm.filter.modalityIds,\"clear-value\":[]},on:{\"input\":function($event){return _vm.updateFilterComponent('modalityIds', [])}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.$store.getters.modalityNamesById(_vm.filter.modalityIds).join(' / '))+\"\\n\\t\\t\\t\\t\\t\")]),(_vm.filter.startDate || _vm.filter.endDate)?_c('filter-tag',{attrs:{\"value\":{ startDate: _vm.filter.startDate, endDate: _vm.filter.endDate },\"clear-value\":\"\"},on:{\"input\":function($event){return _vm.clearFilterDateRange()}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tStudy Date:\\n\\t\\t\\t\\t\\t\")]):_vm._e()]},proxy:true}]),model:{value:(_vm.filter),callback:function ($$v) {_vm.filter=$$v},expression:\"filter\"}},[_c('date-range-picker',{attrs:{\"label\":\"Study Date\",\"date-ranges\":['All', 'Year', 'Month', 'Week', 'Yesterday', 'Today'],\"filter\":_vm.filter},on:{\"input\":function($event){return _vm.updateFilter($event)}}})],1),_c('div',{staticClass:\"table-wrapper\",class:{ 'has-cards': !_vm.mq.medium }},[_c('section',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isLoading && !_vm.list.length),expression:\"!isLoading && !list.length\"}],staticClass:\"no-results\"},[_c('em',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tNo results found\\n\\t\\t\\t\\t\\t\")])]),(_vm.mq.medium)?_c('data-table',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length),expression:\"list.length\"}],attrs:{\"columns\":_vm.columns,\"rows\":_vm.list,\"sort\":_vm.listSort,\"current-page\":_vm.currentPage,\"sticky-headers\":true,\"results-per-page\":_vm.resultsPerPage},on:{\"sort-selected\":_vm.handleSortSelected,\"row-open\":_vm.close},scopedSlots:_vm._u([{key:\"row\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('td',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(row.patientId)+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('td',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(row.patientName)+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('td',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(row.ownerName)+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('td',{staticStyle:{\"font-size\":\"0.85em\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(row.studyDateTime,{ forceUTC: false }))+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('td',{staticStyle:{\"font-size\":\"0.85em\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(row.modality)+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('td',{staticStyle:{\"font-size\":\"0.85em\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(row.imageCount)+\"\\n\\t\\t\\t\\t\\t\\t\")]),_c('td',[(row.mostRecentReportRecipient)?_c('svg-icon',{attrs:{\"icon\":\"email-check\",\"title\":\"Sent for consultations\",\"fixed\":\"\"}}):_vm._e(),(row.hasBeenEmailed)?_c('svg-icon',{attrs:{\"icon\":\"email\",\"title\":\"Study has been emailed\",\"fixed\":\"\"}}):_vm._e()],1)]}}],null,false,2710560189)}):_vm._e(),(!_vm.mq.medium)?_c('ast-studies-list-cards',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length),expression:\"list.length\"}],attrs:{\"studies\":_vm.list,\"show-view-button\":false},on:{\"select-study\":_vm.close}}):_vm._e()],1),_c('ast-pagination',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length),expression:\"list.length\"}],attrs:{\"current-page\":_vm.currentPage,\"results-per-page\":_vm.resultsPerPage,\"results-length\":_vm.list.length,\"has-more-results\":_vm.hasMoreResults},on:{\"set-results-per-page\":function (num) { return (_vm.resultsPerPage = parseInt(num)); },\"set-current-page\":function (page) { return (_vm.currentPage = page); }}})],1),_c('p',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"loading\"},[_c('svg-icon',{attrs:{\"icon\":\"spinner\",\"pulse\":\"\",\"fixed\":\"\"}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./StudiesDlg.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!./StudiesDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StudiesDlg.vue?vue&type=template&id=39dbcb13&scoped=true\"\nimport script from \"./StudiesDlg.vue?vue&type=script&lang=js\"\nexport * from \"./StudiesDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./StudiesDlg.vue?vue&type=style&index=0&id=39dbcb13&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 \"39dbcb13\",\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","import { Cell, Template } from './classes'\nimport { ContextMeta } from './context'\nimport { toPascalCase } from '@utils/stringUtils'\nimport { localizeDate } from '@/mixins/localization'\nimport { formatNumber } from '@utils/numberUtils'\n\nconst parseAndFilterNumbers = (a: any[]) => {\n\tconst html = /(<([^>]+)>)/gi\n\tconst nonDigits = /[^\\d.-]/g\n\tconst parse = p =>\n\t\tp &&\n\t\tparseFloat(\n\t\t\tp\n\t\t\t\t.toString()\n\t\t\t\t.replace(html, '')\n\t\t\t\t.replace(nonDigits, '')\n\t\t)\n\treturn a.map(parse).filter(p => !isNaN(p))\n}\n\nfunction add(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tlet value = 0\n\targs.forEach(p => (value += p))\n\treturn value\n}\n\nfunction subtract(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tif (args.length < 2) return null\n\tlet value\n\targs.forEach(p => (value = value === undefined ? p : value - p))\n\treturn value\n}\n\nfunction multiply(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tif (args.length < 2) return 0\n\tlet value\n\targs.forEach(p => (value = value === undefined ? p || 0 : value * (p || 0)))\n\treturn value\n}\n\nfunction divide(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tif (args.length < 2) return null\n\tif (args.some((a, i) => i > 0 && a === 0)) throw new Error('Cannot divide by zero.')\n\tlet value\n\targs.forEach((p, i) => {\n\t\tif (i === 0) value = p || 0\n\t\telse value = value / p\n\t})\n\treturn value\n}\n\nfunction average(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tif (args.length === 0) return null\n\tlet value = 0\n\targs.forEach(p => (value += p))\n\treturn value / args.length\n}\n\nfunction pow(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tif (args.length !== 2) return null\n\treturn Math.pow(args[0], args[1])\n}\n\nfunction sqrt(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tif (args.length !== 1) return null\n\treturn Math.sqrt(args[0])\n}\n\nfunction ln(params: any[]): number {\n\tlet args = parseAndFilterNumbers(params)\n\tif (args.length !== 1) return null\n\treturn Math.log(args[0])\n}\n\nfunction concat(params: any[]): string {\n\tconst formatAnyNumbers = p => (typeof p === 'number' ? formatNumber(p) : p)\n\treturn params\n\t\t.map(formatAnyNumbers)\n\t\t.join('')\n\t\t.trim()\n}\n\nexport const METHODS = {\n\tADD: {\n\t\tfn: add,\n\t\tdescription: 'Adds two or more values',\n\t},\n\tSUM: {\n\t\tfn: add,\n\t\tdescription: 'Adds two or more values',\n\t},\n\tSUB: {\n\t\tfn: subtract,\n\t\tdescription: 'Subtracts values in order',\n\t},\n\tMULT: {\n\t\tfn: multiply,\n\t\tdescription: 'Multiplies two or more values',\n\t},\n\tDIV: {\n\t\tfn: divide,\n\t\tdescription: 'Divides values in order',\n\t},\n\tAVG: {\n\t\tfn: average,\n\t\tdescription: 'Averages two or more values',\n\t},\n\tPOW: {\n\t\tfn: pow,\n\t\tdescription: 'Returns the first value to the power of the second',\n\t},\n\tLN: {\n\t\tfn: ln,\n\t\tdescription: 'Returns the natural logarithm of a value',\n\t},\n\tSQRT: {\n\t\tfn: sqrt,\n\t\tdescription: 'Returns the square root of a value',\n\t},\n\tCONCAT: {\n\t\tfn: concat,\n\t\tdescription: 'Concatenates two or more values',\n\t},\n}\n\nexport enum ExpType {\n\tMethod = 'Method',\n\tControlValue = 'Control Value',\n\tContextValue = 'Context Value',\n\tConstant = 'Constant',\n\tLiteral = 'Literal',\n}\n\nexport class Binding {\n\texpression: Expression\n\tdependencyMap = {}\n\tcell: Cell\n\t_prop: string\n\tvalid = true\n\terrors: string[] = []\n\ttext: string = null\n\n\tconstructor(cell: Cell, prop = 'binding') {\n\t\tthis.cell = cell\n\t\tthis._prop = prop\n\t\tthis.parse()\n\t}\n\n\tparse(text?: string) {\n\t\tthis.text = text === undefined ? this.cell.props[this._prop] : text\n\t\tthis.expression = new Expression(this.cell, this.text)\n\t\tthis.expression.getDependentPaths(this.dependencyMap)\n\t\tthis.validate()\n\t}\n\n\t_parse(str: string) {\n\t\tthis.text = str\n\t\tthis.expression = new Expression(this.cell, str)\n\t\tthis.expression.getDependentPaths(this.dependencyMap)\n\t\tthis.validate()\n\t}\n\n\thasDependency(path: string): boolean {\n\t\treturn this.dependencyMap[path] !== undefined\n\t}\n\n\treplaceDependency(oldPath: string, newPath: string) {\n\t\tconst termRegex = new RegExp('(^|,|\\\\()\\\\s?' + oldPath + '(?=\\\\s?($|,|\\\\)))', 'gi')\n\t\tconst newText = this.text.replace(termRegex, match => match.replace(oldPath, newPath))\n\t\tthis._parse(newText)\n\t\tthis.cell.props.binding = newText\n\t}\n\n\tgetValue(): any {\n\t\tconst value = this.expression.getValue(this.cell)\n\t\tif (typeof value === 'number') return formatNumber(value)\n\t\treturn value\n\t}\n\n\tvalidate(): boolean {\n\t\tif (!this.text) return\n\t\t// verify that the template value paths valid\n\t\t// verify that only methods have arguments\n\t\tthis.expression.validate()\n\t\tconst getExpressionErrors = e => e.errors.concat(...e.args.map(getExpressionErrors))\n\t\tthis.errors = Array.from(new Set(getExpressionErrors(this.expression))) // deduped flat array\n\t\tconst getCharCount = (char: string) => {\n\t\t\tlet text = this.text.replace(/([\"|']).*?\\1/g, '\"\"') // ignore string literals\n\t\t\treturn (text.match(new RegExp('\\\\' + char, 'g')) || []).length\n\t\t}\n\t\tif (getCharCount('(') !== getCharCount(')'))\n\t\t\tthis.errors.push('There is an unmatched parenthesis.')\n\t\tthis.valid = this.errors.length === 0\n\t\treturn this.valid\n\t}\n}\n\nexport class Expression {\n\tterm: string\n\targs?: Expression[] = []\n\tcell: Cell\n\tcalcErrors: string[] = []\n\terrors: string[] = []\n\n\t// ex: POW(2,SQRT(AVG(SUM(widget1.textbox1,[patient.age]),textbox2))))\n\tconstructor(cell: Cell, str: string = '') {\n\t\tthis.cell = cell\n\t\tstr = str.trim()\n\t\tconst hasNoArgs = !str.includes('(') || /^['\"]/.test(str)\n\t\tif (hasNoArgs) {\n\t\t\tthis.term = str\n\t\t\treturn\n\t\t}\n\t\tconst firstParenIndex = str.indexOf('(')\n\t\tthis.term = str.substr(0, firstParenIndex).trim()\n\t\tlet parenLevel = 0\n\t\tlet arg = ''\n\t\tconst end = str.length - 1\n\t\tlet isInSingleQuote = false\n\t\tlet isInDoubleQuote = false\n\t\tfor (let i = firstParenIndex + 1; i <= end; i++) {\n\t\t\tconst char = str[i]\n\t\t\tif (!isInDoubleQuote && char === \"'\") isInSingleQuote = !isInSingleQuote\n\t\t\tif (!isInSingleQuote && char === '\"') isInDoubleQuote = !isInDoubleQuote\n\t\t\tconst isInQuote = isInDoubleQuote || isInSingleQuote\n\t\t\tif (isInQuote) {\n\t\t\t\targ += char\n\t\t\t\tif (i !== end) continue\n\t\t\t} else {\n\t\t\t\tif (char === '(') parenLevel++\n\t\t\t\tif (char === ')') parenLevel--\n\t\t\t}\n\t\t\tif (((!isInQuote && char === ',') || i === end) && parenLevel <= 0) {\n\t\t\t\tif (!isInQuote && i === end && char !== ')') arg += char\n\t\t\t\tif (arg.length > 0) {\n\t\t\t\t\tthis.args.push(new Expression(cell, arg))\n\t\t\t\t}\n\t\t\t\targ = ''\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\targ += char\n\t\t}\n\t}\n\n\t/* get noBrackets(): string {\n\t\tlet result = this.term\n\t\tif (result[0] === '[') result = result.substr(1)\n\t\tif (result[result.length - 1] === ']') result = result.substr(0, result.length - 1)\n\t\treturn result\n\t} */\n\n\tgetDependentPaths(map: any) {\n\t\tif (this.type !== ExpType.Method && this.type !== ExpType.Constant) {\n\t\t\tmap[this.term] = true\n\t\t}\n\t\tthis.args.forEach(s => s.getDependentPaths(map))\n\t}\n\n\tget type(): ExpType {\n\t\tif (ContextMeta[this.prefix] !== undefined) return ExpType.ContextValue\n\t\t// for top-level context values (i.e. CompletionDate):\n\t\tif (!this.prefix && ContextMeta[this.termNoPrefix]) return ExpType.ContextValue\n\t\telse if (this.method !== undefined) return ExpType.Method\n\t\telse if (!isNaN(parseFloat(this.term))) return ExpType.Constant\n\t\telse if (/^['\"]/.test(this.term)) return ExpType.Literal\n\t\telse return ExpType.ControlValue\n\t}\n\n\tget classList(): string[] {\n\t\tlet classes = []\n\t\tswitch (this.type) {\n\t\t\tcase ExpType.Method:\n\t\t\t\tclasses.push('is-method')\n\t\t\t\tbreak\n\t\t\tcase ExpType.ControlValue:\n\t\t\tcase ExpType.ContextValue:\n\t\t\t\tclasses.push('is-value')\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tclasses.push('is-constant')\n\t\t}\n\t\tif (this.errors.length) classes.push('has-errors')\n\t\treturn classes\n\t}\n\n\tget method(): any {\n\t\treturn METHODS[this.term.toUpperCase()]\n\t}\n\n\tgetControlValueMap(cell: Cell): ValueMap {\n\t\tlet t = this.getControlTemplate(cell)\n\t\treturn t ? t.values : {}\n\t}\n\n\tgetControlTemplate(cell: Cell): Template {\n\t\treturn cell.context[this.prefix] || cell.template\n\t}\n\n\tget prefix(): string {\n\t\tconst prefixes = ['Report', 'Request', 'Response', ...Object.keys(ContextMeta)]\n\t\treturn prefixes.find(p => this.term.startsWith(p + '.'))\n\t}\n\n\tget termNoPrefix(): string {\n\t\treturn this.term.replace(this.prefix + '.', '')\n\t}\n\n\tvalidate() {\n\t\tthis.errors = []\n\t\tconst NotFoundError = `${this.term} was not found or is not bindable.`\n\t\tif (this.type === ExpType.Method) {\n\t\t\t// verify method has arguments\n\t\t\tif (this.args.length === 0) {\n\t\t\t\tthis.errors.push(`The ${this.term} function requires arguments.`)\n\t\t\t}\n\t\t\t// validate sub-expressions\n\t\t\tthis.args.forEach(a => a.validate())\n\t\t} else if (this.type === ExpType.ControlValue) {\n\t\t\t// verify term is not just a prefix\n\t\t\tif (this.prefix && !this.termNoPrefix) this.errors.push(NotFoundError)\n\t\t\tlet template = this.getControlTemplate(this.cell)\n\t\t\t// verify control is not binding to itself\n\t\t\tconst isBindingToSelf =\n\t\t\t\tthis.cell.path === this.termNoPrefix &&\n\t\t\t\t(!this.prefix || this.prefix.includes(this.cell.template.type))\n\t\t\tif (isBindingToSelf) {\n\t\t\t\tthis.errors.push(`${this.cell.path}: control binding cannot reference itself.`)\n\t\t\t\t// verify control path is valid\n\t\t\t} else if (this.termNoPrefix && !template.hasBindablePath(this.termNoPrefix)) {\n\t\t\t\tthis.errors.push(NotFoundError)\n\t\t\t\t// verify arguments are not passed to a control\n\t\t\t} else if (template.hasBindablePath(this.termNoPrefix) && this.args.length) {\n\t\t\t\tthis.errors.push(`${this.term} cannot have arguments.`)\n\t\t\t}\n\t\t} else if (this.type === ExpType.ContextValue) {\n\t\t\t// verify report value path is valid\n\t\t\tconst paths = this.term.split('.').filter(p => p !== '')\n\t\t\tconst contextValue = paths.reduce((a: any, i) => a.items[toPascalCase(i)], {\n\t\t\t\titems: ContextMeta,\n\t\t\t}) // resolve dot notation\n\t\t\tif (contextValue === undefined) this.errors.push(NotFoundError)\n\t\t\telse if (this.args.length) this.errors.push(`${this.term} cannot have arguments.`)\n\t\t} else if (this.args.length) {\n\t\t\t// verify arguments are not passed to a report value or constant\n\t\t\tthis.errors.push(`${this.term} cannot have arguments.`)\n\t\t}\n\t}\n\n\tgetValue(cell: Cell): any {\n\t\tfunction finalizeValue(value: any) {\n\t\t\tif (value instanceof Date) {\n\t\t\t\tlet showTime = value.getMilliseconds() > 0\n\t\t\t\tvalue = localizeDate(value.toString(), { showTime })\n\t\t\t} else if (isNaN(value)) {\n\t\t\t\tlet d = Date.parse(value)\n\t\t\t\tif (!isNaN(d)) value = localizeDate(value)\n\t\t\t}\n\t\t\treturn value\n\t\t}\n\n\t\tswitch (this.type) {\n\t\t\tcase ExpType.Method:\n\t\t\t\ttry {\n\t\t\t\t\tthis.calcErrors = []\n\t\t\t\t\treturn this.method.fn.bind(this)(this.args.map(s => s.getValue(cell)))\n\t\t\t\t} catch (err) {\n\t\t\t\t\tthis.calcErrors.push(err.message)\n\t\t\t\t\treturn undefined\n\t\t\t\t}\n\t\t\tcase ExpType.Constant:\n\t\t\tcase ExpType.Literal:\n\t\t\t\tif (/^['\"]/.test(this.term)) return this.term.replace(/^[\"|'](.+(?=[\"|']$))[\"|']$/, '$1')\n\t\t\t\treturn this.term\n\t\t\tcase ExpType.ContextValue:\n\t\t\t\treturn finalizeValue(cell.getContextValue(this.term))\n\t\t\tcase ExpType.ControlValue: {\n\t\t\t\tconst template = this.getControlTemplate(cell)\n\t\t\t\treturn finalizeValue(template.getValue(this.termNoPrefix))\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\treturn undefined\n\t\t}\n\t}\n}\n","module.exports = \"\"","var map = {\n\t\"./account-box-multiple.svg\": \"f95e\",\n\t\"./account-circle.svg\": \"f710\",\n\t\"./account-multiple.svg\": \"da87\",\n\t\"./account.svg\": \"a19f\",\n\t\"./angle.svg\": \"492b\",\n\t\"./arrow-all.svg\": \"74eb\",\n\t\"./arrow-bottom-left.svg\": \"9807\",\n\t\"./arrow-left.svg\": \"d704\",\n\t\"./arrow-right.svg\": \"9e2e\",\n\t\"./asia.svg\": \"e57a\",\n\t\"./backup-restore.svg\": \"1039\",\n\t\"./backward.svg\": \"ff34\",\n\t\"./bell.svg\": \"e358\",\n\t\"./book.svg\": \"f312\",\n\t\"./bookmark.svg\": \"d9e9\",\n\t\"./border-all.svg\": \"6833\",\n\t\"./border-none.svg\": \"98c9\",\n\t\"./border-sides.svg\": \"938e\",\n\t\"./brightness-6.svg\": \"38da\",\n\t\"./brightness-auto.svg\": \"a4d1\",\n\t\"./brightness-high.svg\": \"be19\",\n\t\"./brightness-low.svg\": \"1995\",\n\t\"./calendar-plus.svg\": \"f824\",\n\t\"./calendar.svg\": \"dc29\",\n\t\"./call-merge.svg\": \"b7a2\",\n\t\"./cancel.svg\": \"ddf2\",\n\t\"./caret-down-line.svg\": \"267f\",\n\t\"./caret-down.svg\": \"4c75\",\n\t\"./caret-square-o-down.svg\": \"80a8\",\n\t\"./caret-square-o-up.svg\": \"b6c3\",\n\t\"./caret-up.svg\": \"5f30\",\n\t\"./cellphone-android.svg\": \"d0c5\",\n\t\"./check-circle.svg\": \"bdcf\",\n\t\"./check.svg\": \"f22c\",\n\t\"./checkbox-blank-outline.svg\": \"c803\",\n\t\"./checkbox-marked.svg\": \"ecf9\",\n\t\"./checkbox-multiple-marked.svg\": \"3b0a\",\n\t\"./chevron-left.svg\": \"f1a4\",\n\t\"./chevron-right.svg\": \"1ca1\",\n\t\"./circle-check.svg\": \"732c\",\n\t\"./clock-o.svg\": \"5851\",\n\t\"./close-box-multiple-outline.svg\": \"b884\",\n\t\"./close.svg\": \"d8664\",\n\t\"./cloud-download.svg\": \"d5ef\",\n\t\"./cloud-sync.svg\": \"da99\",\n\t\"./cloud-upload.svg\": \"3b46\",\n\t\"./cloud.svg\": \"f21c\",\n\t\"./comment-medical.svg\": \"9645\",\n\t\"./comment-solid.svg\": \"e155\",\n\t\"./content-paste.svg\": \"f130\",\n\t\"./copy.svg\": \"0490\",\n\t\"./crosshairs.svg\": \"1899\",\n\t\"./cube-outline.svg\": \"0e6a\",\n\t\"./database-search.svg\": \"8e6f\",\n\t\"./delete.svg\": \"d0c6\",\n\t\"./dock-bottom.svg\": \"acc8\",\n\t\"./dock-left.svg\": \"0a2e\",\n\t\"./domain.svg\": \"414e\",\n\t\"./dots-horizontal.svg\": \"c7ba\",\n\t\"./drag-vertical.svg\": \"772f\",\n\t\"./drawing.svg\": \"67e3\",\n\t\"./edit.svg\": \"c7e6\",\n\t\"./email-check.svg\": \"e2b4\",\n\t\"./email.svg\": \"f954\",\n\t\"./eraser.svg\": \"9f97\",\n\t\"./exclamation-circle.svg\": \"325c\",\n\t\"./exclamation-triangle.svg\": \"9530\",\n\t\"./external-link.svg\": \"6af1\",\n\t\"./eye-plus-outline.svg\": \"389e\",\n\t\"./eye-slash.svg\": \"82a1\",\n\t\"./eye.svg\": \"b476\",\n\t\"./eyedropper-variant.svg\": \"3b61\",\n\t\"./fast-backward.svg\": \"304b\",\n\t\"./fast-forward.svg\": \"8a70\",\n\t\"./file-archive-o.svg\": \"949f\",\n\t\"./file-audio-o.svg\": \"1f8b\",\n\t\"./file-code-o.svg\": \"54c0\",\n\t\"./file-document-box-outline.svg\": \"4230\",\n\t\"./file-excel-o.svg\": \"78ed\",\n\t\"./file-image-o.svg\": \"6e66\",\n\t\"./file-movie-o.svg\": \"2e6d\",\n\t\"./file-multiple.svg\": \"7f9a\",\n\t\"./file-o.svg\": \"9f9f\",\n\t\"./file-pdf-o.svg\": \"e96b\",\n\t\"./file-powerpoint-o.svg\": \"1712\",\n\t\"./file-text-o.svg\": \"d2b4\",\n\t\"./file-upload.svg\": \"dca0\",\n\t\"./file-word-o.svg\": \"ba6c\",\n\t\"./flip-horizontal2.svg\": \"939b\",\n\t\"./flip-vertical.svg\": \"7339\",\n\t\"./floppy-o.svg\": \"df1b\",\n\t\"./folder-dcm.svg\": \"39dc\",\n\t\"./folder-open-outline.svg\": \"2e42\",\n\t\"./folder-outline.svg\": \"daaa\",\n\t\"./folder-upload.svg\": \"5b8f\",\n\t\"./font.svg\": \"6e40\",\n\t\"./format-align-bottom.svg\": \"bddc\",\n\t\"./format-align-center.svg\": \"7469\",\n\t\"./format-align-justify.svg\": \"de28\",\n\t\"./format-align-left.svg\": \"82a9\",\n\t\"./format-align-middle.svg\": \"60dd\",\n\t\"./format-align-right.svg\": \"1e94\",\n\t\"./format-align-stretch.svg\": \"b24a\",\n\t\"./format-align-top.svg\": \"9676\",\n\t\"./format-font.svg\": \"6baa\",\n\t\"./format-page-break.svg\": \"4a78\",\n\t\"./format-text.svg\": \"8bfd\",\n\t\"./forward.svg\": \"728d\",\n\t\"./fullscreen-alt.svg\": \"3796\",\n\t\"./fullscreen-exit-alt.svg\": \"05f3\",\n\t\"./fullscreen.svg\": \"f02a\",\n\t\"./fullscreen_exit.svg\": \"0f39\",\n\t\"./function.svg\": \"c14d\",\n\t\"./gradient.svg\": \"0ff0\",\n\t\"./heading.svg\": \"c546\",\n\t\"./heartbeat.svg\": \"49b1\",\n\t\"./help-circle.svg\": \"5a63\",\n\t\"./hip-dysplasia.svg\": \"3c55\",\n\t\"./home.svg\": \"83e0\",\n\t\"./image.svg\": \"b786\",\n\t\"./images.svg\": \"e96d\",\n\t\"./inbox-download.svg\": \"822a\",\n\t\"./info-circle.svg\": \"b686\",\n\t\"./invert-colors.svg\": \"2668\",\n\t\"./keyboard-outline.svg\": \"1754\",\n\t\"./laptop.svg\": \"e171\",\n\t\"./layers.svg\": \"bd05\",\n\t\"./layout-1-2x2.svg\": \"d820\",\n\t\"./layout-1x1.svg\": \"9f0e\",\n\t\"./layout-1x2.svg\": \"1453\",\n\t\"./layout-1x3.svg\": \"7416\",\n\t\"./layout-2-1x2.svg\": \"a24f\",\n\t\"./layout-2x1-2.svg\": \"7ff4\",\n\t\"./layout-2x1.svg\": \"b6d2\",\n\t\"./layout-2x2-1.svg\": \"213b\",\n\t\"./layout-2x2.svg\": \"5d30\",\n\t\"./layout-2x3.svg\": \"d7dd\",\n\t\"./layout-3x1.svg\": \"7f4c\",\n\t\"./layout-3x2.svg\": \"18a0\",\n\t\"./layout-3x3.svg\": \"3736\",\n\t\"./layout-mpr-1x3.svg\": \"8024\",\n\t\"./layout-mpr-3x1.svg\": \"367d\",\n\t\"./layout.svg\": \"6f9f\",\n\t\"./life-ring.svg\": \"232c\",\n\t\"./link.svg\": \"1fa5\",\n\t\"./link_auto.svg\": \"c253\",\n\t\"./link_manual.svg\": \"3764\",\n\t\"./link_off.svg\": \"3cdc\",\n\t\"./lock.svg\": \"1c8f\",\n\t\"./magnify.svg\": \"6ff3\",\n\t\"./menu.svg\": \"c013\",\n\t\"./minus.svg\": \"e747\",\n\t\"./moon.svg\": \"0756\",\n\t\"./os-apple.svg\": \"678e\",\n\t\"./os-windows.svg\": \"06e2\",\n\t\"./paper-plane.svg\": \"8fd8\",\n\t\"./paperclip.svg\": \"6d35\",\n\t\"./paragraph.svg\": \"61ce\",\n\t\"./pause.svg\": \"16b2\",\n\t\"./pencil.svg\": \"2b69\",\n\t\"./pennhip.svg\": \"ef44\",\n\t\"./play-box-outline.svg\": \"066e\",\n\t\"./play.svg\": \"40c8\",\n\t\"./plus-circle-outline.svg\": \"4e59\",\n\t\"./plus.svg\": \"521e\",\n\t\"./print.svg\": \"df1c\",\n\t\"./question-circle.svg\": \"98e0\",\n\t\"./radiobox-marked.svg\": \"8a4b\",\n\t\"./redo.svg\": \"c6b3\",\n\t\"./repeat2.svg\": \"27cb\",\n\t\"./roll-tool.svg\": \"ee32\",\n\t\"./rotate-left2.svg\": \"cc988\",\n\t\"./rotate-right.svg\": \"4a0f\",\n\t\"./rotate-tool.svg\": \"637f\",\n\t\"./ruler.svg\": \"b4d9\",\n\t\"./save-copy.svg\": \"13ca\",\n\t\"./select-place.svg\": \"8718\",\n\t\"./server-network.svg\": \"e331\",\n\t\"./settings.svg\": \"8462\",\n\t\"./sign-out.svg\": \"8a39\",\n\t\"./signalpet.svg\": \"6916\",\n\t\"./signature.svg\": \"43fc\",\n\t\"./skip-next.svg\": \"8618\",\n\t\"./skip-previous.svg\": \"9fcc\",\n\t\"./spinner-circle-med.svg\": \"1c5c\",\n\t\"./spinner-circle-thick.svg\": \"4b69\",\n\t\"./spinner-circle-thin.svg\": \"35f1\",\n\t\"./spinner.svg\": \"ef19\",\n\t\"./star-hollow.svg\": \"a93e\",\n\t\"./star.svg\": \"a956\",\n\t\"./step-backward.svg\": \"9852\",\n\t\"./step-forward.svg\": \"d632\",\n\t\"./stop-circle.svg\": \"3655\",\n\t\"./sun.svg\": \"6337\",\n\t\"./switch.svg\": \"07a5\",\n\t\"./table-column-plus-after.svg\": \"84f1\",\n\t\"./table-row-plus-after.svg\": \"8f51\",\n\t\"./table-solid.svg\": \"ab8b\",\n\t\"./tag-remove.svg\": \"d0e4\",\n\t\"./tag.svg\": \"a921\",\n\t\"./telemedicine-icon.svg\": \"be51\",\n\t\"./text-search.svg\": \"7335\",\n\t\"./textbox.svg\": \"6668\",\n\t\"./tplo.svg\": \"28ae\",\n\t\"./tta.svg\": \"b468\",\n\t\"./tune.svg\": \"5fd8\",\n\t\"./undo.svg\": \"cf26\",\n\t\"./user-md.svg\": \"066a\",\n\t\"./vector-circle-variant.svg\": \"5caf\",\n\t\"./vector-ellipse.svg\": \"424c\",\n\t\"./vector-line.svg\": \"4b34\",\n\t\"./vector-rectangle.svg\": \"4a7e\",\n\t\"./vertebral-heart.svg\": \"3c63\",\n\t\"./vpop.svg\": \"c154\",\n\t\"./window-maximize.svg\": \"5edb\",\n\t\"./world.svg\": \"fec9\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"957c\";","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!./Dropdown.vue?vue&type=style&index=0&id=b45bae02&prod&lang=scss\"","module.exports = \"\"","module.exports = \"\"","function setItem(key, value) {\n\ttry {\n\t\tlocalStorage.setItem(key, value)\n\t} catch (err) {\n\t\tsessionStorage.setItem(key, value)\n\t}\n}\n\nfunction removeItem(key) {\n\tsessionStorage.removeItem(key)\n\ttry {\n\t\tlocalStorage.removeItem(key)\n\t} catch (err) {}\n}\n\nfunction getItem(key) {\n\ttry {\n\t\tconst item = localStorage.getItem(key)\n\t\tif (item === null) return sessionStorage.getItem(key)\n\t\treturn item\n\t} catch (err) {\n\t\treturn sessionStorage.getItem(key)\n\t}\n}\n\nfunction getTokenUseCount() {\n\treturn (getTokenUses() || []).length\n}\n\nfunction addTokenUse() {\n\t// We cannot simply set a tokenUseCount in localStorage because when multiple windows are opened within\n\t// the same second, they will all set the tokenUseCount to the same value.\n\t// Instead, we'll add a unique key to localStorage for every window to prevent collisions.\n\tsetItem('token-use-' + (Date.now() + Math.floor(Math.random() * 10000)), '')\n}\n\nfunction removeTokenUse() {\n\tconst tokenUses = getTokenUses()\n\tif (tokenUses.length) removeItem(tokenUses[0])\n}\n\nfunction clearTokenUses() {\n\tgetTokenUses().forEach(removeItem)\n}\n\nfunction getTokenUses() {\n\t// Count the number of keys in storage that are prefixed with \"token-use\"\n\tconst getTokenUseKeys = storage => Object.keys(storage).filter(k => k.startsWith('token-use'))\n\ttry {\n\t\treturn getTokenUseKeys(localStorage)\n\t} catch (err) {\n\t\treturn getTokenUseKeys(sessionStorage)\n\t}\n}\n\nfunction isLocalStorageSupported() {\n\ttry {\n\t\tlocalStorage.setItem('test', 'test')\n\t\tlocalStorage.removeItem('test')\n\t\treturn true\n\t} catch (err) {\n\t\treturn false\n\t}\n}\n\nexport default {\n\tsetItem,\n\tremoveItem,\n\tgetItem,\n\tgetTokenUseCount,\n\taddTokenUse,\n\tremoveTokenUse,\n\tclearTokenUses,\n\tisLocalStorageSupported,\n}\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","/** ********** GLOBAL EVENT BUS ****************/\nimport Vue from 'vue'\n\nconst _eventBus = new Vue()\nconst _eventTypes = {\n\tREPORT_IMAGE_COMMENT: 'report-image-comment',\n\tREPORT_SAVE: 'report-save',\n\tREPORT_COMPLETED: 'report-completed',\n\tRESIZE: 'resize',\n\tLOGOUT: 'logout',\n\tIMAGE_CHANGE: 'image-change',\n\tCLEAR_ALL_DATA: 'clear-all-data',\n\tLOGIN: 'login',\n\tRELOAD: 'reload',\n\tCLOSE: 'close',\n\tREFRESH_REPORT: 'refresh-report',\n\tFETCH_LAYOUT_PRESET: 'fetch-layout-preset',\n\tFETCH_LEVEL_PRESETS: 'fetch-level-presets',\n\tVIEWER_CLOSED: 'viewer-closed',\n\tVIEWER_TOOLSTATE_SEND: 'sendExternalToolState',\n\tVIEWER_TOOLSTATE_UPDATE: 'updateExternalToolState',\n\tVUEX_STATE_INIT_REQ: 'vuex-state-init-req',\n\tVUEX_STATE_INIT_RES: 'vuex-state-init-res',\n\tVUEX_STATE_UPDATE: 'state-update',\n\tVUEX_ACTION: 'vuex-action',\n\tVUEX_MUTATION: 'vuex-mutation',\n\tANNOTATION_CLICK: 'annotation-click',\n\tANNOTATIONS_CLEARED: 'annotations-cleared',\n\tMPR_ANNOTATION_CLICK: 'mpr-annotation-click',\n\tMPR_ANNOTATION_REMOVED: 'mpr-annotation-removed',\n\tMPR_ANNOTATIONS_CLEARED: 'mpr-annotations-cleared',\n}\n\n// Global resize event with a debounce\nlet resizeDebounce\n\n// HACK: iOS 13.4 and 13.6 fire storage events in the same window that changed storage, so we attempt\n// to ignore these by ignoring events that come in with the same event type in a short amount of time\nlet lastBroadcast = {\n\ttime: null,\n\tevent: null,\n}\nconst IGNORE_THRESHOLD = 50 // same events as the lastBroadcast.event will be ignored if received within this number of ms\n\nwindow.addEventListener('resize', () => {\n\tclearTimeout(resizeDebounce)\n\tresizeDebounce = setTimeout(() => {\n\t\teventBus.post(eventBus.type.RESIZE)\n\t}, 100)\n})\n\n/**\n * The storage event fires when a storage area has been changed in the context of another document.\n * Responds to storage events by either:\n * - placing stringified sessionStorage into localStorage for a requesting tab,\n * - restoring sessionStorage from a responding tab's stringified value, or\n * - clearing sessionStorage\n *\n * @param evt - the storage event, which has a key and value\n */\nwindow.addEventListener('storage', (evt: StorageEvent) => {\n\tif (!evt.key || evt.newValue === null) return\n\tif (lastBroadcast.event === evt.key && Date.now() - lastBroadcast.time < IGNORE_THRESHOLD) return\n\tconst isLogout = evt.key === eventBus.type.LOGOUT && window.opener !== null\n\tconst isReload = evt.key === eventBus.type.RELOAD\n\tconst isEvent = Object.values(_eventTypes).includes(evt.key)\n\n\tif (isLogout) {\n\t\twindow.close()\n\t} else if (isReload) {\n // @ts-ignore\n\t\twindow.location.reload(evt.newValue === 'true')\n\t} else if (isEvent) {\n\t\tlet value\n\t\ttry {\n\t\t\tvalue = JSON.parse(evt.newValue)\n\t\t} catch (err) {\n\t\t\t// do not set value if evt.newValue is not valid JSON\n\t\t} finally {\n\t\t\teventBus.post(evt.key, value)\n\t\t}\n\t}\n})\n\nexport const eventBus = {\n\ttype: _eventTypes,\n\t/**\n\t * Emit an event just to this window.\n\t */\n\tpost(event: string, ...args) {\n\t\t_eventBus.$emit(event, ...args)\n\t},\n\t/**\n\t * Broadcast an event to all other open windows/tabs, using the localStorage `storage` event.\n\t * `arg` will be JSON.stringified, so only primative values can be sent.\n\t */\n\tbroadcast(event: string, arg: any = true) {\n\t\ttry {\n\t\t\tlastBroadcast.time = Date.now()\n\t\t\tlastBroadcast.event = event\n\t\t\tlocalStorage.setItem(event, JSON.stringify(arg))\n\t\t\tlocalStorage.removeItem(event)\n\t\t} catch (err) {\n\t\t\t// localStorage not supported\n\t\t}\n\t},\n\ton(event: string, cb: Function) {\n\t\t_eventBus.$on(event, cb)\n\t},\n\toff(event: string, cb: Function) {\n\t\t_eventBus.$off(event, cb)\n\t},\n\tonce(event: string, cb: Function) {\n\t\t_eventBus.$once(event, cb)\n\t},\n}\n","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!./LoadingSpinner.vue?vue&type=style&index=0&id=df0f793e&prod&lang=scss&scoped=true\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.volumeData)?_c('div',{staticClass:\"viewer2d\",class:{ active: _vm.isActive }},[_c('div',{directives:[{name:\"dblclick\",rawName:\"v-dblclick\",value:(_vm.onDblClick),expression:\"onDblClick\"}],ref:\"container\",staticClass:\"container2d\",on:{\"mousedown\":_vm.onMouseDown,\"touchstart\":_vm.onTouchStart,\"click\":_vm.onClick}},[(_vm.renderer)?_c('annotation-manager',{ref:\"annotationManager\",attrs:{\"width\":_vm.width,\"height\":_vm.height,\"active\":_vm.isActive,\"renderer\":_vm.renderer,\"volume-data\":_vm.volumeData,\"slice\":_vm.currentSlice,\"slice-thickness\":_vm.sliceThickness,\"rotation\":_vm.viewRotation}}):_vm._e()],1),(_vm.showAxis)?_c('m-p-r-interactor',{attrs:{\"width\":_vm.width,\"height\":_vm.height,\"x-axis\":_vm.xAxis,\"y-axis\":_vm.yAxis,\"flip-h\":_vm.flipH,\"flip-v\":_vm.flipV,\"view-rotation\":_vm.viewRotation,\"point\":_vm.screenCoordSliceIntersection,\"should-animate\":_vm.shouldAnimate},on:{\"rotate\":_vm.onRotate,\"thickness\":_vm.onThickness,\"moveaxis\":_vm.onMoveAxis},nativeOn:{\"wheel\":function($event){$event.preventDefault();return _vm.onWheel($event)}}}):_vm._e(),_c('viewport-overlay',{attrs:{\"active\":_vm.isActive,\"color\":_vm.viewColor,\"show-overlay-text\":_vm.showOverlayText,\"show-image-orientation-markers\":_vm.showImageOrientationMarkers},on:{\"toggle-fullscreen\":_vm.onToggleFullscreen},scopedSlots:_vm._u([{key:\"top-left\",fn:function(){return [_c('ul',[_c('li',[_vm._v(\"Slice: \"+_vm._s(_vm.stackSliceDisplay))]),_c('li',[_vm._v(\"View: \"+_vm._s(_vm.overlayInformation.fullName || _vm.overlayInformation.simpleName))])])]},proxy:true},{key:\"top-right\",fn:function(){return [_c('ul',[_c('li',[_vm._v(\"Name: \"+_vm._s(_vm.overlayInformation.patientName))]),_c('li',[_vm._v(\"Id: \"+_vm._s(_vm.overlayInformation.patientId))]),_c('li',[_vm._v(\"Owner: \"+_vm._s(_vm.overlayInformation.ownerName))]),_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\\tInstitution:\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.overlayInformation.institutionName)+\"\\n\\t\\t\\t\\t\")]),_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\\tStudy Date:\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(_vm.overlayInformation.studyDate,{ forceUTC: false }))+\"\\n\\t\\t\\t\\t\")]),(_vm.overlayInformation.acquisitionTime)?_c('li',[_vm._v(\"\\n\\t\\t\\t\\t\\tAcq Time: \"+_vm._s(_vm._f(\"localizeDate\")(_vm.overlayInformation.acquisitionTime,{ forceUTC: false }))+\"\\n\\t\\t\\t\\t\")]):_vm._e()])]},proxy:true},{key:\"bottom-left\",fn:function(){return [_c('ul',[(_vm.sliceThickness >= 1)?_c('li',[_vm._v(\"Slice Thickness: \"+_vm._s(_vm._f(\"formatNumber\")(_vm._f(\"round\")(_vm.sliceThickness)))+\" mm\")]):_vm._e(),_c('li',[_vm._v(_vm._s(_vm.wwwc))])])]},proxy:true},{key:\"bottom-right\",fn:function(){return [_vm._v(\"\\n\\t\\t\\tRotation Angle: \"+_vm._s(_vm.viewRotation)+\"°\\n\\t\\t\")]},proxy:true},{key:\"top\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.compass.top)+\"\\n\\t\\t\")]},proxy:true},{key:\"right\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.compass.right)+\"\\n\\t\\t\")]},proxy:true},{key:\"bottom\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.compass.bottom)+\"\\n\\t\\t\")]},proxy:true},{key:\"left\",fn:function(){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.compass.left)+\"\\n\\t\\t\")]},proxy:true}],null,false,2680125953)})],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// TODO: Update to a newer version of VTK to get this feature, once https://github.com/Kitware/vtk-js/pull/1361 is merged\n\nimport macro from 'vtk.js/Sources/macro'\nimport vtkCompositeCameraManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeCameraManipulator'\nimport vtkCompositeMouseManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeMouseManipulator'\n\n// ----------------------------------------------------------------------------\n// vtkMouseCameraTrackballZoomManipulator methods\n// ----------------------------------------------------------------------------\n\nfunction vtkMouseCameraTrackballZoomManipulator(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkMouseCameraTrackballZoomManipulator')\n\n\tpublicAPI.onButtonDown = (interactor, renderer, position) => {\n\t\tmodel.previousPosition = position\n\t\tconst size = interactor.getView().getSize()\n\n\t\tconst camera = renderer.getActiveCamera()\n\t\tconst direction = model.flipDirection ? -1 : 1\n\t\tif (camera.getParallelProjection()) {\n\t\t\tmodel.zoomScale = (1.5 / size[1]) * direction\n\t\t} else {\n\t\t\tconst range = camera.getClippingRange()\n\t\t\tmodel.zoomScale = 1.5 * (range[1] / size[1]) * direction\n\t\t}\n\t}\n\n\tpublicAPI.onMouseMove = (interactor, renderer, position) => {\n\t\tif (!position) {\n\t\t\treturn\n\t\t}\n\n\t\tconst dy = model.previousPosition.y - position.y\n\t\tconst camera = renderer.getActiveCamera()\n\n\t\tif (camera.getParallelProjection()) {\n\t\t\tconst k = dy * model.zoomScale\n\t\t\tcamera.setParallelScale((1.0 - k) * camera.getParallelScale())\n\t\t} else {\n\t\t\tconst cameraPos = camera.getPosition()\n\t\t\tconst cameraFp = camera.getFocalPoint()\n\t\t\tconst norm = camera.getDirectionOfProjection()\n\t\t\tconst k = dy * model.zoomScale\n\n\t\t\tlet tmp = k * norm[0]\n\t\t\tcameraPos[0] += tmp\n\t\t\tcameraFp[0] += tmp\n\n\t\t\ttmp = k * norm[1]\n\t\t\tcameraPos[1] += tmp\n\t\t\tcameraFp[1] += tmp\n\n\t\t\ttmp = k * norm[2]\n\t\t\tcameraPos[2] += tmp\n\t\t\tcameraFp[2] += tmp\n\n\t\t\tif (!camera.getFreezeFocalPoint()) {\n\t\t\t\tcamera.setFocalPoint(cameraFp[0], cameraFp[1], cameraFp[2])\n\t\t\t}\n\n\t\t\tcamera.setPosition(cameraPos[0], cameraPos[1], cameraPos[2])\n\t\t\trenderer.resetCameraClippingRange()\n\t\t}\n\n\t\tif (interactor.getLightFollowCamera()) {\n\t\t\trenderer.updateLightsGeometryToFollowCamera()\n\t\t}\n\n\t\tmodel.previousPosition = position\n\t}\n\n\tpublicAPI.onScroll = (interactor, renderer, delta) => {\n\t\tif (!delta) {\n\t\t\treturn\n\t\t}\n\n\t\tconst camera = renderer.getActiveCamera()\n\n\t\tconst dyf = 1 - delta / 10\n\n\t\tif (camera.getParallelProjection()) {\n\t\t\tcamera.setParallelScale(camera.getParallelScale() / dyf)\n\t\t} else {\n\t\t\tcamera.dolly(dyf)\n\t\t\trenderer.resetCameraClippingRange()\n\t\t}\n\n\t\tif (interactor.getLightFollowCamera()) {\n\t\t\trenderer.updateLightsGeometryToFollowCamera()\n\t\t}\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\tzoomScale: 0.0,\n\tflipDirection: false,\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tmacro.obj(publicAPI, model)\n\tvtkCompositeMouseManipulator.extend(publicAPI, model, initialValues)\n\tvtkCompositeCameraManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['flipDirection'])\n\n\t// Object specific methods\n\tvtkMouseCameraTrackballZoomManipulator(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkMouseCameraTrackballZoomManipulator')\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend }\n","import macro from 'vtk.js/Sources/macro'\nimport vtkCompositeCameraManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeCameraManipulator'\nimport vtkCompositeMouseManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeMouseManipulator'\nimport * as vtkMath from 'vtk.js/Sources/Common/Core/Math'\n\n// ----------------------------------------------------------------------------\n// vtkMouseCameraTrackballPanManipulator methods\n// ----------------------------------------------------------------------------\n\nfunction vtkMouseCameraTrackballPanManipulator(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkMouseCameraTrackballPanManipulator')\n\n\tpublicAPI.onButtonDown = (interactor, renderer, position) => {\n\t\tmodel.previousPosition = position\n\t}\n\n\tpublicAPI.onMouseMove = (interactor, renderer, position) => {\n\t\tif (!position) {\n\t\t\treturn\n\t\t}\n\n\t\tconst pos = position\n\t\tconst lastPos = model.previousPosition\n\t\tmodel.previousPosition = position\n\n\t\tconst camera = renderer.getActiveCamera()\n\t\tconst camPos = camera.getPosition()\n\t\tconst fp = camera.getFocalPoint()\n\n\t\tif (camera.getParallelProjection()) {\n\t\t\tcamera.orthogonalizeViewUp()\n\n\t\t\tconst up = camera.getViewUp()\n\t\t\tconst vpn = camera.getViewPlaneNormal()\n\n\t\t\tconst right = [0, 0, 0]\n\n\t\t\tvtkMath.cross(vpn, up, right)\n\n\t\t\t// These are different because y is flipped.\n\t\t\tconst height = interactor.getView().getSize()[1]\n\t\t\tlet dx = (pos.x - lastPos.x) / height\n\t\t\tlet dy = (lastPos.y - pos.y) / height\n\n\t\t\tconst scale = camera.getParallelScale()\n\t\t\tdx *= scale * 2.0\n\t\t\tdy *= scale * 2.0\n\n\t\t\tlet tmp = right[0] * dx + up[0] * dy\n\t\t\tcamPos[0] += tmp\n\t\t\tfp[0] += tmp\n\t\t\ttmp = right[1] * dx + up[1] * dy\n\t\t\tcamPos[1] += tmp\n\t\t\tfp[1] += tmp\n\t\t\ttmp = right[2] * dx + up[2] * dy\n\t\t\tcamPos[2] += tmp\n\t\t\tfp[2] += tmp\n\t\t\tcamera.setPosition(camPos[0], camPos[1], camPos[2])\n\t\t\tcamera.setFocalPoint(fp[0], fp[1], fp[2])\n\t\t} else {\n\t\t\tconst { center } = model\n\t\t\tconst style = interactor.getInteractorStyle()\n\t\t\tconst focalDepth = style.computeWorldToDisplay(renderer, center[0], center[1], center[2])[2]\n\t\t\tconst worldPoint = style.computeDisplayToWorld(renderer, pos.x, pos.y, focalDepth)\n\t\t\tconst lastWorldPoint = style.computeDisplayToWorld(renderer, lastPos.x, lastPos.y, focalDepth)\n\n\t\t\tconst newCamPos = [\n\t\t\t\tcamPos[0] + (lastWorldPoint[0] - worldPoint[0]),\n\t\t\t\tcamPos[1] + (lastWorldPoint[1] - worldPoint[1]),\n\t\t\t\tcamPos[2] + (lastWorldPoint[2] - worldPoint[2]),\n\t\t\t]\n\n\t\t\tconst newFp = [\n\t\t\t\tfp[0] + (lastWorldPoint[0] - worldPoint[0]),\n\t\t\t\tfp[1] + (lastWorldPoint[1] - worldPoint[1]),\n\t\t\t\tfp[2] + (lastWorldPoint[2] - worldPoint[2]),\n\t\t\t]\n\n\t\t\tcamera.setPosition(newCamPos[0], newCamPos[1], newCamPos[2])\n\t\t\tcamera.setFocalPoint(newFp[0], newFp[1], newFp[2])\n\t\t}\n\n\t\t// 99% the same as source VTK.js, modifying only this logic, defaulting to not resetting\n\t\tif (model.resetClippingOnMove) renderer.resetCameraClippingRange()\n\n\t\tif (interactor.getLightFollowCamera()) {\n\t\t\trenderer.updateLightsGeometryToFollowCamera()\n\t\t}\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\tresetClippingOnMove: false,\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tmacro.obj(publicAPI, model)\n\tvtkCompositeCameraManipulator.extend(publicAPI, model, initialValues)\n\tvtkCompositeMouseManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['resetClippingOnMove'])\n\n\t// Object specific methods\n\tvtkMouseCameraTrackballPanManipulator(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkMouseCameraTrackballPanManipulator')\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend }\n","export function toWindowLevel(low, high) {\n const windowWidth = Math.abs(low - high);\n const windowCenter = low + windowWidth / 2;\n\n return { windowWidth, windowCenter };\n}\n\nexport function toLowHighRange(windowWidth, windowCenter) {\n const lower = windowCenter - windowWidth / 2.0;\n const upper = windowCenter + windowWidth / 2.0;\n\n return { lower, upper };\n}\n","export default function clamp(value, min, max) {\n\tif (value < min) {\n\t\treturn min\n\t}\n\tif (value > max) {\n\t\treturn max\n\t}\n\treturn value\n}\n","/**\n * Based on the vtk.js's MPR Slice interactor Style, but with improvements.\n */\nimport macro from 'vtk.js/Sources/macro'\nimport vtkMath from 'vtk.js/Sources/Common/Core/Math'\nimport vtkMatrixBuilder from 'vtk.js/Sources/Common/Core/MatrixBuilder'\nimport vtkInteractorStyleManipulator from 'vtk.js/Sources/Interaction/Style/InteractorStyleManipulator'\nimport vtkMouseRangeManipulator from 'vtk.js/Sources/Interaction/Manipulators/MouseRangeManipulator'\n\nimport { toWindowLevel, toLowHighRange } from '../lib/windowLevelRangeConverter'\nimport clamp from '../lib/math/clamp'\n\n// ----------------------------------------------------------------------------\n// vtkInteractorStyleMPRSlice methods\n// ----------------------------------------------------------------------------\n\nfunction vtkInteractorStyleMPRSlice(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkInteractorStyleMPRSlice')\n\n\tmodel.scrollManipulator = vtkMouseRangeManipulator.newInstance({\n\t\tscrollEnabled: true,\n\t\tdragEnabled: false,\n\t})\n\n\t// cache for sliceRange\n\tconst cache = {\n\t\tsliceNormal: [0, 0, 0],\n\t\tsliceRange: [0, 0],\n\t\tsliceCenter: [], // intentionally left empty for first-run check\n\t}\n\n\tpublicAPI.updateScrollManipulator = () => {\n\t\tconst range = publicAPI.getSliceRange()\n\t\tmodel.scrollManipulator.removeScrollListener()\n\t\t// The Scroll listener has min, max, step, and getValue setValue as params.\n\t\t// Internally, it checks that the result of the GET has changed, and only calls SET if it is new.\n\t\tmodel.scrollManipulator.setScrollListener(\n\t\t\trange[0],\n\t\t\trange[1],\n\t\t\t1,\n\t\t\tpublicAPI.getSlice,\n\t\t\tpublicAPI.scrollToSlice\n\t\t)\n\t}\n\n\tfunction setManipulators() {\n\t\tpublicAPI.removeAllMouseManipulators()\n\t\tpublicAPI.addMouseManipulator(model.scrollManipulator)\n\t\tpublicAPI.updateScrollManipulator()\n\t}\n\n\tpublicAPI.init = () => {\n\t\tsetManipulators()\n\t}\n\n\tlet cameraSub = null\n\tlet interactorSub = null\n\tconst superSetInteractor = publicAPI.setInteractor\n\tpublicAPI.setInteractor = interactor => {\n\t\tsuperSetInteractor(interactor)\n\t\tif (cameraSub) {\n\t\t\tcameraSub.unsubscribe()\n\t\t\tcameraSub = null\n\t\t}\n\n\t\tif (interactorSub) {\n\t\t\tinteractorSub.unsubscribe()\n\t\t\tinteractorSub = null\n\t\t}\n\n\t\tif (interactor) {\n\t\t\tconst renderer = interactor.getCurrentRenderer()\n\t\t\tconst camera = renderer.getActiveCamera()\n\n\t\t\tcameraSub = camera.onModified(() => {\n\t\t\t\tpublicAPI.updateScrollManipulator()\n\t\t\t\tpublicAPI.modified()\n\t\t\t})\n\n\t\t\t// Always reset the camera clipping to ensure it doesn't get moved\n\t\t\tinteractorSub = interactor.onAnimation(() => {\n\t\t\t\tcamera.setThicknessFromFocalPoint(model.slabThickness)\n\t\t\t})\n\t\t}\n\t}\n\n\tpublicAPI.setVolumeActor = volume => {\n\t\tmodel.volumeActor = volume\n\t\tif (model.interactor) {\n\t\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\t\tconst camera = renderer.getActiveCamera()\n\t\t\tif (volume) {\n\t\t\t\tpublicAPI.updateScrollManipulator()\n\t\t\t\t// prevent zoom manipulator from messing with our focal point\n\t\t\t\tcamera.setFreezeFocalPoint(true)\n\n\t\t\t\t// NOTE: Disabling this because it makes it more difficult to switch\n\t\t\t\t// interactor styles. Need to find a better way to do this!\n\t\t\t\t// publicAPI.setSliceNormal(...publicAPI.getSliceNormal());\n\t\t\t} else {\n\t\t\t\tcamera.setFreezeFocalPoint(false)\n\t\t\t}\n\t\t}\n\t}\n\n\tpublicAPI.getSlice = () => {\n\t\tif (model.interactor) {\n\t\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\t\tconst camera = renderer.getActiveCamera()\n\t\t\tconst sliceNormal = publicAPI.getSliceNormal()\n\t\t\tconst fp = camera.getFocalPoint()\n\n\t\t\t// Get rotation matrix from normal to +X (since bounds is aligned to XYZ)\n\t\t\tconst transform = vtkMatrixBuilder\n\t\t\t\t.buildFromDegree()\n\t\t\t\t.rotateFromDirections(sliceNormal, [1, 0, 0])\n\t\t\ttransform.apply(fp)\n\n\t\t\treturn fp[0]\n\t\t}\n\t\tif (model.debug) console.log('getslice called without interactor set')\n\t\treturn 0\n\t}\n\t// Only run the onScroll callback if called from scrolling,\n\t// preventing manual setSlice calls from triggering the CB.\n\tpublicAPI.scrollToSlice = slice => {\n\t\t// FIXME: the offset here is used only when scrollToSlice is called, which hack-fixes an issue with this offset logic\n\t\t// Which is that if the camera position is changed outside of the Interactor,\n\t\t// and is no longer coplaner with the sliceNormal and cached sliceCenter, the offset is wildly incorrect.\n\t\t// Calculating in scrollToSlice only reduces the liklihood of using a bad offset.\n\t\t// Should ideally check for coplaner / convert to coplaner point before using.\n\t\tlet cameraOffset = [0, 0, 0]\n\t\tif (cache.sliceCenter.length) {\n\t\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\t\tconst oldPos = renderer.getActiveCamera().getFocalPoint()\n\t\t\tvtkMath.subtract(oldPos, cache.sliceCenter, cameraOffset)\n\t\t}\n\t\tconst slicePoint = publicAPI.setSlice(slice, cameraOffset)\n\t\t// run Callback\n\t\tconst onScroll = publicAPI.getOnScroll()\n\t\tif (onScroll) onScroll(slicePoint)\n\t}\n\n\tpublicAPI.setSlice = (slice, cameraOffset = [0, 0, 0]) => {\n\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\tconst camera = renderer.getActiveCamera()\n\n\t\tif (model.volumeActor) {\n\t\t\tconst range = publicAPI.getSliceRange()\n\t\t\tconst bounds = model.volumeActor.getMapper().getBounds()\n\n\t\t\tconst clampedSlice = clamp(slice, ...range)\n\n\t\t\tconst center = [\n\t\t\t\t(bounds[0] + bounds[1]) / 2.0,\n\t\t\t\t(bounds[2] + bounds[3]) / 2.0,\n\t\t\t\t(bounds[4] + bounds[5]) / 2.0,\n\t\t\t]\n\n\t\t\tconst distance = camera.getDistance()\n\t\t\tconst dop = camera.getDirectionOfProjection()\n\t\t\tvtkMath.normalize(dop)\n\n\t\t\tconst midPoint = (range[1] + range[0]) / 2.0\n\t\t\tconst zeroPoint = [\n\t\t\t\tcenter[0] - dop[0] * midPoint,\n\t\t\t\tcenter[1] - dop[1] * midPoint,\n\t\t\t\tcenter[2] - dop[2] * midPoint,\n\t\t\t]\n\t\t\tconst slicePoint = [\n\t\t\t\tzeroPoint[0] + dop[0] * clampedSlice,\n\t\t\t\tzeroPoint[1] + dop[1] * clampedSlice,\n\t\t\t\tzeroPoint[2] + dop[2] * clampedSlice,\n\t\t\t]\n\t\t\tconst cameraPos = [\n\t\t\t\tslicePoint[0] - dop[0] * distance,\n\t\t\t\tslicePoint[1] - dop[1] * distance,\n\t\t\t\tslicePoint[2] - dop[2] * distance,\n\t\t\t]\n\n\t\t\tcache.sliceCenter = [...slicePoint]\n\n\t\t\tvtkMath.add(slicePoint, cameraOffset, slicePoint)\n\t\t\tvtkMath.add(cameraPos, cameraOffset, cameraPos)\n\n\t\t\tcamera.setPosition(...cameraPos)\n\t\t\tcamera.setFocalPoint(...slicePoint)\n\t\t\treturn cache.sliceCenter\n\t\t}\n\t}\n\n\tpublicAPI.getSliceRange = () => {\n\t\tif (model.volumeActor) {\n\t\t\tconst sliceNormal = publicAPI.getSliceNormal()\n\n\t\t\tif (\n\t\t\t\tsliceNormal[0] === cache.sliceNormal[0] &&\n\t\t\t\tsliceNormal[1] === cache.sliceNormal[1] &&\n\t\t\t\tsliceNormal[2] === cache.sliceNormal[2]\n\t\t\t) {\n\t\t\t\tif (model.debug) console.log('returned cached range', cache.sliceRange)\n\t\t\t\treturn cache.sliceRange\n\t\t\t}\n\n\t\t\tconst points = boundsToCorners(model.volumeActor.getMapper().getBounds())\n\t\t\t// Get rotation matrix from normal to +X (since bounds is aligned to XYZ)\n\t\t\tconst transform = vtkMatrixBuilder\n\t\t\t\t.buildFromDegree()\n\t\t\t\t.rotateFromDirections(sliceNormal, [1, 0, 0])\n\t\t\tpoints.forEach(pt => transform.apply(pt))\n\n\t\t\t// range is now maximum X distance\n\t\t\tlet minX = Infinity\n\t\t\tlet maxX = -Infinity\n\t\t\tfor (let i = 0; i < 8; i++) {\n\t\t\t\tconst x = points[i][0]\n\t\t\t\tif (x > maxX) {\n\t\t\t\t\tmaxX = x\n\t\t\t\t}\n\t\t\t\tif (x < minX) {\n\t\t\t\t\tminX = x\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcache.sliceNormal = sliceNormal\n\t\t\tcache.sliceRange = [minX, maxX]\n\t\t\tif (model.debug) console.log('returned new range', cache.sliceRange)\n\t\t\treturn cache.sliceRange\n\t\t}\n\t\tif (model.debug) console.log('called getSliceRange, no volumeActor...')\n\t\treturn [0, 0]\n\t}\n\n\t// Slice normal is just camera DOP, accounting for the volume's coordinate space\n\tpublicAPI.getSliceNormal = () => {\n\t\tif (model.interactor) {\n\t\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\t\tconst camera = renderer.getActiveCamera()\n\t\t\treturn camera.getDirectionOfProjection()\n\t\t}\n\t\tif (model.debug) console.log('called getSliceNormal, but no interactor set')\n\t\treturn [0, 0, 0]\n\t}\n\n\t/**\n\t * Move the camera to the given slice normal and viewup direction. Viewup can be used to rotate the display of the image around the direction of view.\n\t * Vectors are provided in world space, but are converted into the volume's coordinate space\n\t */\n\tpublicAPI.setSliceNormal = (normal, viewUp = [0, 1, 0]) => {\n\t\tif (model.debug) console.log('setSliceNormal', normal, viewUp)\n\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\tconst camera = renderer.getActiveCamera()\n\n\t\t// Copy original arguments to the model, so they can be GET-ed later, independent of being changed outside of the interactor\n\t\tmodel.sliceNormal = [...normal]\n\t\tmodel.viewUp = [...viewUp]\n\n\t\t// Modify vectors to the volume's coords, using copied arrays so we don't cause sideeffects\n\t\tconst _normal = [...normal]\n\t\tconst _viewUp = [...viewUp]\n\n\t\tif (model.volumeActor) {\n\t\t\tvtkMath.normalize(_normal)\n\t\t\tvtkMath.normalize(_viewUp)\n\n\t\t\tlet center = camera.getFocalPoint()\n\t\t\tlet dist = camera.getDistance()\n\t\t\tlet angle = camera.getViewAngle()\n\n\t\t\t// Initial camera positioning, defaults to the volume center\n\t\t\tif (Number.isNaN(dist) || dist === undefined) {\n\t\t\t\tconst bounds = model.volumeActor.getMapper().getBounds()\n\t\t\t\t// diagonal will be used as \"width\" of camera scene\n\t\t\t\tconst diagonal = Math.sqrt(\n\t\t\t\t\tvtkMath.distance2BetweenPoints(\n\t\t\t\t\t\t[bounds[0], bounds[2], bounds[4]],\n\t\t\t\t\t\t[bounds[1], bounds[3], bounds[5]]\n\t\t\t\t\t)\n\t\t\t\t)\n\n\t\t\t\t// center will be used as initial focal point\n\t\t\t\tcenter = [\n\t\t\t\t\t(bounds[0] + bounds[1]) / 2.0,\n\t\t\t\t\t(bounds[2] + bounds[3]) / 2.0,\n\t\t\t\t\t(bounds[4] + bounds[5]) / 2.0,\n\t\t\t\t]\n\n\t\t\t\t// use a VERY tiny view angle to approximate parallel projection\n\t\t\t\tangle = 1\n\n\t\t\t\t// distance from camera to focal point\n\t\t\t\tdist = diagonal / (2 * Math.tan((angle / 360) * Math.PI))\n\t\t\t}\n\n\t\t\tconst cameraPos = [\n\t\t\t\tcenter[0] - _normal[0] * dist,\n\t\t\t\tcenter[1] - _normal[1] * dist,\n\t\t\t\tcenter[2] - _normal[2] * dist,\n\t\t\t]\n\n\t\t\tcamera.setPosition(...cameraPos)\n\t\t\tcamera.setDistance(dist)\n\t\t\t// should be set after pos and distance\n\t\t\tcamera.setDirectionOfProjection(..._normal)\n\t\t\tcamera.setViewUp(..._viewUp)\n\t\t\tcamera.setViewAngle(angle)\n\t\t\tcamera.setThicknessFromFocalPoint(model.slabThickness)\n\n\t\t\tpublicAPI.setCenterOfRotation(center)\n\t\t} else {\n\t\t\tif (model.debug) console.log('attempted to set slice normal while volumeActor was missing')\n\t\t}\n\t}\n\n\tpublicAPI.resetCameraPosition = () => {\n\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\trenderer.resetCamera()\n\t}\n\n\tpublicAPI.setSlabThickness = slabThickness => {\n\t\tmodel.slabThickness = slabThickness\n\n\t\t// Update the camera clipping range if the slab\n\t\t// thickness property is changed\n\t\tconst renderer = model.interactor.getCurrentRenderer()\n\t\tconst camera = renderer.getActiveCamera()\n\t\tcamera.setThicknessFromFocalPoint(slabThickness)\n\t}\n\n\t/**\n\t * Set the window level from any inherited interactor, so you don't have to go manually edit the volumeActor elsewhere\n\t */\n\tpublicAPI.getWindowLevel = () => {\n\t\tconst range = model.volumeActor\n\t\t\t.getProperty()\n\t\t\t.getRGBTransferFunction(0)\n\t\t\t.getMappingRange()\n\t\t\t.slice()\n\t\treturn toWindowLevel(...range)\n\t}\n\tpublicAPI.setWindowLevel = (windowWidth, windowCenter) => {\n\t\tconst lowHigh = toLowHighRange(windowWidth, windowCenter)\n\n\t\tmodel.volumeActor\n\t\t\t.getProperty()\n\t\t\t.getRGBTransferFunction(0)\n\t\t\t.setMappingRange(lowHigh.lower, lowHigh.upper)\n\t}\n\n\tpublicAPI.init()\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\tslabThickness: 0.1,\n\tdebug: false,\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tvtkInteractorStyleManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['onScroll', 'debug'])\n\tmacro.get(publicAPI, model, ['volumeActor', 'slabThickness', 'viewUp', 'classHierarchy'])\n\n\t// Object specific methods\n\tvtkInteractorStyleMPRSlice(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkInteractorStyleMPRSlice')\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend })\n\n// ----------------------------------------------------------------------------\n// Global methods\n// ----------------------------------------------------------------------------\n\n/**\n * @param {Number[]} bounds formatted as `[xmin,xmax,ymin,ymax,zmin,zmax]`\n * @returns {Array[]} xyz positions for all 8 corners\n */\nfunction boundsToCorners(bounds) {\n\treturn [\n\t\t[bounds[0], bounds[2], bounds[4]],\n\t\t[bounds[0], bounds[2], bounds[5]],\n\t\t[bounds[0], bounds[3], bounds[4]],\n\t\t[bounds[0], bounds[3], bounds[5]],\n\t\t[bounds[1], bounds[2], bounds[4]],\n\t\t[bounds[1], bounds[2], bounds[5]],\n\t\t[bounds[1], bounds[3], bounds[4]],\n\t\t[bounds[1], bounds[3], bounds[5]],\n\t]\n}\n","import macro from 'vtk.js/Sources/macro'\nimport vtkCompositeCameraManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeCameraManipulator'\nimport vtkCompositeMouseManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeMouseManipulator'\nimport { toWindowLevel } from '../lib/windowLevelRangeConverter'\n\n// ----------------------------------------------------------------------------\n// vtkWindowLevelManipulator methods\n// ----------------------------------------------------------------------------\n\nfunction vtkWindowLevelManipulator(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkWindowLevelManipulator')\n\n\tpublicAPI.onButtonDown = (interactor, renderer, position) => {\n\t\tmodel.previousPosition = position\n\t}\n\n\tpublicAPI.onMouseMove = (interactor, renderer, position) => {\n\t\tconst volume = renderer.getVolumes()[0]\n\t\tif (!position || !volume) {\n\t\t\treturn\n\t\t}\n\n\t\tconst pos = position\n\t\tconst lastPos = model.previousPosition\n\t\tmodel.previousPosition = position\n\n\t\tconst range = volume\n\t\t\t.getMapper()\n\t\t\t.getInputData()\n\t\t\t.getPointData()\n\t\t\t.getScalars()\n\t\t\t.getRange()\n\t\tconst imageDynamicRange = range[1] - range[0]\n\t\tconst multiplier = (imageDynamicRange / 1024) * publicAPI.getLevelScale()\n\n\t\t// These are different because y is flipped.\n\t\tlet dx = (pos.x - lastPos.x) * multiplier\n\t\tlet dy = (lastPos.y - pos.y) * multiplier * 0.5\n\n\t\tconst mappingRange = volume\n\t\t\t.getProperty()\n\t\t\t.getRGBTransferFunction(0)\n\t\t\t.getMappingRange()\n\t\t\t.slice()\n\t\tlet { windowWidth, windowCenter } = toWindowLevel(...mappingRange)\n\n\t\twindowWidth = Math.max(1, Math.round(windowWidth + dx))\n\t\twindowCenter = Math.round(windowCenter + dy)\n\n\t\tconst onLevelsChanged = publicAPI.getOnLevelsChanged()\n\t\tif (onLevelsChanged) {\n\t\t\tonLevelsChanged({ windowCenter, windowWidth })\n\t\t}\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\tlevelScale: 1,\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tmacro.obj(publicAPI, model)\n\tvtkCompositeCameraManipulator.extend(publicAPI, model, initialValues)\n\tvtkCompositeMouseManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['onLevelsChanged', 'levelScale'])\n\n\t// Object specific methods\n\tvtkWindowLevelManipulator(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkWindowLevelManipulator')\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend }\n","import macro from 'vtk.js/Sources/macro'\nimport vtkCompositeMouseManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeMouseManipulator'\nimport vtkCoordinate from 'vtk.js/Sources/Rendering/Core/Coordinate'\n\n// ----------------------------------------------------------------------------\n// vtkCrosshairManipulator methods\n// ----------------------------------------------------------------------------\n\nfunction vtkCrosshairManipulator(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkCrosshairManipulator')\n\n\tpublicAPI.onButtonDown = (interactor, renderer, position) => {\n\t\tpublicAPI.onMouseMove(interactor, renderer, position)\n\t}\n\n\tpublicAPI.onMouseMove = (interactor, renderer, position) => {\n\t\tif (!position) {\n\t\t\treturn\n\t\t}\n\n\t\tconst pos = [position.x, position.y]\n\t\tconst onClickCallback = publicAPI.getOnClickCallback()\n\t\tconst dPos = vtkCoordinate.newInstance()\n\t\tdPos.setCoordinateSystemToDisplay()\n\t\tdPos.setValue(pos[0], pos[1], 0)\n\t\tconst worldPos = dPos.getComputedWorldValue(renderer)\n\n\t\tif (onClickCallback && worldPos.length) {\n\t\t\tonClickCallback({ worldPos, displayPos: pos })\n\t\t}\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tmacro.obj(publicAPI, model)\n\tvtkCompositeMouseManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['onClickCallback'])\n\n\t// Object specific methods\n\tvtkCrosshairManipulator(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkCrosshairManipulator')\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend }\n","import macro from 'vtk.js/Sources/macro'\nimport vtkCompositeMouseManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeMouseManipulator'\n\n// ----------------------------------------------------------------------------\n// vtkAnnotationManipulator methods\n// ----------------------------------------------------------------------------\n\nfunction vtkAnnotationManipulator(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkAnnotationManipulator')\n\n\tpublicAPI.onButtonDown = (interactor, renderer, position) => {\n\t\tif (position) {\n\t\t\tmodel.lastPosition = position\n\t\t\tpublicAPI.getMouseInterface().onButtonDown(position, publicAPI.getToolName())\n\t\t}\n\t}\n\tpublicAPI.onButtonUp = interactor => {\n\t\tpublicAPI.getMouseInterface().onButtonUp(model.lastPosition, publicAPI.getToolName())\n\t}\n\n\tpublicAPI.onMouseMove = (interactor, renderer, position) => {\n\t\tif (position) {\n\t\t\tmodel.lastPosition = position\n\t\t\tpublicAPI.getMouseInterface().onMouseMove(position, publicAPI.getToolName())\n\t\t}\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\ttoolName: '',\n\tlastPosition: null,\n\tmouseInterface: {\n\t\tonButtonDown: () => {},\n\t\tonButtonUp: () => {},\n\t\tonMouseMove: () => {},\n\t},\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tmacro.obj(publicAPI, model)\n\tvtkCompositeMouseManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['mouseInterface', 'toolName'])\n\n\t// Object specific methods\n\tvtkAnnotationManipulator(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkAnnotationManipulator')\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend }\n","import macro from 'vtk.js/Sources/macro'\nimport vtkCompositeCameraManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeCameraManipulator'\nimport vtkCompositeMouseManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeMouseManipulator'\n\n// ----------------------------------------------------------------------------\n// vtkStackScrollManipulator methods\n// ----------------------------------------------------------------------------\n\nfunction vtkStackScrollManipulator(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkStackScrollManipulator')\n\n\tpublicAPI.onButtonDown = (interactor, renderer, position) => {\n\t\tmodel.previousPosition = position\n\t}\n\n\tpublicAPI.onMouseMove = (interactor, renderer, position) => {\n\t\tconst MPRSliceInteractor = publicAPI.getMPRSliceInteractor()\n\t\tif (!position || !MPRSliceInteractor || !MPRSliceInteractor.isA('vtkInteractorStyleMPRSlice')) {\n\t\t\treturn\n\t\t}\n\n\t\tconst scale = window.devicePixelRatio || 1\n\t\t// This arbitrary scale seems to work well for value differences\n\t\tconst dy = (model.previousPosition.y - position.y) / (2 * scale)\n\t\tconst slice = MPRSliceInteractor.getSlice()\n\t\tMPRSliceInteractor.scrollToSlice(slice + dy)\n\n\t\tmodel.previousPosition = position\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\tMPRSliceInteractor: null,\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tmacro.obj(publicAPI, model)\n\tvtkCompositeMouseManipulator.extend(publicAPI, model, initialValues)\n\tvtkCompositeCameraManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['MPRSliceInteractor'])\n\n\t// Object specific methods\n\tvtkStackScrollManipulator(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkStackScrollManipulator')\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend }\n","import macro from 'vtk.js/Sources/macro'\nimport vtkCompositeMouseManipulator from 'vtk.js/Sources/Interaction/Manipulators/CompositeMouseManipulator'\n\n// ----------------------------------------------------------------------------\n// vtkRotateSliceManipulator methods\n// ----------------------------------------------------------------------------\n\nfunction vtkRotateSliceManipulator(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkRotateSliceManipulator')\n\n\tpublicAPI.onButtonDown = (interactor, renderer, position) => {\n\t\tmodel.previousPosition = position\n\t}\n\n\tpublicAPI.onMouseMove = (interactor, renderer, position) => {\n\t\tif (!position || !model.previousPosition) {\n\t\t\treturn\n\t\t}\n\n\t\tconst onRotateCallback = publicAPI.getOnRotateCallback()\n\n\t\tif (onRotateCallback) {\n\t\t\tconst screenDensity = window.devicePixelRatio || 1\n\t\t\t// This arbitrary scale seems to work well for value differences\n\t\t\tconst dx = (model.previousPosition.x - position.x) / (model.arbitraryScale * screenDensity)\n\t\t\tconst dy = (model.previousPosition.y - position.y) / (model.arbitraryScale * screenDensity)\n\n\t\t\tonRotateCallback({ x: dx, y: dy })\n\t\t}\n\n\t\tmodel.previousPosition = position\n\t}\n}\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\tarbitraryScale: 3,\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tmacro.obj(publicAPI, model)\n\tvtkCompositeMouseManipulator.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, ['onRotateCallback', 'arbitraryScale'])\n\n\t// Object specific methods\n\tvtkRotateSliceManipulator(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkRotateSliceManipulator')\n\n// ----------------------------------------------------------------------------\n\nexport default { newInstance, extend }\n","import macro from 'vtk.js/Sources/macro'\nimport vtkMouseCameraTrackballZoomManipulator from './vtkOverrides/vtkMouseCameraTrackballZoomManipulator'\nimport vtkMouseCameraTrackballPanManipulator from './vtkOverrides/vtkMouseCameraTrackballPanManipulator'\nimport vtkGestureCameraManipulator from 'vtk.js/Sources/Interaction/Manipulators/GestureCameraManipulator'\n\n// Extend our internal MPRSlice function\nimport vtkInteractorStyleMPRSlice from './vtkInteractorStyleMPRSlice.js'\nimport vtkWindowLevelManipulator from './vtkWindowLevelManipulator.js'\nimport vtkCrosshairManipulator from './vtkCrosshairManipulator.js'\nimport vtkAnnotationManipulator from './vtkAnnotationManipulator.js'\nimport vtkStackScrollManipulator from './vtkStackScrollManipulator.js'\nimport vtkRotateSliceManipulator from './vtkRotateSliceManipulator'\nimport { TOOLS, BUTTONS, VTK_BUTTONS } from './consts.js'\n\nconst TOOL_MAP = {\n\t[TOOLS.LEVEL_TOOL]: vtkWindowLevelManipulator,\n\t[TOOLS.SELECT_TOOL]: vtkCrosshairManipulator,\n\t[TOOLS.ANGLE_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.TEXT_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.ARROW_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.CIRCLE_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.ELLIPSE_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.ERASER_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.LENGTH_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.RECT_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.PROBE_TOOL]: vtkAnnotationManipulator,\n\t[TOOLS.ZOOM_TOOL]: vtkMouseCameraTrackballZoomManipulator,\n\t[TOOLS.PAN_TOOL]: vtkMouseCameraTrackballPanManipulator,\n\t[TOOLS.SCROLL_TOOL]: vtkStackScrollManipulator,\n\t[TOOLS.PLANE_TOOL]: vtkRotateSliceManipulator,\n\t[TOOLS.ROLL_TOOL]: vtkRotateSliceManipulator,\n}\n\n// ----------------------------------------------------------------------------\n// Event Types (copied from InteractorStyleManipulator)\n// ----------------------------------------------------------------------------\n\nconst START_INTERACTION_EVENT = { type: 'StartInteractionEvent' }\n// const INTERACTION_EVENT = { type: 'InteractionEvent' }\nconst END_INTERACTION_EVENT = { type: 'EndInteractionEvent' }\n\n// ----------------------------------------------------------------------------\n// Object factory\n// ----------------------------------------------------------------------------\n\nconst DEFAULT_VALUES = {\n\tlevelScale: 1,\n\tmanipulators: {\n\t\t[BUTTONS.LEFT_MKEY]: null,\n\t\t[BUTTONS.MIDDLE_MKEY]: null,\n\t\t[BUTTONS.RIGHT_MKEY]: null,\n\t},\n}\n\n// ----------------------------------------------------------------------------\n// vtkInteractorStyleMPR methods\n// ----------------------------------------------------------------------------\n\nfunction vtkInteractorStyleMPR(publicAPI, model) {\n\t// Set our className\n\tmodel.classHierarchy.push('vtkInteractorStyleMPR')\n\n\tpublicAPI.resetManipulators = () => {\n\t\tpublicAPI.removeAllMouseManipulators()\n\n\t\tObject.values(model.manipulators).forEach(manipBtn => {\n\t\t\tif (manipBtn) {\n\t\t\t\tpublicAPI.addMouseManipulator(manipBtn.manipulator)\n\t\t\t}\n\t\t})\n\n\t\tpublicAPI.addMouseManipulator(model.scrollManipulator)\n\t\tpublicAPI.updateScrollManipulator()\n\n\t\t// Enable 2-finger pinch and zoom, but disable arbitrary rotation\n\t\tconst manipulator = vtkGestureCameraManipulator.newInstance({\n\t\t\tpinchEnabled: true,\n\t\t\tpanEnabled: true,\n\t\t\trotateEnabled: false,\n\t\t})\n\t\tmanipulator.setInteractorStyle(publicAPI)\n\t\tpublicAPI.addGestureManipulator(manipulator)\n\t}\n\tpublicAPI.setTools = toolMap => {\n\t\tObject.entries(toolMap).forEach(([buttonName, toolName]) => {\n\t\t\tif (toolName) publicAPI.setTool(toolName, buttonName)\n\t\t\telse publicAPI.clearTool(buttonName)\n\t\t})\n\t\tpublicAPI.resetManipulators()\n\t}\n\tpublicAPI.setTool = (toolName, buttonName) => {\n\t\tconst manipulator = TOOL_MAP[toolName].newInstance({\n\t\t\tbutton: VTK_BUTTONS[buttonName],\n\t\t})\n\n\t\tswitch (toolName) {\n\t\t\tcase TOOLS.LEVEL_TOOL:\n\t\t\t\tmanipulator.setLevelScale(publicAPI.getLevelScale())\n\t\t\t\tmanipulator.setOnLevelsChanged(({ windowWidth, windowCenter }) => {\n\t\t\t\t\tpublicAPI.setWindowLevel(windowWidth, windowCenter)\n\t\t\t\t\tconst onLevelsChanged = publicAPI.getOnLevelsChanged()\n\t\t\t\t\tif (onLevelsChanged) {\n\t\t\t\t\t\tonLevelsChanged({ windowCenter, windowWidth })\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase TOOLS.SELECT_TOOL:\n\t\t\t\tmanipulator.setOnClickCallback(res => {\n\t\t\t\t\tconst onPointSelected = publicAPI.getOnPointSelected()\n\t\t\t\t\tif (onPointSelected) {\n\t\t\t\t\t\tonPointSelected(res)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase TOOLS.SCROLL_TOOL:\n\t\t\t\tmanipulator.setMPRSliceInteractor(publicAPI)\n\t\t\t\tbreak\n\t\t\tcase TOOLS.ZOOM_TOOL:\n\t\t\t\tmanipulator.setFlipDirection(true)\n\t\t\t\tbreak\n\t\t\tcase TOOLS.PLANE_TOOL:\n\t\t\t\tmanipulator.setOnRotateCallback(res => {\n\t\t\t\t\tconst onRotate = publicAPI.getOnSliceRotated()\n\t\t\t\t\tif (onRotate) {\n\t\t\t\t\t\tonRotate(res)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tcase TOOLS.ROLL_TOOL:\n\t\t\t\tmanipulator.setArbitraryScale(2)\n\t\t\t\tmanipulator.setOnRotateCallback(res => {\n\t\t\t\t\tconst onRoll = publicAPI.getOnViewRolled()\n\t\t\t\t\tif (onRoll) {\n\t\t\t\t\t\tonRoll(res)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (manipulator.isA('vtkAnnotationManipulator')) {\n\t\t\t\t\tmanipulator.setToolName(toolName)\n\t\t\t\t\tconst inter = publicAPI.getAnnotationInterface()\n\t\t\t\t\tif (inter) manipulator.setMouseInterface(inter)\n\t\t\t\t}\n\t\t}\n\t\tmodel.manipulators[buttonName] = { manipulator, toolName }\n\t}\n\tpublicAPI.clearTool = buttonName => {\n\t\tmodel.manipulators[buttonName] = null\n\t}\n\n\t// We need to know if it's the eraser tool so the eraser takes higher click-handling\n\t// precedence over the annotation interaction.\n\tfunction isEraser(buttonName) {\n\t\treturn model.manipulators[buttonName] && model.manipulators[buttonName].toolName === TOOLS.ERASER_TOOL\n\t}\n\n\t// Let the annotation interface take first pick of the button presses.\n\tconst superHandleLeftButtonPress = publicAPI.handleLeftButtonPress\n\tpublicAPI.handleLeftButtonPress = callData => {\n\t\tif (\n\t\t\t!isEraser(BUTTONS.LEFT_MKEY) &&\n\t\t\tpublicAPI.getAnnotationInterface().onButtonDown(callData.position, TOOLS.PRE_TOOL)\n\t\t) {\n\t\t\tpublicAPI.invokeStartInteractionEvent(START_INTERACTION_EVENT)\n\t\t} else superHandleLeftButtonPress && superHandleLeftButtonPress(callData)\n\t}\n\tconst superHandleLeftButtonRelease = publicAPI.handleLeftButtonRelease\n\tpublicAPI.handleLeftButtonRelease = callData => {\n\t\tif (\n\t\t\t!isEraser(BUTTONS.LEFT_MKEY) &&\n\t\t\tpublicAPI.getAnnotationInterface().onButtonUp(callData.position, TOOLS.PRE_TOOL)\n\t\t) {\n\t\t\tmodel.currentManipulator = null\n\t\t\tpublicAPI.invokeEndInteractionEvent(END_INTERACTION_EVENT)\n\t\t} else superHandleLeftButtonRelease && superHandleLeftButtonRelease(callData)\n\t}\n\tconst superHandleMiddleButtonPress = publicAPI.handleMiddleButtonPress\n\tpublicAPI.handleMiddleButtonPress = callData => {\n\t\tif (\n\t\t\t!isEraser(BUTTONS.MIDDLE_MKEY) &&\n\t\t\tpublicAPI.getAnnotationInterface().onButtonDown(callData.position, TOOLS.PRE_TOOL)\n\t\t) {\n\t\t\tpublicAPI.invokeStartInteractionEvent(START_INTERACTION_EVENT)\n\t\t} else superHandleMiddleButtonPress && superHandleMiddleButtonPress(callData)\n\t}\n\tconst superHandleMiddleButtonRelease = publicAPI.handleMiddleButtonRelease\n\tpublicAPI.handleMiddleButtonRelease = callData => {\n\t\tif (\n\t\t\t!isEraser(BUTTONS.MIDDLE_MKEY) &&\n\t\t\tpublicAPI.getAnnotationInterface().onButtonUp(callData.position, TOOLS.PRE_TOOL)\n\t\t) {\n\t\t\tmodel.currentManipulator = null\n\t\t\tpublicAPI.invokeEndInteractionEvent(END_INTERACTION_EVENT)\n\t\t} else superHandleMiddleButtonRelease && superHandleMiddleButtonRelease(callData)\n\t}\n\tconst superHandleRightButtonPress = publicAPI.handleRightButtonPress\n\tpublicAPI.handleRightButtonPress = callData => {\n\t\tif (\n\t\t\t!isEraser(BUTTONS.RIGHT_MKEY) &&\n\t\t\tpublicAPI.getAnnotationInterface().onButtonDown(callData.position, TOOLS.PRE_TOOL)\n\t\t) {\n\t\t\tpublicAPI.invokeStartInteractionEvent(START_INTERACTION_EVENT)\n\t\t} else superHandleRightButtonPress && superHandleRightButtonPress(callData)\n\t}\n\tconst superHandleRightButtonRelease = publicAPI.handleRightButtonRelease\n\tpublicAPI.handleRightButtonRelease = callData => {\n\t\tif (\n\t\t\t!isEraser(BUTTONS.RIGHT_MKEY) &&\n\t\t\tpublicAPI.getAnnotationInterface().onButtonUp(callData.position, TOOLS.PRE_TOOL)\n\t\t) {\n\t\t\tmodel.currentManipulator = null\n\t\t\tpublicAPI.invokeEndInteractionEvent(END_INTERACTION_EVENT)\n\t\t} else superHandleRightButtonRelease && superHandleRightButtonRelease(callData)\n\t}\n\t// Annotation interface isn't listening to the onMouseMove event anyways, but leave this here until it does\n\t// const superHandleMouseMove = publicAPI.handleMouseMove\n\t// publicAPI.handleMouseMove = callData => {\n\t// \tif (\n\t// \t\t!publicAPI.getAnnotationInterface().onMouseMove(callData.position, TOOLS.PRE_TOOL) &&\n\t// \t\tsuperHandleMouseMove\n\t// \t)\n\t// \t\tsuperHandleMouseMove(callData)\n\t// }\n\n\t// Initialize manipulators\n\tpublicAPI.resetManipulators()\n}\n\n// ----------------------------------------------------------------------------\n\nexport function extend(publicAPI, model, initialValues = {}) {\n\tObject.assign(model, DEFAULT_VALUES, initialValues)\n\n\t// Inheritance\n\tvtkInteractorStyleMPRSlice.extend(publicAPI, model, initialValues)\n\n\tmacro.setGet(publicAPI, model, [\n\t\t'onLevelsChanged',\n\t\t'onPointSelected',\n\t\t'onSliceRotated',\n\t\t'onViewRolled',\n\t\t'annotationInterface',\n\t\t'levelScale',\n\t])\n\n\t// Instantiate Object specific methods\n\tvtkInteractorStyleMPR(publicAPI, model)\n}\n\n// ----------------------------------------------------------------------------\n\nexport const newInstance = macro.newInstance(extend, 'vtkInteractorStyleMPRWindowLevel')\n\n// ----------------------------------------------------------------------------\n\nexport default Object.assign({ newInstance, extend })\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"ViewportOverlay\",style:(_vm.borderStyle)},[(_vm.color)?_c('div',{staticClass:\"viewColor\",style:(_vm.colorStyle),on:{\"click\":function () { return _vm.$emit('toggle-fullscreen'); }}},[_c('svg-icon',{staticStyle:{\"color\":\"white\"},attrs:{\"icon\":_vm.isFullscreen ? 'fullscreen_exit' : 'fullscreen',\"size\":22}})],1):_vm._e(),_c('div',{staticClass:\"border overlay-element\",style:(_vm.borderStyle)}),(_vm.showOverlayText)?[_c('div',{staticClass:\"top-left overlay-element\"},[_vm._t(\"top-left\")],2),_c('div',{staticClass:\"top-right overlay-element\"},[_vm._t(\"top-right\")],2),_c('div',{staticClass:\"bottom-left overlay-element\"},[_vm._t(\"bottom-left\")],2),_c('div',{staticClass:\"bottom-right overlay-element\"},[_vm._t(\"bottom-right\")],2)]:_vm._e(),(_vm.showImageOrientationMarkers)?[_c('div',{staticClass:\"top overlay-element compass\"},[_vm._t(\"top\")],2),_c('div',{staticClass:\"right overlay-element compass\"},[_vm._t(\"right\")],2),_c('div',{staticClass:\"bottom overlay-element compass\"},[_vm._t(\"bottom\")],2),_c('div',{staticClass:\"left overlay-element compass\"},[_vm._t(\"left\")],2)]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ViewportOverlay.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!./ViewportOverlay.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ViewportOverlay.vue?vue&type=template&id=25cec1f4&scoped=true\"\nimport script from \"./ViewportOverlay.vue?vue&type=script&lang=js\"\nexport * from \"./ViewportOverlay.vue?vue&type=script&lang=js\"\nimport style0 from \"./ViewportOverlay.vue?vue&type=style&index=0&id=25cec1f4&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 \"25cec1f4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticClass:\"annotation-container\",staticStyle:{\"cursor\":\"pointer\"},attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":_vm.width,\"height\":_vm.height,\"viewBox\":_vm.viewBox}},[_c('filter',{attrs:{\"id\":\"shadow\",\"filterUnits\":\"userSpaceOnUse\",\"height\":\"130%\",\"width\":\"130%\"}},[_c('feDropShadow',{attrs:{\"dx\":\"1\",\"dy\":\"1\",\"stdDeviation\":\"0.3\",\"flood-color\":\"#000\",\"flood-opacity\":\"0.7\"}})],1),_vm._l((_vm.annotations),function(annotation){return _c(annotation.component,_vm._b({directives:[{name:\"show\",rawName:\"v-show\",value:(annotation.slice === _vm.slice),expression:\"annotation.slice === slice\"}],key:annotation.groupId,ref:\"annotations\",refInFor:true,tag:\"component\",attrs:{\"rotation\":_vm.rotation}},'component',annotation.props,false))})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('drag-annotation',{style:(_vm.groupStyle),attrs:{\"id\":(_vm.id + \"-line\"),\"group-id\":_vm.groupId},on:{\"drag-start\":function($event){_vm.draggingAll = true},\"drag-end\":function($event){_vm.draggingAll = false}},model:{value:(_vm.position),callback:function ($$v) {_vm.position=$$v},expression:\"position\"}},[(_vm.start && _vm.end)?_c('g',{attrs:{\"data-position-ref\":\"\"}},[_c('line',{style:(_vm.strokeStyle),attrs:{\"x1\":_vm.start.x,\"y1\":_vm.start.y,\"x2\":_vm.end.x,\"y2\":_vm.end.y}}),_c('line',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-line\"),\"data-group-id\":_vm.groupId,\"x1\":_vm.start.x,\"y1\":_vm.start.y,\"x2\":_vm.end.x,\"y2\":_vm.end.y}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"show-precision\":\"\"},on:{\"drag-start\":function($event){_vm.drag.start = true},\"drag-end\":function($event){_vm.drag.start = false},\"radius-updated\":function($event){return _vm.setHandleRadius('start', $event)}},model:{value:(_vm.start),callback:function ($$v) {_vm.start=$$v},expression:\"start\"}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"show-precision\":\"\",\"drag-on-load\":\"\"},on:{\"drag-start\":function($event){_vm.drag.end = true},\"drag-end\":function($event){_vm.drag.end = false},\"radius-updated\":function($event){return _vm.setHandleRadius('end', $event)}},model:{value:(_vm.end),callback:function ($$v) {_vm.end=$$v},expression:\"end\"}}),(_vm.statsVisible)?_c('text-annotation',{attrs:{\"value\":_vm.statText,\"group-id\":_vm.groupId,\"event-source\":_vm.textSource,\"color\":_vm.activeColor}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function average(values) {\n\tconst sum = values.reduce(function(sum, value) {\n\t\treturn sum + value\n\t}, 0)\n\n\treturn sum / values.length\n}\n\nexport function standardDeviation(values) {\n\tconst avg = average(values)\n\n\tconst squareDiffs = values.map(function(value) {\n\t\tconst diff = value - avg\n\t\treturn diff * diff\n\t})\n\n\tconst avgSquareDiff = average(squareDiffs)\n\n\treturn Math.sqrt(avgSquareDiff)\n}\n","var render, staticRenderFns\nimport script from \"./DragAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./DragAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","import uuid from 'uuid/v4'\nimport { round, min as findMin, max as findMax, uniq, isString } from 'lodash'\nimport { detect } from 'detect-browser'\nimport { average, standardDeviation } from '@utils/math'\nimport { vec3 } from 'gl-matrix'\nimport { formatNumber } from '@utils/numberUtils'\n\nexport default {\n\tinject: ['manager'],\n\tprops: {\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => uuid(),\n\t\t},\n\t\tgroupId: {\n\t\t\ttype: String,\n\t\t\tdefault: () => uuid(),\n\t\t},\n\t\tcolor: {\n\t\t\ttype: String,\n\t\t\tdefault: '#14C6DF',\n\t\t},\n\t\tdragColor: {\n\t\t\ttype: String,\n\t\t\tdefault: '#92D32E',\n\t\t},\n\t\trotation: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tpoints: {},\n\t\t\tworldCoords: {},\n\t\t\thandleRadii: {},\n\t\t\tdrag: {},\n\t\t\tstats: null,\n\t\t\tstatsVisible: true,\n\t\t\tstatTemplate: 'Area: {area}',\n\t\t\torigRotation: this.rotation,\n\t\t\t// This gets set by the manager when any annotations in the same group\n\t\t\t// as this one are hovered\n\t\t\thovered: false,\n\t\t\ttranslating: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\teffectiveRotation() {\n\t\t\treturn this.rotation - this.origRotation\n\t\t},\n\t\teffectiveRotationRads() {\n\t\t\treturn (this.effectiveRotation * Math.PI) / 180\n\t\t},\n\t\tactive() {\n\t\t\tconst annotation = this.manager.activeAnnotation\n\t\t\treturn !!annotation && annotation.groupId === this.groupId\n\t\t},\n\t\thasPoints() {\n\t\t\treturn this.pointsList && this.pointsList.length > 0\n\t\t},\n\t\tpointerPosition() {\n\t\t\treturn this.manager.pointerPosition\n\t\t},\n\t\tpointsList() {\n\t\t\treturn Object.values(this.points).filter(p => !!(p && p.x && p.y))\n\t\t},\n\t\tpointsListNorm() {\n\t\t\treturn this.pointsList.map(p => this.rotatePoint(p, -this.effectiveRotationRads))\n\t\t},\n\t\tminX() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.min(...this.pointsList.map(p => p.x))\n\t\t},\n\t\tminXNorm() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.min(...this.pointsListNorm.map(p => p.x))\n\t\t},\n\t\tmaxX() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.max(...this.pointsList.map(p => p.x))\n\t\t},\n\t\tmaxXNorm() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.max(...this.pointsListNorm.map(p => p.x))\n\t\t},\n\t\tminY() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.min(...this.pointsList.map(p => p.y))\n\t\t},\n\t\tminYNorm() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.min(...this.pointsListNorm.map(p => p.y))\n\t\t},\n\t\tmaxY() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.max(...this.pointsList.map(p => p.y))\n\t\t},\n\t\tmaxYNorm() {\n\t\t\tif (!this.hasPoints) return NaN\n\t\t\treturn Math.max(...this.pointsListNorm.map(p => p.y))\n\t\t},\n\t\ttopLeft() {\n\t\t\tif ([this.minX, this.minY].some(isNaN)) return null\n\t\t\treturn { x: this.minX, y: this.minY }\n\t\t},\n\t\ttopRight() {\n\t\t\tif ([this.maxX, this.minY].some(isNaN)) return null\n\t\t\treturn { x: this.maxX, y: this.minY }\n\t\t},\n\t\tbottomLeft() {\n\t\t\tif ([this.minX, this.maxY].some(isNaN)) return null\n\t\t\treturn { x: this.minX, y: this.maxY }\n\t\t},\n\t\tbottomRight() {\n\t\t\tif ([this.maxX, this.maxY].some(isNaN)) return null\n\t\t\treturn { x: this.maxX, y: this.maxY }\n\t\t},\n\t\tcenter() {\n\t\t\tif ([this.minX, this.maxX, this.minY, this.maxY].some(isNaN)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tx: (this.minX + this.maxX) / 2,\n\t\t\t\ty: (this.minY + this.maxY) / 2,\n\t\t\t}\n\t\t},\n\t\tcenterNorm() {\n\t\t\tif ([this.minXNorm, this.maxXNorm, this.minYNorm, this.maxYNorm].some(isNaN)) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tx: (this.minXNorm + this.maxXNorm) / 2,\n\t\t\t\ty: (this.minYNorm + this.maxYNorm) / 2,\n\t\t\t}\n\t\t},\n\t\tworldCenter() {\n\t\t\treturn this.displayToWorld(this.center)\n\t\t},\n\t\twidth() {\n\t\t\treturn this.maxX - this.minX\n\t\t},\n\t\twidthNorm() {\n\t\t\treturn this.maxXNorm - this.minXNorm\n\t\t},\n\t\theight() {\n\t\t\treturn this.maxY - this.minY\n\t\t},\n\t\theightNorm() {\n\t\t\treturn this.maxYNorm - this.minYNorm\n\t\t},\n\t\thasSize() {\n\t\t\t// Check for valid display width and height\n\t\t\tconst tolerance = 0.5\n\t\t\treturn this.widthNorm > tolerance || this.heightNorm > tolerance\n\t\t},\n\t\tradiusX() {\n\t\t\treturn this.widthNorm / 2\n\t\t},\n\t\tworldRadiusX() {\n\t\t\treturn this.worldDistance(this.radiusX)\n\t\t},\n\t\tradiusY() {\n\t\t\treturn this.heightNorm / 2\n\t\t},\n\t\tworldRadiusY() {\n\t\t\treturn this.worldDistance(this.radiusY)\n\t\t},\n\t\tradius() {\n\t\t\treturn Math.min(this.radiusX, this.radiusY)\n\t\t},\n\t\tworldRadius() {\n\t\t\treturn this.worldDistance(this.radius)\n\t\t},\n\t\tdiameter() {\n\t\t\treturn Math.min(this.widthNorm, this.heightNorm)\n\t\t},\n\t\tworldDiameter() {\n\t\t\treturn this.worldDistance(this.diameter)\n\t\t},\n\t\tposition: {\n\t\t\tget() {\n\t\t\t\treturn this.topLeft\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tconst oldVal = this.topLeft\n\t\t\t\tif (!val || !oldVal || (val.x === oldVal.x && val.y === oldVal.y)) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.translating = true\n\t\t\t\t// Offset all points by the position delta\n\t\t\t\tconst deltaX = val.x - oldVal.x\n\t\t\t\tconst deltaY = val.y - oldVal.y\n\t\t\t\tObject.entries(this.points).forEach(([key, value]) => {\n\t\t\t\t\tif (value && value.x && value.y) {\n\t\t\t\t\t\tthis.points[key] = { x: value.x + deltaX, y: value.y + deltaY }\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tthis.$emit('translate', { deltaX, deltaY })\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.translating = false\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\thandleOffsets() {\n\t\t\tconst offsets = {}\n\t\t\tObject.entries(this.points).forEach(([key, point]) => {\n\t\t\t\tconst offset = { ...point }\n\t\t\t\tconst radius = this.handleRadii[key]\n\t\t\t\tif (radius) {\n\t\t\t\t\toffset.x += Number.parseInt(radius.substring(0, radius.length - 2))\n\t\t\t\t}\n\t\t\t\toffsets[key] = offset\n\t\t\t})\n\t\t\treturn offsets\n\t\t},\n\t\t// Mixin consumers should return their own area\n\t\tarea() {\n\t\t\treturn 0\n\t\t},\n\t\tconditionalStatTemplate() {\n\t\t\tconst { statsDisabled } = this.manager\n\t\t\tif (statsDisabled) {\n\t\t\t\treturn this.statTemplate + (isString(statsDisabled) ? `\\n\\n${statsDisabled}` : '')\n\t\t\t}\n\t\t\treturn (\n\t\t\t\tthis.statTemplate +\n\t\t\t\t`\\nMean: {mean}${this.unit}\\nStd Dev: {stdDev}${this.unit}\\nMin: {min}${this.unit}, Max: {max}${this.unit}`\n\t\t\t)\n\t\t},\n\t\tunit() {\n\t\t\treturn !this.draggingAny && this.stats ? this.manager.modalityUnit : ''\n\t\t},\n\t\tstatText() {\n\t\t\tlet stats = {\n\t\t\t\tarea: `${formatNumber(round(this.area, 2))} mm²`,\n\t\t\t\tdiameter: `${formatNumber(round(this.worldDiameter, 2))} mm`,\n\t\t\t\tdiameterX: `${formatNumber(round(this.worldDistance(this.widthNorm), 2))} mm`,\n\t\t\t\tdiameterY: `${formatNumber(round(this.worldDistance(this.heightNorm), 2))} mm`,\n\t\t\t\tmean: '...',\n\t\t\t\tstdDev: '...',\n\t\t\t\tmin: '...',\n\t\t\t\tmax: '...',\n\t\t\t}\n\t\t\tif (!this.draggingAny && this.stats) {\n\t\t\t\tstats = {\n\t\t\t\t\t...stats,\n\t\t\t\t\t...this.stats,\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Replace placeholders in the stat template with values\n\t\t\treturn Object.entries(stats).reduce(\n\t\t\t\t(statText, [key, value]) => statText.replace(`{${key}}`, value),\n\t\t\t\tthis.conditionalStatTemplate\n\t\t\t)\n\t\t},\n\t\tdraggingAll: {\n\t\t\tget() {\n\t\t\t\treturn Object.values(this.drag).every(d => d)\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tObject.keys(this.drag).forEach(key => {\n\t\t\t\t\tthis.drag[key] = val\n\t\t\t\t})\n\t\t\t},\n\t\t},\n\t\tdraggingAny() {\n\t\t\treturn Object.values(this.drag).some(d => d)\n\t\t},\n\t\tgroupStyle() {\n\t\t\treturn {\n\t\t\t\topacity: this.hasSize ? (this.draggingAny ? 0.8 : 1) : 0,\n\t\t\t}\n\t\t},\n\t\tactiveColor() {\n\t\t\treturn this.hovered ? this.dragColor : this.color\n\t\t},\n\t\tfilterStyle() {\n\t\t\t// Microsoft Edge (Windows only) doesn't support url function within filters\n\t\t\t// Would have liked to be able to test this more specifically, but every other browser supports it except Edge and IE11\n\t\t\t// NOTE: New Edge Beta actually supports it, and it reports 'chrome' as the browser name\n\t\t\tconst browser = detect()\n\t\t\treturn browser.name !== 'edge' ? 'url(#shadow)' : ''\n\t\t},\n\t\tstrokeStyle() {\n\t\t\treturn {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\tstroke: this.activeColor,\n\t\t\t\tstrokeWidth: '1.5px',\n\t\t\t\tstrokeOpacity: 0.9,\n\t\t\t\tfillOpacity: 0,\n\t\t\t\tfilter: this.filterStyle,\n\t\t\t\t'stroke-dasharray': this.draggingAny ? '5 3' : '',\n\t\t\t\ttransition: 'stroke 0.08s ease-in-out',\n\t\t\t}\n\t\t},\n\t\tstrokeHitTargetStyle() {\n\t\t\treturn {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\tfill: 'transparent',\n\t\t\t\tstroke: 'transparent',\n\t\t\t\tstrokeWidth: this.isMobileOS ? '24px' : '16px',\n\t\t\t\tpointerEvents: 'visibleStroke',\n\t\t\t\tzIndex: -10,\n\t\t\t}\n\t\t},\n\t\tfillStyle() {\n\t\t\treturn {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\tstroke: this.activeColor,\n\t\t\t\tstrokeOpacity: 0.9,\n\t\t\t\tfill: this.activeColor,\n\t\t\t\tfillOpacity: 0.9,\n\t\t\t\tfilter: this.filterStyle,\n\t\t\t\ttransition: 'stroke 0.08s ease-in-out',\n\t\t\t}\n\t\t},\n\t\tfillHitTargetStyle() {\n\t\t\treturn {\n\t\t\t\tcursor: 'pointer',\n\t\t\t\tfill: 'transparent',\n\t\t\t\tstroke: 'transparent',\n\t\t\t\tpointerEvents: 'visible',\n\t\t\t\tzIndex: -10,\n\t\t\t}\n\t\t},\n\t\ttextStyle() {\n\t\t\treturn {\n\t\t\t\tfontFamily:\n\t\t\t\t\t'system, -apple-system, \".SFNSText-Regular\", \"San Francisco\", \"Roboto\", \"Segoe UI\", \"Helvetica Neue\", \"Lucida Grande\", sans-serif',\n\t\t\t\tfontSize: '14px',\n\t\t\t\tfontWeight: '400',\n\t\t\t\tstroke: 'transparent',\n\t\t\t\tstrokeOpacity: 0.9,\n\t\t\t\tfill: this.color,\n\t\t\t\tfillOpacity: 0.9,\n\t\t\t\tuserSelect: 'none',\n\t\t\t\tfilter: this.filterStyle,\n\t\t\t\ttransition: 'stroke 0.08s ease-in-out',\n\t\t\t}\n\t\t},\n\t\ttextSource() {\n\t\t\treturn this\n\t\t},\n\t},\n\twatch: {\n\t\tpoints: {\n\t\t\tdeep: true,\n\t\t\thandler() {\n\t\t\t\tif (!this.translating) {\n\t\t\t\t\tthis.$emit('resize', this.points)\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tdraggingAny(dragging) {\n\t\t\tthis.$emit('dragging-any', this, dragging)\n\t\t\tthis.refreshStats()\n\t\t},\n\t\tdraggingAll(dragging) {\n\t\t\tthis.$emit('dragging-all', this, dragging)\n\t\t},\n\t\thandleOffsets: {\n\t\t\tdeep: true,\n\t\t\thandler() {\n\t\t\t\tthis.$emit('resize', this.points)\n\t\t\t},\n\t\t},\n\t},\n\tcreated() {\n\t\t// Update world coordinates when display coordinates have been updated\n\t\tObject.keys(this.points || {}).forEach(key => {\n\t\t\tthis.$watch(`points.${key}`, () => this.refreshCoords(false, key), { deep: true })\n\t\t\tthis.$watch(`worldCoords.${key}`, () => this.refreshCoords(true, key), { deep: true })\n\t\t})\n\t},\n\tmounted() {\n\t\tif (this.manager) {\n\t\t\tthis.manager.addAnnotationToGroup(this, this.groupId)\n\t\t\tthis.$once('hook:beforeDestroy', () => {\n\t\t\t\tthis.manager.removeAnnotationFromGroup(this, this.groupId)\n\t\t\t})\n\t\t}\n\t\tthis.initDragState()\n\t},\n\tmethods: {\n\t\t// This will get called by the annotation manager\n\t\t// and should be implemented by mixin consumer\n\t\tonInteractionBegin() {},\n\t\t// This will get called by the annotation manager\n\t\t// and should be implemented by mixin consumer\n\t\tonInteractionUpdate() {},\n\t\t// This will get called by the annotation manager\n\t\t// and should be implemented by mixin consumer\n\t\tonInteractionEnd() {},\n\t\t// This will get called by the annotation manager\n\t\tonViewportModified() {\n\t\t\tthis.refreshCoords()\n\t\t},\n\t\trefreshCoords(fromWorldToDisplay = true, forKey) {\n\t\t\t// Use `refreshing` state variable to prevent repetitive update loops\n\t\t\tif (fromWorldToDisplay && (!this.refreshing || this.refreshing === 'display')) {\n\t\t\t\tthis.refreshing = 'display'\n\t\t\t\tObject.entries(this.worldCoords).forEach(([key, value]) => {\n\t\t\t\t\tif (!forKey || forKey === key) {\n\t\t\t\t\t\tthis.points[key] = this.worldToDisplay(value)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} else if (!fromWorldToDisplay && (!this.refreshing || this.refreshing === 'world')) {\n\t\t\t\tthis.refreshing = 'world'\n\t\t\t\tObject.entries(this.points).forEach(([key, value]) => {\n\t\t\t\t\tif (!forKey || forKey === key) {\n\t\t\t\t\t\tthis.worldCoords[key] = this.displayToWorld(value)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.$nextTick(() => (this.refreshing = ''))\n\t\t},\n\t\tdisplayToWorld(...args) {\n\t\t\treturn this.manager.displayToWorld(...args)\n\t\t},\n\t\tworldToDisplay(...args) {\n\t\t\treturn this.manager.worldToDisplay(...args)\n\t\t},\n\t\tdisplayDistanceBetween(...args) {\n\t\t\treturn this.manager.displayDistanceBetween(...args)\n\t\t},\n\t\tworldDistanceBetween(...args) {\n\t\t\treturn this.manager.worldDistanceBetween(...args)\n\t\t},\n\t\tworldDistance(...args) {\n\t\t\treturn this.manager.worldDistance(...args)\n\t\t},\n\t\tsetHandleRadius(handle, radius) {\n\t\t\t// Use `$set` to trigger reactivity\n\t\t\tthis.$set(this.handleRadii, handle, radius)\n\t\t},\n\t\tworldDistanceToDisplay(...args) {\n\t\t\treturn this.manager.worldDistanceToDisplay(...args)\n\t\t},\n\t\tround(n, digits) {\n\t\t\treturn round(n, digits)\n\t\t},\n\t\tgetCollinearPoint(p1, p2, distance) {\n\t\t\tif (!p1 || !p2) return null\n\t\t\tconst pDistance = this.displayDistanceBetween(p1, p2)\n\t\t\tif (distance === 0 || pDistance === 0) {\n\t\t\t\treturn { ...p1 }\n\t\t\t}\n\t\t\t// Build unit vectors\n\t\t\tconst { x: x1, y: y1 } = p1\n\t\t\tconst { x: x2, y: y2 } = p2\n\t\t\tconst xu = (x2 - x1) / pDistance\n\t\t\tconst yu = (y2 - y1) / pDistance\n\t\t\t// Use unit vectors to find collinear point\n\t\t\treturn { x: x1 + distance * xu, y: y1 + distance * yu }\n\t\t},\n\t\tgetCornerPoints(points) {\n\t\t\tif (!points) return null\n\t\t\tconst result = {}\n\t\t\tpoints.forEach(p => {\n\t\t\t\tif (!result.left || p.x < result.left.x) {\n\t\t\t\t\tresult.left = p\n\t\t\t\t}\n\t\t\t\tif (!result.top || p.y < result.top.y) {\n\t\t\t\t\tresult.top = p\n\t\t\t\t}\n\t\t\t\tif (!result.right || p.x > result.right.x) {\n\t\t\t\t\tresult.right = p\n\t\t\t\t}\n\t\t\t\tif (!result.bottom || p.y > result.bottom.y) {\n\t\t\t\t\tresult.bottom = p\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn result\n\t\t},\n\t\trotatePoint({ x, y }, rads = this.effectiveRotationRads) {\n\t\t\treturn {\n\t\t\t\tx: x * Math.cos(rads) - y * Math.sin(rads),\n\t\t\t\ty: x * Math.sin(rads) + y * Math.cos(rads),\n\t\t\t}\n\t\t},\n\t\tinitDragState() {\n\t\t\tthis.drag = Object.keys(this.points).reduce((prev, curr) => {\n\t\t\t\tprev[curr] = false\n\t\t\t\treturn prev\n\t\t\t}, {})\n\t\t},\n\t\t// Throttle this computationally expensive function\n\t\trefreshStats() {\n\t\t\tif (!this.manager.statsDisabled && this.area && !this.draggingAny) {\n\t\t\t\tthis.stats = this.getVoxelStats()\n\t\t\t}\n\t\t},\n\t\tgetVoxelStats(fnInsideBounds = this.pointInsideBounds) {\n\t\t\tlet mean = 0\n\t\t\tlet min = 0\n\t\t\tlet max = 0\n\t\t\tlet stdDev = 0\n\t\t\t// Check for valid bounds\n\t\t\tif (this.area) {\n\t\t\t\tconst voxelValues = this.getVoxelValuesInBounds(fnInsideBounds)\n\t\t\t\tmean = average(voxelValues)\n\t\t\t\tmin = findMin(voxelValues)\n\t\t\t\tmax = findMax(voxelValues)\n\t\t\t\tstdDev = standardDeviation(voxelValues)\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tmean: formatNumber(round(mean, 2)),\n\t\t\t\tmin: formatNumber(round(min, 2)),\n\t\t\t\tmax: formatNumber(round(max, 2)),\n\t\t\t\tstdDev: formatNumber(round(stdDev, 2)),\n\t\t\t}\n\t\t},\n\t\tgetTextAnchorData() {\n\t\t\treturn {\n\t\t\t\tpoints: Object.values(this.points),\n\t\t\t\tanchorAlign: 'right',\n\t\t\t}\n\t\t},\n\t\tpointBetween(p1, p2) {\n\t\t\treturn {\n\t\t\t\tx: (p1.x + p2.x) / 2.0,\n\t\t\t\ty: (p1.y + p2.y) / 2.0,\n\t\t\t}\n\t\t},\n\t\tpointAligned(points, align) {\n\t\t\tlet alignPoint = null\n\t\t\tconst alignTop = align.includes('top')\n\t\t\tconst alignBottom = align.includes('bottom')\n\t\t\tconst alignLeft = align.includes('left')\n\t\t\tconst alignRight = align.includes('right')\n\t\t\tconst hasVerticalAlign = alignTop || alignBottom\n\t\t\tconst hasHorizontalAlign = alignLeft || alignRight\n\t\t\tpoints.forEach(({ x, y }) => {\n\t\t\t\tif (!alignPoint) {\n\t\t\t\t\talignPoint = { x, y }\n\t\t\t\t} else if ((alignRight && x > alignPoint.x) || (alignLeft && x < alignPoint.x)) {\n\t\t\t\t\talignPoint.x = x\n\t\t\t\t\tif (!hasVerticalAlign) {\n\t\t\t\t\t\talignPoint.y = y\n\t\t\t\t\t}\n\t\t\t\t} else if ((alignTop && y < alignPoint.y) || (alignBottom && y > alignPoint.y)) {\n\t\t\t\t\talignPoint.y = y\n\t\t\t\t\tif (!hasHorizontalAlign) {\n\t\t\t\t\t\talignPoint.x = x\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn alignPoint\n\t\t},\n\t\tpointInsideBounds(width, height, x, y) {\n\t\t\t// Override this function if the annotation has a non-rectangular shape\n\t\t\t// The function is passed the width and height of a generic 2dArray, and the row:x column:y of a cell in that array.\n\t\t\t// Return true if that cell should be included.\n\t\t\treturn true\n\t\t},\n\t\t// Returns the coordinates of the horizontal and vertical bounds\n\t\t// WARNING: This implementation will work for shapes that are symmetric when rotated.\n\t\t// For shapes that need to account for rotations, this function needs to be overridden\n\t\tgetDisplayBoundsVectors() {\n\t\t\treturn {\n\t\t\t\torigin: {\n\t\t\t\t\tx: this.minX,\n\t\t\t\t\ty: this.minY,\n\t\t\t\t},\n\t\t\t\thorizontal: {\n\t\t\t\t\tx: this.maxX,\n\t\t\t\t\ty: this.minY,\n\t\t\t\t},\n\t\t\t\tvertical: {\n\t\t\t\t\tx: this.minX,\n\t\t\t\t\ty: this.maxY,\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\t// Returns an array of voxel values, that are found between minX/Y, maxX/Y,\n\t\t// using fnInsideBounds to filter by shape (circle, ellipse, etc)\n\t\t// NOTE: there is the potential to miss a voxel row on the max bounds, between the last *Step and *Dist, but should be ok in the grand scheme of things\n\t\tgetVoxelValuesInBounds(fnInsideBounds = () => true) {\n\t\t\t// Get the coordinates of the horizontal and vertical bounds\n\t\t\tconst { origin, horizontal, vertical } = this.getDisplayBoundsVectors()\n\t\t\tconst { x: x1, y: y1, z: z1 } = this.manager.displayToWorld(origin)\n\t\t\tconst { x: x2, y: y2, z: z2 } = this.manager.displayToWorld(horizontal)\n\t\t\tconst { x: x3, y: y3, z: z3 } = this.manager.displayToWorld(vertical)\n\n\t\t\t// Build the length vectors for the horizontal and vertical bounds\n\t\t\tconst start = vec3.fromValues(x1, y1, z1)\n\t\t\tconst horizontalVec = vec3.subtract([], [x2, y2, z2], start)\n\t\t\tconst verticalVec = vec3.subtract([], [x3, y3, z3], start)\n\n\t\t\tconst hDist = Math.sqrt(vec3.sqrLen(horizontalVec))\n\t\t\tconst vDist = Math.sqrt(vec3.sqrLen(verticalVec))\n\n\t\t\tconst hStep = vec3.normalize([], horizontalVec)\n\t\t\tconst vStep = vec3.normalize([], verticalVec)\n\n\t\t\tconst worldGrid = []\n\n\t\t\tfor (let i = 0; i < hDist; i++) {\n\t\t\t\tfor (let j = 0; j < vDist; j++) {\n\t\t\t\t\t// NOTE: This is where we would eventually do thickness filtering,\n\t\t\t\t\t// using camera vector & thickness as zStep and zDist to get another array, and use the blend mode to give the result for that pixel\n\t\t\t\t\tif (fnInsideBounds(hDist, vDist, i, j)) {\n\t\t\t\t\t\tconst pt = vec3.copy([], start)\n\t\t\t\t\t\tvec3.add(pt, pt, vec3.scale([], hStep, i))\n\t\t\t\t\t\tvec3.add(pt, pt, vec3.scale([], vStep, j))\n\t\t\t\t\t\tconst index = this.manager.getVoxelIndexFromWorldCoord(pt)\n\t\t\t\t\t\tworldGrid.push(index)\n\n\t\t\t\t\t\t// on the first loop, check the max horizontal values\n\t\t\t\t\t\tif (i === 0 && fnInsideBounds(hDist, vDist, hDist, j)) {\n\t\t\t\t\t\t\tconst pt = vec3.copy([], start)\n\t\t\t\t\t\t\tvec3.add(pt, pt, vec3.scale([], hStep, i))\n\t\t\t\t\t\t\tvec3.add(pt, pt, vec3.scale([], vStep, vDist))\n\t\t\t\t\t\t\tconst index = this.manager.getVoxelIndexFromWorldCoord(pt)\n\t\t\t\t\t\t\tworldGrid.push(index)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// for each horizontal loop, check the most vertical point as well.\n\t\t\t\t\tif (fnInsideBounds(hDist, vDist, i, vDist)) {\n\t\t\t\t\t\tconst pt = vec3.copy([], start)\n\t\t\t\t\t\tvec3.add(pt, pt, vec3.scale([], hStep, i))\n\t\t\t\t\t\tvec3.add(pt, pt, vec3.scale([], vStep, vDist))\n\t\t\t\t\t\tconst index = this.manager.getVoxelIndexFromWorldCoord(pt)\n\t\t\t\t\t\tworldGrid.push(index)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// bottom-right corner, check the max values\n\t\t\tif (fnInsideBounds(hDist, vDist, hDist, vDist)) {\n\t\t\t\tconst pt = vec3.copy([], start)\n\t\t\t\tvec3.add(pt, pt, vec3.scale([], hStep, hDist))\n\t\t\t\tvec3.add(pt, pt, vec3.scale([], vStep, vDist))\n\t\t\t\tconst index = this.manager.getVoxelIndexFromWorldCoord(pt)\n\t\t\t\tworldGrid.push(index)\n\t\t\t}\n\n\t\t\t// Deduplicate indexes before returning the mapped voxel value array\n\t\t\treturn uniq(worldGrid)\n\t\t\t\t.map(voxelIndex => this.manager.getVoxelValueFromIndex(voxelIndex))\n\t\t\t\t.filter(v => !Number.isNaN(v))\n\t\t},\n\t},\n}\n","import baseMixin from './baseMixin'\n\nexport default {\n\tmixins: [baseMixin],\n\tdata() {\n\t\treturn {\n\t\t\tpoints: {\n\t\t\t\tstart: null,\n\t\t\t\tend: null,\n\t\t\t},\n\t\t}\n\t},\n\tcomputed: {\n\t\tstart: {\n\t\t\tget() {\n\t\t\t\treturn this.points.start\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.start = val\n\t\t\t},\n\t\t},\n\t\tend: {\n\t\t\tget() {\n\t\t\t\treturn this.points.end\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.end = val\n\t\t\t},\n\t\t},\n\t},\n\tmethods: {\n\t\tonInteractionBegin() {\n\t\t\tthis.start = { ...this.pointerPosition }\n\t\t\tthis.end = { ...this.pointerPosition }\n\t\t},\n\t},\n}\n","import baseMixin from './baseMixin'\n\nexport default {\n\tmixins: [baseMixin],\n\tdata() {\n\t\treturn {\n\t\t\tpoints: {\n\t\t\t\tstart: null,\n\t\t\t\tmiddle: null,\n\t\t\t\tend: null,\n\t\t\t},\n\t\t}\n\t},\n\tcomputed: {\n\t\tstart: {\n\t\t\tget() {\n\t\t\t\treturn this.points.start\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.start = val\n\t\t\t},\n\t\t},\n\t\tmiddle: {\n\t\t\tget() {\n\t\t\t\treturn this.points.middle\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.middle = val\n\t\t\t},\n\t\t},\n\t\tend: {\n\t\t\tget() {\n\t\t\t\treturn this.points.end\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.end = val\n\t\t\t},\n\t\t},\n\t},\n\tmethods: {\n\t\tonInteractionBegin() {\n\t\t\tthis.start = { ...this.pointerPosition }\n\t\t\tthis.middle = { ...this.pointerPosition }\n\t\t},\n\t},\n}\n","import baseMixin from './baseMixin'\n\nexport default {\n\tmixins: [baseMixin],\n\tdata() {\n\t\treturn {\n\t\t\tpoints: {\n\t\t\t\tp1: null,\n\t\t\t\tp2: null,\n\t\t\t\tp3: null,\n\t\t\t\tp4: null,\n\t\t\t},\n\t\t\tworldCoords: {\n\t\t\t\tp1: null,\n\t\t\t\tp2: null,\n\t\t\t\tp3: null,\n\t\t\t\tp4: null,\n\t\t\t},\n\t\t}\n\t},\n\tcomputed: {\n\t\tp1: {\n\t\t\tget() {\n\t\t\t\treturn this.points.p1\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.p1 = val\n\t\t\t},\n\t\t},\n\t\tp2: {\n\t\t\tget() {\n\t\t\t\treturn this.points.p2\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.p2 = val\n\t\t\t},\n\t\t},\n\t\tp3: {\n\t\t\tget() {\n\t\t\t\treturn this.points.p3\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.p3 = val\n\t\t\t},\n\t\t},\n\t\tp4: {\n\t\t\tget() {\n\t\t\t\treturn this.points.p4\n\t\t\t},\n\t\t\tset(val) {\n\t\t\t\tthis.points.p4 = val\n\t\t\t},\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.$watch(\n\t\t\tfunction() {\n\t\t\t\treturn `${this.worldCoords.p1},${this.worldCoords.p3}`\n\t\t\t},\n\t\t\tfunction() {\n\t\t\t\tconst { p2, p4 } = this.getRotatedPoints(this.points)\n\t\t\t\tthis.p2 = p2\n\t\t\t\tthis.p4 = p4\n\t\t\t},\n\t\t\t{\n\t\t\t\tdeep: true,\n\t\t\t}\n\t\t)\n\t},\n\tmethods: {\n\t\tonInteractionBegin() {\n\t\t\tthis.p1 = { ...this.pointerPosition }\n\t\t\tthis.p2 = { ...this.pointerPosition }\n\t\t\tthis.p3 = { ...this.pointerPosition }\n\t\t\tthis.p4 = { ...this.pointerPosition }\n\t\t},\n\t\tgetRotatedPoints(points) {\n\t\t\tconst { p1, p3 } = points\n\t\t\tconst effRot = this.effectiveRotationRads\n\t\t\tif (p1 && p3) {\n\t\t\t\t// Rotate points to offset effective rotation\n\t\t\t\tconst p1Rotate = this.rotatePoint(p1, -effRot)\n\t\t\t\tconst p3Rotate = this.rotatePoint(p3, -effRot)\n\t\t\t\t// Calculate the 2nd pair of opposite points\n\t\t\t\tconst p2 = this.rotatePoint({ x: p3Rotate.x, y: p1Rotate.y, z: 0 }, effRot)\n\t\t\t\tconst p4 = this.rotatePoint({ x: p1Rotate.x, y: p3Rotate.y, z: 0 }, effRot)\n\t\t\t\treturn { p2, p4 }\n\t\t\t}\n\t\t},\n\t\tgetDisplayBoundsVectors() {\n\t\t\treturn {\n\t\t\t\torigin: {\n\t\t\t\t\tx: this.p1.x,\n\t\t\t\t\ty: this.p1.y,\n\t\t\t\t},\n\t\t\t\thorizontal: {\n\t\t\t\t\tx: this.p2.x,\n\t\t\t\t\ty: this.p2.y,\n\t\t\t\t},\n\t\t\t\tvertical: {\n\t\t\t\t\tx: this.p4.x,\n\t\t\t\t\ty: this.p4.y,\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\tgetTextAnchorData() {\n\t\t\tconst midPoints = [\n\t\t\t\tthis.pointBetween(this.p1, this.p2),\n\t\t\t\tthis.pointBetween(this.p2, this.p3),\n\t\t\t\tthis.pointBetween(this.p3, this.p4),\n\t\t\t\tthis.pointBetween(this.p4, this.p1),\n\t\t\t]\n\t\t\tconst points = [this.p1, this.p2, this.p3, this.p4, ...midPoints]\n\t\t\tconst cornerPoints = this.getCornerPoints(midPoints)\n\t\t\tconst anchor = cornerPoints.right\n\t\t\treturn {\n\t\t\t\tpoints,\n\t\t\t\tanchor,\n\t\t\t\talignVertical: 'middle',\n\t\t\t}\n\t\t},\n\t},\n}\n","import _baseMixin from './baseMixin'\nimport _startEndMixin from './startEndMixin'\nimport _startMiddleEndMixin from './startMiddleEndMixin'\nimport _quadMixin from './quadMixin'\n\nexport const baseMixin = _baseMixin\nexport const startEndMixin = _startEndMixin\nexport const startMiddleEndMixin = _startMiddleEndMixin\nexport const quadMixin = _quadMixin\n\nexport default {\n\tbaseMixin,\n\tstartEndMixin,\n\tstartMiddleEndMixin,\n\tquadMixin,\n}\n","\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!./DragAnnotation.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!./DragAnnotation.vue?vue&type=script&lang=js\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('g',[(_vm.showConnectorLine)?_c('line',{style:(_vm.lineStyle),attrs:{\"x1\":_vm.nearestPositionOnRect.x,\"y1\":_vm.nearestPositionOnRect.y,\"x2\":_vm.end.x,\"y2\":_vm.end.y}}):_vm._e(),_c('drag-annotation',{attrs:{\"id\":_vm.id,\"value\":_vm.start,\"group-id\":_vm.groupId},on:{\"input\":_vm.onDragInput,\"drag-start\":_vm.onDragStart,\"drag-end\":_vm.onDragEnd}},[_c('svg',{staticStyle:{\"overflow\":\"visible\"},style:(_vm.groupStyle),attrs:{\"x\":_vm.textPosition.x,\"y\":_vm.textPosition.y,\"data-position-ref\":\"\"}},[_c('rect',{style:(_vm.rectStyle),attrs:{\"x\":0,\"y\":0,\"rx\":\"2\",\"ry\":\"2\",\"width\":_vm.textWidth,\"height\":_vm.textHeight}}),_c('rect',{directives:[{name:\"dblclick\",rawName:\"v-dblclick\",value:(function (e) { return _vm.onDoubleClick(e); }),expression:\"e => onDoubleClick(e)\"}],style:(_vm.fillHitTargetStyle),attrs:{\"data-id\":(\"\" + _vm.id),\"data-group-id\":_vm.groupId,\"x\":0,\"y\":0,\"rx\":\"2\",\"ry\":\"2\",\"width\":_vm.textWidth,\"height\":_vm.textHeight}}),_vm._l((_vm.textValues),function(tv,i){return _c('text',{key:i,ref:\"textValues\",refInFor:true,style:(_vm.textStyle),attrs:{\"x\":5,\"y\":((i * _vm.lineHeight + 16) + \"px\")},domProps:{\"innerHTML\":_vm._s(tv)}})})],2)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./TextAnnotation.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!./TextAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextAnnotation.vue?vue&type=template&id=42a9be17\"\nimport script from \"./TextAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./TextAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\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!./LengthAnnotation.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!./LengthAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LengthAnnotation.vue?vue&type=template&id=f0846454\"\nimport script from \"./LengthAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./LengthAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('drag-annotation',{attrs:{\"id\":(_vm.id + \"-rect\"),\"group-id\":_vm.groupId},on:{\"drag-start\":function($event){_vm.draggingAll = true},\"drag-end\":function($event){_vm.draggingAll = false}},model:{value:(_vm.position),callback:function ($$v) {_vm.position=$$v},expression:\"position\"}},[(_vm.p1 && _vm.p2 && _vm.p3 && _vm.p4)?_c('g',{style:(_vm.groupStyle),attrs:{\"data-position-ref\":\"\"}},[_c('polygon',{style:(_vm.strokeStyle),attrs:{\"points\":(\"\\n\\t\\t\\t\\t\" + (_vm.p1.x) + \",\" + (_vm.p1.y) + \"\\n\\t\\t\\t\\t\" + (_vm.p2.x) + \",\" + (_vm.p2.y) + \"\\n\\t\\t\\t\\t\" + (_vm.p3.x) + \",\" + (_vm.p3.y) + \"\\n\\t\\t\\t\\t\" + (_vm.p4.x) + \",\" + (_vm.p4.y) + \"\\n\\t\\t\\t\")}}),_c('polygon',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-rect\"),\"data-group-id\":_vm.groupId,\"points\":(\"\\n\\t\\t\\t\\t\" + (_vm.p1.x) + \",\" + (_vm.p1.y) + \"\\n\\t\\t\\t\\t\" + (_vm.p2.x) + \",\" + (_vm.p2.y) + \"\\n\\t\\t\\t\\t\" + (_vm.p3.x) + \",\" + (_vm.p3.y) + \"\\n\\t\\t\\t\\t\" + (_vm.p4.x) + \",\" + (_vm.p4.y) + \"\\n\\t\\t\\t\")}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"show-precision\":\"\"},on:{\"drag-start\":function($event){_vm.drag.p1 = true},\"drag-end\":function($event){_vm.drag.p1 = false}},model:{value:(_vm.p1),callback:function ($$v) {_vm.p1=$$v},expression:\"p1\"}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"show-precision\":\"\",\"drag-on-load\":\"\"},on:{\"drag-start\":function($event){_vm.drag.p3 = true},\"drag-end\":function($event){_vm.drag.p3 = false}},model:{value:(_vm.p3),callback:function ($$v) {_vm.p3=$$v},expression:\"p3\"}}),(_vm.statsVisible)?_c('text-annotation',{attrs:{\"value\":_vm.statText,\"group-id\":_vm.groupId,\"event-source\":_vm.textSource,\"color\":_vm.activeColor}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./RectAnnotation.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!./RectAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RectAnnotation.vue?vue&type=template&id=4eb988af\"\nimport script from \"./RectAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./RectAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('drag-annotation',{attrs:{\"id\":(_vm.id + \"-circle\"),\"group-id\":_vm.groupId},on:{\"drag-start\":function($event){_vm.draggingAll = true},\"drag-end\":function($event){_vm.draggingAll = false}},model:{value:(_vm.position),callback:function ($$v) {_vm.position=$$v},expression:\"position\"}},[(_vm.p1 && _vm.p3)?_c('g',{style:(_vm.groupStyle),attrs:{\"data-position-ref\":\"\"}},[_c('circle',{style:(_vm.strokeStyle),attrs:{\"cx\":_vm.center.x,\"cy\":_vm.center.y,\"r\":_vm.radius}}),_c('circle',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-circle\"),\"data-group-id\":_vm.groupId,\"cx\":_vm.center.x,\"cy\":_vm.center.y,\"r\":_vm.radius}}),_c('crosshairs-annotation',{attrs:{\"id\":(_vm.id + \"-circle\"),\"group-id\":_vm.groupId,\"origin\":_vm.center}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"value\":_vm.p1,\"color\":_vm.activeColor},on:{\"input\":_vm.updateStart,\"drag-start\":function($event){_vm.drag.p1 = true},\"drag-end\":function($event){_vm.drag.p1 = false}}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"value\":_vm.p3,\"color\":_vm.activeColor,\"drag-on-load\":\"\"},on:{\"input\":_vm.updateEnd,\"drag-start\":function($event){_vm.drag.p3 = true},\"drag-end\":function($event){_vm.drag.p3 = false}}}),(_vm.statsVisible)?_c('text-annotation',{attrs:{\"value\":_vm.statText,\"group-id\":_vm.groupId,\"event-source\":_vm.textSource,\"color\":_vm.activeColor}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('g',{style:({ filter: 'url(#shadow)' })},[_c('line',{style:(_vm.lineStyle),attrs:{\"x1\":_vm.origin.x - 5,\"y1\":_vm.origin.y,\"x2\":_vm.origin.x + 5,\"y2\":_vm.origin.y}}),_c('line',{style:(_vm.lineStyle),attrs:{\"x1\":_vm.origin.x,\"y1\":_vm.origin.y - 5,\"x2\":_vm.origin.x,\"y2\":_vm.origin.y + 5}}),_c('rect',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(\"\" + _vm.id),\"data-group-id\":_vm.groupId,\"x\":_vm.origin.x - 5,\"y\":_vm.origin.y - 5,\"width\":\"10\",\"height\":\"10\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./CrosshairsAnnotation.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!./CrosshairsAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CrosshairsAnnotation.vue?vue&type=template&id=5b370a52\"\nimport script from \"./CrosshairsAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./CrosshairsAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\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!./CircleAnnotation.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!./CircleAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CircleAnnotation.vue?vue&type=template&id=001bafea\"\nimport script from \"./CircleAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./CircleAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('drag-annotation',{attrs:{\"id\":(_vm.id + \"-ellipse\"),\"group-id\":_vm.groupId},on:{\"drag-start\":function($event){_vm.draggingAll = true},\"drag-end\":function($event){_vm.draggingAll = false}},model:{value:(_vm.position),callback:function ($$v) {_vm.position=$$v},expression:\"position\"}},[(_vm.p1 && _vm.p2 && _vm.p3 && _vm.p4)?_c('g',{style:(_vm.groupStyle),attrs:{\"data-position-ref\":\"\"}},[_c('path',{style:(_vm.strokeStyle),attrs:{\"d\":_vm.path}}),_c('path',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-ellipse\"),\"data-group-id\":_vm.groupId,\"d\":_vm.path}}),_c('crosshairs-annotation',{attrs:{\"id\":(_vm.id + \"-ellipse\"),\"group-id\":_vm.groupId,\"origin\":_vm.center}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor},on:{\"drag-start\":function($event){_vm.drag.p1 = true},\"drag-end\":function($event){_vm.drag.p1 = false}},model:{value:(_vm.p1),callback:function ($$v) {_vm.p1=$$v},expression:\"p1\"}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"drag-on-load\":\"\"},on:{\"drag-start\":function($event){_vm.drag.p3 = true},\"drag-end\":function($event){_vm.drag.p3 = false}},model:{value:(_vm.p3),callback:function ($$v) {_vm.p3=$$v},expression:\"p3\"}}),(_vm.statsVisible)?_c('text-annotation',{attrs:{\"value\":_vm.statText,\"group-id\":_vm.groupId,\"event-source\":_vm.textSource,\"color\":_vm.activeColor}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./EllipseAnnotation.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!./EllipseAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EllipseAnnotation.vue?vue&type=template&id=2b57ce66\"\nimport script from \"./EllipseAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./EllipseAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('drag-annotation',{attrs:{\"id\":(_vm.id + \"-angle\"),\"group-id\":_vm.groupId},on:{\"drag-start\":function($event){_vm.draggingAll = true},\"drag-end\":function($event){_vm.draggingAll = false}},model:{value:(_vm.position),callback:function ($$v) {_vm.position=$$v},expression:\"position\"}},[(_vm.start && _vm.middle)?_c('g',{style:(_vm.groupStyle),attrs:{\"data-position-ref\":\"\"}},[_c('line',{style:(_vm.lineStyleSM),attrs:{\"x1\":_vm.start.x,\"y1\":_vm.start.y,\"x2\":_vm.middle.x,\"y2\":_vm.middle.y}}),_c('line',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-angle\"),\"data-group-id\":_vm.groupId,\"x1\":_vm.start.x,\"y1\":_vm.start.y,\"x2\":_vm.middle.x,\"y2\":_vm.middle.y}}),(_vm.end)?_c('line',{style:(_vm.lineStyleME),attrs:{\"x1\":_vm.middle.x,\"y1\":_vm.middle.y,\"x2\":_vm.end.x,\"y2\":_vm.end.y}}):_vm._e(),(_vm.end)?_c('line',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-angle\"),\"data-group-id\":_vm.groupId,\"x1\":_vm.middle.x,\"y1\":_vm.middle.y,\"x2\":_vm.end.x,\"y2\":_vm.end.y}}):_vm._e(),(_vm.arcRadius)?_c('path',{style:(_vm.strokeStyle),attrs:{\"d\":_vm.arcPath}}):_vm._e(),(_vm.arcRadius)?_c('path',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-angle\"),\"data-group-id\":_vm.groupId,\"d\":_vm.arcPath}}):_vm._e(),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"show-precision\":\"\"},on:{\"drag-start\":function($event){_vm.drag.start = true},\"drag-end\":function($event){_vm.drag.start = false},\"radius-updated\":function($event){return _vm.setHandleRadius('start', $event)}},model:{value:(_vm.start),callback:function ($$v) {_vm.start=$$v},expression:\"start\"}}),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"show-precision\":\"\",\"drag-on-load\":\"\"},on:{\"drag-start\":function($event){_vm.drag.middle = true},\"drag-end\":_vm.onMiddleDragEnd,\"radius-updated\":function($event){return _vm.setHandleRadius('middle', $event)}},model:{value:(_vm.middle),callback:function ($$v) {_vm.middle=$$v},expression:\"middle\"}}),(_vm.end)?_c('drag-annotation',{ref:\"end\",attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"drag-on-load\":!_vm.isMobileOS,\"show-precision\":\"\"},on:{\"drag-start\":function($event){_vm.drag.end = true},\"drag-end\":function($event){_vm.drag.end = false},\"radius-updated\":function($event){return _vm.setHandleRadius('end', $event)}},model:{value:(_vm.end),callback:function ($$v) {_vm.end=$$v},expression:\"end\"}}):_vm._e(),(_vm.end && _vm.statsVisible)?_c('text-annotation',{attrs:{\"value\":_vm.statText,\"group-id\":_vm.groupId,\"event-source\":_vm.textSource,\"color\":_vm.activeColor}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./AngleAnnotation.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!./AngleAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AngleAnnotation.vue?vue&type=template&id=0e30bf90\"\nimport script from \"./AngleAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./AngleAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('drag-annotation',{attrs:{\"id\":(_vm.id + \"-line\"),\"group-id\":_vm.groupId},on:{\"drag-start\":function($event){_vm.draggingAll = true},\"drag-end\":function($event){_vm.draggingAll = false}},model:{value:(_vm.position),callback:function ($$v) {_vm.position=$$v},expression:\"position\"}},[(_vm.start && _vm.end)?_c('g',{style:(_vm.groupStyle),attrs:{\"data-position-ref\":\"\"}},[_c('line',{style:(_vm.strokeStyle),attrs:{\"x1\":_vm.start.x,\"y1\":_vm.start.y,\"x2\":_vm.end.x,\"y2\":_vm.end.y}}),_c('line',{style:(_vm.strokeHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-line\"),\"data-group-id\":_vm.groupId,\"x1\":_vm.start.x,\"y1\":_vm.start.y,\"x2\":_vm.end.x,\"y2\":_vm.end.y}}),_c('drag-annotation',{attrs:{\"id\":(_vm.id + \"-start\"),\"group-id\":_vm.groupId,\"show-precision\":\"\"},on:{\"drag-start\":function($event){_vm.drag.start = true},\"drag-end\":function($event){_vm.drag.start = false}},model:{value:(_vm.start),callback:function ($$v) {_vm.start=$$v},expression:\"start\"}},[_c('g',[_c('polygon',{style:(_vm.arrowHeadStyle),attrs:{\"data-group-id\":_vm.groupId,\"points\":((_vm.start.x) + \",\" + (_vm.start.y) + \" \" + (_vm.start.x + _vm.arrowHeadWidth) + \",\" + (_vm.start.y +\n\t\t\t\t\t\t\t_vm.arrowHeadHeight / 2) + \" \" + (_vm.start.x + _vm.arrowHeadWidth) + \",\" + (_vm.start.y - _vm.arrowHeadHeight / 2)),\"transform\":_vm.arrowHeadTransform}}),_c('polygon',{style:(_vm.arrowHeadHitTargetStyle),attrs:{\"data-id\":(_vm.id + \"-start\"),\"data-group-id\":_vm.groupId,\"points\":((_vm.start.x) + \",\" + (_vm.start.y) + \" \" + (_vm.start.x + _vm.arrowHeadWidth) + \",\" + (_vm.start.y +\n\t\t\t\t\t\t\t_vm.arrowHeadHeight / 2) + \" \" + (_vm.start.x + _vm.arrowHeadWidth) + \",\" + (_vm.start.y - _vm.arrowHeadHeight / 2)),\"transform\":_vm.arrowHeadTransform}})])]),_c('drag-annotation',{attrs:{\"group-id\":_vm.groupId,\"color\":_vm.activeColor,\"show-precision\":\"\",\"drag-on-load\":\"\"},on:{\"drag-start\":function($event){_vm.drag.end = true},\"drag-end\":function($event){_vm.drag.end = false},\"radius-updated\":function($event){return _vm.setHandleRadius('end', $event)}},model:{value:(_vm.end),callback:function ($$v) {_vm.end=$$v},expression:\"end\"}}),(_vm.statsVisible)?_c('text-annotation',{attrs:{\"group-id\":_vm.groupId,\"event-source\":_vm.textSource,\"color\":_vm.activeColor},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}}):_vm._e()],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./ArrowAnnotation.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!./ArrowAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ArrowAnnotation.vue?vue&type=template&id=3fc3631b\"\nimport script from \"./ArrowAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./ArrowAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('g',[_c('text-annotation',{attrs:{\"group-id\":_vm.groupId,\"anchor\":_vm.pointerPosition,\"value\":_vm.hoveredVoxelValue}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./ProbeAnnotation.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!./ProbeAnnotation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProbeAnnotation.vue?vue&type=template&id=d611086a\"\nimport script from \"./ProbeAnnotation.vue?vue&type=script&lang=js\"\nexport * from \"./ProbeAnnotation.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\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!./AnnotationManager.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!./AnnotationManager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AnnotationManager.vue?vue&type=template&id=c917b244&scoped=true\"\nimport script from \"./AnnotationManager.vue?vue&type=script&lang=js\"\nexport * from \"./AnnotationManager.vue?vue&type=script&lang=js\"\nimport style0 from \"./AnnotationManager.vue?vue&type=style&index=0&id=c917b244&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 \"c917b244\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hasData)?_c('svg',{ref:\"container\",class:_vm.svgClass,attrs:{\"viewBox\":_vm.viewBox,\"width\":_vm.width,\"height\":_vm.height},on:{\"mousemove\":_vm.onMove,\"mouseup\":_vm.endMove,\"touchmove\":function($event){$event.preventDefault();return _vm.onMove($event)},\"touchend\":_vm.endMove}},[_c('circle',{staticClass:\"captureMouse\",staticStyle:{\"fill\":\"transparent\",\"cursor\":\"grab\"},attrs:{\"cx\":_vm.x,\"cy\":_vm.y,\"r\":_vm.isTouch ? 22 : 10},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'moveAxis'); },\"touchstart\":function (e) { return _vm.startAction(e, 'moveAxis'); }}}),_c('g',{attrs:{\"transform\":_vm.viewTransform}},[_c('g',{style:((\"color: \" + (_vm.yAxis.color) + \"; fill: currentColor;\")),attrs:{\"transform\":_vm.yTransform}},[_c('line',{staticStyle:{\"stroke\":\"currentColor\",\"stroke-width\":\"2\"},attrs:{\"x1\":_vm.x,\"y1\":_vm.y - _vm.maxLength,\"x2\":_vm.x,\"y2\":_vm.y + _vm.maxLength}}),_c('circle',{directives:[{name:\"dblclick\",rawName:\"v-dblclick\",value:(function (e) { return _vm.resetAxisRotation(e, 'Y'); }),expression:\"e => resetAxisRotation(e, 'Y')\"}],class:{\n\t\t\t\t\t'hover rotateCursor': true,\n\t\t\t\t\tactive: _vm.mousedown && _vm.action === 'rotateY' && !_vm.invertAngle,\n\t\t\t\t\ttouch: _vm.isTouch,\n\t\t\t\t},attrs:{\"cx\":_vm.x,\"cy\":_vm.y + _vm.circlePos,\"r\":\"6\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'rotateY'); },\"touchstart\":function (e) { return _vm.startAction(e, 'rotateY'); }}}),_c('circle',{directives:[{name:\"dblclick\",rawName:\"v-dblclick\",value:(function (e) { return _vm.resetAxisRotation(e, 'Y'); }),expression:\"e => resetAxisRotation(e, 'Y')\"}],class:{\n\t\t\t\t\t'hover rotateCursor y-top': true,\n\t\t\t\t\tactive: _vm.mousedown && _vm.action === 'rotateY' && _vm.invertAngle,\n\t\t\t\t\ttouch: _vm.isTouch,\n\t\t\t\t},attrs:{\"cx\":_vm.x,\"cy\":_vm.y - _vm.circlePos,\"r\":\"6\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'rotateY', true); },\"touchstart\":function (e) { return _vm.startAction(e, 'rotateY', true); }}}),_c('rect',{staticClass:\"hover thicknessCursor\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x - 4 + _vm.yThicknessPixels,\"y\":_vm.y + _vm.squarePos,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessY'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessY'); }}}),_c('rect',{staticClass:\"hover thicknessCursor y-top\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x - 4 + _vm.yThicknessPixels,\"y\":_vm.y - _vm.squarePos - 8,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessY'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessY'); }}}),(_vm.yAxis.thickness >= 1)?_c('g',[_c('rect',{staticClass:\"hover thicknessCursor\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x - 4 - _vm.yThicknessPixels,\"y\":_vm.y + _vm.squarePos,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessY'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessY'); }}}),_c('rect',{staticClass:\"hover thicknessCursor\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x - 4 - _vm.yThicknessPixels,\"y\":_vm.y - _vm.squarePos - 8,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessY'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessY'); }}}),_c('g',{staticStyle:{\"stroke\":\"currentColor\",\"stroke-width\":\"1\",\"stroke-dasharray\":\"4\"}},[_c('line',{attrs:{\"x1\":_vm.x - _vm.yThicknessPixels,\"y1\":_vm.y - _vm.maxLength,\"x2\":_vm.x - _vm.yThicknessPixels,\"y2\":_vm.y + _vm.maxLength}}),_c('line',{attrs:{\"x1\":_vm.x + _vm.yThicknessPixels,\"y1\":_vm.y - _vm.maxLength,\"x2\":_vm.x + _vm.yThicknessPixels,\"y2\":_vm.y + _vm.maxLength}})])]):_vm._e()]),_c('g',{style:((\"color: \" + (_vm.xAxis.color) + \"; fill: currentColor;\")),attrs:{\"transform\":_vm.xTransform}},[_c('line',{staticStyle:{\"stroke\":\"currentColor\",\"stroke-width\":\"2\"},attrs:{\"x1\":_vm.x - _vm.maxLength,\"y1\":_vm.y,\"x2\":_vm.x + _vm.maxLength,\"y2\":_vm.y}}),_c('circle',{directives:[{name:\"dblclick\",rawName:\"v-dblclick\",value:(function (e) { return _vm.resetAxisRotation(e, 'X'); }),expression:\"e => resetAxisRotation(e, 'X')\"}],class:{\n\t\t\t\t\t'hover rotateCursor': true,\n\t\t\t\t\tactive: _vm.mousedown && _vm.action === 'rotateX' && !_vm.invertAngle,\n\t\t\t\t\ttouch: _vm.isTouch,\n\t\t\t\t},attrs:{\"cx\":_vm.x + _vm.circlePos,\"cy\":_vm.y,\"r\":\"6\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'rotateX'); },\"touchstart\":function (e) { return _vm.startAction(e, 'rotateX'); }}}),_c('circle',{directives:[{name:\"dblclick\",rawName:\"v-dblclick\",value:(function (e) { return _vm.resetAxisRotation(e, 'X'); }),expression:\"e => resetAxisRotation(e, 'X')\"}],class:{\n\t\t\t\t\t'hover rotateCursor': true,\n\t\t\t\t\tactive: _vm.mousedown && _vm.action === 'rotateX' && _vm.invertAngle,\n\t\t\t\t\ttouch: _vm.isTouch,\n\t\t\t\t},attrs:{\"cx\":_vm.x - _vm.circlePos,\"cy\":_vm.y,\"r\":\"6\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'rotateX', true); },\"touchstart\":function (e) { return _vm.startAction(e, 'rotateX'); }}}),_c('rect',{staticClass:\"hover thicknessCursor\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x + _vm.squarePos,\"y\":_vm.y - 4 - _vm.xThicknessPixels,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessX'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessX'); }}}),_c('rect',{staticClass:\"hover thicknessCursor\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x - _vm.squarePos - 8,\"y\":_vm.y - 4 - _vm.xThicknessPixels,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessX'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessX'); }}}),(_vm.xAxis.thickness >= 1)?_c('g',[_c('rect',{staticClass:\"hover thicknessCursor\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x + _vm.squarePos,\"y\":_vm.y - 4 + _vm.xThicknessPixels,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessX'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessX'); }}}),_c('rect',{staticClass:\"hover thicknessCursor\",class:{ touch: _vm.isTouch },attrs:{\"x\":_vm.x - _vm.squarePos - 8,\"y\":_vm.y - 4 + _vm.xThicknessPixels,\"width\":\"8\",\"height\":\"8\"},on:{\"mousedown\":function (e) { return _vm.startAction(e, 'thicknessX'); },\"touchstart\":function (e) { return _vm.startAction(e, 'thicknessX'); }}}),_c('g',{staticStyle:{\"stroke\":\"currentColor\",\"stroke-width\":\"1\",\"stroke-dasharray\":\"4\"}},[_c('line',{attrs:{\"x1\":_vm.x - _vm.maxLength,\"y1\":_vm.y - _vm.xThicknessPixels,\"x2\":_vm.x + _vm.maxLength,\"y2\":_vm.y - _vm.xThicknessPixels}}),_c('line',{attrs:{\"x1\":_vm.x - _vm.maxLength,\"y1\":_vm.y + _vm.xThicknessPixels,\"x2\":_vm.x + _vm.maxLength,\"y2\":_vm.y + _vm.xThicknessPixels}})])]):_vm._e()])])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function degrees2radians(degrees) {\n return (degrees * Math.PI) / 180;\n}\n\nexport function radians2degrees(rads) {\n return (rads * 180) / Math.PI;\n}\n","\n\n\n\n\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!./MPRInteractor.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!./MPRInteractor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MPRInteractor.vue?vue&type=template&id=500ce9db&scoped=true\"\nimport script from \"./MPRInteractor.vue?vue&type=script&lang=js\"\nexport * from \"./MPRInteractor.vue?vue&type=script&lang=js\"\nimport style0 from \"./MPRInteractor.vue?vue&type=style&index=0&id=500ce9db&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 \"500ce9db\",\n null\n \n)\n\nexport default component.exports","export function createSub(sub) {\n let s = sub\n const unsubscribe = () => {\n if (s) {\n s.unsubscribe()\n s = null\n }\n }\n return {\n sub(newSub) {\n unsubscribe()\n s = newSub\n },\n unsubscribe,\n }\n}\n","\n\n\n\n\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!./2DMPRView.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!./2DMPRView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./2DMPRView.vue?vue&type=template&id=2f936508&scoped=true\"\nimport script from \"./2DMPRView.vue?vue&type=script&lang=js\"\nexport * from \"./2DMPRView.vue?vue&type=script&lang=js\"\nimport style0 from \"./2DMPRView.vue?vue&type=style&index=0&id=2f936508&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 \"2f936508\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.initialized)?_c('div',{staticClass:\"mpr-layout\",style:(_vm.layout.container)},_vm._l((_vm.viewData),function(view,key){return _c('div',{key:key,staticClass:\"mpr-view-wrapper-rel\",style:(Object.assign({}, _vm.layout[view.position],\n\t\t\t(view.active && Object.assign({}, (_vm.switchModeActive && {\n\t\t\t\t\tpointerEvents: 'none',\n\t\t\t\t}))))),on:{\"click\":function () { return _vm.onClick(key); }}},[_c('div',{staticClass:\"mpr-view-wrapper-abs\"},[(_vm.switchModeActive && !view.active)?_c('button',{staticClass:\"mpr-switch-overlay\",on:{\"click\":function($event){$event.stopPropagation();return _vm.onSwitch(key)}}},[_c('p',[_vm._v(\"Click to switch\")])]):_vm._e(),_c('view-2d-mpr',{attrs:{\"volume-data\":_vm.volumeData,\"slice-intersection\":_vm.sliceIntersection,\"views\":_vm.viewData,\"on-created\":_vm.saveComponentRefGenerator(key),\"index\":key,\"should-animate\":_vm.shouldAnimate,\"overlay-information\":_vm.overlayInformation,\"show-axis\":_vm.showAxis,\"show-overlay-text\":_vm.showOverlayText,\"show-image-orientation-markers\":_vm.showImageOrientationMarkers,\"volume-direction\":_vm.volumeDirection},on:{\"mousedown\":_vm.onMouseDown,\"touchstart\":_vm.onTouchStart,\"click\":_vm.onClick,\"dblclick\":_vm.onDblClick,\"toggle-fullscreen\":_vm.onToggleFullscreen,\"rotate\":_vm.onRotate,\"thickness\":_vm.onThickness,\"pointSelected\":_vm.onCrosshairPointSelected}})],1)])}),0):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import vtkPlane from 'vtk.js/Sources/Common/DataModel/Plane'\n/**\n * Planes are of type `{position:[x,y,z], normal:[x,y,z]}`\n * returns an `[x,y,z]` array, or `NaN` if they do not intersect.\n */\nconst getPlaneIntersection = (plane1, plane2, plane3) => {\n\ttry {\n\t\tlet line = vtkPlane.intersectWithPlane(\n\t\t\tplane1.position,\n\t\t\tplane1.normal,\n\t\t\tplane2.position,\n\t\t\tplane2.normal\n\t\t)\n\t\tif (line.intersection) {\n\t\t\tconst { l0, l1 } = line\n\t\t\tconst intersectionLocation = vtkPlane.intersectWithLine(\n\t\t\t\tl0,\n\t\t\t\tl1,\n\t\t\t\tplane3.position,\n\t\t\t\tplane3.normal\n\t\t\t)\n\t\t\tif (intersectionLocation.intersection) {\n\t\t\t\treturn intersectionLocation.x\n\t\t\t}\n\t\t}\n\t} catch (err) {\n\t\tconsole.warn('some issue calculating the plane intersection', err)\n\t}\n\treturn NaN\n}\n\nexport default getPlaneIntersection\n","/**\n * @param {vtkVolume} volume A vtkVolume object to invert\n * @param {()=>void|{render:()=>void}} [rendering] - A function to render the volume after\n * being inverted or a RenderWindow object. Can be null.\n * @returns void\n */\nexport default (volume, rendering = null) => {\n\tif (!volume) {\n\t\treturn\n\t}\n\n\tconst rgbTransferFunction = volume.getProperty().getRGBTransferFunction(0)\n\tconst size = rgbTransferFunction.getSize()\n\n\tfor (let index = 0; index < size; index++) {\n\t\tconst nodeValue1 = []\n\n\t\trgbTransferFunction.getNodeValue(index, nodeValue1)\n\n\t\tnodeValue1[1] = 1 - nodeValue1[1]\n\t\tnodeValue1[2] = 1 - nodeValue1[2]\n\t\tnodeValue1[3] = 1 - nodeValue1[3]\n\n\t\trgbTransferFunction.setNodeValue(index, nodeValue1)\n\t}\n\n\tif (rendering instanceof Function) {\n\t\trendering()\n\t} else if (rendering && rendering.render) {\n\t\trendering.render()\n\t}\n}\n","import { detect } from 'detect-browser'\n\nexport default function getBrowserIssues(vtkView) {\n\tconst issues = {}\n\tif (vtkView) {\n\t\tconst glRW = vtkView.getOpenGLRenderWindow()\n\t\tconst allInfo = glRW.getGLInformations()\n\t\tconst { UNMASKED_RENDERER, UNMASKED_VENDOR, WEBGL_VERSION } = allInfo\n\n\t\tif (WEBGL_VERSION.value < 2) {\n\t\t\tissues.webglVersion = WEBGL_VERSION.value\n\t\t}\n\n\t\tconst strToTest = `${UNMASKED_VENDOR.value} / ${UNMASKED_RENDERER.value}`.toLowerCase()\n\t\tif (strToTest.indexOf('intel') !== -1) {\n\t\t\tissues.integratedGPU = UNMASKED_RENDERER.value\n\t\t}\n\n\t\tlet browser = detect()\n\t\tif (browser.name === 'safari') {\n\t\t\tissues.browser = 'Safari'\n\t\t} else if (browser.name === 'edge') {\n\t\t\t// Note: New edge is detected as Chrome, so we're good there.\n\t\t\tissues.browser = 'Microsoft Edge'\n\t\t}\n\t\t// TODO: add any other browsers that have issues here\n\n\t\tif (Object.keys(issues).length) issues.hasIssues = true\n\t}\n\treturn issues\n}\n","\n\n\n\n\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!./2DMPRManager.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!./2DMPRManager.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./2DMPRManager.vue?vue&type=template&id=3d7ec97b&scoped=true\"\nimport script from \"./2DMPRManager.vue?vue&type=script&lang=js\"\nexport * from \"./2DMPRManager.vue?vue&type=script&lang=js\"\nimport style0 from \"./2DMPRManager.vue?vue&type=style&index=0&id=3d7ec97b&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 \"3d7ec97b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.volumes && _vm.volumes.length)?_c('div',{staticClass:\"viewer3d\"},[_c('div',{ref:\"container\",staticClass:\"container3d\"}),_c('ViewportOverlay',_vm._b({attrs:{\"voi\":_vm.voi}},'ViewportOverlay',_vm.dataDetails,false))],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./View3D.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!./View3D.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./View3D.vue?vue&type=template&id=d44e8896\"\nimport script from \"./View3D.vue?vue&type=script&lang=js\"\nexport * from \"./View3D.vue?vue&type=script&lang=js\"\nimport style0 from \"./View3D.vue?vue&type=style&index=0&id=d44e8896&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","import * as cornerstone from 'cornerstone-core'\nimport { distance2BetweenPoints } from 'vtk.js/Sources/Common/Core/Math'\nimport { vec3 } from 'gl-matrix'\nimport camelCase from 'lodash/camelCase'\n\n// Minimum number of images allowed\nconst minImages = 15\n// Dot products should be 0, but sometimes are exponentially small\nconst maxOrientationDotProduct = 0.001\n\nfunction parseMetadataValue(value, key) {\n\tswitch (key) {\n\t\tcase 'ImagePositionPatient':\n\t\t\treturn value.split('\\\\').map(n => Number.parseFloat(n))\n\t\tcase 'ImageOrientationPatient':\n\t\t\treturn value.split('\\\\').map(n => Number.parseFloat(n))\n\t\tdefault:\n\t\t\treturn value\n\t}\n}\n\nexport function getImageMetadataValues(image, keys) {\n\tconst values = {}\n\tconst missingKeys = []\n\tconst metadata = cornerstone.metaData.get('raw', image.imageId)\n\tkeys.forEach(key => {\n\t\tif (metadata) {\n\t\t\tconst entry = metadata.find(md => md.Name === key)\n\t\t\tif (!entry) {\n\t\t\t\tmissingKeys.push(key)\n\t\t\t} else {\n\t\t\t\tvalues[camelCase(key)] = parseMetadataValue(entry.Value, key)\n\t\t\t}\n\t\t} else {\n\t\t\tmissingKeys.push(key)\n\t\t}\n\t})\n\tif (missingKeys.length) {\n\t\tvalues.missingKeys = missingKeys\n\t}\n\treturn values\n}\n\nexport default function validateMPRImages(images) {\n\tlet validImages = []\n\tlet disabledReasons = []\n\tif (!images || images.length < minImages) {\n\t\tdisabledReasons.push('minimg')\n\t\treturn {\n\t\t\timages,\n\t\t\tdisabledReasons,\n\t\t}\n\t}\n\n\tlet lastPosition = null\n\tlet minDistance = Number.MAX_VALUE\n\tlet maxDistance = Number.MIN_VALUE\n\tconst keys = ['ImageType', 'ImagePositionPatient', 'ImageOrientationPatient']\n\n\tfor (const image of images) {\n\t\tconst metadata = getImageMetadataValues(image, keys)\n\n\t\tif (metadata.missingKeys) {\n\t\t\tdisabledReasons.push('missing')\n\t\t\tcontinue\n\t\t}\n\n\t\tconst { imageType, imagePositionPatient, imageOrientationPatient } = metadata\n\n\t\t// Skip LOCALIZER images b/b they have the wrong orientation and position\n\t\tif (imageType.includes('LOCALIZER')) {\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check for derived image types\n\t\tif (imageType.includes('DERIVED')) {\n\t\t\tdisabledReasons.push('derived')\n\t\t\tcontinue\n\t\t}\n\n\t\t// Check for a valid orientation\n\t\t// Sometimes the dot product is exponentially small but it should be ~= 0\n\t\tconst [rx, ry, rz, cx, cy, cz] = imageOrientationPatient\n\t\tif (Math.abs(vec3.dot([rx, ry, rz], [cx, cy, cz])) > maxOrientationDotProduct) {\n\t\t\tdisabledReasons.push('orientation')\n\t\t\tcontinue\n\t\t}\n\n\t\t// Keep track of the max/min distance from the last position to the current position\n\t\tif (lastPosition) {\n\t\t\tconst distance = Math.sqrt(distance2BetweenPoints(imagePositionPatient, lastPosition))\n\t\t\tminDistance = Math.min(minDistance, distance)\n\t\t\tmaxDistance = Math.max(maxDistance, distance)\n\t\t}\n\t\tlastPosition = imagePositionPatient\n\n\t\t// Add as valid image\n\t\tvalidImages.push(image)\n\t}\n\n\t// Check for minimum number of valid images\n\tif (validImages.length < minImages) {\n\t\tdisabledReasons.push('invalidmin')\n\t}\n\n\t// Any series that has a range more than 25% of the max is rejected b/c\n\t// it can cause issues with MPR calculations\n\t// const spacingPercentageOfMaxDistance = 0.25\n\t// if (maxDistance - minDistance > maxDistance * spacingPercentageOfMaxDistance) {\n\t// \tdisabledReasons.push('spacing')\n\t// }\n\n\t// Use Set to get distinct string keys\n\treturn {\n\t\timages: validImages,\n\t\tdisabledReasons: [...new Set(disabledReasons)],\n\t}\n}\n","export default function buildMetadata(imageIds, metaDataProvider) {\n\t// Retrieve the Cornerstone imageIds from the display set\n\t// TODO: In future, we want to get the metadata independently from Cornerstone\n\t// NOTE: The caller of buildMetaData must have already registered a metaData Provider\n\n\tconst imagePixelMetaData = metaDataProvider('imagePixelModule', imageIds[0])\n\tconst {\n\t\tpixelRepresentation,\n\t\tbitsAllocated,\n\t\tbitsStored,\n\t\thighBit,\n\t\tphotometricInterpretation,\n\t\tsamplesPerPixel,\n\t} = imagePixelMetaData\n\n\t// Compute the image size and spacing given the meta data we already have available.\n\tconst metaDataMap = new Map()\n\timageIds.forEach(imageId => {\n\t\t// TODO: Retrieve this from somewhere other than Cornerstone\n\t\tconst metaData = metaDataProvider('imagePlaneModule', imageId)\n\n\t\tmetaDataMap.set(imageId, metaData)\n\t})\n\n\treturn {\n\t\tmetaData0: metaDataMap.values().next().value,\n\t\tmetaDataMap,\n\t\timageIds,\n\t\timageMetaData0: {\n\t\t\tbitsAllocated,\n\t\t\tbitsStored,\n\t\t\tsamplesPerPixel,\n\t\t\thighBit,\n\t\t\tphotometricInterpretation,\n\t\t\tpixelRepresentation,\n\t\t},\n\t}\n}\n","const imageDataCache = new Map();\n\nexport default imageDataCache;\n","import { vec3 } from 'gl-matrix'\n\nconst vec3FromObject = ({ x, y, z }) => vec3.fromValues(x, y, z)\n\n/**\n *\n * @param {*} scanAxisNormal - [x, y, z] array\n * @param {*} imageMetaDataMap - one of the results from BuildMetadata()\n */\nexport default function sortDatasetsByImagePosition(scanAxisNormal, imageMetaDataMap) {\n\t// See https://github.com/dcmjs-org/dcmjs/blob/4849ed50db8788741c2773b3d9c75cc52441dbcb/src/normalizers.js#L167\n\n\tlet hasMissingSlices = false\n\tlet hasOverlap = false\n\n\tconst datasets = Array.from(imageMetaDataMap.values())\n\tconst referenceDataset = datasets[0]\n\n\tconst refIppVec = vec3FromObject(referenceDataset.imagePositionPatient)\n\n\tconst distDataPairs = datasets.map(dataset => {\n\t\tconst ippVec = vec3FromObject(dataset.imagePositionPatient)\n\t\tconst positionVector = vec3.sub([], refIppVec, ippVec)\n\t\tconst distance = vec3.dot(positionVector, scanAxisNormal)\n\n\t\treturn {\n\t\t\tdistance,\n\t\t\tdataset,\n\t\t}\n\t})\n\n\tdistDataPairs.sort((a, b) => b.distance - a.distance)\n\n\tlet uniqueDistDataPairs = distDataPairs.reduce((ret, dataPair) => {\n\t\tif (ret.find(dp => dp.distance === dataPair.distance)) {\n\t\t\thasOverlap = true\n\t\t} else {\n\t\t\tret.push(dataPair)\n\t\t}\n\t\treturn ret\n\t}, [])\n\n\tconst spacemap = {}\n\tconst highestSpacing = {\n\t\tcount: 0,\n\t\tspace: 0,\n\t}\n\tfor (let i = 1; i < uniqueDistDataPairs.length; i++) {\n\t\tconst gap = Math.abs(uniqueDistDataPairs[i].distance - uniqueDistDataPairs[i - 1].distance)\n\t\tif (!spacemap[gap]) spacemap[gap] = 0\n\t\tspacemap[gap]++\n\t\tif (highestSpacing.count < spacemap[gap]) {\n\t\t\thighestSpacing.count = spacemap[gap]\n\t\t\thighestSpacing.space = gap\n\t\t}\n\t}\n\n\t// Use the most frequent spacing\n\tconst spacing = highestSpacing.space\n\n\tconst threshold = spacing * 0.05 // a 10% threshold up/down\n\tlet sortedDatasets\n\n\tif (spacing > 0) {\n\t\t// Fill the array with null values between large gaps\n\t\tconst filledArray = [uniqueDistDataPairs[0]]\n\t\tfor (let i = 1; i < uniqueDistDataPairs.length; i++) {\n\t\t\tlet gap = Math.abs(uniqueDistDataPairs[i].distance - uniqueDistDataPairs[i - 1].distance)\n\t\t\tif (!withinCompare(gap, spacing, threshold) && gap > spacing) {\n\t\t\t\thasMissingSlices = true\n\t\t\t\tlet d0 = distDataPairs[i - 1].distance\n\t\t\t\tlet t = spacing\n\t\t\t\twhile (t < gap) {\n\t\t\t\t\tfilledArray.push({ distance: d0 + t, dataset: null })\n\t\t\t\t\tt += spacing\n\t\t\t\t}\n\t\t\t}\n\t\t\tfilledArray.push(uniqueDistDataPairs[i])\n\t\t}\n\n\t\tsortedDatasets = filledArray.map(a => a.dataset)\n\t} else {\n\t\t// This shouldn't be possible anymore, but just in case\n\t\tsortedDatasets = uniqueDistDataPairs.map(a => a.dataset)\n\t}\n\n\treturn {\n\t\tspacing,\n\t\torigin: distDataPairs[0].dataset.imagePositionPatient,\n\t\tdirectionality: distDataPairs[0].distance > 0 ? -1 : 1,\n\t\thasMissingSlices,\n\t\thasOverlap,\n\t\tsortedDatasets,\n\t}\n}\n\nfunction withinCompare(a, b, threshold = 0.001) {\n\tif (a - threshold < b && a + threshold > b) return true\n\treturn false\n}\n","import { vec3 } from 'gl-matrix'\nimport vtkImageData from 'vtk.js/Sources/Common/DataModel/ImageData'\nimport vtkDataArray from 'vtk.js/Sources/Common/Core/DataArray'\n\nimport buildMetadata from './data/buildMetadata.js'\nimport imageDataCache from './data/imageDataCache.js'\nimport sortDatasetsByImagePosition from './data/sortDatasetsByImagePosition.js'\n\n/**\n *\n * @param {*} imageIds\n * @param {*} displaySetInstanceUid\n * @param {*} metaDataProvider - This needs to follow the cornerstone core's metaData.get() method.\n */\nexport default function getImageData(imageIds, displaySetInstanceUid, metaDataProvider, useJpeg) {\n\tconst cachedImageDataObject = imageDataCache.get(displaySetInstanceUid)\n\n\tif (cachedImageDataObject) {\n\t\treturn cachedImageDataObject\n\t}\n\n\t// NOTE: register cornerstone Metadata provider first!\n\tconst { metaData0, metaDataMap, imageMetaData0 } = buildMetadata(imageIds, metaDataProvider)\n\n\tconst { rowCosines, columnCosines } = metaData0\n\tconst rowCosineVec = vec3.fromValues(rowCosines.x, rowCosines.y, rowCosines.z)\n\tconst colCosineVec = vec3.fromValues(columnCosines.x, columnCosines.y, columnCosines.z)\n\tconst scanAxisNormal = vec3.cross([], colCosineVec, rowCosineVec)\n\n\tconst {\n\t\tspacing,\n\t\torigin,\n\t\thasMissingSlices,\n\t\thasOverlap,\n\t\tdirectionality,\n\t\tsortedDatasets,\n\t} = sortDatasetsByImagePosition(scanAxisNormal, metaDataMap)\n\n\tconst xSpacing = metaData0.columnPixelSpacing\n\tconst ySpacing = metaData0.rowPixelSpacing\n\tconst zSpacing = spacing\n\tconst xVoxels = metaData0.columns\n\tconst yVoxels = metaData0.rows\n\tconst zVoxels = sortedDatasets.length\n\tconst signed = imageMetaData0.pixelRepresentation === 1\n\t// Note: Asteris doesn't seem to use this metadata item\n\tconst multiComponent = metaData0.numberOfComponents > 1\n\n\t// TODO: Support numberOfComponents = 3 for RGB?\n\tif (multiComponent) {\n\t\tthrow new Error('Multi component image not supported by this plugin.')\n\t}\n\n\tlet pixelArray\n\tif (useJpeg) {\n\t\tpixelArray = new Uint8Array(xVoxels * yVoxels * zVoxels)\n\t} else {\n\t\t// bitsAllocated will always be 16 even if jpeg data is returned.\n\t\tswitch (imageMetaData0.bitsAllocated) {\n\t\t\tcase 8:\n\t\t\t\tif (signed) {\n\t\t\t\t\tthrow new Error('8 Bit signed images are not yet supported by this plugin.')\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error('8 Bit unsigned images are not yet supported by this plugin.')\n\t\t\t\t}\n\t\t\tcase 16:\n\t\t\t\t// VTK only supports Float32 and Uint8... so we'll always use float for faster results\n\t\t\t\tpixelArray = new Float32Array(xVoxels * yVoxels * zVoxels)\n\t\t}\n\t}\n\n\tconst scalarArray = vtkDataArray.newInstance({\n\t\tname: 'Pixels',\n\t\tnumberOfComponents: 1,\n\t\tvalues: pixelArray,\n\t})\n\n\tconst imageData = vtkImageData.newInstance()\n\n\tconst direction = [...rowCosineVec, ...colCosineVec, ...scanAxisNormal]\n\n\timageData.setDimensions(xVoxels, yVoxels, zVoxels)\n\timageData.setSpacing(xSpacing, ySpacing, zSpacing)\n\timageData.setOrigin(origin.x, origin.y, origin.z)\n\t// Don't set the direction on the volume, keeping it in default coordinates.\n\t// We will use the direction manually later for the compass\n\t// imageData.setDirection(direction)\n\timageData.getPointData().setScalars(scalarArray)\n\n\tconst imageDataObject = {\n\t\timageIds,\n\t\tmetaData0,\n\t\timageMetaData0,\n\t\tdimensions: [xVoxels, yVoxels, zVoxels],\n\t\tspacing: [xSpacing, ySpacing, zSpacing],\n\t\torigin,\n\t\tdirection,\n\t\tsliceDirectionality: directionality,\n\t\tvtkImageData: imageData,\n\t\tmetaDataMap,\n\t\tsortedDatasets,\n\t\thasMissingSlices,\n\t\thasOverlap,\n\t\tloaded: false,\n\t\tisJpeg: useJpeg,\n\t}\n\n\timageDataCache.set(displaySetInstanceUid, imageDataObject)\n\n\treturn imageDataObject\n}\n","/**\n *\n * @param {Object} imageData - The vtkImageData\n * @param {*} sliceIndex - The index of the slice you are inserting.\n * @param {*} image The cornerstone image to pull pixel data data from.\n * @param {*} modality The modality of the image.\n * @param {*} modalitySpecificScalingParameters Specific scaling paramaters for this modality. E.g. Patient weight.\n */\nexport default function insertSlice(\n\timageData,\n\tsliceIndex,\n\timage,\n\tmodality,\n\tmodalitySpecificScalingParameters\n) {\n\tconst scalars = imageData.getPointData().getScalars()\n\tconst scalarData = scalars.getData()\n\n\tconst scalingFunction = _getScalingFunction(modality, image, modalitySpecificScalingParameters)\n\n\tconst pixels = image.getPixelData()\n\n\tlet pixelIndex = 0\n\tlet max = scalingFunction(pixels[pixelIndex])\n\tlet min = max\n\n\t// Assume that color images are converted DICOMS, so we'll only use the R value, from the RGBA array\n\tconst step = image.color ? 4 : 1\n\n\tfor (let pixelIndex = 0; pixelIndex < pixels.length; pixelIndex += step) {\n\t\tconst destIdx = pixelIndex / step + sliceIndex * (pixels.length / step)\n\t\tconst pixel = pixels[pixelIndex]\n\t\tconst pixelValue = scalingFunction(pixel)\n\n\t\tif (pixelValue > max) {\n\t\t\tmax = pixelValue\n\t\t} else if (pixelValue < min) {\n\t\t\tmin = pixelValue\n\t\t}\n\n\t\tscalarData[destIdx] = pixelValue\n\t}\n\n\treturn { min, max }\n}\n\nfunction _getScalingFunction(modality, image, modalitySpecificScalingParameters) {\n\tconst { slope, intercept } = image\n\n\tif (modality === 'PT') {\n\t\tconst { patientWeight, correctedDose } = modalitySpecificScalingParameters\n\t\treturn pixel => {\n\t\t\tconst modalityPixelValue = pixel * slope + intercept\n\n\t\t\treturn (1000 * modalityPixelValue * patientWeight) / correctedDose\n\t\t}\n\t} else {\n\t\treturn pixel => {\n\t\t\treturn pixel * slope + intercept\n\t\t}\n\t}\n}\n","import insertSlice from './data/insertSlice.js'\nimport { loadAndCacheImage } from 'cornerstone-core/dist/cornerstone'\nimport { getCornerstoneImageId } from '@/imageLoader'\n\n// TODO: If we attempt to load multiple imageDataObjects at once this will break.\nexport default function loadImageDataProgressively(imageDataObject, validImages, series, renderFrequencyPct = 5) {\n\tif (imageDataObject.loaded || imageDataObject.isLoading) {\n\t\t// Returning instantly resolved promise as good to go.\n\t\t// Returning promise to be resolved by other process as loading.\n\t\treturn\n\t}\n\n\tconst { imageIds, vtkImageData, metaDataMap, sortedDatasets } = imageDataObject\n\tconst loadImagePromises = validImages.map(image => {\n\t\treturn loadAndCacheImage(getCornerstoneImageId(series, image))\n\t})\n\n\timageDataObject.isLoading = true\n\n\t// This is straight up a hack: vtkjs cries when you feed it data with a range of zero.\n\t// So lets set the first voxel to 1, which will be replaced when the first image comes in.\n\tconst scalars = vtkImageData.getPointData().getScalars()\n\tconst scalarData = scalars.getData()\n\n\tscalarData[0] = 1\n\n\tconst range = {\n\t\tmax: Number.NEGATIVE_INFINITY,\n\t\tmin: Number.POSITIVE_INFINITY,\n\t}\n\n\tconst numberOfFrames = imageIds.length\n\tlet numberProcessed = 0\n\n\tconst reRenderFraction = numberOfFrames * (renderFrequencyPct / 100)\n\tlet reRenderTarget = reRenderFraction\n\n\tconst insertPixelData = image => {\n\t\treturn new Promise(resolve => {\n\t\t\tconst { imagePositionPatient } = metaDataMap.get(image.asterisImageId)\n\n\t\t\tconst sliceIndex = sortedDatasets.findIndex(\n\t\t\t\tdataset => dataset !== null && dataset.imagePositionPatient === imagePositionPatient\n\t\t\t)\n\n\t\t\tconst { max, min } = insertSlice(vtkImageData, sliceIndex, image)\n\n\t\t\tif (max > range.max) {\n\t\t\t\trange.max = max\n\t\t\t}\n\n\t\t\tif (min < range.min) {\n\t\t\t\trange.min = min\n\t\t\t}\n\n\t\t\tconst dataArray = vtkImageData.getPointData().getScalars()\n\n\t\t\tdataArray.setRange(range, 1)\n\t\t\tnumberProcessed++\n\n\t\t\tif (numberProcessed > reRenderTarget) {\n\t\t\t\treRenderTarget += reRenderFraction\n\t\t\t\tvtkImageData.modified()\n\t\t\t}\n\t\t\tresolve(numberProcessed)\n\t\t})\n\t}\n\n\tconst insertPixelDataPromises = []\n\n\t// get VOI from first image\n\tPromise.any(loadImagePromises).then(async image => {\n\t\tif (!image.isDicom) {\n\t\t\t// jpeg loader copies original dicom voi to custom objects\n\t\t\tconst { dicomWindowWidth: windowWidth, dicomWindowCenter: windowCenter } = image\n\t\t\timageDataObject.voi = { windowWidth, windowCenter }\n\t\t} else {\n\t\t\tconst { windowWidth, windowCenter } = image\n\t\t\timageDataObject.voi = { windowWidth, windowCenter }\n\t\t}\n\t\treturn image\n\t})\n\n\tloadImagePromises.forEach(promise => insertPixelDataPromises.push(promise.then(insertPixelData)))\n\n\tPromise.all(insertPixelDataPromises).then(() => {\n\t\timageDataObject.isLoading = false\n\t\timageDataObject.loaded = true\n\n\t\tvtkImageData.modified()\n\t})\n\n\timageDataObject.insertPixelDataPromises = insertPixelDataPromises\n}\n","module.exports = \"\"","import Vue from 'vue'\n\nVue.directive('scroll-nav', {\n\tbind(el, binding) {\n\t\t// For conditional binds\n\t\tif (!binding.value) {\n\t\t\treturn\n\t\t}\n\t\tel.onTableScroll = e => {\n\t\t\t// Raise custom event that navbar can listen to\n\t\t\tconst event = new CustomEvent('tablescroll')\n\t\t\tevent.srcEvent = e\n\t\t\tdocument.dispatchEvent(event)\n\t\t}\n\t\t// Add event listener\n\t\tel.addEventListener('scroll', el.onTableScroll)\n\t},\n\tunbind(el) {\n\t\t// Clean up\n\t\tif (el.onTableScroll) el.removeEventListener('scroll', el.onTableScroll)\n\t},\n})\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./HipNumber.vue?vue&type=style&index=0&id=1fc9cc0b&prod&lang=scss\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"upload\",class:{ 'is-dragging': _vm.isDragging && !_vm.isParsing }},[_c('form',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isParsing),expression:\"!isParsing\"}],staticClass:\"upload-form\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"drop-or-select-message\"},[_vm._t(\"default\",[_c('svg-icon',{staticClass:\"is-muted\",attrs:{\"icon\":_vm.allowAttachments ? 'file-upload' : 'folder-upload'}}),(_vm.showFolderAndFileUpload && _vm.canUploadFolder)?_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\tDrop \"+_vm._s(_vm.uploadType)+\" here,\\n\\t\\t\\t\\t\\t\"),_c('a',{on:{\"click\":_vm.clickFileInput}},[_vm._v(\"browse for files\")]),_vm._v(\"\\n\\t\\t\\t\\t\\t, or\\n\\t\\t\\t\\t\\t\"),_c('a',{on:{\"click\":_vm.clickFolderInput}},[_vm._v(\"choose a folder\")])]):_c('p',[_vm._v(\"\\n\\t\\t\\t\\t\\tDrop \"+_vm._s(_vm.uploadType)+\" here or\\n\\t\\t\\t\\t\\t\"),_c('a',{on:{\"click\":_vm.clickFileInput}},[_vm._v(_vm._s(_vm.browseMessage))])])],{\"browseMessage\":_vm.browseMessage,\"canUploadFolder\":_vm.canUploadFolder,\"clickFileInput\":_vm.clickFileInput})],2),(_vm.showFolderDropWarning)?_c('p',{staticClass:\"ie-warning\"},[_c('svg-icon',{staticClass:\"is-warning\",attrs:{\"icon\":\"exclamation-triangle\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\t\\tUploading folders is not supported by your web browser. Drop only files, or try again in another browser.\\n\\t\\t\")],1):_vm._e(),(_vm.isInternetExplorer && !_vm.$refs.fileInput.files.length)?_c('p',{staticClass:\"ie-warning\"},[_c('svg-icon',{staticClass:\"is-warning\",attrs:{\"icon\":\"exclamation-triangle\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\t\\tInternet Explorer has a varying limitation on the number of files which may be selected at once. If your upload\\n\\t\\t\\tdoes not start automatically after selecting your files, please try importing in smaller batches.\\n\\t\\t\")],1):_vm._e(),_c('input',{ref:\"fileInput\",class:{ 'shrink-input': !_vm.isWholeFormClickable },attrs:{\"multiple\":\"\",\"type\":\"file\",\"disabled\":_vm.isParsing},on:{\"click\":_vm.checkForIE,\"change\":_vm.selectFiles}}),_c('input',{ref:\"folderInput\",staticClass:\"shrink-input\",attrs:{\"multiple\":\"\",\"type\":\"file\",\"disabled\":_vm.isParsing},on:{\"change\":_vm.selectFiles}})]),(_vm.isParsing)?_c('div',{staticClass:\"drop-or-select-message\"},[_c('svg-icon',{attrs:{\"icon\":\"spinner\",\"fixed\":\"\",\"pulse\":\"\"}}),_vm._v(\"\\n\\t\\tValidating files …\\n\\t\")],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { detect } from 'detect-browser'\nimport { mapActions } from 'vuex'\nimport { uploadData } from '@services/uploads'\nimport { addNotification } from '@services/notificationService'\n\nexport default {\n\tname: 'UploadForm',\n\tprops: {\n\t\tcontext: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tdropTarget: {\n\t\t\ttype: HTMLDivElement,\n\t\t\tdefault: undefined,\n\t\t},\n\t\tisWholeFormClickable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tshowFolderAndFileUpload: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tallowAttachments: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tallowDicoms: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tallowJpegs: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tuploadData,\n\t\t\tbrowseMessage: '',\n\t\t\tcanUploadFolder: false,\n\t\t\tisDragging: false,\n\t\t\tisParsing: false,\n\t\t\tshowFolderDropWarning: false,\n\t\t\tisInternetExplorer: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tuploadType() {\n\t\t\tif (!this.allowAttachments) return 'images'\n\t\t\tif (this.allowJpegs) return 'files'\n\t\t\treturn 'attachments'\n\t\t},\n\t\thasPendingDicoms() {\n\t\t\treturn this.uploadData.uploads.some(u => u.pendingBatch && u.context === this.context && u.isDicom)\n\t\t},\n\t},\n\twatch: {\n\t\tdropTarget(dropTarget, previousTarget) {\n\t\t\tif (previousTarget) this.toggleDropListeners(previousTarget, false)\n\t\t\tthis.toggleDropListeners(dropTarget, true)\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.canUploadFolder = 'webkitdirectory' in HTMLInputElement.prototype\n\t\tif (this.canUploadFolder) {\n\t\t\tthis.$refs.folderInput.webkitdirectory = true\n\t\t}\n\t\tif (this.canUploadFolder && this.allowDicoms && !this.allowAttachments) {\n\t\t\tthis.browseMessage = 'choose a folder'\n\t\t\tthis.$refs.fileInput.webkitdirectory = true\n\t\t} else {\n\t\t\tthis.browseMessage = 'browse for files'\n\t\t}\n\t\tthis.toggleDropListeners(this.$el, true)\n\t},\n\tmethods: {\n\t\ttoggleDropListeners(dropTarget, isAdding) {\n\t\t\tconst addOrRemove = isAdding ? 'addEventListener' : 'removeEventListener'\n\t\t\tdropTarget[addOrRemove]('dragover', this.setIsDragging)\n\t\t\tdropTarget[addOrRemove]('dragenter', this.setIsDragging)\n\t\t\tdropTarget[addOrRemove]('dragend', this.setIsNotDragging)\n\t\t\tdropTarget[addOrRemove]('dragleave', this.setIsNotDragging)\n\t\t\tdropTarget[addOrRemove]('drop', this.dropFiles)\n\t\t\tif (isAdding)\n\t\t\t\tthis.$once('hook:beforeDestroy', () => {\n\t\t\t\t\tthis.toggleDropListeners(dropTarget, false)\n\t\t\t\t})\n\t\t},\n\t\ttoggleIsDragging(e, isDragging) {\n\t\t\tthis.isDragging = isDragging\n\t\t\tif (this.dropTarget) {\n\t\t\t\tif (isDragging) this.dropTarget.classList.add('is-dragging')\n\t\t\t\telse this.dropTarget.classList.remove('is-dragging')\n\t\t\t}\n\t\t\te.preventDefault()\n\t\t\te.stopPropagation()\n\t\t},\n\t\tsetIsDragging(e) {\n\t\t\tthis.toggleIsDragging(e, true)\n\t\t},\n\t\tsetIsNotDragging(e) {\n\t\t\tthis.toggleIsDragging(e, false)\n\t\t},\n\t\tcheckForIE() {\n\t\t\tconst browser = detect()\n\t\t\tif (browser.name === 'ie') this.isInternetExplorer = true\n\t\t},\n\t\tclickFileInput() {\n\t\t\tthis.$refs.fileInput.click()\n\t\t},\n\t\tclickFolderInput() {\n\t\t\tthis.$refs.folderInput.click()\n\t\t},\n\t\t/**\n\t\t * Handles a change event on the file input\n\t\t *\n\t\t * @param {Object} e - change event\n\t\t * @param {Object} e.target - the target element\n\t\t */\n\t\tasync selectFiles({ target }) {\n\t\t\tif (!target.files.length) return\n\t\t\tthis.isParsing = true\n\t\t\tawait this.queueUploads(target.files)\n\t\t\tthis.isParsing = false\n\t\t},\n\t\t/**\n\t\t * Handles a drop event on the modal\n\t\t *\n\t\t * @param {Object} e - drop event\n\t\t */\n\t\tasync dropFiles(e) {\n\t\t\tthis.toggleIsDragging(e, false)\n\t\t\tif (this.isParsing) return\n\t\t\tif (!e.dataTransfer.files.length) return\n\t\t\tthis.isParsing = true\n\t\t\tthis.showFolderDropWarning = false\n\t\t\tif (this.canUploadFolder) {\n\t\t\t\tconst fileList = await getFilesFromDroppedItems(e.dataTransfer)\n\t\t\t\tawait this.queueUploads(fileList)\n\t\t\t} else {\n\t\t\t\tif (includesFolder(e.dataTransfer.files)) {\n\t\t\t\t\tthis.showFolderDropWarning = true\n\t\t\t\t} else {\n\t\t\t\t\tawait this.queueUploads(e.dataTransfer.files)\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.isParsing = false\n\t\t},\n\t\tasync queueUploads(files) {\n\t\t\tfor (let i = 0; i < files.length; i++) {\n\t\t\t\tlet name = files[i].name.toLowerCase()\n\t\t\t\tif (name.includes('.zip')) {\n\t\t\t\t\taddNotification('Zip files are not supported. Please unzip and upload the individual files.', 'error')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tawait uploadData.queueFilesForUpload({\n\t\t\t\tcontext: this.context,\n\t\t\t\tfiles: Array.from(files),\n\t\t\t\tallowImages: this.allowJpegs,\n\t\t\t\tallowAttachments: this.allowAttachments,\n\t\t\t\tallowDicoms: this.allowDicoms,\n\t\t\t})\n\t\t\tif (this.allowDicoms) {\n\t\t\t\t// start dicoms immediately and/or try to start any pending attachments in community\n\t\t\t\t// workflow that may be able to inherit the most recent studyInstanceUid\n\t\t\t\tawait uploadData.startUpload(this.context, null, true)\n\t\t\t}\n\t\t},\n\t},\n}\n\nasync function getFilesFromDroppedItems(dataTransfer) {\n\tconst files = []\n\tconst folderReadQueue = []\n\tfor (let i = 0; i < dataTransfer.items.length; i++) {\n\t\tconst item = dataTransfer.items[i]\n\t\tif (item.kind !== 'file' || !item) continue\n\t\tconst fileSystemEntries = getEntries(item)\n\t\tif (fileSystemEntries) {\n\t\t\tfolderReadQueue.push(fileSystemEntries)\n\t\t} else {\n\t\t\tconst file = item.getAsFile()\n\t\t\tif (file) files.push(file)\n\t\t}\n\t}\n\tconst filesInFolders = await Promise.all(folderReadQueue)\n\treturn files.concat(...filesInFolders)\n}\n\nfunction getEntries(entry) {\n\tif (!entry) return\n\t// convert DataTransferItem to FileSystemEntry first if necessary\n\tif (entry.getAsEntry) return getEntries(entry.getAsEntry())\n\tif (entry.webkitGetAsEntry) return getEntries(entry.webkitGetAsEntry())\n\t// return if item is from a browser that does not support webkitGetAsEntry\n\tif (entry.getAsFile) return\n\t// Processing directories with more than 100 files:\n\t// https://github.com/lian-yue/vue-upload-component/commit/9c9d8aafbcef005a2cc598454383ec65205d61ee\n\treturn new Promise(resolve => {\n\t\tif (entry.isFile) {\n\t\t\tentry.file(file => resolve([file]))\n\t\t\treturn\n\t\t}\n\t\tif (entry.isDirectory) {\n\t\t\tconst files = []\n\t\t\tconst entryReader = entry.createReader()\n\t\t\tconst readEntries = () => {\n\t\t\t\tentryReader.readEntries(entries => {\n\t\t\t\t\tconst iterateEntry = async i => {\n\t\t\t\t\t\tif (!entries[i] && i === 0) return resolve(files)\n\t\t\t\t\t\tif (!entries[i]) return readEntries()\n\t\t\t\t\t\tconst entryFiles = await getEntries(entries[i])\n\t\t\t\t\t\tfiles.push(...entryFiles)\n\t\t\t\t\t\titerateEntry(i + 1)\n\t\t\t\t\t}\n\t\t\t\t\titerateEntry(0)\n\t\t\t\t})\n\t\t\t}\n\t\t\treadEntries()\n\t\t}\n\t\tif (!entry.isFile && !entry.isDirectory) resolve([])\n\t})\n}\n\nfunction includesFolder(files) {\n\tif (!files.length) return true // if dropping only folders, no files will exist\n\tfor (let i = 0; i < files.length; i++) {\n\t\t// A folder has no type and has a size that is a multiple of 4096\n\t\tif (!files[i].type && files[i].size % 4096 === 0) return true\n\t}\n\treturn false\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadForm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UploadForm.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UploadForm.vue?vue&type=template&id=3d9e6337&scoped=true\"\nimport script from \"./UploadForm.vue?vue&type=script&lang=ts\"\nexport * from \"./UploadForm.vue?vue&type=script&lang=ts\"\nimport style0 from \"./UploadForm.vue?vue&type=style&index=0&id=3d9e6337&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 \"3d9e6337\",\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\n\nVue.directive('draggable', {\n\tbind(el, binding) {\n\t\tlet handleElements = [el]\n\t\tif (binding?.value?.handleSelector) {\n\t\t\tconst customHandleEls = el.querySelectorAll(binding.value.handleSelector)\n\t\t\tif (customHandleEls) {\n\t\t\t\thandleElements = customHandleEls\n\t\t\t\thandleElements.forEach(el => {\n\t\t\t\t\tel.style.cursor = 'move'\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tel.style.position = 'absolute'\n\t\tvar startX, startY, initialMouseX, initialMouseY\n\n\t\tfunction move(e) {\n\t\t\tlet isTouch = e.type === 'touchmove' && e.touches.length > 0\n\t\t\tlet evtData = isTouch ? e.touches[0] : e\n\n\t\t\tvar dx = evtData.clientX - initialMouseX\n\t\t\tvar dy = evtData.clientY - initialMouseY\n\t\t\tel.style.top = startY + dy + 'px'\n\t\t\tel.style.left = startX + dx + 'px'\n\t\t\treturn false\n\t\t}\n\n\t\tfunction end() {\n\t\t\tdocument.removeEventListener('mousemove', move)\n\t\t\tdocument.removeEventListener('mouseup', end)\n\t\t\tdocument.removeEventListener('touchmove', move)\n\t\t\tdocument.removeEventListener('touchend', end)\n\t\t\tel.dispatchEvent(new CustomEvent('drag'))\n\t\t}\n\n\t\tfunction start(e) {\n\t\t\tlet isTouch = e.type === 'touchstart' && e.touches.length > 0\n\t\t\tlet evtData = isTouch ? e.touches[0] : e\n\n\t\t\tstartX = el.offsetLeft\n\t\t\tstartY = el.offsetTop\n\t\t\tinitialMouseX = evtData.clientX\n\t\t\tinitialMouseY = evtData.clientY\n\n\t\t\tdocument.addEventListener('mousemove', move)\n\t\t\tdocument.addEventListener('mouseup', end)\n\t\t\tdocument.addEventListener('touchmove', move)\n\t\t\tdocument.addEventListener('touchend', end)\n\t\t\treturn false\n\t\t}\n\t\thandleElements.forEach(el => {\n\t\t\tel.addEventListener('mousedown', start)\n\t\t\tel.addEventListener('touchstart', start)\n\t\t})\n\t},\n})\n","import Vue from 'vue'\nimport Router from 'vue-router'\nimport routes from './routes'\nimport store from '@store'\nimport { eventBus } from '@services/eventBus'\nimport storage from '@services/storage'\n\nVue.use(Router)\n\nconst router = new Router({\n\troutes,\n\tlinkActiveClass: 'active',\n\tlinkExactActiveClass: 'exact-active',\n\t// https://router.vuejs.org/en/advanced/scroll-behavior.html\n\tscrollBehavior(to, from, savedPosition) {\n\t\tif (savedPosition) {\n\t\t\treturn savedPosition\n\t\t} else {\n\t\t\treturn { x: 0, y: 0 }\n\t\t}\n\t},\n})\n\nrouter.beforeEach((to, from, next) => {\n\tnext()\n})\n\nrouter.afterEach((to, from) => {\n\t// Close modal navigation drawer\n\tstore.commit('TOGGLE_MODAL_DRAWER', false)\n\tif (to.meta.themeSettings !== from.meta.themeSettings) store.dispatch('applyTheme', to.meta.themeSettings)\n\n\t// Update title\n\tlet isCommunity = store.getters.isCommunityUser\n\tif (isCommunity === undefined) {\n\t\tisCommunity = storage.getItem('lastLogin') === 'community'\n\t}\n\tconst OmniOrCommunity = isCommunity ? 'Community' : 'Omni'\n\tdocument.title = `${to.meta.title ? to.meta.title + ' - ' : ''}Keystone ${OmniOrCommunity}`\n\n\teventBus.post('routechanged')\n})\n\nexport default router\n","module.exports = \"\"","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!./UserStudiesDlg.vue?vue&type=style&index=0&id=0908c243&prod&lang=scss\"","module.exports = \"\"","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!./PdfViewer.vue?vue&type=style&index=0&id=33dafe86&prod&lang=scss\"","interface IContextMeta {\n\tsets?: string[]\n\ttemplates?: string[]\n\tlayouts?: string[]\n\titems?: { [key: string]: IContextMeta }\n\tsample?: any\n}\nexport const ContextMeta: { [key: string]: IContextMeta } = {\n\tAddendum: {\n\t\titems: {\n\t\t\tAddedBy: { sample: 'Jane User' },\n\t\t\tMessage: { sample: '

This is an addendum.

' },\n\t\t\tDateTime: { sample: '2020-03-02T19:33:50.358Z' },\n\t\t},\n\t\tlayouts: ['Addendum'],\n\t},\n\tBillingCode: {\n\t\titems: {\n\t\t\tName: { sample: 'CODE' },\n\t\t\tValue: { sample: 'Billing Code Value' },\n\t\t},\n\t},\n\tCompletionDate: { sample: '2020-03-02T19:33:50.358Z' },\n\tDraftedBy: {\n\t\titems: {\n\t\t\tLabel: { sample: 'Intern:' },\n\t\t\tName: { sample: 'Bob Drafter' },\n\t\t},\n\t\tsets: ['Teleconsultation'],\n\t},\n\tConsultant: {\n\t\titems: {\n\t\t\tAddress: { sample: '123 Sesame St' },\n\t\t\tCity: { sample: 'New York' },\n\t\t\tState: { sample: 'NY' },\n\t\t\tEmail: { sample: 'example@domain.com' },\n\t\t\tName: { sample: 'Dr. Getwell' },\n\t\t\tOrganization: { sample: 'Sample Clinic' },\n\t\t\tPhone: { sample: '123-456-7890' },\n\t\t\tWebsite: { sample: 'https://www.google.com/' },\n\t\t},\n\t\tsets: ['Teleconsultation'],\n\t},\n\tFinalizedBy: {\n\t\titems: {\n\t\t\tFullName: { sample: 'Dr. Robert Staywell' },\n\t\t\tFirstName: { sample: 'Robert' },\n\t\t\tLastName: { sample: 'Staywell' },\n\n\t\t\tAddress: { sample: '456 Fake St' },\n\t\t\tCity: { sample: 'Beverly Hills' },\n\t\t\tState: { sample: 'CA' },\n\t\t\tZip: { sample: '90210' },\n\t\t\tCountry: { sample: 'United States' },\n\n\t\t\tEmail: { sample: 'example@domain.com' },\n\t\t\tOrganization: { sample: 'Sample Clinic' },\n\t\t\tPhone: { sample: '123-456-7890' },\n\n\t\t\tWebsite: { sample: 'domain.com' },\n\t\t\tTitle: { sample: 'Dr.' },\n\t\t\tDegree: { sample: 'Degree' },\n\t\t\tSuffix: { sample: 'Jr.' },\n\t\t},\n\t\tsets: ['Report'],\n\t},\n\tImageComment: {\n\t\titems: {\n\t\t\tAcquisitionDate: { sample: '2020-03-02T19:33:50.358Z' },\n\t\t\tAnatomy: { sample: 'Tarsus' },\n\t\t\tComment: { sample: 'This is a comment.' },\n\t\t\tEditDateTime: { sample: '2020-03-02T19:33:50.358Z' },\n\t\t\tLimb: { sample: 'Left Leg' },\n\t\t\tView: { sample: 'LEG_VIEW' },\n\t\t},\n\t\tlayouts: ['Image Comment'],\n\t},\n\tPatient: {\n\t\titems: {\n\t\t\tAge: { sample: '15 years' },\n\t\t\tBirthdate: { sample: '2020-03-02T00:00:00.000' },\n\t\t\tBreed: { sample: 'Lab' },\n\t\t\tGender: { sample: 'Male' },\n\t\t\tName: { sample: 'Spike' },\n\t\t\tOwner: { sample: 'Bob Smith' },\n\t\t\tPatientId: { sample: '123' },\n\t\t\tSpecies: { sample: 'Avian' },\n\t\t\tWeight: { sample: 13.3 },\n\t\t\tWeightUnit: { sample: 'LBS' },\n\t\t},\n\t},\n\tPDF: {\n\t\titems: {\n\t\t\tPageNumber: { sample: '1' },\n\t\t\tTotalPages: { sample: '1' },\n\t\t},\n\t\ttemplates: ['PDF Report', 'Standard PDF Report'],\n\t},\n\tReferredBy: {\n\t\titems: {\n\t\t\tAddress: { sample: '456 Fake St' },\n\t\t\tCity: { sample: 'Beverly Hills' },\n\t\t\tState: { sample: 'CA' },\n\t\t\tPostalCode: { sample: '90210' },\n\t\t\tEmail: { sample: 'example@domain.com' },\n\t\t\tName: { sample: 'Dr. Staywell' },\n\t\t\tOrganization: { sample: 'Sample Clinic' },\n\t\t\tPhone: { sample: '123-456-7890' },\n\t\t},\n\t},\n\tStudy: {\n\t\titems: {\n\t\t\tStudyDate: { sample: '2020-03-02T19:33:50.358' },\n\t\t\tModality: { sample: 'DX' },\n\t\t},\n\t},\n}\n\nexport function getPreviewContext(exclude?: string[]) {\n\tconst result = {}\n\tfor (const key in ContextMeta) {\n\t\tif (exclude && exclude.includes(key)) continue\n\t\tresult[key] = getMetaSample(ContextMeta[key])\n\t}\n\treturn result\n}\n\nfunction getMetaSample(metaItem) {\n\tif (metaItem.sample) return metaItem.sample\n\tif (metaItem.items) {\n\t\tconst items = {}\n\t\tfor (const key in metaItem.items) {\n\t\t\titems[key] = getMetaSample(metaItem.items[key])\n\t\t}\n\t\treturn items\n\t}\n}\n","module.exports = __webpack_public_path__ + \"img/vsp-background.3484078c.jpg\";","module.exports = \"\"","import api, { API, paramsSerializer, downloadFile } from '@services/api'\nimport { setLoading } from '@components/Loading.vue'\n\nimport { Layout, Template, Cell, Panel, TemplateSet, TemplateSetStatus, ReportDetail } from '@reporting/classes'\nimport { userData as user } from './userData'\nimport { Dbounce } from '@/utils/dbounce'\nimport { clinicAPI } from '@services/clinicAPI'\n\nexport enum ResidentResponseStatus {\n\tDraft = 0,\n\tComplete = 1,\n\tReviewed = 2,\n}\n\nclass ReportService {\n\tprevRoute = null\n\topenLayouts: Layout[] = []\n\tactiveCell: Cell = null // the selected cell\n\tselLayout: Layout = null\n\tselCell: Cell = null // the mouse over cell\n\tselTool: string = null\n\ttemplate: Template = null\n\tset: TemplateSet = null\n\tfieldMap: { [key: string]: IPartnerField[] } = {}\n\tformulas = ['SUM', 'AVG']\n\tborder = false\n\n\tundoStack: IStateSnapshot[] = []\n\tredoStack: IStateSnapshot[] = []\n\tsavedState: IStateSnapshot = null\n\n\t// drag info\n\tdragCell: Cell = null\n\n\t// cache last loaded meta\n\tmeta: IMeta\n\t_latestMetaVersion?: number\n\tvalidateDbounce: Dbounce\n\n\tclipboard: ICell = null\n\n\tconstructor() {\n\t\tthis.validateDbounce = new Dbounce(2000, this.validateTemplateSet.bind(this))\n\t}\n\n\tget pageHeader() {\n\t\treturn this.selLayout === this.template.root && this.template.pageHeader\n\t}\n\n\tget pageFooter() {\n\t\treturn this.selLayout === this.template.root && this.template.pageFooter\n\t}\n\n\tget selPanel(): Panel {\n\t\treturn this.selCell instanceof Panel ? this.selCell : undefined\n\t}\n\n\tget dragging(): boolean {\n\t\treturn this.dragCell != null\n\t}\n\n\tget stateSnapshot(): IStateSnapshot {\n\t\tif (!this.set) return null\n\t\tconst getLayoutObj = l => ({\n\t\t\ttemplateId: l.template && l.template.id,\n\t\t\tindex: l.template && l.template.layouts.indexOf(l),\n\t\t})\n\t\treturn {\n\t\t\tsetId: this.set.id,\n\t\t\tsetJson: JSON.stringify(this.set.toJSON()),\n\t\t\tsetStatus: this.set.status,\n\t\t\ttemplateId: this.template && this.template.id,\n\t\t\topenLayouts: this.openLayouts.map(getLayoutObj),\n\t\t\tselLayout: getLayoutObj(this.selLayout),\n\t\t\tactiveCell: this.activeCell && this.activeCell.name,\n\t\t}\n\t}\n\tget hasUnsavedChanges(): boolean {\n\t\tif (!this.savedState) return !!this.undoStack.length\n\t\treturn this.savedState.setJson !== this.stateSnapshot.setJson\n\t}\n\n\tcopy() {\n\t\tthis.clipboard = this.activeCell.toJSON()\n\t}\n\n\tget canPaste() {\n\t\treturn !!this.clipboard\n\t}\n\n\tpaste() {\n\t\tif (!this.canPaste) return\n\t\tlet panel = this.activeCell.isPanel ? this.activeCell : this.activeCell.panel\n\t\tlet cell = Cell.load(this.clipboard, this.selLayout)\n\t\tpanel.addCell(cell)\n\t}\n\n\tstoreState(snapshot: IStateSnapshot) {\n\t\tconst MAX_STATES = 30\n\t\tthis.undoStack.push(snapshot)\n\t\tif (this.undoStack.length > MAX_STATES) this.undoStack = this.undoStack.slice(-MAX_STATES)\n\t\tthis.redoStack = []\n\t\tthis.validateDbounce.set()\n\t}\n\n\treplaceStoredState(snapshot: IStateSnapshot) {\n\t\tthis.undoStack[this.undoStack.length - 1] = snapshot\n\t}\n\n\tresetStateStorage() {\n\t\tthis.savedState = null\n\t\tthis.undoStack = []\n\t\tthis.redoStack = []\n\t}\n\n\tundo() {\n\t\tthis.redoStack.push(this.stateSnapshot)\n\t\tconst previousState = this.undoStack.pop()\n\t\tthis.restoreState(previousState)\n\t}\n\n\tredo() {\n\t\tthis.undoStack.push(this.stateSnapshot)\n\t\tconst nextState = this.redoStack.pop()\n\t\tthis.restoreState(nextState)\n\t}\n\n\trestoreState(snapshot: IStateSnapshot) {\n\t\tthis.set = TemplateSet.load(JSON.parse(snapshot.setJson), true, reportService.meta)\n\t\tconst getTemplateFromId = id => this.set.templates.find(t => t.id === id)\n\t\tconst getLayoutFromObj = o => getTemplateFromId(o.templateId).layouts[o.index]\n\t\tthis.template = getTemplateFromId(snapshot.templateId)\n\t\tthis.openLayouts = snapshot.openLayouts.map(getLayoutFromObj)\n\t\tthis.selectLayout(getLayoutFromObj(snapshot.selLayout))\n\t\tthis.activeCell = snapshot.activeCell && this.selLayout.controls.find(c => c.name === snapshot.activeCell)\n\t\tthis.validateDbounce.set()\n\t}\n\n\tsaveTemplateSet(set: ITemplateSet) {\n\t\tthis.savedState = this.stateSnapshot\n\t\tset.modifiedDate = new Date().toISOString()\n\t\tlet p = API.post('/reporting/template-set', set).then(r => r.data)\n\t\tsetLoading('Saving ...', p)\n\t\treturn p\n\t}\n\n\tdownloadPdfTemplatePreview(data: IPdfTemplatePreview) {\n\t\treturn API.post('reporting/preview-pdf-template', data, {\n\t\t\tresponseType: 'arraybuffer',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\tAccept: 'application/pdf',\n\t\t\t},\n\t\t})\n\t}\n\n\tgetStdReportTemplates(): ITemplateSet[] {\n\t\treturn []\n\t}\n\n\tsetTemplateSetStatus(set: ITemplateSet, status: string) {\n\t\tlet p = API.get(`/reporting/template-set-status/${set.id}?status=${status}`).then(r => {\n\t\t\tset.status = status\n\n\t\t\tif (this.set && set.id === this.set.id) {\n\t\t\t\tthis.set.status = set.status\n\t\t\t\tif (set.status === TemplateSetStatus.Deleted) {\n\t\t\t\t\tthis.closeTemplate()\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\tsetLoading('Saving ...', p)\n\t\treturn p\n\t}\n\n\tdeleteTemplateSet(id: string) {\n\t\treturn API.delete(`/reporting/template-set/${id}`)\n\t}\n\n\tgetTemplateSets(standard: boolean, consultantId?: string): Promise {\n\t\treturn API.get('/reporting/template-sets', {\n\t\t\tparams: {\n\t\t\t\tstandard,\n\t\t\t\tconsultantId,\n\t\t\t},\n\t\t}).then(r => r.data)\n\t}\n\n\tgetTemplateSet(id: string): Promise {\n\t\treturn API.get(`/reporting/template-set/${id}`).then(r => r.data)\n\t}\n\n\tasync exportCSV(query: ITeleconsultationListSearchForm) {\n\t\tconst token = user.claims.activeClinicCode + '_' + user.claims.sessionId\n\t\tconst timeZoneOffset = new Date().getTimezoneOffset()\n\t\tlet url = `${API.defaults.baseURL}/reporting/export-csv?` + paramsSerializer({ ...query, token, timeZoneOffset })\n\t\tdownloadFile(url)\n\t}\n\n\tasync loadPartnerFields(consultantId?: string): Promise {\n\t\tconst fieldMap = await API.get(`/reporting/partner-fields/${consultantId}`).then(r => r.data)\n\t\tif (fieldMap) this.fieldMap = fieldMap\n\t}\n\n\tasync getTemplateMeta(version: number = undefined): Promise {\n\t\tif (!version && this._latestMetaVersion > 0) version = this._latestMetaVersion\n\n\t\tif (!this.meta || this.meta.version !== version) {\n\t\t\tlet url = '/reporting/template-meta'\n\t\t\tif (version) url += `/${version}`\n\t\t\tthis.meta = await API.get(url).then(r => r.data)\n\t\t\tif (!version) this._latestMetaVersion = this.meta.version\n\t\t}\n\t\treturn this.meta\n\t}\n\n\t// ----------- Standard Report Endpoints -----------------------------\n\tasync getStandardTemplates(): Promise {\n\t\treturn API.get('/reporting/standard-templates').then(r => r.data)\n\t}\n\n\tasync startStandardReport(reportTemplateId: string, studyId: string): Promise {\n\t\tlet report: IStandardReport = await API.get(`/reporting/start-report`, {\n\t\t\tparams: {\n\t\t\t\treportTemplateId,\n\t\t\t\tstudyId,\n\t\t\t},\n\t\t\tparamsSerializer,\n\t\t}).then(r => r.data)\n\n\t\treport.template.meta = await reportService.getTemplateMeta(report.template.metaVersion)\n\t\treturn ReportDetail.loadFromStdReport(report, true)\n\t}\n\n\tsaveStandardReport(data: IStandardReportData) {\n\t\treturn API.post(`/reporting/save-report`, data)\n\t}\n\n\tasync getStandardReport(id: string): Promise {\n\t\tlet report: IStandardReport = await API.get(`/reporting/report/${id}`).then(r => r.data)\n\t\treport.template.meta = await reportService.getTemplateMeta(report.template.metaVersion)\n\t\tlet result = ReportDetail.loadFromStdReport(report, user.permissions.createReport)\n\t\tresult.studies = await api.viewer.getStudy({ ids: result.studyIds }, false).then(r => r.studies)\n\t\treturn result\n\t}\n\n\tsaveReportImageComment(reportId: string, data: IReportImageCommentForm): Promise {\n\t\treturn API.post(`/reporting/standard-report/${reportId}`, data)\n\t}\n\n\tdeleteStandardReport(id: string): Promise {\n\t\treturn API.delete(`/reporting/standard-report/${id}`)\n\t}\n\n\t// --------------------- Image Comments -------------------------------\n\n\tgetReportImageComments(reportId: string): Promise {\n\t\treturn API.get(`/reporting/image-comments/${reportId}`).then(r => r.data)\n\t}\n\n\tsaveImageComment(reportId, data: IReportImageCommentForm) {\n\t\treturn API.post(`/reporting/image-comment/${reportId}`, data)\n\t}\n\n\tdeleteImageComment(reportId, imageId) {\n\t\treturn API.delete(`/reporting/${reportId}/image-comment/${imageId}`)\n\t}\n\n\t// -------------------- Consultant Flags -----------------------------\n\tsaveConsultantFlags(\n\t\tisImageOnly: boolean,\n\t\tisImageOptional: boolean,\n\t\tisMultipleResidentWorkflow: boolean,\n\t\tforceConsultantHeader: boolean,\n\t\tconsultantId: string\n\t) {\n\t\treturn API.post(`/reporting/consultant-flags/${consultantId}`, null, {\n\t\t\tparams: {\n\t\t\t\tisImageOnly,\n\t\t\t\tisImageOptional,\n\t\t\t\tforceConsultantHeader,\n\t\t\t\tisMultipleResidentWorkflow,\n\t\t\t},\n\t\t})\n\t}\n\n\t// -------------------------------------------------------------------\n\tasync createSet(name: string, type: string, consultantId: string): Promise {\n\t\tlet p = API.post(`/reporting/create-template-set/${type}`, null, {\n\t\t\tparams: {\n\t\t\t\tname,\n\t\t\t\tconsultantId,\n\t\t\t},\n\t\t}).then(r => r.data)\n\t\tsetLoading('Creating ...', p)\n\t\treturn p\n\t}\n\n\tvalidateTemplateSet() {\n\t\tif (!this.set) return\n\n\t\tconst url = '/reporting/validate-template-set'\n\t\tAPI.post(url, this.set.toJSON()).then(r => (this.set.apiWarnings = r.data))\n\t}\n\n\tget editableLayouts(): Layout[] {\n\t\treturn this.template.layouts\n\t}\n\n\tasync saveTemplateSetAs(json: ITemplateSet) {\n\t\tdelete json.id\n\t\tjson.templates.forEach(t => delete t.templateFieldId)\n\t\tjson.modifiedDate = new Date().toISOString()\n\t\tjson.status = TemplateSetStatus.Draft\n\t\tjson.id = await this.saveTemplateSet(json)\n\t}\n\n\tasync loadTemplateSet(json: ITemplateSet) {\n\t\tlet meta = await this.getTemplateMeta(json.templates[0].metaVersion)\n\t\tjson.templates.forEach(t => (t.meta = meta))\n\t\tthis.set = TemplateSet.load(json, true)\n\t\tthis.template = this.set.templates[0]\n\t\tthis.selectLayout(this.template.root)\n\n\t\tif (json.consultantId) {\n\t\t\tthis.loadPartnerFields(json.consultantId)\n\t\t}\n\t\tthis.validateTemplateSet()\n\t}\n\n\tget layoutTool(): Layout {\n\t\treturn this.editableLayouts.find(l => l.name === this.selTool)\n\t}\n\n\tcloseTemplate() {\n\t\tthis.set = null\n\t\tthis.template = null\n\t\tthis.selLayout = null\n\t\tthis.openLayouts = []\n\t}\n\n\tget tools(): any[] {\n\t\tlet result: any[] = []\n\t\tthis.template.meta.primitives.forEach(p => {\n\t\t\tresult.push({\n\t\t\t\tname: p.name,\n\t\t\t\tdescription: p.description,\n\t\t\t\ticon: p.icon,\n\t\t\t\tvalidTemplates: p.validTemplates,\n\t\t\t\tinvalidTemplates: p.invalidTemplates,\n\t\t\t\tinvalidLayouts: p.invalidLayouts,\n\t\t\t\tcategory: 'primitive',\n\t\t\t\tisBindable: p.isBindable || false,\n\t\t\t})\n\t\t})\n\n\t\treturn result\n\t}\n\n\tdropCell(panel: Panel, offset?: number) {\n\t\tif (this.dragCell && panel) {\n\t\t\tif (this.dragCell === panel) {\n\t\t\t\tthrow new Error('invalid drop target')\n\t\t\t}\n\n\t\t\tif (panel === this.dragCell.panel) {\n\t\t\t\tlet idx = panel.cells.indexOf(this.dragCell)\n\t\t\t\tif (idx < offset) {\n\t\t\t\t\toffset--\n\t\t\t\t}\n\t\t\t\tpanel.moveCellToIndex(this.dragCell, offset)\n\t\t\t} else {\n\t\t\t\tpanel.addCell(this.dragCell)\n\t\t\t\tpanel.moveCellToIndex(this.dragCell, offset)\n\t\t\t}\n\t\t}\n\n\t\tthis.dragCell = undefined\n\t}\n\n\t// TODO: prevent circular dependency\n\tget layoutTypes() {\n\t\treturn this.template.layouts.filter(l => l !== this.template.root).map(l => l.name)\n\t}\n\n\tget breadcrumbs() {\n\t\tlet result = []\n\t\tlet l = this.selLayout\n\t\twhile (l != null) {\n\t\t\tresult.push(l.name)\n\t\t\tl = null\n\t\t}\n\t\treturn result\n\t}\n\n\tdeleteCell(cell: Cell) {\n\t\tlet idx = cell.panel.cells.indexOf(cell)\n\t\tcell.panel.cells.splice(idx, 1)\n\t}\n\n\tcreateNewLayout(): Layout {\n\t\tlet layout = new Layout(null, this.template)\n\t\tthis.template.addLayout(layout)\n\t\tthis.selectLayout(layout)\n\t\treturn layout\n\t}\n\n\tselectLayout(layout: Layout) {\n\t\tif (this.selLayout) {\n\t\t\tthis.selLayout.selected = false\n\t\t}\n\t\tlet notTemplateRoot = !this.set.templates.some(t => t.root === layout)\n\t\tif (notTemplateRoot && !this.openLayouts.includes(layout)) {\n\t\t\tthis.openLayouts.push(layout)\n\t\t}\n\n\t\tthis.template = layout.template\n\t\tthis.selLayout = layout\n\t\tlayout.selected = true\n\t\tlayout.readOnly = false\n\t\tthis.activeCell = layout.root\n\t\tthis.selTool = null\n\t\tthis.dragCell = null\n\t}\n\n\tcloseLayout(layout: Layout) {\n\t\tthis.selectLayout(layout.template.root)\n\t\tconst i = this.openLayouts.findIndex(l => l === layout)\n\t\tif (i >= 0) this.openLayouts.splice(i, 1)\n\t}\n\n\tgetResidentResponses(consultantReportId: string): Promise {\n\t\treturn API.get(\n\t\t\t`/reporting/resident-responses/${consultantReportId}?importMachineName=${clinicAPI.importMachineName}`\n\t\t).then(r => r.data)\n\t}\n\n\treviewResidentResponse(responseId: string, message: string, complete: boolean) {\n\t\tconst p = API.post(`/reporting/review-resident-response`, { responseId, message, complete })\n\t\tsetLoading('Saving ...', p)\n\t\treturn p\n\t}\n\n\tdeepSearch(filter: IReportDeepSearchFilter): Promise {\n\t\treturn API.get(`/reporting/deep-search`, { params: filter, paramsSerializer }).then(r => r.data)\n\t}\n}\n\nexport const reportService = new ReportService()\nexport default reportService\n// @ts-ignore\nwindow.reportService = reportService\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","/**\n * Compares two version strings `\"1.7.100.1234\"`\n * Only compares the first 3 number values\n * @param {String} a\n * @param {String} b\n */\nexport function compareVersions(a, b) {\n\tlet aVer = a.split('.')\n\tif (aVer.length > 3) aVer = aVer.slice(0, 3)\n\tconst bVer = b.split('.')\n\n\tfor (let i = 0; i < aVer.length; i++) {\n\t\ttry {\n\t\t\tif (Number(aVer[i]) !== Number(bVer[i])) {\n\t\t\t\treturn Number(aVer[i]) - Number(bVer[i])\n\t\t\t}\n\t\t} catch (err) {\n\t\t\tconsole.error(err)\n\t\t\tthrow new Error('Formatting Error')\n\t\t}\n\t}\n\treturn 0\n}\n","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\",class:{ 'is-hoverable': _vm.isHoverable }},[(_vm.hasHeader)?_c('div',{staticClass:\"card-heading\",class:_vm.type,domProps:{\"innerHTML\":_vm._s(_vm.header)}},[_vm._v(\"\\n\\t\\tPlaceholder Heading\\n\\t\")]):_vm._e(),_c('div',{staticClass:\"card-wrapper\",attrs:{\"aria-expanded\":\"true\"}},[_c('div',{staticClass:\"card-body\"},[_vm._t(\"default\")],2)]),_c('transition',{attrs:{\"name\":\"loading-fade\"}},[(_vm.isLoading)?_c('div',[_c('div',{staticClass:\"card-overlay\"},[_c('svg-icon',{attrs:{\"icon\":\"spinner\",\"pulse\":\"\"}})],1)]):_vm._e()])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Card.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!./Card.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Card.vue?vue&type=template&id=2ced4d44\"\nimport script from \"./Card.vue?vue&type=script&lang=js\"\nexport * from \"./Card.vue?vue&type=script&lang=js\"\nimport style0 from \"./Card.vue?vue&type=style&index=0&id=2ced4d44&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","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!./StudiesDlg.vue?vue&type=style&index=0&id=39dbcb13&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!./DateRangePicker.vue?vue&type=style&index=0&id=e8f5f386&prod&lang=scss&scoped=true\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./MessageDlg.vue?vue&type=style&index=0&id=0c9a60a4&prod&lang=scss\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar striped animated\",style:(_vm.barInlineStyle),attrs:{\"role\":\"progressbar\",\"aria-valuenow\":_vm.width,\"aria-valuemin\":\"0\",\"aria-valuemax\":\"100\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm.width)+\"% Complete\")])]),_c('div',{staticClass:\"text-overlay-container\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ProgressBar.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!./ProgressBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProgressBar.vue?vue&type=template&id=ca3397f8&scoped=true\"\nimport script from \"./ProgressBar.vue?vue&type=script&lang=js\"\nexport * from \"./ProgressBar.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProgressBar.vue?vue&type=style&index=0&id=ca3397f8&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 \"ca3397f8\",\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","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!./ImageCommentLayoutDlg.vue?vue&type=style&index=0&id=2bce1efa&prod&lang=scss\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./TextPromptDlg.vue?vue&type=style&index=0&id=42cb51f8&prod&lang=scss\"","module.exports = \"\"","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!./VideoPlayer.vue?vue&type=style&index=0&id=fa47a41c&prod&lang=scss&scoped=true\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./SvgIcon.vue?vue&type=style&index=0&id=5ef9ee75&prod&lang=scss\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"editor-main-container\"},[_c('div',{ref:\"editorContainerElement\",staticClass:\"editor-container editor-container_classic-editor editor-container_include-style editor-container_include-word-count\"},[_c('div',{staticClass:\"editor-container__editor\"},[_c('div',{ref:\"editorElement\"},[(_vm.editor && _vm.editorConfig)?_c('ckeditor',{attrs:{\"editor\":_vm.editor,\"config\":_vm.editorConfig},on:{\"ready\":_vm.onReady,\"input\":_vm.onEditorInput},model:{value:(_vm.content),callback:function ($$v) {_vm.content=$$v},expression:\"content\"}}):_vm._e()],1)]),_c('div',{ref:\"editorWordCountElement\",staticClass:\"editor_container__word-count\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { addListToDropdown, Collection, createDropdown, Plugin, ViewModel } from 'ckeditor5'\n\nfunction spaceToUnderscore(str) {\n\treturn str.replace(/\\s/g, '_')\n}\n\nclass Presets extends Plugin {\n\tstatic get pluginName() {\n\t\treturn 'Presets'\n\t}\n\n\tpresets = this.editor.config.get('presets')\n\tinit() {\n\t\tconst editor = this.editor\n\t\tconst presetsOptions = this.presets.options || []\n\t\tif (!presetsOptions || presetsOptions.length === 0) return\n\t\tconst editPresets = this.presets.editPresets\n\t\teditor.ui.componentFactory.add('presets', locale => {\n\t\t\t// @ts-ignore\n\t\t\tconst dropdownView = new createDropdown(locale)\n\n\t\t\tdropdownView.buttonView.set({\n\t\t\t\tlabel: 'Presets',\n\t\t\t\ttooltip: true,\n\t\t\t\twithText: true,\n\t\t\t})\n\n\t\t\tconst items = new Collection()\n\n\t\t\tif (editPresets) {\n\t\t\t\titems.add({\n\t\t\t\t\ttype: 'button',\n\t\t\t\t\tmodel: new ViewModel({\n\t\t\t\t\t\twithText: true,\n\t\t\t\t\t\tlabel: '+ Add new',\n\t\t\t\t\t\tclass: 'ck-button-action',\n\t\t\t\t\t\tid: 'addNew',\n\t\t\t\t\t}),\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tpresetsOptions.forEach(preset => {\n\t\t\t\tif (preset !== '') {\n\t\t\t\t\titems.add({\n\t\t\t\t\t\ttype: 'button',\n\t\t\t\t\t\tmodel: new ViewModel({\n\t\t\t\t\t\t\twithText: true,\n\t\t\t\t\t\t\tlabel: preset.label,\n\t\t\t\t\t\t\tid: spaceToUnderscore(preset.label),\n\t\t\t\t\t\t}),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\n\t\t\taddListToDropdown(dropdownView, items)\n\t\t\tdropdownView.buttonView.on('execute', () => {})\n\n\t\t\tdropdownView.on('execute', evt => {\n\t\t\t\tconst { id, label } = evt.source\n\t\t\t\tswitch (id) {\n\t\t\t\t\tcase 'addNew':\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.insertPresetText(label)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn dropdownView\n\t\t})\n\t}\n\tinsertPresetText(label) {\n\t\tconst editor = this.editor\n\t\tconst presetsOptions = this.presets.options\n\t\tconst preset = presetsOptions.find(p => p.label === label)\n\t\tif (!preset) return\n\t\teditor.model.change(writer => {\n\t\t\tconst viewFragment = editor.data.processor.toView(preset.value)\n\t\t\tconst modelFragment = editor.data.toModel(viewFragment)\n\t\t\teditor.model.insertContent(modelFragment)\n\t\t})\n\t}\n}\n\nexport default Presets\n","function htmlToPlainTextRegex(html) {\n\t// Replace

tags with line breaks\n\thtml = html.replace(/]*>/gi, '').replace(/<\\/p>/gi, '\\n\\n')\n\n\t// Handle unordered lists\n\thtml = html\n\t\t.replace(/]*>/gi, '')\n\t\t.replace(/<\\/ul>/gi, '')\n\t\t.replace(/]*>/gi, '• ')\n\t\t.replace(/<\\/li>/gi, '\\n')\n\n\t// Handle ordered lists\n\thtml = html\n\t\t.replace(/]*>/gi, '')\n\t\t.replace(/<\\/ol>/gi, '')\n\t\t.replace(/]*>/gi, (match, index) => {\n\t\t\tconst listItemNumber = index + 1\n\t\t\treturn `${listItemNumber}. `\n\t\t})\n\t\t.replace(/<\\/li>/gi, '\\n')\n\n\t// Remove all remaining HTML tags\n\thtml = html\n\t\t.replace(/<[^>]*>/gi, '')\n\t\t// Decode HTML entities\n\t\t.replace(/ /gi, ' ')\n\t\t.replace(/</gi, '<')\n\t\t.replace(/>/gi, '>')\n\t\t.replace(/&/gi, '&')\n\t\t.replace(/"/gi, '\"')\n\t\t.replace(/'/gi, \"'\")\n\n\t// Trim and normalize whitespace\n\treturn html.trim().replace(/\\n{3,}/g, '\\n\\n')\n}\n\nfunction isHtmlString(str) {\n\t// Trim whitespace to ensure accurate checking\n\tconst trimmedStr = str.trim()\n\n\t// Check if the string is empty\n\tif (!trimmedStr) {\n\t\treturn false\n\t}\n\n\t// Basic HTML tag detection regex\n\tconst htmlTagRegex = /^<([a-z0-9]+)(?:\\s+[^>]*)?>(.*?)<\\/\\1>$|^<([a-z0-9]+)(?:\\s+[^>]*)?\\/>$/i\n\n\t// More comprehensive HTML detection\n\tconst htmlDetectionRegex = /<\\/?[\\w\\s=\"/.':;#-\\/?\\[\\]]+>/gi\n\n\t// Check conditions\n\tconst hasHtmlTags = htmlDetectionRegex.test(trimmedStr)\n\tconst isValidHtmlStructure = htmlTagRegex.test(trimmedStr)\n\n\t// Additional checks for HTML-like characteristics\n\tconst hasDoctype = //i.test(trimmedStr)\n\tconst hasHtmlRoot = /^.*<\\/html>$/i.test(trimmedStr)\n\tconst hasMajorTags = /<(body|head|div|span|p).*?>/.test(trimmedStr)\n\n\t// Scoring system to determine HTML likelihood\n\tlet htmlScore = 0\n\n\tif (hasHtmlTags) htmlScore += 3\n\tif (isValidHtmlStructure) htmlScore += 2\n\tif (hasDoctype) htmlScore += 3\n\tif (hasHtmlRoot) htmlScore += 2\n\tif (hasMajorTags) htmlScore += 1\n\n\t// Consider more than one HTML-like characteristic as HTML\n\treturn htmlScore >= 3\n}\n\nexport { htmlToPlainTextRegex, isHtmlString }\n","'use strict'\nimport { isHtmlString } from '@/utils/textUtils.js'\nimport { Plugin, TextWatcher } from 'ckeditor5'\n\nclass Autocomplete extends Plugin {\n\tstatic get pluginName() {\n\t\treturn 'Autocomplete'\n\t}\n\n\tinit() {\n\t\tconst editor = this.editor\n\t\tconst model = editor.model\n\t\tconst autocompleteList = editor.config.get('autocomplete')\n\n\t\tconst testCallback = text => {\n\t\t\tconst words = getLastWord(text)\n\t\t\tfor (const autocomplete of autocompleteList) {\n\t\t\t\tconst key = autocomplete.key\n\t\t\t\tconst match = words === key\n\t\t\t\tif (match) {\n\t\t\t\t\treturn { autocomplete }\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst watcher = new TextWatcher(editor.model, testCallback)\n\n\t\twatcher.on('matched:data', (evt, data) => {\n\t\t\tif (!data.batch.isTyping) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst { from, to } = data.autocomplete\n\t\t\t// @ts-ignore\n\t\t\tconst toX = () => [to]\n\t\t\tconst matches = from.exec(data.text)\n\n\t\t\t// WORKAROUND:\n\t\t\t// This is horrible, but is needed to reset the lastIndex for the regular expresions, sorry.\n\t\t\t// After the first match, the lastIndex is set to the end of the string\n\t\t\t// and the next match will not be found\n\t\t\tconst reset = from.exec('')\n\n\t\t\tif (!matches) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst match = [matches[0]]\n\t\t\tconst replaces = toX(match.slice(1))\n\t\t\tconst matchedRange = data.range\n\n\t\t\tlet changeIndex = matches.index\n\n\t\t\tmodel.enqueueChange(writer => {\n\t\t\t\tfor (let i = 0; i < match.length; i++) {\n\t\t\t\t\tconst matchx = match[i]\n\t\t\t\t\tlet replaceWith = replaces[i]\n\t\t\t\t\tif (isHtmlString(replaceWith)) {\n\t\t\t\t\t\tconst styleProcessor = new StylesProcessor()\n\t\t\t\t\t\tconst viewDocument = editor.editing.view.document\n\t\t\t\t\t\tconst htmlDP = new HtmlDataProcessor(viewDocument)\n\t\t\t\t\t\tconst viewFragment = htmlDP.toView(replaceWith)\n\t\t\t\t\t\tconst modelFragment = editor.data.toModel(viewFragment)\n\t\t\t\t\t\tconst replacePosition = matchedRange.start.getShiftedBy(changeIndex)\n\t\t\t\t\t\tconst replaceRange = model.createRange(replacePosition, replacePosition.getShiftedBy(matchx.length))\n\t\t\t\t\t\teditor.model.insertContent(modelFragment, replaceRange)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (replaceWith == null) {\n\t\t\t\t\t\t\tchangeIndex += match.length\n\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (new RegExp(/^\\s*$/).test(matchx[0])) {\n\t\t\t\t\t\t\t\treplaceWith = matchx[0] + replaceWith\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treplaceWith = replaceWith + matchx[matchx.length - 1]\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst replacePosition = matchedRange.start.getShiftedBy(changeIndex)\n\t\t\t\t\t\tconst replaceRange = model.createRange(replacePosition, replacePosition.getShiftedBy(matchx.length))\n\t\t\t\t\t\tconst attributes = getTextAttributesAfterPosition(replacePosition)\n\n\t\t\t\t\t\tconst lines = replaceWith.split('\\n')\n\t\t\t\t\t\tconst fragment = writer.createDocumentFragment()\n\t\t\t\t\t\tlines.forEach(line => {\n\t\t\t\t\t\t\tconst paragraphNode = writer.createElement('paragraph')\n\t\t\t\t\t\t\tconst textNode = writer.createText(line)\n\t\t\t\t\t\t\twriter.append(textNode, paragraphNode)\n\t\t\t\t\t\t\twriter.append(paragraphNode, fragment)\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\tmodel.insertContent(fragment, replaceRange)\n\n\t\t\t\t\t\tchangeIndex += replaceWith.length\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\twriter.setSelection(writer.createPositionAt(editor.model.document.getRoot(), 'end'))\n\t\t\t})\n\t\t})\n\t}\n}\nfunction getTextAttributesAfterPosition(position) {\n\tconst textNode = position.textNode ? position.textNode : position.nodeAfter\n\n\treturn textNode.getAttributes() || {}\n}\n\nfunction getLastWord(str) {\n\t// Check if string ends with space, ., ,, ?, or !\n\tconst endingConditions = [' ', '.', ',', ';', '?', '!']\n\tif (!endingConditions.some(condition => str.endsWith(condition))) {\n\t\t// If string doesn't end with these conditions, return the entire trimmed string\n\t\treturn ''\n\t}\n\n\t// Remove the ending punctuation or space\n\tconst cleanedStr = str.replace(/[.,?! ]+$/, '')\n\n\t// Split the cleaned string and get the last word\n\tconst words = cleanedStr.split(/\\s+/)\n\treturn words[words.length - 1]\n}\n\nexport default Autocomplete\n","\n\n\n\n\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!./CKEditor.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!./CKEditor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CKEditor.vue?vue&type=template&id=cdd5ab8e\"\nimport script from \"./CKEditor.vue?vue&type=script&lang=js\"\nexport * from \"./CKEditor.vue?vue&type=script&lang=js\"\nimport style0 from \"./CKEditor.vue?vue&type=style&index=0&id=cdd5ab8e&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","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!./SearchAndFilter.vue?vue&type=style&index=0&id=8b6cd89a&prod&lang=scss\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{attrs:{\"close-on-escape\":false},on:{\"close\":_vm.close}},[_c('div',{staticClass:\"dialog settings-dialog\"},[_c('dlg-header',{attrs:{\"title\":_vm.activeSettingView && !_vm.mq.small ? _vm.activeSettingView.title : 'Settings'},on:{\"close\":_vm.close}},[(_vm.showBackButton)?_c('toolbar-button',{staticClass:\"back-button\",attrs:{\"icon\":\"arrow-left\"},nativeOn:{\"click\":function($event){return _vm.goBack()}}}):_vm._e()],1),_c('div',{staticClass:\"settings-body\"},[(!_vm.activeSettingView && !_vm.mq.small)?_c('nav',{staticClass:\"mobile-nav\"},[_vm._l((_vm.visibleSettingsGroups),function(ref){\nvar group = ref[0];\nvar views = ref[1];\nreturn [_c('span',{key:group + '-m'},[_vm._v(_vm._s(_vm._f(\"capitalize\")(group)))]),_vm._l((views),function(settingView){return _c('a',{key:settingView.name,class:{ 'active-view': settingView === _vm.activeSettingView },attrs:{\"title\":settingView.description},on:{\"click\":function($event){return _vm.pushSettingView(settingView.name)}}},[_c('span',{staticClass:\"setting-title\"},[_vm._v(_vm._s(settingView.title))]),_c('span',{staticClass:\"setting-description\"},[_vm._v(_vm._s(settingView.description))])])})]})],2):_vm._e(),(_vm.mq.small)?_c('nav',{staticClass:\"desktop-nav\"},[_vm._l((_vm.visibleSettingsGroups),function(ref){\nvar group = ref[0];\nvar views = ref[1];\nreturn [_c('span',{key:group},[_vm._v(_vm._s(_vm._f(\"capitalize\")(group)))]),_vm._l((views),function(settingView){return _c('a',{key:settingView.name,class:{ 'active-view': settingView === _vm.activeSettingView },attrs:{\"title\":settingView.description},on:{\"click\":function($event){return _vm.replaceSettingView(settingView.name)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(settingView.title)+\"\\n\\t\\t\\t\\t\\t\")])})]})],2):_vm._e(),(_vm.activeSettingView)?_c('main',{attrs:{\"id\":\"settings-main\"}},[_c('h3',{staticStyle:{\"margin-bottom\":\"16px\"}},[_vm._v(_vm._s(_vm.activeSettingView.title))]),_c(_vm.activeSettingView.component,_vm._b({tag:\"component\",on:{\"switch-view\":_vm.onSwitchView}},'component',_vm.activeSettingView.name === _vm.viewName ? _vm.viewProps : _vm.localViewProps,false))],1):_vm._e()])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Settings.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!./Settings.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Settings.vue?vue&type=template&id=df760e62\"\nimport script from \"./Settings.vue?vue&type=script&lang=js\"\nexport * from \"./Settings.vue?vue&type=script&lang=js\"\nimport style0 from \"./Settings.vue?vue&type=style&index=0&id=df760e62&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","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!./RichText.vue?vue&type=style&index=0&id=6dfb1164&prod&lang=scss\"","module.exports = \"\"","module.exports = \"\"","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!./ReleaseNotes.vue?vue&type=style&index=0&id=01db828d&prod&lang=scss&scoped=true\"","module.exports = \"\"","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!./Layout.vue?vue&type=style&index=0&id=e97d5242&prod&lang=scss\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","// Disable default IE help popup\n// @ts-ignore\nconst windowF1 = window.onhelp\n\nfunction removeOnHelp() {\n\t// @ts-ignore\n\twindow.onhelp = function() {\n\t\treturn false\n\t}\n}\nfunction restoreOnHelp() {\n\t// @ts-ignore\n\twindow.onhelp = windowF1\n}\n\ninterface IKeyMap {\n\t[key: string]: string | string[]\n}\n\n// Create a keymap of our known key inputs to the JS event.code value\nconst _keyOptionsMap: IKeyMap = [\n\t// Number Row\n\t...`1234567890`.split('').map(k => ({ [k]: 'Digit' + k })),\n\t// Alphabet\n\t...`ABCDEFGHIJKLMNOPQRSTUVWXYZ`.split('').map(k => ({ [k]: 'Key' + k })),\n\t// Function Keys\n\t...new Array(12).fill('F').map((a, i) => {\n\t\tlet k = a + (i + 1)\n\t\treturn { [k]: k }\n\t}),\n\t// Numpad Digits\n\t...`0123456789`.split('').map(n => ({ ['NumPad' + n]: 'Numpad' + n })),\n\t// Arrow Keys\n\t...['Left', 'Right', 'Up', 'Down'].map(k => ({ [k]: 'Arrow' + k })),\n\t// Misc Named Keys\n\t...[\n\t\t'Delete',\n\t\t'Insert',\n\t\t'Home',\n\t\t'End',\n\t\t'PageDown',\n\t\t'PageUp',\n\t\t'Enter',\n\t\t'Escape',\n\t\t'Space',\n\t\t'Tab',\n\t].map(k => ({ [k]: k })),\n\t// printscreen has multiple values, depending on platform\n\t{ PrintScreen: ['F13', 'PrintScreen'] },\n].reduce(function(result, current) {\n\treturn Object.assign(result, current)\n}, {})\nexport const allowedKeys = Object.keys(_keyOptionsMap)\n// Reverse map to match a keypress code to the saved value\nconst _reverseMap = Object.entries(_keyOptionsMap).reduce((acc, [key, value]) => {\n\tif (Array.isArray(value)) value.forEach(v => (acc[v] = key))\n\telse acc[value] = key\n\treturn acc\n}, {})\n\n// TODO: make this rebindable at runtime?\nconst targetElement = document\n// Elements that have this class will automatically allow keyboard events to be passed through;\n// otherwise input element targeted events will be ignored\nconst skipClass = 'allow-keybinds'\n\nconst _anykeyHandlers: Function[] = []\ninterface IKeyEventHandler {\n\t[key: string]: Set\n}\nconst _keyBindMapper: IKeyEventHandler = {}\n// Is keyboard currently listening to keypress events\nlet _isBound = false\n\nfunction _addHandler(mappedKey: string, onKey: Function) {\n\tif (!_keyBindMapper[mappedKey]) _keyBindMapper[mappedKey] = new Set()\n\t_keyBindMapper[mappedKey].add(onKey)\n}\n\nfunction _stopCallback(e) {\n\tlet element = e.target\n\tif (element === targetElement || element === window || element === document) {\n\t\treturn false\n\t}\n\n\tif (element.classList.contains(skipClass)) {\n\t\treturn false\n\t}\n\n\t// *** From Mousetrap: ***\n\t// Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n\t// not the initial event target in the shadow tree. Note that not all events cross the\n\t// shadow boundary.\n\t// For shadow trees with `mode: 'open'`, the initial event target is the first element in\n\t// the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n\t// target cannot be obtained.\n\tif ('composedPath' in e && typeof e.composedPath === 'function') {\n\t\t// For open shadow trees, update `element` so that the following check works.\n\t\tvar initialEventTarget = e.composedPath()[0]\n\t\tif (initialEventTarget !== e.target) {\n\t\t\telement = initialEventTarget\n\t\t}\n\t}\n\n\t// stop for input, select, and textarea\n\treturn (\n\t\telement.tagName === 'INPUT' ||\n\t\telement.tagName === 'SELECT' ||\n\t\telement.tagName === 'TEXTAREA' ||\n\t\telement.isContentEditable\n\t)\n}\n\n// Used to prevent duplicate key actions on down & up,\n// because some system-reserved keys only fire on up.\ninterface ILastKeyMap {\n\t[key: string]: Boolean\n}\nlet _lastKeyDown: ILastKeyMap = {}\n\nfunction _handleKeyDown(e: KeyboardEvent) {\n\t_lastKeyDown[e.code] = true\n\treturn _handleKey(e)\n}\n// For keys that only work on keyUp\nfunction _handleKeyUp(e: KeyboardEvent) {\n\tif (_lastKeyDown[e.code]) delete _lastKeyDown[e.code]\n\telse {\n\t\treturn _handleKey(e)\n\t}\n}\n\n/**\n * Will be called only once per key event. Most keys are on keyDown, but some, like PrintScreen,\n * only fire into JS on keyup. This is unified through the _handleKeyDown and _handleKeyUp handlers\n * @param {KeyboardEvent} e\n */\nfunction _handleKey(e: KeyboardEvent) {\n\t// Fire for each registered \"anykey\" callback, if the event key is one of the allowed keys\n\tif (getMapping(e.code)) _anykeyHandlers.forEach(h => h(e))\n\n\tif (_stopCallback(e)) {\n\t\treturn\n\t}\n\tconst handlers = _keyBindMapper[e.code] || _keyBindMapper[e.key]\n\tif (handlers) {\n\t\tif (!e.metaKey) {\n\t\t\te.preventDefault()\n\t\t}\n\t\thandlers.forEach(handler => handler(e))\n\t\treturn false\n\t} else {\n\t\treturn true\n\t}\n}\n\n/**\n * Attempt to coerce incorrectly cased keys\n * @param {string} key\n */\nfunction _findMatchingKey(key: string): string | string[] {\n\tlet mappedKey = _keyOptionsMap[key] || _keyOptionsMap[key.toUpperCase()]\n\tif (!mappedKey) {\n\t\tmappedKey = Object.keys(_keyOptionsMap).find(k => k.toLowerCase() === key.toLowerCase())\n\t}\n\treturn mappedKey\n}\n\n/** Public Functions API */\n\n/**\n * Bind a key, if in the _keyOptionsMap (an allowable key).\n * Will attempt to match if the key is not cased as expected.\n * Multiple listeners can be attached to the same key.\n * @returns {Boolean} true if the provided key was allowed/matched. False if not.\n */\nfunction bind(key: string, onKey: Function): Boolean {\n\tconst mappedKey = _findMatchingKey(key)\n\tif (!mappedKey) return false\n\tconst keyArray = Array.isArray(mappedKey) ? mappedKey : [mappedKey]\n\tkeyArray.forEach(mkey => {\n\t\t_addHandler(mkey, onKey)\n\t})\n\treturn true\n}\n\n/**\n * Removes the onKey function from the set of handlers for that key, if previously set\n * @returns {Boolean} true if the onKey function was bound to that key and successfully removed, false if not bound\n */\nfunction unbind(key: string, onKey: Function): Boolean {\n\tconst mappedKey = _findMatchingKey(key)\n\tif (mappedKey) {\n\t\tconst keyArray = Array.isArray(mappedKey) ? mappedKey : [mappedKey]\n\t\tlet wasMapped\n\t\tkeyArray.forEach(mkey => {\n\t\t\tif (_keyBindMapper[mkey]) {\n\t\t\t\twasMapped = true\n\t\t\t\t_keyBindMapper[mkey].delete(onKey)\n\t\t\t}\n\t\t})\n\t\treturn wasMapped\n\t}\n\treturn false\n}\n\n/**\n * Will fire the handler for a given key, as if the key had been pressed.\n * @returns true if the key had a bound handler, false if not\n */\nfunction trigger(key: string): Boolean {\n\tconst mappedKey = _keyOptionsMap[key]\n\tif (!mappedKey) return false\n\tconst keyArray = Array.isArray(mappedKey) ? mappedKey : [mappedKey]\n\tlet triggered = false\n\tkeyArray.forEach(mkey => {\n\t\tif (_keyBindMapper[mkey]) {\n\t\t\t_keyBindMapper[mkey].forEach(onKey => onKey())\n\t\t\ttriggered = true\n\t\t}\n\t})\n\treturn triggered\n}\n\n/**\n * Resets keyboard service by deleting all keybind map references\n */\nfunction reset() {\n\tfor (var member in _keyBindMapper) delete _keyBindMapper[member]\n}\n\n/**\n * Start keyboard listeners on the defined target element, which defaults to `document`\n */\nfunction startListening() {\n\tif (!_isBound) {\n\t\ttargetElement.addEventListener('keydown', _handleKeyDown)\n\t\ttargetElement.addEventListener('keyup', _handleKeyUp)\n\t\t_isBound = true\n\t}\n}\n\n/**\n * Stops listening for keyboard events, but keeps the keybinds in memory\n */\nfunction stopListening() {\n\tif (_isBound) {\n\t\ttargetElement.removeEventListener('keydown', _handleKeyDown)\n\t\ttargetElement.removeEventListener('keyup', _handleKeyUp)\n\t\t_isBound = false\n\t}\n}\n\n/**\n * Register a callback to be fired on any keypress\n */\nfunction onKeypress(handler: Function) {\n\tif (_anykeyHandlers.indexOf(handler) < 0) {\n\t\t_anykeyHandlers.push(handler)\n\t}\n}\n\n/**\n * Deregister a registered onbKeypress callback\n */\nfunction offKeypress(handler: Function) {\n\t_anykeyHandlers.splice(_anykeyHandlers.indexOf(handler), 1)\n}\n\nfunction getMapping(code: string) {\n\treturn _reverseMap[code]\n}\n\nexport default {\n\tbind,\n\tunbind,\n\ttrigger,\n\treset,\n\tstartListening,\n\tstopListening,\n\tisListening: () => _isBound,\n\tremoveOnHelp,\n\trestoreOnHelp,\n\tonKeypress,\n\toffKeypress,\n\tgetMapping,\n}\n\n// Initialize\nremoveOnHelp()\nstartListening()\n","import { API } from '@services/api'\n\nclass DicomPartners {\n\tconstructor() {\n\t\tthis.configs = []\n\t}\n\n\tgetSignalPetLog(studyId, clinicCode) {\n\t\treturn API.get(`/study/signal-pet-log?studyId=${studyId}&clinicCode=${clinicCode}`).then(r => r.data)\n\t}\n}\n\nexport const dicomPartners = new DicomPartners()\nwindow.dicomPartners = dicomPartners\n\nexport const SIGNALPET_IMAGEVIEW_ID = 'ff3dc7fc-8dc6-4b7d-ac44-5621fefe0cd0'\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","export default function listToArray(list: string, fallback: any = []): Array {\n\tif (!list) return fallback\n\treturn list\n\t\t.split(',')\n\t\t.map(i => i.trim())\n\t\t.filter(i => i)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-wrapper',{on:{\"close\":_vm.close}},[_c('div',{staticClass:\"dialog flex large\",attrs:{\"id\":\"user-studies-dlg\"}},[_c('dlg-header',{attrs:{\"title\":\"Select a study.\"},on:{\"close\":_vm.close}}),_c('user-study-table',{attrs:{\"is-dialog\":true},on:{\"select-study\":_vm.close}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./UserStudiesDlg.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!./UserStudiesDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserStudiesDlg.vue?vue&type=template&id=0908c243\"\nimport script from \"./UserStudiesDlg.vue?vue&type=script&lang=js\"\nexport * from \"./UserStudiesDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserStudiesDlg.vue?vue&type=style&index=0&id=0908c243&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","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!./DataTable.vue?vue&type=style&index=0&id=1096f45a&prod&lang=scss&scoped=true\"","import Vue from 'vue'\n\nconst maxDelayForDoubleClick = 350\nconst events = ['mousedown', 'touchstart']\n\n// This v-dblclick directive works the same as @dblclick but works on mobile.\n// It also does not hijack dragstart events, unlike hammer.js.\nVue.directive('dblclick', {\n\tbind(el, binding) {\n\t\tel.onClick = e => {\n\t\t\tif (el.isDoubleClicking) {\n\t\t\t\tbinding.value(e)\n\t\t\t} else {\n\t\t\t\tel.isDoubleClicking = true\n\t\t\t\tsetTimeout(() => (el.isDoubleClicking = false), maxDelayForDoubleClick)\n\t\t\t}\n\t\t}\n\t\tevents.forEach(event => {\n\t\t\tif (`on${event}` in el) {\n\t\t\t\tel.addEventListener(event, el.onClick)\n\t\t\t}\n\t\t})\n\t},\n\tunbind(el) {\n\t\tevents.forEach(event => {\n\t\t\tif (`on${event}` in el) {\n\t\t\t\tel.removeEventListener(event, el.onClick)\n\t\t\t}\n\t\t})\n\t\tdelete el.onClick\n\t},\n})\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./AnnotationManager.vue?vue&type=style&index=0&id=c917b244&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!./PageBreak.vue?vue&type=style&index=0&id=5d80ba69&prod&lang=scss\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"attachment-list\"},[(_vm.attachments.length)?_c('h4',[_vm._v(\"Attachments\")]):_vm._e(),_c('ul',[_c('transition-group',{attrs:{\"name\":\"fade\"}},_vm._l((_vm.attachments),function(file){return _c('li',{key:file.imageId,class:{ excluded: _vm.seriesToExclude.includes(file.seriesId) }},[_c('svg-icon',{attrs:{\"icon\":_vm.findFileIconName(file.fileExtension),\"inline\":\"\"}}),_c('a',{on:{\"click\":function($event){return _vm.openAttachment(file)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(file.description ? file.description : file.friendlyName)+\"\\n\\t\\t\\t\\t\")])],1)}),0)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('modal-dialog',{attrs:{\"id\":\"requiredFieldsDlg\",\"actions\":_vm.actions,\"is-open\":true,\"title\":\"Client disclosure required prior to viewing endoscopic video\",\"data-test\":\"confirm-dialog\",\"close-text\":\"Cancel\"},on:{\"close\":_vm.closeModal,\"submit\":_vm.submit}},[_c('div',[_c('ast-input',{attrs:{\"type\":\"text\",\"has-error\":_vm.hasError,\"maxlength\":_vm.maxlength},model:{value:(_vm.endoscopyDisclosure),callback:function ($$v) {_vm.endoscopyDisclosure=$$v},expression:\"endoscopyDisclosure\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport AstInput from '@components/Input.vue'\nimport ModalDialog from \"@components/ModalDialog.vue\";\nimport {dlg} from \"@utils/dlgUtils\";\nimport { openAttachmentDlg } from \"@dialogs/attachmentDlg.vue\";\nimport {mapMutations} from \"vuex\";\nimport api from '@services/api'\n\nconst RequiredFieldsDialog = {\n name: 'RequiredFieldsDialog',\n components: {\n ModalDialog,\n AstInput,\n },\n props: {\n fileObject: Object,\n isRepository: Boolean\n },\n data(){\n return {\n endoscopyDisclosure: '',\n hasError: false,\n maxlength: '200', // 200 characters\n }\n },\n methods: {\n ...mapMutations(['setEndoscopyDisclosure']),\n closeModal() {\n dlg.close(this)\n },\n submit() {\n if (this.endoscopyDisclosure.length) {\n this.hasError = false\n dlg.close(this, true, false, false)\n this.setEndoscopyDisclosure(this.endoscopyDisclosure)\n openAttachmentDlg(this.fileObject, this.isRepository, !this.isRepository)\n } else {\n this.hasError = true\n }\n }\n },\n computed: {\n actions() {\n return [\n {\n type: 'button',\n name: 'Submit',\n emit: 'submit',\n },\n ]\n },\n }\n}\n\nexport default RequiredFieldsDialog\n\nexport async function openRequiredFieldsDlg( fileObject: IViewerAttachment, isRepository: boolean ) {\n const result = await api.viewer.getConsignerStudyViewingLog(fileObject.imageId)\n const imageId = result.data\n if (imageId === '00000000-0000-0000-0000-000000000000' && isRepository) {\n dlg.open(RequiredFieldsDialog, {fileObject, isRepository}, false)\n } else {\n openAttachmentDlg(fileObject, isRepository, !isRepository)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequiredFieldsDlg.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequiredFieldsDlg.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RequiredFieldsDlg.vue?vue&type=template&id=cc7e46cc\"\nimport script from \"./RequiredFieldsDlg.vue?vue&type=script&lang=ts\"\nexport * from \"./RequiredFieldsDlg.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\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!./AttachmentList.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!./AttachmentList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AttachmentList.vue?vue&type=template&id=7ea09718&scoped=true\"\nimport script from \"./AttachmentList.vue?vue&type=script&lang=js\"\nexport * from \"./AttachmentList.vue?vue&type=script&lang=js\"\nimport style0 from \"./AttachmentList.vue?vue&type=style&index=0&id=7ea09718&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 \"7ea09718\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showTag)?_c('div',{staticClass:\"filter-tag\"},[_c('span',[_vm._t(\"default\")],2),(_vm.dateRangeText)?[(_vm.hasLabel)?[_vm._v(\"\\n\\t\\t\\t \\n\\t\\t\")]:_vm._e(),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.dateRangeText)+\"\\n\\t\")]:_vm._e(),_c('button',{on:{\"click\":function($event){return _vm.$emit('input', _vm.clearValue)}}},[_c('svg-icon',{attrs:{\"icon\":\"close\"}})],1)],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./FilterTag.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!./FilterTag.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilterTag.vue?vue&type=template&id=7b74fad6\"\nimport script from \"./FilterTag.vue?vue&type=script&lang=js\"\nexport * from \"./FilterTag.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilterTag.vue?vue&type=style&index=0&id=7b74fad6&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","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!./Textbox.vue?vue&type=style&index=0&id=5dda7058&prod&lang=scss\"","module.exports = \"\"","import isMobileOS from './isMobileOS'\nimport omniDesktop from '@/electron/omniDesktop'\n\nconst modalitiesThatShouldLoadDicoms = ['CT', 'MR', 'PT']\n\nexport default function shouldLoadDicom(modality) {\n\tif (!omniDesktop.isConnected) {\n\t\tif (isMobileOS()) return false\n\t\tif (window.screen.width <= 768) return false\n\t}\n\treturn modalitiesThatShouldLoadDicoms.includes(modality)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('svg-sprite-map'),_c('ast-notifications'),_c('router-view'),_c('loading')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{staticStyle:{\"display\":\"none\"},attrs:{\"width\":\"0\",\"height\":\"0\"},domProps:{\"innerHTML\":_vm._s(_vm.$options.svgSpriteMap)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./SvgSpriteMap.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!./SvgSpriteMap.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SvgSpriteMap.vue?vue&type=template&id=522bfba8\"\nimport script from \"./SvgSpriteMap.vue?vue&type=script&lang=js\"\nexport * from \"./SvgSpriteMap.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","import storage from './storage'\n\nconst featureFlags = [\n\t{\n\t\tkey: 'HANGING_PROTOCOLS_IS_ACTIVE',\n\t\tdefaultValue: 0,\n\t\tstatus: 'deprecated',\n\t},\n\t{\n\t\tkey: 'UseHangingProtocolsV2',\n\t\tdefaultValue: 0,\n\t\tstatus: 'active',\n\t},\n]\n\nfunction cleanDeprecatedFeatureFlags() {\n\tfeatureFlags.forEach(featureFlag => {\n\t\tif (featureFlag.status === 'deprecated') storage.removeItem(featureFlag.key)\n\t})\n}\n\nfunction setFeatureFlags() {\n\tfeatureFlags.forEach(featureFlag => {\n\t\tif (!storage.getItem(featureFlag.key) && featureFlag.status !== 'deprecated') {\n\t\t\tstorage.setItem(featureFlag.key, JSON.stringify(featureFlag.defaultValue))\n\t\t}\n\t})\n}\n\nfunction setFeatureFlagValue(featureFlag, value) {\n\tconst key = storage.getItem(featureFlag)\n\tif (key) {\n\t\tstorage.setItem(featureFlag, JSON.stringify(value))\n\t\treturn console.info(`The Feature Flag: \"${featureFlag}\" was set to: \"${value}\"`)\n\t}\n\treturn console.error(\n\t\t`The Feature Flag: \"${featureFlag}\", does not exists, check the documentation to see the featureFlags available`\n\t)\n}\n\nfunction checkFeatureFlagValues() {\n\tconst currentFeatureFlags = featureFlags.map(featureFlag => {\n\t\treturn {\n\t\t\tkey: featureFlag.key,\n\t\t\tvalue: storage.getItem(featureFlag.key) ? storage.getItem(featureFlag.key) : featureFlag.defaultValue,\n\t\t}\n\t})\n\n\treturn console.info(currentFeatureFlags)\n}\n\nfunction getFeatureFlag(featureFlag) {\n\tconst key = storage.getItem(featureFlag)\n\tif (key) {\n\t\treturn parseInt(storage.getItem(featureFlag))\n\t}\n\tconsole.error(`The Feature Flag: \"${featureFlag}\" does not exist`)\n}\n\nexport default {\n\tcleanDeprecatedFeatureFlags,\n\tsetFeatureFlags,\n\tsetFeatureFlagValue,\n\tcheckFeatureFlagValues,\n\tgetFeatureFlag,\n}\n","\n\n\n\n\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!./App.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!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=59f125b0\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=59f125b0&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","const VueNotifications = {\n\tinstall(Vue, { store }) {\n\t\t// Writing a VueJS Plugin: https://vuejs.org/v2/guide/plugins.html#Using-a-Plugin\n\t\t// Dynamic Module Registration (Vuex): https://vuex.vuejs.org/en/modules.html#dynamic-module-registration\n\t\tif (!store) {\n\t\t\tthrow new Error('Please provide vuex store.')\n\t\t}\n\n\t\tstore.registerModule('VueNotifications', {\n\t\t\tstate: {\n\t\t\t\tpageNotifications: [],\n\t\t\t},\n\t\t\tmutations: {\n\t\t\t\taddNotification(state, notification) {\n\t\t\t\t\tconst MAX_NOTIFICATIONS = 20\n\t\t\t\t\tif (state.pageNotifications.length < MAX_NOTIFICATIONS) state.pageNotifications.push(notification)\n\t\t\t\t},\n\t\t\t\tremoveNotification(state, id) {\n\t\t\t\t\tconst foundIndex = state.pageNotifications.findIndex(notification => notification.id === id)\n\t\t\t\t\tif (foundIndex >= 0) {\n\t\t\t\t\t\tstate.pageNotifications.splice(foundIndex, 1)\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tclearErrorNotifications(state) {\n\t\t\t\t\tstate.pageNotifications = state.pageNotifications.filter(\n\t\t\t\t\t\tn => n.notificationType !== 'error' && n.notificationType !== 'warn'\n\t\t\t\t\t)\n\t\t\t\t},\n\t\t\t},\n\t\t\tactions: {\n\t\t\t\t/**\n\t\t\t\t * Takes a notification and adds it to our list of existing notifications\n\t\t\t\t *\n\t\t\t\t * @param {String} notification.id\n\t\t\t\t * @param {String} notification.message\n\t\t\t\t * @param {String} notification.notificationType\n\t\t\t\t * @param {Number} notification.duration\n\t\t\t\t */\n\t\t\t\taddNotification: ({ state, commit }, notification) => {\n\t\t\t\t\tconst existingNotificationForMessage = state.pageNotifications.find(n => n.message === notification.message)\n\t\t\t\t\tif (existingNotificationForMessage) commit('removeNotification', existingNotificationForMessage.id)\n\t\t\t\t\tnotification.id = notification.id || new Date().getTime() + '-' + new Date().getUTCMilliseconds()\n\t\t\t\t\tcommit('addNotification', notification)\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\t// Add an instance method\n\t\tVue.prototype.$notifications = {\n\t\t\tnotificationTypes: {\n\t\t\t\t0: 'info',\n\t\t\t\t1: 'question',\n\t\t\t\t2: 'success',\n\t\t\t\t3: 'warn',\n\t\t\t\t4: 'lock',\n\t\t\t\t5: 'error',\n\t\t\t},\n\t\t\t/**\n\t\t\t * Helper method for adding info notifications\n\t\t\t *\n\t\t\t * @param {string} message - Message to display with notification\n\t\t\t * @param {number} [15] - duration Number of seconds to display notification, can set to 0 for dismiss only\n\t\t\t */\n\t\t\taddInfo(message, duration, closeOnLogout) {\n\t\t\t\tthis.add({\n\t\t\t\t\ttype: this.notificationTypes[0], // info\n\t\t\t\t\tmessage,\n\t\t\t\t\tduration,\n\t\t\t\t\tcloseOnLogout,\n\t\t\t\t})\n\t\t\t},\n\t\t\t/**\n\t\t\t * Helper method for adding success notifications\n\t\t\t *\n\t\t\t * @param {string} message - Message to display with notification\n\t\t\t * @param {number} [15] - duration Number of seconds to display notification, can set to 0 for dismiss only\n\t\t\t */\n\t\t\taddSuccess(message, duration, closeOnLogout) {\n\t\t\t\tthis.add({\n\t\t\t\t\ttype: this.notificationTypes[2], // success\n\t\t\t\t\tmessage,\n\t\t\t\t\tduration,\n\t\t\t\t\tcloseOnLogout,\n\t\t\t\t})\n\t\t\t},\n\t\t\t/**\n\t\t\t * Helper method for adding warn notifications\n\t\t\t *\n\t\t\t * @param {string} message - Message to display with notification\n\t\t\t * @param {number} [15] - duration Number of seconds to display notification, can set to 0 for dismiss only\n\t\t\t */\n\t\t\taddWarning(message, duration, closeOnLogout) {\n\t\t\t\tthis.add({\n\t\t\t\t\ttype: this.notificationTypes[3], // warn\n\t\t\t\t\tmessage,\n\t\t\t\t\tduration,\n\t\t\t\t\tcloseOnLogout,\n\t\t\t\t})\n\t\t\t},\n\t\t\t/**\n\t\t\t * Helper method for adding error notifications\n\t\t\t *\n\t\t\t * @param {(string|object)} data - Message to display with notification\n\t\t\t * @param {number} [15] - duration Number of seconds to display notification, can set to 0 for dismiss only\n\t\t\t */\n\t\t\taddError(data, duration, closeOnLogout) {\n\t\t\t\tlet errors = []\n\n\t\t\t\tif (data.errors) {\n\t\t\t\t\terrors = data.errors.map(er => `${er.field}: ${er.message}`)\n\t\t\t\t} else {\n\t\t\t\t\terrors.push(data || 'no error message provided')\n\t\t\t\t}\n\n\t\t\t\terrors.forEach(message => {\n\t\t\t\t\tthis.add({\n\t\t\t\t\t\t// error\n\t\t\t\t\t\ttype: this.notificationTypes[5],\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t\tduration,\n\t\t\t\t\t\tcloseOnLogout,\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t},\n\t\t\t/**\n\t\t\t * Creates a page-level notification\n\t\t\t *\n\t\t\t * @param {(string|object)} options - String for info message, object for specifying other properties\n\t\t\t * @param {(string|number)} options.type - Notification type that matches notificationTypes enum\n\t\t\t * @param {string} options.message - Message to display with notification\n\t\t\t * @param {number} [15] - options.duration Number of seconds to display notification, can set to 0 for dismiss only\n\t\t\t */\n\t\t\tadd(options) {\n\t\t\t\t// Find Mesaged\n\t\t\t\tconst message = options.message || options || 'no message'\n\t\t\t\tconst duration = typeof options.duration === 'number' ? options.duration * 1000 : 15 * 1000\n\t\t\t\tconst closeOnLogout = options.closeOnLogout || false\n\n\t\t\t\t// Find type\n\t\t\t\tlet notificationType = this.notificationTypes[0]\n\t\t\t\tconst isTypeDefined = options.type !== null && options.type !== undefined\n\t\t\t\tconst isTypeNumber = isTypeDefined && typeof options.type === 'number'\n\n\t\t\t\tif (isTypeNumber) {\n\t\t\t\t\tnotificationType = this.notificationTypes[options.type] // enum\n\t\t\t\t} else if (isTypeDefined) {\n\t\t\t\t\tnotificationType = options.type // string\n\t\t\t\t}\n\n\t\t\t\t// Add to store\n\t\t\t\tstore.dispatch('addNotification', {\n\t\t\t\t\tid: new Date().getTime() + '-' + new Date().getUTCMilliseconds(),\n\t\t\t\t\tmessage,\n\t\t\t\t\tnotificationType,\n\t\t\t\t\tduration,\n\t\t\t\t\tcloseOnLogout,\n\t\t\t\t})\n\t\t\t},\n\t\t}\n\t},\n}\n\nexport default VueNotifications\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"message-service\"},_vm._l((_vm.messages),function(msg,index){return _c('message-notification',{key:index,ref:\"notifications\",refInFor:true,attrs:{\"title\":msg.title,\"message\":msg.message,\"position\":msg.position,\"can-be-closed\":msg.canBeClosed,\"width\":msg.width,\"start-date\":msg.startDate,\"end-date\":msg.endDate},on:{\"close\":function($event){return _vm.removeMessage(index)}}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.isVisible)?_c('div',{class:['message-notification', _vm.positionClass],style:(_vm.computedStyle)},[(_vm.title)?_c('h3',{staticClass:\"message-title\"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(_vm.processedMessage)?_c('div',{staticClass:\"message-content\"},[(Array.isArray(_vm.processedMessage))?[_c('div',_vm._l((_vm.processedMessage),function(line,index){return _c('p',{key:index,domProps:{\"innerHTML\":_vm._s(line)}})}),0)]:_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.processedMessage)}})],2):_vm._e(),(_vm.canBeClosed)?_c('button',{staticClass:\"close-button\",on:{\"click\":_vm.closeMessage}},[_vm._v(\"\\n ×\\n \")]):_vm._e()]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./MessageNotification.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!./MessageNotification.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageNotification.vue?vue&type=template&id=3a3e8e89\"\nimport script from \"./MessageNotification.vue?vue&type=script&lang=js\"\nexport * from \"./MessageNotification.vue?vue&type=script&lang=js\"\nimport style0 from \"./MessageNotification.vue?vue&type=style&index=0&id=3a3e8e89&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\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!./MessageService.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!./MessageService.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageService.vue?vue&type=template&id=25e02dac\"\nimport script from \"./MessageService.vue?vue&type=script&lang=js\"\nexport * from \"./MessageService.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport MessageService from './MessageService.vue'\n\nconst Plugin = {\n install(Vue) {\n // Register the MessageService component globally\n Vue.component('message-service', MessageService)\n\n // Create the message service\n const MessageServiceClass = Vue.extend(MessageService)\n const messageService = new MessageServiceClass()\n\n // Mount it to the document\n messageService.$mount()\n document.body.appendChild(messageService.$el)\n\n // Create the plugin methods\n Vue.prototype.$message = {\n show(options) {\n messageService.showNotification(options)\n },\n\n temporary(message, duration) {\n messageService.showTemporary(message, duration)\n },\n\n clear() {\n messageService.clearAll()\n }\n }\n }\n}\n\nexport default Plugin\n\n// Auto-install when vue is found on window\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(Plugin)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('vue-select',_vm._g(_vm._b({ref:\"vueSelect\",staticClass:\"ast-v-select\",class:{ disabled: _vm.disabled },attrs:{\"options\":_vm.uniqueOptions,\"calculate-position\":_vm.$props.calculatePosition || _vm.positionDropdown,\"append-to-body\":_vm.$props.appendToBody!==false,\"tabindex\":_vm.disabled ? -1 : 0,\"select-on-tab\":\"\"},nativeOn:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.stopPropagation();}},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'vue-select',_vm.$attrs,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./VSelect.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!./VSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VSelect.vue?vue&type=template&id=233ec5a4\"\nimport script from \"./VSelect.vue?vue&type=script&lang=js\"\nexport * from \"./VSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./VSelect.vue?vue&type=style&index=0&id=233ec5a4&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","import isMobileOS from '@utils/isMobileOS'\nimport minWidths from '@styles/_vars.scss'\n\nlet mq = {\n\tipadSize: screen.width >= 768, // should not change\n}\n// iterate over exported scss variables (small, medium, large, xLarge)\nfor (const key in minWidths) {\n\tconst mql = window.matchMedia(`(min-width: ${minWidths[key]}), print`)\n\tmq[key] = mql.matches // e.g. mq.medium = true if viewport width is $mqMedium or wider\n\tmql.addListener(e => (mq[key] = e.matches))\n}\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tmq,\n\t\t\tisMobileOS: isMobileOS(),\n\t\t}\n\t},\n}\n","import { set } from 'vue-gtag'\n\n// NOTE: When changing analytics custom dimensions, update this const\nexport const gaMap = {\n\tCLINIC_ID: 'dimension1',\n\tCLINIC_CODE: 'dimension2',\n\tOMNI_VERSION: 'dimension3',\n\tUSERNAME: 'dimension4',\n\tIS_COMMUNITY: 'dimension5',\n\tIS_DESKTOP: 'dimension6',\n}\n\nconst state = {}\n\nconst getters = {}\n\nconst mutations = {}\n\nconst actions = {\n\tSET_USER: (store, { id, clinicId, clinicCode, username, isCommunity, isDesktop }) => {\n\t\tset({\n\t\t\tuserId: id,\n\t\t\t[gaMap.CLINIC_ID]: clinicId,\n\t\t\t[gaMap.CLINIC_CODE]: clinicCode,\n\t\t\t[gaMap.USERNAME]: username,\n\t\t\t[gaMap.IS_COMMUNITY]: String(isCommunity),\n\t\t\t[gaMap.IS_DESKTOP]: String(isDesktop),\n\t\t})\n\t},\n\tUNSET_USER: () => {\n\t\tset({\n\t\t\tuserId: '',\n\t\t\t[gaMap.CLINIC_ID]: '',\n\t\t\t[gaMap.CLINIC_CODE]: '',\n\t\t\t[gaMap.USERNAME]: '',\n\t\t\t[gaMap.IS_COMMUNITY]: '',\n\t\t\t[gaMap.IS_DESKTOP]: '',\n\t\t})\n\t},\n}\n\nexport default {\n\tstate,\n\tgetters,\n\tmutations,\n\tactions,\n}\n","import Vue from 'vue'\n\nVue.directive('focus', {\n\tinserted(el, binding) {\n\t\tif (binding.value === false) return // if passed an expression that evals to false, do not focus\n\t\t// if element is not an input, find its first child input instead\n\t\tif (el.tagName.toLowerCase() !== 'input') el = el.querySelector('input')\n\t\tel && el.focus()\n\t},\n})\n","import Vue from 'vue'\n\nVue.directive('resizable', {\n\tbind(el) {\n\t\tel.style.position = 'absolute'\n\t\tlet left, top, width, height, startX, startY, handleEls, activeHandle\n\n\t\taddHandles()\n\t\tel.addEventListener('mousedown', start)\n\t\tel.addEventListener('touchstart', start)\n\t\tel.onMouseDown = start // for removing the event listeners in unbind\n\n\t\tfunction addHandles() {\n\t\t\tconst handles = ['t', 'r', 'b', 'l', 'tr', 'br', 'bl', 'tl']\n\t\t\thandleEls = handles.map(createHandleEl)\n\t\t\thandleEls.forEach(handleEl => el.appendChild(handleEl))\n\t\t}\n\n\t\tfunction start(e) {\n\t\t\tif (!handleEls.includes(e.target)) return\n\n\t\t\tconst isTouch = e.type === 'touchstart' && e.touches.length > 0\n\t\t\tconst evtData = isTouch ? e.touches[0] : e\n\t\t\tstartX = evtData.clientX\n\t\t\tstartY = evtData.clientY\n\t\t\tleft = el.offsetLeft\n\t\t\ttop = el.offsetTop\n\t\t\twidth = el.clientWidth\n\t\t\theight = el.clientHeight\n\n\t\t\tdocument.documentElement.style.cursor = getCursor(e.target.dataset.handle)\n\t\t\tactiveHandle = e.target.dataset.handle\n\n\t\t\tdocument.addEventListener('mousemove', move)\n\t\t\tdocument.addEventListener('mouseup', end)\n\t\t\tdocument.addEventListener('touchmove', move)\n\t\t\tdocument.addEventListener('touchend', end)\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tfunction move(e) {\n\t\t\tconst isTouch = e.type === 'touchmove' && e.touches.length > 0\n\t\t\tconst evtData = isTouch ? e.touches[0] : e\n\t\t\tconst dx = evtData.clientX - startX\n\t\t\tconst dy = evtData.clientY - startY\n\t\t\tconst min = 300 // we can eventually make this configurable if necessary\n\n\t\t\tif (activeHandle.includes('t')) {\n\t\t\t\tconst newHeight = Math.max(min, height - dy)\n\t\t\t\tif (newHeight >= min) {\n\t\t\t\t\tel.style.height = newHeight + 'px'\n\t\t\t\t\tel.style.top = top + dy + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (activeHandle.includes('b')) {\n\t\t\t\tconst newHeight = Math.max(min, height + dy)\n\t\t\t\tif (newHeight >= min) {\n\t\t\t\t\tel.style.height = newHeight + 'px'\n\t\t\t\t\tel.style.top = top + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (activeHandle.includes('l')) {\n\t\t\t\tconst newWidth = Math.max(min, width - dx)\n\t\t\t\tif (newWidth >= min) {\n\t\t\t\t\tel.style.width = newWidth + 'px'\n\t\t\t\t\tel.style.left = left + dx + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (activeHandle.includes('r')) {\n\t\t\t\tconst newWidth = Math.max(min, width + dx)\n\t\t\t\tif (newWidth >= min) {\n\t\t\t\t\tel.style.width = newWidth + 'px'\n\t\t\t\t\tel.style.left = left + 'px'\n\t\t\t\t}\n\t\t\t}\n\t\t\tel.dispatchEvent(new CustomEvent('resize'))\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tfunction end() {\n\t\t\tdocument.documentElement.style.cursor = ''\n\t\t\tactiveHandle = null\n\n\t\t\tdocument.removeEventListener('mousemove', move)\n\t\t\tdocument.removeEventListener('mouseup', end)\n\t\t\tdocument.removeEventListener('touchmove', move)\n\t\t\tdocument.removeEventListener('touchend', end)\n\t\t}\n\t},\n\tunbind(el) {\n\t\tdocument.documentElement.style.cursor = ''\n\t\tel.removeEventListener('mousedown', el.onMouseDown)\n\t\tel.removeEventListener('touchstart', el.onMouseDown)\n\t},\n})\n\nfunction createHandleEl(handle) {\n\tconst handleWidth = '12px'\n\tconst handleOffset = '-6px'\n\tconst handleSideZIndex = 90\n\tconst handleCornerZIndex = 91\n\n\tconst handleEl = document.createElement('div')\n\thandleEl.dataset.handle = handle\n\thandleEl.style.position = 'absolute'\n\thandleEl.style.touchAction = 'none'\n\thandleEl.style.userSelect = 'none'\n\thandleEl.style.zIndex = handle.length === 1 ? handleSideZIndex : handleCornerZIndex\n\thandleEl.style.cursor = getCursor(handle)\n\tif (handle.includes('t')) {\n\t\thandleEl.style.top = handleOffset\n\t\thandleEl.style.height = handleWidth\n\t\tif (handle === 't') {\n\t\t\thandleEl.style.left = 0\n\t\t\thandleEl.style.width = '100%'\n\t\t}\n\t}\n\tif (handle.includes('b')) {\n\t\thandleEl.style.bottom = handleOffset\n\t\thandleEl.style.height = handleWidth\n\t\tif (handle === 'b') {\n\t\t\thandleEl.style.left = 0\n\t\t\thandleEl.style.width = '100%'\n\t\t}\n\t}\n\tif (handle.includes('r')) {\n\t\thandleEl.style.right = handleOffset\n\t\thandleEl.style.width = handleWidth\n\t\tif (handle === 'r') {\n\t\t\thandleEl.style.top = 0\n\t\t\thandleEl.style.height = '100%'\n\t\t}\n\t}\n\tif (handle.includes('l')) {\n\t\thandleEl.style.left = handleOffset\n\t\thandleEl.style.width = handleWidth\n\t\tif (handle === 'l') {\n\t\t\thandleEl.style.top = 0\n\t\t\thandleEl.style.height = '100%'\n\t\t}\n\t}\n\treturn handleEl\n}\n\nfunction getCursor(handle) {\n\t// e.g. 'bl' => 'sw-resize'\n\tconst cursorDirection = {\n\t\tt: 'n',\n\t\tr: 'e',\n\t\tb: 's',\n\t\tl: 'w',\n\t}\n\treturn (\n\t\thandle\n\t\t\t.split('')\n\t\t\t.map(l => cursorDirection[l])\n\t\t\t.join('') + '-resize'\n\t)\n}\n","import Vue from 'vue'\n\ninterface ISortableElement extends HTMLElement {\n\tsortable: any\n}\n\nfunction Sortable(el: ISortableElement, binding, vnode) {\n\tel.sortable = this\n\tvar list = []\n\n\tvar dragElement = null\n\tvar origIndex = 0\n\tvar newIndex = 0\n\tvar dropped = false\n\n\tdoUpdate(binding, vnode)\n\tthis.update = doUpdate\n\n\tfunction doUpdate(binding, vnode) {\n\t\tif (list !== binding.value) {\n\t\t\tlist = binding.value\n\n\t\t\tvar children = el.children\n\t\t\tfor (var i = 0; i < children.length; i++) {\n\t\t\t\tvar child = children[i] as HTMLElement\n\t\t\t\tchild.draggable = true\n\t\t\t\tchild.ondragstart = dragStart\n\t\t\t\tchild.ondragenter = dragEnter\n\t\t\t\tchild.ondragover = dragOver\n\t\t\t\tchild.ondragend = dragEnd\n\t\t\t\tchild.ondrop = drop\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction dragStart(event) {\n\t\tdropped = false\n\t\tdragElement = event.target\n\t\torigIndex = newIndex = getTargetIndex(dragElement)\n\t\tevent.dataTransfer.setData('Text', this.id)\n\t\tevent.cancelBubble = true\n\t}\n\n\tfunction getTargetIndex(target) {\n\t\tvar result = -1\n\t\tvar cur = target\n\t\twhile (cur) {\n\t\t\tif (cur.parentElement === el) {\n\t\t\t\tresult = Array.prototype.indexOf.call(el.children, cur)\n\t\t\t\tbreak\n\t\t\t} else {\n\t\t\t\tcur = cur.parentElement\n\t\t\t}\n\t\t}\n\t\treturn result\n\t}\n\n\tfunction dragOver(event) {\n\t\tif (dragElement && getTargetIndex(event.target) >= 0) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\tfunction dragEnter(event) {\n\t\tvar targetIndex = getTargetIndex(event.target)\n\t\tif (dragElement && targetIndex >= 0) {\n\t\t\tmoveItem(newIndex, targetIndex)\n\t\t\tnewIndex = targetIndex\n\t\t\tevent.preventDefault()\n\t\t}\n\t}\n\n\tfunction moveItem(fromIndex, toIndex) {\n\t\tif (fromIndex !== toIndex) {\n\t\t\tvar item = list[fromIndex]\n\t\t\tlist.splice(fromIndex, 1)\n\t\t\tlist.splice(toIndex, 0, item)\n\t\t\tif (vnode.context.onItemMoved) {\n\t\t\t\tvnode.context.onItemMoved(list, fromIndex, toIndex)\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction drop(ev) {\n\t\tif (dragElement) {\n\t\t\tdropped = true\n\t\t}\n\t}\n\n\tfunction dragEnd(event) {\n\t\tif (dragElement) {\n\t\t\tif (!dropped) {\n\t\t\t\tmoveItem(newIndex, origIndex)\n\t\t\t}\n\t\t\tdragElement = null\n\t\t}\n\t}\n}\n\nVue.directive('sortable', {\n\tbind: function(el, binding, vnode) {\n\t\tel.sortable = new Sortable(el, binding, vnode)\n\t},\n\tcomponentUpdated: function(el: ISortableElement, binding, vnode) {\n\t\tif (el.sortable) {\n\t\t\tel.sortable.update(binding, vnode)\n\t\t} else {\n\t\t\tel.sortable = new Sortable(el, binding, vnode)\n\t\t}\n\t},\n})\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n\t// Still keeping the service worker around until we can nix PWA architecture\n\tregister(`${process.env.BASE_URL}service-worker.js`, {\n\t\tready() {\n\t\t\tconsole.info('Controller loaded')\n\t\t},\n\t\tcached() {\n\t\t\tconsole.info('Content has been cached for offline use.')\n\t\t},\n\t\tupdated() {\n\t\t\tconsole.info('New content is available.')\n\t\t},\n\t\toffline() {\n\t\t\tconsole.warn('No internet connection found. App is running in offline mode.')\n\t\t},\n\t\terror(error) {\n\t\t\tconsole.error('Error during service worker registration:', error)\n\t\t},\n\t})\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"cell\",class:{\n\t\tselected: _vm.cell === _vm.state.selCell,\n\t\tactive: _vm.state.activeCell === _vm.cell,\n\t\troot: _vm.cell.isRoot,\n\t\tpanel: _vm.cell.isPanel,\n\t},style:(_vm.style),attrs:{\"tabindex\":_vm.cell.layout === _vm.state.selLayout ? 0 : -1,\"draggable\":_vm.cell.template.editorMode},on:{\"dragstart\":function($event){$event.stopPropagation();return _vm.onDragStart($event)},\"mouseover\":function($event){$event.stopPropagation();return _vm.onMouseOver($event)},\"dragenter\":function($event){$event.stopPropagation();return _vm.onDragEnter($event)},\"dblclick\":function($event){$event.stopPropagation();return _vm.onDblClick($event)}}},[(_vm.cell.type == 'Panel')?_c('panel',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Table')?_c('report-table',{attrs:{\"cell\":_vm.cell}}):_c('div',{staticClass:\"control\"},[(_vm.cell.type === 'Image')?_c('report-image',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type === 'Text')?_c('report-text',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type === 'Divider')?_c('report-divider',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type === 'Page Break')?_c('page-break',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type === 'Checkbox')?_c('checkbox',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type === 'Textbox')?_c('textbox',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type === 'Date')?_c('report-date',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Dropdown')?_c('dropdown',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Radio Group')?_c('radio-group',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Checkbox Group')?_c('checkbox-group',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Request Info')?_c('request-info',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Response Info')?_c('response-info',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Patient Info')?_c('patient-info',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Referred By')?_c('referred-by',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Consultant')?_c('consultant',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Related Reports')?_c('related-reports',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Addendums')?_c('addendums',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Image Comments')?_c('image-comments',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Request Selector')?_c('request-selector',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Response Selector')?_c('response-selector',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Rich Text Editor')?_c('rich-text',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Referred By Form')?_c('referred-by-form',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Patient Form')?_c('patient-form',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Thumbnails')?_c('thumbnails',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Images & Attachments')?_c('images-attachments',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Consultant Selector')?_c('consultant-selector',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Priority Selector')?_c('priority-selector',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Service Selector')?_c('service-selector',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Billing Code Selector')?_c('billing-code-selector',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Notifications')?_c('notifications',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'HipNumber')?_c('hip-number',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type == 'Panel View')?_c('panel-view',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.type === 'Layout Wrapper')?_c('layout-wrapper',{attrs:{\"cell\":_vm.cell}}):(_vm.cell.subLayout && !_vm.cell.primitive)?_c('layout',{attrs:{\"layout\":_vm.cell.subLayout}}):(!_vm.cell.subLayouts.length)?_c('div',{staticClass:\"widget\"},[_c('span',[_vm._v(_vm._s(_vm.cell.type))])]):_vm._e()],1),(_vm.cellWarning)?_c('div',{staticClass:\"cell-warning\"},[_c('p',[_c('svg-icon',{attrs:{\"icon\":\"exclamation-triangle\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.cellWarning)+\"\\n\\t\\t\")],1)]):_vm._e(),(_vm.showCornerName)?_c('div',{staticClass:\"corner-name\"},[(_vm.toolIcon)?_c('svg-icon',{staticStyle:{\"opacity\":\"0.7\",\"margin-right\":\"2px\"},attrs:{\"icon\":_vm.toolIcon,\"fixed\":\"\"}}):_vm._e(),_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.cell.name)+\"\\n\\t\")],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._l((_vm.cell.subLayouts),function(layout,index){return _c('layout',{key:index,attrs:{\"layout\":layout}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\nimport { getPreviewContext } from '../context'\nexport default {\n\tname: 'LayoutWrapper',\n\tprops: {\n\t\tcell: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcreated() {\n\t\tconst layout = this.cell.layout\n\t\tif (layout) {\n\t\t\tthis.cell.subLayouts = []\n\t\t\tlet sub = layout.createInstance()\n\t\t\tsub.readOnly = true\n\t\t\tsub.forcePath = layout.name\n\t\t\tsub.previewInEditor = true\n\t\t\tthis.cell.addSubLayout(sub, getPreviewContext())\n\t\t}\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutWrapper.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutWrapper.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./LayoutWrapper.vue?vue&type=template&id=755cd06f\"\nimport script from \"./LayoutWrapper.vue?vue&type=script&lang=ts\"\nexport * from \"./LayoutWrapper.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.cell.subLayout)?_c('layout',{staticStyle:{\"padding\":\"16px\"},attrs:{\"layout\":_vm.cell.subLayout}}):(_vm.cell.template.editorMode || _vm.cell.report.isPreview)?_c('div',{staticClass:\"editor-placeholder\"},[_c('svg-icon',{attrs:{\"icon\":\"info-circle\",\"inline\":\"\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\tThe contents of the Request Selector on the request form will appear here.\\n\\t\")],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Cell } from '../classes'\n\nexport default {\n\tname: 'RequestInfo',\n\tprops: ['cell'],\n\twatch: {\n\t\tcell() {\n\t\t\tthis.init()\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.init()\n\t},\n\tmethods: {\n\t\tinit() {\n\t\t\tlet cell: Cell = this.cell\n\t\t\tif (cell.editorMode) return\n\t\t\tcell.subLayouts = []\n\t\t\tlet t = cell.report.request\n\t\t\tif (t == null) return\n\t\t\tlet selector = t.root.controls.find(c => c.type === 'Request Selector')\n\t\t\tif (selector == null) return\n\t\t\tlet infoType = t.values[selector.path]\n\t\t\tlet l\n\t\t\t// if Request Selector has a value, add the selected sublayout\n\t\t\tif (infoType) l = t.layouts.find(l => l.name === infoType)\n\t\t\t// if accessing Response in Preview dialog, default to the first Request Selector layout\n\t\t\telse if (cell.report.isPreview) l = t.layouts.find(l => l.group === 'Request Selector')\n\t\t\tif (!l) return\n\t\t\tlet layout = l.createInstance()\n\t\t\tlayout.readOnly = true\n\t\t\tlayout.template = t\n\t\t\tlayout.forcePath = infoType\n\t\t\tlayout.hydrate()\n\t\t\tcell.addSubLayout(layout)\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RequestInfo.vue?vue&type=template&id=3acb5270\"\nimport script from \"./RequestInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./RequestInfo.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.cell.subLayout)?_c('layout',{staticStyle:{\"padding\":\"16px\"},attrs:{\"layout\":_vm.cell.subLayout}}):(_vm.cell.template.editorMode)?_c('div',{staticClass:\"editor-placeholder\"},[_c('svg-icon',{attrs:{\"icon\":\"info-circle\",\"inline\":\"\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\tThe contents of the Response Selector on the response form will appear here.\\n\\t\")],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\nimport { Cell } from '../classes'\n\nexport default {\n\tname: 'ResponseInfo',\n\tprops: ['cell'],\n\twatch: {\n\t\tcell() {\n\t\t\tthis.init()\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.init()\n\t},\n\tmethods: {\n\t\tinit() {\n\t\t\tlet cell: Cell = this.cell\n\t\t\tif (cell.editorMode) return\n\t\t\tcell.subLayouts = []\n\t\t\tlet t = cell.report.response\n\t\t\tif (t == null) return\n\t\t\tlet selector = t.root.controls.find(c => c.type === 'Response Selector')\n\t\t\tif (selector == null) return\n\t\t\tlet infoType = t.values[selector.path]\n\t\t\tif (infoType) {\n\t\t\t\tlet l = t.layouts.find(l => l.name === infoType)\n\t\t\t\tlet layout = l.createInstance()\n\t\t\t\tlayout.readOnly = true\n\t\t\t\tlayout.template = t\n\t\t\t\tlayout.forcePath = infoType\n\t\t\t\tlayout.hydrate()\n\t\t\t\tcell.addSubLayout(layout)\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponseInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponseInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ResponseInfo.vue?vue&type=template&id=4efeeacd\"\nimport script from \"./ResponseInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./ResponseInfo.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"16px\"}},[_c('p',{staticStyle:{\"margin-bottom\":\"8px\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.client.name)+\"\\n\\t\")]),_c('p',[_c('span',{staticClass:\"clinic\"},[_vm._v(_vm._s(_vm.client.organization))]),_c('br'),(_vm.client.address)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.client.address)}}):_vm._e(),(_vm.cityStateZip)?[_c('br'),_c('span',[_vm._v(_vm._s(_vm.cityStateZip))])]:_vm._e()],2),_c('p',{staticStyle:{\"margin-top\":\"8px\"}},[(_vm.client.phone)?_c('span',[_c('a',{attrs:{\"href\":(\"tel:\" + (_vm.client.phone)),\"target\":\"hidden-iframe\"}},[_vm._v(_vm._s(_vm.client.phone))]),_c('br')]):_vm._e(),_c('a',{attrs:{\"href\":(\"mailto:\" + (_vm.client.email)),\"target\":\"hidden-iframe\"}},[_vm._v(_vm._s(_vm.client.email))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./ReferredBy.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!./ReferredBy.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReferredBy.vue?vue&type=template&id=f105e336\"\nimport script from \"./ReferredBy.vue?vue&type=script&lang=js\"\nexport * from \"./ReferredBy.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"16px\"}},[_c('p',{staticStyle:{\"margin-bottom\":\"8px\"}},[_vm._v(_vm._s(_vm.consultant.name))]),_c('p',[_c('span',{staticClass:\"clinic\"},[_vm._v(_vm._s(_vm.consultant.organization))]),_c('br'),(_vm.consultant.address)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.consultant.address)}}):_vm._e()]),_c('p',{staticStyle:{\"margin-top\":\"8px\"}},[(_vm.consultant.phone)?_c('span',[_c('a',{attrs:{\"href\":(\"tel:\" + (_vm.consultant.phone)),\"target\":\"hidden-iframe\"}},[_vm._v(_vm._s(_vm.consultant.phone))]),_c('br')]):_vm._e(),(_vm.consultant.email)?_c('span',[_c('a',{attrs:{\"href\":(\"mailto:\" + (_vm.consultant.email)),\"target\":\"hidden-iframe\"}},[_vm._v(_vm._s(_vm.consultant.email))]),_c('br')]):_vm._e(),(_vm.consultant.website)?_c('span',[_c('a',{attrs:{\"href\":_vm._f(\"url\")(_vm.consultant.website),\"target\":\"_blank\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.consultant.website)+\"\\n\\t\\t\\t\")]),_c('br')]):_vm._e()]),(_vm.drafter)?_c('p',{staticStyle:{\"margin-top\":\"8px\"}},[_c('label',[_vm._v(\"Drafted By: \"+_vm._s(_vm.drafter.name))])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./Consultant.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!./Consultant.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Consultant.vue?vue&type=template&id=3a30d0b5\"\nimport script from \"./Consultant.vue?vue&type=script&lang=js\"\nexport * from \"./Consultant.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"16px\"}},[(!_vm.areImageCommentsViewable)?_c('div',[_vm._v(\"\\n\\t\\tNo image comments were added.\\n\\t\")]):(_vm.cell.template.editorMode || _vm.images.length)?_c('div',[(_vm.canSetLayout)?_c('div',{staticStyle:{\"text-align\":\"right\",\"font-size\":\".9em\",\"margin-bottom\":\"1em\"}},[(_vm.pdfColumns > 1)?_c('span',[_vm._v(\"Printed Report will use \"+_vm._s(_vm.pdfColumns)+\" Columns   \")]):_vm._e(),_c('a',{on:{\"click\":function($event){return _vm.editLayout()}}},[_vm._v(\"Configure Layout\")])]):_vm._e(),_vm._l((_vm.cell.subLayouts),function(layout,index){return _c('layout',{key:index,attrs:{\"layout\":layout}})})],2):_c('p',{staticStyle:{\"font-style\":\"italic\"}},[_vm._v(\"\\n\\t\\tImage comments can be created from the\\n\\t\\t\"),_c('a',{on:{\"click\":_vm.openViewer}},[_vm._v(\"viewer.\")]),_vm._v(\"\\n\\t\\tOnce created, they can be edited here.\\n\\t\")])])}\nvar staticRenderFns = []\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}},[_c('div',{staticClass:\"dialog\",attrs:{\"id\":\"imageCommentLayoutDlg\"}},[_c('dlg-header',{attrs:{\"title\":\"Image Comment Layout\"},on:{\"close\":_vm.close}}),_c('div',{staticClass:\"content\"},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('label',{staticStyle:{\"flex-grow\":\"1\"}},[_vm._v(\"Columns\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.columns),expression:\"columns\"}],staticClass:\"select\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.columns=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{domProps:{\"value\":1}},[_vm._v(\"1 column\")]),_c('option',{domProps:{\"value\":2}},[_vm._v(\"2 column\")]),_c('option',{domProps:{\"value\":3}},[_vm._v(\"3 column\")]),_c('option',{domProps:{\"value\":4}},[_vm._v(\"4 column\")])])]),_c('div',[_vm._v(\"Image Order\")]),_c('div',{staticStyle:{\"flex-grow\":\"1\",\"overflow\":\"auto\"},style:(_vm.gridStyle)},_vm._l((_vm.items),function(item,i){return _c('div',{key:item.reportImageId,staticClass:\"item\",attrs:{\"draggable\":\"true\"},on:{\"dragover\":function($event){$event.preventDefault();return _vm.onDragOver($event, i)},\"dragstart\":function($event){return _vm.onDragStart($event, i)},\"drop\":function($event){return _vm.onDrop($event, i)}}},[_c('img',{attrs:{\"src\":item.url}}),(item.htmlValue)?_c('div',{staticClass:\"comment\",domProps:{\"innerHTML\":_vm._s(item.htmlValue)}}):_vm._e()])}),0),_c('div',{staticClass:\"footer right\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.save()}}},[_vm._v(\"Save Changes\")]),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Close\")])])])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport DlgHeader from '@components/DlgHeader.vue'\nimport ModalWrapper from '@components/ModalWrapper.vue'\nimport { dlg } from '@utils/dlgUtils'\nimport { reportService } from '@services/reportService'\nimport { workflow } from '@services/workflow'\nimport { Cell, TemplateSet } from '../classes'\nimport router from '@router' // for dialogs\nimport { eventBus } from '@services/eventBus'\nimport { userData } from '@services/userData'\n\nconst ImageCommentLayoutDlg = {\n\tname: 'ImageCommentLayoutDlg',\n\tprops: ['cell'],\n\tdata() {\n\t\treturn {\n\t\t\tcolumns: 1,\n\t\t\titems: [],\n\t\t\tdraggingIndex: null,\n\t\t}\n\t},\n\tcomponents: {\n\t\tDlgHeader,\n\t\tModalWrapper,\n\t},\n\tcomputed: {\n\t\tgridStyle() {\n\t\t\tlet gridTemplateColumns = ''\n\t\t\tfor (let i = 0; i < this.columns; i++) {\n\t\t\t\tgridTemplateColumns += 'auto '\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tdisplay: 'grid',\n\t\t\t\tgridTemplateColumns,\n\t\t\t}\n\t\t},\n\t},\n\tasync created() {\n\t\tlet images: IImageComment[] = this.cell.report.imageComments.slice(0)\n\n\t\tlet cell: Cell = this.cell\n\t\tthis.columns = cell.template.imageCommentColumns || 1\n\t\tif (cell.value) {\n\t\t\tlet layout: IImageCommentsLayout = JSON.parse(cell.value)\n\t\t\tthis.columns = layout.columns || 1\n\n\t\t\timages.sort((a, b) => {\n\t\t\t\tlet aIndex = layout.imageReportIds.indexOf(a.reportImageId)\n\t\t\t\tlet bIndex = layout.imageReportIds.indexOf(b.reportImageId)\n\t\t\t\treturn aIndex - bIndex\n\t\t\t})\n\t\t}\n\n\t\tthis.items = images\n\t},\n\tmethods: {\n\t\tmoveItem({ from, to }) {\n\t\t\tthis.items.splice(to, 0, this.items.splice(from, 1)[0])\n\t\t},\n\t\tonDragOver(e, i) {\n\t\t\te.dataTransfer.dropEffect = 'move'\n\t\t},\n\t\tonDrop(e, i) {\n\t\t\tthis.moveItem({ from: this.draggingIndex, to: i })\n\t\t},\n\t\tonDragStart(e, i) {\n\t\t\tthis.draggingIndex = i\n\t\t},\n\t\tsave() {\n\t\t\tlet images: IImageComment[] = this.items\n\t\t\tlet layout: IImageCommentsLayout = {\n\t\t\t\timageReportIds: images.map(i => i.reportImageId),\n\t\t\t\tcolumns: this.columns,\n\t\t\t}\n\n\t\t\tdlg.close(this, true, layout)\n\t\t},\n\t\tclose() {\n\t\t\tdlg.close(this)\n\t\t},\n\t},\n}\n\nexport default ImageCommentLayoutDlg\n\nexport function openImageCommentLayoutDlg(cell: Cell): Promise {\n\treturn dlg.open(ImageCommentLayoutDlg, { cell }, false)\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageCommentLayoutDlg.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageCommentLayoutDlg.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ImageCommentLayoutDlg.vue?vue&type=template&id=2bce1efa\"\nimport script from \"./ImageCommentLayoutDlg.vue?vue&type=script&lang=ts\"\nexport * from \"./ImageCommentLayoutDlg.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ImageCommentLayoutDlg.vue?vue&type=style&index=0&id=2bce1efa&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Cell } from '../classes'\nimport { ContextMeta } from '@reporting/context'\nimport reportService from '@services/reportService'\nimport store from '@store'\nimport Button from '@/components/Button.vue'\nimport { openImageCommentLayoutDlg } from '../dialogs/ImageCommentLayoutDlg.vue'\nimport GoogleAnalytics from '@services/analyticsService'\n\nexport default {\n\tname: 'ImageComments',\n\tprops: {\n\t\tcell: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tcanSetLayout() {\n\t\t\treturn !this.cell.editorMode && !this.cell.readOnly && !this.cell.template.isLegacy\n\t\t},\n\t\tpdfColumns() {\n\t\t\tlet layout: IImageCommentsLayout = JSON.parse(this.cell.value)\n\t\t\treturn layout && layout.columns\n\t\t},\n\t\tclaims() {\n\t\t\treturn this.$store.state.auth.claims\n\t\t},\n\t\tisReadOnly() {\n\t\t\treturn true\n\t\t},\n\t\timages() {\n\t\t\treturn this.cell.editorMode ? [] : this.cell.report.imageComments\n\t\t},\n\t\tareImageCommentsViewable() {\n\t\t\tif (this.cell.template.editorMode) return true\n\t\t\tif (this.cell.report.isStandardReport) return true\n\n\t\t\tlet report = this.cell.report\n\t\t\tif (!report.canViewResponse) return false\n\t\t\tif (!report.canRespond && report.images.length === 0) return false\n\t\t\treturn true\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.createSubLayouts()\n\t\tif (this.cell.template.editorMode)\n\t\t\t// maintain sample image comment in editor when undoing/redoing\n\t\t\tthis.$watch('cell.report', this.createSubLayouts, { deep: true })\n\t\telse this.$watch('cell.report.imageComments', this.createSubLayouts)\n\t},\n\tmethods: {\n\t\tcreateSubLayouts() {\n\t\t\tlet cell: Cell = this.cell\n\t\t\tcell.onSave = this.saveValues\n\t\t\tlet t = cell.template\n\t\t\tlet images: IImageComment[] = []\n\t\t\tif (t.editorMode) {\n\t\t\t\t// use ContextMeta sample data\n\t\t\t\tlet stuff = ContextMeta.ImageComment.items\n\t\t\t\tlet image: IImageComment = {\n\t\t\t\t\thtmlValue: stuff.Comment.sample,\n\t\t\t\t\ttextValue: '',\n\t\t\t\t\teditDateTime: stuff.EditDateTime.sample,\n\t\t\t\t\treportImageId: '',\n\t\t\t\t\timageId: '',\n\t\t\t\t\torder: 0,\n\t\t\t\t\tacquisitionDate: stuff.AcquisitionDate.sample,\n\t\t\t\t\tanatomy: stuff.Anatomy.sample,\n\t\t\t\t\tlimb: stuff.Limb.sample,\n\t\t\t\t\turl: '',\n\t\t\t\t\tview: stuff.View.sample,\n\t\t\t\t}\n\t\t\t\timages = [image]\n\t\t\t} else {\n\t\t\t\timages = cell.report.imageComments\n\t\t\t}\n\t\t\tcell.subLayouts = []\n\n\t\t\timages.forEach(i => {\n\t\t\t\tlet layout = t.createLayoutInstance('Image Comment')\n\n\t\t\t\tlayout.previewInEditor = t.editorMode\n\t\t\t\tlayout.template = t\n\t\t\t\tlayout.readOnly =\n\t\t\t\t\t(cell.report && cell.report.isComplete) ||\n\t\t\t\t\t(cell.report && !cell.report.canRespond && !cell.report.isStandardReport)\n\t\t\t\tlet context = {\n\t\t\t\t\t...this.cell.context,\n\t\t\t\t\tImageComment: {\n\t\t\t\t\t\t// Comment: i.htmlValue,\n\t\t\t\t\t\tEditDateTime: i.editDateTime,\n\t\t\t\t\t\treportImageId: i.reportImageId,\n\t\t\t\t\t\timageId: i.imageId,\n\t\t\t\t\t\tAcquisitionDate: i.acquisitionDate,\n\t\t\t\t\t\tAnatomy: i.anatomy,\n\t\t\t\t\t\tLimb: i.limb,\n\t\t\t\t\t\turl: i.url,\n\t\t\t\t\t\tView: i.view,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tcell.addSubLayout(layout, context)\n\n\t\t\t\tlet valueMap = layout.template.values\n\t\t\t\tlayout.controls.forEach(c => {\n\t\t\t\t\tif (c.props.binding === 'ImageComment.Comment') {\n\t\t\t\t\t\tvalueMap[c.path] = i.htmlValue || null\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\tlayout.hydrate()\n\t\t\t})\n\n\t\t\tif (cell.value) {\n\t\t\t\tlet layout: IImageCommentsLayout = JSON.parse(cell.value)\n\t\t\t\tthis.sort(layout)\n\t\t\t}\n\t\t},\n\t\tsaveValues(valueMap) {\n\t\t\tlet cell: Cell = this.cell\n\n\t\t\t// save the Image Comment Layout\n\t\t\tvalueMap[cell.path] = cell.value\n\n\t\t\t// iterate the sublayouts\n\t\t\tcell.subLayouts.forEach(l => {\n\t\t\t\tlet orig = cell.report.imageComments.find(i => i.imageId === l.context.ImageComment.imageId)\n\t\t\t\tl.controls.forEach(c => {\n\t\t\t\t\tif (c.props.binding === 'ImageComment.Comment') {\n\t\t\t\t\t\t// if control is bound to the comment, check to see if value has changed\n\t\t\t\t\t\tif (c.userValue !== orig.htmlValue) {\n\t\t\t\t\t\t\torig.changed = true\n\t\t\t\t\t\t\torig.htmlValue = c.userValue\n\t\t\t\t\t\t\tdelete valueMap[c.path]\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\t\topenViewer() {\n\t\t\ttry {\n\t\t\t\tGoogleAnalytics.sendGAEvent('Teleconsultation', {\n\t\t\t\t\tevent_category: 'Launch',\n\t\t\t\t\tevent_label: 'Teleconsultation Viewer'\n\t\t\t\t})\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tconsole.log(err)\n\t\t\t}\n\t\t\tconst route = this.$router.resolve({\n\t\t\t\tname: 'report-viewer',\n\t\t\t\tparams: { id: this.cell.report.reportId, clinicCode: this.claims.activeClinicCode },\n\t\t\t})\n\t\t\twindow.open(route.href, '_blank', 'resizable,scrollbars,status')\n\t\t},\n\t\tsort(layout: IImageCommentsLayout) {\n\t\t\tlet cell: Cell = this.cell\n\t\t\tcell.subLayouts.sort((a, b) => {\n\t\t\t\tlet aReportImageId = a.context.ImageComment.reportImageId\n\t\t\t\tlet bReportImageId = b.context.ImageComment.reportImageId\n\t\t\t\tlet aIndex = layout.imageReportIds.indexOf(aReportImageId)\n\t\t\t\tlet bIndex = layout.imageReportIds.indexOf(bReportImageId)\n\t\t\t\treturn aIndex - bIndex\n\t\t\t})\n\t\t},\n\t\tasync editLayout() {\n\t\t\tlet layout = await openImageCommentLayoutDlg(this.cell)\n\t\t\tif (layout) {\n\t\t\t\tthis.cell.value = JSON.stringify(layout)\n\t\t\t\tthis.sort(layout)\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageComments.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageComments.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ImageComments.vue?vue&type=template&id=c356b0e6\"\nimport script from \"./ImageComments.vue?vue&type=script&lang=ts\"\nexport * from \"./ImageComments.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"patient-info\"},[_c('table',[_c('tbody',[_c('tr',[_c('th',{staticStyle:{\"border-top\":\"none\"}},[_vm._v(\"Owner:\")]),_c('td',{class:{ unspecified: !_vm.patient.owner },staticStyle:{\"border-top\":\"none\"}},[_vm._v(_vm._s(_vm.patient.owner))])]),_c('tr',[_c('th',[_vm._v(\"Patient ID:\")]),_c('td',{class:{ unspecified: !_vm.patient.id }},[_vm._v(_vm._s(_vm.patient.id))])]),_c('tr',[_c('th',[_vm._v(\"Patient Name:\")]),_c('td',{class:{ unspecified: !_vm.patient.name }},[_vm._v(_vm._s(_vm.patient.name))])]),_c('tr',[_c('th',[_vm._v(\"Gender:\")]),_c('td',{class:{ unspecified: !_vm.patient.gender }},[_vm._v(_vm._s(_vm.patient.gender))])]),_c('tr',[_c('th',[_vm._v(\"Birthdate:\")]),_c('td',{class:{ unspecified: !_vm.patient.birthdate }},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(_vm.patient.birthdate,{ showTime: false }))+\"\\n\\t\\t\\t\\t\")])]),_c('tr',[_c('th',[_vm._v(\"Species:\")]),_c('td',{class:{ unspecified: !_vm.patient.species }},[_vm._v(_vm._s(_vm.patient.species))])]),_c('tr',[_c('th',[_vm._v(\"Breed:\")]),_c('td',{class:{ unspecified: !_vm.patient.breed }},[_vm._v(_vm._s(_vm.patient.breed))])]),_c('tr',[_c('th',[_vm._v(\"Weight:\")]),_c('td',{class:{ unspecified: !_vm.patient.weight }},[(_vm.patient.weight)?_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"formatNumber\")(Number(_vm.patient.weight)))+\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.patient.weightUnit || 'KGS')+\"\\n\\t\\t\\t\\t\\t\")]):_vm._e()])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./PatientInfo.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!./PatientInfo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PatientInfo.vue?vue&type=template&id=5b862bbf\"\nimport script from \"./PatientInfo.vue?vue&type=script&lang=js\"\nexport * from \"./PatientInfo.vue?vue&type=script&lang=js\"\nimport style0 from \"./PatientInfo.vue?vue&type=style&index=0&id=5b862bbf&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.isVisible)?_c('p',{staticStyle:{\"padding\":\"16px\",\"font-style\":\"italic\"}},[_vm._v(\"\\n\\t\\tAddendums may be added once your \"+_vm._s(_vm.cell.report.isStandardReport ? 'report' : 'request')+\" has\\n\\t\\tbeen submitted.\\n\\t\")]):(_vm.isVisible)?_c('div',{staticStyle:{\"padding\":\"16px\"}},[(!_vm.cell.template.type.includes('PDF Report'))?_c('section',{staticStyle:{\"margin-bottom\":\"16px\"}},[_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.cell.report && _vm.cell.report.isPreview},on:{\"click\":_vm.addNewAddendum}},[_vm._v(\"\\n\\t\\t\\t\\t+ New Addendum\\n\\t\\t\\t\")])]):_vm._e(),(_vm.cell.report && _vm.cell.report.addendums && !_vm.cell.report.addendums.length)?_c('em',[_vm._v(\"\\n\\t\\t\\tNo addendums have been added.\\n\\t\\t\")]):_vm._e(),_vm._l((_vm.cell.subLayouts),function(layout,index){return _c('layout',{key:index,attrs:{\"layout\":layout}})})],2):_vm._e()])}\nvar staticRenderFns = []\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}},[_c('div',{ref:\"dropTarget\",staticClass:\"dialog addendum-dialog\",class:{ 'is-addendum': _vm.isAddendum },on:{\"click\":function($event){$event.stopPropagation();}}},[_c('dlg-header',{attrs:{\"title\":\"New Addendum\"},on:{\"close\":_vm.close}}),_c('div',{staticClass:\"dialog-body\"},[_c('c-k-editor',{ref:\"addendum-editor\",attrs:{\"read-only\":false},on:{\"input\":_vm.updateAddendumTextValue}}),(_vm.isAdvancedReportsEnabled)?_c('ast-checkbox',{staticStyle:{\"margin-top\":\"24px\"},model:{value:(_vm.isAddendum),callback:function ($$v) {_vm.isAddendum=$$v},expression:\"isAddendum\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\tInclude this addendum in the official report\\n\\t\\t\\t\\t\\t\"),(!_vm.isStandardReport && !_vm.isReportComplete)?_c('span',{staticStyle:{\"font-size\":\"0.9em\",\"font-style\":\"italic\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t(required for adding new images or attachments)\\n\\t\\t\\t\\t\\t\")]):_vm._e()]):_vm._e(),(!_vm.isStandardReport && !_vm.isReportComplete)?_c('div',{staticClass:\"add-study\"},[_c('h4',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tImages\\n\\t\\t\\t\\t\\t\\t\"),(!_vm.attachments.length)?_c('span',[_vm._v(\"& Attachments\")]):_vm._e()]),(_vm.newImagesPrompt)?_c('p',{staticClass:\"is-link\",on:{\"click\":_vm.addNewImages}},[_c('svg-icon',{staticClass:\"is-info\",attrs:{\"icon\":\"exclamation-circle\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.newImagesPrompt)+\"\\n\\t\\t\\t\\t\\t\")],1):_vm._e(),_c('p',{staticClass:\"is-link\",on:{\"click\":_vm.selectExistingStudy}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tAdd a previously uploaded study ...\\n\\t\\t\\t\\t\\t\")]),_c('p',{staticClass:\"is-link\",on:{\"click\":_vm.uploadNewStudy}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tUpload new images or attachments ...\\n\\t\\t\\t\\t\\t\")]),_c('transition',{attrs:{\"name\":\"expand\"}},[(_vm.thumbnails.length || _vm.attachments.length)?_c('teleconsultation-thumbnails',{staticStyle:{\"margin-top\":\"24px\"},attrs:{\"thumbnails\":_vm.thumbnails,\"attachments\":_vm.attachments,\"show-add-study-button\":false,\"report-id\":_vm.reportId},model:{value:(_vm.seriesToExclude),callback:function ($$v) {_vm.seriesToExclude=$$v},expression:\"seriesToExclude\"}}):_vm._e()],1),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.isLoading)?_c('div',{staticClass:\"loading\"},[_c('svg-icon',{attrs:{\"icon\":\"spinner\",\"pulse\":\"\"}})],1):_vm._e()])],1):_vm._e()],1),_c('div',{staticClass:\"dialog-footer\"},[_c('ast-button',{class:{ disabled: !_vm.canSubmit },attrs:{\"type\":\"success\"},nativeOn:{\"click\":function($event){return _vm.submit($event)}}},[(!_vm.isSaving)?_c('span',[_vm._v(\"Submit\")]):_c('svg-icon',{attrs:{\"icon\":\"spinner\",\"pulse\":\"\"}})],1),_c('ast-button',{nativeOn:{\"click\":function($event){return _vm.close($event)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\tCancel\\n\\t\\t\\t\\t\")])],1)],1)])}\nvar staticRenderFns = []\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}},[_c('div',{ref:\"uploadContainer\",staticClass:\"upload-container\",class:{ 'expand-height': _vm.uploads.length }},[_c('dlg-header',{staticClass:\"upload-header\",attrs:{\"title\":_vm.title},on:{\"close\":_vm.close}}),_c('div',{staticClass:\"upload-body\"},[(_vm.showImageUpload)?_c('div',{ref:\"imageDrop\",staticClass:\"drop-target\",class:{ 'sole-upload-form': !_vm.showAttachmentUpload }},[_c('upload-form',{staticClass:\"modal-upload-form\",attrs:{\"context\":_vm.context,\"allow-attachments\":false,\"allow-jpegs\":true,\"allow-dicoms\":true,\"drop-target\":_vm.imageDrop}}),(_vm.images.length || _vm.excludedImages.length)?_c('div',{staticClass:\"upload-items\"},[_c('transition',{attrs:{\"name\":\"expand\"}},[(_vm.excludedImages.length)?_c('ol',{staticClass:\"excluded-files\"},[_vm._l((_vm.excludedImages),function(file,i){return _c(\"UploadItemFile\",{key:i,tag:\"li\",attrs:{\"upload\":file}})}),_c('ast-button',{staticClass:\"close\",nativeOn:{\"click\":function($event){return _vm.clearExcludedFiles(_vm.context)}}},[_c('svg-icon',{attrs:{\"icon\":\"close\"}})],1)],2):_vm._e()]),_c('transition-group',{attrs:{\"name\":\"expand\"}},_vm._l((_vm.imageBatchIds),function(batchId){return _c('upload-item-batch',{key:batchId ? batchId : 'jpeg-form',attrs:{\"uploads\":_vm.getUploadsInBatch(batchId),\"show-view-button\":_vm.showViewButton},on:{\"remove-batch\":_vm.removeBatch,\"study-complete\":_vm.addStudyId}})}),1)],1):_vm._e()],1):_vm._e(),(_vm.showAttachmentUpload)?_c('div',{ref:\"attachmentDrop\",staticClass:\"drop-target\"},[_c('upload-form',{staticClass:\"modal-upload-form\",attrs:{\"context\":_vm.context,\"allow-attachments\":true,\"allow-jpegs\":false,\"allow-dicoms\":true,\"drop-target\":_vm.attachmentDrop}}),(_vm.attachments.length || _vm.excludedAttachments.length)?_c('div',{staticClass:\"upload-items\"},[_c('transition',{attrs:{\"name\":\"expand\"}},[(_vm.excludedAttachments.length)?_c('ol',{staticClass:\"excluded-files\"},[_vm._l((_vm.excludedAttachments),function(file,i){return _c(\"UploadItemFile\",{key:i,tag:\"li\",attrs:{\"upload\":file}})}),_c('ast-button',{staticClass:\"close\",nativeOn:{\"click\":function($event){return _vm.clearExcludedFiles(_vm.context)}}},[_c('svg-icon',{attrs:{\"icon\":\"close\"}})],1)],2):_vm._e()]),_c('transition',{attrs:{\"name\":\"expand\"}},[(_vm.showAttachmentStudyForm)?_c('div',{staticClass:\"attachment-study-form\"},[_c('upload-study-form',{attrs:{\"context\":_vm.context,\"is-attachment\":true}})],1):_vm._e()]),_c('transition-group',{attrs:{\"name\":\"expand\"}},_vm._l((_vm.attachmentBatchIds),function(batchId){return _c('upload-item-batch',{key:batchId ? batchId : 'attachment-form',attrs:{\"uploads\":_vm.getUploadsInBatch(batchId)},on:{\"remove-batch\":_vm.removeBatch,\"study-complete\":_vm.addStudyId}})}),1)],1):_vm._e()],1):_vm._e()]),(_vm.uploads.length && _vm.cancelOnClose)?_c('div',{staticClass:\"upload-footer\"},[_c('ast-button',{class:{ disabled: _vm.isUploading || _vm.isProcessing },attrs:{\"type\":\"primary\"},nativeOn:{\"click\":function($event){return _vm.close($event)}}},[_c('span',[_vm._v(\"OK\")])]),(_vm.isUploading || _vm.isProcessing)?_c('ast-button',{nativeOn:{\"click\":function($event){return _vm.close($event)}}},[_vm._v(\"\\n\\t\\t\\t\\tCancel\\n\\t\\t\\t\")]):_vm._e(),(_vm.isUploading)?_c('em',[_vm._v(\"\\n\\t\\t\\t\\tPlease wait while your files are uploaded ...\\n\\t\\t\\t\")]):_vm._e()],1):_vm._e()],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./UploadDlg.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!./UploadDlg.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UploadDlg.vue?vue&type=template&id=5423ab11&scoped=true\"\nimport script from \"./UploadDlg.vue?vue&type=script&lang=js\"\nexport * from \"./UploadDlg.vue?vue&type=script&lang=js\"\nimport style0 from \"./UploadDlg.vue?vue&type=style&index=0&id=5423ab11&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 \"5423ab11\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport AstButton from '@components/Button.vue'\nimport AstCheckbox from '@components/Checkbox.vue'\nimport DlgHeader from '@components/DlgHeader.vue'\nimport ModalWrapper from '@components/ModalWrapper.vue'\nimport TeleconsultationThumbnails from '@components/TeleconsultationThumbnails.vue'\nimport CKEditor from \"@components/CKEditor.vue\"\n\nimport { dlg } from '@utils/dlgUtils'\nimport { openStudiesDlg } from '@dialogs/StudiesDlg.vue'\nimport { openUserStudiesDlg } from '@dialogs/UserStudiesDlg.vue'\nimport { openUploadDlg } from '@dialogs/UploadDlg.vue'\nimport { showConfirm } from '@dialogs/ConfirmDlg.vue'\nimport consultations from '@services/consultationService'\n\n\nconst AddendumDlg = {\n name: 'AddendumDlg',\n components: {\n AstButton,\n AstCheckbox,\n DlgHeader,\n ModalWrapper,\n TeleconsultationThumbnails,\n CKEditor,\n },\n props: {\n isStandardReport: {\n type: Boolean,\n required: true,\n },\n isReportComplete: {\n type: Boolean,\n required: true,\n },\n reportId: {\n type: String,\n required: true,\n },\n studies: {\n type: Array,\n default: () => [],\n },\n },\n data() {\n return {\n isAddendum: false, // default to \"unofficial\" message\n addendumTextValue: '',\n addendumHtmlValue: '',\n dropTarget: undefined,\n isSaving: false,\n isLoading: true,\n seriesToExclude: [],\n attachments: [],\n thumbnails: [],\n newThumbnails: [],\n newAttachments: [],\n }\n },\n computed: {\n isAdvancedReportsEnabled() {\n return this.$store.state.auth.claims.isAdvancedReportsEnabled\n },\n canSubmit() {\n if (this.isSaving || this.isLoading || this.isUploading) return false\n return !!this.addendumTextValue.trim()\n },\n newImagesPrompt() {\n if (!this.newAttachments.length && !this.newThumbnails.length) return ''\n let text = 'Add '\n let newItems = []\n if (this.newThumbnails.length) {\n newItems.push(this.newThumbnails.length + ' new ' + (this.newThumbnails.length > 1 ? 'images ' : 'image '))\n }\n if (this.newAttachments.length) {\n newItems.push(\n this.newAttachments.length + ' new ' + (this.newAttachments.length > 1 ? 'attachments ' : 'attachment ')\n )\n }\n text += newItems.join(' and ')\n text += 'from the source '\n text += this.studies.length > 1 ? 'studies' : 'study'\n return text\n },\n },\n mounted() {\n this.isAddendum = !this.isAdvancedReportsEnabled\n this.dropTarget = this.$refs.dropTarget\n this.checkStudiesForNewImages()\n },\n methods: {\n async checkStudiesForNewImages() {\n this.isLoading = true\n try {\n const studyIds = this.studies.map(study => study.studyId)\n const { studies } = await this.$api.viewer.getStudy({ ids: studyIds }, false)\n this.parseForNewImages(studies)\n } finally {\n this.isLoading = false\n }\n },\n parseForNewImages(newStudies) {\n newStudies.forEach(newStudy => {\n const oldStudy = this.studies.find(study => study.studyId === newStudy.studyId)\n const isNew = key => item => !oldStudy.imageData[key].some(({ seriesId }) => seriesId === item.seriesId)\n const newAttachments = newStudy.imageData.attachments.filter(isNew('attachments'))\n const newThumbnails = newStudy.imageData.thumbnails.filter(isNew('thumbnails'))\n const addStudyId = series => ({ ...series, studyId: newStudy.studyId })\n this.newAttachments = [...this.newAttachments, ...newAttachments.map(addStudyId)]\n this.newThumbnails = [...this.newThumbnails, ...newThumbnails.map(addStudyId)]\n })\n },\n addNewImages() {\n if (!this.isAddendum) return\n this.addAttachments(this.newAttachments)\n this.addThumbnails(this.newThumbnails)\n this.newAttachments = []\n this.newThumbnails = []\n },\n async close() {\n if (this.addendumTextValue.trim() || this.attachments.length || this.thumbnails.length) {\n if (!(await showConfirm('Are you sure you want to cancel this addendum?'))) return\n }\n dlg.close(this, true, false)\n },\n updateAddendumTextValue(htmlValue, textValue) {\n this.addendumTextValue = textValue\n this.addendumHtmlValue = htmlValue\n },\n async selectExistingStudy() {\n if (!this.isAddendum) return\n const openDialog = this.$store.getters.isCommunityUser ? openUserStudiesDlg : openStudiesDlg\n const study = await openDialog()\n if (!study) return\n this.addStudies([study.studyId])\n },\n async uploadNewStudy() {\n if (!this.isAddendum) return\n const studyIds = await openUploadDlg({\n context: 'addendum',\n showImageUpload: true,\n showAttachmentUpload: true,\n showViewButton: false,\n cancelOnClose: true,\n title: 'Upload new images or attachments.',\n })\n this.addStudies(studyIds)\n },\n async addStudies(studyIds) {\n if (!studyIds || !studyIds.length) return\n this.isLoading = true\n try {\n const { studies } = await this.$api.viewer.getStudy({ ids: studyIds }, false)\n // attach studyId to each thumbnail/attachment\n const addStudyId = ({ studyId }) => series => ({ ...series, studyId })\n const attachments = studies.map(study => study.imageData.attachments.map(addStudyId(study)))\n const thumbnails = studies.map(study => study.imageData.thumbnails.map(addStudyId(study)))\n this.addAttachments([].concat(...attachments))\n this.addThumbnails([].concat(...thumbnails))\n } finally {\n this.isLoading = false\n }\n },\n addAttachments(attachments) {\n const newAttachments = attachments.filter(thumbnail => {\n return !this.attachments.some(existing => existing.seriesId === thumbnail.seriesId)\n })\n this.attachments = this.attachments.concat(newAttachments)\n },\n addThumbnails(thumbnails) {\n const newThumbnails = thumbnails.filter(thumbnail => {\n return !this.thumbnails.some(existing => existing.seriesId === thumbnail.seriesId)\n })\n this.thumbnails = this.thumbnails.concat(newThumbnails)\n },\n async submit() {\n if (this.isBusy) return\n this.isSaving = true\n\n try {\n // determine which thumbnails are fake ids\n // add them to the excluded image ids list\n let fakeSeries = {}\n this.thumbnails.forEach(t => {\n if (t.isFakeSeries) fakeSeries[t.seriesId] = true\n })\n\n let excludedSeriesIds = this.seriesToExclude.filter(s => fakeSeries[s] === undefined)\n let excludedImagesIds = this.seriesToExclude.filter(s => fakeSeries[s] !== undefined)\n let studySet = new Set([...this.thumbnails, ...this.attachments].map(i => i.studyId))\n let studyIds = Array.from(studySet)\n\n await consultations.addReportMessage({\n reportId: this.reportId,\n htmlValue: this.addendumHtmlValue,\n textValue: this.addendumTextValue,\n isAddendum: this.isAddendum,\n studyIds,\n excludedSeriesIds,\n excludedImagesIds,\n })\n dlg.close(this, true, true)\n } finally {\n this.isSaving = false\n }\n },\n },\n}\nexport default AddendumDlg\n\nexport function openAddendumDlg(reportId, studies, isStandardReport = false, isReportComplete) {\n return dlg.open(AddendumDlg, { reportId, studies, isStandardReport, isReportComplete })\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddendumDlg.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddendumDlg.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AddendumDlg.vue?vue&type=template&id=5af2e1ca\"\nimport script from \"./AddendumDlg.vue?vue&type=script&lang=ts\"\nexport * from \"./AddendumDlg.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AddendumDlg.vue?vue&type=style&index=0&id=5af2e1ca&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Cell } from '../classes'\nimport { ContextMeta } from '@reporting/context'\nimport { openAddendumDlg } from '@dialogs/AddendumDlg.vue'\nimport { eventBus } from '@services/eventBus'\n\nexport default {\n\tname: 'Addendums',\n\tprops: {\n\t\tcell: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tisVisible() {\n\t\t\tif (this.cell.template.editorMode) return true\n\t\t\tconst report = this.cell.report\n\t\t\tif (!report) return false\n\t\t\tif (this.cell.template.type === 'Response' && report.isPreview) return true\n\t\t\tif (report.isStandardReport && report.isComplete) return true\n\t\t\tif (report.reportId && report.reportId !== '00000000-0000-0000-0000-000000000000') return true\n\t\t\treturn false\n\t\t},\n\t\tconsultant() {\n\t\t\tif (!this.cell.report) return {}\n\t\t\treturn this.cell.report.consultant\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.createSubLayouts()\n\t\tif (this.cell.template.editorMode)\n\t\t\t// maintain sample addendum in editor when undoing/redoing\n\t\t\tthis.$watch('cell.report', this.createSubLayouts, { deep: true })\n\t\telse this.$watch('cell.report.addendums', this.createSubLayouts)\n\t},\n\tmethods: {\n\t\tcreateSubLayouts() {\n\t\t\tlet cell = this.cell\n\t\t\tlet t = cell.template\n\t\t\tlet addendums: IAddendum[]\n\t\t\tif (t.editorMode) {\n\t\t\t\t// use ContextMeta sample data\n\t\t\t\taddendums = [\n\t\t\t\t\t{\n\t\t\t\t\t\tfromUserDetail: ContextMeta.Addendum.items.AddedBy.sample,\n\t\t\t\t\t\thtmlValue: ContextMeta.Addendum.items.Message.sample,\n\t\t\t\t\t\teditDateTime: ContextMeta.Addendum.items.DateTime.sample,\n\t\t\t\t\t\ttextValue: undefined,\n\t\t\t\t\t},\n\t\t\t\t]\n\t\t\t} else {\n\t\t\t\taddendums = cell.report.addendums\n\t\t\t}\n\t\t\tcell.subLayouts = []\n\n\t\t\taddendums.forEach(a => {\n\t\t\t\tlet layout = t.createLayoutInstance('Addendum')\n\t\t\t\tlayout.previewInEditor = true\n\t\t\t\tlet context = {\n\t\t\t\t\tAddendum: {\n\t\t\t\t\t\tAddedBy: a.fromUserDetail,\n\t\t\t\t\t\tMessage: a.htmlValue || a.textValue,\n\t\t\t\t\t\tDateTime: a.editDateTime,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t\tcell.addSubLayout(layout, context)\n\t\t\t})\n\t\t},\n\t\tasync addNewAddendum() {\n\t\t\tlet report = this.cell.report\n\t\t\tconst addedAddendum = await openAddendumDlg(\n\t\t\t\treport.reportId,\n\t\t\t\treport.studies,\n\t\t\t\treport.isStandardReport,\n\t\t\t\treport.isComplete\n\t\t\t)\n\t\t\tif (addedAddendum) {\n\t\t\t\teventBus.post('refresh-report')\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Addendums.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Addendums.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Addendums.vue?vue&type=template&id=8130b64e\"\nimport script from \"./Addendums.vue?vue&type=script&lang=ts\"\nexport * from \"./Addendums.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"16px\"}},[(_vm.relatedReports.length <= 1)?_c('em',[_vm._v(\"No related reports found.\")]):_vm._e(),(_vm.relatedReports.length > 1)?_c('ul',{staticClass:\"unlist\"},_vm._l((_vm.relatedReports),function(relatedReport){return _c('li',{key:relatedReport.id,class:{ 'is-muted': relatedReport.id === _vm.id }},[(relatedReport.id !== _vm.id)?_c('span',[_c('router-link',{attrs:{\"to\":_vm.getRouteForReport(relatedReport)}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(relatedReport.requestDate))+\"\\n\\t\\t\\t\\t\")]),(_vm.report.consultant.type !== 'Repository')?_c('span',{staticStyle:{\"padding-left\":\"4px\",\"font-style\":\"italic\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(relatedReport.state)+\"\\n\\t\\t\\t\\t\")]):_vm._e()],1):_c('span',{attrs:{\"title\":\"This is the open report.\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(relatedReport.requestDate))+\"\\n\\t\\t\\t\\t\"),_c('svg-icon',{attrs:{\"icon\":\"arrow-left\"}})],1)])}),0):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./RelatedReports.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!./RelatedReports.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RelatedReports.vue?vue&type=template&id=32fd6b3e\"\nimport script from \"./RelatedReports.vue?vue&type=script&lang=js\"\nexport * from \"./RelatedReports.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.cell.widgets.length > 1)?[_c('div',{staticStyle:{\"font-style\":\"italic\",\"margin-bottom\":\"8px\"}},[_vm._v(\"\\n\\t\\t\\tPlease select a request type.\\n\\t\\t\")]),_c('v-select',{staticStyle:{\"margin-bottom\":\"16px\"},attrs:{\"options\":_vm.cell.widgets,\"clearable\":false,\"label\":\"name\",\"reduce\":function (o) { return o.name; },\"tabindex\":_vm.cell.template.editorMode ? -1 : 0},on:{\"input\":_vm.setSubLayout},model:{value:(_vm.cell.value),callback:function ($$v) {_vm.$set(_vm.cell, \"value\", $$v)},expression:\"cell.value\"}})]:_vm._e(),_vm._l((_vm.cell.subLayouts),function(layout,index){return _c('layout',{key:index,attrs:{\"layout\":layout}})}),(_vm.cell.widgets.length === 0 && _vm.cell.template.editorMode)?_c('div',{staticClass:\"editor-placeholder\"},[_c('svg-icon',{staticClass:\"is-warning\",attrs:{\"icon\":\"exclamation-triangle\",\"inline\":\"\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\tNo forms are available for this selector. Use the\\n\\t\\t\"),_c('strong',{staticStyle:{\"font-size\":\"0.9em\"}},[_vm._v(\"Add New Form\")]),_vm._v(\" button in the properties pane to add\\n\\t\\tone.\\n\\t\")],1):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./RequestSelector.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!./RequestSelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RequestSelector.vue?vue&type=template&id=7a0eb6d2\"\nimport script from \"./RequestSelector.vue?vue&type=script&lang=js\"\nexport * from \"./RequestSelector.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.client)?_c('div',{staticClass:\"referred-by-form\"},[_c('data-table',{attrs:{\"is-striped\":false,\"is-hoverable\":false,\"is-condensed\":true}},[_c('tbody',[(!_vm.cell.readOnly)?_c('tr',[_c('th',{staticStyle:{\"border-top\":\"none\",\"vertical-align\":\"middle\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\tSend on Behalf of\\n\\t\\t\\t\\t\")]),_c('td',{style:({ borderTop: 'none', paddingBottom: _vm.isCommunityUser ? '0' : '8px' })},[_c('v-select',{attrs:{\"label\":\"name\",\"options\":_vm.users,\"clear-search-on-select\":true,\"clearable\":false},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)]):_vm._e(),(_vm.isCommunityUser)?_c('tr',[_c('th',{staticStyle:{\"border-top\":\"none\",\"padding-top\":\"3px\"}}),_c('td',{staticStyle:{\"border-top\":\"none\",\"text-align\":\"right\",\"padding-top\":\"3px\"}},[_c('small',[_c('a',{on:{\"click\":_vm.showOnBehalfOfSettings}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tManage Contacts\\n\\t\\t\\t\\t\\t\\t\")])])])]):_vm._e()]),_c('tbody',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isReferredByLocked),expression:\"isReferredByLocked\"}]},[_c('tr',[_c('th',[_vm._v(\"Name:\")]),_c('td',[_vm._v(_vm._s(_vm.client.name))])]),_c('tr',[_c('th',[_vm._v(\"Clinic:\")]),_c('td',[_vm._v(_vm._s(_vm.client.organization))])]),_c('tr',[_c('th',[_vm._v(\"Address:\")]),_c('td',[_c('div',{staticStyle:{\"white-space\":\"pre\"}},[_vm._v(_vm._s(_vm.client.address))]),_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s((_vm.client.city || '') + (_vm.client.city && _vm.client.state ? ',' : ''))+\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.client.state)+\" \"+_vm._s(_vm.client.postalCode)+\"\\n\\t\\t\\t\\t\")])]),_c('tr',[_c('th',[_vm._v(\"Phone:\")]),_c('td',[_vm._v(_vm._s(_vm.client.phone))])]),_c('tr',[_c('th',[_vm._v(\"Email:\")]),_c('td',[_vm._v(_vm._s(_vm.client.email))])])]),_c('tbody',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isReferredByLocked),expression:\"!isReferredByLocked\"}],staticClass:\"unlocked\"},[_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tName:\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")])]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.name),expression:\"client.name\",modifiers:{\"trim\":true}},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"type\":\"text\",\"name\":\"client.name\"},domProps:{\"value\":(_vm.client.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"name\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.hasError('client.name'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tName is required.\\n\\t\\t\\t\\t\\t\")]):_vm._e()])]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tClinic:\\n\\t\\t\\t\\t\\t\"),_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")])]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.organization),expression:\"client.organization\",modifiers:{\"trim\":true}},{name:\"validate\",rawName:\"v-validate\",value:('required'),expression:\"'required'\"}],staticClass:\"input\",attrs:{\"type\":\"text\",\"name\":\"clinic\"},domProps:{\"value\":(_vm.client.organization)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"organization\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.hasError('client.organization'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tClinic is required.\\n\\t\\t\\t\\t\\t\")]):_vm._e()])]),_c('tr',[_c('th',[_vm._v(\"Address:\")]),_c('td',[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.address),expression:\"client.address\",modifiers:{\"trim\":true}}],staticClass:\"input is-address\",domProps:{\"value\":(_vm.client.address)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"address\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}})])]),_c('tr',[_c('th',[_vm._v(\"City:\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.city),expression:\"client.city\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.client.city)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"city\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}})])]),_c('tr',[_c('th',[_vm._v(\"State:\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.state),expression:\"client.state\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.client.state)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"state\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}})])]),_c('tr',[_c('th',[_vm._v(\"Zip/Postal Code:\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.postalCode),expression:\"client.postalCode\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.client.postalCode)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"postalCode\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}})])]),_c('tr',[_c('th',[_vm._v(\"Phone:\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.phone),expression:\"client.phone\",modifiers:{\"trim\":true}}],staticClass:\"input\",attrs:{\"type\":\"tel\"},domProps:{\"value\":(_vm.client.phone)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"phone\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}})])]),_c('tr',[_c('th',[_vm._v(\"Email:\")]),_c('td',[_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.client.email),expression:\"client.email\",modifiers:{\"trim\":true}},{name:\"validate\",rawName:\"v-validate\",value:('email'),expression:\"'email'\"}],staticClass:\"input\",attrs:{\"name\":\"client.email\",\"type\":\"email\"},domProps:{\"value\":(_vm.client.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.client, \"email\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.hasError('client.email'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tThis email address is invalid.\\n\\t\\t\\t\\t\\t\")]):_vm._e()])])])]),(!_vm.cell.readOnly && _vm.isReferredByLocked)?_c('div',{staticStyle:{\"padding\":\"8px\"}},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){_vm.isReferredByLocked = false}}},[_c('svg-icon',{attrs:{\"icon\":\"edit\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\t\\tEdit\\n\\t\\t\")],1)]):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ReferredByForm.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!./ReferredByForm.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReferredByForm.vue?vue&type=template&id=0bb16034\"\nimport script from \"./ReferredByForm.vue?vue&type=script&lang=js\"\nexport * from \"./ReferredByForm.vue?vue&type=script&lang=js\"\nimport style0 from \"./ReferredByForm.vue?vue&type=style&index=0&id=0bb16034&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"patient-form\"},[_c('data-table',{attrs:{\"is-striped\":false,\"is-hoverable\":false,\"is-condensed\":true}},[_c('tbody',[_c('tr',[_c('th',{staticStyle:{\"border-top\":\"none\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\tOwner Name:\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('OwnerName'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',{staticStyle:{\"border-top\":\"none\"}},[(_vm.cell.readOnly)?_c('span',{class:{ unspecified: !_vm.patient.owner }},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.patient.owner)+\"\\n\\t\\t\\t\\t\\t\")]):_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.patient.owner),expression:\"patient.owner\",modifiers:{\"trim\":true}},{name:\"validate\",rawName:\"v-validate\",value:(_vm.validateField('OwnerName')),expression:\"validateField('OwnerName')\"}],staticClass:\"input\",attrs:{\"name\":\"ownerName\",\"type\":\"text\"},domProps:{\"value\":(_vm.patient.owner)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.patient, \"owner\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.hasError('ownerName'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tOwner Name is required.\\n\\t\\t\\t\\t\\t\")]):_vm._e()])]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tPatient Name:\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('PatientName'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[(_vm.cell.readOnly)?_c('span',{class:{ unspecified: !_vm.patient.name }},[_vm._v(_vm._s(_vm.patient.name))]):_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.patient.name),expression:\"patient.name\",modifiers:{\"trim\":true}},{name:\"validate\",rawName:\"v-validate\",value:(_vm.validateField('PatientName')),expression:\"validateField('PatientName')\"}],staticClass:\"input\",attrs:{\"name\":\"name\",\"type\":\"text\",\"disabled\":_vm.cell.readOnly},domProps:{\"value\":(_vm.patient.name)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.patient, \"name\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.hasError('name'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tPatient Name is required.\\n\\t\\t\\t\\t\\t\")]):_vm._e()])]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tPatient ID:\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('PatientId'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[(_vm.cell.readOnly)?_c('span',{class:{ unspecified: !_vm.patient.id }},[_vm._v(_vm._s(_vm.patient.id))]):_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.patient.id),expression:\"patient.id\",modifiers:{\"trim\":true}},{name:\"validate\",rawName:\"v-validate\",value:(_vm.validateField('PatientId')),expression:\"validateField('PatientId')\"}],staticClass:\"input\",attrs:{\"name\":\"id\",\"type\":\"text\",\"data-lpignore\":\"true\",\"disabled\":_vm.cell.readOnly},domProps:{\"value\":(_vm.patient.id)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.patient, \"id\", $event.target.value.trim())},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.hasError('id'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"Patient ID is required.\")]):_vm._e()])]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tGender:\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('Gender'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[(_vm.cell.readOnly)?_c('span',{class:{ unspecified: !_vm.patient.gender }},[_vm._v(_vm._s(_vm.patient.gender))]):_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ name: 'gender', rules: _vm.validateField('Gender') }),expression:\"{ name: 'gender', rules: validateField('Gender') }\"}],attrs:{\"name\":\"gender\",\"options\":_vm.genderList,\"searchable\":false,\"clearable\":true,\"disabled\":_vm.cell.readOnly},model:{value:(_vm.patient.gender),callback:function ($$v) {_vm.$set(_vm.patient, \"gender\", $$v)},expression:\"patient.gender\"}}),(_vm.hasError('gender'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"Gender is required.\")]):_vm._e()],1)]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tBirthdate\"),(!_vm.cell.readOnly)?_c('span',[_vm._v(\" / Age\")]):_vm._e(),_vm._v(\":\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('Birthdate'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[(_vm.cell.readOnly)?_c('div',{class:{ unspecified: !_vm.patient.birthdate }},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(_vm.patient.birthdate,{ showTime: false }))+\"\\n\\t\\t\\t\\t\\t\")]):_c('birthdate-age-inputs',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ name: 'birthday', rules: _vm.validateField('Birthdate') }),expression:\"{ name: 'birthday', rules: validateField('Birthdate') }\"}],attrs:{\"show-labels\":false},model:{value:(_vm.patient.birthdate),callback:function ($$v) {_vm.$set(_vm.patient, \"birthdate\", $$v)},expression:\"patient.birthdate\"}}),(_vm.hasError('birthday'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tBirthdate is required.\\n\\t\\t\\t\\t\\t\")]):_vm._e()],1)]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tSpecies:\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('Species'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[(_vm.cell.readOnly)?_c('span',{class:{ unspecified: !_vm.patient.species }},[_vm._v(_vm._s(_vm.patient.species))]):_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ name: 'species', rules: _vm.validateField('Species') }),expression:\"{ name: 'species', rules: validateField('Species') }\"}],attrs:{\"name\":\"species\",\"options\":_vm.speciesNames,\"label\":\"name\",\"taggable\":!_vm.restrictSpeciesList,\"disabled\":_vm.cell.readOnly},model:{value:(_vm.patient.species),callback:function ($$v) {_vm.$set(_vm.patient, \"species\", $$v)},expression:\"patient.species\"}}),(_vm.hasError('species'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"Species is required.\")]):_vm._e()],1)]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tBreed:\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('Breed'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[(_vm.cell.readOnly)?_c('span',{class:{ unspecified: !_vm.patient.breed }},[_vm._v(_vm._s(_vm.patient.breed))]):_c('v-select',{directives:[{name:\"validate\",rawName:\"v-validate\",value:({ name: 'breed', rules: _vm.validateField('Breed') }),expression:\"{ name: 'breed', rules: validateField('Breed') }\"}],attrs:{\"name\":\"breed\",\"options\":_vm.breedList,\"taggable\":true,\"disabled\":_vm.cell.readOnly},model:{value:(_vm.patient.breed),callback:function ($$v) {_vm.$set(_vm.patient, \"breed\", $$v)},expression:\"patient.breed\"}}),(_vm.hasError('breed'))?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"Breed is required.\")]):_vm._e()],1)]),_c('tr',[_c('th',[_vm._v(\"\\n\\t\\t\\t\\t\\tWeight:\\n\\t\\t\\t\\t\\t\"),(_vm.isRequired('Weight'))?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('td',[_c('div',{staticClass:\"weight-fields\"},[(_vm.cell.readOnly)?_c('span',{class:{ unspecified: !_vm.patient.weight }},[(_vm.patient.weight)?[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"formatNumber\")(Number(_vm.patient.weight)))+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.patient.weightUnit || 'KGS')+\"\\n\\t\\t\\t\\t\\t\\t\\t\")]:_vm._e()],2):[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.weight),expression:\"weight\"}],staticClass:\"input\",attrs:{\"name\":\"weight\",\"disabled\":_vm.cell.readOnly},domProps:{\"value\":(_vm.weight)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.weight=$event.target.value}}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.patient.weightUnit),expression:\"patient.weightUnit\"}],staticClass:\"select weight-unit\",attrs:{\"options\":_vm.weightUnitList,\"disabled\":_vm.cell.readOnly},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.patient, \"weightUnit\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])}}},_vm._l((_vm.weightUnitList),function(unit){return _c('option',{key:unit,domProps:{\"selected\":_vm.patient.weightUnit === unit}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(unit)+\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\")])}),0)]],2),(_vm.isRequired('Weight') && !_vm.weight)?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tWeight is required.\\n\\t\\t\\t\\t\\t\")]):_vm._e(),(!_vm.isValidWeight)?_c('small',{staticClass:\"error is-danger\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tThis is not a valid weight.\\n\\t\\t\\t\\t\\t\")]):_vm._e()])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport DataTable from '@components/DataTable.vue'\nimport BirthdateAgeInputs from '@components/BirthdateAgeInputs.vue'\nimport api from '@services/api'\nimport { ValidatorMixin } from '@mixins/validator'\nimport { validator } from '@utils/validation'\nimport { formatNumber } from '../../utils/numberUtils'\n\nexport default {\n\tname: 'PatientForm',\n\tcomponents: {\n\t\tDataTable,\n\t\tBirthdateAgeInputs,\n\t},\n\tmixins: [ValidatorMixin],\n\tprops: {\n\t\tcell: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tgenderList: ['Male', 'Male Castrated', 'Female', 'Female Spayed'],\n\t\t\tweightUnitList: ['KGS', 'LBS'],\n\t\t\tspeciesList: [],\n\t\t\tspeciesNames: [],\n\t\t\tbreedList: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tweight: {\n\t\t\tget() {\n\t\t\t\treturn formatNumber(this.patient.weight)\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tthis.patient.weight = value === '' ? value : this.$options.filters.parseNumber(value)\n\t\t\t},\n\t\t},\n\t\tisValidWeight() {\n\t\t\tconst weight = this.$options.filters.parseNumber(this.weight)\n\t\t\treturn weight >= 0\n\t\t},\n\t\tpatient() {\n\t\t\tif (this.cell.editorMode) return {}\n\t\t\treturn this.cell.report.patient\n\t\t},\n\t\trequiredFields() {\n\t\t\treturn this.cell.props.requiredFields || []\n\t\t},\n\t\trestrictSpeciesList() {\n\t\t\tif (!this.cell.report || !this.cell.report.consultant) return false\n\t\t\treturn this.cell.report.consultant.isAntechEnabled\n\t\t},\n\t},\n\twatch: {\n\t\t'patient.species': {\n\t\t\thandler(species) {\n\t\t\t\tthis.getBreedList()\n\t\t\t},\n\t\t},\n\t\tbreedList() {\n\t\t\tthis.patient.breed = findMatchingOption(this.patient.breed, this.breedList) || this.patient.breed\n\t\t},\n\t\tanyErrors() {\n\t\t\tif (this.cell.report) this.cell.report.validate()\n\t\t},\n\t},\n\tasync created() {\n\t\tif (this.cell.editorMode) return\n\n\t\tlet reqFieldMap = {\n\t\t\tPatientName: 'name',\n\t\t\tOwnerName: 'owner',\n\t\t\tPatientId: 'id',\n\t\t\tGender: 'gender',\n\t\t\tSpecies: 'species',\n\t\t\tBreed: 'breed',\n\t\t\tBirthdate: 'birthdate',\n\t\t\tWeight: 'weight',\n\t\t}\n\n\t\tlet reqFields = this.cell.props.requiredFields.map(r => reqFieldMap[r])\n\t\tlet report = this.cell.report\n\n\t\tthis.cell.onValidate = () => {\n\t\t\tif (!validator.hasRequired(this.patient, reqFields)) {\n\t\t\t\treport.validationErrors.push('Please complete all required fields.')\n\t\t\t}\n\t\t\tif (!this.isValidWeight) {\n\t\t\t\treport.validationErrors.push('The entered patient weight is invalid.')\n\t\t\t}\n\t\t}\n\n\t\tconst consultant: IConsultantInfo = this.cell.report.consultant\n\t\tthis.speciesList = await api.patient.getSpecies(consultant ? consultant.id : null)\n\t\tthis.speciesNames = this.speciesList.map(s => s.name)\n\t\tif (this.patient.birthDate) this.patient.birthDate = new Date(this.patient.birthDate)\n\t\tthis.patient.gender = findMatchingOption(this.patient.gender, this.genderList)\n\t\tthis.patient.weightUnit = findMatchingOption(this.patient.weightUnit, this.weightUnitList) || this.weightUnitList[0]\n\t\tif (this.patient.species && this.restrictSpeciesList && !this.speciesNames.includes(this.patient.species)) {\n\t\t\tthis.patient.species = null\n\t\t}\n\t\tthis.validator.validate()\n\t\tthis.getBreedList()\n\n\t\tthis.$watch(\n\t\t\t'patient',\n\t\t\t() => {\n\t\t\t\tthis.cell.template.changeValue()\n\t\t\t},\n\t\t\t{ deep: true }\n\t\t)\n\t},\n\tmethods: {\n\t\tasync getBreedList() {\n\t\t\tlet s = this.speciesList.find(s => s.name === this.patient.species)\n\t\t\tif (!s) {\n\t\t\t\tthis.breedList = []\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst list = await this.$api.patient.getBreeds(s.id)\n\t\t\tthis.breedList = [...new Set(list.map(breed => breed.name))]\n\t\t},\n\t\tisRequired(field) {\n\t\t\treturn this.requiredFields.includes(field)\n\t\t},\n\t\tvalidateField(field) {\n\t\t\tif (this.cell.editorMode) return ''\n\n\t\t\tlet validations = []\n\t\t\tif (this.isRequired(field)) validations.push('required')\n\t\t\treturn validations.join('|')\n\t\t},\n\t},\n}\n\nfunction findMatchingOption(value, options, key = undefined) {\n\tif (!value) return\n\tconst isMatch = (a, b) => a.toLowerCase().trim() === b.toLowerCase().trim()\n\tif (!key) {\n\t\treturn options.find(option => isMatch(option, value))\n\t} else {\n\t\treturn options.find(option => option[key] && isMatch(option[key], value))\n\t}\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PatientForm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PatientForm.vue?vue&type=script&lang=ts\"","import axios from 'axios'\nimport api from '@services/api'\nimport { eventBus } from '@services/eventBus'\nimport { findImageUrlFromImage } from '@utils/urlUtility'\nimport shouldLoadDicom from '@/utils/shouldLoadDicom'\nimport { imageLoader } from '@/imageLoader'\nimport imageCache from '@/imageLoader/imageCache'\nimport omniDesktop from '@/electron/omniDesktop'\n\nconst STUDY_QUERY_INTERVAL = 1 * 60 * 1000\nconst MAX_FETCHES = 3\nconst FetchAxios = axios.create({\n\tresponseType: 'arraybuffer',\n\ttransformRequest: [\n\t\t(data, headers) => {\n\t\t\tdelete headers.common['Authorization']\n\t\t\treturn data\n\t\t},\n\t],\n})\nlet studyQueryInterval\n\nclass ImagePrecacheService {\n\tactiveFetches = 0\n\tqueue = []\n\tregisteredImages = {}\n\n\tconstructor() {\n\t\tthis.stopImagePrecache = this.stopImagePrecache.bind(this)\n\t\teventBus.on('login', async () => {\n\t\t\t// Only enable for desktop and main window\n\t\t\tif (!omniDesktop.isConnected) return\n\t\t\tif (!(await omniDesktop.request('isWorklistWindow'))) return\n\t\t\tthis.startImagePrecache()\n\t\t})\n\t\teventBus.on('logout', this.stopImagePrecache)\n\t}\n\n\tasync startImagePrecache() {\n\t\tclearInterval(studyQueryInterval)\n\t\t// Perform fetch at configured interval\n\t\tstudyQueryInterval = setInterval(() => this.fetchStudies(), STUDY_QUERY_INTERVAL)\n\t\t// Perform initial fetch\n\t\tsetTimeout(() => this.fetchStudies(), 500)\n\t}\n\n\tstopImagePrecache() {\n\t\tclearInterval(studyQueryInterval)\n\t\tthis.queue = []\n\t\tthis.registeredImages = {}\n\t}\n\n\t// Setting that could change during the current session\n\tget enabled() {\n\t\treturn imageCache.isActive && imageCache.isPrecacheActive && !imageLoader.activeFetches\n\t}\n\n\tasync fetchStudies() {\n\t\tif (!this.enabled) return\n\t\tconst studyIds = await this.fetchStudyIds()\n\t\tif (!studyIds.length) return\n\t\tconst BATCH_SIZE = 20\n\t\twhile (studyIds.length) {\n\t\t\t// Fetch image data in batches to avoid url limits\n\t\t\tlet batchStudyIds = studyIds.splice(0, BATCH_SIZE)\n\t\t\t// Get image data for the fetched studies\n\t\t\tconst studyData = await api.viewer.getStudy({ ids: batchStudyIds })\n\t\t\tstudyData?.studies?.forEach(study => {\n\t\t\t\tstudy.imageData?.series?.forEach(series => {\n\t\t\t\t\tseries.images.forEach(image => {\n\t\t\t\t\t\tconst isDicom = shouldLoadDicom(series.modality)\n\t\t\t\t\t\tconst scheme = isDicom ? 'dicom' : 'jpeg'\n\t\t\t\t\t\t// Patch imageType if needed\n\t\t\t\t\t\timage.imageType = image.imageType || isDicom ? 'DicomImage' : 'PreviewImage'\n\t\t\t\t\t\tconst imageUrl = findImageUrlFromImage(image, series)\n\t\t\t\t\t\t// Don't need to prefetch registered images\n\t\t\t\t\t\tif (imageUrl in this.registeredImages) return\n\t\t\t\t\t\t// Register the imageUrl\n\t\t\t\t\t\tthis.registeredImages[imageUrl] = true\n\t\t\t\t\t\t// Queue the image up for prefetch (if needed)\n\t\t\t\t\t\tthis.queue.push({\n\t\t\t\t\t\t\tclinicCode: study.clinicCode,\n\t\t\t\t\t\t\tstudyId: study.studyId,\n\t\t\t\t\t\t\tstudyUid: study.studyUid,\n\t\t\t\t\t\t\tseriesId: series.seriesId,\n\t\t\t\t\t\t\tseriesUid: series.uid,\n\t\t\t\t\t\t\tscheme,\n\t\t\t\t\t\t\timageId: image.imageId,\n\t\t\t\t\t\t\tinstanceUid: image.sopInstanceUid,\n\t\t\t\t\t\t\tframeIndex: image.frameIndex,\n\t\t\t\t\t\t\timageUrl,\n\t\t\t\t\t\t})\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t\tthis.startFetching()\n\t}\n\n\tasync fetchStudyIds() {\n\t\tconst studyIds = []\n\t\tlet page = 0\n\t\twhile (true) {\n\t\t\t// Get studies that have a StudyDateTime from start of today\n\t\t\tconst startOfToday = new Date()\n\t\t\tstartOfToday.setHours(0, 0, 0, 0)\n\t\t\tconst data = await api.study.getList(\n\t\t\t\t{\n\t\t\t\t\t'order[by]': 'StudyDateTime',\n\t\t\t\t\t'order[isAscending]': false,\n\t\t\t\t\tstartDate: startOfToday,\n\t\t\t\t\tpage: page++,\n\t\t\t\t\tresults: 25,\n\t\t\t\t},\n\t\t\t\tfalse // Don't cancel pending requests\n\t\t\t)\n\t\t\t// This request can get cancelled by other study requests\n\t\t\tif (!data || !data.results) break\n\t\t\tstudyIds.push(...data.results.map(study => study.studyId))\n\t\t\t// No more studies to fetch\n\t\t\tif (!data.hasMoreResults) break\n\t\t}\n\t\treturn studyIds\n\t}\n\n\tasync fetchImage(imageData) {\n\t\treturn FetchAxios.get(imageData.imageUrl).then(r => r.data)\n\t}\n\n\tasync startFetching() {\n\t\twhile (this.enabled && this.queue.length && this.activeFetches < MAX_FETCHES) {\n\t\t\tthis.activeFetches++\n\t\t\tconst imageData = this.queue.shift()\n\t\t\ttry {\n\t\t\t\t// Asking cache to loadImage will only fetch the image if it\n\t\t\t\t// isn't already cached. This will only have to hit the disk\n\t\t\t\t// once per session since we store the imageUrl in memory\n\t\t\t\tawait imageCache.loadImage(imageData, this.fetchImage)\n\t\t\t} catch {\n\t\t\t} finally {\n\t\t\t\tthis.activeFetches--\n\t\t\t}\n\t\t\tthis.startFetching()\n\t\t}\n\t}\n}\n\nexport const imagePrecacheService = new ImagePrecacheService()\nwindow.imagePrecache = imagePrecacheService\n","import { render, staticRenderFns } from \"./PatientForm.vue?vue&type=template&id=5feaa302\"\nimport script from \"./PatientForm.vue?vue&type=script&lang=ts\"\nexport * from \"./PatientForm.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PatientForm.vue?vue&type=style&index=0&id=5feaa302&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-images-attachments\"},[(_vm.images.length || _vm.attachments.length)?_c('teleconsultation-thumbnails',{attrs:{\"thumbnails\":_vm.images,\"attachments\":_vm.attachments,\"read-only\":true,\"report-id\":_vm.cell.report.reportId,\"show-add-study-button\":false}}):(_vm.cell.template.editorMode || (_vm.cell.report && _vm.cell.report.isPreview))?_c('div',{staticClass:\"placeholders\"},_vm._l((3),function(n){return _c('div',{key:n,staticClass:\"thumbnail-placeholder\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('svg-icon',{staticStyle:{\"font-size\":\"5em\",\"opacity\":\".75\"},attrs:{\"icon\":\"image\"}})],1)}),0):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport TeleconsultationThumbnails from '@components/TeleconsultationThumbnails.vue'\nimport { Cell } from '../classes'\n\nexport default {\n\tname: 'ImagesAttachments',\n\tcomponents: {\n\t\tTeleconsultationThumbnails,\n\t},\n\tprops: {\n\t\tcell: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tnumImages() {\n\t\t\treturn this.images.length\n\t\t},\n\t\timages() {\n\t\t\tlet cell: Cell = this.cell\n\t\t\tif (cell.editorMode) {\n\t\t\t\treturn []\n\t\t\t}\n\t\t\tlet result: IThumbnail[] = cell.report.images.map(i => {\n\t\t\t\treturn {\n\t\t\t\t\timageId: i.id,\n\t\t\t\t\tseriesId: i.fakeSeriesId || i.seriesId,\n\t\t\t\t\tseriesNumber: i.seriesNumber,\n\t\t\t\t\tsimpleName: i.simpleName,\n\t\t\t\t\tnumberOfImages: i.numberOfImages,\n\t\t\t\t\tstorageLocation: i.storageLocation,\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn result\n\t\t},\n\t\tattachments() {\n\t\t\tlet cell: Cell = this.cell\n\t\t\tif (cell.editorMode) return []\n\t\t\tlet result: IAttachment2[] = cell.report.attachments.map(i => {\n\t\t\t\treturn {\n\t\t\t\t\timageId: i.imageId,\n\t\t\t\t\tseriesId: i.seriesId,\n\t\t\t\t\tdescription: i.description,\n\t\t\t\t\tfileExtension: i.fileExtension,\n\t\t\t\t\tstorageLocation: i.storageLocation,\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn result\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImagesAttachments.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImagesAttachments.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ImagesAttachments.vue?vue&type=template&id=431621fc\"\nimport script from \"./ImagesAttachments.vue?vue&type=script&lang=ts\"\nexport * from \"./ImagesAttachments.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ImagesAttachments.vue?vue&type=style&index=0&id=431621fc&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-thumbnails\"},[(_vm.images.length || _vm.attachments.length)?_c('teleconsultation-thumbnails',{attrs:{\"thumbnails\":_vm.images,\"attachments\":_vm.attachments,\"read-only\":_vm.cell.readOnly,\"report-id\":_vm.cell.report.reportId,\"show-add-study-button\":!_vm.cell.readOnly},on:{\"add-study\":function($event){return _vm.addStudy()},\"add-files\":function($event){return _vm.addFiles()}},model:{value:(_vm.seriesToExclude),callback:function ($$v) {_vm.seriesToExclude=$$v},expression:\"seriesToExclude\"}}):(_vm.cell.template.editorMode || (_vm.cell.report && _vm.cell.report.isPreview))?_c('div',{staticClass:\"placeholders\"},_vm._l((3),function(n){return _c('div',{key:n,staticClass:\"thumbnail-placeholder\",staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('svg-icon',{staticStyle:{\"font-size\":\"5em\",\"opacity\":\".75\"},attrs:{\"icon\":\"image\"}})],1)}),0):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport TeleconsultationThumbnails from '@components/TeleconsultationThumbnails.vue'\nimport { openStudiesDlg } from '@dialogs/StudiesDlg.vue'\nimport { openUploadDlg } from '../../dialogs/UploadDlg.vue'\nimport { Cell, ReportDetail } from '../classes'\nimport consultations from '@services/consultationService'\n\nexport default {\n\tname: 'Thumbnails',\n\tcomponents: {\n\t\tTeleconsultationThumbnails,\n\t},\n\tprops: {\n\t\tcell: {\n\t\t\ttype: Object,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tcomputed: {\n\t\tseriesToExclude() {\n\t\t\treturn this.cell.report ? this.cell.report.seriesToExclude : []\n\t\t},\n\t\timages() {\n\t\t\tif (this.cell.editorMode) return []\n\n\t\t\tlet report: ReportDetail = this.cell.report\n\n\t\t\tlet result: IThumbnail[] = report.images.map(i => {\n\t\t\t\treturn {\n\t\t\t\t\timageId: i.id,\n\t\t\t\t\tseriesId: i.fakeSeriesId || i.seriesId,\n\t\t\t\t\tseriesNumber: i.seriesNumber,\n\t\t\t\t\tsimpleName: i.simpleName,\n\t\t\t\t\tnumberOfImages: i.numberOfImages,\n\t\t\t\t\tstorageLocation: i.storageLocation,\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn result\n\t\t},\n\t\tattachments() {\n\t\t\tlet cell: Cell = this.cell\n\t\t\tif (cell.editorMode) return []\n\t\t\tlet result: IAttachment2[] = cell.report.attachments.map(i => {\n\t\t\t\treturn {\n\t\t\t\t\timageId: i.imageId,\n\t\t\t\t\tseriesId: i.seriesId,\n\t\t\t\t\tdescription: i.description,\n\t\t\t\t\tfileExtension: i.fileExtension,\n\t\t\t\t\tstorageLocation: i.storageLocation,\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn result\n\t\t},\n\t},\n\twatch: {\n\t\tseriesToExclude() {\n\t\t\tif (this.cell.report) this.cell.report.validate()\n\t\t},\n\t},\n\tmethods: {\n\t\tasync addStudies(studyIds) {\n\t\t\tconst { studies } = await this.$api.viewer.getStudy({ ids: studyIds }, false)\n\t\t\tstudies.forEach(s => this.cell.report.addStudy(s))\n\t\t\tthis.$router.replace({\n\t\t\t\tquery: {\n\t\t\t\t\t...this.$route.query,\n\t\t\t\t\tstudyId: this.cell.report.studyIds.join(','),\n\t\t\t\t},\n\t\t\t})\n\t\t},\n\t\tasync addStudy() {\n\t\t\tlet report = this.cell.report\n\t\t\tlet study = await openStudiesDlg({\n\t\t\t\texcludeStudyIds: report.studyIds,\n\t\t\t\tsearchTerm: report.patient.id,\n\t\t\t})\n\t\t\tif (study) {\n\t\t\t\tthis.addStudies([study.studyId])\n\t\t\t}\n\t\t},\n\t\tasync addFiles() {\n\t\t\tconst studyIds = await openUploadDlg({\n\t\t\t\tcontext: 'addendum',\n\t\t\t\tshowImageUpload: false,\n\t\t\t\tshowAttachmentUpload: true,\n\t\t\t\tshowViewButton: false,\n\t\t\t\tcancelOnClose: true,\n\t\t\t\ttitle: 'Add File',\n\t\t\t})\n\t\t\tif (studyIds.length) this.addStudies(studyIds)\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Thumbnails.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Thumbnails.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Thumbnails.vue?vue&type=template&id=33a50a54\"\nimport script from \"./Thumbnails.vue?vue&type=script&lang=ts\"\nexport * from \"./Thumbnails.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Thumbnails.vue?vue&type=style&index=0&id=33a50a54&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"inline-flex\",\"align-items\":\"center\"}},[_vm._m(0),(!_vm.cell.readOnly && _vm.members.length)?_c('v-select',{attrs:{\"name\":\"consultant\",\"options\":_vm.members,\"label\":\"name\",\"searchable\":false,\"clearable\":false,\"value\":_vm.value},on:{\"input\":function (consultant) { return (_vm.value = consultant); }},scopedSlots:_vm._u([{key:\"option\",fn:function(option){return [_vm._v(\"\\n\\t\\t\\t\"+_vm._s(option.name)+\"\\n\\t\\t\\t\"),(option.isOutOfOffice)?_c('p',{staticClass:\"out-of-office is-danger\"},[(option.outOfOfficeMessage)?_c('small',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(option.outOfOfficeMessage)+\"\\n\\t\\t\\t\\t\")]):_c('small',[_vm._v(\"Out of office\")])]):_vm._e()]}}],null,false,2943578233)}):_c('span',{staticStyle:{\"padding\":\"4px 0\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s((_vm.value && _vm.value.name) || (_vm.cell.report.consultant && _vm.cell.report.consultant.name))+\"\\n\\t\")])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticStyle:{\"padding-right\":\"1ch\"},attrs:{\"for\":\"selectedConsultant\"}},[_vm._v(\"\\n\\t\\tConsultant:\\n\\t\\t\"),_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")])])}]\n\nexport { render, staticRenderFns }","\n\n\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!./ConsultantSelector.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!./ConsultantSelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ConsultantSelector.vue?vue&type=template&id=15bf56fe\"\nimport script from \"./ConsultantSelector.vue?vue&type=script&lang=js\"\nexport * from \"./ConsultantSelector.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.priorities.length || _vm.cell.template.editorMode)?_c('div',{staticClass:\"input-group\",staticStyle:{\"display\":\"inline-flex\",\"align-items\":\"center\",\"padding\":\"4px 0\"}},[_vm._m(0),(_vm.cell.readOnly)?_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.value)+\"\\n\\t\")]):_c('v-select',{staticStyle:{\"display\":\"inline-block\",\"min-width\":\"150px\"},attrs:{\"name\":\"priority\",\"label\":\"name\",\"reduce\":function (priority) { return priority.value; },\"options\":_vm.priorities,\"searchable\":false,\"clearable\":false},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticStyle:{\"padding-right\":\"1ch\"},attrs:{\"for\":\"priority\"}},[_vm._v(\"\\n\\t\\tPriority:\\n\\t\\t\"),_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")])])}]\n\nexport { render, staticRenderFns }","\n\n\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!./PrioritySelector.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!./PrioritySelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PrioritySelector.vue?vue&type=template&id=01aa1db0\"\nimport script from \"./PrioritySelector.vue?vue&type=script&lang=js\"\nexport * from \"./PrioritySelector.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.services.length || _vm.cell.template.editorMode)?_c('div',{staticClass:\"input-group\",staticStyle:{\"display\":\"inline-flex\",\"align-items\":\"center\",\"padding\":\"4px 0\"}},[_vm._m(0),(_vm.cell.readOnly)?_c('span',[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.value)+\"\\n\\t\")]):_c('v-select',{staticStyle:{\"display\":\"inline-block\",\"min-width\":\"150px\"},attrs:{\"name\":\"service\",\"label\":\"name\",\"reduce\":function (service) { return service.id; },\"options\":_vm.services,\"searchable\":false,\"clearable\":false},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticStyle:{\"padding-right\":\"1ch\"},attrs:{\"for\":\"service\"}},[_vm._v(\"\\n\\t\\tService:\\n\\t\\t\"),_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")])])}]\n\nexport { render, staticRenderFns }","\n\n\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!./ServiceSelector.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!./ServiceSelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ServiceSelector.vue?vue&type=template&id=771d02ee\"\nimport script from \"./ServiceSelector.vue?vue&type=script&lang=js\"\nexport * from \"./ServiceSelector.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.billingCodes.length > 1 || _vm.cell.template.editorMode)?_c('div',{staticClass:\"input-group\",staticStyle:{\"display\":\"inline-grid\",\"padding\":\"4px 0\",\"grid-template-columns\":\"auto auto\",\"align-items\":\"center\"}},[_c('label',{staticStyle:{\"padding-right\":\"1ch\"},attrs:{\"for\":\"billingCode\"}},[_vm._v(\"\\n\\t\\t\\tBilling Code:\\n\\t\\t\\t\"),(_vm.isRequired)?_c('small',{staticClass:\"is-danger\"},[_vm._v(\"*\")]):_vm._e()]),_c('div',[(_vm.cell.readOnly && _vm.billingCode)?_c('span',[_vm._v(\" \"+_vm._s(_vm.billingCode.name)+\" (\"+_vm._s(_vm.billingCode.value)+\") \")]):_vm._e(),(_vm.cell.readOnly && !_vm.billingCode)?_c('em',[_vm._v(\"\\n\\t\\t\\t\\tNone selected\\n\\t\\t\\t\")]):_vm._e(),(!_vm.cell.readOnly)?_c('v-select',{staticStyle:{\"display\":\"inline-block\",\"min-width\":\"200px\"},attrs:{\"name\":\"billingCode\",\"reduce\":function (billingCode) { return billingCode.id; },\"options\":_vm.billingCodes,\"label\":\"name\",\"searchable\":false,\"clearable\":false,\"required\":_vm.isRequired},scopedSlots:_vm._u([{key:\"option\",fn:function(c){return [(c.id)?_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(((c.name) + \" (\" + (c.value) + \")\"))+\"\\n\\t\\t\\t\\t\\t\")]):_c('span',[_vm._v(\" \")])]}}],null,false,4017290421),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}):_vm._e()],1),(_vm.showSettingsLink)?_c('div',{staticStyle:{\"grid-area\":\"2 / 2 / 2 / 3\",\"text-align\":\"right\"}},[_c('small',[_c('a',{on:{\"click\":_vm.showBillingCodeSettings}},[_vm._v(\"\\n\\t\\t\\t\\t\\tManage Billing Codes\\n\\t\\t\\t\\t\")])])]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./BillingCodeSelector.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!./BillingCodeSelector.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BillingCodeSelector.vue?vue&type=template&id=012305dc\"\nimport script from \"./BillingCodeSelector.vue?vue&type=script&lang=js\"\nexport * from \"./BillingCodeSelector.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"padding\":\"16px\"}},[_c('p',[_vm._v(\"The following email addresses will be notified when the status of your report changes:\")]),(_vm.cell.readOnly)?_c('p',{staticStyle:{\"padding\":\"8px 0\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.report.emails.join(', '))+\"\\n\\t\")]):_c('email-select',{ref:\"emails\",staticStyle:{\"margin-top\":\"8px\"},attrs:{\"show-suggestions\":!_vm.cell.editorMode,\"disabled\":_vm.cell.editorMode},model:{value:(_vm.report.emails),callback:function ($$v) {_vm.$set(_vm.report, \"emails\", $$v)},expression:\"report.emails\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./Notifications.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!./Notifications.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Notifications.vue?vue&type=template&id=2fdc81f8\"\nimport script from \"./Notifications.vue?vue&type=script&lang=js\"\nexport * from \"./Notifications.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-drop-down\",class:{ stack: _vm.cell.props['label position'] == 'Left' },attrs:{\"title\":_vm.cell.isValueOverridden ? 'Calculated value is being overridden.' : ''}},[(_vm.cell.props.label)?_c('label',{style:(_vm.labelStyle)},[_vm._v(_vm._s(_vm.cell.props.label))]):_vm._e(),_c('v-select',{class:{ 'is-overridden': _vm.cell.isValueOverridden, disabled: _vm.disabled },attrs:{\"clearable\":false,\"searchable\":_vm.cell.props['allow custom value'],\"taggable\":_vm.cell.props['allow custom value'],\"options\":_vm.options},model:{value:(_vm.cellValue),callback:function ($$v) {_vm.cellValue=$$v},expression:\"cellValue\"}}),(_vm.cell.isValueOverridden)?_c('button',{staticClass:\"reset-override\",attrs:{\"title\":\"Clear manual entry\"},on:{\"click\":function($event){_vm.cell.userValue = null}}},[_c('svg-icon',{attrs:{\"icon\":\"undo\"}})],1):_vm._e(),(_vm.disabled)?_c('div',{staticClass:\"overlay\"}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Dropdown.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!./Dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Dropdown.vue?vue&type=template&id=b45bae02\"\nimport script from \"./Dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./Dropdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./Dropdown.vue?vue&type=style&index=0&id=b45bae02&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-radio-group\",class:{ stack: _vm.cell.props['label position'] == 'Left' }},[(_vm.cell.props.label)?_c('label',{style:(_vm.labelStyle)},[_vm._v(_vm._s(_vm.cell.props.label))]):_vm._e(),_c('div',{staticStyle:{\"margin\":\"-4px 0\"}},_vm._l((_vm.options),function(item,i){return _c('ast-radio',{key:i,staticClass:\"radio-option\",class:{ vertical: _vm.cell.props.vertical },attrs:{\"name\":'radio-' + _vm._uid,\"value\":item,\"disabled\":_vm.disabled},model:{value:(_vm.cell.value),callback:function ($$v) {_vm.$set(_vm.cell, \"value\", $$v)},expression:\"cell.value\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(item)+\"\\n\\t\\t\\t\"),(!item)?_c('span',{staticStyle:{\"font-style\":\"italic\"}},[_vm._v(\"Unspecified\")]):_vm._e()])}),1),(_vm.disabled)?_c('div',{staticClass:\"overlay\"}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./RadioGroup.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!./RadioGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RadioGroup.vue?vue&type=template&id=c6add262\"\nimport script from \"./RadioGroup.vue?vue&type=script&lang=js\"\nexport * from \"./RadioGroup.vue?vue&type=script&lang=js\"\nimport style0 from \"./RadioGroup.vue?vue&type=style&index=0&id=c6add262&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-checkbox-group\",class:{ stack: _vm.cell.props['label position'] == 'Left' }},[(_vm.cell.props.label)?_c('label',{style:(_vm.labelStyle)},[_vm._v(_vm._s(_vm.cell.props.label))]):_vm._e(),_c('div',{staticStyle:{\"margin\":\"-4px 0\"}},_vm._l((_vm.cell.props.options),function(item,i){return _c('ast-checkbox',{key:i,staticClass:\"group-checkbox\",class:{ vertical: _vm.cell.props.vertical },attrs:{\"array-value\":item,\"disabled\":_vm.cell.readOnly,\"tabindex\":_vm.cell.template.editorMode ? -1 : 0},model:{value:(_vm.cellValue),callback:function ($$v) {_vm.cellValue=$$v},expression:\"cellValue\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(item)+\"\\n\\t\\t\")])}),1),(_vm.disabled)?_c('div',{staticClass:\"overlay\"}):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./CheckboxGroup.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!./CheckboxGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckboxGroup.vue?vue&type=template&id=109bd635\"\nimport script from \"./CheckboxGroup.vue?vue&type=script&lang=js\"\nexport * from \"./CheckboxGroup.vue?vue&type=script&lang=js\"\nimport style0 from \"./CheckboxGroup.vue?vue&type=style&index=0&id=109bd635&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-textbox\",class:{ stack: _vm.cell.props['label position'] === 'Left' },attrs:{\"title\":_vm.cell.isValueOverridden ? 'Calculated value is being overridden.' : ''}},[(_vm.cell.props.label)?_c('label',{style:(_vm.labelStyle)},[_vm._v(_vm._s(_vm.cell.props.label))]):_vm._e(),(_vm.cell.editorMode)?_c('input',{staticClass:\"input\",attrs:{\"placeholder\":_vm.placeholder,\"disabled\":\"\"}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.cellValue),expression:\"cellValue\"}],staticClass:\"input\",class:{ 'is-overridden': _vm.cell.isValueOverridden },attrs:{\"readonly\":_vm.cell.readOnly,\"placeholder\":_vm.placeholder},domProps:{\"value\":(_vm.cellValue)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.cellValue=$event.target.value}}}),(_vm.cell.isValueOverridden)?_c('button',{staticClass:\"reset-override\",attrs:{\"title\":\"Clear manual entry\"},on:{\"click\":function($event){_vm.cell.userValue = null}}},[_c('svg-icon',{attrs:{\"icon\":\"undo\"}})],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Textbox.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!./Textbox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Textbox.vue?vue&type=template&id=5dda7058\"\nimport script from \"./Textbox.vue?vue&type=script&lang=js\"\nexport * from \"./Textbox.vue?vue&type=script&lang=js\"\nimport style0 from \"./Textbox.vue?vue&type=style&index=0&id=5dda7058&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-cb\"},[_c('ast-checkbox',{attrs:{\"disabled\":_vm.cell.readOnly || _vm.cell.template.editorMode,\"tabindex\":_vm.cell.template.editorMode ? -1 : 0,\"label-position\":_vm.leftLabel ? 'left' : 'right'},model:{value:(_vm.cell.value),callback:function ($$v) {_vm.$set(_vm.cell, \"value\", $$v)},expression:\"cell.value\"}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.cell.props.label)+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Checkbox.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!./Checkbox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Checkbox.vue?vue&type=template&id=6c40cc80\"\nimport script from \"./Checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./Checkbox.vue?vue&type=script&lang=js\"\nimport style0 from \"./Checkbox.vue?vue&type=style&index=0&id=6c40cc80&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ stack: _vm.cell.props['label position'] == 'Left' },staticStyle:{\"padding\":\"4px 0\"}},[(_vm.cell.props.label)?_c('label',{style:(_vm.labelStyle)},[_vm._v(_vm._s(_vm.cell.props.label))]):_vm._e(),_c('datepicker',{attrs:{\"allow-future-dates\":_vm.cell.props['allow future dates'],\"disabled\":_vm.cell.editorMode || _vm.cell.readOnly,\"tabindex\":_vm.cell.editorMode ? -1 : 0},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./ReportDate.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!./ReportDate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReportDate.vue?vue&type=template&id=44984974\"\nimport script from \"./ReportDate.vue?vue&type=script&lang=js\"\nexport * from \"./ReportDate.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.isRichText)?_c('div',{style:(_vm.style)},[_vm._v(_vm._s(_vm.display))]):_c('div',{staticClass:\"html-box\",domProps:{\"innerHTML\":_vm._s(_vm.display)}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ReportText.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!./ReportText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReportText.vue?vue&type=template&id=4b51af2c&scoped=true\"\nimport script from \"./ReportText.vue?vue&type=script&lang=js\"\nexport * from \"./ReportText.vue?vue&type=script&lang=js\"\nimport style0 from \"./ReportText.vue?vue&type=style&index=0&id=4b51af2c&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 \"4b51af2c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[(_vm.url)?_c('img',{style:({ cursor: _vm.isImageComment ? 'pointer' : 'default' }),attrs:{\"draggable\":\"false\",\"src\":_vm.url,\"title\":_vm.isImageComment ? 'Click to open this image in the viewer' : ''},on:{\"click\":_vm.onImageClick}}):(_vm.cell.props.source === '[Signature]')?_c('svg-icon',{staticStyle:{\"font-size\":\"5em\",\"opacity\":\".75\"},attrs:{\"icon\":\"signature\"}}):_c('svg-icon',{staticStyle:{\"font-size\":\"5em\",\"opacity\":\".75\"},attrs:{\"icon\":\"image\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Annex } from '@services/api'\n\nexport default {\n\tname: 'ReportImage',\n\tprops: ['cell'],\n\tdata() {\n\t\treturn {}\n\t},\n\tcomputed: {\n\t\tisImageComment() {\n\t\t\treturn this.cell.props.source === '[Image Comment]'\n\t\t},\n\t\tisSignature() {\n\t\t\treturn this.cell.props.source === '[Signature]'\n\t\t},\n\t\tisLogo() {\n\t\t\treturn this.cell.props.source === '[Logo]'\n\t\t},\n\t\tisUserImage() {\n\t\t\tlet src: string = this.cell.props.source\n\t\t\treturn src && src.startsWith('[Image:')\n\t\t},\n\t\turl() {\n\t\t\tlet source = this.cell.props.source\n\n\t\t\tif (!this.isSignature && !this.isLogo && !this.isImageComment) return source\n\n\t\t\tif (this.cell.editorMode) return\n\n\t\t\tif (this.isImageComment) {\n\t\t\t\treturn this.cell.context.ImageComment.url\n\t\t\t}\n\n\t\t\tlet url = ''\n\t\t\tlet base = Annex.defaults.baseURL\n\t\t\tlet cc = this.$store.state.auth.claims.activeClinicCode\n\n\t\t\tif (this.isSignature) {\n\t\t\t\turl = `${base}/logo.aspx?ClinicCode=${cc}&Type=signature`\n\t\t\t\tif (this.cell.report.Consultant) url += `&ConsultantId=${this.cell.report.Consultant.id}`\n\t\t\t\telse if (this.cell.report.finalizedBy) url += `&UserId=${this.cell.report.finalizedBy.id}`\n\t\t\t} else if (this.isLogo) {\n\t\t\t\turl = `${base}/logo.aspx?ClinicCode=${cc}&Type=logo`\n\t\t\t\tif (this.cell.report.Consultant) url += `&ConsultantId=${this.cell.report.Consultant.id}`\n\t\t\t}\n\n\t\t\treturn url\n\t\t},\n\t},\n\tmethods: {\n\t\tonImageClick() {\n\t\t\tif (!this.isImageComment) return\n\t\t\tthis.$store.dispatch('openStudy', {\n\t\t\t\treportId: this.cell.report.reportId,\n\t\t\t\timageId: this.cell.context.ImageComment.imageId,\n\t\t\t})\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportImage.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportImage.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ReportImage.vue?vue&type=template&id=fea0b7e8\"\nimport script from \"./ReportImage.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportImage.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-divider\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./Divider.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!./Divider.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Divider.vue?vue&type=template&id=7fc7e208\"\nimport script from \"./Divider.vue?vue&type=script&lang=js\"\nexport * from \"./Divider.vue?vue&type=script&lang=js\"\nimport style0 from \"./Divider.vue?vue&type=style&index=0&id=7fc7e208&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-page-break\"},[_c('div',{staticClass:\"dashes\"}),_c('div',{staticClass:\"icon-circle\"},[_c('svg-icon',{attrs:{\"icon\":\"format-page-break\"}})],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./PageBreak.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!./PageBreak.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PageBreak.vue?vue&type=template&id=5d80ba69\"\nimport script from \"./PageBreak.vue?vue&type=script&lang=js\"\nexport * from \"./PageBreak.vue?vue&type=script&lang=js\"\nimport style0 from \"./PageBreak.vue?vue&type=style&index=0&id=5d80ba69&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.hipNumber)?_c('ast-card',{staticClass:\"hip\",attrs:{\"header\":_vm.hipNumber}},[(_vm.saleEntry.motherName)?_c('p',[_vm._v(\"Dam: \"+_vm._s(_vm.saleEntry.motherName))]):_vm._e(),(_vm.saleEntry.fatherName)?_c('p',[_vm._v(\"Sire: \"+_vm._s(_vm.saleEntry.fatherName))]):_vm._e(),(_vm.saleEntry.consignerName)?_c('p',[_vm._v(\" Consigner: \"+_vm._s(_vm.saleEntry.consignerName)+\" \")]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./HipNumber.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!./HipNumber.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HipNumber.vue?vue&type=template&id=1fc9cc0b\"\nimport script from \"./HipNumber.vue?vue&type=script&lang=js\"\nexport * from \"./HipNumber.vue?vue&type=script&lang=js\"\nimport style0 from \"./HipNumber.vue?vue&type=style&index=0&id=1fc9cc0b&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table\",style:(_vm.style)},[_vm._l((_vm.cell.cells),function(c){return _c('cell',{key:c.name,attrs:{\"cell\":c}})}),(_vm.cell.template.editorMode && !_vm.cell.layout.previewInEditor)?_vm._l((_vm.columns),function(col,index){return _c('div',{key:index,staticClass:\"table-col-resizer\",style:({ left: col.margin + '%', marginLeft: '-2.5px' }),on:{\"mousedown\":function($event){return col.onMouseDown($event)}}})}):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Cell, Panel } from '@reporting/classes'\n\nclass Resizer {\n\ttable: Cell\n\tindex: number = 0\n\tstartX: number\n\tstartABPercent: number\n\tstartWidth: number\n\tpanelWidth: number\n\tmousemoveCB: any\n\tmouseupCB: any\n\tel: HTMLElement\n\n\tconstructor(index: number, table: Cell) {\n\t\tthis.table = table\n\t\tthis.index = index\n\t\tthis.mousemoveCB = this.resize.bind(this)\n\t\tthis.mouseupCB = this.stopResizing.bind(this)\n\t}\n\n\tget width(): number {\n\t\treturn this.table.props.cols[this.index]\n\t}\n\n\tset width(value: number) {\n\t\tthis.cols.splice(this.index, 1, value)\n\t}\n\n\tget rightWidth(): number {\n\t\treturn this.table.props.cols[this.index + 1]\n\t}\n\n\tset rightWidth(value: number) {\n\t\tthis.cols.splice(this.index + 1, 1, value)\n\t}\n\n\tget cols(): number[] {\n\t\treturn this.table.props.cols\n\t}\n\n\tget margin(): number {\n\t\t// sum the margins to the left\n\t\tlet sum = 0\n\t\tfor (let i = 0; i <= this.index; i++) sum += this.cols[i]\n\t\treturn sum\n\t}\n\n\tonMouseDown(e: MouseEvent) {\n\t\twindow.getSelection().empty()\n\t\tdocument.documentElement.style.cursor = 'e-resize'\n\t\tthis.el = e.target as HTMLElement\n\t\tthis.el.classList.add('dragging')\n\n\t\te.stopPropagation()\n\t\te.preventDefault()\n\n\t\t// store initial values for calculating deltas\n\t\tthis.startABPercent = this.width + this.rightWidth\n\t\tthis.startX = e.clientX\n\t\tthis.panelWidth = this.table.el.querySelector('.table').clientWidth\n\t\tthis.startWidth = (this.width / 100) * this.panelWidth\n\n\t\tdocument.addEventListener('mousemove', this.mousemoveCB)\n\t\tdocument.addEventListener('mouseup', this.mouseupCB)\n\t}\n\n\tresize(e: MouseEvent) {\n\t\t// resize the right column\n\t\tconst deltaX = this.startX - e.clientX\n\t\tconst newElWidth = this.startWidth - deltaX\n\t\tconst newWidth = (newElWidth / this.panelWidth) * 100\n\t\tconst newRightWidth = this.startABPercent - newWidth\n\n\t\t// enforce minimum width of 10%\n\t\tif (newWidth < 10 || newRightWidth < 10) return\n\n\t\tthis.rightWidth = newRightWidth\n\t\tthis.width = newWidth\n\t}\n\n\tstopResizing(e: MouseEvent) {\n\t\tdocument.removeEventListener('mousemove', this.mousemoveCB)\n\t\tdocument.removeEventListener('mouseup', this.mouseupCB)\n\t\tdocument.documentElement.style.cursor = ''\n\t\tthis.el.classList.remove('dragging')\n\t\tif (e === undefined) return\n\n\t\t// snap to nearest whole number\n\t\tlet finalW = Math.round(this.width)\n\t\tthis.width = finalW\n\t\tthis.rightWidth = this.startABPercent - finalW\n\t}\n}\n\nconst TableColResizer = {}\n\nexport default {\n\tname: 'ReportTable',\n\tprops: ['cell'],\n\tdata() {\n\t\treturn {\n\t\t\tcolumns: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tstyle() {\n\t\t\tlet cols = this.cell.props.cols.map(c => `${c}%`).join(' ')\n\t\t\treturn {\n\t\t\t\tdisplay: 'grid',\n\t\t\t\tgridTemplateColumns: cols,\n\t\t\t}\n\t\t},\n\t},\n\twatch: {\n\t\t'cell.props.cols'() {\n\t\t\tthis.setColumns()\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.cell.configureTable()\n\t\tthis.setColumns()\n\t},\n\tmethods: {\n\t\tsetColumns() {\n\t\t\tlet result = []\n\t\t\tlet cols = this.cell.props.cols.length\n\t\t\tfor (let i = 0; i < cols - 1; i++) {\n\t\t\t\tresult.push(new Resizer(i, this.cell))\n\t\t\t}\n\t\t\tthis.columns = result\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportTable.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReportTable.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ReportTable.vue?vue&type=template&id=6d399898\"\nimport script from \"./ReportTable.vue?vue&type=script&lang=ts\"\nexport * from \"./ReportTable.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ReportTable.vue?vue&type=style&index=0&id=6d399898&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel-cells\",style:(_vm.style)},_vm._l((_vm.cell.cells),function(c){return _c('cell',{key:c.id,attrs:{\"cell\":c}})}),1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./Panel.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!./Panel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Panel.vue?vue&type=template&id=02723273\"\nimport script from \"./Panel.vue?vue&type=script&lang=js\"\nexport * from \"./Panel.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"editor-placeholder\"},[_c('svg-icon',{attrs:{\"icon\":\"info-circle\",\"inline\":\"\",\"fixed\":\"\"}}),(_vm.binding)?_c('span',[_vm._v(\"\\n\\t\\tThe contents of \"),_c('strong',{staticStyle:{\"font-size\":\"0.9em\"}},[_vm._v(_vm._s(_vm.binding))]),_vm._v(\" will appear here.\\n\\t\")]):_c('span',[_vm._v(\"\\n\\t\\tSelect a panel from the \"),_c('strong',{staticStyle:{\"font-size\":\"0.9em\"}},[_vm._v(\"Binding\")]),_vm._v(\" dropdown in the\\n\\t\\tproperties panel, and its contents will appear here.\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./PanelView.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!./PanelView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PanelView.vue?vue&type=template&id=32cb8a92\"\nimport script from \"./PanelView.vue?vue&type=script&lang=js\"\nexport * from \"./PanelView.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport state from '@services/reportService'\nimport { Cell } from '../classes'\nimport layout from './Layout.vue'\nimport LayoutWrapper from './LayoutWrapper.vue'\nimport RequestInfo from '@reporting/primitives/RequestInfo.vue'\nimport ResponseInfo from '@reporting/primitives/ResponseInfo.vue'\nimport ReferredBy from '@reporting/primitives/ReferredBy.vue'\nimport Consultant from '@reporting/primitives/Consultant.vue'\nimport ImageComments from '@reporting/primitives/ImageComments.vue'\nimport PatientInfo from '@reporting/primitives/PatientInfo.vue'\nimport Addendums from '@reporting/primitives/Addendums.vue'\nimport RelatedReports from '@reporting/primitives/RelatedReports.vue'\nimport RequestSelector from '@reporting/primitives/RequestSelector.vue'\nimport ResponseSelector from '@reporting/primitives/ResponseSelector.vue'\nimport RichText from '@reporting/primitives/RichText.vue'\nimport ReferredByForm from '@reporting/primitives/ReferredByForm.vue'\nimport PatientForm from '@reporting/primitives/PatientForm.vue'\nimport ImagesAttachments from '@reporting/primitives/ImagesAttachments.vue'\nimport Thumbnails from '@reporting/primitives/Thumbnails.vue'\nimport ConsultantSelector from '@reporting/primitives/ConsultantSelector.vue'\nimport PrioritySelector from '@reporting/primitives/PrioritySelector.vue'\nimport ServiceSelector from '@reporting/primitives/ServiceSelector.vue'\nimport BillingCodeSelector from '@reporting/primitives/BillingCodeSelector.vue'\nimport Notifications from '@reporting/primitives/Notifications.vue'\nimport Dropdown from '@reporting/primitives/Dropdown.vue'\nimport RadioGroup from '@reporting/primitives/RadioGroup.vue'\nimport CheckboxGroup from '@reporting/primitives/CheckboxGroup.vue'\nimport Textbox from '@reporting/primitives/Textbox.vue'\nimport Checkbox from '@reporting/primitives/Checkbox.vue'\nimport ReportDate from '@reporting/primitives/ReportDate.vue'\nimport ReportText from '@reporting/primitives/ReportText.vue'\nimport ReportImage from '@reporting/primitives/ReportImage.vue'\nimport ReportDivider from '@reporting/primitives/Divider.vue'\nimport PageBreak from '@reporting/primitives/PageBreak.vue'\nimport HipNumber from '@reporting/primitives/HipNumber.vue'\nimport ReportTable from '@reporting/primitives/ReportTable.vue'\nimport Panel from '@reporting/primitives/Panel.vue'\nimport PanelView from '@reporting/primitives/PanelView.vue'\n\nexport default {\n\tname: 'Cell',\n\tcomponents: {\n\t\tlayout,\n\t\tLayoutWrapper,\n\t\tRequestInfo,\n\t\tResponseInfo,\n\t\tConsultant,\n\t\tReferredBy,\n\t\tImageComments,\n\t\tPatientInfo,\n\t\tAddendums,\n\t\tRelatedReports,\n\t\tRequestSelector,\n\t\tResponseSelector,\n\t\tRichText,\n\t\tReferredByForm,\n\t\tPatientForm,\n\t\tImagesAttachments,\n\t\tThumbnails,\n\t\tConsultantSelector,\n\t\tPrioritySelector,\n\t\tServiceSelector,\n\t\tBillingCodeSelector,\n\t\tNotifications,\n\t\tDropdown,\n\t\tRadioGroup,\n\t\tCheckboxGroup,\n\t\tTextbox,\n\t\tCheckbox,\n\t\tReportText,\n\t\tReportDate,\n\t\tReportImage,\n\t\tReportDivider,\n\t\tPageBreak,\n\t\tHipNumber,\n\t\tReportTable,\n\t\tPanel,\n\t\tPanelView,\n\t},\n\tprops: {\n\t\tcell: {\n\t\t\ttype: Cell,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tstate,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcellWarning() {\n\t\t\tconst warnings = [this.cell.validationWarning]\n\t\t\tif (this.cell.binding) {\n\t\t\t\tconst getExpressionErrors = e => e.calcErrors.concat(...e.args.map(getExpressionErrors))\n\t\t\t\twarnings.push(...new Set(getExpressionErrors(this.cell.binding.expression))) // deduped flat array\n\t\t\t}\n\t\t\treturn warnings.join(' ')\n\t\t},\n\t\tshowCornerName() {\n\t\t\tlet cell = this.cell\n\t\t\tif (!cell.template.editorMode) return false\n\t\t\tif (['Page Header', 'Page Footer'].includes(cell.layout.name) && cell.type === 'Layout Wrapper') return true\n\t\t\treturn this.state.activeCell === this.cell || this.state.selCell === this.cell || this.adjusting\n\t\t},\n\t\tstyle() {\n\t\t\tlet cell = this.cell\n\t\t\tlet props = cell.props\n\t\t\tlet padding = props.padding\n\t\t\tlet justifyContent = 'flex-start'\n\t\t\t// note that \"stretch\" verticalAlignment is handled by Panel.vue\n\t\t\tif (cell.type === 'Panel' && props.verticalAlignment === 'middle') justifyContent = 'center'\n\t\t\tif (cell.type === 'Panel' && props.verticalAlignment === 'bottom') justifyContent = 'flex-end'\n\t\t\t// ensure empty panels in editor have enough rendered padding to allow dropping into them\n\t\t\tconst isEmptyPanel = cell.type === 'Panel' && !cell.cells.length\n\t\t\tconst EMPTY_MIN_PADDING = 16\n\t\t\tif (padding && cell.template.editorMode && isEmptyPanel)\n\t\t\t\tpadding = padding.map(p => Math.max(p, EMPTY_MIN_PADDING))\n\t\t\tlet result: any = {\n\t\t\t\tjustifyContent,\n\t\t\t\tcolor: props.color && `var(--report-text-${props.color})`,\n\t\t\t\tfontWeight: props.bold ? 'bold' : 'normal',\n\t\t\t\tfontStyle: props.italic ? 'italic' : 'normal',\n\t\t\t\ttextDecoration: props.underline ? 'underline' : 'none',\n\t\t\t\tbackground: props.background && `var(--report-bg-${props.background})`,\n\t\t\t\tpadding: padding ? padding.map(p => p + 'px').join(' ') : undefined,\n\t\t\t\theight: props.height ? `${props.height}px` : undefined,\n\t\t\t}\n\t\t\tif (['Text', 'Table', 'Panel'].includes(cell.type)) {\n\t\t\t\tresult.alignSelf = 'stretch' // panels are always full-width, as well as text background\n\t\t\t}\n\t\t\tif (props.maxwidth !== null) {\n\t\t\t\tresult.maxWidth = props.maxwidth + '%'\n\t\t\t}\n\n\t\t\tif (cell.isTableCell) {\n\t\t\t\tlet r = props.row + 1\n\t\t\t\tlet r2 = r + props.rowspan\n\n\t\t\t\tlet c = props.col + 1\n\t\t\t\tlet c2 = c + props.colspan\n\t\t\t\tresult.gridArea = `${r} / ${c} / ${r2} / ${c2}`\n\t\t\t}\n\n\t\t\tif (cell.panel && !cell.panel.vertical && cell.panel.props.alignment === 'justify') {\n\t\t\t\tresult.flexGrow = 1\n\t\t\t}\n\t\t\tif (['Divider', 'Page Break'].includes(cell.type)) result.alignSelf = 'stretch'\n\t\t\tconst useCellBorders =\n\t\t\t\t(cell.isTableCell && cell.panel.props.border && cell.panel.props.border !== 'none') ||\n\t\t\t\t(cell.type !== 'Table' && !cell.isTableCell && cell.props.borderColor)\n\t\t\tconst showDashedBorder =\n\t\t\t\t(cell.isPanel && cell.template.editorMode && !cell.layout.previewInEditor) || cell.type === 'Layout Wrapper'\n\t\t\tif (useCellBorders) {\n\t\t\t\tObject.assign(result, cell.borders)\n\t\t\t} else if (showDashedBorder) {\n\t\t\t\tresult.borderColor = 'var(--editor-panel-border)'\n\t\t\t\tresult.borderStyle = 'dashed'\n\t\t\t}\n\t\t\treturn result\n\t\t},\n\t\ttoolIcon() {\n\t\t\tconst tool = state.tools.find(t => t.name === this.cell.type)\n\t\t\tif (!tool) return\n\t\t\treturn tool.icon\n\t\t},\n\t},\n\twatch: {\n\t\tcell() {\n\t\t\tthis.cell.el = this.$el\n\t\t},\n\t},\n\tcreated() {\n\t\tlet cell = this.cell\n\n\t\t// create widigit is not primitive type\n\t\tlet layout = cell.template.getLayout(cell.type)\n\t\tif (layout) {\n\t\t\t// if editor mode render always use the same instance\n\t\t\tif (cell.editorMode) {\n\t\t\t\tcell.addSubLayout(layout)\n\t\t\t} else {\n\t\t\t\tcell.addSubLayout(layout.createInstance())\n\t\t\t}\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.cell.el = this.$el\n\t\tif (\n\t\t\tthis.cell.template.editorMode &&\n\t\t\tstate.activeCell === this.cell &&\n\t\t\tthis.$nextTick(() => this.selectPropInput('text'))\n\t\t) {\n\t\t\t// if a new Text control was added, focus the text prop textarea\n\t\t\tthis.selectPropInput('text')\n\t\t} else if (this.cell.template.editorMode && state.activeCell === this.cell && 'label' in this.cell.props) {\n\t\t\t// if a form field was added, focus the label prop input\n\t\t\tthis.$nextTick(() => this.selectPropInput('label'))\n\t\t}\n\t},\n\tmethods: {\n\t\tonDragEnter() {\n\t\t\tstate.selCell = this.cell\n\t\t},\n\t\tonMouseOver() {\n\t\t\tstate.selCell = this.cell\n\t\t},\n\t\tonDragStart(e: DragEvent) {\n\t\t\tif (this.cell.isRoot || this.cell.isTableCell || this.cell.type === 'Layout Wrapper') return e.preventDefault()\n\t\t\te.dataTransfer.setData('cell', this.cell.path)\n\t\t\tstate.dragCell = this.cell\n\t\t\treturn false\n\t\t},\n\t\tonDblClick() {\n\t\t\tif (!this.cell || !this.cell.template.editorMode) return\n\t\t\tif (this.cell.props.binding) this.selectPropInput('binding')\n\t\t\telse if (this.cell.editWidget) this.selectPropInput('widget')\n\t\t\telse if (this.cell.subLayouts && this.cell.subLayouts.length === 1) this.selectPropInput('widgets-0')\n\t\t\telse if ('text' in this.cell.props) this.selectPropInput('text')\n\t\t\telse if ('label' in this.cell.props) this.selectPropInput('label')\n\t\t\telse this.selectPropInput('name')\n\t\t},\n\t\tselectPropInput(propName) {\n\t\t\tconst propInput: any = document.querySelector(`[data-prop-name=${propName}]`)\n\t\t\tif (propInput) {\n\t\t\t\tpropInput.type === 'button' ? propInput.click() : propInput.select()\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cell.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Cell.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Cell.vue?vue&type=template&id=85b26ff4\"\nimport script from \"./Cell.vue?vue&type=script&lang=ts\"\nexport * from \"./Cell.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","// Vue\nimport router from '@router'\nimport store from '@store'\nimport Vue from 'vue'\nimport App from './App.vue'\n// Exception Tracking\n// Plugins\nimport VueCompositionApi from '@vue/composition-api'\nimport VueGtag from 'vue-gtag'\nimport VueNotifications from './plugins/VueNotifications'\nimport MessagePlugin from './plugins/MessagePlugin'\n// Need to import CSS for Vue Select since v3.x\nimport SvgIcon from '@components/SvgIcon.vue'\nimport VSelect from '@components/VSelect.vue'\nimport 'vue-select/dist/vue-select.css'\n\n// Mixins\nimport localization from './mixins/localization'\n// Custom\nimport mediaMixin from '@/mixins/MediaMixin.js'\nimport api from '@services/api'\nimport { gaMap } from '@store/modules/analytics'\nimport './directives/focus'\nimport './directives/resizable'\nimport './directives/sortable'\nimport './filters'\nimport './registerServiceWorker'\n\nimport Cell from '@reporting/components/Cell.vue'\nimport Layout from '@reporting/components/Layout.vue'\nimport storage from '@services/storage'\n\n// initalize global services\nimport '@/electron/omniDesktop'\nimport '@services/billingCodes'\nimport '@services/dicomSend'\nimport '@services/imagePrecache'\nimport '@services/menu'\n\n// @ts-ignore\nVue.component('layout', Layout)\n// @ts-ignore\nVue.component('cell', Cell)\n\n// clean up old localforage indexedDB database to avoid QuotaExceededError\nindexedDB.deleteDatabase('localforage') // TODO: we can remove this after a while\n\n// Polyfills\nrequire('canvas-toBlob') // Edge\n\n// Directives\nrequire('./directives/draggable.js')\nrequire('./directives/dblclick.js')\nrequire('./directives/scrollNav.js')\n\n// Desktop Builds:\n// `window.ElectronInterface` will come from Electron's preload script,\n// and `vue-electron` will be loaded from that interface\nconst ElectronInterface = window.ElectronInterface\n\n// Can be configured further:\n// https://github.com/MatteoGabriele/vue-analytics\n\nVue.use(VueGtag, generateAnalyticsConfigObject())\n\nVue.use(VueCompositionApi)\nVue.use(VueNotifications, { store })\nVue.use(MessagePlugin)\n\nVue.component('v-select', VSelect)\nVue.component('svg-icon', SvgIcon)\n\nVue.mixin(localization)\nVue.mixin(mediaMixin)\n\nVue.prototype.$api = api\nVue.config.productionTip = false\nVue.config.performance = process.env.NODE_ENV !== 'production'\n\nVue.prototype.$IDEXXAPI = 'IDEXXVMSAPI'\nVue.prototype.$VetCTAPI = 'VETCTAPIINTEGRATION'\nVue.prototype.$VetsChoice_ClinicCode = 'VTSCHOAPIINTEGRATION'\nVue.prototype.$TELERADIOLOGY_INTEGRATION_CLINIC_CODES = [\n\tVue.prototype.$IDEXXAPI,\n\tVue.prototype.$VetCTAPI,\n\tVue.prototype.$VetsChoice_ClinicCode,\n]\n\nstart()\n\nfunction start() {\n\t/* eslint-disable no-new */\n\tconst app = new Vue({\n\t\tstore,\n\t\trouter,\n\t\trender: createEle => createEle(App),\n\t}).$mount('#app')\n\n\t// If running inside Cypress\n\tif (window.Cypress) {\n\t\t// Attach the app to the window, which can be useful\n\t\t// for manually setting state in Cypress commands\n\t\t// such as `cy.logIn()`\n\t\twindow.__app__ = app\n\t}\n}\n\nfunction generateAnalyticsConfigObject() {\n\tconst isElectron = !!ElectronInterface\n\tconst set = [{ field: gaMap.OMNI_VERSION, value: window.config.release }]\n\tconst fields: any = {}\n\tconst isProduction = process.env.NODE_ENV === 'production'\n\tif (isElectron) {\n\t\tset.push({ field: 'checkProtocolTask', value: null })\n\t\tfields.storage = 'none'\n\t\tconst clientId = localStorage.getItem('ga:clientId')\n\t\tif (clientId) fields.clientId = clientId\n\t}\n\treturn {\n\t\tconfig: { id: storage.getItem('ga:tokenId') || window.config.gaPropertyTrackingId || 'G-Y1X3JJKQG2' },\n\t\tfields: fields,\n\t\tset: set,\n\t\tautoTracking: {\n\t\t\texception: true,\n\t\t},\n\t\tdebug: {\n\t\t\tenabled: !isProduction && process.env.VUE_APP_GA_ENABLED,\n\t\t\tsendHitTask: isProduction,\n\t\t},\n\t}\n}\n","import { imageCache } from 'cornerstone-core/dist/cornerstone'\n\n// Chromium memory limits:\n// https://source.chromium.org/chromium/chromium/src/+/master:sandbox/policy/win/sandbox_win.cc;l=607;drc=f9368f7738775f0e005f07b5135875668f75439f\n\nfunction increaseCornerstoneCache() {\n\ttry {\n\t\tif (!window.ElectronInterface || window.ElectronInterface.is.x86()) return\n\t\tconst memoryInfo = window.ElectronInterface.process.getSystemMemoryInfo()\n\t\tconst { total: totalMemoryKB } = memoryInfo\n\t\tconst totalMemoryGB = totalMemoryKB / 1024 / 1024\n\t\tlet cacheMaxGB = 2\n\t\tif (totalMemoryGB > 8) cacheMaxGB = 7 // leave 1GB+ for rest of app\n\t\tif (totalMemoryGB > 16) cacheMaxGB = 15\n\t\timageCache.setMaximumSizeBytes(cacheMaxGB * 1024 * 1024 * 1024)\n\t} catch (err) {\n\t\t// do not increase cache if we fail to get all the necessary system info\n\t}\n}\n\nincreaseCornerstoneCache()\n","export default function(imageFrame) {\n let rgbaIndex = 0\n const newPixelData = new Uint8Array(imageFrame.pixelData.length * 4 / 3)\n\n for (let i = 0; i < imageFrame.pixelData.length; i += 3) {\n newPixelData[rgbaIndex++] = imageFrame.pixelData[i] // red\n newPixelData[rgbaIndex++] = imageFrame.pixelData[i + 1] // green\n newPixelData[rgbaIndex++] = imageFrame.pixelData[i + 2] // blue\n newPixelData[rgbaIndex++] = 255 // alpha\n }\n imageFrame.pixelData = newPixelData\n}\n","export default function(imageFrame) {\n const pixels = imageFrame.pixelData.length / 3\n let rgbaIndex = 0\n let rIndex = 0\n let gIndex = pixels\n let bIndex = pixels * 2\n const newPixelData = new Uint8Array(pixels * 4)\n\n for (let i = 0; i < pixels; i++) {\n newPixelData[rgbaIndex++] = imageFrame.pixelData[rIndex++] // red\n newPixelData[rgbaIndex++] = imageFrame.pixelData[gIndex++] // green\n newPixelData[rgbaIndex++] = imageFrame.pixelData[bIndex++] // blue\n newPixelData[rgbaIndex++] = 255 // alpha\n }\n\n imageFrame.pixelData = newPixelData\n}\n","export default function(imageFrame) {\n const pixels = imageFrame.pixelData.length / 3\n let ybrIndex = 0\n let rgbaIndex = 0\n const newPixelData = new Uint8Array(pixels * 4)\n\n for (let i = 0; i < pixels; i++) {\n const y = imageFrame.pixelData[ybrIndex++]\n const cb = imageFrame.pixelData[ybrIndex++]\n const cr = imageFrame.pixelData[ybrIndex++]\n\n const r = y + (1.40200 * (cr - 128))\n const g = y - (0.34414 * (cb - 128)) - (0.71414 * (cr - 128))\n const b = y + (1.77200 * (cb - 128))\n\n newPixelData[rgbaIndex++] = constrain(r)\n newPixelData[rgbaIndex++] = constrain(g)\n newPixelData[rgbaIndex++] = constrain(b)\n newPixelData[rgbaIndex++] = 255\n }\n\n function constrain(value) {\n if (value < 0) return 0\n if (value > 255) return 255\n return value\n }\n\n imageFrame.pixelData = newPixelData\n}\n","export default function (imageFrame) {\n const pixels = imageFrame.pixelData.length / 3\n let rgbaIndex = 0\n let yIndex = 0\n let cbIndex = pixels\n let crIndex = pixels * 2\n const newPixelData = new Uint8Array(pixels * 4)\n\n for (let i = 0; i < pixels; i++) {\n const y = imageFrame.pixelData[yIndex++]\n const cb = imageFrame.pixelData[cbIndex++]\n const cr = imageFrame.pixelData[crIndex++]\n\n const r = y + (1.40200 * (cr - 128))\n const g = y - (0.34414 * (cb - 128)) - (0.71414 * (cr - 128))\n const b = y + (1.77200 * (cb - 128))\n\n newPixelData[rgbaIndex++] = constrain(r)\n newPixelData[rgbaIndex++] = constrain(g)\n newPixelData[rgbaIndex++] = constrain(b)\n newPixelData[rgbaIndex++] = 255\n }\n\n function constrain(value) {\n if (value < 0) return 0\n if (value > 255) return 255\n return value\n }\n\n imageFrame.pixelData = newPixelData\n}\n","export default function(imageFrame, imagePixelModule) {\n const pixels = imageFrame.columns * imageFrame.rows\n const pixelData = imageFrame.pixelData\n const rData = imagePixelModule.redPaletteColorLookupTableData\n const gData = imagePixelModule.greenPaletteColorLookupTableData\n const bData = imagePixelModule.bluePaletteColorLookupTableData\n const len = imagePixelModule.redPaletteColorLookupTableData.length\n let palIndex = 0\n let rgbaIndex = 0\n\n const start = imagePixelModule.redPaletteColorLookupTableDescriptor[1]\n const shift = imagePixelModule.redPaletteColorLookupTableDescriptor[2] === 8 ? 0 : 8\n\n const rDataCleaned = convertLUTto8Bit(rData, shift)\n const gDataCleaned = convertLUTto8Bit(gData, shift)\n const bDataCleaned = convertLUTto8Bit(bData, shift)\n\n for (let i = 0; i < pixels; ++i) {\n let value = pixelData[palIndex++]\n\n if (value < start) {\n value = 0\n } else if (value > start + len - 1) {\n value = len - 1\n } else {\n value -= start\n }\n\n imageFrame.pixelData[rgbaIndex++] = rDataCleaned[value]\n imageFrame.pixelData[rgbaIndex++] = gDataCleaned[value]\n imageFrame.pixelData[rgbaIndex++] = bDataCleaned[value]\n imageFrame.pixelData[rgbaIndex++] = 255\n }\n}\n\nfunction convertLUTto8Bit (lut, shift) {\n const numEntries = lut.length\n const cleanedLUT = new Uint8ClampedArray(numEntries)\n\n for (let i = 0; i < numEntries; ++i) {\n cleanedLUT[i] = lut[i] >> shift;\n }\n\n return cleanedLUT\n}\n","import {\n\tconvertRGBColorByPixel,\n\tconvertRGBColorByPlane,\n\tconvertYBRFullByPixel,\n\tconvertYBRFullByPlane,\n\tconvertPALETTECOLOR,\n} from '../colorSpaceConverters'\n\nfunction convertRGB(imageFrame) {\n\tif (imageFrame.planarConfiguration === 0) {\n\t\tconvertRGBColorByPixel(imageFrame)\n\t} else {\n\t\tconvertRGBColorByPlane(imageFrame)\n\t}\n}\n\nfunction convertYBRFull(imageFrame) {\n\tif (imageFrame.planarConfiguration === 0) {\n\t\tconvertYBRFullByPixel(imageFrame)\n\t} else {\n\t\tconvertYBRFullByPlane(imageFrame)\n\t}\n}\n\nexport default function convertColorSpace(imageFrame, imagePixelModule) {\n\t// convert based on the photometric interpretation\n\n\tif (imageFrame.photometricInterpretation === 'RGB') {\n\t\tconvertRGB(imageFrame)\n\t} else if (imageFrame.photometricInterpretation === 'YBR_RCT') {\n\t\tconvertRGB(imageFrame)\n\t} else if (imageFrame.photometricInterpretation === 'YBR_ICT') {\n\t\tconvertRGB(imageFrame)\n\t} else if (imageFrame.photometricInterpretation === 'PALETTE COLOR') {\n\t\tconvertPALETTECOLOR(imageFrame, imagePixelModule)\n\t} else if (imageFrame.photometricInterpretation === 'YBR_FULL_422') {\n\t\tconvertYBRFull(imageFrame)\n\t} else if (imageFrame.photometricInterpretation === 'YBR_FULL') {\n\t\tconvertYBRFull(imageFrame)\n\t} else {\n\t\tthrow new Error(`No color space conversion for photometric interpretation ${imageFrame.photometricInterpretation}`)\n\t}\n}\n","/**\n * Calculate the minimum and maximum values in an Array\n *\n * @param {Number[]} storedPixelData\n * @return {{min: Number, max: Number}}\n */\nfunction getMinMax (storedPixelData) {\n // we always calculate the min max values since they are not always\n // present in DICOM and we don't want to trust them anyway as cornerstone\n // depends on us providing reliable values for these\n let min = storedPixelData[0];\n let max = storedPixelData[0];\n let storedPixel;\n const numPixels = storedPixelData.length;\n\n for (let index = 1; index < numPixels; index++) {\n storedPixel = storedPixelData[index];\n min = Math.min(min, storedPixel);\n max = Math.max(max, storedPixel);\n }\n\n return {\n min,\n max\n };\n}\n\nexport default getMinMax;\n","// @ts-ignore\nimport DecodeWorker from 'worker-loader!./DecodeWorker' // eslint-disable-line\nimport convertColorSpace from './lib/convertColorSpace'\nimport getMinMax from './lib/getMinMax'\nimport { metaData as csMetaData } from 'cornerstone-core/dist/cornerstone'\nimport { getCornerstoneImageIdParts } from '../'\n\nconst MAX_WORKERS = navigator.hardwareConcurrency || 4\n\ntype DecodeTask = {\n\tcornerstoneImageId: string\n\tframeIndex: number\n\tarrayBuffer: ArrayBuffer\n}\n\nclass DecodeWorkerInfo {\n\tworker: DecodeWorker = undefined\n\ttask: DecodeTask = null\n\tterminateDebounce: number = null\n}\n\nclass DicomDecoder {\n\tdecodeQueue: DecodeTask[] = []\n\tdecodeDeferreds: Map = new Map()\n\tworkerPool: DecodeWorkerInfo[] = new Array(MAX_WORKERS)\n\n\tdecodeDicom(cornerstoneImageId: string, arrayBuffer: ArrayBuffer): Promise {\n\t\tconst { frameIndex } = getCornerstoneImageIdParts(cornerstoneImageId)\n\t\tconst task: DecodeTask = {\n\t\t\tcornerstoneImageId,\n\t\t\tframeIndex,\n\t\t\tarrayBuffer,\n\t\t}\n\t\tthis.decodeQueue.push(task)\n\t\tconst workersNeeded = Math.min(MAX_WORKERS, this.decodeQueue.length)\n\t\tif (workersNeeded) this.runWorkers(workersNeeded)\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst deferred: DeferredPromise = {\n\t\t\t\tresolve,\n\t\t\t\treject,\n\t\t\t}\n\t\t\tthis.decodeDeferreds.set(cornerstoneImageId, deferred)\n\t\t})\n\t}\n\n\trunWorkers(workersNeeded: number) {\n\t\tlet workersRunning = 0\n\t\tfor (let i = 0; i < this.workerPool.length; i++) {\n\t\t\tif (workersRunning === workersNeeded) break\n\t\t\tif (!this.workerPool[i] || !this.workerPool[i].task) this.runWorker(i) // (re)start worker if not running\n\t\t\tworkersRunning++\n\t\t}\n\t}\n\n\trunWorker(i: number) {\n\t\tif (!this.workerPool[i]) this.workerPool[i] = this.createWorker(i)\n\t\tclearTimeout(this.workerPool[i].terminateDebounce)\n\t\tif (this.decodeQueue.length) {\n\t\t\tconst nextTask = this.decodeQueue.shift()\n\t\t\tthis.workerPool[i].task = nextTask\n\t\t\tthis.workerPool[i].worker.postMessage(nextTask, [nextTask.arrayBuffer])\n\t\t} else {\n\t\t\tthis.workerPool[i].terminateDebounce = setTimeout(() => {\n\t\t\t\tif (this.workerPool[i]) this.workerPool[i].worker.terminate()\n\t\t\t\tthis.workerPool[i] = undefined\n\t\t\t}, 3000)\n\t\t}\n\t}\n\n\tcreateWorker(i: number): DecodeWorkerInfo {\n\t\tconst workerInfo = new DecodeWorkerInfo()\n\t\tworkerInfo.worker = new DecodeWorker()\n\t\tworkerInfo.worker.onmessage = ({ data }) => {\n\t\t\tworkerInfo.task = null\n\t\t\tconst { cornerstoneImageId, decodedImage, decodeError } = data\n\t\t\tif (this.decodeDeferreds.has(cornerstoneImageId)) {\n\t\t\t\tconst deferred = this.decodeDeferreds.get(cornerstoneImageId)\n\t\t\t\tif (!decodeError && decodedImage) {\n\t\t\t\t\tdeferred.resolve(getTypedArray(cornerstoneImageId, decodedImage))\n\t\t\t\t} else {\n\t\t\t\t\tconst errorMessage = decodeError?.message || ''\n\t\t\t\t\tdeferred.reject(new Error('The requested image failed to decode. ' + errorMessage))\n\t\t\t\t}\n\t\t\t\tthis.decodeDeferreds.delete(cornerstoneImageId)\n\t\t\t}\n\t\t\tthis.runWorker(i)\n\t\t}\n\t\treturn workerInfo\n\t}\n\n\tisDecoding(cornerstoneImageId: string) {\n\t\treturn this.workerPool.some(d => d && d.task && d.task.cornerstoneImageId === cornerstoneImageId)\n\t}\n\n\tstop(cornerstoneImageId?: string) {\n\t\t// kill worker(s)\n\t\tfor (let i = 0; i < this.workerPool.length; i++) {\n\t\t\tif (!this.workerPool[i]) continue\n\t\t\tif (\n\t\t\t\tcornerstoneImageId &&\n\t\t\t\tthis.workerPool[i].task &&\n\t\t\t\tthis.workerPool[i].task.cornerstoneImageId !== cornerstoneImageId\n\t\t\t)\n\t\t\t\tcontinue\n\t\t\tclearTimeout(this.workerPool[i].terminateDebounce)\n\t\t\tthis.workerPool[i].worker.terminate()\n\t\t\tthis.workerPool[i] = undefined\n\t\t}\n\t\t// remove queued task(s) and deferred promise(s)\n\t\tif (cornerstoneImageId) {\n\t\t\tconst taskIndex = this.decodeQueue.findIndex(t => t.cornerstoneImageId === cornerstoneImageId)\n\t\t\tif (taskIndex >= 0) this.decodeQueue.splice(taskIndex, 1)\n\t\t\tthis.decodeDeferreds.delete(cornerstoneImageId)\n\t\t} else {\n\t\t\tthis.decodeQueue = []\n\t\t\tthis.decodeDeferreds.clear()\n\t\t}\n\t}\n}\n\nfunction getTypedArray(cornerstoneImageId: string, decoded) {\n\tcreateTypedArray(decoded)\n\t// swap endianness if big-endian\n\tif (decoded.isBigEndian) {\n\t\tfor (let i = 0; i < decoded.pixelData.length; i++) {\n\t\t\tdecoded.pixelData[i] = swap16(decoded.pixelData[i])\n\t\t}\n\t}\n\t// calculate min and max values if missing\n\tif (!decoded.minPixelValue || !decoded.maxPixelValue) {\n\t\tconst { min, max } = getMinMax(decoded.pixelData)\n\t\tdecoded.minPixelValue = min\n\t\tdecoded.maxPixelValue = max\n\t}\n\t// convert to RGB if necessary\n\tconst { imageId: asterisImageId } = getCornerstoneImageIdParts(cornerstoneImageId)\n\tconst imagePixelModule = csMetaData.get('imagePixelModule', asterisImageId) || {}\n\tdecoded.isColor = isColorImage(decoded.photometricInterpretation)\n\tif (decoded.isColor) convertColorSpace(decoded, imagePixelModule)\n\tdecoded.isDicom = true\n\treturn decoded\n}\n\nfunction createTypedArray(decoded) {\n\tconst isSigned = decoded.pixelRepresentation === 1\n\tif (decoded.bitsAllocated !== 32) {\n\t\t// 8-bit / 16-bit\n\t\tlet TypedArray\n\t\tif (decoded.bitsAllocated < 16) TypedArray = Uint8Array\n\t\telse if (decoded.bitsAllocated === 16 && isSigned) TypedArray = Int16Array\n\t\telse if (decoded.bitsAllocated === 16 && !isSigned) TypedArray = Uint16Array\n\t\tdecoded.pixelData = new TypedArray(decoded.pixelData, decoded.byteOffset, decoded.length)\n\t} else {\n\t\t// 32-bit (requires rescaling)\n\t\tdecoded.pixelData = new Float32Array(decoded.pixelData, decoded.byteOffset, decoded.length)\n\t\tconst range = Math.abs(decoded.maxPixelValue - decoded.minPixelValue)\n\t\tconst INT_RANGE = 65535\n\t\tconst slope = range / INT_RANGE\n\t\tconst intercept = decoded.minPixelValue\n\t\tconst newPixelData = new Uint16Array(decoded.pixelData.length)\n\t\tlet newMinPixelValue = 65535\n\t\tlet newMaxPixelValue = 0\n\t\tfor (let i = 0; i < newPixelData.length; i++) {\n\t\t\tconst rescaledPixel = Math.floor((decoded.pixelData[i] - intercept) / slope)\n\t\t\tnewPixelData[i] = rescaledPixel\n\t\t\tnewMinPixelValue = Math.min(newMinPixelValue, rescaledPixel)\n\t\t\tnewMaxPixelValue = Math.max(newMaxPixelValue, rescaledPixel)\n\t\t}\n\t\tdecoded.pixelData = newPixelData\n\t\tdecoded.minPixelValue = newMinPixelValue\n\t\tdecoded.maxPixelValue = newMaxPixelValue\n\t\tdecoded.slope = slope\n\t\tdecoded.intercept = intercept\n\t}\n}\n\nfunction isColorImage(photometricInterpretation: string) {\n\treturn [\n\t\t'RGB',\n\t\t'PALETTE COLOR',\n\t\t'YBR_FULL',\n\t\t'YBR_FULL_422',\n\t\t'YBR_PARTIAL_422',\n\t\t'YBR_PARTIAL_420',\n\t\t'YBR_RCT',\n\t\t'YBR_ICT',\n\t].includes(photometricInterpretation)\n}\n\nfunction swap16(val) {\n\treturn ((val & 0xff) << 8) | ((val >> 8) & 0xff)\n}\n\nexport const dicomDecoder = new DicomDecoder()\n","import { renderWebImage } from 'cornerstone-core/dist/cornerstone'\n\nexport const jpegCanvas = document.createElement('canvas')\nconst jpegContext = jpegCanvas.getContext('2d')\n\nexport default async function decodeJpeg(arrayBuffer: ArrayBuffer): Promise {\n\tconst imageElement = await convertArrayBufferToImageElement(arrayBuffer)\n\tconst pixelData = getPixelDataForJpeg(imageElement)\n\treturn {\n\t\timageElement,\n\t\tpixelData,\n\t\trender: renderWebImage,\n\t\trows: imageElement.naturalHeight,\n\t\tcolumns: imageElement.naturalWidth,\n\t\tisColor: true,\n\t\trgba: false,\n\t\tminPixelValue: 0,\n\t\tmaxPixelValue: 255,\n\t\twindowCenter: 128,\n\t\twindowWidth: 255,\n\t\tslope: 1,\n\t\tintercept: 0,\n\t\tinvert: false,\n\t}\n}\n\nfunction convertArrayBufferToImageElement(arrayBuffer: ArrayBuffer): Promise {\n\treturn new Promise((resolve, reject) => {\n\t\tconst image = new Image()\n\t\tconst arrayBufferView = new Uint8Array(arrayBuffer)\n\t\tconst blob = new Blob([arrayBufferView])\n\t\tconst urlCreator = window.URL || window.webkitURL\n\t\tconst imageUrl = urlCreator.createObjectURL(blob)\n\n\t\timage.src = imageUrl\n\t\timage.onload = () => {\n\t\t\tresolve(image)\n\t\t\turlCreator.revokeObjectURL(imageUrl)\n\t\t}\n\n\t\timage.onerror = error => {\n\t\t\turlCreator.revokeObjectURL(imageUrl)\n\t\t\treject(error)\n\t\t}\n\t})\n}\n\nfunction getPixelDataForJpeg(imageElement: HTMLImageElement): Uint8ClampedArray {\n\tjpegCanvas.height = imageElement.naturalHeight\n\tjpegCanvas.width = imageElement.naturalWidth\n\tjpegContext.drawImage(imageElement, 0, 0)\n\tconst imageData = jpegContext.getImageData(0, 0, imageElement.naturalWidth, imageElement.naturalHeight)\n\treturn imageData.data\n}\n","// Refer to the flowchart in the project Documentation folder\n// ** Avoid tying Vue reactivity to any of this as it slows down image loading! **\n\nimport '@/cornerstone/increaseCornerstoneCache'\nimport omniDesktop from '@/electron/omniDesktop'\nimport shouldLoadDicom from '@/utils/shouldLoadDicom'\nimport store from '@store'\nimport { findImageUrl } from '@utils/urlUtility'\nimport axios, { Canceler } from 'axios'\nimport {\n\tevents as csEvents,\n\tmetaData as csMetaData,\n\timageCache,\n\tloadAndCacheImage,\n\tregisterImageLoader,\n} from 'cornerstone-core/dist/cornerstone'\nimport { getToolState } from 'cornerstone-tools/dist/cornerstoneTools.js'\n\nimport { dicomServiceData } from '@services/dicomServiceData'\n\n// @ts-ignore\nimport QueuePrioritizeWorker from 'worker-loader!./QueuePrioritizeWorker' // eslint-disable-line\n\nimport { dicomDecoder } from './dicomDecoder'\nimport localImageCache from './imageCache'\nimport decodeJpeg, { jpegCanvas } from './jpegDecoder'\n\nconst MAX_FETCHES = 6\nconst MIN_IMAGE_BYTE_LENGTH = 1000\nconst PREFETCH_DEBOUNCER = 50\nconst IMAGE_DOWNLOAD_DEBOUNCER = 100\n\nconst FetchAxios = axios.create({\n\tresponseType: 'arraybuffer',\n\ttransformRequest: [\n\t\t(data, headers) => {\n\t\t\tdelete headers.common['Authorization']\n\t\t\treturn data\n\t\t},\n\t],\n})\n\nlet prefetchDebounce\n\ntype QueueItem = {\n\tcornerstoneImageId: string\n\tloadImagePromise: Promise\n\tisPrefetch: boolean\n\tisUnopenedSeries: boolean\n}\n\nlet queue: QueueItem[] = []\n\nclass ImageLoader {\n\tloadImageDeferreds: Map = new Map()\n\tactiveFetches = 0\n\tfetchCancelers: Map = new Map()\n\n\tconstructor() {\n\t\tthis.prefetchAsync = this.prefetchAsync.bind(this)\n\t\tthis.processTempQueue = this.processTempQueue.bind(this)\n\t}\n\n\t// this method is registered with cornerstone for image loading\n\tloadImage(cornerstoneImageId: string, { isPrefetch = false, isUnopenedSeries = false } = {}) {\n\t\tconst add = isPrefetch ? 'push' : 'unshift'\n\t\tconst loadImageDeferred: DeferredPromise = {}\n\t\tconst loadImagePromise = new Promise((resolve, reject) => {\n\t\t\tloadImageDeferred.resolve = resolve\n\t\t\tloadImageDeferred.reject = reject\n\t\t})\n\t\tconst queueItem: QueueItem = {\n\t\t\tcornerstoneImageId,\n\t\t\tloadImagePromise,\n\t\t\tisPrefetch,\n\t\t\tisUnopenedSeries,\n\t\t}\n\t\tqueue[add](queueItem)\n\t\tthis.loadImageDeferreds.set(cornerstoneImageId, loadImageDeferred)\n\t\tthis.startFetching()\n\t\treturn {\n\t\t\tpromise: loadImagePromise,\n\t\t\tcancelFn: undefined,\n\t\t}\n\t}\n\n\tasync processTempQueue(tempQueue) {\n\t\twhile (tempQueue.length) {\n\t\t\tconst queueItem = tempQueue.shift()\n\t\t\tconst { cornerstoneImageId } = queueItem\n\t\t\tthis.fetchAndDecodeImage(cornerstoneImageId)\n\t\t}\n\t}\n\tstartFetching() {\n\t\twhile (queue.length && this.activeFetches < MAX_FETCHES) {\n\t\t\tconst isUnopenedSeries = queue[0].isUnopenedSeries\n\t\t\tconst isCacheFull = isCacheFullOfOpenStudies()\n\t\t\tif (isUnopenedSeries && isCacheFull) {\n\t\t\t\t// do not prefetch any more unopened series if cache is full\n\t\t\t\tthis.clearQueue()\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tlet tempQueue = []\n\t\t\tfor (let i = 0; i < MAX_FETCHES; i++) {\n\t\t\t\tif (!queue.length) break\n\t\t\t\tthis.activeFetches++\n\t\t\t\tconst queueItem = queue.shift()\n\t\t\t\ttempQueue.push(queueItem)\n\t\t\t}\n\t\t\tsetTimeout(this.processTempQueue, IMAGE_DOWNLOAD_DEBOUNCER, tempQueue)\n\t\t}\n\t}\n\n\tasync prefetchAsync(scrolledToIndex?: number) {\n\t\tconst { maximumSizeInBytes, cacheSizeInBytes } = imageCache.getCacheInfo()\n\t\tif (cacheSizeInBytes > maximumSizeInBytes) return\n\t\tconst loadedCornerstoneImageIds = getLoadedCornerstoneImageIds()\n\t\t// do not rebuild queue when scrolling if the open series are already loaded\n\t\tif (scrolledToIndex != null && areOpenSeriesFullyLoaded(loadedCornerstoneImageIds)) return\n\t\tconst newQueueItems = await getPrefetchQueue(loadedCornerstoneImageIds, scrolledToIndex)\n\t\tqueue = []\n\t\tlet prefetchFetchCount = 0\n\t\tlet highPriorityCount = 0\n\t\t// rebuild queue\n\t\tlet i = 0\n\t\twhile (i < newQueueItems.length) {\n\t\t\tconst { cornerstoneImageId, isPrefetch, isUnopenedSeries } = newQueueItems[i]\n\t\t\ti++\n\t\t\t// get any existing promises from the cornerstone imagecache\n\t\t\tlet pendingLoad = imageCache.getImageLoadObject(cornerstoneImageId)\n\t\t\tif (pendingLoad && !this.loadImageDeferreds.has(cornerstoneImageId)) {\n\t\t\t\t// if we do not have a deferred for the pendingLoad.promise, remove the pending load\n\t\t\t\timageCache.removeImageLoadObject(cornerstoneImageId)\n\t\t\t\tpendingLoad = null\n\t\t\t}\n\t\t\tif (pendingLoad && !isPrefetch) {\n\t\t\t\t// move non-prefetch queue item up\n\t\t\t\tqueue.push({\n\t\t\t\t\tcornerstoneImageId,\n\t\t\t\t\tloadImagePromise: pendingLoad.promise,\n\t\t\t\t\tisPrefetch: false,\n\t\t\t\t\tisUnopenedSeries: false,\n\t\t\t\t})\n\t\t\t\thighPriorityCount++\n\t\t\t} else if (pendingLoad) {\n\t\t\t\tconst isFetching = this.fetchCancelers.has(cornerstoneImageId)\n\t\t\t\tif (isFetching) {\n\t\t\t\t\tprefetchFetchCount++\n\t\t\t\t\t// cancel the lowest-priority active fetches as necessary to free up connections for new\n\t\t\t\t\t// high-priority (visible) images\n\t\t\t\t\tif (prefetchFetchCount > MAX_FETCHES - highPriorityCount) this.stopFetch(cornerstoneImageId)\n\t\t\t\t\telse continue // do not cancel any other active fetches\n\t\t\t\t}\n\t\t\t\tif (dicomDecoder.isDecoding(cornerstoneImageId)) continue // do not cancel active decoding tasks\n\t\t\t\t// cancel and restart prefetches\n\t\t\t\timageCache.removeImageLoadObject(cornerstoneImageId)\n\t\t\t\tdicomDecoder.stop(cornerstoneImageId)\n\t\t\t\tthis.loadImageDeferreds.delete(cornerstoneImageId)\n\t\t\t\tloadAndCacheImage(cornerstoneImageId, { isPrefetch, isUnopenedSeries })\n\t\t\t} else {\n\t\t\t\tloadAndCacheImage(cornerstoneImageId, { isPrefetch, isUnopenedSeries })\n\t\t\t}\n\t\t}\n\t}\n\n\tprefetch(scrolledToIndex?: number) {\n\t\tclearTimeout(prefetchDebounce)\n\t\tprefetchDebounce = setTimeout(this.prefetchAsync, PREFETCH_DEBOUNCER, scrolledToIndex)\n\t}\n\n\tstop() {\n\t\tthis.loadImageDeferreds.forEach((d, k) => {\n\t\t\timageCache.removeImageLoadObject(k)\n\t\t})\n\t\tthis.loadImageDeferreds.clear()\n\t\tthis.stopFetch()\n\t\tqueue = []\n\t\tdicomDecoder.stop()\n\t}\n\n\tclearQueue() {\n\t\tqueue.forEach(({ cornerstoneImageId }) => {\n\t\t\tif (imageCache.cachedImages.some(i => i.imageId === cornerstoneImageId))\n\t\t\t\timageCache.removeImageLoadObject(cornerstoneImageId)\n\t\t\tthis.loadImageDeferreds.delete(cornerstoneImageId)\n\t\t})\n\t\tqueue = []\n\t}\n\n\tstopFetch(cornerstoneImageId?: string) {\n\t\tif (cornerstoneImageId && this.fetchCancelers.has(cornerstoneImageId)) {\n\t\t\tthis.fetchCancelers.get(cornerstoneImageId)()\n\t\t\tthis.fetchCancelers.delete(cornerstoneImageId)\n\t\t} else if (!cornerstoneImageId) {\n\t\t\tthis.fetchCancelers.forEach(canceler => canceler())\n\t\t\tthis.fetchCancelers.clear()\n\t\t}\n\t}\n\n\tasync fetchAndDecodeImage(cornerstoneImageId: string): Promise {\n\t\ttry {\n\t\t\tconst arrayBuffer = await this.fetchImage(cornerstoneImageId)\n\t\t\tif (!arrayBuffer) return\n\t\t\tconst decoded = await this.decodeImage(cornerstoneImageId, arrayBuffer)\n\t\t\tif (!decoded) return\n\t\t\tconst cornerstoneImage = this.createCornerstoneImage(cornerstoneImageId, decoded)\n\t\t\tif (!cornerstoneImage) return\n\t\t\tthis.loadImageDeferreds.get(cornerstoneImageId).resolve(cornerstoneImage)\n\t\t\tthis.loadImageDeferreds.delete(cornerstoneImageId)\n\t\t} catch (err) {\n\t\t\tif (this.loadImageDeferreds.has(cornerstoneImageId)) {\n\t\t\t\tthis.loadImageDeferreds.get(cornerstoneImageId).reject(err)\n\t\t\t\tthis.loadImageDeferreds.delete(cornerstoneImageId)\n\t\t\t}\n\t\t\tif (err && err.message) {\n\t\t\t\tstore.dispatch('addNotification', {\n\t\t\t\t\tmessage: err.message,\n\t\t\t\t\tnotificationType: 'error',\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t}\n\n\tasync fetchImage(cornerstoneImageId: string): Promise {\n\t\ttry {\n\t\t\tlet data = getCornerstoneImageData(cornerstoneImageId)\n\t\t\tif (dicomServiceData.localStudies.has(data.studyUid)) {\n\t\t\t\ttry {\n\t\t\t\t\treturn await dicomServiceData.downloadLocalImage(data.instanceUid, data.scheme)\n\t\t\t\t} catch {}\n\t\t\t}\n\n\t\t\tconst fetchImageFromLocalServerOrAnnex = async () => {\n\t\t\t\t// Build image urls for connected server and Annex (won't be the same if connected to local server)\n\t\t\t\tconst imageUrl = findImageUrlByCornerstoneImageId(cornerstoneImageId)\n\t\t\t\tconst annexImageUrl = findImageUrlByCornerstoneImageId(cornerstoneImageId, true)\n\t\t\t\t// Fetch the image from the local server or Annex\n\t\t\t\tlet image = await this.fetchImageUrl(cornerstoneImageId, imageUrl)\n\t\t\t\t// If invalid image was fetched from local server, fall back to Annex\n\t\t\t\tif (!validateImageArrayBuffer(image) && imageUrl !== annexImageUrl) {\n\t\t\t\t\timage = await this.fetchImageUrl(cornerstoneImageId, annexImageUrl)\n\t\t\t\t}\n\t\t\t\treturn image\n\t\t\t}\n\n\t\t\t// For now, we just use the cache for Omni Desktop\n\t\t\tif (omniDesktop.isConnected) {\n\t\t\t\treturn await localImageCache.loadImage(data, fetchImageFromLocalServerOrAnnex)\n\t\t\t} else {\n\t\t\t\treturn await fetchImageFromLocalServerOrAnnex()\n\t\t\t}\n\t\t} finally {\n\t\t\tthis.activeFetches--\n\t\t\tthis.startFetching()\n\t\t}\n\t}\n\n\tasync fetchImageUrl(cornerstoneImageId: string, url: string, retryCount = 0): Promise {\n\t\ttry {\n\t\t\tconst arrayBuffer = await FetchAxios.get(url, {\n\t\t\t\tcancelToken: new axios.CancelToken(cancel => {\n\t\t\t\t\tthis.fetchCancelers.set(cornerstoneImageId, cancel)\n\t\t\t\t}),\n\t\t\t}).then(r => {\n\t\t\t\treturn r.data\n\t\t\t})\n\t\t\treturn arrayBuffer\n\t\t} catch (err) {\n\t\t\tif (retryCount < 4) {\n\t\t\t\treturn this.fetchImageUrl(cornerstoneImageId, url, ++retryCount)\n\t\t\t} else {\n\t\t\t\tthrow new Error('The requested image failed to download.')\n\t\t\t}\n\t\t} finally {\n\t\t\tthis.fetchCancelers.delete(cornerstoneImageId)\n\t\t}\n\t}\n\n\tasync decodeImage(cornerstoneImageId: string, arrayBuffer: ArrayBuffer): Promise {\n\t\tif (!this.loadImageDeferreds.has(cornerstoneImageId)) return\n\t\tconst startTime = Date.now()\n\t\tlet decoded\n\t\tconst { scheme } = getCornerstoneImageIdParts(cornerstoneImageId)\n\t\tif (scheme === 'dicom') {\n\t\t\tdecoded = await dicomDecoder.decodeDicom(cornerstoneImageId, arrayBuffer)\n\t\t} else {\n\t\t\tdecoded = await decodeJpeg(arrayBuffer)\n\t\t}\n\t\tif (decoded) decoded.decodeTimeInMS = Date.now() - startTime\n\t\treturn decoded\n\t}\n\n\tcreateCornerstoneImage(cornerstoneImageId: string, decoded) {\n\t\tif (!this.loadImageDeferreds.has(cornerstoneImageId)) return\n\t\tconst { imageId: asterisImageId, frameIndex } = getCornerstoneImageIdParts(cornerstoneImageId)\n\t\tconst imagePixelModule = csMetaData.get('imagePixelModule', asterisImageId) || {}\n\t\tconst imagePlaneModule = csMetaData.get('imagePlaneModule', asterisImageId) || {}\n\t\tconst voiLutModule = csMetaData.get('voiLutModule', asterisImageId) || {}\n\t\tconst modalityLutModule = csMetaData.get('modalityLutModule', asterisImageId) || {}\n\t\tconst sopCommonModule = csMetaData.get('sopCommonModule', asterisImageId) || {}\n\t\tconst photometricInterpretation = decoded.photometricInterpretation || imagePixelModule.photometricInterpretation\n\t\t// https://groups.google.com/forum/#!searchin/comp.protocols.dicom/Modality$20LUT$20XA/comp.protocols.dicom/UBxhOZ2anJ0/D0R_QP8V2wIJ\n\t\tconst isModalityLutForDisplay =\n\t\t\tsopCommonModule.sopClassUID !== '1.2.840.10008.5.1.4.1.1.12.1' &&\n\t\t\tsopCommonModule.sopClassUID !== '1.2.840.10008.5.1.4.1.1.12.2.1'\n\t\tconst image = {\n\t\t\tgetCanvas: () => jpegCanvas,\n\t\t\tgetImage: decoded.imageElement ? () => decoded.imageElement : undefined,\n\t\t\tgetPixelData: decoded.pixelData ? () => decoded.pixelData : undefined,\n\t\t\timageId: cornerstoneImageId,\n\t\t\tasterisImageId,\n\t\t\tframeIndex,\n\t\t\trender: decoded.render,\n\t\t\trgba: decoded.rgba || false,\n\t\t\trows: decoded.rows || imagePixelModule.rows,\n\t\t\theight: decoded.rows || imagePixelModule.rows,\n\t\t\tcolumns: decoded.columns || imagePixelModule.columns,\n\t\t\twidth: decoded.columns || imagePixelModule.columns,\n\t\t\tcolor: decoded.isColor,\n\t\t\tminPixelValue:\n\t\t\t\tdecoded.minPixelValue != null\n\t\t\t\t\t? decoded.minPixelValue\n\t\t\t\t\t: imagePixelModule.smallestPixelValue != null\n\t\t\t\t\t? imagePixelModule.smallestPixelValue\n\t\t\t\t\t: 0,\n\t\t\tmaxPixelValue:\n\t\t\t\tdecoded.maxPixelValue != null\n\t\t\t\t\t? decoded.maxPixelValue\n\t\t\t\t\t: imagePixelModule.largestPixelValue != null\n\t\t\t\t\t? imagePixelModule.largestPixelValue\n\t\t\t\t\t: 255,\n\t\t\trowPixelSpacing: imagePlaneModule.rowPixelSpacing,\n\t\t\tcolumnPixelSpacing: imagePlaneModule.columnPixelSpacing,\n\t\t\tslope:\n\t\t\t\tdecoded.slope != null\n\t\t\t\t\t? decoded.slope\n\t\t\t\t\t: modalityLutModule.rescaleSlope != null\n\t\t\t\t\t? modalityLutModule.rescaleSlope\n\t\t\t\t\t: 1,\n\t\t\tintercept:\n\t\t\t\tdecoded.intercept != null\n\t\t\t\t\t? decoded.intercept\n\t\t\t\t\t: modalityLutModule.rescaleIntercept != null\n\t\t\t\t\t? modalityLutModule.rescaleIntercept\n\t\t\t\t\t: 0,\n\t\t\tinvert: decoded.invert != null ? decoded.invert : photometricInterpretation === 'MONOCHROME1',\n\t\t\tdicomWindowCenter:\n\t\t\t\tvoiLutModule.windowCenter && voiLutModule.windowCenter[0] != null ? voiLutModule.windowCenter[0] : 128,\n\t\t\twindowCenter:\n\t\t\t\tdecoded.windowCenter != null ? decoded.windowCenter : voiLutModule.windowCenter && voiLutModule.windowCenter[0],\n\t\t\tdicomWindowWidth:\n\t\t\t\tvoiLutModule.windowWidth && voiLutModule.windowWidth[0] != null ? voiLutModule.windowWidth[0] : 255,\n\t\t\twindowWidth:\n\t\t\t\tdecoded.windowWidth != null ? decoded.windowWidth : voiLutModule.windowWidth && voiLutModule.windowWidth[0],\n\t\t\tvoiLUT: voiLutModule.voiLUTSequence && voiLutModule.voiLUTSequence[0],\n\t\t\tmodalityLut:\n\t\t\t\t(isModalityLutForDisplay &&\n\t\t\t\t\tmodalityLutModule.modalityLUTSequence &&\n\t\t\t\t\tmodalityLutModule.modalityLUTSequence[0]) ||\n\t\t\t\tundefined,\n\t\t\tsizeInBytes: decoded.pixelData.buffer.byteLength,\n\t\t\tdecodeTimeInMS: decoded.decodeTimeInMS,\n\t\t\tisDicom: decoded.isDicom || false,\n\t\t\tdecodeValues: {\n\t\t\t\t// used to recalculate image values if metadata is loaded later\n\t\t\t\tminPixelValue: decoded.minPixelValue,\n\t\t\t\tmaxPixelValue: decoded.maxPixelValue,\n\t\t\t\tslope: decoded.slope,\n\t\t\t\tintercept: decoded.intercept,\n\t\t\t\tinvert: decoded.invert,\n\t\t\t\twindowCenter: decoded.windowCenter,\n\t\t\t\twindowWidth: decoded.windowWidth,\n\t\t\t},\n\t\t}\n\n\t\tif (image.windowCenter == null || image.windowWidth == null) {\n\t\t\tconst maxVoi = image.maxPixelValue * image.slope + image.intercept\n\t\t\tconst minVoi = image.minPixelValue * image.slope + image.intercept\n\t\t\timage.windowWidth = maxVoi - minVoi\n\t\t\timage.windowCenter = (maxVoi + minVoi) / 2\n\t\t\timage.dicomWindowCenter = image.windowCenter\n\t\t\timage.dicomWindowWidth = image.windowWidth\n\t\t}\n\n\t\treturn image\n\t}\n}\n\nexport function validateImageArrayBuffer(buffer: ArrayBuffer): Boolean {\n\treturn buffer && buffer.byteLength > MIN_IMAGE_BYTE_LENGTH\n}\n\nlet studiesOpenWhenLastDecached\n\nexport function decacheInactiveStudies() {\n\t// do not attempt to decache again if the studies haven't changed since last attempt\n\tif (isCacheFullOfOpenStudies(true)) return\n\n\tconst allImages = [].concat(...store.getters.allSeries.map(series => series.images))\n\tlet decached = 0\n\tfor (let i = imageCache.cachedImages.length - 1; i >= 0; i--) {\n\t\tif (!imageCache.cachedImages[i].image) continue\n\t\tconst { asterisImageId, imageId: cornerstoneImageId, frameIndex } = imageCache.cachedImages[i].image\n\t\tif (allImages.some(image => image.imageId === asterisImageId)) continue\n\t\timageProgress.delete(asterisImageId + frameIndex)\n\t\timageCache.removeImageLoadObject(cornerstoneImageId)\n\t\tdecached++\n\t}\n\treturn decached\n}\n\nexport function isCacheFullOfOpenStudies(triggeredByCacheFullEvent = false) {\n\tconst studiesOpen = store.state.viewer.studies\n\t\t.map(s => s.studyId)\n\t\t.sort()\n\t\t.join('')\n\tif (studiesOpenWhenLastDecached === studiesOpen) return true\n\tif (triggeredByCacheFullEvent) studiesOpenWhenLastDecached = studiesOpen\n\treturn false\n}\n\nexport function updatePrecachedCornerstoneImage(asterisImageId: string) {\n\t// if an unopened series was prefetched, we need to regenerate the cornerstone image values once the\n\t// actual metadata JSON is loaded\n\tconst cachedImageObjects = imageCache.cachedImages.filter(i => i.image && i.image.asterisImageId === asterisImageId)\n\tif (!cachedImageObjects.length) return\n\tlet i = 0\n\twhile (i < cachedImageObjects.length) {\n\t\tconst { image } = cachedImageObjects[i]\n\t\tconst imagePixelModule = csMetaData.get('imagePixelModule', image.asterisImageId) || {}\n\t\tconst imagePlaneModule = csMetaData.get('imagePlaneModule', image.asterisImageId) || {}\n\t\tconst voiLutModule = csMetaData.get('voiLutModule', image.asterisImageId) || {}\n\t\tconst modalityLutModule = csMetaData.get('modalityLutModule', image.asterisImageId) || {}\n\t\tconst sopCommonModule = csMetaData.get('sopCommonModule', image.asterisImageId) || {}\n\t\tconst photometricInterpretation = image.photometricInterpretation || imagePixelModule.photometricInterpretation\n\t\t// https://groups.google.com/forum/#!searchin/comp.protocols.dicom/Modality$20LUT$20XA/comp.protocols.dicom/UBxhOZ2anJ0/D0R_QP8V2wIJ\n\t\tconst isModalityLutForDisplay =\n\t\t\tsopCommonModule.sopClassUID !== '1.2.840.10008.5.1.4.1.1.12.1' &&\n\t\t\tsopCommonModule.sopClassUID !== '1.2.840.10008.5.1.4.1.1.12.2.1'\n\n\t\timage.rows = image.rows || imagePixelModule.rows\n\t\timage.height = image.rows || imagePixelModule.rows\n\t\timage.columns = image.columns || imagePixelModule.columns\n\t\timage.width = image.columns || imagePixelModule.columns\n\t\timage.minPixelValue =\n\t\t\timage.decodeValues.minPixelValue != null\n\t\t\t\t? image.decodeValues.minPixelValue\n\t\t\t\t: imagePixelModule.smallestPixelValue != null\n\t\t\t\t? imagePixelModule.smallestPixelValue\n\t\t\t\t: 0\n\t\timage.maxPixelValue =\n\t\t\timage.decodeValues.maxPixelValue != null\n\t\t\t\t? image.decodeValues.maxPixelValue\n\t\t\t\t: imagePixelModule.largestPixelValue != null\n\t\t\t\t? imagePixelModule.largestPixelValue\n\t\t\t\t: 255\n\t\timage.rowPixelSpacing = imagePlaneModule.rowPixelSpacing\n\t\timage.columnPixelSpacing = imagePlaneModule.columnPixelSpacing\n\t\timage.slope =\n\t\t\timage.decodeValues.slope != null\n\t\t\t\t? image.decodeValues.slope\n\t\t\t\t: modalityLutModule.rescaleSlope != null\n\t\t\t\t? modalityLutModule.rescaleSlope\n\t\t\t\t: 1\n\t\timage.intercept =\n\t\t\timage.decodeValues.intercept != null\n\t\t\t\t? image.decodeValues.intercept\n\t\t\t\t: modalityLutModule.rescaleIntercept != null\n\t\t\t\t? modalityLutModule.rescaleIntercept\n\t\t\t\t: 0\n\t\timage.invert =\n\t\t\timage.decodeValues.invert != null ? image.decodeValues.invert : photometricInterpretation === 'MONOCHROME1'\n\t\timage.dicomWindowCenter =\n\t\t\tvoiLutModule.windowCenter && voiLutModule.windowCenter[0] != null ? voiLutModule.windowCenter[0] : 128\n\t\timage.windowCenter =\n\t\t\timage.decodeValues.windowCenter != null\n\t\t\t\t? image.decodeValues.windowCenter\n\t\t\t\t: voiLutModule.windowCenter && voiLutModule.windowCenter[0]\n\t\timage.dicomWindowWidth =\n\t\t\tvoiLutModule.windowWidth && voiLutModule.windowWidth[0] != null ? voiLutModule.windowWidth[0] : 255\n\t\timage.windowWidth =\n\t\t\timage.decodeValues.windowWidth != null\n\t\t\t\t? image.decodeValues.windowWidth\n\t\t\t\t: voiLutModule.windowWidth && voiLutModule.windowWidth[0]\n\t\timage.voiLUT = voiLutModule.voiLUTSequence && voiLutModule.voiLUTSequence[0]\n\t\timage.modalityLut =\n\t\t\t(isModalityLutForDisplay && modalityLutModule.modalityLUTSequence && modalityLutModule.modalityLUTSequence[0]) ||\n\t\t\tundefined\n\n\t\tif (image.windowCenter == null || image.windowWidth == null) {\n\t\t\tconst maxVoi = image.maxPixelValue * image.slope + image.intercept\n\t\t\tconst minVoi = image.minPixelValue * image.slope + image.intercept\n\t\t\timage.windowWidth = maxVoi - minVoi\n\t\t\timage.windowCenter = (maxVoi + minVoi) / 2\n\t\t\timage.dicomWindowCenter = image.windowCenter\n\t\t\timage.dicomWindowWidth = image.windowWidth\n\t\t}\n\t\ti++\n\t}\n}\n\nfunction areOpenSeriesFullyLoaded(loadedCornerstoneImageIds: Set) {\n\tconst { visibleCanvases, allSeries } = store.getters\n\tconst openSeries = []\n\tlet i = 0\n\twhile (i < allSeries.length) {\n\t\tconst series = allSeries[i]\n\t\tif (visibleCanvases.some(c => c.seriesId === series.seriesId)) openSeries.push(series)\n\t\ti++\n\t}\n\ti = 0\n\twhile (i < openSeries.length) {\n\t\tconst imageIds = getCornerstoneImageIdsForSeries(openSeries[i], loadedCornerstoneImageIds)\n\t\ti++\n\t\tif (imageIds.some(id => id !== null)) return false\n\t}\n\treturn true\n}\n\nlet queuePrioritizeWorker = new QueuePrioritizeWorker()\n\nfunction getPrefetchQueue(loadedCornerstoneImageIds: Set, scrolledToIndex?: number): Promise {\n\treturn new Promise(resolve => {\n\t\tconst { visibleCanvases, allSeries } = store.getters\n\t\tconst { activeCanvasIndex } = store.state.viewer\n\t\tconst canvases = [visibleCanvases[activeCanvasIndex], ...visibleCanvases.filter((c, i) => i !== activeCanvasIndex)]\n\t\tconst canvasSeriesIds = canvases.map(c => c.seriesId)\n\t\tconst activeImageIndexes = canvases.map((c, i) => getActiveIndex(c, allSeries, i === 0, scrolledToIndex))\n\t\tconst seriesImageIds: Map = new Map()\n\t\tlet i = 0\n\t\twhile (i < allSeries.length) {\n\t\t\tconst series = allSeries[i]\n\t\t\tconst imageIds = getCornerstoneImageIdsForSeries(series, loadedCornerstoneImageIds)\n\t\t\tseriesImageIds.set(series.seriesId, imageIds)\n\t\t\ti++\n\t\t}\n\t\tqueuePrioritizeWorker.onmessage = ({ data }) => resolve(data)\n\t\tqueuePrioritizeWorker.postMessage({\n\t\t\tactiveImageIndexes,\n\t\t\tcanvasSeriesIds,\n\t\t\tseriesImageIds,\n\t\t})\n\t})\n}\n\nfunction getLoadedCornerstoneImageIds() {\n\tconst imageIds: Set = new Set()\n\tlet i = 0\n\twhile (i < imageCache.cachedImages.length) {\n\t\tconst cachedImage = imageCache.cachedImages[i]\n\t\tif (cachedImage.image) imageIds.add(cachedImage.imageId)\n\t\ti++\n\t}\n\treturn imageIds\n}\n\nfunction getActiveIndex(canvas, allSeries, isActiveCanvas, scrolledToIndex) {\n\tif (isActiveCanvas && scrolledToIndex >= 0) return scrolledToIndex\n\t// if canvas is visible, get active index from stack tool state\n\tlet stack\n\tif (canvas.dom && canvas.dom.offsetParent) stack = getToolState(canvas.dom, 'stack')\n\tif (stack && stack.data && stack.data.length) {\n\t\treturn stack.data[0].currentImageIdIndex\n\t}\n\tconst series = allSeries.find(s => s.seriesId === canvas.seriesId)\n\tif (!series) return null\n\treturn series.images.findIndex(i => i.imageId === canvas.asterisImageId)\n}\n\nexport function getCornerstoneImageId(series, image) {\n\tconst isDicom = shouldLoadDicom(series.modality)\n\tconst scheme = isDicom ? 'dicom' : 'jpeg'\n\tconst { clinicCode, endpointBaseUrl } = image.storageLocation || series.storageLocation || {}\n\tconst cornerstoneImageId = `${scheme}:${image.imageId}:${image.frameIndex}:${clinicCode}:${endpointBaseUrl}`\n\treturn cornerstoneImageId\n}\n\nexport function getCornerstoneImageIdsForSeries(series, loadedCornerstoneImageIds): string[] {\n\tconst cornerstoneImageIds = []\n\tlet i = 0\n\twhile (i < series.images.length) {\n\t\tconst image = series.images[i]\n\t\tconst cornerstoneImageId = getCornerstoneImageId(series, image)\n\t\tif (loadedCornerstoneImageIds && loadedCornerstoneImageIds.has(cornerstoneImageId)) cornerstoneImageIds.push(null)\n\t\telse cornerstoneImageIds.push(cornerstoneImageId)\n\t\ti++\n\t}\n\treturn cornerstoneImageIds\n}\n\nfunction findImageUrlByCornerstoneImageId(cornerstoneImageId, annexOnly = false) {\n\tconst { scheme, imageId, frameIndex, clinicCode, endpointBaseUrl } = getCornerstoneImageIdParts(cornerstoneImageId)\n\treturn findImageUrl(\n\t\t{\n\t\t\timageId,\n\t\t\timageType: scheme === 'dicom' ? 'DicomImage' : 'PreviewImage',\n\t\t\tframeIndex,\n\t\t\tstorageLocation: { clinicCode, endpointBaseUrl },\n\t\t},\n\t\tannexOnly\n\t)\n}\n\nexport function getCornerstoneImageIdParts(cornerstoneImageId) {\n\tconst [scheme, imageId, frameIndex, clinicCode, endpointBaseUrl] = cornerstoneImageId.split(':')\n\n\treturn {\n\t\tscheme,\n\t\timageId,\n\t\tframeIndex: parseInt(frameIndex) || 0,\n\t\tclinicCode,\n\t\tendpointBaseUrl,\n\t}\n}\n\nexport function getCornerstoneImageData(cornerstoneImageId: string) {\n\tconst { studies } = store.state.viewer\n\tconst { scheme, imageId, frameIndex } = getCornerstoneImageIdParts(cornerstoneImageId)\n\tlet result = null\n\tstudies.some((study: any) =>\n\t\tstudy.imageData.series.some((series: any) => {\n\t\t\tseries.images.some((image: any) => {\n\t\t\t\tif (image.imageId === imageId && image.frameIndex === frameIndex) {\n\t\t\t\t\tresult = {\n\t\t\t\t\t\tclinicCode: study.clinicCode,\n\t\t\t\t\t\tstudyId: series.studyId,\n\t\t\t\t\t\tstudyUid: study.studyUid,\n\t\t\t\t\t\tseriesId: series.seriesId,\n\t\t\t\t\t\tseriesUid: series.uid,\n\t\t\t\t\t\tscheme,\n\t\t\t\t\t\timageId,\n\t\t\t\t\t\tinstanceUid: image.sopInstanceUid,\n\t\t\t\t\t\tframeIndex: image.frameIndex,\n\t\t\t\t\t}\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t)\n\treturn result\n}\n\n// Map for thumbnail progress bars\nexport const imageProgress: Map = new Map()\nconst onCornerstoneImageLoad = e => {\n\tconst loadedImageId = e && e.detail.image.asterisImageId + e.detail.image.frameIndex\n\timageProgress.set(loadedImageId, 1)\n}\ncsEvents.addEventListener('cornerstoneimageloaded', onCornerstoneImageLoad)\n\nexport const imageLoader = new ImageLoader()\nregisterImageLoader('jpeg', imageLoader.loadImage.bind(imageLoader))\nregisterImageLoader('dicom', imageLoader.loadImage.bind(imageLoader))\n\nwindow.imageLoader = imageLoader\n","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"search-and-filter\"},[_c('div',{staticClass:\"search-filters-tags\"},[_vm._t(\"left\"),(!_vm.keywordSearch)?_c('ast-input',{staticStyle:{\"width\":\"auto\",\"margin-right\":\"4px\",\"min-width\":\"210px\"},attrs:{\"debounce-milliseconds\":500,\"placeholder\":_vm.searchPlaceholder,\"icon\":\"magnify\"},model:{value:(_vm._term),callback:function ($$v) {_vm._term=$$v},expression:\"_term\"}}):_vm._e(),(_vm.keywordSearch)?_c('ast-input',{staticStyle:{\"width\":\"auto\",\"margin-right\":\"4px\",\"min-width\":\"210px\"},attrs:{\"debounce-milliseconds\":500,\"placeholder\":\"Keywords\",\"icon\":\"magnify\"},model:{value:(_vm.keywordString),callback:function ($$v) {_vm.keywordString=$$v},expression:\"keywordString\"}}):_vm._e(),(_vm.mq.small && _vm.showModalityNearSearch && !_vm.showConsignerSelect)?_c('modality-select',{attrs:{\"multiple\":\"\",\"placeholder\":\"Modalities\"},on:{\"input\":function($event){return _vm.$emit('reset-current-page')}},model:{value:(_vm.filter.modalityIds),callback:function ($$v) {_vm.$set(_vm.filter, \"modalityIds\", $$v)},expression:\"filter.modalityIds\"}}):_vm._e(),_vm._t(\"middle\"),_c('button',{staticClass:\"btn\",class:{ 'btn-success': _vm.isModalOpen, 'btn-default': !_vm.isModalOpen },on:{\"click\":function($event){_vm.isModalOpen = !_vm.isModalOpen}}},[_c('svg-icon',{attrs:{\"icon\":\"tune\"}}),_vm._v(\"\\n\\t\\t\\tFilters\\n\\t\\t\")],1),_vm._t(\"tags\",null,{\"filter\":_vm.filter})],2),(_vm.isModalOpen)?_c('modal-wrapper',{staticClass:\"modal-wrapper\",on:{\"hook:mounted\":function($event){_vm.isDrawerOpen = true},\"close\":function($event){_vm.isDrawerOpen = false}}},[_c('transition',{attrs:{\"name\":\"slide-in-left\"},on:{\"leave\":function($event){_vm.isModalOpen = false}}},[(_vm.isDrawerOpen)?_c('div',{staticClass:\"modal-drawer\"},[_c('ast-toolbar',{staticStyle:{\"align-items\":\"center\",\"padding-left\":\"16px\"},attrs:{\"is-primary\":true}},[_c('h3',{staticStyle:{\"font-weight\":\"normal\"}},[_vm._v(\"Filters\")]),_c('toolbar-button',{attrs:{\"icon\":\"close\"},nativeOn:{\"click\":function($event){_vm.isDrawerOpen = false}}})],1),_c('div',{staticClass:\"filters\"},[_vm._t(\"top\",null,{\"filter\":_vm.filter}),_c('div',[_c('label',[_vm._v(_vm._s(_vm.filterDropdownTitle))]),(!_vm.showConsignerSelect)?_c('modality-select',{attrs:{\"multiple\":\"\"},on:{\"input\":function($event){return _vm.$emit('reset-current-page')}},model:{value:(_vm.filter.modalityIds),callback:function ($$v) {_vm.$set(_vm.filter, \"modalityIds\", $$v)},expression:\"filter.modalityIds\"}}):_vm._e(),(_vm.showConsignerSelect)?_c('consigner-select',{attrs:{\"multiple\":\"\"},on:{\"input\":function($event){return _vm.$emit('reset-current-page')}},model:{value:(_vm.filter.consignerIds),callback:function ($$v) {_vm.$set(_vm.filter, \"consignerIds\", $$v)},expression:\"filter.consignerIds\"}}):_vm._e()],1),_vm._t(\"default\",null,{\"filter\":_vm.filter})],2),_c('div',{staticClass:\"drawer-footer\"},[(_vm.showResetButton)?_c('button',{staticClass:\"btn btn-default\",staticStyle:{\"min-width\":\"64px\"},on:{\"click\":function($event){return _vm.$emit('reset')}}},[_c('svg-icon',{attrs:{\"icon\":\"close\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\tReset Filters\\n\\t\\t\\t\\t\\t\")],1):_vm._e(),_c('button',{staticClass:\"btn btn-primary close\",staticStyle:{\"min-width\":\"64px\"},on:{\"click\":function($event){_vm.isDrawerOpen = false}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\tClose\\n\\t\\t\\t\\t\\t\")])])],1):_vm._e()])],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-select',{staticClass:\"consigner-select\",staticStyle:{\"min-width\":\"140px\"},attrs:{\"options\":_vm.options,\"label\":\"name\",\"searchable\":false,\"reduce\":function (o) { return o.id; },\"placeholder\":_vm.placeholder,\"clear-search-on-select\":false,\"multiple\":_vm.multiple,\"dropdown-min-width\":\"300px\",\"clearable\":false},scopedSlots:_vm._u([{key:\"option\",fn:function(consigner){return [_vm._v(\"\\n\\t\\t\"+_vm._s(consigner.name)+\"\\n\\t\\t\"),_c('span',{staticStyle:{\"padding-left\":\"4px\",\"opacity\":\"0.8\",\"font-size\":\"0.9em\"}},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(consigner.description)+\"\\n\\t\\t\")])]}}]),model:{value:(_vm.selection),callback:function ($$v) {_vm.selection=$$v},expression:\"selection\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\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!./ConsignerSelect.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!./ConsignerSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ConsignerSelect.vue?vue&type=template&id=7008c5d6\"\nimport script from \"./ConsignerSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ConsignerSelect.vue?vue&type=script&lang=js\"\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 null,\n null\n \n)\n\nexport default component.exports","\n\n\n\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!./SearchAndFilter.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!./SearchAndFilter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchAndFilter.vue?vue&type=template&id=8b6cd89a\"\nimport script from \"./SearchAndFilter.vue?vue&type=script&lang=js\"\nexport * from \"./SearchAndFilter.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchAndFilter.vue?vue&type=style&index=0&id=8b6cd89a&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","import router from '@router'\nimport store from '@store'\nimport { uploadData } from '@services/uploads'\n\nclass Workflow {\n\tcanGoNext = false\n\tisLoading = false\n\tnextRoute = null\n\tlastRoute = null\n\tconsultantId: string = null\n\tstudyIds: string[]\n\temails = []\n\tsubmitCB: () => Promise\n\n\treset() {\n\t\tthis.consultantId = null\n\t\tthis.studyIds = []\n\t\tthis.emails = []\n\t\tthis.submitCB = undefined\n\t\tthis.lastRoute = null\n\t}\n\n\tget consultants(): IConsultant[] {\n\t\treturn store.state.static.consultants\n\t}\n\n\tget isInProgress(): boolean {\n\t\tif (uploadData.haveUploadsForContext('teleconsultation-request')) return true\n\t\tif (router.currentRoute.path.includes('teleconsultation-request')) {\n\t\t\tconst { query } = router.currentRoute\n\t\t\treturn query && query.consultantId && !!query.studyId\n\t\t}\n\t\treturn false\n\t}\n\n\tget consultant(): IConsultant {\n\t\treturn this.consultants.find(c => c.id === this.consultantId)\n\t}\n}\n\nexport const workflow = new Workflow()\nexport default workflow\n// @ts-ignore\nwindow.workflow = workflow\n","import api from '@/services/api'\nimport store from '@/store'\nimport { user } from '@services/user'\n\n let clinicCode = ''\n async function enableAntechNotification(){\n console.log('Enabling Antech Notification for:', clinicCode)\n await api.user.setClinicFeatureFlag(clinicCode, 'StudyList', 'EnableAntechNotification', true)\n console.log('Antech Notification Enabled!')\n }\n async function disableAntechNotification(){\n console.log('Disabling Antech Notification for:', clinicCode)\n await api.user.setClinicFeatureFlag(clinicCode, 'StudyList', 'EnableAntechNotification', false)\n console.log('Antech Notification Disabled!')\n }\n function registerAntechNotificationMethods(){\n if (!user || !user.claims || !user.claims.activeClinicCode) {\n console.warn('Cannot register Antech notification methods: User claims not available')\n return\n }\n if (!window.isAntechNotificationRegistered) {\n const userClaims = user.claims\n clinicCode = userClaims.activeClinicCode\n console.log('Clinic Code:', clinicCode)\n window.enableAntechNotification = enableAntechNotification\n window.disableAntechNotification = disableAntechNotification\n window.isAntechNotificationRegistered = true\n console.log('Antech Notification Methods Registered!')\n // This needs to be removed after VetsChoice transition is complete\n\t\t // - Temporary Code Starts Here\n\t\t registerAntechNotificationMethods()\n\t\t // - Temporary Code Ends Here\n }\n }\n\n export { registerAntechNotificationMethods }\n","import store from '@store'\nimport windows from '@store/modules/windows'\nimport { isSharedWorkerSupported,createMessageSender } from '@/utils/sharedWorkers'\n\nlet w\nlet isWorkerEnabled = false\nconst initializeInactivityTimeout = () => {\n\tif (!window.config.enableInactivityTimeout) return\n\tconsole.log('Inactivity Timeout feature enabled')\n\tisWorkerEnabled = isSharedWorkerSupported()\n\tif (!window.config.enableInactivityTimeout || !isWorkerEnabled) return\n\tw = new SharedWorker('timerWebWorker.js', 'asteris-inactivity-logout-worker').port\n\tw.start()\n\tw.onmessage = function(event) {\n\t\tif (event.data === 'logout') {\n\t\t\tstopInactivityTimeout()\n\t\t\twindow.localStorage.setItem('inactivityTimeout', true)\n\t\t\t// force to close all windows before logging out\n\t\t\tstore.commit('CLOSE_ALL_STUDY_WINDOWS', windows.state.openedStudyWindowReferences)\n\t\t\tstore.dispatch('logOut')\n\t\t}\n\t}\n\n\twindow.onblur = resetTimer\n\twindow.onfocus = resetTimer\n\twindow.onclick = resetTimer\n\tdocument.addEventListener('mousemove', resetTimer, false)\n\tdocument.addEventListener('mousedown', resetTimer, false)\n\tdocument.addEventListener('keypress', resetTimer, false)\n\tdocument.addEventListener('touchmove', resetTimer, false)\n\tdocument.addEventListener('onscroll', resetTimer, false)\n\tstartTimer()\n}\n\nfunction startTimer() {\n\tconst msg = {\n\t\ttype: 'enableTimeout',\n\t\ttimer: parseInt(window.config.inactivityTimeout),\n\t}\n\tcreateMessageSender(w, isWorkerEnabled)(msg)\n}\n\nfunction resetTimer() {\n\tconst msg = {\n\t\ttype: 'resetTimeout',\n\t\ttimer: parseInt(window.config.inactivityTimeout),\n\t}\n\tcreateMessageSender(w, isWorkerEnabled)(msg)\n\tstartTimer()\n}\nconst stopInactivityTimeout = () => {\n\tif (!window.config.enableInactivityTimeout || !isWorkerEnabled) return\n\tconst msg = {\n\t\ttype: 'disableTimeout',\n\t\ttimer: parseInt(window.config.inactivityTimeout),\n\t}\n\tcreateMessageSender(w, isWorkerEnabled)(msg)\n\twindow.onblur = null\n\twindow.onfocus = null\n\twindow.onclick = null\n\tdocument.removeEventListener('mousemove', resetTimer, false)\n\tdocument.removeEventListener('mousedown', resetTimer, false)\n\tdocument.removeEventListener('keypress', resetTimer, false)\n\tdocument.removeEventListener('touchmove', resetTimer, false)\n\tdocument.removeEventListener('onscroll', resetTimer, false)\n\tw.close()\n}\n\nexport { initializeInactivityTimeout, stopInactivityTimeout }\n","import store from '@store'\nimport { registerAntechNotificationMethods } from '@utils/clinicFeatureFlags'\nimport { initializeInactivityTimeout } from '@utils/inactivityTimeout'\nimport listToArray from '@utils/listToArray'\n\nlet redirectToAfterLogin // the route the user tried to reach before logging in\n\nconst redirectToLogin = next => {\n\tstore.dispatch('addNotification', { message: 'Please log in.' })\n\tnext('/')\n}\nconst ifAuthenticated = (to, from, next) => {\n\tif (store.getters.isAuthenticated) {\n\t\twindow.localStorage.removeItem('inactivityTimeout')\n\t\tinitializeInactivityTimeout()\n\t\t// This needs to be removed after VetsChoice transition is complete\n\t\t// - Temporary Code Starts Here\n\t\tregisterAntechNotificationMethods()\n\t\t// - Temporary Code Ends Here\n\t\treturn next()\n\t}\n\tif (to.meta.canRedirectToAfterLogin) redirectToAfterLogin = to\n\tredirectToLogin(next)\n}\nconst ifAuthenticatedAsRepository = (to, from, next) => {\n\tif (!store.getters.isAuthenticated) return redirectToLogin(next)\n\tif (!store.getters.isRepositoryUser) {\n\t\tstore.dispatch('addNotification', {\n\t\t\tmessage: 'You must be logged in with your Repository credentials.',\n\t\t\tnotificationType: 'error',\n\t\t})\n\t\treturn next(from.name ? false : '/') // Go to login if navigation did not come from another route in the app.\n\t}\n\tinitializeInactivityTimeout()\n\tnext()\n}\n\nconst ifAuthenticatedWithSaleSubmissionPermissions = (to, from, next) => {\n\tconst guidRegex = new RegExp('^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$')\n\tif (!store.getters.isAuthenticated) return redirectToLogin(next)\n\tif (!store.getters.isSaleSubmissionUser) {\n\t\tstore.dispatch('addNotification', {\n\t\t\tmessage: 'Your Account does not have Repository Submission credentials.',\n\t\t\tnotificationType: 'error',\n\t\t})\n\t\treturn next(from.name ? false : '/') // Go to login if navigation did not come from another route in the app.\n\t} else {\n\t\tif (to.params.id && !guidRegex.test(to.params.id)) {\n\t\t\tstore.dispatch('addNotification', {\n\t\t\t\tmessage: 'Your Review ID is not valid!',\n\t\t\t\tnotificationType: 'error',\n\t\t\t})\n\t\t\treturn next(from.name ? false : '/')\n\t\t}\n\t}\n\tinitializeInactivityTimeout()\n\tnext()\n}\n\nfunction addConsultantIfLoggedIn(to, from, next) {\n\tif (!store.getters.isAuthenticated) return next()\n\tnext(from && from.name ? false : '/') // if app already open, keep current route; otherwise, open default route\n\tstore.dispatch('addConsultant', {\n\t\tconsultantId: to.params.consultantId,\n\t})\n}\n\nconst getStudyIds = route => listToArray(route.query.studyId)\n\nexport const statisticsUserRoutes = {\n\trepository: ['statistics-summaries', 'statistics-viewing-log', 'statistics-submissions'],\n\tconsigner: ['statistics-summaries', 'statistics-viewing-log', 'statistics-consigner-clients'],\n\tuser: ['statistics-viewing-log'],\n\tclient: ['statistics-summaries', 'statistics-viewing-log'],\n}\nconst ifValidStatisticsUser = (to, from, next) => {\n\t// @HACK: Force ARQANA to correct DNS\n\tconst isArqana = to.params.clinicCode && to.params.clinicCode.toUpperCase() === 'ARQANA'\n\tconst isCosAnnex =\n\t\t(window.location.hostname &&\n\t\t\twindow.location.hostname.toUpperCase().includes('keystone.asteris.com'.toUpperCase())) ||\n\t\twindow.location.hostname.toUpperCase().includes('keystone-beta.asteris.com'.toUpperCase())\n\n\tif (isCosAnnex && isArqana) {\n\t\twindow.location = `https://keystone-eu.asteris.com/#${to.fullPath}`\n\t}\n\n\tconst hasMatchingUserType = to.params.userType in statisticsUserRoutes\n\tif (!hasMatchingUserType) return next('/')\n\tconst hasValidRouteForUserType = statisticsUserRoutes[to.params.userType].includes(to.name)\n\tif (hasValidRouteForUserType) return next()\n\t// If no valid route is specified, go to the default route for the user type\n\tconst defaultRoute = statisticsUserRoutes[to.params.userType][0]\n\tnext({ name: defaultRoute, params: to.params, query: to.query })\n}\n\nconst restartRequestOnReload = (to, from, next) => {\n\t// if user reloads/lands at this step in teleconsultation request, make them start workflow over\n\tif (!from.name) return next('/teleconsultation-request')\n\tnext()\n}\n\n// https://router.vuejs.org/en/advanced/lazy-loading.html\n// https://webpack.js.org/guides/code-splitting/\n// https://vuejsdevelopers.com/2017/07/08/vue-js-3-ways-code-splitting-webpack/\n// Consigner Study\nconst ConsignerStudyList = () =>\n\timport(/* webpackChunkName: \"consignerStudyList\" */ '@router/views/ConsignerStudyList.vue')\nconst ConsignerStudyViewer = () =>\n\timport(/* webpackChunkName: \"consignerStudyViewer\" */ '@router/views/ConsignerStudyViewer')\n// Consultation Request\nconst ConsultationRequestViewer = () =>\n\timport(/* webpackChunkName: \"consultationRequestViewer\" */ '@router/views/ConsultationRequestViewer')\nconst ListLayout = () => import(/* webpackChunkName: \"listLayout\" */ '@router/layouts/List')\n// Login\nconst Login = () => import(/* webpackChunkName: \"login\" */ '@router/views/Login.vue')\n// Statistics\nconst Statistics = () => import(/* webpackChunkName: \"statistics\" */ '@router/views/Statistics.vue')\nconst StatisticsConsignerClients = () =>\n\timport(/* webpackChunkName: \"statisticsConsignerClients\" */ '@router/views/StatisticsConsignerClients.vue')\nconst StatisticsSubmissions = () =>\n\timport(/* webpackChunkName: \"statisticsSubmissions\" */ '@router/views/StatisticsSubmissions.vue')\nconst StatisticsSummaries = () =>\n\timport(/* webpackChunkName: \"statisticsSummaries\" */ '@router/views/StatisticsSummaries.vue')\nconst StatisticsViewingLog = () =>\n\timport(/* webpackChunkName: \"statisticsViewingLog\" */ '@router/views/StatisticsViewingLog.vue')\n// Study\nconst StudyList = () => import(/* webpackChunkName: \"studyList\" */ '@router/views/StudyList.vue')\nconst SignalPET = () => import(/* webpackChunkName: \"studyList\" */ '@router/views/SignalPET.vue')\nconst SwitchingClinics = () => import(/* webpackChunkName: \"studyList\" */ '@router/views/SwitchingClinics.vue')\nconst Schedule = () => import(/* webpackChunkName: \"studyList\" */ '@router/views/Schedule.vue')\nconst ReleaseNotesFull = () => import(/* webpackChunkName: \"studyList\" */ '@router/views/ReleaseNotesFull.vue')\nconst StdReport = () => import(/* webpackChunkName: \"teleconsultationDetail\" */ '@router/views/StdReport.vue')\n// Teleconsultation\nconst TeleconsultationDetail = () =>\n\timport(/* webpackChunkName: \"teleconsultationDetail\" */ '@router/views/TeleconsultationDetail.vue')\nconst SaleSubmission = () => import(/* webpackChunkName: \"SaleSubmission\" */ '@router/views/SaleSubmission.vue')\nconst ImageOnlyReport = () => import(/* webpackChunkName: \"SaleSubmission\" */ '@router/views/ImageOnlyReport.vue')\nconst TeleconsultationList = () =>\n\timport(/* webpackChunkName: \"teleconsultationList\" */ '@router/views/TeleconsultationList.vue')\nconst TeleconsultationRequest = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequest\" */ '@router/views/TeleconsultationRequest.vue')\nconst TeleconsultationRequestConsultants = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestConsultants\" */ '@router/views/TeleconsultationRequest/Consultants.vue')\nconst TeleconsultationRequestSaleHip = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestSaleHip\" */ '@router/views/TeleconsultationRequest/SaleHip.vue')\nconst TeleconsultationRequestUploadConsultation = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestUploadConsultation\" */ '@router/views/TeleconsultationRequest/UploadConsultation.vue')\nconst TeleconsultationImageUploads = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestUploadConsultation\" */ '@router/views/ImageUploads.vue')\nconst TeleconsultationRequestUploadSale = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestUploadSale\" */ '@router/views/TeleconsultationRequest/UploadSale.vue')\nconst TeleconsultationRequestMatchImages = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestMatchImages\" */ '@router/views/TeleconsultationRequest/MatchImages.vue')\nconst TeleconsultationRequestSubmitImageOnly = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestSubmitImageOnly\" */ '@router/views/TeleconsultationRequest/SubmitImageOnly.vue')\nconst TeleconsultationRequestSubmitReport = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestSubmitReport\" */ '@router/views/TeleconsultationRequest/SubmitReport.vue')\nconst TeleconsultationRequestSubmitSale = () =>\n\timport(/* webpackChunkName: \"teleconsultationsRequestSubmitSale\" */ '@router/views/TeleconsultationRequest/SubmitSale.vue')\nconst PostDicomServiceInstall = () =>\n\timport(/* webpackChunkName: \"PostDicomServiceInstall\" */ '@router/views/PostDicomServiceInstall.vue')\nconst ReportEditor = () => import(/* webpackChunkName: \"ReportEditor\" */ '@/reporting/ReportEditor.vue')\nconst Viewer = () => import(/* webpackChunkName: \"Viewer\" */ '@router/views/StudyAndReportViewer.vue')\nconst ReportDeepSearch = () => import(/* webpackChunkName: \"ReportDeepSearch\" */ '@router/views/ReportDeepSearch.vue')\n// Repository Review\nconst RepositoryReviewList = () =>\n\timport(/* webpackChunkName: \"repositoryReviewList\" */ '@router/views/RepositoryReview/ReviewList.vue')\nconst RepositoryReviewDetails = () =>\n\timport(/* webpackChunkName: \"repositoryReviewDetails\" */ '@router/views/RepositoryReview/ReviewDetails.vue')\nconst RepositoryReviewViewer = () =>\n\timport(/* webpackChunkName: \"repositoryReviewViewer\" */ '@router/views/RepositoryReview/ReviewViewer.vue')\nconst RepositoryReviewDashboard = () =>\n\timport(/* webpackChunkName: \"repositoryReviewDashboard\" */ '@router/views/RepositoryReview/ReviewDashboard.vue')\n\nexport default [\n\t{\n\t\tpath: '/',\n\t\tredirect() {\n\t\t\tif (!store.getters.isAuthenticated) return '/login'\n\t\t\tif (redirectToAfterLogin) {\n\t\t\t\tconst route = redirectToAfterLogin\n\t\t\t\tredirectToAfterLogin = null\n\t\t\t\treturn route\n\t\t\t}\n\t\t\tif (store.getters.isCommunityUser) {\n\t\t\t\treturn '/teleconsultation-request'\n\t\t\t}\n\t\t\tif (store.getters.isRepositoryUser) return '/consigner-studies'\n\t\t\tif (store.getters.isConsultantUser) return '/teleconsultations'\n\t\t\treturn '/studies'\n\t\t},\n\t},\n\t{\n\t\tpath: '/login',\n\t\tname: 'login',\n\t\tcomponent: Login,\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t},\n\t{\n\t\tpath: '/login/forgot-password',\n\t\tname: 'forgot-password',\n\t\tcomponent: Login,\n\t\tprops: { isForgotPasswordFormVisible: true },\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t},\n\t{\n\t\tpath: '/reset-password',\n\t\tname: 'reset-password',\n\t\tcomponent: Login,\n\t\tprops: route => ({\n\t\t\tisResetPasswordFormVisible: true,\n\t\t\tusername: route.query.user,\n\t\t\ttoken: route.query.token,\n\t\t\tenforcePasswordComplexity: !!route.query.epc,\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t},\n\t{\n\t\tpath: '/community',\n\t\tname: 'community-login',\n\t\tcomponent: Login,\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t},\n\t{\n\t\tpath: '/community/forgot-password',\n\t\tname: 'community-forgot-password',\n\t\tcomponent: Login,\n\t\tprops: { isForgotPasswordFormVisible: true },\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t},\n\t{\n\t\tpath: '/community/:consultantId/register/:themeCompany?',\n\t\tname: 'community-register',\n\t\tcomponent: Login,\n\t\tprops: route => ({\n\t\t\tconsultantId: route.params.consultantId,\n\t\t\tisRegistrationFormVisible: true,\n\t\t\tthemeCompany: route.params.themeCompany,\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t\tbeforeEnter: addConsultantIfLoggedIn,\n\t},\n\t{\n\t\tpath: '/community/:consultantId/forgot-password/:themeCompany?',\n\t\tname: 'community-forgot-password',\n\t\tcomponent: Login,\n\t\tprops: route => ({\n\t\t\tisForgotPasswordFormVisible: true,\n\t\t\tthemeCompany: route.params.themeCompany,\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t},\n\t{\n\t\tpath: '/community/:consultantId/:themeCompany?',\n\t\tname: 'community-referral-login',\n\t\tcomponent: Login,\n\t\tprops: true,\n\t\tmeta: {\n\t\t\ttitle: 'Asteris',\n\t\t\tthemeSettings: { mode: 'light' },\n\t\t},\n\t\tbeforeEnter: addConsultantIfLoggedIn,\n\t},\n\t{\n\t\tpath: '',\n\t\tcomponent: ListLayout,\n\t\tchildren: [\n\t\t\t// Repository Review / Hagyard\n\t\t\t{\n\t\t\t\tpath: '/repository-review',\n\t\t\t\tname: 'repository-review',\n\t\t\t\tcomponent: RepositoryReviewList,\n\t\t\t\tmeta: { title: 'Repository Submission Review' },\n\t\t\t\tbeforeEnter: ifAuthenticatedWithSaleSubmissionPermissions,\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: '/repository-review/dashboard',\n\t\t\t\tname: 'repository-submission-dashboard',\n\t\t\t\tcomponent: RepositoryReviewDashboard,\n\t\t\t\tmeta: { title: 'Repository Submission Dashboard' },\n\t\t\t\tbeforeEnter: ifAuthenticatedWithSaleSubmissionPermissions,\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: '/repository-review/:id',\n\t\t\t\tname: 'repository-review-details',\n\t\t\t\tcomponent: RepositoryReviewDetails,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Repository Submission Details',\n\t\t\t\t\tshowBack: true,\n\t\t\t\t\thideMenu: true,\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticatedWithSaleSubmissionPermissions,\n\t\t\t},\n\t\t\t// Consigner Study List\n\t\t\t{\n\t\t\t\tpath: '/consigner-studies',\n\t\t\t\tname: 'consigner-studies',\n\t\t\t\tcomponent: ConsignerStudyList,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Repository Studies',\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticatedAsRepository,\n\t\t\t},\n\t\t\t// Image Only Report\n\t\t\t{\n\t\t\t\tpath: '/image-only-report/:id',\n\t\t\t\tname: 'image-only-report',\n\t\t\t\tcomponent: ImageOnlyReport,\n\t\t\t\tprops: route => ({ id: route.params.id, viewOnOpen: route.params.viewOnOpen }),\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Image Submission',\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Report Deep Search (\"Teleconsultation\" Reports)\n\t\t\t{\n\t\t\t\tpath: '/teleconsultations/deep-search',\n\t\t\t\tname: 'teleconsultations-deep-search',\n\t\t\t\tcomponent: ReportDeepSearch,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Teleconsultation',\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Report Deep Search (\"Standard\" Reports)\n\t\t\t{\n\t\t\t\tpath: '/reports/deep-search',\n\t\t\t\tname: 'reports-deep-search',\n\t\t\t\tcomponent: ReportDeepSearch,\n\t\t\t\tprops: { isTeleconsultation: false },\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Reports',\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Sale Submission\n\t\t\t{\n\t\t\t\tpath: '/sale-submissions/:id',\n\t\t\t\tname: 'sale-submission',\n\t\t\t\tcomponent: SaleSubmission,\n\t\t\t\tprops: route => ({ id: route.params.id, viewOnOpen: route.params.viewOnOpen }),\n\t\t\t\tmeta: {\n\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\ttitle: 'Sale Submission',\n\t\t\t\t\tshowBack: true,\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Schedule\n\t\t\t{\n\t\t\t\tpath: '/schedule',\n\t\t\t\tname: 'schedule',\n\t\t\t\tcomponent: Schedule,\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Schedule',\n\t\t\t\t},\n\t\t\t},\n\t\t\t// Study List\n\t\t\t{\n\t\t\t\tpath: '/studies',\n\t\t\t\tname: 'studies',\n\t\t\t\tcomponents: {\n\t\t\t\t\tdefault: StudyList,\n\t\t\t\t},\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Studies',\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Standard Report\n\t\t\t{\n\t\t\t\tpath: '/report/:id',\n\t\t\t\tname: 'standard-report',\n\t\t\t\tcomponent: StdReport,\n\t\t\t\tprops: route => ({\n\t\t\t\t\tid: route.params.id,\n\t\t\t\t\tkeywords: route.params.keywords,\n\t\t\t\t\tviewOnOpen: route.params.viewOnOpen,\n\t\t\t\t}),\n\t\t\t\tmeta: {\n\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\tshowBack: true,\n\t\t\t\t\ttitle: 'Report',\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Teleconsultation List\n\t\t\t{\n\t\t\t\tpath: '/teleconsultations',\n\t\t\t\tname: 'teleconsultations',\n\t\t\t\tcomponent: TeleconsultationList,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Teleconsultation',\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Teleconsultation Detail\n\t\t\t{\n\t\t\t\tpath: '/teleconsultations/:id',\n\t\t\t\tname: 'teleconsultation',\n\t\t\t\tcomponent: TeleconsultationDetail,\n\t\t\t\tprops: route => ({\n\t\t\t\t\tid: route.params.id,\n\t\t\t\t\tkeywords: route.params.keywords,\n\t\t\t\t\tviewOnOpen: route.params.viewOnOpen,\n\t\t\t\t}),\n\t\t\t\tmeta: {\n\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\ttitle: 'Teleconsultation Report',\n\t\t\t\t\tshowBack: true,\n\t\t\t\t},\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t},\n\t\t\t// Teleconsultation Image Uploads\n\t\t\t{\n\t\t\t\tpath: '/teleconsultation-image-uploads',\n\t\t\t\tname: 'teleconsultation-image-uploads',\n\t\t\t\tcomponent: TeleconsultationImageUploads,\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Image Uploads',\n\t\t\t\t},\n\t\t\t},\n\t\t\t// Teleconsultation Request\n\t\t\t{\n\t\t\t\tpath: '/teleconsultation-request',\n\t\t\t\tcomponent: TeleconsultationRequest,\n\t\t\t\tbeforeEnter: ifAuthenticated,\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: '',\n\t\t\t\t\t\tname: 'request-consultants',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestConsultants,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t\tshowBack: !store.getters.isCommunityUser,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'sale-hip',\n\t\t\t\t\t\tname: 'request-sale-hip',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestSaleHip,\n\t\t\t\t\t\tbeforeEnter: restartRequestOnReload,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tconsultantId: route.query.consultantId,\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'upload-consultation',\n\t\t\t\t\t\tname: 'request-upload-consultation',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestUploadConsultation,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tconsultantId: route.query.consultantId,\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\tshowServicePromo: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'upload-sale',\n\t\t\t\t\t\tname: 'request-upload-sale',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestUploadSale,\n\t\t\t\t\t\tbeforeEnter: restartRequestOnReload,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tconsultantId: route.query.consultantId,\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\tshowServicePromo: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'match-images',\n\t\t\t\t\t\tname: 'request-match-images',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestMatchImages,\n\t\t\t\t\t\tbeforeEnter: restartRequestOnReload,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tconsultantId: route.query.consultantId,\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'submit-image-only',\n\t\t\t\t\t\tname: 'request-submit-image-only',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestSubmitImageOnly,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tconsultantId: route.query.consultantId,\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'submit-report',\n\t\t\t\t\t\tname: 'request-submit-report',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestSubmitReport,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tconsultantId: route.query.consultantId,\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'submit-sale',\n\t\t\t\t\t\tname: 'request-submit-sale',\n\t\t\t\t\t\tcomponent: TeleconsultationRequestSubmitSale,\n\t\t\t\t\t\tbeforeEnter: restartRequestOnReload,\n\t\t\t\t\t\tprops: route => ({\n\t\t\t\t\t\t\tconsultantId: route.query.consultantId,\n\t\t\t\t\t\t\tids: getStudyIds(route),\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\tdisableSwitchClinics: true,\n\t\t\t\t\t\t\ttitle: 'Request Teleconsultation',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: '/signalpet/:clinicCode/:studyId',\n\t\tname: 'signalpet',\n\t\tcomponent: SignalPET,\n\t\tmeta: {\n\t\t\ttitle: 'SignalPET',\n\t\t},\n\t},\n\t{\n\t\tpath: '/switching-clinics',\n\t\tname: 'switching-clinics',\n\t\tcomponent: SwitchingClinics,\n\t},\n\t{\n\t\tpath: '/release-notes',\n\t\tname: 'release-notes',\n\t\tcomponent: ReleaseNotesFull,\n\t\tmeta: {\n\t\t\ttitle: 'Release Notes',\n\t\t},\n\t},\n\t{\n\t\tpath: '/viewer',\n\t\tname: 'viewer',\n\t\tcomponent: Viewer,\n\t\tprops: route => ({\n\t\t\tclinicCode: route.query.clinicCode,\n\t\t\tstudyIds: listToArray(route.query.studyIds),\n\t\t\treportIds: listToArray(route.query.reportIds),\n\t\t\tinitialSeriesId: route.query.sid,\n\t\t\tinitialImageId: route.query.imageId,\n\t\t\tinitialSeriesIds: listToArray(route.query.sids, null),\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Viewer',\n\t\t\tallowHangingProtocol: true,\n\t\t\tcanRedirectToAfterLogin: true,\n\t\t},\n\t\tbeforeEnter: ifAuthenticated,\n\t},\n\t{\n\t\tpath: '/viewer/studies/:id?',\n\t\tname: 'studies-viewer',\n\t\tredirect: to => {\n\t\t\tconst { params, query } = to\n\t\t\tquery.studyIds = params.id\n\t\t\treturn { name: 'viewer', query, replace: true }\n\t\t},\n\t},\n\t{\n\t\tpath: '/viewer/:clinicCode/report/:id',\n\t\tname: 'report-viewer',\n\t\tredirect: to => {\n\t\t\tconst { params, query } = to\n\t\t\tquery.clinicCode = query.clinicCode || params.clinicCode\n\t\t\tquery.reportIds = params.id\n\t\t\treturn { name: 'viewer', query, replace: true }\n\t\t},\n\t},\n\t{\n\t\tpath: '/partner/viewer/:clinicCode/:id',\n\t\tname: 'partner-study-viewer',\n\t\tcomponent: Viewer,\n\t\tprops: route => ({\n\t\t\t// combine studyIds from route and query params (adding a related study results in query param)\n\t\t\tstudyIds: [...new Set(listToArray([route.params.id, route.query.studyIds].join(',')))],\n\t\t\tclinicCode: route.params.clinicCode,\n\t\t\tinitialSeriesId: route.query.sid,\n\t\t\tinitialImageId: route.query.imageId,\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Study',\n\t\t},\n\t\tbeforeEnter(to, from, next) {\n\t\t\t// if authenticated, redirect to full viewer (unless user opted for partner viewer)\n\t\t\tconst optedForPartnerViewer = to.query && to.query.optedForPartnerViewer\n\t\t\tif (store.getters.isAuthenticated && !optedForPartnerViewer) {\n\t\t\t\tnext({\n\t\t\t\t\tname: 'studies-viewer',\n\t\t\t\t\tparams: to.params,\n\t\t\t\t\tquery: { clinicCode: to.params.clinicCode },\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tnext()\n\t\t\t}\n\t\t},\n\t},\n\t// ezyVet Legacy Route (redirects to other partner study viewer route)\n\t{\n\t\tpath: '/partner/viewer/:clinicCode',\n\t\tredirect: to => {\n\t\t\tconst { params, query } = to\n\t\t\tto.params.id = to.query.studyId\n\t\t\tdelete to.query.studyId\n\t\t\treturn { name: 'partner-study-viewer', params, query, replace: true }\n\t\t},\n\t},\n\t{\n\t\tpath: '/viewer/consigner-studies/:id',\n\t\tname: 'consigner-studies-viewer',\n\t\tcomponent: ConsignerStudyViewer,\n\t\tprops: route => ({\n\t\t\tid: route.params.id,\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Repository Study',\n\t\t},\n\t\tbeforeEnter(to, from, next) {\n\t\t\tif (!store.state.repository.viewingId) return next('/consigner-studies')\n\t\t\tifAuthenticatedAsRepository(to, from, next)\n\t\t},\n\t},\n\t{\n\t\tpath: '/share/:clinicCode/share-request/:shareRequestId/share-recipient/:shareRecipientId',\n\t\tname: 'email-share-consultant',\n\t\tcomponent: ConsultationRequestViewer,\n\t\tprops: route => ({\n\t\t\tid: route.params.shareRequestId,\n\t\t\tclinicCode: route.params.clinicCode,\n\t\t\trecipientId: route.params.shareRecipientId,\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Your Medical Images',\n\t\t},\n\t},\n\t{\n\t\tpath: '/dicomservice/:token',\n\t\tname: 'dicom-service',\n\t\tcomponent: PostDicomServiceInstall,\n\t},\n\t{\n\t\tpath: '/statistics/:clinicCode/:userType/:id/',\n\t\tcomponent: Statistics,\n\t\tbeforeEnter: ifValidStatisticsUser,\n\t\tprops: true,\n\t\tchildren: [\n\t\t\t{\n\t\t\t\tpath: 'summaries',\n\t\t\t\tname: 'statistics-summaries',\n\t\t\t\tcomponent: StatisticsSummaries,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Summary - Repository Statistics',\n\t\t\t\t\tthemeSettings: { mode: 'light' },\n\t\t\t\t},\n\t\t\t\tprops: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: 'viewing-log',\n\t\t\t\tname: 'statistics-viewing-log',\n\t\t\t\tcomponent: StatisticsViewingLog,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Full Viewing Log - Repository Statistics',\n\t\t\t\t\tthemeSettings: { mode: 'light' },\n\t\t\t\t},\n\t\t\t\tprops: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: 'submissions',\n\t\t\t\tname: 'statistics-submissions',\n\t\t\t\tcomponent: StatisticsSubmissions,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Submission Report - Repository Statistics',\n\t\t\t\t\tthemeSettings: { mode: 'light' },\n\t\t\t\t},\n\t\t\t\tprops: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: 'consigner-clients',\n\t\t\t\tname: 'statistics-consigner-clients',\n\t\t\t\tcomponent: StatisticsConsignerClients,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Clients - Repository Statistics',\n\t\t\t\t\tthemeSettings: { mode: 'light' },\n\t\t\t\t},\n\t\t\t\tprops: true,\n\t\t\t},\n\t\t\t{\n\t\t\t\tpath: 'consigner-clients/manage',\n\t\t\t\tname: 'statistics-consigner-clients-manage',\n\t\t\t\tcomponent: StatisticsConsignerClients,\n\t\t\t\tmeta: {\n\t\t\t\t\ttitle: 'Clients - Repository Statistics',\n\t\t\t\t\tthemeSettings: { mode: 'light' },\n\t\t\t\t},\n\t\t\t\tprops: route => ({\n\t\t\t\t\t...route.params,\n\t\t\t\t\tshowClientManager: true,\n\t\t\t\t}),\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\tpath: '/reporting/:setId',\n\t\tname: 'report-editor',\n\t\tcomponent: ReportEditor,\n\t\tprops: route => ({\n\t\t\tsetId: route.params.setId,\n\t\t}),\n\t\tbeforeEnter: ifAuthenticated,\n\t},\n\t// Hagyard Detail pages\n\t{\n\t\tpath: '/viewer/review-studies/:id',\n\t\tname: 'repository-studies-viewer',\n\t\tcomponent: RepositoryReviewViewer,\n\t\tprops: route => ({\n\t\t\tid: route.params.id,\n\t\t}),\n\t\tmeta: {\n\t\t\ttitle: 'Repository Study',\n\t\t},\n\t},\n\t{\n\t\tpath: '*',\n\t\tbeforeEnter(to, from, next) {\n\t\t\tstore.dispatch('addNotification', {\n\t\t\t\tmessage: `\n\t\t\t\t

The requested location was not found:

\n\t\t\t\t${to.path}`,\n\t\t\t\tnotificationType: 'error',\n\t\t\t})\n\t\t\t// if coming from an Omni route, cancel navigation. Otherwise, redirect to home\n\t\t\tnext(from && from.name ? false : '/')\n\t\t},\n\t},\n\t// optionally include icon tester page\n\t...(process.env.NODE_ENV !== 'production'\n\t\t? [\n\t\t\t\t{\n\t\t\t\t\tpath: '/icons',\n\t\t\t\t\tcomponent: () => import(/* webpackChunkName: \"IconTester\" */ '@/router/views/IconTester'),\n\t\t\t\t},\n\t\t ]\n\t\t: []),\n]\n","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!./OnBehalfOf.vue?vue&type=style&index=0&id=ff754bd6&prod&lang=scss&scoped=true\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","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!./PatientInfo.vue?vue&type=style&index=0&id=5b862bbf&prod&lang=scss\"","import { API } from '@services/api'\nimport { showAlert } from '@dialogs/MessageDlg.vue'\nimport { eventBus } from './eventBus'\n\nconst DICOM_STATUS_TIME = 1000 * 2\nconst MAX_UPDATES = 500\n\nclass DicomSendItem {\n\tconstructor(item) {\n\t\tthis.queueItemId = item.queueItemId\n\t\tthis.status = item.status\n\t\tthis.imagesSent = item.imagesSent\n\t\tthis.totalImages = item.totalImages\n\t\tthis.dateQueued = item.dateQueued\n\t\tthis.logs = item.logs\n\t\tthis.studyId = item.studyId\n\t\tthis.studyDate = item.studyDate\n\t\tthis.patientId = item.patientId\n\t\tthis.patientName = item.patientName\n\t\tthis.modality = item.modality\n\t}\n\n\tget isError() {\n\t\treturn this.status === 4 || this.status === 5\n\t}\n\n\tget isSuccess() {\n\t\treturn this.status === 3\n\t}\n\n\tget canCancel() {\n\t\treturn this.status <= 2\n\t}\n\n\tget statusName() {\n\t\tswitch (this.status) {\n\t\t\tcase 1:\n\t\t\t\treturn 'Queued'\n\t\t\tcase 2:\n\t\t\t\treturn 'Sending'\n\t\t\tcase 3:\n\t\t\t\treturn 'Successful'\n\t\t\tcase 4:\n\t\t\t\treturn 'Error'\n\t\t\tcase 5:\n\t\t\t\treturn 'Cancelled'\n\t\t}\n\t}\n}\n\nclass DicomSend {\n\tconstructor() {\n\t\tthis.items = [] // DicomSendItem[]\n\t\tthis.interval = 0\n\n\t\teventBus.on('login', this.getUserItems.bind(this))\n\t\tthis.updateCount = 0\n\t\tthis.forceUpdates = false\n\t}\n\n\tget studyItems() {\n\t\treturn this.items.filter(i => i.studyId)\n\t}\n\n\tget sentCount() {\n\t\tlet count = 0\n\t\tthis.items.forEach(s => {\n\t\t\tcount += s.imagesSent\n\t\t})\n\t\treturn count\n\t}\n\n\tget pendingCount() {\n\t\treturn this.items.filter(i => i.status <= 2).length\n\t}\n\n\tget totalImages() {\n\t\tlet count = 0\n\t\tthis.items.forEach(s => {\n\t\t\tcount += s.totalImages\n\t\t})\n\t\treturn count\n\t}\n\n\tenabledUpdates(force = false) {\n\t\tthis.forceUpdates = force\n\n\t\tif (this.pendingCount > 0 && this.interval === 0) {\n\t\t\tthis.interval = setInterval(this.updateList.bind(this), DICOM_STATUS_TIME)\n\t\t}\n\t\tthis.updateCount = 0\n\t}\n\n\tasync updateList() {\n\t\tthis.updateCount++\n\n\t\tfor (let i = this.items.length - 1; i >= 0; i--) {\n\t\t\tlet item = this.items[i]\n\t\t\tif (item.status > 2) continue\n\n\t\t\tlet info = await this.getSendItemInfo(item.queueItemId)\n\t\t\tif (info) {\n\t\t\t\tObject.assign(item, info)\n\t\t\t} else {\n\t\t\t\tthis.items.splice(i, 1)\n\t\t\t}\n\t\t}\n\n\t\tlet stopUpdates = this.pendingCount === 0\n\t\tif (this.updateCount > MAX_UPDATES && !this.forceUpdates) {\n\t\t\tstopUpdates = true\n\t\t}\n\n\t\tif (stopUpdates) {\n\t\t\tclearInterval(this.interval)\n\t\t\tthis.interval = 0\n\t\t\tthis.updateCount = 0\n\t\t}\n\t}\n\n\tvalidateDevice(device) {\n\t\tfunction validateAeTitle(str) {\n\t\t\treturn /^[^\\\\]{1,16}$/.test(str)\n\t\t}\n\n\t\tlet errors = []\n\n\t\tif (device.description !== undefined && !device.description) {\n\t\t\terrors.push('Required Description')\n\t\t}\n\n\t\tif (device.aeTitle) {\n\t\t\tif (!validateAeTitle(device.aeTitle)) {\n\t\t\t\terrors.push('AE Title must be 1-16 characters without backslashes')\n\t\t\t}\n\t\t} else {\n\t\t\terrors.push('Required AE Title')\n\t\t}\n\n\t\tif (device.userAeTitle && !validateAeTitle(device.userAeTitle)) {\n\t\t\terrors.push('User AE Title must be 1-16 characters without backslashes')\n\t\t}\n\n\t\tif (!device.port > 0) {\n\t\t\terrors.push('Required Hostname')\n\t\t}\n\n\t\tif (!device.hostname) {\n\t\t\terrors.push('Required Port number')\n\t\t}\n\n\t\tif (errors.length > 0) {\n\t\t\tshowAlert(errors.join('. '))\n\t\t}\n\t\treturn errors.length === 0\n\t}\n\n\tgetDevices() {\n\t\treturn API.get(`/dicomsend/devices`).then(r => r.data)\n\t}\n\n\tsaveDevice(device) {\n\t\treturn API.post(`/dicomsend/device`, device)\n\t}\n\n\tdeleteDevice(device) {\n\t\treturn API.delete(`/dicomsend/device/${device.id}`)\n\t}\n\n\tsendImages(device, studyId, series, images) {\n\t\treturn API.post(`/dicomsend/send-images`, { device, studyId, series, images }).then(r => {\n\t\t\tthis.getUserItems()\n\t\t\treturn r.data\n\t\t})\n\t}\n\n\tsendEcho(device) {\n\t\treturn API.post(`/dicomsend/echo`, device).then(r => {\n\t\t\tthis.getUserItems()\n\t\t\treturn r.data.queueItemId\n\t\t})\n\t}\n\n\tgetSendItemInfo(queueItemId) {\n\t\treturn API.get(`/dicomsend/info/${queueItemId}`).then(r => r.data)\n\t}\n\n\tgetUserItems() {\n\t\treturn API.get(`/dicomsend/user-items`).then(r => {\n\t\t\tthis.items = []\n\t\t\tr.data.forEach(i => {\n\t\t\t\tthis.items.push(new DicomSendItem(i))\n\t\t\t})\n\n\t\t\tthis.enabledUpdates()\n\t\t\treturn this.items\n\t\t})\n\t}\n\n\tcancelItem(queueItemId) {\n\t\treturn API.get(`/dicomsend/cancel/${queueItemId}`).then(r => this.updateList())\n\t}\n}\n\nexport const dicomSend = new DicomSend()\nwindow.dicomSend = dicomSend\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.cell.widgets.length === 0 && _vm.cell.editorMode)?_c('div',{staticClass:\"editor-placeholder\"},[_c('svg-icon',{staticClass:\"is-warning\",attrs:{\"icon\":\"exclamation-triangle\",\"inline\":\"\",\"fixed\":\"\"}}),_vm._v(\"\\n\\t\\tNo forms are available for this selector. Use the\\n\\t\\t\"),_c('strong',{staticStyle:{\"font-size\":\"0.9em\"}},[_vm._v(\"Add New Form\")]),_vm._v(\" button in the properties pane to add\\n\\t\\tone.\\n\\t\")],1):(_vm.canSelect)?_c('div',{staticStyle:{\"margin-bottom\":\"16px\"}},[_c('div',{staticStyle:{\"font-style\":\"italic\"}},[_vm._v(\"\\n\\t\\t\\tPlease select a response type.\\n\\t\\t\")]),(_vm.canSelect)?_c('v-select',{staticStyle:{\"width\":\"auto\",\"margin\":\"8px 0\"},attrs:{\"options\":_vm.cell.widgets,\"clearable\":false,\"label\":\"name\",\"reduce\":function (o) { return o.name; },\"tabindex\":_vm.cell.template.editorMode ? -1 : 0},nativeOn:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.setSubLayout($event)}},model:{value:(_vm.selectedTemplate),callback:function ($$v) {_vm.selectedTemplate=$$v},expression:\"selectedTemplate\"}}):_vm._e(),_c('button',{staticClass:\"btn btn-primary\",attrs:{\"disabled\":!_vm.selectedTemplate},on:{\"click\":function($event){return _vm.setSubLayout()}}},[_vm._v(\"\\n\\t\\t\\tUse the selected type\\n\\t\\t\")])],1):(_vm.canShowResponse && _vm.cell.subLayouts.length)?_c('div',_vm._l((_vm.cell.subLayouts),function(layout,index){return _c('layout',{key:index,attrs:{\"layout\":layout}})}),1):_c('div',{staticStyle:{\"font-style\":\"italic\"}},[_vm._v(\"\\n\\t\\tNo response has been received yet.\\n\\t\")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Cell } from '../classes'\nimport { showConfirm } from '@dialogs/ConfirmDlg.vue'\n\nexport default {\n\tname: 'ResponseSelector',\n\tprops: ['cell'],\n\tdata() {\n\t\treturn {\n\t\t\tselectedTemplate: null,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcanShowResponse() {\n\t\t\tif (this.cell.template.editorMode) return true\n\t\t\telse return this.cell.report.canViewResponse || this.cell.report.canRespond\n\t\t},\n\t\tcanSelect() {\n\t\t\tif (this.cell.value) return false\n\t\t\tlet canRespond = this.cell.report && this.cell.report.canRespond\n\t\t\treturn !this.cell.value && (canRespond || this.cell.editorMode)\n\t\t},\n\t},\n\twatch: {\n\t\t'cell.report.canRespond': {\n\t\t\thandler(canRespond) {\n\t\t\t\tthis.cell.props.required = canRespond\n\t\t\t\tthis.cell.subLayouts.forEach(l => {\n\t\t\t\t\tl.readOnly = !canRespond\n\t\t\t\t})\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t\t'cell.widgets': {\n\t\t\thandler(widgets) {\n\t\t\t\tif (widgets.length === 1) this.cell.value = widgets[0].name\n\t\t\t\telse if (this.cell.editorMode) {\n\t\t\t\t\tthis.cell.value = null\n\t\t\t\t\tthis.cell.subLayouts = []\n\t\t\t\t}\n\t\t\t\tthis.setSubLayout()\n\t\t\t},\n\t\t\timmediate: true,\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.setSubLayout()\n\t},\n\tmethods: {\n\t\tasync setSubLayout() {\n\t\t\tif (!this.selectedTemplate && !this.cell.value) return\n\t\t\tif (!this.cell.value) {\n\t\t\t\tthis.cell.value = this.selectedTemplate\n\t\t\t}\n\n\t\t\tlet cell = this.cell\n\n\t\t\tif (\n\t\t\t\tcell.subLayout &&\n\t\t\t\tcell.subLayout.name !== cell.value &&\n\t\t\t\t!cell.editorMode &&\n\t\t\t\tcell.widgets.length > 1\n\t\t\t) {\n\t\t\t\tlet msg = 'Are you sure you want to change the response type?'\n\t\t\t\tlet confirmed = await showConfirm(msg)\n\t\t\t\tif (!confirmed) {\n\t\t\t\t\tcell.value = cell.subLayout.name // restore previous selector value\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet report = cell.report\n\t\t\tlet layout = cell.layout.template.getLayout(cell.value)\n\t\t\tif (layout) {\n\t\t\t\tcell.subLayouts = []\n\t\t\t\tlet sub = layout.createInstance()\n\t\t\t\tsub.readOnly = report && !report.canRespond\n\t\t\t\tsub.forcePath = layout.name\n\t\t\t\tcell.addSubLayout(sub)\n\t\t\t\tif (cell.report) cell.report.validate()\n\t\t\t}\n\t\t},\n\t},\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponseSelector.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResponseSelector.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ResponseSelector.vue?vue&type=template&id=11581983\"\nimport script from \"./ResponseSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./ResponseSelector.vue?vue&type=script&lang=ts\"\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 null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"loading-fade\",\"appear\":\"\"}},[(_vm.isLoading)?_c('div',{class:[\"loading-spinner\", { 'is-small': _vm.isSmall }],style:(_vm.alignStyle)},[_c('svg-icon',{attrs:{\"icon\":\"spinner\",\"pulse\":\"\",\"fixed\":\"\"}}),_c('span',[_vm._v(\"Loading...\")])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./LoadingSpinner.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!./LoadingSpinner.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoadingSpinner.vue?vue&type=template&id=df0f793e&scoped=true\"\nimport script from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingSpinner.vue?vue&type=script&lang=js\"\nimport style0 from \"./LoadingSpinner.vue?vue&type=style&index=0&id=df0f793e&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 \"df0f793e\",\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","import { downloadFile, API, Annex } from '@services/api'\nimport { eventBus } from '@services/eventBus'\nimport { userData } from '@services/userData'\n\nlet dicomServiceRefreshInterval = null\nlet localServiceStatusInterval = null\nconst NO_SERVICE_INTERVAL_MS = 10 * 60 * 1000\nconst HAS_SERVICE_INTERVAL_MS = 30 * 1000\n\ninterface IDicomService {\n\tid: string\n\tuserId: string\n\tdicomPort: number\n\tdicomFolder: string\n\tdicomAeTitle: string\n\thostIPAddress: string\n\thostName: string\n\twebServerPort: number\n\tautoRoutingJson: string\n\tisActive: boolean\n\tlastCheckIn: number\n\tregToken: string\n\tversion: string\n\tdisabled: boolean\n\tclinicCode: string\n\tusername: string\n\tstatus: string\n\tcheckinMS: number\n\tpending: boolean\n\trecentErrors: any[]\n}\n\ninterface IDicomServiceStatus {\n\tid: string\n\tstudies: IDicomServiceStudy[]\n\tpaused: boolean\n}\n\ninterface IDicomServiceQueueOptions {\n\tstudyUidPriorities: string[]\n\tpaused: boolean\n}\n\ninterface IDicomServiceRegInfo {\n\tipAddress: string\n\taeTitle: string\n\tdicomPort: number\n\tdicomFolder: string\n\thostName:string\n}\n\nconst hostname = window.ElectronInterface?.hostname || window.config.hostname\n\ninterface IDicomServiceStudy {\n\tstudyUid: string\n\tpatientId: string\n\tpatientName: string\n\tstudyDate: string\n\tmodality: string\n\tpendingImages: number\n\ttotalImages: number\n\tpendingAutoRoutes: {[key:string]:number}\n}\n\nclass DicomServiceData {\n\tdicomServices: IDicomService[] = []\n\tisLocalServicePaused = false\n\tlocalStudies: Map = new Map()\n\tfirstStatusPromise: Promise = Promise.resolve()\n\n\tconstructor() {\n\t\teventBus.on('login', async () => {\n\t\t\tthis.firstStatusPromise = this.getServices().then(() => {\n\t\t\t\tthis.startServicePolling()\n\t\t\t\treturn this.getLocalStatus()\n\t\t\t})\n\t\t})\n\t\teventBus.on('logout', this.stopServicePolling)\n\t\tlocalServiceStatusInterval = setInterval(this.getLocalStatus.bind(this), 5000)\n\t}\n\n\tget localService(): IDicomService {\n\t\tif (!hostname) return null\n\t\treturn this.dicomServices.find(d => d.hostName.toLowerCase() === hostname.toLowerCase().replace('.local', ''))\n\t}\n\n\tget localServiceUrl(): string {\n\t\tif (!this.localService) return null\n\t\treturn `http://localhost:${this.localService.webServerPort}`\n\t}\n\n\tget localServiceHasErrors(): boolean {\n\t\tif (!this.localService || !this.localService.recentErrors.length) return false\n\t\treturn this.localService.recentErrors.some(e => this.localStudies.has(e.studyUid))\n\t}\n\n\tstartServicePolling() {\n\t\tclearInterval(dicomServiceRefreshInterval)\n\t\tconst intervalDuration = this.dicomServices.length ? HAS_SERVICE_INTERVAL_MS : NO_SERVICE_INTERVAL_MS\n\t\tdicomServiceRefreshInterval = setInterval(() => this.getServices(), intervalDuration)\n\t}\n\n\tstopServicePolling() {\n\t\tclearInterval(dicomServiceRefreshInterval)\n\t\tclearInterval(localServiceStatusInterval)\n\t\tthis.dicomServices = []\n\t}\n\n\tget activeDicomServiceHosts() {\n\t\treturn this.dicomServices.filter(s => s.isActive && !s.disabled).map(s => s.hostName)\n\t}\n\n\tget hasLocalConnection(){\n\t\treturn this.localService && this.localService.checkinMS < 90000\n\t}\n\n\tgetStudyId(studyUid) {\n\t\treturn API.get(`/dicomservice/studyid/${studyUid}`).then(r => r.data)\n\t}\n\n\tsearchDicomTags(term) {\n\t\treturn API.get(`/dicomservice/dicom-tags?search=${term}`).then(r => r.data)\n\t}\n\n\tgetPlatform() {\n\t\tlet result = 'unknown'\n\t\tlet isWindows = navigator.userAgent.includes('Windows')\n\t\tlet isOSX = navigator.userAgent.includes('OS X')\n\t\tlet x64 = navigator.userAgent.includes('x64')\n\t\tif (isWindows) {\n\t\t\tresult = x64 ? 'win-x64' : 'win-x86'\n\t\t} else if (isOSX) {\n\t\t\tresult = 'osx-x64'\n\t\t}\n\t\treturn result\n\t}\n\n\tdownloadPackage(platform, token) {\n\t\tlet url = `${Annex.defaults.baseURL}/dicomservice/download-package?platform=${platform}&token=${token}`\n\t\tdownloadFile(url)\n\t}\n\n\tcreateService(dicomAeTitle, dicomPort, dicomFolder): Promise {\n\t\treturn Annex.post('/dicomservice/create-service', {\n\t\t\tuserId: userData.claims.isCommunityUser ? userData.claims.userId : null,\n\t\t\tclinicCode: userData.claims.activeClinicCode,\n\t\t\tdicomAeTitle,\n\t\t\tdicomPort,\n\t\t\tdicomFolder,\n\t\t}).then(r => r.data)\n\t}\n\n\tgetRegInfo(regToken):Promise {\n\t\treturn Annex.get(`/dicomservice/reg-info?regToken=${regToken}`).then(r => r.data)\n\t}\n\n\tgetLogs({ serviceId, studyId, logType, offset, max, modalities, studyDateStart, studyDateEnd, searchTerm }) {\n\t\treturn API.post('/dicomservice/logs', {\n\t\t\t\tserviceId,\n\t\t\t\tstudyId,\n\t\t\t\tlogType,\n\t\t\t\toffset,\n\t\t\t\tmax,\n\t\t\t\tmodalities,\n\t\t\t\tstudyDateStart,\n\t\t\t\tstudyDateEnd,\n\t\t\t\tsearchTerm,\n\t\t\t}).then(r => r.data)\n\t}\n\n\tasync getServices(): Promise {\n\t\tconst hadDicomServices = !!this.dicomServices.length\n\t\ttry {\n\t\t\tthis.dicomServices = (await API.get(`/dicomservice/services?hostname=${hostname}`)).data\n\t\t\tthis.dicomServices.sort((a,b)=> a.checkinMS - b.checkinMS)\n\n\t\t\tif (!hadDicomServices && this.dicomServices.length) this.startServicePolling()\n\t\t\treturn this.dicomServices\n\t\t} catch (err) {\n\t\t\tthis.stopServicePolling()\n\t\t}\n\t}\n\n\tasync saveService(service: IDicomService) {\n\t\tawait API.post('/dicomservice/save-service', service)\n\t\tif (this.hasLocalConnection) {\n\t\t\treturn fetch(`${this.localServiceUrl}/home/configure`, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\tbody: JSON.stringify(service),\n\t\t\t})\n\t\t}\n\t}\n\n\tasync getLocalStatus(): Promise {\n\t\tif (!this.hasLocalConnection) {\n\t\t\tthis.localStudies = new Map()\n\t\t\treturn null\n\t\t}\n\n\t\tlet status: IDicomServiceStatus = await fetch(`${this.localServiceUrl}/home/status`).then(r => r.json())\n\t\tconst localStudies = new Map()\n\t\tthis.isLocalServicePaused = status.paused\n\t\tstatus.studies.forEach(s => {\n\t\t\tlocalStudies.set(s.studyUid, s)\n\t\t})\n\t\tthis.localStudies = localStudies\n\t\treturn status\n\t}\n\n\tsetServiceQueueOptions(options: IDicomServiceQueueOptions): Promise {\n\t\treturn fetch(`${this.localServiceUrl}/home/set-queue-options`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify(options),\n\t\t})\n\t}\n\n\tdownloadLocalImage(imageUid: string, scheme: string): Promise {\n\t\treturn fetch(`${this.localServiceUrl}/home/image/${imageUid}?scheme=${scheme}`).then(r => {\n\t\t\tif (!r.ok) throw new Error('failed to download image')\n\t\t\telse return r.arrayBuffer()\n\t\t})\n\t}\n\n\tsendEcho(device:IDicomDevice){\n\t\tlet body = {\n\t\t\tId: device.id,\n\t\t\thostname: device.hostname,\n\t\t\tlocalAeTitle: device.userAeTitle,\n\t\t\tremoteAeTitle: device.aeTitle,\n\t\t\tport: device.port\n\t\t}\n\t\treturn fetch(`${this.localServiceUrl}/home/echo`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify(body),\n\t\t}).then(r => r.json()).catch(r => false)\n\t}\n}\n\nexport const dicomServiceData = (window.omni.dicomServiceData = new DicomServiceData())\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-group\"},[(_vm.showLabels)?_c('label',{class:{ required: _vm.required }},[_vm._v(\"Birth Date\")]):_vm._e(),_c('datepicker',{attrs:{\"disabled\":_vm.disabled},model:{value:(_vm.birthDate),callback:function ($$v) {_vm.birthDate=$$v},expression:\"birthDate\"}})],1),_c('div',{staticClass:\"form-group\",staticStyle:{\"margin-top\":\"8px\"}},[(_vm.showLabels)?_c('label',[_vm._v(\"Age\")]):_vm._e(),_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('div',{staticClass:\"age-input\"},[_c('input',{staticClass:\"input nospinner\",attrs:{\"disabled\":_vm.disabled,\"type\":\"number\",\"min\":\"0\"},domProps:{\"value\":_vm._f(\"formatNumber\")(_vm.age.years || null)},on:{\"input\":_vm.onInput,\"blur\":function($event){return _vm.calculateBirthdate({ years: $event.target.value })}}}),_c('label',[_vm._v(\"years\")])]),_c('div',{staticClass:\"age-input\"},[_c('input',{staticClass:\"input nospinner\",attrs:{\"disabled\":_vm.disabled,\"type\":\"number\",\"min\":\"0\"},domProps:{\"value\":_vm._f(\"formatNumber\")(_vm.age.months || null)},on:{\"input\":_vm.onInput,\"blur\":function($event){return _vm.calculateBirthdate({ months: $event.target.value })}}}),_c('label',[_vm._v(\"months\")])]),_c('div',{staticClass:\"age-input\"},[_c('input',{staticClass:\"input nospinner\",attrs:{\"disabled\":_vm.disabled,\"type\":\"number\",\"min\":\"0\",\"step\":\"1\"},domProps:{\"value\":_vm._f(\"formatNumber\")(_vm.age.days || null)},on:{\"input\":_vm.onInput,\"blur\":function($event){return _vm.calculateBirthdate({ days: $event.target.value })}}}),_c('label',[_vm._v(\"days\")])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./BirthdateAgeInputs.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!./BirthdateAgeInputs.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BirthdateAgeInputs.vue?vue&type=template&id=1a59116b&scoped=true\"\nimport script from \"./BirthdateAgeInputs.vue?vue&type=script&lang=js\"\nexport * from \"./BirthdateAgeInputs.vue?vue&type=script&lang=js\"\nimport style0 from \"./BirthdateAgeInputs.vue?vue&type=style&index=0&id=1a59116b&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 \"1a59116b\",\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","// @ts-ignore\nimport DicomParseWorker from 'worker-loader!./parse.worker.js' // eslint-disable-line\n\nconst maxWorkers = navigator.hardwareConcurrency || 4\nconst workerPool = new Array(maxWorkers)\nconst parseQueue = []\n\nfunction runWorker(i) {\n\tlet worker = workerPool[i]\n\tlet item = null\n\n\tfunction start() {\n\t\tif (parseQueue.length > 0) {\n\t\t\titem = parseQueue.shift()\n\t\t\tworker.postMessage(item.file)\n\t\t} else {\n\t\t\tworker.terminate()\n\t\t\tworkerPool[i] = undefined\n\t\t}\n\t}\n\n\tif (!worker) {\n\t\tworkerPool[i] = worker = new DicomParseWorker()\n\t\tworker.onmessage = ({ data }) => {\n\t\t\titem.resolve(data)\n\t\t\tstart()\n\t\t}\n\t}\n\n\tstart()\n}\n\nfunction startWorkers() {\n\tfor (let i = 0; i < workerPool.length; i++) {\n\t\tif (parseQueue.length === 0) break\n\t\tif (!workerPool[i]) {\n\t\t\trunWorker(i)\n\t\t}\n\t}\n}\n\nexport default function parseDicom(file) {\n\treturn new Promise(resolve => {\n\t\tparseQueue.push({ file, resolve })\n\t\tstartWorkers()\n\t})\n}\n","import { showAlert } from '@dialogs/MessageDlg.vue'\nimport { API, serializeDate } from '@services/api'\nimport store from '@store'\nimport { hasImageExtension, hasNonImageExtension, hasValidAttachmentExtension } from '../upload/extensions.js'\nimport parseDicom from '../upload/parseDicoms'\n\n// @ts-ignore\nimport UploadWorker from 'worker-loader!../upload/upload.worker.js' // eslint-disable-line\n\nclass UploadBatch {\n\tbatchId?: string\n\tcontext: string\n\tstudyInstanceUid?: string\n\tstudy: IUploadStudy\n\titems: Upload[] = []\n}\n\nclass Upload {\n\tcontext: string = null\n\tfile: File = null\n\tsingleFileBatch = false\n\tisFailedUpload = false\n\tisUploaded = false\n\tisUploading = false\n\n\tisInvalid = false\n\tisAttachment = false\n\tisDicom = false\n\tisImage = false\n\texcludeJpegs = false\n\n\tattempts = 0\n\tbatchId?: string = null\n\tsopInstanceUid?: string = null\n\tstudyInstanceUid?: string = null\n\n\tdescription: string = null\n\timageViewId: string = null\n\n\t// view/rename form data\n\tparseWarning: string = null\n\tmodality: string = null\n\tpatientId: string = null\n\tpatientName: string = null\n\townerName: string = null\n\tstudyDescription: string = null\n\taccessionNumber: string = null\n\tinstitutionName: string = null\n\treferringPhysiciansName: string = null\n\tstudyDateTime: Date = null\n\tacquisitionDate: Date = null\n\treportTemplateImageViewId: string = null\n\n\t_dicomParsePromise: Promise\n\n\tget pendingBatch(): boolean {\n\t\treturn !this.batchId && !this.isInvalid\n\t}\n\n\tget pendingUpload(): boolean {\n\t\treturn this.batchId && !this.isUploading && !this.isUploaded && !this.isFailedUpload\n\t}\n\n\tget key(): string {\n\t\tif (this.singleFileBatch) {\n\t\t\treturn Math.random().toString()\n\t\t} else {\n\t\t\treturn `${this.context}_${this.studyInstanceUid || 'DEFAULT'}`\n\t\t}\n\t}\n\n\tparse(treatImageAsAttachment = false) {\n\t\tif (this._dicomParsePromise) {\n\t\t\treturn this._dicomParsePromise\n\t\t}\n\n\t\tif (hasImageExtension(this.file)) {\n\t\t\tif (treatImageAsAttachment) {\n\t\t\t\tthis.isAttachment = true\n\t\t\t} else {\n\t\t\t\tthis.isImage = true\n\t\t\t}\n\t\t\tthis._dicomParsePromise = Promise.resolve()\n\t\t} else if (hasNonImageExtension(this.file)) {\n\t\t\tthis.isAttachment = true\n\t\t\tthis._dicomParsePromise = Promise.resolve()\n\t\t} else {\n\t\t\tthis._dicomParsePromise = parseDicom(this.file).then(info => {\n\t\t\t\tif (info.isDicom) {\n\t\t\t\t\tthis.isDicom = true\n\t\t\t\t\tthis.parseWarning = info.parseWarning\n\t\t\t\t\tthis.modality = info.modality\n\t\t\t\t\tthis.patientId = info.patientId\n\t\t\t\t\tthis.patientName = info.patientName\n\t\t\t\t\tthis.ownerName = info.ownerName\n\t\t\t\t\tthis.studyDescription = info.studyDescription\n\t\t\t\t\tthis.accessionNumber = info.accessionNumber\n\t\t\t\t\tthis.institutionName = info.institutionName\n\t\t\t\t\tthis.referringPhysiciansName = info.referringPhysiciansName\n\t\t\t\t\tthis.sopInstanceUid = info.sopInstanceUid\n\t\t\t\t\tthis.studyDateTime = info.studyDateTime\n\t\t\t\t\tthis.acquisitionDate = info.acquisitionDate\n\t\t\t\t\tthis.studyInstanceUid = info.studyInstanceUid\n\t\t\t\t} else {\n\t\t\t\t\tthis.isAttachment = true\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\treturn this._dicomParsePromise\n\t}\n}\n\ninterface IQueueRequest {\n\tcontext: string\n\tfiles: File[]\n\n\tstudyInstanceUid?: string\n\tdescription?: string\n\timageViewId?: string\n\treportTemplateImageViewId?: string\n\n\tallowImages?: boolean\n\tallowAttachments?: boolean\n\tallowDicoms?: boolean\n}\n\ninterface IStopUploadOptions {\n\tcontext?: string\n\tsopInstanceUid?: string\n\tbatchId?: string\n}\n\ninterface IUploadState {\n\tsopInstanceUid?: string\n\tisUploading?: boolean\n\tisUploaded?: boolean\n\tisFailedUpload?: boolean\n}\n\nconst maxImagesPerStudy = 100\nconst maxWorkers = navigator.hardwareConcurrency || 4\nconst workerPool: UploadWorker[] = new Array(maxWorkers)\nlet uploadQueue: Upload[] = []\n\nclass UploadData {\n\tMAX_ATTACHMENT_SPACE = 1024 * 1024 * 512 // study attachments cannot exceed 512MB total\n\tMAX_FREE_ATTACHMENT_SPACE = 1024 * 1024 * 10 // a fee is charged once study attachments exceed 10MB\n\n\texcludedFiles: Upload[] = []\n\tuploads: Upload[] = []\n\n\tgetPendingUploads(context?: string): Upload[] {\n\t\treturn this.uploads.filter(u => u.pendingBatch && (!context || u.context === context))\n\t}\n\n\thaveUploadsForContext(context: string) {\n\t\treturn this.uploads.some(upload => upload.context === context)\n\t}\n\n\tisUploading(context?: string) {\n\t\tconst uploads = this.uploads.filter(upload => !context || upload.context === context)\n\t\tif (uploads.some(upload => upload.isUploading)) return true\n\t\tconst isPending = upload => !upload.isFailedUpload && !upload.isUploading && !upload.isUploaded\n\t\treturn uploads.some(isPending)\n\t}\n\n\tisUploadError(context: string) {\n\t\tconst uploads = this.uploads.filter(upload => !context || upload.context === context)\n\t\treturn uploads.some(upload => upload.isFailedUpload)\n\t}\n\n\tuploadPercent(context: string) {\n\t\tconst uploads = this.uploads.filter(upload => !context || upload.context === context)\n\t\tconst done = uploads.filter(upload => upload.isUploaded).length\n\t\tconst didNotFail = upload => !upload.isFailedUpload\n\t\tconst total = uploads.filter(didNotFail).length\n\t\treturn Math.floor((done / total) * 100)\n\t}\n\n\tCANCEL_UPLOAD(sopInstanceUid: string, file?: File) {\n\t\tif (sopInstanceUid) {\n\t\t\tthis.uploads = this.uploads.filter(upload => upload.sopInstanceUid !== sopInstanceUid)\n\t\t}\n\t\tif (file) {\n\t\t\tthis.uploads = this.uploads.filter(upload => upload.file !== file)\n\t\t}\n\t}\n\n\tCANCEL_PENDING_UPLOADS(context?: string) {\n\t\tconst isNotPending = upload => {\n\t\t\tconst isDifferentContext = context && upload.context !== context\n\t\t\treturn isDifferentContext || upload.sopInstanceUid\n\t\t}\n\t\tthis.uploads = this.uploads.filter(isNotPending)\n\t}\n\n\tCLEAR_UPLOAD_EXCLUDED_FILES(context?: string) {\n\t\tif (!context) this.excludedFiles = []\n\t\telse this.excludedFiles = this.excludedFiles.filter(file => file.context !== context)\n\t}\n\n\tCHANGE_UPLOAD_CONTEXT({ from, to }) {\n\t\tconst uploads = this.uploads.slice()\n\t\tconst uploadsToChange = uploads.filter(upload => upload.context === from)\n\t\tuploadsToChange.forEach(upload => (upload.context = to))\n\t\tthis.uploads = uploads\n\t}\n\n\tUPDATE_UPLOAD(state: IUploadState) {\n\t\tconst upload = this.uploads.find(upload => upload.sopInstanceUid === state.sopInstanceUid)\n\t\tif (!upload) return\n\n\t\tif (state.isUploading) upload.isUploading = true\n\t\tif (state.isUploaded || state.isFailedUpload) upload.isUploading = false\n\t\tif (state.isUploaded) upload.isUploaded = true\n\t\tif (state.isFailedUpload) {\n\t\t\tlet attempts = (upload.attempts ? upload.attempts : 0) + 1\n\t\t\tupload.attempts = attempts\n\t\t\tif (attempts < 3) {\n\t\t\t\tupload.isFailedUpload = false\n\t\t\t\tupload.isUploading = false\n\t\t\t} else {\n\t\t\t\tupload.isFailedUpload = true\n\t\t\t}\n\t\t}\n\t}\n\n\tasync queueFilesForUpload(params: IQueueRequest) {\n\t\tlet items: Upload[] = []\n\t\tparams.files.forEach(f => {\n\t\t\tif (f.name.toUpperCase() === 'DICOMDIR') return\n\t\t\tlet upload = new Upload()\n\t\t\tupload.file = f\n\t\t\tupload.context = params.context\n\t\t\tupload.singleFileBatch = params.allowAttachments && !params.allowImages && !params.allowDicoms\n\t\t\tupload.studyInstanceUid = params.studyInstanceUid\n\t\t\tupload.description = params.description\n\t\t\tupload.imageViewId = params.imageViewId\n\t\t\tupload.reportTemplateImageViewId = params.reportTemplateImageViewId\n\t\t\titems.push(upload)\n\t\t})\n\n\t\t// if jpeg is dropped onto attachment uploader, assume it's an attachment\n\t\tlet treatImageAsAttachment = params.allowAttachments && !params.allowImages\n\n\t\tawait Promise.all(\n\t\t\titems.map(u =>\n\t\t\t\tu.parse(treatImageAsAttachment).then(() => {\n\t\t\t\t\tu.isInvalid =\n\t\t\t\t\t\t!!u.parseWarning ||\n\t\t\t\t\t\t!hasValidAttachmentExtension(u.file) ||\n\t\t\t\t\t\t(!params.allowDicoms && u.isDicom) ||\n\t\t\t\t\t\t(!params.allowAttachments && u.isAttachment) ||\n\t\t\t\t\t\t(!params.allowImages && u.isImage)\n\t\t\t\t})\n\t\t\t)\n\t\t)\n\n\t\titems.forEach(u => {\n\t\t\tif (u.sopInstanceUid) {\n\t\t\t\tlet isDupe = this.uploads.find(i => i.sopInstanceUid === u.sopInstanceUid)\n\t\t\t\tif (isDupe) return\n\t\t\t}\n\n\t\t\tif (u.isInvalid) {\n\t\t\t\tthis.excludedFiles.push(u)\n\t\t\t} else {\n\t\t\t\tthis.uploads.push(u)\n\t\t\t}\n\t\t})\n\t}\n\n\tasync startUpload(context: string, study: IUploadStudy = null, applyLastStudyUidToAttachments: boolean = false) {\n\t\tlet batches: UploadBatch[] = []\n\n\t\tlet pendingUploads = this.uploads.filter(u => u.pendingBatch && u.context === context)\n\n\t\tlet images = pendingUploads.filter(u => u.isImage).length\n\t\tif (!checkImageLimit(images)) {\n\t\t\treturn\n\t\t}\n\n\t\tlet batchMap: { [key: string]: UploadBatch } = {}\n\n\t\tfor (let i = 0; i < pendingUploads.length; i++) {\n\t\t\tlet pendingUpload = pendingUploads[i]\n\n\t\t\tif (applyLastStudyUidToAttachments && pendingUpload.isAttachment && !pendingUpload.studyInstanceUid) {\n\t\t\t\tpendingUpload.studyInstanceUid = this._getMostRecentStudyUid()\n\t\t\t}\n\t\t\tif (study) {\n\t\t\t\tpendingUpload.modality = study.modalityId\n\t\t\t\tpendingUpload.patientId = study.patientId\n\t\t\t\tpendingUpload.patientName = study.patientName\n\t\t\t\tpendingUpload.ownerName = study.ownerName\n\t\t\t\tpendingUpload.studyDescription = study.studyDescription\n\t\t\t\tpendingUpload.accessionNumber = study.accessionNumber\n\t\t\t\tpendingUpload.institutionName = study.institutionName\n\t\t\t\tpendingUpload.referringPhysiciansName = study.referringPhysiciansName\n\t\t\t\tpendingUpload.studyDateTime = new Date(study.studyDateTime)\n\t\t\t\tpendingUpload.studyInstanceUid = study.studyInstanceUid\n\t\t\t}\n\n\t\t\tconst hasRequiredInfo = u => u.studyInstanceUid || (u.patientName && u.patientId && u.ownerName)\n\t\t\tif (!hasRequiredInfo(pendingUpload)) continue // do not batch items waiting on required info\n\n\t\t\tlet batch = batchMap[pendingUpload.key]\n\t\t\tif (!batch) {\n\t\t\t\tbatch = new UploadBatch()\n\n\t\t\t\tif (pendingUpload.studyInstanceUid) {\n\t\t\t\t\t// look for previous existing batch\n\t\t\t\t\tlet found = this.uploads.find(\n\t\t\t\t\t\tu =>\n\t\t\t\t\t\t\tu.batchId &&\n\t\t\t\t\t\t\tu.isAttachment === pendingUpload.isAttachment &&\n\t\t\t\t\t\t\tu.studyInstanceUid === pendingUpload.studyInstanceUid\n\t\t\t\t\t)\n\t\t\t\t\tif (found) batch.batchId = found.batchId\n\t\t\t\t}\n\n\t\t\t\tif (study) {\n\t\t\t\t\tbatch.study = JSON.parse(JSON.stringify(study))\n\t\t\t\t\tif (study.studyDateTime) {\n\t\t\t\t\t\tbatch.study.studyDateTime = serializeDate(study.studyDateTime)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbatch.studyInstanceUid = pendingUpload.studyInstanceUid\n\t\t\t\tbatchMap[pendingUpload.key] = batch\n\t\t\t\tbatches.push(batch)\n\t\t\t}\n\t\t\tbatch.items.push(pendingUpload)\n\t\t}\n\n\t\tawait Promise.all(batches.map(b => createUploadBatch(b)))\n\n\t\tsetUploadQueue()\n\t\tconst workersNeeded = Math.min(maxWorkers, uploadQueue.length)\n\t\tif (workersNeeded) {\n\t\t\twindow.addEventListener('beforeunload', confirmNavigation)\n\t\t\trunWorkers(workersNeeded)\n\t\t}\n\t}\n\n\tgetUploadRenameForm(studyInstanceUid: string) {\n\t\treturn API.get('/study/upload-rename-form', { params: { studyInstanceUid } }).then(r => r.data)\n\t}\n\n\tgetUploadStatus(batchId: string) {\n\t\treturn API.get(`/study/upload-status`, {\n\t\t\tparams: { batchId },\n\t\t}).then(r => r.data)\n\t}\n\n\tclear(context?: string) {\n\t\tif (!context) {\n\t\t\tthis.excludedFiles = []\n\t\t\tthis.uploads = []\n\t\t} else {\n\t\t\tthis.excludedFiles = this.excludedFiles.filter(file => file.context !== context)\n\t\t\tthis.uploads = this.uploads.filter(upload => upload.context !== context)\n\t\t}\n\t}\n\n\tstopUploads(options?: IStopUploadOptions) {\n\t\tif (!options) {\n\t\t\tthis.clear()\n\t\t\tstopUploadWorkers()\n\t\t\treturn\n\t\t}\n\t\tif (options.context && !options.sopInstanceUid && !options.batchId) this.clear(options.context)\n\t\tif (options.batchId) {\n\t\t\tconst isInBatch = upload => upload.batchId === options.batchId && upload.sopInstanceUid\n\t\t\tconst sopInstanceUids = uploadData.uploads.filter(isInBatch).map(upload => upload.sopInstanceUid)\n\t\t\tsopInstanceUids.forEach(sopInstanceUid => this.stopUploads({ context: options.context, sopInstanceUid }))\n\t\t\treturn\n\t\t}\n\t\tif (options.sopInstanceUid) uploadData.CANCEL_UPLOAD(options.sopInstanceUid)\n\t\tstopUploadWorkers(options.context, options.sopInstanceUid)\n\t}\n\n\t_getMostRecentStudyUid(): string {\n\t\tfor (let i = this.uploads.length - 1; i >= 0; i--) {\n\t\t\tconst studyInstanceUid = this.uploads[i].studyInstanceUid\n\t\t\tif (studyInstanceUid) return studyInstanceUid\n\t\t}\n\t\treturn null\n\t}\n\n\t_getExistingBatchIdForStudy(studyInstanceUid): string | undefined {\n\t\tif (!studyInstanceUid) return undefined\n\t\tconst existingUploadInStudy = this.uploads.find(\n\t\t\tupload => upload.studyInstanceUid === studyInstanceUid && !upload.isAttachment\n\t\t)\n\t\tif (existingUploadInStudy) return existingUploadInStudy.batchId\n\t}\n}\n\nasync function createUploadBatch(batch: UploadBatch) {\n\tlet form: IUploadBatchForm = {\n\t\tbatchId: batch.batchId,\n\t\tstudyInstanceUid: batch.studyInstanceUid,\n\t\tstudy: batch.study,\n\t\tfiles: batch.items.map(i => {\n\t\t\treturn {\n\t\t\t\timageViewId: i.imageViewId,\n\t\t\t\tfilename: i.file.name,\n\t\t\t\tdescription: i.description,\n\t\t\t\tsopInstanceUid: i.sopInstanceUid,\n\t\t\t}\n\t\t}),\n\t}\n\n\ttry {\n\t\tconst r: IUploadBatchResult = await API.post('/study/upload-batch-start', form).then(r => r.data)\n\t\tfor (let i = 0; i < batch.items.length; i++) {\n\t\t\tlet item = batch.items[i]\n\t\t\titem.sopInstanceUid = r.sopInstanceUids[i]\n\t\t\titem.studyInstanceUid = r.studyInstanceUid\n\t\t\titem.batchId = r.batchId\n\t\t}\n\t} catch {\n\t\tbatch.items.forEach(i => {\n\t\t\ti.isFailedUpload = true\n\t\t})\n\t}\n}\n\nfunction runWorkers(workersNeeded) {\n\tlet workersRunning = 0\n\tfor (let i = 0; i < workerPool.length; i++) {\n\t\tif (workersRunning === workersNeeded) break\n\t\tif (!workerPool[i]) runWorker(i, uploadQueue.length) // (re)start worker if not running\n\t\tworkersRunning++\n\t}\n}\n\nfunction runWorker(i: number, queueSize?: number) {\n\tconst upload = uploadQueue.shift()\n\t// send next upload to worker\n\tif (upload) {\n\t\tconst { context, sopInstanceUid } = upload\n\t\tuploadData.UPDATE_UPLOAD({ sopInstanceUid, isUploading: true })\n\t\tif (!workerPool[i]) workerPool[i] = createWorker(i)\n\t\tworkerPool[i].context = context\n\t\tworkerPool[i].sopInstanceUid = sopInstanceUid\n\t\tconst concurrentUploads = Math.min(uploadQueue.length, workerPool.filter(w => !!w).length)\n\t\tsetTimeout(() => {\n\t\t\tworkerPool[i].worker.postMessage(createMessageForWorker(upload))\n\t\t}, getThrottleTime(queueSize, concurrentUploads))\n\t\t// if no uploads are left, terminate worker\n\t} else {\n\t\tif (workerPool[i]) {\n\t\t\tworkerPool[i].worker.terminate()\n\t\t\tworkerPool[i] = undefined\n\t\t}\n\t\tconst isAnyWorkerRunning = workerPool.some(worker => !!worker)\n\t\tif (!isAnyWorkerRunning) {\n\t\t\twindow.removeEventListener('beforeunload', confirmNavigation)\n\t\t}\n\t}\n}\n\nfunction setUploadQueue() {\n\tuploadQueue = uploadData.uploads.filter(u => u.pendingUpload)\n}\n\nfunction getThrottleTime(queueSize: number = 0, concurrentUploads: number): number {\n\tlet delay = 0\n\tif (queueSize >= 1000) delay = 1000\n\telse if (queueSize >= 250) delay = 500\n\telse if (queueSize >= 100) delay = 250\n\telse if (queueSize >= 50) delay = 100\n\treturn delay * concurrentUploads\n}\n\nfunction createWorker(i: number) {\n\tconst worker = new UploadWorker()\n\t// whenever an upload is done, update upload status and handle any errors\n\tworker.onmessage = ({ data }) => {\n\t\tconst { status, response, ...upload } = data\n\t\tuploadData.UPDATE_UPLOAD(upload)\n\t\tsetUploadQueue()\n\t\tif (data.isFailedUpload) handleUploadError(data)\n\t\tlet queueSize = 0\n\t\ttry {\n\t\t\tif (response) queueSize = JSON.parse(response).queueSize\n\t\t} catch {} // in case response is not JSON for some reason\n\t\trunWorker(i, queueSize)\n\t}\n\treturn { worker }\n}\n\nfunction createMessageForWorker(upload: Upload) {\n\tlet url = `${API.defaults.baseURL}/study/upload-file` // passed to upload workers\n\treturn {\n\t\tbatchId: upload.batchId,\n\t\tcontext: upload.context,\n\t\tdoNotCompress: !upload.isDicom,\n\t\toriginalFile: upload.file,\n\t\tsopInstanceUid: upload.sopInstanceUid,\n\t\ttoken: store.state.auth.token,\n\t\turl,\n\t}\n}\n\nfunction handleUploadError(data) {\n\tif (data.status === 401) {\n\t\tstore.dispatch('logOut')\n\t} else {\n\t\tconst errorDescription = 'An upload failed during import'\n\t}\n}\n\nfunction stopUploadWorkers(context?: string, sopInstanceUid?: string) {\n\tfor (let i = 0; i < workerPool.length; i++) {\n\t\tif (!workerPool[i]) continue\n\t\tif (context && workerPool[i].context !== context) continue\n\t\tif (sopInstanceUid && workerPool[i].sopInstanceUid !== sopInstanceUid) continue\n\t\tworkerPool[i].worker.terminate()\n\t\tworkerPool[i] = undefined\n\t}\n\tconst isAnyWorkerRunning = workerPool.some(worker => !!worker)\n\tif (!isAnyWorkerRunning) {\n\t\twindow.removeEventListener('beforeunload', confirmNavigation)\n\t}\n}\n\nfunction confirmNavigation(e) {\n\t// Custom warning will not be displayed in Chrome\n\t// TODO if (api.file.isDownloadingFile) return\n\tconst warning = 'You are still uploading files. Are you sure you want to ' + 'leave and cancel these uploads?'\n\te.returnValue = warning\n\treturn warning\n}\n\nfunction checkImageLimit(totalImages) {\n\tif (totalImages <= maxImagesPerStudy) return true\n\tconst warning =\n\t\t`Studies created from non-DICOM image files are ` +\n\t\t`limited to ${maxImagesPerStudy} images. This restriction prevents ` +\n\t\t`performance and usability problems. You can either upload the ` +\n\t\t`images as separate studies, or request DICOM files from your ` +\n\t\t`image provider.`\n\tshowAlert(warning)\n\treturn false\n}\n\nexport const uploadData = new UploadData()\n// @ts-ignore\nwindow.uploadData = uploadData\n","module.exports = \"\"","import Vue, { VNode } from 'vue'\nimport { DirectiveBinding } from 'vue/types/options'\nimport { validator, IRule } from '@utils/validation'\n\nconst CONFIRM_RULE = 'confirmed'\n\nclass VField {\n\tname: string\n\trules: IRule[]\n\tdependencies: VField[] = []\n\terrors: string[] = []\n\tgetter: () => any = null\n\n\tget value() {\n\t\treturn this.getter()\n\t}\n\n\tget valid(): boolean {\n\t\treturn this.errors.length === 0\n\t}\n}\n\nclass VueValidator {\n\tfields: { [key: string]: VField } = {}\n\tpaused = false\n\n\thasError(name: string): boolean {\n\t\tlet f = this.fields[name]\n\t\treturn f && !f.valid\n\t}\n\n\tanyErrors(): boolean {\n\t\tfor (let prop in this.fields) {\n\t\t\tif (!this.fields[prop].valid) return true\n\t\t}\n\t\treturn false\n\t}\n\n\taddField(name: string, getter: () => any, rules: string) {\n\t\tif (!name) {\n\t\t\tthrow new Error('validator field does not have a name')\n\t\t}\n\n\t\tlet field: VField = null\n\t\tlet ruleList = this.getRuleList(rules)\n\t\tif (rules.length >= 0) {\n\t\t\tfield = new VField()\n\t\t\tfield.name = name\n\t\t\tfield.getter = getter\n\t\t\tthis.applyRules(field, ruleList)\n\t\t\tVue.set(this.fields, field.name, field)\n\t\t}\n\t\treturn field\n\t}\n\n\tapplyRules(field: VField, ruleList: IRule[]) {\n\t\tfield.rules = ruleList\n\t\tlet confirm = ruleList.find(r => r.name === CONFIRM_RULE)\n\t\tif (confirm) {\n\t\t\tlet other = this.fields[confirm.arg]\n\t\t\tif (other) {\n\t\t\t\tother.dependencies.push(field)\n\t\t\t}\n\t\t}\n\t}\n\n\tgetRuleList(rules) {\n\t\tlet ruleStrings = rules.split('|')\n\t\tlet ruleList = ruleStrings.map(r => validator.parseRule(r)).filter(r => r.name)\n\t\treturn ruleList\n\t}\n\n\taddHtmlField(el: HTMLElement, rules: string): VField {\n\t\tlet input = el as HTMLInputElement\n\t\treturn this.addField(input.name, () => input.value, rules)\n\t}\n\n\tresume() {\n\t\tthis.paused = false\n\t}\n\n\tpause() {\n\t\tthis.paused = true\n\t}\n\n\tvalidate() {\n\t\tVue.nextTick(() => {\n\t\t\tfor (let prop in this.fields) {\n\t\t\t\tlet field = this.fields[prop]\n\t\t\t\tthis.validateField(field)\n\t\t\t}\n\t\t})\n\t}\n\n\tvalidateField(field: VField) {\n\t\tif (this.paused) return\n\n\t\tfield.errors = []\n\n\t\tfor (let i = 0; i < field.rules.length; i++) {\n\t\t\tlet r = field.rules[i]\n\t\t\tlet valid = true\n\t\t\tif (r.name === CONFIRM_RULE) {\n\t\t\t\tlet other = this.fields[r.arg]\n\t\t\t\tvalid = other && other.value === field.value\n\t\t\t} else {\n\t\t\t\tvalid = validator.validateRule(field.value, r.name, r.arg)\n\t\t\t}\n\t\t\tif (!valid) {\n\t\t\t\tfield.errors.push(validator.getError(field.name, r.name, r.arg))\n\t\t\t}\n\t\t}\n\n\t\tfield.dependencies.forEach(d => this.validateField(d))\n\t}\n}\n\nexport const ValidatorMixin = {\n\tdata: function() {\n\t\treturn {\n\t\t\tvalidator: new VueValidator(),\n\t\t}\n\t},\n\tmethods: {\n\t\thasError(field: string) {\n\t\t\treturn this.validator.hasError(field)\n\t\t},\n\t},\n\tcomputed: {\n\t\tanyErrors() {\n\t\t\treturn this.validator.anyErrors()\n\t\t},\n\t},\n}\n\nVue.directive('validate', {\n\tbind(el: HTMLElement, binding: DirectiveBinding, vnode: VNode) {\n\t\tlet v: VueValidator = vnode.context['validator']\n\t\tif (binding.value instanceof Object) {\n\t\t\tlet vmodel = vnode.data['model']['expression']\n\t\t\tif (!vmodel) throw new Error('invalid validation field')\n\n\t\t\tlet parts = vmodel.split('.')\n\t\t\tlet getter = () => {\n\t\t\t\tlet value = vnode.context\n\t\t\t\tparts.forEach(p => {\n\t\t\t\t\tvalue = value == null ? null : value[p]\n\t\t\t\t})\n\t\t\t\treturn value\n\t\t\t}\n\t\t\tlet field = v.addField(binding.value.name, getter, binding.value.rules)\n\t\t\tvnode.context.$watch(vmodel, () => v.validateField(field))\n\t\t} else {\n\t\t\tlet field = v.addHtmlField(el, binding.value)\n\t\t\tif (!field) return\n\n\t\t\tel.addEventListener('change', () => v.validateField(field))\n\t\t\tif (el.tagName.toUpperCase() !== 'SELECT') {\n\t\t\t\tel.addEventListener('input', () => v.validateField(field))\n\t\t\t}\n\t\t}\n\t},\n\tcomponentUpdated(el: HTMLElement, binding: DirectiveBinding, vnode: VNode) {\n\t\tlet v: VueValidator = vnode.context['validator']\n\t\tlet fname = null\n\t\tlet rules = null\n\t\tif (binding.value instanceof Object) {\n\t\t\tfname = binding.value.name\n\t\t\trules = binding.value.rules\n\t\t} else {\n\t\t\tfname = (el).name\n\t\t\trules = binding.value\n\t\t}\n\t\tlet field = v.fields[fname]\n\t\tif (field) {\n\t\t\tlet ruleList = v.getRuleList(rules)\n\t\t\tif (JSON.stringify(ruleList) === JSON.stringify(field.rules)) return\n\t\t\tv.applyRules(field, ruleList)\n\t\t}\n\t},\n})\n","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dlg-header\"},[_vm._t(\"default\"),_c('h3',[_vm._v(_vm._s(_vm.title))]),_c('loading-spinner',{attrs:{\"is-loading\":_vm.isLoading,\"is-small\":\"\"}}),(_vm.showClose)?_c('button',{attrs:{\"data-test\":\"bt-dialog-close\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('svg-icon',{attrs:{\"icon\":\"close\"}})],1):_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./DlgHeader.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!./DlgHeader.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DlgHeader.vue?vue&type=template&id=1d620ecc\"\nimport script from \"./DlgHeader.vue?vue&type=script&lang=js\"\nexport * from \"./DlgHeader.vue?vue&type=script&lang=js\"\nimport style0 from \"./DlgHeader.vue?vue&type=style&index=0&id=1d620ecc&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","import _ from \"lodash/fp\";\n\nexport default function(options) {\n\t// No Name\n\tlet name = options.name || options || 'No Name'\n\t// NoName\n\tlet sortName = options.sortName || name.replace(/\\s+/g, '')\n\t// noName\n\tlet columnName = options.columnName || sortName.charAt(0).toLowerCase() + sortName.slice(1)\n\n\tlet isSortable = options.isSortable === undefined || options.isSortable\n\n let dataColumnName = options.dataColumnName || ''\n\n let isVisible = _.isUndefined(options.isVisible)? true : options.isVisible\n\n let showInSelector = _.isUndefined(options.showInSelector)? true : options.showInSelector\n\n let classStr = options.classStr || ''\n\n let styleStr = options.styleStr || ''\n\n let dataColumnType = options.dataColumnType || 'text'\n\n let Id = options.id\n\n let isVisibleCondition = options.isVisibleCondition || null\n\n let showInSelectorCondition = options.showInSelectorCondition || null\n\n\treturn {\n Id,\n\t\tname,\n\t\tsortName,\n\t\tcolumnName,\n\t\tisSortable,\n dataColumnName,\n isVisible,\n showInSelector,\n classStr,\n styleStr,\n dataColumnType,\n isVisibleCondition,\n showInSelectorCondition\n\t}\n}\n","import reportService from '@services/reportService'\nimport workflow from '@services/workflow'\nimport { showConfirm } from '@dialogs/ConfirmDlg.vue'\nimport { getActiveDownloads } from '@components/DesktopDownloader.vue'\n\nexport default async function() {\n\tif (workflow.isInProgress) {\n\t\tconst warning = 'Your submission is not complete. Are you sure you want to discard your progress?'\n\t\tif (!(await showConfirm(warning))) return false\n\t}\n\tif (reportService.hasUnsavedChanges) {\n\t\tconst warning = 'You have unsaved changes. Are you sure you want to leave without saving?'\n\t\tif (!(await showConfirm(warning))) return false\n\t}\n\tif (window.ElectronInterface) {\n\t\tconst activeDownloads = getActiveDownloads()\n\t\tif (activeDownloads > 0) {\n\t\t\tconst warning =\n\t\t\t\t`Your study ` +\n\t\t\t\t`${activeDownloads === 1 ? 'download' : 'downloads'} will be cancelled. ` +\n\t\t\t\t`Are you sure want to leave?`\n\t\t\tif (!(await showConfirm(warning))) return false\n\t\t}\n\t}\n\treturn true\n}\n","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","export default class {\n\tconstructor(options) {\n\t\t// The tool's name as an export on `CornerstoneTools`\n\t\tthis.name = options.name || ''\n\t\t// The tool's default name for API calls\n\t\tthis.alias = options.alias || ''\n\t\tthis.binding = ''\n\t\tthis.groups = options.groups || []\n\t\tthis.isOptionalFeature = options.isOptionalFeature || false\n\t\tthis.options = options.options || {}\n\t\t// Display\n\t\tthis.label = options.label || options.name\n\t\tthis.iconName = options.iconName || null\n\t\tthis.title = options.title || null\n\t\tthis.disabled = options.disabled || false\n\t\tthis.hidden = options.hidden || false\n\t\t// Command override\n\t\tthis.command = options.command || null\n\t\t// Refresh function\n\t\tif (typeof options.refresh === 'function') {\n\t\t\tthis.refresh = options.refresh.bind(this)\n\t\t}\n\t}\n\n\t// Resolves viewer tool state given the store getters\n\tresolve(getters) {\n\t\tif (this.refresh) {\n\t\t\tthis.refresh(getters)\n\t\t}\n\t\treturn this\n\t}\n}\n","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-date-picker',{attrs:{\"value\":_vm.date,\"attributes\":_vm.attributes,\"input-props\":_vm.$attrs,\"popover\":{ visibility: _vm.visibility },\"masks\":_vm.masks,\"locale\":_vm.locale,\"max-date\":_vm.maxDate,\"is-dark\":_vm.themeIsDark,\"is-required\":!_vm.allowClear},on:{\"input\":_vm.onInput},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar inputProps = ref.inputProps;\nvar inputEvents = ref.inputEvents;\nreturn [_vm._t(\"default\",[_c('div',{staticClass:\"dp-wrapper\"},[_c('svg',{staticClass:\"dp-calendar\",attrs:{\"viewBox\":\"0 0 20 20\"}},[_c('path',{attrs:{\"d\":\"M1 4c0-1.1.9-2 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V4zm2 2v12h14V6H3zm2-6h2v2H5V0zm8 0h2v2h-2V0zM5 9h2v2H5V9zm0 4h2v2H5v-2zm4-4h2v2H9V9zm0 4h2v2H9v-2zm4-4h2v2h-2V9zm0 4h2v2h-2v-2z\"}})]),_c('input',_vm._g(_vm._b({ref:\"input\",staticClass:\"input\",style:({ paddingLeft: '25px' }),domProps:{\"value\":inputProps.value}},'input',inputProps,false),inputEvents)),(_vm.date && !inputProps.disabled && _vm.allowClear)?_c('span',{staticClass:\"dp-clear\"},[_c('svg',{attrs:{\"viewBox\":\"0 0 10 10\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearDate($event)}}},[_c('path',{attrs:{\"d\":\"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z\"}})])]):_vm._e()])],{\"inputProps\":inputEvents})]}}],null,true)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./DatePicker.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!./DatePicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DatePicker.vue?vue&type=template&id=84bbbd6c\"\nimport script from \"./DatePicker.vue?vue&type=script&lang=js\"\nexport * from \"./DatePicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./DatePicker.vue?vue&type=style&index=0&id=84bbbd6c&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","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!./ReportText.vue?vue&type=style&index=0&id=4b51af2c&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!./StudiesListCards.vue?vue&type=style&index=0&id=79dd147c&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!./Settings.vue?vue&type=style&index=0&id=df760e62&prod&lang=scss\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"report-rich-text\",class:{ stack: _vm.cell.props['label position'] === 'Left' }},[(_vm.cell.props.label)?_c('label',{style:(_vm.labelStyle)},[_vm._v(_vm._s(_vm.cell.props.label))]):_vm._e(),(_vm.cell.readOnly)?_c('p',{staticClass:\"readonly-rich-text\",class:{ prewrap: !_vm.isHtml },domProps:{\"innerHTML\":_vm._s(_vm.cell.value)}}):_c('c-k-editor',{ref:\"ckeditor\",attrs:{\"read-only\":_vm.showEditorSample,\"value\":_vm.textEditorValue,\"toolbar-options\":_vm.toolbarOptions,\"presets\":_vm.cell.props.presets,\"edit-presets\":_vm.editingPresets},on:{\"input\":_vm.updateValue}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./RichText.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!./RichText.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RichText.vue?vue&type=template&id=6dfb1164\"\nimport script from \"./RichText.vue?vue&type=script&lang=js\"\nexport * from \"./RichText.vue?vue&type=script&lang=js\"\nimport style0 from \"./RichText.vue?vue&type=style&index=0&id=6dfb1164&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","module.exports = \"\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"user-studies-table\"}},[_c('search-and-filter',{attrs:{\"filter\":_vm.filter,\"filter-presets\":_vm.filterPresets,\"show-reset-button\":true,\"is-dialog\":_vm.isDialog},on:{\"input\":function($event){return _vm.updateFilter($event)},\"reset\":function($event){return _vm.updateFilter(_vm.filterPresets.all)},\"reset-current-page\":function($event){_vm.currentPage = 0}},scopedSlots:_vm._u([{key:\"tags\",fn:function(){return [(_vm.filter.notSent)?_c('filter-tag',{attrs:{\"value\":_vm.filter.notSent},on:{\"input\":function($event){return _vm.updateFilterComponent('notSent', false)}}},[_vm._v(\"\\n\\t\\t\\t\\tNot Sent\\n\\t\\t\\t\")]):_vm._e(),_c('filter-tag',{attrs:{\"value\":_vm.filter.modalityIds,\"clear-value\":[]},on:{\"input\":function($event){_vm.filter.modalityIds = []}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.$store.getters.modalityNamesById(_vm.filter.modalityIds).join(' / '))+\"\\n\\t\\t\\t\")]),(_vm.filter.startDate || _vm.filter.endDate)?_c('filter-tag',{attrs:{\"value\":{ startDate: _vm.filter.startDate, endDate: _vm.filter.endDate },\"clear-value\":\"\"},on:{\"input\":function($event){return _vm.clearFilterDateRange()}}},[_vm._v(\"\\n\\t\\t\\t\\tUploaded:\\n\\t\\t\\t\")]):_vm._e(),(_vm.filter.studyStartDate || _vm.filter.studyEndDate)?_c('filter-tag',{attrs:{\"value\":{ startDate: _vm.filter.studyStartDate, endDate: _vm.filter.studyEndDate },\"clear-value\":\"\"},on:{\"input\":function($event){return _vm.clearFilterDateRange('study')}}},[_vm._v(\"\\n\\t\\t\\t\\tStudy Date:\\n\\t\\t\\t\")]):_vm._e()]},proxy:true},{key:\"top\",fn:function(){return [_c('div',[_c('label',[_vm._v(\"Status\")]),_c('button',{staticClass:\"btn\",class:{ 'btn-success': _vm.filter.notSent, 'btn-default': !_vm.filter.notSent },on:{\"click\":function($event){return _vm.updateFilterComponent('notSent', true)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\tNot Sent\\n\\t\\t\\t\\t\")]),_c('button',{staticClass:\"btn\",class:{ 'btn-success': !_vm.filter.notSent, 'btn-default': _vm.filter.notSent },on:{\"click\":function($event){return _vm.updateFilterComponent('notSent', false)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\tAll\\n\\t\\t\\t\\t\")])])]},proxy:true}])},[_c('date-range-picker',{attrs:{\"label\":\"Upload Date\",\"date-ranges\":['All', 'Year', 'Month', 'Week', 'Yesterday', 'Today'],\"filter\":_vm.filter},on:{\"input\":function($event){return _vm.updateFilter($event)}}}),_c('date-range-picker',{attrs:{\"start-date-key\":\"studyStartDate\",\"end-date-key\":\"studyEndDate\",\"date-ranges\":['All', 'Year', 'Month', 'Week', 'Yesterday', 'Today'],\"label\":\"Study Date\",\"filter\":_vm.filter},on:{\"input\":function($event){return _vm.updateFilter($event)}}})],1),_c('div',{staticClass:\"table-wrapper\"},[(!_vm.isLoading && !_vm.list.length)?_c('section',{staticClass:\"no-results\"},[_c('em',[_vm._v(\"\\n\\t\\t\\t\\tNo uploads found\\n\\t\\t\\t\")])]):_vm._e(),(_vm.mq.xLarge && (_vm.list.length || _vm.isLoading))?_c('data-table',{attrs:{\"is-loading\":_vm.isLoading,\"is-hoverable\":false}},[_c('thead',[_c('tr',[_c('th'),_c('th',[_vm._v(\"Upload Date\")]),_c('th',[_vm._v(\"Patient ID\")]),_c('th',[_vm._v(\"Patient Name\")]),_c('th',[_vm._v(\"Source\")]),_c('th',[_vm._v(\"Study Date\")]),_c('th',[_vm._v(\"Modality\")]),_c('th',[_vm._v(\"Images\")]),_c('th')])]),_c('tbody',_vm._l((_vm.list),function(study){return _c('tr',{key:study.studyId,class:{ selectable: _vm.isDialog },on:{\"click\":function($event){_vm.isDialog && _vm.selectStudy(study)}}},[_c('td',[(!_vm.isDialog && _vm.isStudyArchived(study))?_c('button',{staticClass:\"view-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.goToStudy(study.studyId)}}},[_c('svg-icon',{attrs:{\"icon\":\"eye\"}})],1):_vm._e()]),_c('td',[_vm._v(_vm._s(_vm._f(\"localizeDate\")(study.importDate)))]),_c('td',[_vm._v(_vm._s(study.patientId))]),_c('td',[_vm._v(_vm._s(study.attachmentDescription || study.patientName))]),_c('td',[_vm._v(_vm._s(study.source))]),_c('td',[_vm._v(_vm._s(_vm._f(\"localizeDate\")(study.studyDateTime,{ forceUTC: false })))]),_c('td',[_vm._v(_vm._s(study.modality))]),_c('td',[(study.imagesArchived < study.imageCount)?_c('div',{staticStyle:{\"text-align\":\"center\"}},[_c('progress-bar',{staticStyle:{\"min-width\":\"96px\"},attrs:{\"width\":(study.imagesArchived / study.imageCount) * 100}}),_c('span',{staticStyle:{\"font-size\":\"0.75em\"}},[_vm._v(\" \"+_vm._s(study.imagesArchived)+\"/\"+_vm._s(study.imageCount)+\" \")])],1):[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(study.imageCount)+\"\\n\\t\\t\\t\\t\\t\\t\")]],2),_c('td',{staticStyle:{\"text-align\":\"center\"}},[(!_vm.isDialog)?[(!study.hasImagesRegistered)?_c('span',[_vm._v(\"Receiving Images\")]):(!study.hasTeleconsultationReport)?[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.selectStudy(study)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tSend Images\\n\\t\\t\\t\\t\\t\\t\\t\\t\")]),_c('a',{staticClass:\"is-link delete\",on:{\"click\":function($event){return _vm.deleteStudy(study)}}},[_vm._v(\"Delete\")])]:_c('a',{on:{\"click\":function($event){return _vm.selectStudy(study)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tSend Again\\n\\t\\t\\t\\t\\t\\t\\t\")]),(study.hasErrors)?_c('a',{staticClass:\"error-tag\",on:{\"click\":function($event){return _vm.viewErrors(study)}}},[_c('svg-icon',{attrs:{\"icon\":\"exclamation-circle\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tError\\n\\t\\t\\t\\t\\t\\t\\t\")],1):_vm._e()]:[(study.hasTeleconsultationReport)?_c('span',{staticClass:\"is-success\"},[_c('svg-icon',{attrs:{\"icon\":\"check-circle\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tSent\\n\\t\\t\\t\\t\\t\\t\\t\")],1):_c('span',[_vm._v(\"Not Sent\")])]],2)])}),0)]):_vm._e(),(!_vm.mq.xLarge && _vm.list.length)?_c('div',{staticClass:\"tiles\"},_vm._l((_vm.list),function(study){return _c('div',{key:study.studyId,staticClass:\"tile\",class:{ selectable: _vm.isDialog },on:{\"click\":function($event){_vm.isDialog && _vm.selectStudy(study)}}},[_c('div',{staticClass:\"action-column\"},[(!_vm.isDialog && _vm.isStudyArchived(study))?_c('button',{staticClass:\"view-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.goToStudy(study.studyId)}}},[_c('svg-icon',{attrs:{\"icon\":\"eye\"}})],1):_c('span',{staticStyle:{\"flex-grow\":\"1\"}})]),_c('div',{staticClass:\"info-column\"},[_c('p',[_vm._v(_vm._s(study.patientId)+\" - \"+_vm._s(study.attachmentDescription || study.patientName))]),_c('p',[_c('span',{staticStyle:{\"font-weight\":\"200\"}},[_vm._v(\"Source:\")]),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(study.source)+\"\\n\\t\\t\\t\\t\\t\")]),_c('div',[(study.imagesArchived < study.imageCount)?_c('div',{staticStyle:{\"text-align\":\"center\",\"min-width\":\"96px\",\"max-width\":\"200px\"}},[_c('progress-bar',{attrs:{\"width\":(study.imagesArchived / study.imageCount) * 100}}),_c('span',{staticStyle:{\"font-size\":\"0.75em\"}},[_vm._v(\" \"+_vm._s(study.imagesArchived)+\"/\"+_vm._s(study.imageCount)+\" \")])],1):_c('span',[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(study.imageCount)+\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(study.imageCount === 1 ? 'Image' : 'Images')+\"\\n\\t\\t\\t\\t\\t\\t\\t(\"+_vm._s(study.modality)+\")\\n\\t\\t\\t\\t\\t\\t\")]),(study.hasErrors)?_c('a',{staticClass:\"error-tag\",on:{\"click\":function($event){return _vm.viewErrors(study)}}},[_c('svg-icon',{attrs:{\"icon\":\"exclamation-circle\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tError\\n\\t\\t\\t\\t\\t\\t\")],1):_vm._e()]),_c('p',{staticStyle:{\"font-size\":\"0.85em\",\"font-weight\":\"300\"}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm._f(\"localizeDate\")(study.studyDateTime))+\"\\n\\t\\t\\t\\t\\t\")])]),_c('div',{staticClass:\"action-column\"},[(!_vm.isDialog)?[(!study.hasTeleconsultationReport)?[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":function($event){return _vm.selectStudy(study)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\tSend Images\\n\\t\\t\\t\\t\\t\\t\\t\")]),_c('a',{staticClass:\"is-link delete\",on:{\"click\":function($event){return _vm.deleteStudy(study)}}},[_vm._v(\"Delete\")])]:_c('a',{staticClass:\"is-link\",staticStyle:{\"padding\":\"8px\"},on:{\"click\":function($event){return _vm.selectStudy(study)}}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tSend Again\\n\\t\\t\\t\\t\\t\\t\")])]:[(study.hasTeleconsultationReport)?_c('span',{staticClass:\"is-success\"},[_c('svg-icon',{attrs:{\"icon\":\"check-circle\"}}),_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\tSent\\n\\t\\t\\t\\t\\t\\t\")],1):_c('span',[_vm._v(\"Not Sent\")])]],2)])}),0):_vm._e()],1),_c('ast-pagination',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.length),expression:\"list.length\"}],attrs:{\"current-page\":_vm.currentPage,\"results-per-page\":_vm.resultsPerPage,\"results-length\":_vm.list.length,\"has-more-results\":_vm.hasMoreResults},on:{\"set-results-per-page\":function($event){_vm.resultsPerPage = $event},\"set-current-page\":function($event){_vm.currentPage = $event}}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./UserStudiesTable.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!./UserStudiesTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UserStudiesTable.vue?vue&type=template&id=049ff151\"\nimport script from \"./UserStudiesTable.vue?vue&type=script&lang=js\"\nexport * from \"./UserStudiesTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./UserStudiesTable.vue?vue&type=style&index=0&id=049ff151&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","module.exports = \"\"","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!./Pagination.vue?vue&type=style&index=0&id=aed425a8&prod&lang=scss&scoped=true\"","import emailIsValid from '@utils/emailIsValid'\n\nexport enum RULES {\n\tREQUIRED = 'required',\n\tNUMERIC = 'numeric',\n\tGREATERTHANZERO = 'greater_than_zero',\n\tEMAIL = 'email',\n\tDATE = 'date',\n\tMINVALUE = 'min_value',\n\tCONFIRMED = 'confirmed',\n\tCOMPLEXITY = 'complexity',\n}\n\nexport interface IRule {\n\tname: string\n\targ: string\n}\n\nclass Validator {\n\tgetError(field: string, rule: string, arg): string {\n\t\tswitch (rule) {\n\t\t\tcase RULES.REQUIRED:\n\t\t\t\treturn `${field} is required.`\n\t\t\tcase RULES.NUMERIC:\n\t\t\t\treturn `${field} must be numeric.`\n\t\t\tcase RULES.GREATERTHANZERO:\n\t\t\t\treturn `${field} must be greater than 0.`\n\t\t\tcase RULES.EMAIL:\n\t\t\t\treturn `${field} is not a valid email address.`\n\t\t\tcase RULES.DATE:\n\t\t\t\treturn `${field} is not a valid date.`\n\t\t\tcase RULES.MINVALUE:\n\t\t\t\treturn `${field} cannot be less than ${arg}.`\n\t\t\tcase RULES.CONFIRMED:\n\t\t\t\treturn `${field} does not match ${arg}.`\n\t\t\tcase RULES.COMPLEXITY:\n\t\t\t\treturn `Password does not meet requirements.`\n\t\t}\n\t}\n\n\tvalidateRule(value: string, rule: string, arg?: any): boolean {\n\t\tswitch (rule) {\n\t\t\tcase RULES.REQUIRED: {\n\t\t\t\tif (typeof value === 'string') return !!value.trim()\n\t\t\t\telse return value !== null && value !== undefined\n\t\t\t}\n\t\t\tcase RULES.NUMERIC:\n\t\t\t\treturn !isNaN(parseFloat(value))\n\t\t\tcase RULES.GREATERTHANZERO:\n\t\t\t\treturn parseFloat(value) > 0\n\t\t\tcase RULES.EMAIL:\n\t\t\t\treturn emailIsValid(value)\n\t\t\tcase RULES.DATE:\n\t\t\t\treturn isNaN(parseFloat(value)) && Date.parse(value) > 0\n\t\t\tcase RULES.MINVALUE: {\n\t\t\t\tif (value == null) return true\n\t\t\t\tlet num = parseFloat(value)\n\t\t\t\tlet argnum = parseFloat(arg)\n\t\t\t\treturn !isNaN(num) && !isNaN(argnum) && num >= argnum\n\t\t\t}\n\t\t\tcase RULES.COMPLEXITY: {\n\t\t\t\tif (value.length < 8) return false\n\t\t\t\tif (arg && value.toLowerCase().includes(arg.toLowerCase())) return false\n\t\t\t\tlet categoriesPassed = 0\n\t\t\t\tif (/[a-z]/g.test(value)) categoriesPassed++\n\t\t\t\tif (/[A-Z]/g.test(value)) categoriesPassed++\n\t\t\t\tif (/[0-9]/g.test(value)) categoriesPassed++\n\t\t\t\tif (/[^A-Za-z0-9]/g.test(value)) categoriesPassed++\n\t\t\t\treturn categoriesPassed >= 3\n\t\t\t}\n\t\t}\n\t}\n\n\tparseRule(rule: string): IRule {\n\t\tlet parts = rule.split(':')\n\t\treturn {\n\t\t\tname: parts[0],\n\t\t\targ: parts[1],\n\t\t}\n\t}\n\n\tvalidate(value: string, rules: string[]): boolean {\n\t\tfor (let i = 0; i < rules.length; i++) {\n\t\t\tlet r = rules[i]\n\t\t\tlet rule = this.parseRule(r)\n\t\t\tif (!this.validateRule(value, rule.name, rule.arg)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n\n\thasRequired(obj: any, fields: string[]) {\n\t\tfor (let i = 0; i < fields.length; i++) {\n\t\t\tlet path = fields[i]\n\t\t\tlet value = obj[path]\n\t\t\tif (!this.validateRule(value, RULES.REQUIRED)) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\t\treturn true\n\t}\n}\n\nexport const validator = new Validator()\n","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!./CKEditor.vue?vue&type=style&index=0&id=cdd5ab8e&prod&lang=scss\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","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!./PatientForm.vue?vue&type=style&index=0&id=5feaa302&prod&lang=scss\"","module.exports = \"\"","import { API, paramsSerializer, downloadFile, serializeDate } from '@services/api'\nimport { userData } from './userData'\nimport { addNotification } from './notificationService'\nimport { eventBus } from './eventBus'\nimport { showInfo } from '@dialogs/MessageDlg.vue'\nimport { clinicAPI } from '@services/clinicAPI'\n\nclass StudyData {\n\tgetRelatedStudiesAndReports(\n\t\tstudyId: string,\n\t\tclinicCode?: string,\n\t\tcancelPending: boolean = true\n\t): Promise {\n\t\tlet config = {\n\t\t\tcancelPending,\n\t\t\tparams: {\n\t\t\t\tstudyId,\n\t\t\t\timportMachineName: clinicAPI.importMachineName,\n\t\t\t\tclinicCode,\n\t\t\t},\n\t\t\tparamsSerializer,\n\t\t}\n\n\t\treturn API.get(`/study/related-studies-reports`, config).then(r => r && r.data)\n\t}\n\n\tgetAnonymizedStudyInfo(studyId): Promise {\n\t\treturn API.get(`/study/anonymized-info/${studyId}`).then(r => r.data)\n\t}\n\n\tgetStudyAvailable(studyId: string): Promise {\n\t\treturn API.get(`/study/available/${studyId}`).then(r => r.data)\n\t}\n\n\tcreateAnonymizedStudy(data: IAnonymizedStudy) {\n\t\tdata = JSON.parse(JSON.stringify(data))\n\t\tdata.studyDateTime = serializeDate(data.studyDateTime)\n\t\tdata.patientBirthDate = serializeDate(data.patientBirthDate)\n\n\t\treturn API.post(`/study/create-anonymized-study`, data).then(r => {\n\t\t\tlet studyId = r.data\n\t\t\tif (!studyId) return\n\t\t\tlet count = 0\n\t\t\tlet timer = setInterval(async () => {\n\t\t\t\tcount++\n\t\t\t\tlet ready = await this.getStudyAvailable(studyId)\n\t\t\t\tif (ready) {\n\t\t\t\t\taddNotification('New anonymized study created', 'success')\n\t\t\t\t\teventBus.post('refresh-study-list')\n\t\t\t\t}\n\n\t\t\t\tif (ready || count > 20) {\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t}\n\t\t\t}, 2000)\n\t\t})\n\t}\n\n\tdownloadAnonymizedStudy(data: IAnonymizedStudy) {\n\t\tdata['token'] = userData.queryToken\n\t\tlet query = paramsSerializer(data)\n\t\tdownloadFile(`${API.defaults.baseURL}/study/download-anonymized-dicoms?` + query)\n\t}\n\n\tmergeStudies(studyIds: string[]): Promise {\n\t\treturn API.post(`/study/merge`, studyIds)\n\t}\n\n\tshowArchivingTip() {\n\t\tconst text = `Your local Keystone server has all of these images and is transferring them to\n\t\tthe cloud. This process can take a few minutes depending on the size of the study and the\n\t\tinternet speed of the Keystone server. Some study operations require all images to be in the\n\t\tcloud. These operations will become available as soon as your images finish transferring.`\n\t\tshowInfo(text)\n\t}\n}\n\nexport const studyData = new StudyData()\nexport default studyData\n// @ts-ignore\nwindow.studyData = studyData\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"small\":\"640px\",\"medium\":\"800px\",\"large\":\"1024px\",\"xLarge\":\"1280px\"};","module.exports = \"\"","module.exports = \"\"","const isISOString = str => /\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d\\.\\d+/.test(str)\n\nexport function stringToDate(dateString, forceUTC = true) {\n\tif (!dateString) return ''\n\tif (isISOString(dateString)) {\n\t\tconst hasTimeZone = /T(.*)(-|\\+|Z)/.test(dateString)\n\t\tif (!hasTimeZone && forceUTC) dateString += 'Z' // set missing offset to UTC\n\t\tif (!hasTimeZone && !forceUTC) dateString += getTimeZoneOffset() // set offset to local\n\t}\n\tif (/\\d{8}/.test(dateString)) {\n\t\tconst YYYY = dateString.substring(0, 4)\n\t\tconst MM = dateString.substring(4, 6)\n\t\tconst DD = dateString.substring(6, 8)\n\t\tdateString = `${YYYY}-${MM}-${DD}T00:00`\n\t}\n\tconst date = new Date(dateString)\n\t// if we're trying to force a local date, remove any daylight savings compensation applied by the Date constructor\n\tif (!forceUTC) {\n\t\tconst offsetDifference = new Date().getTimezoneOffset() - date.getTimezoneOffset()\n\t\tdate.setMinutes(date.getMinutes() - offsetDifference)\n\t}\n\treturn date\n}\n\nfunction getTimeZoneOffset() {\n\tconst offset = -new Date().getTimezoneOffset()\n\tconst sign = offset >= 0 ? '+' : '-'\n\tconst toTwoDigits = num => ('0' + Math.abs(num)).slice(-2)\n\treturn sign + toTwoDigits(Math.floor(offset / 60)) + ':' + toTwoDigits(offset % 60)\n}\n\nexport function getDateRanges() {\n\tconst today = new Date()\n\ttoday.setHours(0, 0, 0, 0)\n\n\tconst oneYearAgo = new Date()\n\toneYearAgo.setFullYear(today.getFullYear() - 1)\n\toneYearAgo.setHours(0, 0, 0, 0)\n\n\tconst oneMonthAgo = new Date()\n\toneMonthAgo.setMonth(today.getMonth() - 1)\n\toneMonthAgo.setHours(0, 0, 0, 0)\n\n\tconst startOfLastMonth = new Date()\n\tstartOfLastMonth.setMonth(today.getMonth() - 1)\n\tstartOfLastMonth.setDate(1)\n\tstartOfLastMonth.setHours(0, 0, 0, 0)\n\n\tconst endOfLastMonth = new Date()\n\tendOfLastMonth.setDate(0)\n\tendOfLastMonth.setHours(23, 59, 59, 999)\n\n\tconst startOfThisMonth = new Date()\n\tstartOfThisMonth.setDate(1)\n\tstartOfThisMonth.setHours(0, 0, 0, 0)\n\n\tconst endOfThisMonth = new Date()\n\tendOfThisMonth.setMonth(today.getMonth() + 1)\n\tendOfThisMonth.setDate(0)\n\tendOfThisMonth.setHours(23, 59, 59, 999)\n\n\tconst oneWeekAgo = new Date()\n\toneWeekAgo.setDate(today.getDate() - 7)\n\toneWeekAgo.setHours(0, 0, 0, 0)\n\n\tconst startOfLastWeek = new Date()\n\tstartOfLastWeek.setDate(today.getDate() - today.getDay() - 7)\n\tstartOfLastWeek.setHours(0, 0, 0, 0)\n\n\tconst endOfLastWeek = new Date()\n\tendOfLastWeek.setDate(today.getDate() - today.getDay() - 1)\n\tendOfLastWeek.setHours(23, 59, 59, 999)\n\n\tconst startOfThisWeek = new Date()\n\tstartOfThisWeek.setDate(today.getDate() - today.getDay())\n\tstartOfThisWeek.setHours(0, 0, 0, 0)\n\n\tconst endOfThisWeek = new Date()\n\tendOfThisWeek.setDate(today.getDate() - today.getDay() + 6)\n\tendOfThisWeek.setHours(23, 59, 59, 999)\n\n\tconst startOfYesterday = new Date()\n\tstartOfYesterday.setDate(today.getDate() - 1)\n\tstartOfYesterday.setHours(0, 0, 0, 0)\n\n\tconst endOfYesterday = new Date()\n\tendOfYesterday.setDate(today.getDate() - 1)\n\tendOfYesterday.setHours(23, 59, 59, 999)\n\n\tconst startOfTomorrow = new Date()\n\tstartOfTomorrow.setDate(today.getDate() + 1)\n\tstartOfTomorrow.setHours(0, 0, 0, 0)\n\n\tconst endOfTomorrow = new Date()\n\tendOfTomorrow.setDate(today.getDate() + 1)\n\tendOfTomorrow.setHours(23, 59, 59, 999)\n\n\tconst startOfToday = new Date()\n\tstartOfToday.setHours(0, 0, 0, 0)\n\n\tconst endOfToday = new Date()\n\tendOfToday.setHours(23, 59, 59, 999)\n\n\treturn {\n\t\tAll: {\n\t\t\tstartDate: '',\n\t\t\tendDate: '',\n\t\t},\n\t\tYear: {\n\t\t\tstartDate: oneYearAgo,\n\t\t\tendDate: endOfToday,\n\t\t},\n\t\tMonth: {\n\t\t\tstartDate: oneMonthAgo,\n\t\t\tendDate: endOfToday,\n\t\t},\n\t\tLastMonth: {\n\t\t\tstartDate: startOfLastMonth,\n\t\t\tendDate: endOfLastMonth,\n\t\t},\n\t\tThisMonth: {\n\t\t\tstartDate: startOfThisMonth,\n\t\t\tendDate: endOfThisMonth,\n\t\t},\n\t\tWeek: {\n\t\t\tstartDate: oneWeekAgo,\n\t\t\tendDate: endOfToday,\n\t\t},\n\t\tLastWeek: {\n\t\t\tstartDate: startOfLastWeek,\n\t\t\tendDate: endOfLastWeek,\n\t\t},\n\t\tThisWeek: {\n\t\t\tstartDate: startOfThisWeek,\n\t\t\tendDate: endOfThisWeek,\n\t\t},\n\t\tYesterday: {\n\t\t\tstartDate: startOfYesterday,\n\t\t\tendDate: endOfYesterday,\n\t\t},\n\t\tTomorrow: {\n\t\t\tstartDate: startOfTomorrow,\n\t\t\tendDate: endOfTomorrow,\n\t\t},\n\t\tToday: {\n\t\t\tstartDate: startOfToday,\n\t\t\tendDate: endOfToday,\n\t\t},\n\t}\n}\n\nexport const dateRangeLabels = {\n\tAll: 'All Time',\n\tYear: 'Past Year',\n\tMonth: 'Past Month',\n\tLastMonth: 'Last Month',\n\tThisMonth: 'This Month',\n\tWeek: 'Past Week',\n\tLastWeek: 'Last Week',\n\tThisWeek: 'This Week',\n\tYesterday: 'Yesterday',\n\tToday: 'Today',\n}\n\nexport function getTomorrow() {\n\tconst tomorrow = new Date()\n\ttomorrow.setDate(new Date().getDate() + 1)\n\treturn tomorrow\n}\n\nexport function isSameDate(a, b) {\n\tif (a === b) return true\n\tif (!a || !b) return false\n\tif (!a.getDate || !b.getDate) return false\n\treturn a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate()\n}\n\nexport const dateDifferenceInMonths = (startDate, endDate) => {\n return Math.max(\n (endDate.getFullYear() - startDate.getFullYear()) * 12 +\n endDate.getMonth() -\n startDate.getMonth(),\n 0\n )\n}\n\nexport const addMonths = (dt, n) => {\n return new Date(new Date(dt).setMonth(dt.getMonth() + n));\n}\n","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!./ImagesAttachments.vue?vue&type=style&index=0&id=431621fc&prod&lang=scss\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\",\"appear\":\"\"},on:{\"after-enter\":function($event){return _vm.$emit('appear')}}},[_c('div',{ref:\"modalOverlay\",staticClass:\"modal-overlay\",class:{ clickable: _vm.closeOnOverlayClick && !_vm.noOverlay, 'no-overlay': _vm.noOverlay },on:{\"mousedown\":function($event){return _vm.onOverlayClick($event)}}},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\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!./ModalWrapper.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!./ModalWrapper.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ModalWrapper.vue?vue&type=template&id=ab30ac20\"\nimport script from \"./ModalWrapper.vue?vue&type=script&lang=js\"\nexport * from \"./ModalWrapper.vue?vue&type=script&lang=js\"\nimport style0 from \"./ModalWrapper.vue?vue&type=style&index=0&id=ab30ac20&prod&lang=scss\"\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 null,\n null\n \n)\n\nexport default component.exports","/* eslint-disable promise/param-names */\nimport storage from '@services/storage'\nimport { ImageLoader, ImageData } from './index'\nimport { fileSize } from '@/filters'\n\ndeclare global {\n\tinterface Window {\n\t\trequestFileSystem?: Function\n\t\twebkitRequestFileSystem?: Function\n\t\tPERSISTENT: string\n\t}\n\tinterface Navigator {\n\t\tpersistentStorage?: any\n\t\twebkitPersistentStorage?: any\n\t}\n}\n\nenum FileError {\n\tNOT_FOUND_ERR = 1,\n\tSECURITY_ERR,\n\tNOT_READABLE_ERR = 4,\n\tENCODING_ERR,\n\tNO_MODIFICATION_ALLOWED_ERR,\n\tINVALID_STATE_ERR,\n\tINVALID_MODIFICATION_ERR = 9,\n\tQUOTA_EXCEEDED_ERR,\n\tTYPE_MISMATCH_ERR,\n\tPATH_EXISTS_ERR,\n}\n\ntype Callback = (param: T) => any\ntype FileErrorCallback = Callback\n\ninterface FileSystem {\n\tname: string\n\troot: FileSystemDirectoryEntry\n}\n\ninterface FileSystemEntry {\n\tfilesystem: FileSystem\n\tfullPath: string\n\tisDirectory: boolean\n\tisFile: boolean\n\tname: string\n\tgetMetadata: (callback: Callback) => void\n}\n\ninterface FileSystemFlags {}\n\ninterface FileSystemDirectoryReader {\n\treadEntries: (success: (entries: Array) => void, callback: FileErrorCallback) => void\n}\n\ninterface FileSystemDirectoryEntry extends FileSystemEntry {\n\tgetDirectory: (\n\t\tpath?: string,\n\t\toptions?: FileSystemFlags,\n\t\tcallback?: Callback,\n\t\terrorCallback?: FileErrorCallback\n\t) => void\n\tgetFile: Function\n\tcreateReader: () => FileSystemDirectoryReader\n\tremoveRecursively: (success: Function, failure: (fileError: FileError) => void) => void\n}\n\ninterface FileSystemFileEntry extends FileSystemEntry {\n\tfile: Function\n\tcreateWriter: Function\n}\n\ninterface FileSystemEntryMetadata {\n\tmodificationTime: Date\n\tsize: number\n}\n\nclass BrowserImageCache {\n\tsize: number = 0\n\tallocatedSize: number = 0\n\tavailableSize: number = 0\n\tasterisDir: FileSystemDirectoryEntry = null\n\trequestedBytes: number = 1024 * 1024 * 1024 * 5 // 5GB\n\timageCacheSizeKey: string = 'browserImageCacheBytes'\n\timageCacheActiveKey: string = 'browserImageCacheActive'\n\timageCachePrecacheActiveKey: string = 'browserImageCachePrecacheActive'\n\n\tconstructor() {\n\t\twindow.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem\n\t\tnavigator.persistentStorage = navigator.persistentStorage || navigator.webkitPersistentStorage\n\t}\n\n\tget isActive() {\n\t\treturn storage.getItem(this.imageCacheActiveKey) === 'true'\n\t}\n\n\tset isActive(active) {\n\t\tstorage.setItem(this.imageCacheActiveKey, active)\n\t\tif (active) this.init()\n\t}\n\n\tget isPrecacheActive() {\n\t\treturn storage.getItem(this.imageCachePrecacheActiveKey) === 'true'\n\t}\n\n\tset isPrecacheActive(active) {\n\t\tstorage.setItem(this.imageCachePrecacheActiveKey, active)\n\t}\n\n\tasync refreshMeta() {\n\t\tif (!(await this.init())) return\n\t\tthis.size = await this.getDirectorySize(this.asterisDir)\n\t}\n\n\tgetDirectorySize(dir: FileSystemDirectoryEntry): Promise {\n\t\treturn new Promise(resolve => {\n\t\t\tconst reader = dir.createReader()\n\t\t\treader.readEntries(\n\t\t\t\t(entries: Array) => {\n\t\t\t\t\tconst promises: Array> = []\n\t\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\t\tif (entry.isFile) {\n\t\t\t\t\t\t\tpromises.push(\n\t\t\t\t\t\t\t\tnew Promise(res => {\n\t\t\t\t\t\t\t\t\tentry.getMetadata(({ size: fileSize }) => {\n\t\t\t\t\t\t\t\t\t\tres(fileSize)\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpromises.push(this.getDirectorySize(entry as FileSystemDirectoryEntry))\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\tPromise.allSettled(promises).then(sizePromises => {\n\t\t\t\t\t\tlet size = 0\n\t\t\t\t\t\tsizePromises.forEach(sp => {\n\t\t\t\t\t\t\tif (sp.status === 'fulfilled') {\n\t\t\t\t\t\t\t\tsize += sp.value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t\tresolve(size)\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tresolve(0)\n\t\t\t\t}\n\t\t\t)\n\t\t})\n\t}\n\n\tinit(): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (!this.isActive) {\n\t\t\t\treturn resolve(false)\n\t\t\t}\n\t\t\tif (this.asterisDir) {\n\t\t\t\treturn resolve(true)\n\t\t\t}\n\t\t\t// Recall the last number of requested bytes\n\t\t\tconst lastRequestedBytes = +storage.getItem(this.imageCacheSizeKey)\n\t\t\tif (lastRequestedBytes > 0) {\n\t\t\t\tthis.requestedBytes = Math.min(lastRequestedBytes, this.requestedBytes)\n\t\t\t}\n\t\t\t// Request persistent file system storage\n\t\t\tnavigator.persistentStorage.requestQuota(this.requestedBytes, (grantedBytes: number) => {\n\t\t\t\t// Opening a file system with temporary storage\n\t\t\t\twindow.requestFileSystem(window.PERSISTENT, grantedBytes, (fs: FileSystem) => {\n\t\t\t\t\t// Save the latest number of granted bytes to minimize dialog appearances\n\t\t\t\t\tthis.allocatedSize = grantedBytes\n\t\t\t\t\tthis.availableSize = grantedBytes\n\t\t\t\t\tstorage.setItem(this.imageCacheSizeKey, grantedBytes)\n\t\t\t\t\tfs.root.getDirectory(\n\t\t\t\t\t\t'Asteris',\n\t\t\t\t\t\t{ create: true },\n\t\t\t\t\t\t(dir: FileSystemDirectoryEntry) => {\n\t\t\t\t\t\t\tthis.asterisDir = dir\n\t\t\t\t\t\t\tconsole.log(`Initialized Asteris directory with ${fileSize(this.allocatedSize)} allowed.`)\n\t\t\t\t\t\t\tresolve(true)\n\t\t\t\t\t\t},\n\t\t\t\t\t\terr => {\n\t\t\t\t\t\t\treject(err)\n\t\t\t\t\t\t}\n\t\t\t\t\t)\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\t}\n\n\tgetImageDirPath({ clinicCode, studyUid, seriesUid }) {\n\t\treturn `${clinicCode.toUpperCase()}/DICOM/${studyUid}/${seriesUid}`\n\t}\n\n\tgetImageFileName(imageData: ImageData) {\n\t\tconst ext = imageData.scheme.toLowerCase() === 'dicom' ? 'dcm' : 'jpg'\n\t\tconst frameIndex = imageData.frameIndex ? '.' + imageData.frameIndex : ''\n\t\treturn `${imageData.instanceUid}${frameIndex}.${ext}`\n\t}\n\n\tloadImage(imageData: ImageData, imageLoader: ImageLoader): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst fetchImage = (shouldCache: boolean) => {\n\t\t\t\timageLoader(imageData)\n\t\t\t\t\t.then((image: ArrayBuffer) => {\n\t\t\t\t\t\tresolve(image)\n\t\t\t\t\t\tif (shouldCache) {\n\t\t\t\t\t\t\tthis.setImage(imageData, image)\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\t.catch((e: any) => {\n\t\t\t\t\t\treject(e)\n\t\t\t\t\t})\n\t\t\t}\n\t\t\tif (!this.isActive) {\n\t\t\t\treturn fetchImage(false)\n\t\t\t}\n\t\t\tthis.getImage(imageData)\n\t\t\t\t.then(image => {\n\t\t\t\t\t// This shouldn't ever happen, but if it does...\n\t\t\t\t\tif (image.byteLength === 0) {\n\t\t\t\t\t\t// Just fetch the image normally\n\t\t\t\t\t\tfetchImage(true)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(image)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\treturn fetchImage(true)\n\t\t\t\t})\n\t\t})\n\t}\n\n\tgetImage(imageData: ImageData): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.init().then(() => {\n\t\t\t\tthis.asterisDir.getDirectory(\n\t\t\t\t\tthis.getImageDirPath(imageData),\n\t\t\t\t\tnull,\n\t\t\t\t\t(dir: FileSystemDirectoryEntry) => {\n\t\t\t\t\t\tdir.getFile(\n\t\t\t\t\t\t\tthis.getImageFileName(imageData),\n\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t(fileEntry: FileSystemFileEntry) => {\n\t\t\t\t\t\t\t\tfileEntry.file((file: Blob) => {\n\t\t\t\t\t\t\t\t\tfile.arrayBuffer().then(buffer => {\n\t\t\t\t\t\t\t\t\t\tresolve(buffer)\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(fileError: FileError) => {\n\t\t\t\t\t\t\t\treject(fileError)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\t(fileError: FileError) => {\n\t\t\t\t\t\treject(fileError)\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t})\n\t\t})\n\t}\n\n\tsetImage(imageData: ImageData, image: ArrayBuffer): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t// Weird things happen later if we don't copy the array buffer\n\t\t\timage = image.slice(0)\n\t\t\tif (image.byteLength === 0) {\n\t\t\t\treturn reject(new Error('Image array buffer has zero length'))\n\t\t\t}\n\t\t\tthis.init().then(() => {\n\t\t\t\tthis.asterisDir.getDirectory(\n\t\t\t\t\tthis.getImageDirPath(imageData),\n\t\t\t\t\t{ create: true },\n\t\t\t\t\t(dir: FileSystemDirectoryEntry) => {\n\t\t\t\t\t\tdir.getFile(\n\t\t\t\t\t\t\tthis.getImageFileName(imageData),\n\t\t\t\t\t\t\t{ create: true },\n\t\t\t\t\t\t\t(fileEntry: FileSystemFileEntry) => {\n\t\t\t\t\t\t\t\tfileEntry.createWriter((fileWriter: any) => {\n\t\t\t\t\t\t\t\t\t// Resolve promise when file is written\n\t\t\t\t\t\t\t\t\tfileWriter.onwriteend = () => {\n\t\t\t\t\t\t\t\t\t\tresolve(true)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Reject promise on file write errors\n\t\t\t\t\t\t\t\t\tfileWriter.onerror = (e: Error) => {\n\t\t\t\t\t\t\t\t\t\treject(e)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// Write image array buffer to file\n\t\t\t\t\t\t\t\t\tfileWriter.write(new Blob([image]))\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t(fileError: FileError) => {\n\t\t\t\t\t\t\t\treject(fileError)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\t(fileError: FileError) => {\n\t\t\t\t\t\treject(fileError)\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t})\n\t\t})\n\t}\n\n\tclear() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.init().then(result => {\n\t\t\t\tif (!result) resolve(false)\n\t\t\t\tthis.asterisDir.removeRecursively(\n\t\t\t\t\t() => {\n\t\t\t\t\t\tresolve(true)\n\t\t\t\t\t\tthis.refreshMeta()\n\t\t\t\t\t},\n\t\t\t\t\t(fileError: FileError) => {\n\t\t\t\t\t\treject(fileError)\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t})\n\t\t})\n\t}\n}\n\nexport default BrowserImageCache\n","import Vue from 'vue'\nimport omniDesktop from '@/electron/omniDesktop'\nimport BrowserImageCache from './browserImageCache'\nimport DesktopImageCache from './desktopImageCache'\n\nexport interface ImageData {\n\tclinicCode: string\n\tstudyId: string\n\tstudyUid: string\n\tseriesId: string\n\tseriesUid: string\n\tscheme: string\n\timageId: string\n\tinstanceUid: string\n\tframeIndex: string\n}\n\nexport type ImageLoader = (imageData: ImageData) => Promise\n\ninterface ImageCache {\n\tsize: number\n\tallocatedSize: number\n\tavailableSize: number\n\tisActive: boolean\n\tisPrecacheActive: boolean\n\tclear: () => Promise\n\t// First tries to find the image in the cache. If it isn't found, it will fetch the\n\t// image using the provided imageLoader and save the image to the cache\n\tloadImage: (imageData: ImageData, imageLoader: ImageLoader) => Promise\n\t// Internal - shouldn't need to be externally called\n\tgetImage: (imageData: ImageData) => Promise\n\tsetImage: (imageData: ImageData, image: ArrayBuffer) => Promise\n}\n\nlet imageCache: ImageCache\nif (omniDesktop.isConnected) {\n\timageCache = new DesktopImageCache()\n} else {\n\timageCache = new BrowserImageCache()\n}\n\nexport default Vue.observable(imageCache)\n","import omniDesktop from '@/electron/omniDesktop'\nimport { ImageLoader, ImageData } from './index'\nimport { validateImageArrayBuffer } from '../index'\n\ninterface DesktopImageCacheMeta {\n\tisActive: boolean\n\tisPrecacheActive: boolean\n\tdirectoryPath: string\n\tsize: number\n\tallocatedSize: number\n\tavailableSize: number\n}\n\nclass DesktopImageCache {\n\tmeta: DesktopImageCacheMeta = {\n\t\tisActive: false,\n\t\tisPrecacheActive: false,\n\t\tdirectoryPath: '',\n\t\tsize: 0,\n\t\tallocatedSize: 0,\n\t\tavailableSize: 0,\n\t}\n\tloadingCount: number = 0\n\n\tconstructor() {\n\t\tthis.refreshMeta()\n\t\tthis.clear = this.clear.bind(this)\n\t\tthis.trim = this.trim.bind(this)\n\t\tthis.browseDirectory = this.browseDirectory.bind(this)\n\t}\n\n\tget isActive() {\n\t\treturn this.meta.isActive\n\t}\n\n\tset isActive(active: boolean) {\n\t\tthis.meta.isActive = active\n\t\tomniDesktop.request('setViewerImageCacheActive', active)\n\t}\n\n\tget isPrecacheActive() {\n\t\treturn this.meta.isPrecacheActive\n\t}\n\n\tset isPrecacheActive(active: boolean) {\n\t\tthis.meta.isPrecacheActive = active\n\t\tomniDesktop.request('setViewerImageCachePrecacheActive', active)\n\t}\n\n\tget isLoading() {\n\t\treturn this.loadingCount > 0\n\t}\n\n\tget directoryPath() {\n\t\treturn this.meta.directoryPath\n\t}\n\n\tget size() {\n\t\treturn this.meta.size\n\t}\n\n\tget allocatedSize() {\n\t\treturn this.meta.allocatedSize\n\t}\n\n\tset allocatedSize(bytes) {\n\t\tthis.meta.allocatedSize = bytes\n\t\tomniDesktop.request('setViewerImageCacheAllocatedSize', bytes)\n\t}\n\n\tget availableSize() {\n\t\treturn this.meta.availableSize\n\t}\n\n\tasync refreshMeta() {\n\t\tthis.meta = (await omniDesktop.request('getViewerImageCacheMeta')) as DesktopImageCacheMeta\n\t}\n\n\tloadImage(imageData: ImageData, imageLoader: ImageLoader): Promise {\n\t\tif (!this.isActive) return imageLoader(imageData)\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.loadingCount++\n\t\t\tthis.getImage(imageData)\n\t\t\t\t.then(image => resolve(image))\n\t\t\t\t.catch(() => {\n\t\t\t\t\timageLoader(imageData)\n\t\t\t\t\t\t.then((image: ArrayBuffer) => {\n\t\t\t\t\t\t\tresolve(image)\n\t\t\t\t\t\t\tthis.setImage(imageData, image)\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(reject)\n\t\t\t\t})\n\t\t}).finally(() => {\n\t\t\tthis.loadingCount--\n\t\t}) as Promise\n\t}\n\n\tgetImage(imageData: ImageData): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tomniDesktop\n\t\t\t\t.request('getViewerImageInCache', imageData)\n\t\t\t\t.then((data: ArrayBuffer | null) => {\n\t\t\t\t\tif (data && validateImageArrayBuffer(data)) {\n\t\t\t\t\t\tresolve(data.slice(0))\n\t\t\t\t\t} else {\n\t\t\t\t\t\treject(new Error('Bad image returned from cache'))\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(reject)\n\t\t})\n\t}\n\n\tsetImage(imageData: ImageData, image: ArrayBuffer): Promise {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tomniDesktop.request('setViewerImageInCache', { imageData, image }).then((result: boolean) => {\n\t\t\t\tresolve(result)\n\t\t\t})\n\t\t})\n\t}\n\n\tclear() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tomniDesktop.request('clearViewerImageCache').then((result: boolean) => {\n\t\t\t\tresolve(result)\n\t\t\t\tthis.refreshMeta()\n\t\t\t})\n\t\t})\n\t}\n\n\ttrim() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tomniDesktop.request('trimViewerImageCache').then(() => {\n\t\t\t\tresolve(true)\n\t\t\t\tthis.refreshMeta()\n\t\t\t})\n\t\t})\n\t}\n\n\tbrowseDirectory() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tomniDesktop.request('browseViewerImageCacheDirectory').then((result: string) => {\n\t\t\t\tresolve(result)\n\t\t\t\tthis.refreshMeta()\n\t\t\t})\n\t\t})\n\t}\n}\n\nexport default DesktopImageCache\n","module.exports = \"\"","module.exports = \"\"","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!./UploadDlg.vue?vue&type=style&index=0&id=5423ab11&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!./AttachmentList.vue?vue&type=style&index=0&id=7ea09718&prod&lang=scss&scoped=true\""],"sourceRoot":""}